Heim > Datenbank > MySQL-Tutorial > Wie verhindert man SQL-Injection beim Aktualisieren einer SQLite-Datenbank über JSON POST in Python?

Wie verhindert man SQL-Injection beim Aktualisieren einer SQLite-Datenbank über JSON POST in Python?

DDD
Freigeben: 2025-01-04 21:35:41
Original
907 Leute haben es durchsucht

How to Prevent SQL Injection When Updating an SQLite Database via 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()
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage