メイン helper,component,script
cake1.1.18にversionアップしたらSessionが使えない? | 投稿するにはまず登録を |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | スレッド |
|---|---|
| takacy | 投稿日時: 2007-11-3 19:58 |
Baker スタート ![]() ![]() 登録日: 2007-3-27 居住地: 投稿: 9 |
cake1.1.18にversionアップしたらSessionが使えない? こんにちは。
表題の件でハマったのでご報告します。 先日、cakeのversionを1.1.14から1.1.18に 上げたところ、Sessionに保存した情報が 次のリクエストで取得できないという現象が発生しました。 ソースを追っかけて見たところ、session.phpの 486行目(function __startSession()内)が以下のようになっていました。 これをコメントアウトしたら前のとおり動くようになったのですが、 上記コードの目的がよく分かりません。 ログイン処理の後にrenew()するなら分かるのですが、 セッション開始時に毎回呼んでるのはなぜ?? もし分かる方いらっしゃいましたらご教授いただければと思います。 |
| shun | 投稿日時: 2007-11-4 22:39 |
Cake 職人 ![]() ![]() 登録日: 2006-7-14 居住地: 東京、日本 投稿: 1007 |
Re: cake1.1.18にversionアップしたらSessionが使えない? 面白そうな話題ですね。とりあえず変更された箇所を調べてみると、
1.1.17 __construct()の最後 1.1.18 __construct()の最後 となって、今回、はじめて__startSession()が追加されたようです。その __startSession() 内では、 となっています。解説できる人、挙手! |
| SLM | 投稿日時: 2007-11-5 5:52 |
Baker スタート ![]() ![]() 登録日: 2007-11-5 居住地: 投稿: 2 |
Re: cake1.1.18にversionアップしたらSessionが使えない?
|
| takacy | 投稿日時: 2007-11-5 9:46 |
Baker スタート ![]() ![]() 登録日: 2007-3-27 居住地: 投稿: 9 |
Re: cake1.1.18にversionアップしたらSessionが使えない? shunさん、SLMさんご回答ありがとうございます。
>https://trac.cakephp.org/ticket/3523 見てみましたが、 "This is intended behavior(仕様どおり)"とありますね。。。 う〜ん、CAKE_SECURITYが"high"だとセッション使用不可?? そんなわけないですよね〜…。 |
| slywalker | 投稿日時: 2007-11-5 12:58 |
Baker ユーザ ![]() ![]() 登録日: 2007-1-8 居住地: 日本 大阪 投稿: 28 |
Re: cake1.1.18にversionアップしたらSessionが使えない? 私もちょっとハマったので、書き込みします。
CAKE_SECURITYを"high"で運用中に 勝手にログアウトされる現象が多発! リンク連打等、読み込み中に再アクセスするとセッションが切れる様子。 いろいろと原因を探してると、ここの記事にたどり着きました。 現在は、CAKE_SECURITYを"medium"で運用しています。 アクセス毎session_idを書き換えてセキュリティを高める目的なんでしょうかね? しかし、毎回読み込みが完了するまで、ユーザに触らせないようにしないと使えないですね。 |
| shun | 投稿日時: 2007-11-6 11:54 |
Cake 職人 ![]() ![]() 登録日: 2006-7-14 居住地: 東京、日本 投稿: 1007 |
Re: cake1.1.18にversionアップしたらSessionが使えない? function __startSession() は、“ページの一部を出力した後は、header()が使えない”ことに対応させていますね。これのおかげで、ページの出力途中、その後でもセッションクラスをnewできるようになったようです。
SECURITYがhighだった場合、session_regenerate_id()をかけています。セッションハイジャックを防ぐなどの意味で、フレームワークとしては妥当な処理だと思いますし、 で、IEのセッションの扱い問題対策もしています。 ただ、こういう処理の途中で中断してしまうと、問題が起こるようです。 obAuthのコメントにも似たような事例が書いてありますね。 http://bakery.cakephp.org/articles/view/obauth-component-tutorial#comment-1546 参考: http://jp.php.net/manual/ja/function.session_regenerate_id http://jp.php.net/manual/ja/function.session-cache-limiter.php |
| shun | 投稿日時: 2007-11-8 16:05 |
Cake 職人 ![]() ![]() 登録日: 2006-7-14 居住地: 東京、日本 投稿: 1007 |
Re: cake1.1.18にversionアップしたらSessionが使えない? こちらも参考になります。
CakePHP Bleeding Edge Session high security http://groups.google.co.jp/group/cakephp-edge/browse_thread/thread/84420b654dae7f55/ 念入りなセキュリティ対策を講じるか、スピードと効率を求めるか、というバランスの問題でしょうか。 |
| takacy | 投稿日時: 2007-11-9 10:14 |
Baker スタート ![]() ![]() 登録日: 2007-3-27 居住地: 投稿: 9 |
Re: cake1.1.18にversionアップしたらSessionが使えない? >shunさん
たくさんの参考情報ありがとうございます。 Excite翻訳先生と共にじっくり読ませていただきます。 |
| dali | 投稿日時: 2007-11-14 11:11 |
Baker スタート ![]() ![]() 登録日: 2007-11-14 居住地: 投稿: 2 |
Re: cake1.1.18にversionアップしたらSessionが使えない? 私もはまりました・・。
session.cookie_pathをコメントアウトしたら動くように なったかと思ったのですが、 下記、cake職人さんのご指摘のように、どうも違うようです。 すみません、間違った情報のようなので訂正しました。 もう少し調べて結果わかったら投稿いたします。 ご迷惑おかけしました。 |
| shun | 投稿日時: 2007-11-16 10:20 |
Cake 職人 ![]() ![]() 登録日: 2006-7-14 居住地: 東京、日本 投稿: 1007 |
Re: cake1.1.18にversionアップしたらSessionが使えない? PHP4/PHP5 のどちらでも、
でSessionがクリアされることはなさそうですね・・・。 下記、PHP4でも問題なし。(Windows XP, xampp) |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
| 投稿するにはまず登録を | |




