gpt4 book ai didi

cookies - Samesite=当用户点击来自不同域的链接时,302 重定向中不包含严格的 cookie

转载 作者:行者123 更新时间:2023-12-05 04:51:55 26 4
gpt4 key购买 nike

  1. 客户将链接到我们网站上的一个网页:customer.site/links.html
  2. 一个人点击该链接并被发送到 our.site/webapp/handlerequest.aspx?someparam=somevalue
  3. someparam 的值设置在带有 SameSite=Strict 的 cookie 中,然后使用 302 重定向到同一域中的另一个页面 :
Request URL: https://our.site/webapp/handlerequest.aspx?someparam=somevalue
Request Method: GET
Status Code: 302
Remote Address: ...
Referrer Policy: strict-origin-when-cross-origin

cache-control: private
content-length: ...
content-type: text/html; charset=utf-8
date: ...
location: /webapp/someotheraction
server: Microsoft-IIS/10.0
set-cookie: someparam=somevalue; expires=Thu, 17-Mar-2022 14:41:13 GMT; path=/; secure; HttpOnly; SameSite=Strict
strict-transport-security: max-age=31536000
x-frame-options: SAMEORIGIN

浏览器在到/webapp/someothereaction 的 302 重定向中包含此 cookie。

只有当我们专门更改代码以将此 cookie 设置为 SameSite=Strict 时,这种情况才会开始发生。

这发生在 Chrome、Firefox、Edge 和 IE(旧版 IE)中

这是故意的吗?为什么?由于我们要从域上的一个请求转到同一域中的另一个请求,难道不应该包含 SameSite=Strict cookie 吗?这与默认为 strict-origin-when-cross-origin 的 referer 策略有什么关系吗? https://www.w3.org/TR/referrer-policy/没有说任何关于 cookie 的事情

最佳答案

这是一个跨站点请求,因为初始导航是跨站点的(从 customer.siteour.site)。跨站点请求永远不会发送严格的 cookie。请求被重定向(在本例中,重定向到 our.site 上的另一个 URL)并不重要,只是用户单击跨站点链接这一事实意味着请求是跨站点的网站。

至于为什么会这样,是因为负责发起导航的源头对于防止跨站请求伪造很重要(CSRF)。想象一下,如果 https://evil.site 有一个指向 https://bank.site/transfer-funds 的链接,它会重定向到 https://bank。网站/交易。我们不希望在重定向后将 Strict cookie 发送到 /transact 端点,即使它是由同一站点重定向到的,因为发起源是跨站点的。

关于cookies - Samesite=当用户点击来自不同域的链接时,302 重定向中不包含严格的 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66675803/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com