İçeriğe geç

Ham SQL Enjeksiyon Riski (ARCH6055)

Anahtar ruby.orm.raw-sql-injection-risk · Önem critical · Kategori orm

Ham SQL’i bağlı parametre yerine string interpolasyonu/birleştirme ile kurmak hem bir SQL enjeksiyon vektörüdür hem de sorgu-plan önbelleğini bozar. Değerler her zaman parametre olarak geçilmelidir.

def find_by_name(name)
User.where("name = '#{name}'") # interpolasyon = enjeksiyon
end
def find_by_name(name)
User.where("name = ?", name) # bağlı parametre
end

Ham SQL’de değerleri interpolasyon yerine ? veya isimli bağlamayla parametre olarak geçin.