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 で、そのようなステートメントをサポートしている場合は、悲惨な結果に直面することになります。