Na początku lipca pisałem o awarii usługi Cloudflare, przez co spora część internetu (strony WWW) przestała działać. Wspomniałem wtedy też, że ekipa z Cloudflare zapowiedziała, że niebawem napisze coś więcej na temat samego incydentu. I jak zapowiedzieli, tak zrobili…
Wyrażenie regularne, które zatrzymało Cloudflare i spory kawał(ek) internetu
Od pierwszych informacji na temat usterki była wiadomo, że przyczyną było wdrożenie błędnego wyrażenia regularnego (RegEx) w regułach WAF (Web Application Firewall), co spowodowało natychmiastowe obciążenie procesorów maszyn obsługujących usługę.
Wg informacji z bloga Cloudflare całe wyrażenie regularne wygląda tak:
?:(?:\"|'|\]|\}|\\|\d|(?:nan|infinity|true|false|null|undefined|symbol|math)|\`|\-|\+)+[)]*;?((?:\s|-|~|!|{}|\|\||\+)*.*(?:.*=.*)))
Z czego problematyczny fragment, który został dodany to niepozorne:
.*(?:.*=.*)
Te kilka niepozornych znaków pokazuje świetnie potęgę wyrażeń regularnych. Tylko tyle wystarczyło, by internet wstrzymał oddech.
Nie będę nawet usiłował wyjaśniać wyrażenia regularnego, zasady działania itp., bo choć zdarza mi się korzystać, to jest to tylko tyle, ile muszę. Choć wtedy często wpadam na szalony pomysł, by poświęcić trochę czasu i z wyrażeniami regularnymi zapoznać się dogłębnie. Na szczęście szybko wraca rozsądek i temat zostawiam… ;-)
- DJI Lito 1 i DJI Lito X1, czyli nowa seria dronów Mini, ale raczej nie zamiast Mini Pro - 1970-01-01
- Zmiana „w locie” poziomu logowania w ESPHome za pomocą komponentu „select” (nie tylko z poziomu Home Assistant) - 1970-01-01
- Gdy chcesz wkleić hasło wygenerowane przez menedżer haseł, ale w KSeF uznali, że wygodniej i bezpieczniej będzie, jak je wpiszesz ręcznie - 1970-01-01





