私は3つのサイトを持っていますシナリオでは、サイトが同じサーバー上にある場合、IE(およびIEのみ)ではすべてのサイトが同じPHPセッションIDを持ちます。これは、何らかの形でセッションがそれらの間で共有されていることを意味します。 私はこの振る舞いを望んでいません、私は彼らにセッションを分けてもらいたいと思います。不要な共有セッション
誰かにこれに関する説明とこれを扱うアドバイスを教えてもらえますか?
(IがAAA部分なしでドメインを持っていた場合、すべてがうまく動作します。)
私は3つのサイトを持っていますシナリオでは、サイトが同じサーバー上にある場合、IE(およびIEのみ)ではすべてのサイトが同じPHPセッションIDを持ちます。これは、何らかの形でセッションがそれらの間で共有されていることを意味します。 私はこの振る舞いを望んでいません、私は彼らにセッションを分けてもらいたいと思います。不要な共有セッション
誰かにこれに関する説明とこれを扱うアドバイスを教えてもらえますか?
(IがAAA部分なしでドメインを持っていた場合、すべてがうまく動作します。)
デフォルトPHPSESSID
から各サイトのカスタム名に、セッション名を変更することができます。あなたはsession_name
でそれを行うことができます。
// change the session name for bbb.aaa.com
session_name('PHPSESSID_bbb_aaa_com');
ドメインごとにユニークな、クッキー名を作成するために、その名前を使用されます。
次に、各ドメインのCookieのdomain
属性を変更できます。 php.iniファイルのsession.cookie_domain
を変更することでそれを行うことができます。
; instead of allows all the subdomain with ".aaa.com", specify them with:
session.cookie_domain = bbb.aaa.com
session_set_cookie_params
で実行することもできます。
ただし、これでは不十分です!セッションIDが同じ場合は、異なるセッション名を使用した場合でも、セッション情報が共有フォルダに保存されている場合、同じデータがロードされます。この問題を解決するには、コンフィグレーションディレクティブsession.save_path
を各ドメインの一意のフォルダに変更します。あなたはsession_save_path
と、実行時にそれを行うことができます。
session_save_path('/path/to/sess_for_bbb_aaa_com');
なぜ、IDKの、どのように、IEのバージョンは、使用しているもの、それ – Bobot
でハッシュされたホストを含め、独自のセッションIDを構築し、それに対抗するために、これはまた、エッジに起こるのでしょうか? –
私はそれを自分で生成することを考えていましたが、それを確実に行い、完全にテストするのは簡単な作業ではありません。これらのシステムでは、結託が致命的となる。 私はそれを解決できればと思っていました。 –