Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann man Listen in MySQL-IN-Klauseln sicher verwenden, um SQL-Injection zu verhindern?

Wie kann man Listen in MySQL-IN-Klauseln sicher verwenden, um SQL-Injection zu verhindern?

Barbara Streisand
Barbara StreisandOriginal
2024-11-25 20:47:14887Durchsuche

How to Safely Use Lists in MySQL IN Clauses to Prevent SQL Injection?

Sicheres Implodieren von Listen für MySQL IN-Klauseln

Datenbanksicherheit ist von größter Bedeutung und die Vermeidung von SQL-Injection ist von entscheidender Bedeutung. Bei der Verwendung einer Liste von Werten in einer MySQL IN-Klausel ist es wichtig, dies sicher zu tun.

Problem:

Erweitern einer Liste in eine Zeichenfolge zur Verwendung in einer Die IN-Klausel ist anfällig für SQL Injektion.

# Vulnerable
cursor.execute("DELETE FROM foo.bar WHERE baz IN ('%s')" % foostring)

Lösung:

Um sich vor SQL-Injection zu schützen, verwenden Sie die Werteliste direkt als Parameter:

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

Dies Der Ansatz übergibt die Werteliste als Parameter, anstatt sie in die Abfragezeichenfolge einzubetten, wodurch Injektionsangriffe effektiv verhindert werden.

Durch direkte Übergabe von Daten an den MySQL-Treiber als Parameter machen manuelle Anführungszeichen und Escapezeichen überflüssig und stellen die Integrität Ihrer Datenbankoperationen sicher.

Das obige ist der detaillierte Inhalt vonWie kann man Listen in MySQL-IN-Klauseln sicher verwenden, um SQL-Injection zu verhindern?. 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