İçeriğe geç

Regex DoS (ARCH3135)

Anahtar typescript.security.regex-dos · Önem warning · Kategori security · CWE CWE-1333

İç içe niceleyiciler içeren ((a+)+ gibi) düzenli ifadeleri güvenilmeyen girdiye uygulamak, felaket geri izleme nedeniyle olay döngüsünü kilitleyerek ReDoS’a yol açar.

app.post("/validate", (req, res) => {
// Girdi "aaaa...!" ise CPU'yu kilitler
const ok = /^(\w+\s?)+$/.test(req.body.name);
res.json({ ok });
});
app.post("/validate", (req, res) => {
const name = String(req.body.name);
// Doğrusal, geri izleme yapmayan basit kontrol
const ok = name.length <= 100 && /^[\w\s]+$/.test(name);
res.json({ ok });
});

İç içe niceleyicilerden kaçının, doğrusal desenler kullanın ve girdi uzunluğunu sınırlayın.