ホームページ >データベース >mysql チュートリアル >Python UPDATE ステートメントを SQL インジェクションから保護するにはどうすればよいですか?
SQL インジェクション攻撃を防ぐには、データベース対話のセキュリティを確保することが重要です。操作の影響を受けやすいユーザー入力を受け入れる場合は、サーバー側で安全策を実装することが不可欠です。この記事では、Python での UPDATE 操作を SQL インジェクションから保護する必要性について説明します。
指定されたシナリオでは、メソッド setLabel はユーザー指定の入力を受け取り、適切な保護なしで SQL UPDATE クエリを実行します。これを軽減するには、入力文字列をデータベース カーソルに安全に渡す前にエスケープする必要があります。
Python の sqlite3 ライブラリには、SQL インジェクションを防ぐ組み込みメカニズムが用意されています。プレースホルダー変数を適切に引用符で囲まれた値に置き換えます。
def setLabel( self, userId, refId, label ): self._db.cursor().execute( """UPDATE items SET label = ? WHERE userId IS ? AND refId IS ?""", ( sqlite3.escape(label), userId, refId ) ) self._db.commit()
sqlite3.escape 関数を利用すると、指定されたラベルが正しくエスケープされ、悪意のある文字や挿入の試みが防止されます。
以上がPython UPDATE ステートメントを SQL インジェクションから保護するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。