SQLインジェクション(SQLの挿入)は,Webアプリケーションへの攻撃手法の一つです。Webサーバーに対して特殊なデータを送ることで,アプリケーション開発者が想定していないSQL文を実行させます。この攻撃に対する対策を怠ると,データベース内の情報を不正に取得されたり,削除されたりする危険性があります。 SQLインジェクションに対するぜい弱性は,クライアントから受け取ったデータをもとにしてデータベースへのアクセスを実行するSQL文を組み立てる個所で発生します。例えばアプリケーションのプログラム中に,SQL文で操作対象のレコードを絞り込むWHERE句を組み立てる“WHERE userid='$uid'”のようなコードが書かれているとします。プログラマは,変数$uidにはクライアントから受け取ったユーザーIDを格納することを想定しています。 ところが,悪意のあるユーザーが“' OR 1=1--