我总是使用PDO准备好的语句来防止SQL注入。$params = array(':param' => 'value');但是现在有人告诉我,我应该使用POST卫生设施来防止SQL注射。$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);POST现在我的问题是,当我已经使用准备好的语句进行查询时,为什么还需要使用环境卫生?那么毕竟我的查询可能无法防止SQL注入?
1 回答
jeck猫
TA贡献1909条经验 获得超7个赞
准备好的语句可以保护您免受 SQL 注入,但不能确保数据有效。
但是除了可能的 SQL 注入之外,您还希望您的数据尽可能有效和干净。
比如说,有人在表单中提供了一个电子邮件地址,但它不是一个,你不应该在验证之前存储它。对于任何其他数据类型也是如此。
做一些诸如修剪空格之类的事情会使数据更小。更小的数据也受益于更快的结果和索引。
防止 SQL 注入最安全的方法是使用 PDO 和准备好的语句。
您还应该在插入之前验证任何输入,因为用户数据可能是邪恶的。例如,许多表单都被机器人发送垃圾邮件。
- 1 回答
- 0 关注
- 123 浏览
添加回答
举报
0/150
提交
取消
