2012-02-05 53 views
1

嗯,我想知道關於PHP和MySQL的一些提示。安全的方式來插入和檢索數據到MySQL

當我得到用戶,然後我用下面的驗證數據:

mysql_real_escape_string() 
or 
htmlentities() 
or 
trim() 

它是一個安全的方式從用戶獲得數據?

什麼是從Mysql數據庫中檢索數據的最佳方法?我用nl2br(),但如果我提交I'm here然後它顯示I\'m here。它應該顯示I'm here。我不知道什麼是正確的方法。

+0

這兩個函數都沒有驗證。並且使用這些函數的輸出是否安全取決於您如何使用這些值。那麼你如何使用這些功能呢? – Gumbo 2012-02-05 16:43:18

+2

切換到PDO,請請關閉魔術引號,以提高人性。 – PeeHaa 2012-02-05 16:44:02

+0

@PeeHaa感謝這個想法。但我認爲它已經從php 5.0關閉。是嗎? – user1161867 2012-02-05 16:45:47

回答

1

將數據插入數據庫時​​,您將使用mysql_real_escape_string;而不是htmlentities。或甚至更好,MySQLi - 或甚至更​​好,PDO

當您從數據庫輸出可能不安全的數據時,您可能會使用htmlentities

要停止斜槓,turn magic quotes off

+0

謝謝@minitech。所以htmlentities是安全的?任何其他方法? – user1161867 2012-02-05 16:47:28

+0

@ user1161867:是的,它對HTML輸出是安全的。只記得使用它。哦,還有['htmlspecialchars'](http://php.net/htmlspecialchars)。 – Ryan 2012-02-05 16:49:33

+0

我可以使用這兩個功能嗎? – user1161867 2012-02-05 16:52:28

相關問題