CSRF(Cross Site Request Forgeries) : PHP

Pocket

CSRF(Cross Site Request Forgeries) のメモ。

CSRF(Cross Site Request Forgeries) の概要

攻撃対象サイト(V)、Vにログイン中のユーザー(U)、攻撃元サイト(A)がいるとする。
UはVにログインしている。ログイン中のUがログアウトしないでAにアクセスする。UがAの不正なHTTPリクエストを送信するリンクをクリックする。
VでCSRFの対策が採られていない場合はログイン中のVからのリクエストであるためAにしかけられた不正なHTTPリクエストを実行してしまう[1]

対策

  • リファラーのチェック
  • ワンタイムトークン
  • パスワード

リファラーをチェックする。同一サイトVからのリクエストなら処理を行う。そうでなければエラーで返す[2]

参考URL
»開発者のための正しいCSRF対策
»高木浩光の@自宅の日記

[1] 不正なHTTPリクエストを送信する手段は上記のようにサイトのリンクとして仕掛けたり、メールの中に不正なリンクを埋め込む等の方法などがある。
[2] しかしウィルス対策ソフトやブラウザーの設定によってはリファラーが送信されない場合があるため、完全な方法ではない。

コメント

No comments yet.

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。