相关疑难解决方法(0)

我如何识别邪恶的正则表达式?

我最近意识到正则表达式拒绝服务攻击,并决定在我的代码库中找到所谓的"邪恶"正则表达式模式 - 或者至少在用户输入上使用它们.上面的OWASP链接维基百科提供的示例很有帮助,但他们并没有很好地用简单的术语解释问题.

来自维基百科的邪恶正则表达式的描述:

  • 正则表达式将重复("+","*")应用于复杂的子表达式;
  • 对于重复的子表达式,存在一个匹配,它也是另一个有效匹配的后缀.

通过示例,再次来自维基百科:

  • (a+)+
  • ([a-zA-Z]+)*
  • (a|aa)+
  • (a|a?)+
  • (.*a){x} 对于x> 10

这是一个没有更简单解释的问题吗?我正在寻找能够在编写正则表达式时更容易避免这个问题,或者在现有代码库中找到它们的东西.

regex

65
推荐指数
5
解决办法
2万
查看次数

标签 统计

regex ×1