Re: [请益] 防止SQL Injection

楼主: GALINE (天真可爱CQD)   2016-11-27 16:15:32
※ 引述《adsl9527 (申装adsl的小为)》之铭言:
: 本板首PO 触板规烦请告知
: 请问是否用 ctype_alnum() 来确定参数是否被填入一些特殊符号
: 就可以对 Injection 高枕无忧了呢?
: 因为不太确定是否能把话说死 所以才来请益各位大大的看法
: 谢谢
我“猜”ctype_alnum() 已经够好了。
虽然有些阴邪的招式可以塞奇怪的 unicode 字符来突破 sql inection 保护
但这些应该通不过 ctype_alnum() ...
如果 db query 是一段糨糊 code 或因为其他理由你不想动,可以在前面垫这层
当然如果进来的是个使用者输入的字串(不论是中文或是有空白)那就全部死掉了
可以的话最好是养成习惯
“有专门为了某个问题设计的解法,就最好使用那个解法”
- 如果是很旧的 code,你应该用 mysql_real_escape_string()
- 不过不应该事先 escape,只有在要组 sql 的时候才 escape
- 如果能够用 PDO,你应该用 prepared statement
- 是的 preparement 写起来感觉比较冗,不过习惯就好...
作者: adsl9527 (申装adsl的小为)   2016-11-27 17:46:00
谢谢大大回文 PDO感觉不错

Links booklink

Contact Us: admin [ a t ] ucptt.com