Frage:
Die Sicherstellung der korrekten SQL-Syntax ist eine Herausforderung, wenn SQL-Abfragen ausgeführt werden, die Tabellennamen als Parameter verwenden.
Lösung:
psycopg2.sql-Modul
Laut offizieller Dokumentation bietet das SQL-Modul von psycopg2 eine sichere Möglichkeit, SQL-Abfragen dynamisch zu generieren. Es führt die folgende Syntax ein:
<code>from psycopg2 import sql cur.execute(sql.SQL("insert into {table} values (%s, %s)") .format(table=sql.Identifier('my_table')), [10, 20])</code>
Dieser Ansatz stellt die korrekte SQL-Syntax sicher und eliminiert das Risiko von Injektionsangriffen.
Hinweis: Die AsIs-Methode sollte nicht zur Darstellung von Tabellen- oder Feldnamen verwendet werden. Verwenden Sie stattdessen das SQL-Modul.
Sicherheitswarnung:
Pycopg2 warnt eindringlich davor, Python-String-Verkettung oder String-Parameter-Interpolation zu verwenden, um Variablen an SQL-Abfragen zu übergeben, und weist auf potenzielle Sicherheitslücken hin.
Das obige ist der detaillierte Inhalt vonWie kann ich einen Tabellennamen sicher als Parameter in psycopg2-SQL-Abfragen übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!