İçeriğe geç

Regex hizmet reddi (ARCH4135)

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

İç içe niceleyiciler içeren regex’ler (örneğin (a+)+) güvenilmeyen girdiye uygulandığında katastrofik geri izlemeye yol açar; saldırgan kısa bir girdiyle CPU’yu tüketebilir (ReDoS).

Pattern p = Pattern.compile("(a+)+$");
boolean match = p.matcher(userInput).matches();
Pattern p = Pattern.compile("a+$");
boolean match = p.matcher(userInput).matches();

İç içe niceleyicileri ortadan kaldıracak şekilde regex’i basitleştirin; girdi uzunluğunu sınırlayın veya doğrusal zamanlı bir motor kullanın.