我最近意识到正则表达式拒绝服务攻击,并决定在我的代码库中找到所谓的"邪恶"正则表达式模式 - 或者至少在用户输入上使用它们.上面的OWASP链接和维基百科提供的示例很有帮助,但他们并没有很好地用简单的术语解释问题.
来自维基百科的邪恶正则表达式的描述:
通过示例,再次来自维基百科:
(a+)+([a-zA-Z]+)*(a|aa)+(a|a?)+(.*a){x} 对于x> 10这是一个没有更简单解释的问题吗?我正在寻找能够在编写正则表达式时更容易避免这个问题,或者在现有代码库中找到它们的东西.