generated at
CSRF
Cross-Site Request Forgeries
「しーさーふ」と読む

利用者の個人情報を抜き取るのではなく、利用者に以下のような処理を実行させる
利用者のアカウントによる物品の購入
利用者の退会処理
利用者のアカウントに依るSNSや問い合わせフォームへの書き込み
利用者のパスワードやメールアドレスの変更





具体例
登場人物
攻撃者X
攻撃者の作った罠サイトXS
http://XS.com
被害者A
攻撃対象サイトS
http://S.com
http://S.com/password/change はpasswordの変更フォームがあるページ
前提
Sは例えばAmazonのようなECサイト
脆弱性がある
AはSの利用者で、既にログイン済み
Aのブラウザ上では、Sのsession idがcookieとして保存されている
XSは、例えばSのおすすめ商品の紹介ブログを模したもの
手順
1 Xが罠サイトXSを作る
ここに以下のようなものを仕込んでおく
html
<body onload="doument.forms[0].submit()"> <form action="http://A.com/password/change" method="POST"> <input type="hidden" name="password" value="hogehoge"> </form> </body>
2 AがXSに訪問する
するとJS経由で、上のformの内容がSへ送信される
Aのsession idも付与して、passwordを hogehoge として、S上のパスワード変更処理が行われる
攻撃完了
つまり、
AがXSにアクセスした時点で、Sでのpasswordが変更される
あとは、XがAのidと hogehoge でSにログインすれば、Aとして購入などができる
A目線では、Sとは全然関係ないXSにアクセスしただけなのに被害を受けている



サイト作成者の対策
想定通りの画面遷移が行われたかどうかを確認する。または、事前に渡したトークンが正しいものであるかをチェックするということが有効


サイト利用者の対策
XS にアクセスした時点でアウト
対策としては、
パスワードを定期的に変える
S 以外のサイトを見るときは、 S を常にログアウトしておく
シークレットウィンドウを使う
JSを無効にする




参考
未読箇所も多いmrsekut