リストを使用した安全な MySQL IN 句の作成
MySQL データベースと Python を使用する場合、リストを内分解して使用すると便利です。 IN 句。ただし、SQL インジェクションの脆弱性を防ぐために、これを安全に行うことが不可欠です。
値のリストを含む文字列を手動で構築する代わりに、クエリ パラメーター メカニズムを使用することをお勧めします。これにより、引用符やエスケープを処理することなく、リストをデータベース ドライバーに直接渡すことができます。
これを実現する方法は次のとおりです:
format_strings = ','.join(['%s'] * len(list_of_ids)) cursor.execute("DELETE FROM foo.bar WHERE baz IN (" format_strings ")", tuple(list_of_ids))
このメソッドを使用すると、MySQL がパラメータ化を処理できるようになり、SQL インジェクションを回避できます。クエリ。データは前処理なしでクエリに直接挿入されるため、安全性と効率性の両方が保証されます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3