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
Freigeben: 2025-01-12 11:07:43
Original
649 Leute haben es durchsucht

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:

from psycopg2 import sql

cur.execute(
    sql.SQL("insert into {table} values (%s, %s)").format(table=sql.Identifier('my_table')),
    [10, 20]
)
Nach dem Login kopieren

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!

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