CloudFlare 七月初服务中断的锅找到了。。。

2019 年 7 月 13 日
 wikinee

转自阮一峰推特

七月初,cloudflare 曾经全球中断服务,原因是一个正则表达式耗尽了 CPU 资源。

今天,他们公布了这个正则表达式。

(?:(?:\"|'|\]|\}|\\|\d|(?:nan|infinity|true|false|null|undefined|symbol|math)|\`|\-|\+)+[)]*;?((?:\s|-|~|!|{}|\|\||\+)*.*(?:.*=.*)))

看着是很复杂,简化以后,出问题是这个模式 ..=.* ,它会导致急剧放大的计算量。后面链接详细解释,为什么这个模式有问题。

详细解释: https://blog.cloudflare.com/details-of-the-cloudflare-outage-on-july-2-2019/#appendix-about-regular-expression-backtracking

7529 次点击
所在节点    程序员
28 条回复
operawang
2019 年 7 月 13 日
@jinliming2 把 a=去掉再试试,文章说不匹配更耗资源。
snw
2019 年 7 月 13 日
@gam2046
DNS 反射放大攻击了解一下。旁观者攻击了解一下。DDoS 并不需要你自己有足够大的带宽。
现实案例见 2015 年 3 月份 GitHub 遭到的攻击。
U2FsdGVkX1
2019 年 7 月 13 日
@miaomiao888 有一部分留言像是带节奏,说白了就是没石锤的预测当真了,早就脱离怀疑范围了
figo
2019 年 7 月 13 日
@caomu z 正解
skyeycirno
2019 年 7 月 13 日
又扩大了一点黑名单,真好
hoyixi
2019 年 7 月 13 日
这么长&复杂的正则,就算是我自己写的,上个厕所撒泡尿,恐怕我就忘了是神马玩意了
wikinee
2019 年 7 月 14 日
@UnluckyNinja 雨我无瓜,我复制过来的,被吞掉了
wikinee
2019 年 7 月 15 日
@keith1126 你看这个锅,它又黑有重
@skyeycirno 有时间一定要分享一下
@hoyixi 《那些一行代码就能解决的事儿》

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/582606

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX