楼主:
red0whale (red whale)
2017-11-03 14:14:48我们在使用MySQL时都会注意SQL Injection和防止网页代码注入
也就是会使用addslashes和htmlspecialchars函数
在使用MySQL时除了要注意这两点之外
还有没有其他需要注意的?
另外,
在写上传档案的PHP程式时,
有时候为了防止使用者上传PHP档以攻击服务器内部而会阻止以“.php”为副档名的档案
除此之外,是否还有其他须注意的地方?
谢谢
上传档案的部份建议是用白名单比较安全 不然就是档案不可以放在可以直接下载的到的地方 要有另一个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的时候做,是显示时才做
我都不用addslashes而是用PDO加上prepared
永远记得不要用直接使用者提供的任何东西,就算真的要也一定要跳脱。上传的档案,直接用 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作者:
tkdmaf (皮皮快跑)
2017-11-06 22:46:00↑这传说中的失败作耶!但也间接造就了ps