ホームページ > バックエンド開発 > Python チュートリアル > SQL インジェクションを防ぐために MySQL IN 句でリストを安全に使用する方法

SQL インジェクションを防ぐために MySQL IN 句でリストを安全に使用する方法

Barbara Streisand
リリース: 2024-11-25 20:47:14
オリジナル
941 人が閲覧しました

How to Safely Use Lists in MySQL IN Clauses to Prevent SQL Injection?

MySQL IN 句のリストの安全な組み込み

データベースのセキュリティが最も重要であり、SQL インジェクションを回避することが重要です。 MySQL IN 句で値のリストを使用する場合は、安全に行うことが重要です。

問題:

リストで使用する文字列へのリストの展開IN 句は SQL の影響を受けやすいインジェクション。

# Vulnerable
cursor.execute("DELETE FROM foo.bar WHERE baz IN ('%s')" % foostring)
ログイン後にコピー

解決策:

SQL インジェクションを防ぐには、値のリストをパラメータとして直接使用します。

# Safe
format_strings = ','.join(['%s'] * len(list_of_ids))
cursor.execute("DELETE FROM foo.bar WHERE baz IN (%s)" % format_strings, tuple(list_of_ids))
ログイン後にコピー

Thisこのアプローチでは、値のリストをクエリ文字列に埋め込むのではなくパラメータとして渡し、効果的にインジェクションを防ぎます。

データをパラメータとして MySQL ドライバに直接渡すことにより、手動での引用符やエスケープの必要性がなくなり、データベース操作の整合性が確保されます。

以上がSQL インジェクションを防ぐために MySQL IN 句でリストを安全に使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート