ホームページ >データベース >mysql チュートリアル >SQL インジェクションを防ぐために Python で MySQL クエリを安全に実行するにはどうすればよいですか?
Python での安全な MySQL 接続とクエリ実行
Web アプリケーションの領域では、安全なデータ処理を確保することが最も重要です。 MySQL を使用する場合、一般的な懸念事項の 1 つは、SQL インジェクション攻撃を防ぐことです。これに対処するには、データベースを悪意のある操作から保護するベスト プラクティスを採用することが不可欠です。
そのようなアプローチの 1 つは、パラメーター マーカー ('%s') を含むプリペアド ステートメントを利用することです。この方法を使用すると、セキュリティを維持しながらクエリに変数を挿入できます。方法は次のとおりです:
cursor = db.cursor() max_price = 5 statement = "SELECT spam, eggs, sausage FROM breakfast WHERE price < %s"
cursor.execute(statement, (max_price,))
直接置換を避ける:
文字列フォーマットを使用してクエリに変数を直接置換しないことが重要です。これは SQL につながる可能性があるためです。インジェクションの脆弱性。代わりに、パラメータ マーカーを厳密に使用し、変数をプリペアド ステートメントにバインドします。
たとえば、次のような文字列置換は使用しないでください。
cursor.execute("SELECT spam, eggs, sausage FROM breakfast WHERE price < %s" % (max_price,))
追加の考慮事項:
以上がSQL インジェクションを防ぐために Python で MySQL クエリを安全に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。