正则表达式足以阻止注入攻击吗?

时间:2011-07-27 15:37:46

标签: php regex sql-injection code-injection

我有一个处理用户输入的脚本,在继续进行数据库交互之前,它使用正则表达式验证输入。我唯一的问题是,正则表达式是否足以清除注入攻击,还是我还需要应用mysql_real_escape_string()

4 个答案:

答案 0 :(得分:2)

这实际上取决于表达的“好”程度;就像在,“你覆盖了所有的基地吗?”通过mysql_real_escape_string来保证安全并没有什么坏处。如果在脚本中多次使用它,则不会对性能产生影响。

答案 1 :(得分:1)

如果正则表达式是^$。对于所有其他输入,它取决于regexp是否允许转义字符。由于这些依赖于数据库和连接设置,因此您应该使用prepared statements,或者,如果不是选项,则每次都使用mysql_real_escape_string

答案 2 :(得分:1)

如果你的正则表达式足够好,那么,为什么要承担风险?

答案 3 :(得分:0)

除非你有一个惊人的RegEx表达,否则我个人不会相信它是完整的。

过于保护而不是太少,总是出错。包括对mysql_real_escape_string的调用。