İçeriğe geç

Düzenli ifade DoS (ARCH6135)

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

İç içe nicelik belirteçleri içeren (felaket geri izlemeye yol açan) bir regex’i güvenilmeyen girdiye uygulamak, CPU’yu tüketen bir hizmet reddine (ReDoS) yol açar.

def valid?(input)
input =~ /^(a+)+$/
end
def valid?(input)
Regexp.new("^a+$").match?(input, timeout: 1)
end

İç içe nicelik belirteçlerinden kaçının ve regex eşleştirmeye bir zaman aşımı/uzunluk sınırı ekleyin.