7

最近、私は3つのCake Appsを作成しましたが、3つすべてがこの問題を共有しています。設定はほとんど在庫があり、セッションオプションとしてこれを使用します。

Configure::write('Session', array(
    'defaults' => 'php',
    'cookie' => 'test'
));

たくさんのグーグルの後、誰もがセキュリティレベルが高すぎることを示唆していますが、私はこの値を変更したことがありません、それは次のとおりです:

Configure::write('Security.level', 'medium');

編集:私も低セキュリティで変更なしで試しました。

ユーザーがログインしているかどうかを確認するために基本認証のみを使用しています。

ログイン後、Cookieは3時間後に有効期限が切れるように設定されており、再度ログインするまで有効期限は更新されませんが、これは正常ですか?

問題をまったく再現できないようです。ログインして次のクリックで再度ログアウトする場合もあれば、しばらく続く場合もあります。

Windows 7でChromeを使用していますが、WebサイトにAJAXがありません。

何か案は?ありがとう。

4

4 に答える 4

5

Ajaxを使用していますか?問題が発生するのは IE だけですか?

IE は、ブラウザー自体への Ajax 呼び出しに別のブラウザー エージェント文字列を使用します。セキュリティを強化するために、Cake はブラウザ エージェントをチェックし、IE の場合、エージェントが異なるため、別のブラウザがセッションを乗っ取ろうとしていると判断します。

このチェックは次の方法で無効にできます。

Configure::write('Session.checkAgent', false);
于 2012-04-23T10:59:08.213 に答える
0

問題はセッションにあります:

最初に 'phpinfo();' をチェックします。

セッションがファイルベースかどうかを確認してください。

はいの場合は、プロセスを実行します。

次のコードのみを含む新しいスクリプト ファイル (php) を作成します。<?php var_dump(session_save_path());?>

null または空の文字列を取得した場合に実行してから、次のプロセスに進みます。

  1. まず、ルート フォルダに「xyz」などの名前のディレクトリを作成します。
  2. 書き込み可能にしchmod 777ます。
  3. セッションを開始するスクリプトに移動し、セッションを開始する前に、session_save_path を新しく作成したディレクトリに変更します。すなわち:session_save_path('pathToxyz');

そして、あなたは終わった。

セッションがメモリとして設定されている場合: 構成は必要ありません。システムメモリを使用するだけです。その場合、この問題に巻き込まれることはありません。

于 2012-05-01T09:53:47.850 に答える
0

Chrome ブラウザーで CakePHP セッションに問題があるのはあなただけではありません。

Pixelastic仲間のコーダーは、次の修正、引用を提案しています。

という名前のファイルを作成session_custom.phpapp/config/、その中に次の行をドロップします。

// Killing this config that was causing so much trouble with Chrome
ini_set('session.referer_check', '');

// No session id in url
ini_set('session.use_trans_sid', 0);

// Using custom cookie name instead of PHPSESSID
ini_set('session.name', Configure::read('Session.cookie'));

// Cookie like time, depending on security level
ini_set('session.cookie_lifetime', $this->cookieLifeTime);

// Cookie path
ini_set('session.cookie_path', $this->path);

次に、ファイルに設定Configure::write('Session.save', 'session_custom');しますcore.php

于 2012-04-26T08:59:39.797 に答える