Regex zaman aşımı koruması yok (ARCH7074)
Anahtar php.performance.regex-timeout · Önem info · Kategori performance
Güvenilmeyen girdiyi sınırsız bir regex ile eşleştirmek, patolojik desenlerde aşırı geri izleme (ReDoS) ile CPU’yu kilitleyebilir. PCRE geri izleme sınırını ayarlayın veya girdi uzunluğunu sınırlayın.
Hatalı
Bölüm başlığı “Hatalı”<?phpfunction matches(string $input): bool{ return (bool) preg_match('/^(\w+)+$/', $input);}<?phpfunction matches(string $input): bool{ if (strlen($input) > 256) { return false; } ini_set('pcre.backtrack_limit', '100000'); return (bool) preg_match('/^\w+$/', $input);}Düzeltme
Bölüm başlığı “Düzeltme”Girdi uzunluğunu sınırlayın ve pcre.backtrack_limit ile geri izlemeyi sınırlandırarak ReDoS’u önleyin.