作者GALINE (天真可爱CQD)
看板PHP
标题Re: [请益] 防止SQL Injection
时间Sun Nov 27 16:15:32 2016
※ 引述《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 写起来感觉比较冗,不过习惯就好...
--
______ ____________________________________ _ _-_ _ ___
/ __||____________________________________| _|_|.---'---`---.|_|_ |___)
|___| Let it go! Let it go! \----._________.----/
___ Where no man has gone before! `. `]-[' ,'
| |__ _________________________________________ `.' _ `.' ________
\______||_________________________________________| |_(_)_| |________)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.245.65.134
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1480234537.A.4CD.html
1F:推 adsl9527: 谢谢大大回文 PDO感觉不错 11/27 17:46