保護 Python 應用程式免受 SQL 注入
SQL 注入攻擊對處理使用者提供的輸入的應用程式構成重大威脅。在 Python 中,當在 SQLite 資料庫中的 char(80) 欄位中設定值時,實現針對這些攻擊的保護至關重要。
為了保護 UPDATE 操作免受 SQL 注入,建議使用允許的參數化查詢您可以將使用者提供的輸入作為參數傳遞,同時將其與 SQL 語句分開。這可以防止惡意字元幹擾 SQL 語法。
Python SQLite3 模組中的cursor.execute() 方法支援使用 ? 的參數化查詢。佔位符。您可以在execute() 呼叫中將使用者輸入指定為值的元組。例如:
def setLabel(self, userId, refId, label): self._db.cursor().execute( """UPDATE items SET label = ? WHERE userId IS ? AND refId IS ?""", (label, userId, refId) ) self._db.commit()
在這個修改後的程式碼中,使用者提供的標籤作為第一個參數作為單獨的參數傳遞給cursor.execute()方法,防止惡意輸入操縱SQL語句。
透過使用參數化查詢,您可以有效保護您的應用程式免受SQL注入攻擊,並確保資料庫的完整性和安全性。
以上是參數化查詢如何保護 Python 應用程式免受 SQL 注入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!