subdomain.example.com 可以设置一个可由 example.com 读取的 cookie 吗?

发布于 2024-09-06 20:03:55 字数 383 浏览 3 评论 0原文

我简直不敢相信这很难确定。

即使阅读了 RFC,我也不清楚 subdomain.example.com 上的服务器是否可以设置可由 example.com 读取的 cookie。

subdomain.example.com可以设置Domain属性为.example.com的cookie。 RFC 2965 似乎明确指出这样的 cookie 不会发送到 example.com,但同样表示如果您设置 Domain=example.com,则会在前面添加一个点,就像您说 .example.com 一样。总而言之,这似乎是说,如果 example.com 返回设置了一个带有 Domain=example.com 的 cookie,它不会取回该 cookie!那是不对的。

谁能澄清规则的真正含义是什么?

I simply cannot believe this is quite so hard to determine.

Even having read the RFCs, it's not clear to me if a server at subdomain.example.com can set a cookie that can be read by example.com.

subdomain.example.com can set a cookie whose Domain attribute is .example.com. RFC 2965 seems to explicitly state that such a cookie will not be sent to example.com, but then equally says that if you set Domain=example.com, a dot is prepended, as if you said .example.com. Taken together, this seems to say that if example.com returns sets a cookie with Domain=example.com, it doesn't get that cookie back! That can't be right.

Can anyone clarify what the rules really are?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

葬心 2024-09-13 20:03:55

是。

如果您确保指定域为 .example.com,则 *.example.com 和 example.com 可以访问它。

正是这一原则允许在有人访问 www.website.com 时发出 cookie 的网站在有人离开时访问 cookie离开 www,转至 website.com。

编辑:来自关于 cookie 的 PHP 文档:

domain cookie 所在的域
可用的。制作饼干
可在以下所有子域上使用
example.com 然后你将其设置为
'.example.com'。这 。不是必需的
但使其兼容更多
浏览器。将其设置为
www.example.com 将生成 cookie
仅在 www 子域中可用。
请参阅 » 规范中的尾部匹配
了解详情。
http://php.net/manual/en/function.setcookie.php

这并不是 PHP 独有的。

Yes.

If you make sure to specify that the domain is .example.com, then *.example.com and example.com can access it.

It's that principle that allows websites that issue cookies when somebody goes to www.website.com to access cookies when someone leaves off the www, going to website.com.

EDIT: From the PHP documentation about cookies:

domain The domain that the cookie is
available. To make the cookie
available on all subdomains of
example.com then you'd set it to
'.example.com'. The . is not required
but makes it compatible with more
browsers. Setting it to
www.example.com will make the cookie
only available in the www subdomain.
Refer to tail matching in the » spec
for details.
http://php.net/manual/en/function.setcookie.php

And it's not unique to PHP.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文