相关疑难解决方法(0)

如何在PHP中阻止SQL注入?

如果插入用户输入而不修改SQL查询,则应用程序容易受到SQL注入的攻击,如下例所示:

$unsafe_variable = $_POST['user_input']; 

mysql_query("INSERT INTO `table` (`column`) VALUES ('$unsafe_variable')");
Run Code Online (Sandbox Code Playgroud)

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

INSERT INTO `table` (`column`) VALUES('value'); DROP TABLE table;--')
Run Code Online (Sandbox Code Playgroud)

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

php mysql sql security sql-injection

2776
推荐指数
28
解决办法
166万
查看次数

为什么使用mysql预处理语句比使用常见转义函数更安全?

在另一个问题中有评论说:

"当谈到数据库查询时,总是尝试使用准备好的参数化查询.mysqli和PDO库支持这一点.这比使用诸如mysql_real_escape_string之类的转义函数更安全."

资源

所以,我想问的是:为什么准备参数化查询更安全?

php mysql security sql-injection prepared-statement

27
推荐指数
3
解决办法
2万
查看次数

标签 统计

mysql ×2

php ×2

security ×2

sql-injection ×2

prepared-statement ×1

sql ×1