SQL enjeksiyonu (ARCH2100)
Anahtar python.security.sql-injection · Önem error · Kategori security · CWE CWE-89
Kullanıcı girdisini string birleştirme veya biçimlendirme ile SQL sorgusuna gömmek, saldırganın sorgu yapısını değiştirmesine ve veri sızdırmasına olanak tanır. Parametreli sorgu kullanın.
Hatalı
Bölüm başlığı “Hatalı”def get_user(cur, username): cur.execute("SELECT * FROM users WHERE name = '%s'" % username) return cur.fetchone()def get_user(cur, username): cur.execute("SELECT * FROM users WHERE name = %s", (username,)) return cur.fetchone()Düzeltme
Bölüm başlığı “Düzeltme”Girdiyi sorguya gömmek yerine parametreli sorgular (placeholder) veya ORM’in güvenli sorgu API’sini kullanın.