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

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

Patricia Arquette
リリース: 2025-01-12 11:07:43
オリジナル
603 人が閲覧しました

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

Psycopg2 の引数としてテーブル名を安全に渡します

psycopg2 では、セキュリティ リスクを引き起こすため、テーブル名をパラメータとして渡すために文字列連結 ('select %s from %s where...') を使用することは強くお勧めできません。 代わりに、より安全な psycopg2.sql モジュールの使用を検討してください。

psycopg2 バージョン 2.7 で追加された SQL モジュールは、テーブル名を動的に選択するときに SQL クエリを動的に生成する方法を提供します。以下に例を示します:

<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>
ログイン後にコピー

テーブル名またはフィールド名を表すには、Identifier の代わりに AsIs を使用してください。セキュリティ上の理由から、Python 文字列連結または文字列引数補間の使用は避けてください。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート