嗯,我想知道關於PHP和MySQL的一些提示。安全的方式來插入和檢索數據到MySQL
當我得到用戶,然後我用下面的驗證數據:
mysql_real_escape_string()
or
htmlentities()
or
trim()
它是一個安全的方式從用戶獲得數據?
什麼是從Mysql數據庫中檢索數據的最佳方法?我用nl2br()
,但如果我提交I'm here
然後它顯示I\'m here
。它應該顯示I'm here
。我不知道什麼是正確的方法。
嗯,我想知道關於PHP和MySQL的一些提示。安全的方式來插入和檢索數據到MySQL
當我得到用戶,然後我用下面的驗證數據:
mysql_real_escape_string()
or
htmlentities()
or
trim()
它是一個安全的方式從用戶獲得數據?
什麼是從Mysql數據庫中檢索數據的最佳方法?我用nl2br()
,但如果我提交I'm here
然後它顯示I\'m here
。它應該顯示I'm here
。我不知道什麼是正確的方法。
將數據插入數據庫時,您將使用mysql_real_escape_string
;而不是htmlentities
。或甚至更好,MySQLi - 或甚至更好,PDO。
當您從數據庫輸出可能不安全的數據時,您可能會使用htmlentities
。
要停止斜槓,turn magic quotes off。
謝謝@minitech。所以htmlentities是安全的?任何其他方法? – user1161867 2012-02-05 16:47:28
@ user1161867:是的,它對HTML輸出是安全的。只記得使用它。哦,還有['htmlspecialchars'](http://php.net/htmlspecialchars)。 – Ryan 2012-02-05 16:49:33
我可以使用這兩個功能嗎? – user1161867 2012-02-05 16:52:28
這兩個函數都沒有驗證。並且使用這些函數的輸出是否安全取決於您如何使用這些值。那麼你如何使用這些功能呢? – Gumbo 2012-02-05 16:43:18
切換到PDO,請請關閉魔術引號,以提高人性。 – PeeHaa 2012-02-05 16:44:02
@PeeHaa感謝這個想法。但我認爲它已經從php 5.0關閉。是嗎? – user1161867 2012-02-05 16:45:47