在php中阻止sql注入

时间:2015-06-25 11:07:55

标签: php mysql sql-injection

如果用户输入未经SQL query修改而插入,则应用程序容易受SQL injection攻击,如下例所示:

$unsafe_variable = $_POST['user_input']; 

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

这是因为用户可以输入类似值'); DROP TABLE table;--,的内容,并且查询变为:

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

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

1 个答案:

答案 0 :(得分:2)

通过简单的Google搜索提供广泛的信息,可以指导您朝着正确的方向前进。首先:

不要使用MYSQL_ *函数这些是deprecated并会生成警告。它们甚至不是现代Web开发的远程良好实践

使用数据库库INSTEAD ,例如PDOMySQLi。有很多教程可以帮助您入门,最重要的是这些库 为您处理SQL注入 。所以使用它们!