PHP中POST Sanitation和Prepared语句之间的区别

我总是使用PDO准备好的语句来防止SQL注入。

$params = array(':param' => 'value');

但是现在有人告诉我,我应该使用POST卫生设施来防止SQL注射。

$_POST  = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);

POST现在我的问题是,当我已经使用准备好的语句进行查询时,为什么还需要使用环境卫生?

那么毕竟我的查询可能无法防止SQL注入?


慕工程0101907
浏览 124回答 1
1回答

jeck猫

准备好的语句可以保护您免受 SQL 注入,但不能确保数据有效。但是除了可能的 SQL 注入之外,您还希望您的数据尽可能有效和干净。比如说,有人在表单中提供了一个电子邮件地址,但它不是一个,你不应该在验证之前存储它。对于任何其他数据类型也是如此。做一些诸如修剪空格之类的事情会使数据更小。更小的数据也受益于更快的结果和索引。防止 SQL 注入最安全的方法是使用 PDO 和准备好的语句。您还应该在插入之前验证任何输入,因为用户数据可能是邪恶的。例如,许多表单都被机器人发送垃圾邮件。
打开App,查看更多内容
随时随地看视频慕课网APP