2016-12-06 4 views
0

私は3つのサイトを持っていますシナリオでは、サイトが同じサーバー上にある場合、IE(およびIEのみ)ではすべてのサイトが同じPHPセッションIDを持ちます。これは、何らかの形でセッションがそれらの間で共有されていることを意味します。 私はこの振る舞いを望んでいません、私は彼らにセッションを分けてもらいたいと思います。不要な共有セッション

誰かにこれに関する説明とこれを扱うアドバイスを教えてもらえますか?

(IがAAA部分なしでドメインを持っていた場合、すべてがうまく動作します。)

+0

なぜ、IDKの、どのように、IEのバージョンは、使用しているもの、それ – Bobot

+0

でハッシュされたホストを含​​め、独自のセッションIDを構築し、それに対抗するために、これはまた、エッジに起こるのでしょうか? –

+0

私はそれを自分で生成することを考えていましたが、それを確実に行い、完全にテストするのは簡単な作業ではありません。これらのシステムでは、結託が致命的となる。 私はそれを解決できればと思っていました。 –

答えて

0

デフォルト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'); 
関連する問題