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