[请益] 使用MySQL除了注意这些之外…

楼主: red0whale (red whale)   2017-11-03 14:14:48
我们在使用MySQL时都会注意SQL Injection和防止网页代码注入
也就是会使用addslashes和htmlspecialchars函数
在使用MySQL时除了要注意这两点之外
还有没有其他需要注意的?
另外,
在写上传档案的PHP程式时,
有时候为了防止使用者上传PHP档以攻击服务器内部而会阻止以“.php”为副档名的档案
除此之外,是否还有其他须注意的地方?
谢谢
作者: dododavid006 (朔雪)   2017-11-03 15:23:00
上传档案的部份建议是用白名单比较安全 不然就是档案不可以放在可以直接下载的到的地方 要有另一个php 去拿档案给你下载 另外这个 php 又要注意不能有能使用 ../ 之类的漏洞 比较好的做法是每个档案给一个 id 用 id 去对应实际的档案 而不要在网址内有档案路径
作者: GALINE (天真可爱CQD)   2017-11-03 15:36:00
不要用 addslashes 做 sql 跳脱(这东西对熟手没用)跳脱请用 mysql(i)_real_escape_string当然最好是用 prepared statement 去 bind 变量尽量不要自组SQL,虽然对老系统这有时等于是全部重写...然后htmlspecialchars不该在存DB的时候做,是显示时才做
作者: crossdunk (推嘘自如)   2017-11-03 16:22:00
我都不用addslashes而是用PDO加上prepared
作者: banqhsia (BEN)   2017-11-03 21:23:00
永远记得不要用直接使用者提供的任何东西,就算真的要也一定要跳脱。上传的档案,直接用 hash 产生档名改名,限制上传档案的类型,然后强制改副档名
作者: nacoyow (梦游上班族)   2017-11-03 21:25:00
使用PDO +1
作者: dou0228 (7777)   2017-11-03 22:30:00
PDO,写一个类似ActiveRecord 的 class 做这事情
作者: tkdmaf (皮皮快跑)   2017-11-04 12:48:00
正确的使用PDO,你就没烦没恼了。
作者: MangoTW (不在线上)   2017-11-06 00:59:00
作者: cd99cd99 (查尔斯)   2017-11-06 08:43:00
推荐使用PDO
作者: MOONRAKER (㊣牛鹤鳗毛人)   2017-11-06 14:54:00
3DO
作者: tkdmaf (皮皮快跑)   2017-11-06 22:46:00
↑这传说中的失败作耶!但也间接造就了ps
作者: MOONRAKER (㊣牛鹤鳗毛人)   2017-11-08 17:05:00
被发现了…没错!传说中的无敌大烂作 ;)

Links booklink

Contact Us: admin [ a t ] ucptt.com