私のPHP Webアプリケーションのセッションクッキードメインは、現在example.com
に設定されています。 .example.com
に変更したいと思います。新しい訪問者には、ini_set('session.cookie_domain', '.example.com')
が有効です。この変更が行われる前に既にPHPSESSID Cookieを持っている訪問者の場合、ドメインは古い値のままです。現在のユーザーにCookieの削除を依頼することなく、セッションCookieのドメインを変更するにはどうすればよいですか?既存のユーザーのセッションクッキードメインを変更する方法
- セキュリティ上の理由からHTTPOnlyなので、JavaScriptを使用してCookieを更新することはできません。
- サーバー上のセッションを削除しても、Cookie全体がリセットされるわけではなく、Cookie値のみが更新されます(ドメインは同じままです)。
- 最新のブラウザでは、再起動後にセッションが保持されるため、ブラウザセッションの最後にCookieが期限切れに設定されていても、ブラウザセッションは実質的に終了しません。
私が思いつくことができる唯一の可能性は、過去に期限切れになるようにクッキーを設定してから、新しいクッキーを取得するためにリダイレクトすることです。しかし、どの訪問者がクッキードメインを正しく設定しているのかわかりません。
サーバーを新しいクッキーに切り替えただけで、古い「古い」ユーザーはログアウトしてしまうと、どれくらい悪くなりますか? –
サーバー上のすべてのセッションを消去すると、ユーザーがログアウトし、Cookie値は更新されますが、クッキーがクライアント上で削除されなかったため、他のCookieパラメーターは変更されません。 –
うんざりだと、長すぎるクッキーライフを設定しない限り、最終的にブラウザは古いクッキーを失効させます。 –