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

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

Mary-Kate Olsen
リリース: 2025-01-12 11:21:46
オリジナル
867 人が閲覧しました

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

psycopg2 のパラメータとしてテーブル名を渡します

質問:

テーブル名をパラメータとして使用して SQL クエリを実行する場合、SQL 構文が正しいことを確認するのは困難です。

解決策:

psycopg2.sql モジュール

公式ドキュメントによると、psycopg2 の SQL モジュールは 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>
ログイン後にコピー

このアプローチにより、正しい SQL 構文が保証され、インジェクション攻撃のリスクが排除されます。

注: AsIs メソッドは、テーブル名またはフィールド名を表すために使用しないでください。代わりに、sql モジュールを使用してください。

安全警告:

Pycopg2 は、SQL クエリに変数を渡すために Python 文字列連結または文字列パラメータ補間を使用することに対して強く警告し、潜在的なセキュリティ脆弱性を強調しています。

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

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