2014-10-01 98 views
-2

如果用户输入插不加修饰成一个SQL查询,那么应用程序在下面的例子中变得容易受到SQL注入,如:如何防止SQL注入,PHP

$unsafe_variable = $_POST['user_input']; 

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

这是因为用户可以输入有点像价值'); DROP TABLE表; - 和查询变为:

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

可以采取什么措施来防止这种情况发生?

+0

使用准备好的语句与pdo或mysqli。 – Jens 2014-10-01 09:05:18

+1

只是说明:它没有准备好保护您免受SQL注入的声明;它是可变的绑定。只是碰巧,在PDO中获得变量绑定的唯一方法是使用预准备语句,这意味着所有不必要的额外开销。 – Synchro 2014-10-01 10:13:40

+0

你为什么复制粘贴别人问题? – 2016-01-21 15:44:57

回答