如果用户输入未经修改就插入到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;--')
可以做些什么来防止这种情况发生?