首頁 > 資料庫 > mysql教程 > 如何在 Psycopg2 中安全地傳遞表格名稱作為參數?

如何在 Psycopg2 中安全地傳遞表格名稱作為參數?

Patricia Arquette
發布: 2025-01-12 11:07:43
原創
602 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板