MySQL でのパラメータ化されたクエリによる SQL インジェクション攻撃の回避
MySQL では、セキュリティの脆弱性を回避するために、データを挿入するときにパラメータ化されたクエリを使用することが不可欠です。提供されたコード スニペットに示されているように、文字列補間は入力パラメータを適切にエスケープしないため、SQL インジェクション攻撃を受けやすくなります。
MySQLdb モジュールを使用した MySQL のパラメータ化されたクエリの正しい構文は次のとおりです。
cursor.execute (""" INSERT INTO Songs (SongName, SongArtist, SongAlbum, SongGenre, SongLength, SongLocation) VALUES (%s, %s, %s, %s, %s, %s) """, (var1, var2, var3, var4, var5, var6))
この構文では、変数値の代わりにプレースホルダー (%s) が使用されます。タプル (var1、var2、...、var6) には、挿入される実際の値が含まれています。
パラメータ化されたクエリを採用することで、すべての入力パラメータが適切にエスケープされ、悪意のある攻撃者による有害な SQL コードの挿入が防止されます。データベースに侵入し、潜在的な脆弱性を悪用します。
以上がパラメータ化されたクエリは MySQL での SQL インジェクションをどのように防ぐことができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。