Beim Abrufen von Daten aus nicht vertrauenswürdigen Quellen, wie z. B. Benutzereingaben, ist es wichtig, SQL-Injection-Angriffe zu verhindern. In Python können Sie mit SQLite Ihre Datenbank effektiv schützen, indem Sie die Methodeexecute() des Cursors verwenden.
Betrachten Sie den folgenden Codeausschnitt:
def setLabel( self, userId, refId, label ): self._db.cursor().execute( """ UPDATE items SET label = ? WHERE userId IS ? AND refId IS ?""", ( label, userId, refId) ) self._db.commit()
In diesem Beispiel wird die Bezeichnung von abgerufen dem Benutzer übermittelt und direkt in die SQL-Abfrage eingefügt. Dies legt Schwachstellen für SQL-Injection-Angriffe offen.
Um den Vorgang abzusichern, verwenden Sie die Methodeexecute() mit Parametern wie folgt:
def setLabel( self, userId, refId, label ): self._db.cursor().execute( """ UPDATE items SET label = ? WHERE userId IS ? AND refId IS ?""", ( label, userId, refId) ) self._db.commit()
Parameter werden von SQLite automatisch maskiert und in die Abfrage einbezogen . Dadurch wird verhindert, dass Angreifer Schadcode in Ihre Datenbank einschleusen. Durch die Nutzung dieser Methode können Sie Ihre Anwendung wirksam vor SQL-Injection-Angriffen schützen.
Das obige ist der detaillierte Inhalt vonWie kann ich SQL-Injection-Angriffe verhindern, wenn ich SQLite in Python verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!