ホームページ >データベース >mysql チュートリアル >MySQL IN 句で Python リストを安全に使用する方法は?

MySQL IN 句で Python リストを安全に使用する方法は?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-18 13:27:21950ブラウズ

How to Safely Use a Python List in a MySQL IN Clause?

Python MySQL IN 句で使用するためのリストのマッピング

MySQL クエリの IN 句で ID のリストを使用しようとする場合、次のことが不可欠です。操作の安全性を確保し、潜在的な SQL インジェクションの脆弱性を回避します。リストを文字列にマッピングしてクエリで直接使用すると脆弱なままになりますが、より安全な方法は、リストをパラメータとして直接使用することです。

これを実現するには、フォーマット文字列を利用して、リストの長さに基づいて、適切な数のプレースホルダー (%s) を生成します。次に、リスト自体がタプルとしてexecute() 関数に渡されるため、手動での引用符やエスケープの必要がなくなります。

format_strings = ','.join(['%s'] * len(list_of_ids))
cursor.execute("DELETE FROM foo.bar WHERE baz IN (%s)" % format_strings,
                tuple(list_of_ids))

データ (list_of_ids) をパラメータとして送信することで、次のように処理されます。 MySQL のドライバーを直接使用するため、インジェクションのリスクが排除されます。このメソッドを使用すると、追加のサニタイズや引用符を必要とせずに、文字列内の任意の文字を保存できます。

以上がMySQL IN 句で Python リストを安全に使用する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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