Heim >Datenbank >MySQL-Tutorial >Wie verhindert man SQL-Injection beim Aktualisieren einer SQLite-Datenbank über JSON POST in Python?
SQL-Injection-Schutz in Python
Frage:
Zum Schutz vor SQL-Injection-Schwachstellen: Wie kann eine vom Benutzer empfangene und über JSON POST gesendete Zeichenfolge für sichere Aktualisierungsvorgänge in einer SQLite-Datenbank bereinigt werden? Python?
Antwort:
Verwendung parametrisierter Abfragen
Der empfohlene Ansatz zur Minderung des SQL-Injection-Risikos ist die Verwendung parametrisierter Abfragen . Das sqlite3-Modul von Python unterstützt dies über Platzhalterparameter (?). Anstatt Benutzereingaben direkt in der SQL-Anweisung zu verketten, werden sie als Parameter übergeben, wodurch Benutzereingaben von der SQL-Syntax getrennt werden.
Überarbeiteter Code:
def setLabel(self, userId, refId, label): cursor = self._db.cursor() query = """UPDATE items SET label = ? WHERE userId IS ? AND refId IS ?""" cursor.execute(query, (label, userId, refId)) self._db.commit()
Von Bei Verwendung einer parametrisierten Abfrage werden alle potenziell schädlichen Zeichen oder Metazeichen in der Label-Eingabe automatisch maskiert, um sicherzustellen, dass sie als wörtlicher Text und nicht als SQL interpretiert werden Befehle.
Das obige ist der detaillierte Inhalt vonWie verhindert man SQL-Injection beim Aktualisieren einer SQLite-Datenbank über JSON POST in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!