ホームページ >データベース >mysql チュートリアル >Python UPDATE ステートメントを SQL インジェクションから保護するにはどうすればよいですか?

Python UPDATE ステートメントを SQL インジェクションから保護するにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-04 17:57:40775ブラウズ

How Can I Secure My Python UPDATE Statement Against SQL Injection?

Python での 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。