[PHP,ZF] クッキーへセッションIDを保存すると、強制的に再生成されてしまう
2008年5月8日
PHPのZendFrameworkの話です。
Zend_Session::rememberMe()でクッキーへセッションIDの保存をするようにすると
リクエストの度に強制的にsession_regenerate_id()されるようになる。
それで何がいけないかと言うと、この辺↓
- モバイル等でセッションIDをGETパラメータにもたす場合は、
ブラウザバックするとセッションが切れる。 - GETパラメータへ入れていない場合でも素早くリンクを2連打するとセッションが切れる。
うーん、セキュリティとのトレードオフとは言え、割と見過ごせない感じ・・・。
無料のWebサービスなら、再生成より重視したいところだと思います。
この設定を正式にOFFにすることは出来ないっぽくて、
どうしてもOFFりたい場合は、Zend_Session::regenerateId()内でsession_regenerate_id()している部分を、直接コメントアウトして対処するしか無いみたいです。(v1.5.1時点)
・・・と、また無理矢理記事を書いてみた。