web-dev-qa-db-ja.com

同じドメイン、同じパス、異なるポートでのCookieの問題

2つのWebアプリを同じホスト上の同じパスで異なるポートで実行しています

http://somedomain.com/

そして

https://somedomain.com/

これで、最初のアプリにアクセスすると、abcという名前のcookie sayが提供され、ブラウザにabcが表示されます。別のタブを開いてapp2(https 1)に移動すると、ブラウザからCookie abcがリクエストに含まれ(同じドメイン、同じパスのため)、このアプリはhttpsで実行されるため、セキュアフラグをtrueに設定します。

だから今私のブラウザーではabcsecureflag = trueによってオーバーライドされているので、app_1(httpで実行中)にリクエストを送信すると、セキュアフラグのためにabcを送信しません。abcはセッションCookieであるため、ログアウトします。

これを克服する安全な方法は何ですか、

どちらのアプリも自分のものなので、別のアプリからのCookieハイジャックはありません

App2を別のパスに設定してみました/foo

だから今

http://somedomain.com

そして

https://somedomain.com/foo

私のブラウザーが最初にfooからのCookieを保持している場合、すべてが正常に行われますが、app1を最初にヒットした場合、Cookieは/fooに送信されます

4
Jigar Joshi

最も簡単で明確なソリューションは、異なる名前のCookieを使用することです(セキュアサイトCookieでのsecureflag=trueの設定に加えて)。 abcおよびabc_secure。これにより、開発とデバッグがはるかに簡単になります。

6
Joel L