2006/03/06 [月]
ウェブアプリケーションではログインしたときなど状態を保存する機能が必要になります。PHP を用いた実装では、この機能はよく session を使って実現されています。しかし、その場合一つ注意すべき点があります。標準では PHPSESSID=1350135801のような値が Cookie や URL に設定されて使用されています。これがそのサイトだけで使用されている場合には (覗き見などされていなければたいてい) 問題ありません (URL の一部として指定されている場合には Referrer としてもれてしまうこともありますが)。しかし、もしよそのサイトからこれが設定されてしまうとしたら問題になります。
例えばよそのサイトで次のようなリンクを踏んだ後でログインするとしてみましょう
http://example.com/?PHPSESSID=abcd
するとあろうことか abcd
が、そのセッションの ID として使われてしまうのです。したがって、悪意のあるサイトではこのリンクを踏ませ、ログインしたころあいを見計らって、この ID abcd
を使ってそのユーザの情報に自由にアクセスすることが出来るようになります。
by seclan