2013-01-24 65 views
0

可能重複:
How to prevent SQL injection in PHP?拒絕用戶的MySQL注入

如果用戶輸入被插入到直接在SQL查詢,應用程序變得容易受到SQL注入,如在下面的例子:

$unsafe_variable = $_POST['user_input']; 

mysql_query("INSERT INTO table (column) VALUES ('" . $unsafe_variable . "')"); 

這是因爲用戶可以輸入像value'); DROP TABLE table;--,使查詢:

INSERT INTO table (column) VALUES('value'); DROP TABLE table;--') 

應該怎麼做,以防止這種情況?

+2

預處理語句是你的朋友。但是如果你使用mysql_ *,你不能使用它們,而且,mysql_ *被有效地棄用,你不應該使用它。改用mysqli或PDO。 – GordonM

回答

3

使用mysql_real_escape_string($_POST['data']);

或者我會建議使用PDO庫,而不是