質問: https://kokuzawa.github.io/blog/2014/10/08/jsffalsecsrfdui-ce/ 前提として上記の記事を拝見しました。 正しいルートでリクエストするとトークン認証され、不正にアクセスするとエラーを吐き出すという仕組みなのは理解しましたが、 上記の正しいルートや不正なアクセスというのはどのように判断されているか気になりました。 ご存知の方いらっしゃればご教授いただきたいです。 よろしくお願いします。
回答: > > 正しいルートでリクエストするとトークン認証され、不正にアクセスするとエラーを吐き出すという仕組みなのは理解しましたが、上記の正しいルートや不正なアクセスというのはどのように判断されているか気になりました。 > > > 上記の文の前半で書いておられることが、「正しいルートや不正なアクセス」の判断方法です。記事中だと以下ですね。 > > CSRFの対策は、元の画面にトークンを埋め込み、受け取り先でそのトークンの一致を検証することで 正しいルートからのリクエストであることを判定する方法が一般的です。 JSF 2.2からこの仕組みを利用できるようになっているので対策をします。 > > > 箇条書きで書くとこんな感じです * 正しいルートであれば、正しいトークンを含んでいる * 不正なアクセスの場合、攻撃者は正しいトークンを知りえない * なので、正しいトークンが含まれていれば、正しいルートと判断できる * 逆に、正しいトークンがなければ、不正なアクセスと判断できる