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

2019-07-13 11:53:15 +08:00
 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

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

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

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

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

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

© 2021 V2EX