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