如果POST字段既不包含'<'也不是'>',它保证安全吗?

时间:2013-07-04 04:42:25

标签: php html security validation sanitization

这是关于数据清理的回归基础问题。 我有一个表单字段,用户没有合理的理由输入<或者>,可用于注入html和javascript。

我没有深入了解各种各样的功能,我很乐意在他们自己的地方使用它,我想知道这种准分两步法是否能保证脚本的安全。

  1. 检查字段是否包含'<'或'>'避免与浏览器相关的注射。
  2. 在将字段发送到数据库之前使用PDO quote()函数以避免SQL注入。
  3. 提前感谢任何见解!

1 个答案:

答案 0 :(得分:3)

如果它是<textarea>,您可能可以安全地进行XSS注入,但如果字符串包含任何&符号(&),您可能仍然会遇到意外影响。< / p>

如果它是<input>字段,则引号也需要转义。考虑如果值是" onmouseover="alert('foo');会发生什么(假设你使用双引号属性;如果你使用单引号,则交换两种类型的引号)。

无论如何,安全的做法是始终转义在需要转义的上下文(HTML,SQL等)中使用的任何字符串:

即使您确定该字符串不包含任何需要要转义的字符,转义它仍然是正确的做法。如果关于字符串可能包含或不包含的内容的假设发生变化,它还可以确保您不会被咬。