我正在看看如何正確地轉義來自外部世界的數據,然後才能將其用於應用程序控制,存儲,邏輯......這種事情。轉義用戶數據,沒有魔術引號
很明顯,在PHP 5.3.0+版本中很快棄用了magic quotes指令,並且在php6中刪除了這個指令,對於那些希望升級並進入新語言特性的用戶,同時維護舊版代碼(don我們喜歡它..)。
但是,我沒有看到的一件事是關於理論/最佳實踐的討論,一旦您保護了數據後應如何處理 - 例如,是否使用斜線存儲?我個人認爲保持逃脫在DB數據並不是一個好的做法,但希望聽到的討論,最好讀一些案例研究..
從PHP手冊中的某些鏈接僅供參考:
PHP Manual - mysql_real_escape_string
等等等等
任何提示嗎?
你說的「例如,存儲有或沒有斜線」的事實使我相信你可能有一個錯誤的正確轉義的概念。如果你正確地進行轉義,那麼發送到需要斜線的數據庫的字符串將會擁有它們,但實際上並不存儲在數據庫中。如果您在數據庫中看到斜線,則數據不正確地逃脫。 – longneck 2009-11-27 16:42:57
請解釋更多longneck - mysql會在插入前刪除轉義符嗎?有關於此的網頁嗎?但是你是對的 - 我想我在過去的某個時候忽略了這一點,現在試圖趕上。 – dmp 2009-11-27 16:49:54
mysql_real_escape_string不會轉義斜槓等。它使SQL查詢的字符串安全。 – William 2009-11-27 16:51:14