Clear-Site-Data “*” : Firefox 和 Chrome 中的不同行为

Clear-Site-Data "*" : Different behavior in both Firefox and Chrome

提问人:sam it 提问时间:11/17/2023 更新时间:11/17/2023 访问量:20

问:

我遇到了以下问题:

Clear-Site-Data "*"

我有两个域使用两个 Web 服务器:和a.mywebsite.comb.mywebsite.com

'b'是 中的 iframe。'a'

当我单击注销时,我首先调用注销b.mywebsite.com/logouta.mywebsite.com/logout.

b.mywebsite.comHTML 标头中的 ReturnClear-Site-Data "*"

我注意到在Firefox和Chrome中,行为是不同的。

在 Chrome 浏览器中:调用并返回 html header 后,它将清除所有 mywebsite.com 中的所有 cookie,包括 cookie,即使某些 cookie 只属于b.mywebsite.com/logoutClear-Site-Data "*"a.mywebsite.com 'a'.

但是,在 Firefox 中,它只清除 和 之间的常见 cookie。b.mywebsite.comab

这会导致 Chrome 用户的 cookie 被清除,但实际上并没有在服务器端注销,因为服务器在没有任何 cookie 的情况下接收请求。

问题 : 有人可以帮我使Chrome中的行为与Firefox保持一致吗?我的目标是只清除站点 B 或常见站点的 cookie。Clear-Site-Data "*"Clear-Site-Data "*"

谢谢。

HTML Cookie 浏览器 HTTP 标头

评论

1赞 Kevin Christopher Henry 11/18/2023
标准中可以清楚地看出,您描述的 Chrome 行为是不正确的。我对这个问题没有任何额外的见解,但如果你不能弄清楚,你可以随时提交 Chromium 错误报告

答:

0赞 sam it 11/22/2023 #1

Chromium 浏览器中存在一个与如何处理 Clear-Site-Data 标头相关的错误。目前,当在 Chromium 浏览器中使用 Clear-Site-Data 时,它会清除任何子域的所有 Cookie。就我而言,这会影响网站a和网站b,这与文档相反,该文档建议它应该只清理其子域的cookie。 我实施了一种解决方法来解决这个问题。我从 website-a 执行了对注销页面的提取请求,以清除服务器端的会话,但不包括 Clear-Site-Data 标头以清除浏览器 cookie。之后,我通过将 website-b 的注销页面嵌入到 iframe 中来触发该页面,从而触发标头以清除站点数据。 这种方法可以有效地清除 Chromium 浏览器中 website-a 和 website-b 的所有 Cookie。 为了在Firefox中清理website-a,我向website-a发出了第二个请求,请求注销页面,但这次要求包含Clear-Site-Data来清理浏览器cookie。