Wie kann ich eine Liste in einer MySQL-IN-Klausel in Python sicher verwenden?

Linda Hamilton
Freigeben: 2024-11-19 16:04:02
Original
341 Leute haben es durchsucht

How Can I Safely Use a List in a MySQL IN Clause in Python?

Eine Liste sicher in einer MySQL-IN-Klausel in Python verwenden

In Python können Sie eine Liste mithilfe des Joins ganz einfach in einen String konvertieren ()-Methode. Bei der Verwendung dieser Zeichenfolge in einer MySQL-IN-Klausel ist es jedoch wichtig, SQL-Injection-Schwachstellen zu vermeiden.

Der traditionelle Ansatz besteht darin, die Zeichenfolge vor der Ausführung manuell in Anführungszeichen zu setzen und mit Escapezeichen zu versehen, was fehleranfällig sein kann. Um dieses Problem zu lösen, können Sie die leistungsstarke list_of_ids mithilfe der folgenden Technik direkt nutzen:

  1. Erstellen Sie eine Formatzeichenfolge: Erstellen Sie eine Zeichenfolge mit Platzhaltern für die Werte in der Liste. Wenn list_of_ids beispielsweise 3 Elemente enthält, erstellen Sie eine Zeichenfolge wie ','.join(['%s'] * 3), die zu „?, ?, ?“ führen würde.
  2. Führen Sie die Abfrage aus: Verwenden Sie die Methodeexecute() des Cursorobjekts, um die Abfrage auszuführen. Übergeben Sie die Formatzeichenfolge als erstes Argument und list_of_ids als zweites Argument. Dadurch wird sichergestellt, dass die Werte als Parameter übergeben und nicht in die Abfragezeichenfolge interpoliert werden.
format_strings = ','.join(['%s'] * len(list_of_ids))
cursor.execute("DELETE FROM foo.bar WHERE baz IN (%s)" % format_strings, tuple(list_of_ids))
Nach dem Login kopieren

Mit diesem Ansatz können Sie eine Liste sicher in einer MySQL IN-Klausel verwenden, ohne sich Gedanken über SQL-Injection machen zu müssen . Die Daten werden direkt als Parameter übergeben, sodass keine manuellen Anführungszeichen und Escapezeichen erforderlich sind.

Das obige ist der detaillierte Inhalt vonWie kann ich eine Liste in einer MySQL-IN-Klausel in Python sicher verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage