Heim >Datenbank >MySQL-Tutorial >Wie kann ich Tabellennamen sicher als Parameter in Psycopg2 übergeben?

Wie kann ich Tabellennamen sicher als Parameter in Psycopg2 übergeben?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-12 11:07:43572Durchsuche

How Can I Safely Pass Table Names as Parameters in Psycopg2?

Tabellennamen sicher als Argument in Psycopg2 übergeben

In psycopg2 wird dringend davon abgeraten, Zeichenfolgenverkettung („select %s from %s where...“) zu verwenden, um den Tabellennamen als Parameter zu übergeben, da dies ein Sicherheitsrisiko darstellt. Erwägen Sie stattdessen die Verwendung des sichereren Moduls psycopg2.sql.

Das in psycopg2 Version 2.7 hinzugefügte SQL-Modul bietet eine Möglichkeit, SQL-Abfragen dynamisch zu generieren, wenn Tabellennamen dynamisch ausgewählt werden. Hier ist ein Beispiel:

<code class="language-python">from psycopg2 import sql

cur.execute(
    sql.SQL("insert into {table} values (%s, %s)").format(table=sql.Identifier('my_table')),
    [10, 20]
)</code>

Um Tabellen- oder Feldnamen darzustellen, verwenden Sie bitte Identifier anstelle von AsIs. Vermeiden Sie aus Sicherheitsgründen die Verwendung der Python-String-Verkettung oder String-Argument-Interpolation.

Das obige ist der detaillierte Inhalt vonWie kann ich Tabellennamen sicher als Parameter in Psycopg2 übergeben?. 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