Ich schreibe eine Web-App mit dem django-Framework. Ich habe eine Login-Funktion für Benutzer geschrieben. Wie kann ich die Eingabe vor SQL-Injektionen auf die effizienteste Weise schützen?
Um die Django-App vor SQL-Injektionsangriffen zu schützen, sollten Sie bei der Interaktion mit der Datenbank immer parametrierte Abfragen verwenden. In Django bedeutet dies, dass Sie die Abfrage-APIs verwenden, die vom Django-ORM bereitgestellt werden, wie z. B. die Filter()- und get()-Methoden, anstatt rohe SQL-Abfragen zu erstellen. Durch die Verwendung des Django-ORM wird das Framework automatisch mit dem Entweichen von Daten, die an die Abfrage übergeben werden, um SQL-Injektionsangriffe zu verhindern. Beispielsweise zeigt der folgende Code, wie Sie die filter()-Methode verwenden, um einen Benutzer auf der Grundlage seines Benutzernamens zu holen: von django.contrib.auth.models importieren Benutzer def login (Benutzername, Passwort): user = User.objects.filter(username=username).first() wenn Benutzer und Benutzer überprüfen_password(password): # Login erfolgreich anderes: # Login fehlgeschlagen Dieser Code ist sicher vor SQL-Injektionsangriffen, da der Benutzername als Parameter an die Filter()-Methode übergeben wird,