Re: [請益] 防止SQL Injection

看板PHP作者 (天真可愛CQD)時間8年前 (2016/11/27 16:15), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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

11/27 17:46, , 1F
謝謝大大回文 PDO感覺不錯
11/27 17:46, 1F
文章代碼(AID): #1OEfOfJD (PHP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1OEfOfJD (PHP)