2011-12-30 83 views
1

我有一個功能,檢查用戶輸入,並想知道它是否可以防止這種類型的所有攻擊。另外,如果我想在每個需要它的頁面上包含這個函數,我可以把它放在它自己的php頁面中,然後'include()'到它需要的頁面中。謝謝。如何在php中正確檢查用戶輸入?

function secure_data($value) 
{ 
if (get_magic_quotes_gpc()) { 
    $value = stripslashes($value); 
} 
if (function_exists("mysql_real_escape_string")) { 
    $value = mysql_real_escape_string($value); 
} else { 
    $value = addslashes($value); 
} 
return $value; 
} 
+0

你問題的關鍵在於解釋你的意思是「這種攻擊」。如果你知道哪種類型 - 你可以更好地研究如何防止他們.. – Arend 2011-12-30 01:47:10

+0

你想保護什麼?您似乎在嘗試防止SQL注入。如果是這種情況,您應該只使用PDO。 – 2011-12-30 01:48:57

回答

2

由於您使用引號,我假設您的主要問題是如何防止SQL注入,如果我沒有弄錯。 (注意:針對SQL注入的安全是其他方法,然後針對例如Cross Site Scripting進行保護!並不能保證你有一個安全的應用程序。

SQL注入的最佳解決方案不是使用此函數,而是使用mysqli或PDO準備好的語句。 (參見:How can I prevent SQL injection in PHP?

其他相關鏈接:SQL注入

背景資料:

其他驗證:從OWASP http://www.faqs.org/docs/gazette/superglobals.html

輸入驗證: https://www.owasp.org/index.php/Input_Validation