それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

CRSFについての考察

そもそも、データ操作URLが一意だから狙われるんじゃないのかなと思ったり。

それってmod_rewriteで、解決できないかな?


たとえばmixiの日記にコメントを入れるURLはこれ。

http://mixi.jp/add_comment.pl?diary_id=23465754534

もし、このURLが類推されにくいモノだったら、少しは安全?

http://mixi.jp/LOGIN_USER_ID/add_comment.pl?diary_id=23465754534

このままでは、USER_IDわかれば攻撃ができる。なので

http://mixi.jp/md5Hex(LOGIN_USER_ID.'CERT_KEY')/add_comment.pl?diary_id=23465754534

にしておいて、URLを類推不可にすれば、無差別テロは防げるんじゃないか。*1

ユーザー認証後にデータ操作するURLが一意である必要はないんじゃないか。広く世界に公開するURLじゃないんだ。適当なURLでイイじゃないか。*2 


だって全ユーザー同じURLでアクセスするからCSRF出来るんじゃないの。。。
で、思うのは。

ログインユーザーに発行するべきはCOOKIE&SESSION_IDではなく、ユーザー専用のURLであるべき?

なので対策すべきはURLだと思うのですが。*3

これってどうなんだろう。高木さんのブログを読み返してみても、こういう手法は提案されてない。
どうなんだろう全く駄目なのかな。*4

*1:URLを盗聴されてたら全く意味はないが、攻撃者の攻撃機会を減らすことは効果的じゃないのかな。盗聴に関しては、SESSIONはセキュアCookieで対処できるけど、URLの盗聴を防ぐ手段はないのかもしれない。

*2:もちろん、SESSION_IDをURLに埋め込むバカはしない前提ですが

*3:COOKIEからのアクセスは、一度トップページを閲覧しないと、SESSION_IDが発行されないようにするのも一手だと思ったのですが。SESSION_IDが発行された後にリンク踏むと、どうしようもないんだよなぁ

*4:CSRF対策について調べてると、セッション追跡やCookieの話になっていくのが妙だなと思ったのでエントリ書いてみた。