Heim >Datenbank >MySQL-Tutorial >Wie verwende ich eine Python-Liste sicher in einer MySQL-IN-Klausel?

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

Barbara Streisand
Barbara StreisandOriginal
2024-12-18 13:27:21950Durchsuche

How to Safely Use a Python List in a MySQL IN Clause?

Zuordnen einer Liste zur Verwendung in einer Python-MySQL-IN-Klausel

Wenn Sie versuchen, eine Liste von IDs in einer IN-Klausel in einer MySQL-Abfrage zu verwenden, ist es wichtig, Folgendes zu tun Gewährleisten Sie die Sicherheit des Vorgangs und vermeiden Sie potenzielle Sicherheitslücken durch SQL-Injection. Anstatt die Liste einer Zeichenfolge zuzuordnen und sie direkt in der Abfrage zu verwenden, was sie anfällig macht, besteht ein sichererer Ansatz darin, die Liste direkt als Parameter zu verwenden.

Um dies zu erreichen, kann man eine Formatzeichenfolge verwenden Generieren Sie die entsprechende Anzahl von Platzhaltern (%s) basierend auf der Länge der Liste. Die Liste selbst wird dann als Tupel an die Funktionexecute() übergeben, wodurch die Notwendigkeit manueller Anführungszeichen und Escapezeichen vermieden wird.

format_strings = ','.join(['%s'] * len(list_of_ids))
cursor.execute("DELETE FROM foo.bar WHERE baz IN (%s)" % format_strings,
                tuple(list_of_ids))

Durch das Senden der Daten (list_of_ids) als Parameter werden diese von verarbeitet MySQL-Treiber direkt, wodurch das Risiko einer Injektion vermieden wird. Diese Methode ermöglicht die Beibehaltung aller Zeichen innerhalb der Zeichenfolge, ohne dass eine zusätzliche Bereinigung oder Anführungszeichen erforderlich ist.

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

Stellungnahme:
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