簡體   English   中英

跨子域Cookie無法按預期在子子域上運行

[英]Cross Subdomain Cookie Not Working As Expected On Sub-Subdomain

我正在使用系統登錄到使用多個子域的子域的站點。 我有該系統的開發版和實時版,但是卻遇到了奇怪的現象。

所以,設置是我有以下內容:

開發環境:

  • dev.mydomain.com
  • sub1.dev.mydomain.com
  • sub2.dev.mydomain.com

居住環境:

  • live.mydomain.com
  • sub1.live.mydomain.com
  • sub2.live.mydomain.com

作為登錄過程的一部分,我使用以下行來設置cookie:

setcookie("LoggedIn", 1, 0,'/','.mydomain.com');

一切正常,我可以登錄一次並訪問所有內容,但是我想限制它,以便如果我登錄測試系統,則無法登錄實時系統,反之亦然。

我希望解決方案是:

setcookie("LoggedIn", 1, 0,'/','.test.mydomain.com');

setcookie("LoggedIn", 1, 0,'/','.live.mydomain.com');

取決於系統。

但是,使用此方法,我可以獨立登錄到test.mydomain.com和live.mydomain.com,但無法登錄到子子域(sub1.test.mydomain.com,sub2等)。

我究竟做錯了什么?

這可能是因為same-origin-policy 請通過它。

我完全同意您的期望,子域Cookie的優先級應高於頂級域,但在大多數Web框架中,您不能具有重復的Cookie ID,因此,即使您將Cookie域設置為頂級和子域,兩者仍然有效,因此我認為最安全的解決方案是您應嘗試更改特定域的cookie ID,通常我將其作為變量放置在應用程序配置中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM