Transmettez en toute sécurité le nom de la table comme argument dans Psycopg2
Dans psycopg2, il est fortement déconseillé d'utiliser la concaténation de chaînes (« select %s from %swhere... ») pour passer le nom de la table en paramètre, car cela présente un risque de sécurité. Pensez plutôt à utiliser le module psycopg2.sql, plus sûr.
Le module sql ajouté dans psycopg2 version 2.7 fournit un moyen de générer dynamiquement des requêtes SQL lors de la sélection dynamique des noms de tables. Voici un exemple :
<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>
Pour représenter les noms de tables ou de champs, veuillez utiliser Identifier
au lieu de AsIs
. Pour des raisons de sécurité, évitez d'utiliser la concaténation de chaînes Python ou l'interpolation d'arguments de chaîne.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!