[閒聊] Cloudflare 發生問題的 RegEx

看板NetSecurity (資安 資訊安全)作者 (不要偷 Q)時間5年前 (2019/07/13 22:12), 編輯推噓1(100)
留言1則, 1人參與, 5年前最新討論串1/1
在 Clludflrae[0] 的官方文章中提到了 大家想知道發生問題的 regex 為何 根據文章中提到出現問題的 regex 因為出現了 .*(?:.*=.*) 導致出現 DoS 的狀況發生 也就是資源被佔滿的情況 (以這次的例子是 CPU) 這類型的問題可以被稱為 ReDos [1] 是一種因為正規表示法 (RegEx) 撰寫時的疏忽導致再比對時 耗盡 CPU 資源 經典的例子是 (a+)+ 這個表示法 當比對 aaaa! 時 會根據 a 的數量而比對次數成等比成長 原因在於當配失敗時 會觸發 backtrack 而繼續比對 更多的比對資訊可以使用 Perl[2] 的 debug 工具 [0]: https://blog.cloudflare.com/details-of-the-cloudflare-outage-on-july-2-2019/ [1]: https://en.wikipedia.org/wiki/ReDoS [2]: https://metacpan.org/pod/Regexp::Debugger -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.1.224.240 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/NetSecurity/M.1563027175.A.0CC.html

07/13 22:54, 5年前 , 1F
好文推推
07/13 22:54, 1F
文章代碼(AID): #1TAURd3C (NetSecurity)
文章代碼(AID): #1TAURd3C (NetSecurity)