İçeriğe geç

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.

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()

Girdiyi sorguya gömmek yerine parametreli sorgular (placeholder) veya ORM’in güvenli sorgu API’sini kullanın.