← الموارد RESOURCE
تجنّب التعابير النمطية البطيئة والتراجع الكارثي (ReDoS) الذي يشلّ الخدمة.

معظم التعابير النمطية سريعة جدًا، لكن بعض الأنماط قد يزداد زمن تنفيذها أُسّيًا مع طول المدخل. يُسمّى هذا التراجع الكارثي، ويُسمّى الهجوم الذي يوقف الخادم عبر مدخل خبيث ReDoS (حجب الخدمة بالتعابير النمطية).

السبب الأشيع هو المُكمِّمات المتداخلة. عندما يتداخل تكرار داخل تكرار مثل (a+)+ أو (.*)* ثم يفشل ما بعده، يجرّب المحرك كل التقسيمات الممكنة فينفجر. كما يسبّب التناوب الغامض مثل (a|a)* المشكلة نفسها.

جوهر الوقاية هو إزالة الغموض. ادمج التكرارات المتداخلة في واحد، وضيّق المدى مثل [^x]* بدل .*، وفكّر إن أمكن في المجموعات الذرّية أو المُكمِّمات التملّكية (غير موجودة في جافاسكربت). كما أن تحديد طول المدخل فعّال في العمل.

هذا المختبِر يعمل في المتصفح، فالنمط الخطير لا يُبطئ سوى تبويبك للحظة، لكن قبل استخدام النمط ذاته على الخادم مع مدخلات غير موثوقة تحقّق من الأداء حتمًا.