Die Gewährleistung der Sicherheit von Datenbankinteraktionen ist entscheidend für die Verhinderung von SQL-Injection-Angriffen. Bei der Annahme manipulationsanfälliger Benutzereingaben ist es zwingend erforderlich, serverseitige Sicherheitsmaßnahmen zu implementieren. In diesem Artikel geht es um die Notwendigkeit, einen UPDATE-Vorgang in Python gegen SQL-Injection zu schützen.
Im gegebenen Szenario nimmt die Methode setLabel vom Benutzer bereitgestellte Eingaben entgegen und führt eine SQL-UPDATE-Abfrage ohne angemessenen Schutz aus. Um dies zu mildern, muss die Eingabezeichenfolge mit einem Escapezeichen versehen werden, bevor sie sicher an den Datenbankcursor übergeben werden kann.
Pythons sqlite3-Bibliothek bietet integrierte Mechanismen, um SQL-Injection zu verhindern. Ersetzen Sie die Platzhaltervariablen durch entsprechend zitierte Werte:
def setLabel( self, userId, refId, label ): self._db.cursor().execute( """UPDATE items SET label = ? WHERE userId IS ? AND refId IS ?""", ( sqlite3.escape(label), userId, refId ) ) self._db.commit()
Durch die Verwendung der sqlite3.escape-Funktion wird die bereitgestellte Bezeichnung korrekt maskiert, wodurch bösartige Zeichen oder Einschleusungsversuche verhindert werden.
Das obige ist der detaillierte Inhalt vonWie kann ich meine Python-UPDATE-Anweisung vor SQL-Injection schützen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!