【问题标题】:Delete cookie on another site删除另一个网站上的 cookie
【发布时间】:2014-01-18 19:55:28
【问题描述】:

当从另一个站点重定向到该站点时,是否可以删除该站点上的 cookie?还是因为安全限制而无法做到?

站点 A 有一个登录表单,该表单提交到站点 B 并以站点 B 的身份登录。当用户在使用站点 A 的登录表单后从站点 B 注销时,站点 B 将其转发回站点 A。站点 A 有什么办法在不访问站点 B 的后端/代码的情况下删除站点 B 上的 cookie?

【问题讨论】:

  • 谢天谢地,一个站点不可能修改另一个站点的 cookie。

标签: javascript security cookies


【解决方案1】:

不,如果站点 A 和站点 B 位于不同的域中,则不会。 domain attribute 可以在 Set-Cookie 标头中设置,但这必须是当前域的完全匹配或部分匹配。部分匹配是指foo.example.com 可以为example.com 设置cookie,但不能为ample.com 设置cookie。

来源RFC 6265(HTTP状态管理机制):

当用户代理从 request-uri 中“接收到 cookie”时...

如果规范化的请求主机与域不匹配 域属性:

完全忽略 cookie

请记住,删除 cookie 确实是接收 cookie,其过期日期已过去,因此上述内容仍然适用。

站点 B 必须实施一种机制来允许这种情况发生。

【讨论】:

    【解决方案2】:

    AFAIK 这是不允许的 - 正如您所猜测的 - 安全原因。

    点击此处了解更多详情:http://en.wikipedia.org/wiki/Same_origin_policy

    【讨论】:

    • 这是正确的。在处理注销时,必须在站点 B 端删除 cookie。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-01
    • 1970-01-01
    • 2018-04-13
    • 2010-11-26
    • 1970-01-01
    • 2015-02-23
    相关资源
    最近更新 更多