Wenn eine lahme Eingabe in eine SQL-Abfrage direkt eingefügt wird, wird die Anwendung anfällig für SQL-Injection, wie im folgende Beispiel:Wie kann ich die SQL-Injektion in PYTHON-DJANGO verhindern?
dinossauro = request.GET['username']
sql = "SELECT * FROM user_contacts WHERE username = '%s';" % username
die Tabellen oder etwas fallen zu lassen - die Abfrage machen:
INSERT INTO table (column) VALUES('`**`value'); DROP TABLE table;--`**`')
Was kann man tun, um dies zu verhindern?
Darf ich Sie fragen, warum Sie SQL-Abfragen manuell schreiben, anstatt django Models zu verwenden? – smeso
Das Django-ORM, außerhalb von 'roh' und' extra', wird Ihren Anfragen für Sie entgehen. Siehe [Sicherheitsdokumente] (https://docs.djangoproject.com/de/dev/topics/security/#sql-injection-protection). – jonafato