【问题标题】:Setting cookies for multiple sub-domains为多个子域设置 cookie
【发布时间】:2011-01-28 17:34:51
【问题描述】:

是否可以从位于 https://secure.example.com 的 PHP 文件中为 http://www.example.com 设置 cookie?我有一些给我的代码,这似乎尝试并失败了。我想知道这是否可能。

【问题讨论】:

    标签: http cookies https subdomain cross-domain


    【解决方案1】:

    网页只能为其所属的二级(或更高)级域设置 cookie。

    这意味着secure.example.com可以读取和设置secure.example.com.example.com的cookies,后者也可以被www.example.com读取和设置

    最后一点:如果在 cookie 上设置了安全标志,则只能通过 https 连接读取和设置。

    【讨论】:

    • 嗨@Powerlord,这是否意味着我也可以使用secure.example.com 上的Javascript 为.example.com 设置cookie?只需更改document.cookie 的值?谢谢
    • @Louis_PIG 我没有太多在 JavaScript 中处理 cookie 的经验。不过,我认为您可以做到这一点……我记得,它是 Cookie 标准的一部分。
    • 感谢@Powerlord。我正在处理这样的问题,但您的回答至少证实了这应该是可能的。谢谢!
    • 因此,如果您拥有 a.example 和 b.example.com 而没有其他 .example.com,那么这不是一个可行的解决方案...
    • 这不适用于没有 www 的域名https://example.com
    【解决方案2】:

    如果您将 cookie 域设置为“.example.com”,则 cookie 将适用于所有子域。

    【讨论】:

    • 我想知道是否可以具体说明 cookie 发送到哪些域。
    • @nilacqua: 不。如果为 .example.com 设置 cookie,它将对 example.com 的任何子域可见
    • 这是否也适用于所有子子域。 .example.com 是否可以在 sub.example.com 和 sub.sub.example.com 上工作?或者您是否必须执行 .sub.example.com 才能使其发挥作用?