2014-10-01 119 views
0

我有兩個子域名:「安全」和「下載」的同一個域名:「10.0.50.18」。如何從cookie中讀取cookie,當cookie設置在不同的子域上時?

上 '下載' 我設置使用jQuery這樣一個cookie:

$.cookie("width", w, {domain: "10.0.50.18"}); 

上 '安全',我想讀的是餅乾這樣的:

$width = $_COOKIE["width"]; 

但它是不加工。

任何人都可以幫忙嗎? 謝謝!

+0

bcoz子域名不一樣 – 2014-10-01 11:51:47

回答

2

Cookie不會跨子域工作,除非您在創建Cookie時指定。你將需要這樣做:

$.cookie("width", w, {domain: ".mydomain.com"}); 

這將允許mydomain.com的所有子域共享cookie。

+1

好吧。我想補充一點,如果你的「安全」子域是一個不同的協議(例如https而不是http),你仍然可能遇到問題。您可以從https讀取http cookie,但不能以其他方式讀取。 – 2014-10-01 11:56:07

+0

謝謝,但如果你看看我的問題,這正是我所說的我已經在做... – yogev 2014-10-01 12:04:39

+0

它與你在做什麼不一樣。您正在將IP地址放入域部分。這是行不通的。 Cookie與域名主機協同工作。請注意。在域名之前,這允許子域名。 – haxtbh 2014-10-01 12:43:35

0

抱歉,無法按照您嘗試的方式使用來自不同域的Cookie。 解決方案的一些有趣的建議,你可以在這裏閱讀 Cross-Domain Cookies

+1

他正在針對*被允許的不同子域進行嘗試。 – 2014-10-01 12:37:57

0

可以設置cookie到一個IP地址,你就不能使用通配符它。

domain .10.0.50.18 is not valid 
domain 10.0.50.18 is valid 

IP地址不像DNS域那樣容易遵循組織邊界。數字小於或大於Web服務器IP地址的IP地址可能不一定駐留在同一個組織中。出於安全原因,不允許任何形式的cookie的域屬性中的IP地址通配。這有效地消除了任何形式的IP地址的域屬性的用處。

http://www.ietf.org/rfc/rfc2109.txt

完全限定的主機名(FQHN)意味着要麼完全限定 域名主機的(FQDN)(即,一個完全指定的域 名稱在頂層結束域名,如.com或.uk),或主機的數字網際協議(IP)地址。完整的 合格的域名是首選; 使用數字IP地址是 強烈不鼓勵

+0

感謝您的回答。唯一的問題是,我沒有使用.10.0.50.18,但是10.0.50.18,你認爲這很好 - 但它不起作用... 如果我的FQHN是:https://10.0.50.18/ secure/welcome.php 我應該通過$ .cookie()方法的域來傳遞什麼? – yogev 2014-10-01 14:25:38

+0

您的FQDN不是IP地址 - 它是您的實際域名。 – 2014-10-01 14:31:47

+0

有了IP,你希望如何處理子域@yogev? – 2014-10-01 16:21:28