Wie kann ich verhindern, dass SQL-injection in PYTHON-DJANGO?

Wenn ein lamer Eingang ist eingefügt in eine SQL-Abfrage direkt, die Anwendung ist anfällig für SQL-injection, wie im folgenden Beispiel:

dinossauro = request.GET['username']

sql = "SELECT * FROM user_contacts WHERE username = '%s';" % username

Drop Tabellen oder nichts-macht die Abfrage:

INSERT INTO table (column) VALUES('`**`value'); DROP TABLE table;--`**`')

Was kann man tun, um dies zu verhindern?

  • Darf ich Sie Fragen, warum sind Sie manuell schreiben von sql-Abfragen anstelle von django-Modelle?
  • Die django-ORM, außerhalb der raw und extra entgeht Ihrer Fragen für Sie. Siehe die Sicherheits-docs.
Schreibe einen Kommentar