Şablon enjeksiyonu (ARCH6130)
Anahtar ruby.security.template-injection · Önem error · Kategori security · CWE CWE-1336
Şablonun kendisini güvenilmeyen girdiden kurup render etmek, saldırganın şablon motorunda kod çalıştırmasına (SSTI/RCE) olanak tanır.
Hatalı
Bölüm başlığı “Hatalı”def render_msg(input) ERB.new("Hello #{input}").result(binding)enddef render_msg(input) ERB.new("Hello <%= name %>").result_with_hash(name: input)endDüzeltme
Bölüm başlığı “Düzeltme”Şablonları sabit tutun; kullanıcı girdisini şablon kaynağına değil, render’a veri olarak geçirin.