情報セキュリティ講座(99) クロスサイトリクエストフォージェリ
サイトをまたがって攻撃をする点では、クロスサイトスクリプティング(XSS)と似ていますが、XSSが、PC側でスクリプトが動作するのに対し、クロスサイトリクエストフォージェリ(CSRF = Cross Site Request Forgeries)は、ターゲットとなるサイトにログインしたユーザが、ログインしたまま悪意あるサイトに移ると、ターゲットサイトに対して勝手な操作をする、というものです。
Webサイトは、一旦ログインすると、時間オーバーとなるか、ログアウトするまでは、ログイン状態が続きます。この状態で、悪意あるサイトに移り、操作をすると、もともとログインしているWebサイトに対して、意図しない動作をすることがあります。Cookieなどを介して、ログインして確立したセション情報が、悪用されてしまうのです。
この対策として、いくつか挙げられます。
1. GETメソッドではなくPOSTメソッドでアクセスする
HTTPでWebサーバにアクセスする際に、GETメソッドを使うと、IDなどがURLに記載されてしまいます。これらの情報が洩れないように、POSTメソッドを使います。ID情報はそのままでは伝達できないため、hiddenフィールドに格納すると、URL上には情報が表示されません。
2. パスワードの再要求
注文や支払いなどの処理を実行する前に、再度パスワードを要求するようにすると、悪意あるアクセス者は、それ以上の操作ができなくなります。
3. Refererを参照し、リンク先を確認する
HTTPでRefererを確認することで、遷移してきたページが正しいページであったかを確認できます。
4. 重要な操作の際にはメールを送信する。
あらかじめメールアドレスを登録しておけば、重要な操作(注文や、支払いや、引き落としなど)が不正に行われた際に、早期に気づくことができます。