ホームページ >データベース >mysql チュートリアル >psycopg2 でテーブル名をパラメータとして安全に渡すにはどうすればよいですか?

psycopg2 でテーブル名をパラメータとして安全に渡すにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-12 11:06:42920ブラウズ

How Can I Safely Pass a Table Name as a Parameter in psycopg2?

psycopg2 を使用してテーブル名パラメーターを安全に渡します

psycopg2 では、提供されたコードに示されているように、動的パラメーターを使用してクエリを構築すると問題が発生する可能性があります。指定されたコードでは文字列連結を使用しないことを強くお勧めします。

psycopg2 SQL モジュールの使用

Psycopg2 は、バージョン 2.7 で導入された SQL モジュールを使用したソリューションを提供します。このモジュールは、テーブル名パラメータを含むクエリを動的に生成するのに役立ちます。その構文は次のとおりです:

<code>from psycopg2 import sql

# 示例:使用动态表名插入数据
cur.execute(
    sql.SQL("insert into {table} values (%s, %s)")
        .format(table=sql.Identifier('my_table')),
    [10, 20])</code>

正しいパラメータ化の重要性

Python 文字列操作や文字列パラメーター補間ではなく、psycopg2 の SQL モジュールを使用することが好ましいことに注意することが重要です。ドキュメントでは、これらの方法を使用すると脆弱性が生じ、データベースの整合性が損なわれる可能性があるため、使用しないよう明示的に警告しています。

SQL モジュールの詳細については、公式ドキュメントを参照してください: https://www.php.cn/link/9a0f86604fa1dc1686a0cad86a808a5c:

以上がpsycopg2 でテーブル名をパラメータとして安全に渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。