首頁 > 資料庫 > mysql教程 > 參數化查詢如何防止 Python 的 SQLite 互動中的 SQL 注入?

參數化查詢如何防止 Python 的 SQLite 互動中的 SQL 注入?

Barbara Streisand
發布: 2025-01-05 00:17:40
原創
557 人瀏覽過

How Can Parameterized Queries Prevent SQL Injection in Python's SQLite Interactions?

在Python 中防止SQL 注入

問題:

問題:

您有一個Phon 腳本,更新SQLite 資料庫中的char(80) 值。字串值直接從使用者取得並作為 JSON 負載傳遞到腳本。您知道這種方法容易受到 SQL 注入攻擊。

解決方案:

為了防止 SQL 注入,您可以在更新操作中使用參數化查詢。參數化查詢可讓您將值傳遞給 SQL 語句,而無需將它們直接包含在查詢字串中。這可以防止惡意輸入破壞 SQL 語法。 Python sqlite3 函式庫支援透過 ? 進行參數化查詢。佔位符。您可以將值作為與查詢中的佔位符相對應的值元組傳遞給執行方法。

修訂的程式碼:
def setLabel( self, userId, refId, label ):
    self._db.cursor().execute(
        """
        UPDATE items SET label = ? WHERE userId = ? AND refId = ?""",
        (label, userId, refId)
    )
    self._db.commit()
登入後複製

這裡是您的使用參數化查詢的setLabel 方法:透過使用參數化查詢,您可以確保使用者輸入是被視為一個值而非SQL語句的一部分,有效防止SQL注入攻擊。

以上是參數化查詢如何防止 Python 的 SQLite 互動中的 SQL 注入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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