2015-10-23 49 views

回答

1

Cookie具有domain屬性,該屬性指定它們將從客戶端發送到哪些域。例如,在PHP的setcookie函數中,第五個參數接受在cookie中設置的$domain字符串。默認情況下它是空白的,這意味着它將使用請求來自客戶端收到它的域。

該cookie可用於的域。將域設置爲'www.example.com'將使cookie在www子域和更高子域中可用。可用於較低域名的Cookie(例如'example.com')可用於較高的子域名,例如'www.example.com'。舊版瀏覽器仍在實施已棄用的»RFC 2109,可能需要領先。以匹配所有子域。

所以,如果你設置你的cookie到你的主域,客戶端UA將不會有問題,使其可用於你的子域。

現在,iframes有點棘手,但是。例如,Internet Explorer可以根據不同的隱私策略規則對待iframe,並阻止來自iframe的所有cookie。有關更多詳細信息,請參閱this question。但是,Nginx在所有這些方面真的不應該扮演被動的角色。

+0

嗯,我沒有在這種情況下爲任何特定的域設置一個cookie,所以它只是爲domain.com設置它。 根據你所說的,它不會自動爲其他子域設置它呢? sub1.domain.com,sub2.domain,com等? 這個問題與IE沒有關係,我不相信我的任何目標用戶甚至都會誠實地使用瀏覽器的笑話。 所以基本上我只需要確保會話cookie傳遞給iframed子域。 我相信iframe對此沒有干擾,因爲如果我直接訪問iframed頁面,它沒有有效的會話。 – Rdang

+0

我應該可能指的是不同的IP上的子域IP – Rdang

+0

IPs在這裏並不重要。您可能首先要做的是使用Chrome或FireFox開發人員工具等瀏覽器在瀏覽器中檢查cookie,然後查看客戶端UA實際設置的域名,而不是僅僅進行假設。 – Sherif