İçeriğe geç

İşletim sistemi komut enjeksiyonu (ARCH6102)

Anahtar ruby.security.os-command-injection · Önem error · Kategori security · CWE CWE-78

Komut dizesini güvenilmeyen girdiden kurmak veya komutu bir kabuk üzerinden çalıştırmak, saldırganın keyfi komut enjekte etmesine olanak tanır.

def ping(host)
`ping -c 1 #{host}`
end
def ping(host)
out, _ = Open3.capture2("ping", "-c", "1", host)
out
end

Kabuk yerine argümanları dizi olarak geçen API’leri (Open3, system dizi formu) kullanın; asla girdiyi komuta interpole etmeyin.