gpt4 book ai didi

google-chrome - 为点击的链接阻止 cookie 有什么好处? (同一站点=严格)

转载 作者:可可西里 更新时间:2023-11-01 16:20:32 26 4
gpt4 key购买 nike

因此对于 Google Chrome 和 Opera,cookie 具有 SameSite 属性,该属性可以具有以下两个值之一:strictlax

它们之间的一些区别之一是 SameSite=strict 将在我们单击指向另一个域的链接时阻止发送 cookie。

我知道 SameSite 还不是 W3C 推荐的,但这种行为的潜在好处是什么?我觉得这很烦人,因为当我们刷新或单击当前域上的另一个链接时,无论如何都会发送 cookie。这会导致相当奇怪的用户体验 - 例如:我们已注销,然后我们单击某个国内链接或刷新,然后我们突然通过了身份验证。

我知道它不是为最好的用户体验而设计的,而是为了安全。但我们在安全方面实际上赢得了什么?

最佳答案

使用 strict 而不是 lax 的好处是有限的。我可以看到两个:

  1. 通过 GET 请求防止 CSRF 攻击。这种攻击通常是不可能的,因为它们依赖于服务器实现具有副作用的 GET 端点(不正确并且违反了 RFC 7231 指定的语义)。你在评论中给出了一个例子:

    Imagine we have a very bad design and all our actions are performed on GET method. The attacker placed link saying "Save puppies" which links to http://oursite.com/users/2981/delete. That's the only use-case I can think of - when we have some action done via GET method, while it shouldn't.

  2. 防止定时攻击。有一类攻击 - 已经被发现 back in 2000 , 但是 Mathias Bynens最近探索和推广 - 涉及恶意网页使用 JavaScript 向另一个域上的页面发起请求,然后测量需要多长时间,并从所花费的时间推断有关用户的事情。 Mathias 发明的一个示例是向带有 restricted audience 的 Facebook 页面发起请求。 ,这样它只能由 Examplestan 中的人访问。然后邪恶的网页会计算响应返回所需的时间。当您尝试访问无法访问的帖子时,Facebook 会提供错误页面,而不是它提供实际帖子的速度,因此如果恶意网页得到快速响应,它可以推断用户不在 Examplestan 中;如果它得到一个响应,那么用户可能是一个 Exampstani。

由于浏览器在您进行顶级导航时不会停止在页面上执行 JavaScript,直到它们收到来自被导航至的 URL 的响应,因此不幸的是,这些定时攻击完全有可能通过顶级导航实现;你的恶意页面可以通过 location=whatever 将用户导航离开,然后通过将当前时间戳重复记录到 localStorage 来计算另一个页面加载所需的时间环形。然后在随后的访问中,恶意页面可以检查页面开始卸载需要多长时间,并推断被计时页面的响应时间。

托管目标页面的域(例如 facebook.com,在 Mathias 的示例中)可以通过使用 samesite=strict cookie 来保护其用户免受此类攻击。

显然,这些有限的好处是以严重的用户体验权衡换来的,因此与 samesite=lax 提供的已经相当不错的保护相比,通常不值得!

关于google-chrome - 为点击的链接阻止 cookie 有什么好处? (同一站点=严格),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41841880/

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