我一直在讀取關於保護PHP應用程序的一些知識,在我看來mysqli_real_escape_string
是將數據插入MySQL表時使用的正確函數,因爲addslashes
會導致一些奇怪的事情發生聰明的攻擊者。對?Htmlentities vs addslashes vs mysqli_real_escape_string
但是,有一件事讓我感到困惑。我似乎記得在將用戶輸入的數據回送給用戶以保護其數據時,建議addslashes
比htmlentities
更好,但似乎addslashes
是具有該漏洞的那個。這是真的,還是我記得不正確?
只有在單個腳本中多次使用準備好的查詢時,精確預測語句纔會更好。否則,你要做兩次往返服務器,一次準備,一次執行。如果您已經在使用自動確保輸入驗證的代碼,我不知道爲什麼準備好的語句更好。 mysql文檔涵蓋了這一點。 http://dev.mysql.com/tech-resources/articles/4.1/prepared-statements.html如果我錯了(這是可能的和可能的),請告訴我爲什麼。 – 2010-02-06 19:04:56
迎接邁克。我已經多次看到這種反駁的觀點,我認爲需要休息一下。請理解,我並不反對你所說的話。然而,我在這樣的論壇中不同意這個建議。在這種情況下,我認爲安全應該比錯誤傾向性更重要。 OP沒有抱怨他的網站,而是在不同的轉義技術之間缺乏明確的定義。你會不同意從這次旅程開始的人應該走更安全的道路嗎? – 2010-02-06 19:29:35
我謹此表示同意。我在問自己的表現,因爲我不確定答案。我沒有說清楚。 – 2010-02-06 19:42:20