← Sumber Daya RESOURCE
Menghindari regex yang lambat dan catastrophic backtracking (ReDoS) yang melumpuhkan layanan.

Sebagian besar regex sangat cepat, tetapi pola tertentu dapat membuat waktu eksekusi bertambah secara eksponensial seiring panjang masukan. Ini disebut catastrophic backtracking, dan serangan yang menghentikan server dengan masukan berbahaya disebut ReDoS (penolakan layanan regex).

Penyebab paling umum adalah kuantifikator bersarang. Seperti (a+)+ atau (.*)*, ketika pengulangan bertumpuk di dalam pengulangan dan bagian setelahnya gagal, mesin mencoba semua kemungkinan pembagian sehingga meledak. Alternasi ambigu seperti (a|a)* juga menimbulkan masalah yang sama.

Inti pencegahan adalah menghilangkan ambiguitas. Gabungkan pengulangan yang bertumpang tindih menjadi satu, persempit cakupan seperti [^x]* alih-alih .*, dan bila mungkin pertimbangkan grup atomik atau kuantifikator posesif (tidak ada di JavaScript). Membatasi panjang masukan juga efektif dalam praktik.

Karena penguji ini berjalan di browser, pola berbahaya hanya akan membuat tab Anda melambat sesaat; namun sebelum memakai pola yang sama pada masukan tak tepercaya di server, pastikan Anda selalu memeriksa kinerjanya.