我有一个处理用户输入的脚本,在继续进行数据库交互之前,它使用正则表达式验证输入。我唯一的问题是,正则表达式是否足以清除注入攻击,还是我还需要应用mysql_real_escape_string()
?
答案 0 :(得分:2)
这实际上取决于表达的“好”程度;就像在,“你覆盖了所有的基地吗?”通过mysql_real_escape_string
来保证安全并没有什么坏处。如果在脚本中多次使用它,则不会对性能产生影响。
答案 1 :(得分:1)
如果正则表达式是^$
。对于所有其他输入,它取决于regexp是否允许转义字符。由于这些依赖于数据库和连接设置,因此您应该使用prepared statements,或者,如果不是选项,则每次都使用mysql_real_escape_string
。
答案 2 :(得分:1)
如果你的正则表达式足够好,那么,为什么要承担风险?
答案 3 :(得分:0)
除非你有一个惊人的RegEx表达,否则我个人不会相信它是完整的。
过于保护而不是太少,总是出错。包括对mysql_real_escape_string
的调用。