「クロスサイトリクエストフォージェリ」の版間の差分

削除された内容 追加された内容
83行目:
CSRFは、外部formからのhttp_requestであるため、環境変数のhttp_refererを取得し照合することによって簡単に判定することが可能である。攻撃者自身の環境ではhttp_refererを捏造することが可能であるが、CSRFは匿名性を重視するため、第三者のインターネット接続環境で実行させることが重要となる。第三者の環境においてhttp_refererを偽装させる事は、上記に述べられる手法では不可能であるため、http_refererをモニタリングするのみで簡単に対策することが出来る。掲示板スクリプトは、掲示板荒らしの対策として同様な機能を実装しているものが大半である。
 
http_refererの情報に頼らない方法として、FormをHTTP GETする際に、[[暗号論的擬似乱数生成器|暗号論的擬似乱数]]を[[電子署名]]([[メッセージ認証コード]])付きの[[Cookie]]値およびformのhidden値として発行し、HTTP POST時にその両者の値の同一性を検証するという方法がある。Cookieには電子署名が付けられているため、第三者はこれを変更・偽造することができず、不正なPOSTを送信させることができない。現代的なHTML Form生成用ライブラリは、この仕組みの実現を支援する機能を備えている。
 
<!--以下、一般的な対策手法ではないためコメントアウト--><!--いえ、これは現代的な手法です。以下の説明は少し問題がありますが、このアプローチは本質的なものであるので(refererベースより良い)、改善して上に加えました。--><!--