İçeriğe geç

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.

var match = Regex.IsMatch(input, @"^(a+)+$");
var match = Regex.IsMatch(
input, @"^(a+)+$", RegexOptions.None, TimeSpan.FromSeconds(1));

Kullanıcı kontrollü girdiye uygulanan tüm regex işlemlerine bir TimeSpan zaman aşımı ekleyin (veya AppDomain genelinde varsayılan ayarlayın).