【问题标题】:Browsers are dropping the Cookies set by application浏览器正在删除应用程序设置的 Cookie
【发布时间】:2012-05-30 23:07:58
【问题描述】:

这是一个有趣的问题。据说我要在我现有的应用程序中引入一项功能。应用程序在用户系统上写入 Cookie 之前必须征得用户同意。 (暗示我的应用程序在用户系统上写入的 cookie 很少)。

所以设计是这样的,对应用程序的所有请求都被拦截,对于每个请求,我们检查是否有一个标志要求应用程序写入 cookie(这个标志是从一个特殊的页面发送的,称为 IP)或它会检查用户机器上的特殊 cookie,例如 Consent cookie。

现在,如果应用程序在用户的机器上没有看到同意 Cookie,它会将用户重定向到带有其 URL 的 IP。在 IP 上有一个接受 Cookie 按钮。如果用户接受 cookie,则 ajax 请求会发送到服务器,代码检测到写入 cookie 的标志并将 cookie 写入用户的浏览器。

我可以看到写入cookie的代码已执行,之后的预期行为是以正常方式处理请求。但不幸的是,它会将其重定向回 IP。

我强烈感觉到某些浏览器会丢弃 Cookie。请提出这里可能有什么问题。还请告诉我如何在我的浏览器上检查它是否正在丢弃 Cookie。

我也觉得它与 P3P 标头有关。请帮忙。

【问题讨论】:

  • 我们还需要在IP上加一个meta标签(pragma, no-cache)

标签: security browser cookies p3p


【解决方案1】:

可能有两件事:

  1. 无论浏览器如何,您每次都会被重定向到 IP。
  2. 在少数浏览器中,您的应用程序可以正常运行,而其他浏览器则无法正常运行。

情况 1:您需要将 P3P 标头添加到响应中。请查看http://viralpatel.net/blogs/2008/12/how-to-set-third-party-cookies-with-iframe.html

情况 2:如果响应状态是重定向,则可能很少有浏览器(例如最新版本的 Mozilla Firefox(12))缓存响应状态。默认情况下,重定向是永久重定向,即状态码 302。在这种情况下,IP 将继续在 Mozilla 中重定向到自身。

解决方案:您需要使用临时重定向,即状态码 307。

【讨论】:

    猜你喜欢
    • 2023-01-16
    • 2019-06-21
    • 2014-05-07
    • 2013-07-22
    • 2020-10-07
    • 2010-11-19
    • 2011-02-18
    • 2014-08-10
    • 2020-06-06
    相关资源
    最近更新 更多