ReDoS
Regular expression Denial-of-Service
正規表現の脆弱性 (ReDoS) を JavaScript で学ぶ
並非侵入系統內部類型的漏洞,而是會導致無限迴圈造成執行阻塞的漏洞
例如以下程式碼
code:javascript
console.time();
/\s+$/.test(" ".repeat(65536) + "a");
console.timeEnd();
會花上超過3000ms的執行時間
與使用的語言環境無關,和RegEx的內部實作模式有關
正規表達式沒寫好會怎樣?淺談 ReDoS:利用 regexp 的攻擊 - Huli's blog
Huli