Haohappy
http://blog.csdn.net/Haohappy2004
SQL インジェクション攻撃は、ハッカーが Web サイトを攻撃するために使用する最も一般的な方法です。サイトで厳密なユーザー入力検証が使用されていない場合、SQL インジェクション攻撃に対して非常に脆弱になります。 SQL インジェクション攻撃は通常、不正なデータやクエリ ステートメントをサイト データベースに送信することによって実行され、データベース内のレコードが公開、変更、または削除される可能性があります。 SQL インジェクション攻撃がどのように実装されるか、そしてそれを防ぐ方法について話しましょう。
この例を見てください:
// 想定される入力
$name = “ilia'; DELETE FROM users;”
mysql_query(“SELECT * FROM users WHERE name= ' {$name}'");
明らかに、データベースによって実行される最後のコマンドは次のとおりです:
SELECT * FROM users WHERE name=ilia; DELETE FROM users
これはデータベースに悲惨な結果をもたらしました - すべてのレコードが削除されました。
しかし、使用しているデータベースが MySQL の場合、幸いなことに、mysql_query() 関数ではそのような操作を直接実行することはできません (1 行で複数のステートメント操作を実行することはできません)。保証されています。使用しているデータベースが SQLite または PostgreSQL で、そのようなステートメントをサポートしている場合は、悲惨な結果に直面することになります。