クロスサイトリクエストフォージェリ
CSRF脆弱性を具体例を用いて説明する。 今ある銀行のWebサイト(標的サイト)にログインしているユーザALICEが自身の口座からBOBという別のユーザの口座に100ドルを送金する際、ALICEのブラウザから
というHTTPリクエストが銀行のWebサイトに向かって送信されるものとする。
攻撃者MARIAは
というURLを公開掲示板に張ったり、不特定多数にメールしたりする。
銀行のユーザALICEがこのURLをクリックしてしまうと、ALICEのブラウザから
というHTTPリクエストが銀行に向かって送信される。この際たまたまALICEが銀行にログインしていたら、銀行のサーバはこのリクエストを送金要求だと解釈してしまい、ALICEの口座からMARIAの口座に一万ドルが不正送金されてしまう。
本来、銀行のサーバは、ALICEのブラウザから受け取ったHTTPリクエストが本当にALICE当人の意志で送られたものなのかをチェックし、チェックを通った時のみHTTPリクエストを受け付けるべきである。
ログインしていることが必要な手続きにおいては、ログアウトをしてセッションを破棄しておけば認証確認の段階で手続きが拒否されるので被害が抑えられる。必要な手続きを済ませたならログアウトすることが望ましい。