SQLインジェクションは、Webサイトのセキュリティを乗っ取るために使用される手法です。
SQLインジェクションは、入力フィールドで指定されたデータがエスケープ文字でフィルタリングされず、実行のためにSQLクエリに渡されない場合に発生します。
SQLインジェクションのテストについては、次のURLを参照してください。
http://sqlzoo.net/hack/
上記のURLで、名前のフィールドに「 ' 」を指定し、パスワードのフィールドに「 OR 1 = 1# 」を指定してみてください
したがって、結果のクエリは次のようになります
SELECT * from user where name='' OR 1=1#' and password='';
上記の例では、入力フィールドに上記のデータを指定するとクエリが壊れ、匿名ユーザーであれば誰でも簡単にWebサイトにログインできることがわかります。
SQLインジェクションを防ぐためのいくつかのテクニックがあります。
(1)入力データは、実行のためにsqlクエリに渡されるときにmysql_real_escape_stringを使用してフィルタリングする必要があります。
mysql_real_escape_string関数の詳細については、以下のURLに記載されているドキュメントを参照してください。
http://php.net/manual/en/function.mysql-real-escape-string.php