2012-08-31 92 views
0

我正在尋找一個很好的解決方案來防止mysql注入和xss atack。我讀過很多主題,但對我來說還不清楚。防止mysql注入和xss atack

我只想允許一些bb代碼,如[b],[i],[u]。就這樣。

能否請你告訴我,這是確定的:

<?php 
$escape = array('input_one','input_two','get_ids_from_url','etc'); 

foreach($escape as $input) 
{ 
    if(isset($_POST[$input])) 
    {$_POST[$input] = mysql_real_escape_string(htmlspecialchars(strip_tags($_POST[$input]), ENT_QUOTES, 'utf-8'));} 
    if(isset($_GET[$input])) 
    {$_GET[$input] = mysql_real_escape_string(htmlspecialchars(strip_tags($_GET[$input]), ENT_QUOTES, 'utf-8'));} 
} 
?> 
+2

如果你想防止SQL注入,你應該使用PDO(http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-訪問/)。這不是簡單的證明,但它比'mysql_'函數更安全。 – Stecman

回答

2

你在做什麼這裏輸入逃脫了兩個不同的用途:HTML和MySQL。不要那樣做;魔術報價被刪除的原因。

你應該做的是逃避你實際使用變量的地方,在數據庫訪問的情況下,使用PDO或MySQLi而不是幾乎不推薦使用,而且通常是不好的mysql_系列函數。