看板 PHP 關於我們 聯絡資訊
※ 引述《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://www.ptt.cc/bbs/PHP/M.1480234537.A.4CD.html
adsl9527: 謝謝大大回文 PDO感覺不錯 11/27 17:46