Regex timeout (ARCH306)
Anahtar dotnet.security.regex-timeout · Önem warning · Kategori security · CWE CWE-1333
Timeout olmadan çalışan bir regex, hazırlanmış girdiyle katlanarak yavaşlayabilir (ReDoS) ve hizmet reddine yol açar. Her zaman bir eşleştirme zaman aşımı belirtin.
Hatalı
Bölüm başlığı “Hatalı”var match = Regex.IsMatch(input, @"^(a+)+$");var match = Regex.IsMatch( input, @"^(a+)+$", RegexOptions.None, TimeSpan.FromSeconds(1));Düzeltme
Bölüm başlığı “Düzeltme”Kullanıcı kontrollü girdiye uygulanan tüm regex işlemlerine bir TimeSpan zaman aşımı ekleyin (veya AppDomain genelinde varsayılan ayarlayın).