Maison > base de données > tutoriel mysql > Comment puis-je transmettre en toute sécurité les noms de tables en tant que paramètres dans Psycopg2 ?

Comment puis-je transmettre en toute sécurité les noms de tables en tant que paramètres dans Psycopg2 ?

Patricia Arquette
Libérer: 2025-01-12 11:07:43
original
570 Les gens l'ont consulté

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

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal