Cloudflare去年瘫痪事故的罪魁祸首.*(?:.*=.*)

C 2020-5-4 2110

最近在写正则表达式,看见loc网友分享的这篇文章,正好拿来看看。

导致瘫痪最根本原因是CF防火墙过滤规则的正则表达式中包含了.*(?:.*=.*),而这个语句会导致大量回溯。

比如每个查询后代入新变量,循环执行多次,查询内容越长执行次数越多,直至CPU崩溃。

?:是忽略括号内匹配的标识,.*(?:.*=.*)基本可以看作.*(.*=.*)。

作为一个菜鸟,很好奇这个简短的正则式为啥会导致回溯?

最新回复 (1)
  • saber 2020-5-4
    2

    作为一个菜菜鸟,这在说什么

    Page namesilo优惠码:aawsl,减1美元
返回
发新帖