- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
因此对于 Google Chrome 和 Opera,cookie 具有 SameSite
属性,该属性可以具有以下两个值之一:strict
或 lax
。
它们之间的一些区别之一是 SameSite=strict
将在我们单击指向另一个域的链接时阻止发送 cookie。
我知道 SameSite
还不是 W3C 推荐的,但这种行为的潜在好处是什么?我觉得这很烦人,因为当我们刷新或单击当前域上的另一个链接时,无论如何都会发送 cookie。这会导致相当奇怪的用户体验 - 例如:我们已注销,然后我们单击某个国内链接或刷新,然后我们突然通过了身份验证。
我知道它不是为最好的用户体验而设计的,而是为了安全。但我们在安全方面实际上赢得了什么?
最佳答案
使用 strict
而不是 lax
的好处是有限的。我可以看到两个:
通过 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.
防止定时攻击。有一类攻击 - 已经被发现 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/
在我的主要组件中,我有: mounted() { window.$cookie.set('cookie_name', userName, expiringTime); }, 这会产生以下错误:
我正在学习 cookie,并且我想知道在编写依赖 cookie 来存储状态的 Web 应用程序时浏览器的支持情况。 对于每个域/网站,可以向浏览器发送多少个 Cookie,大小是多少? 如果发送并存储
我已经为我的站点设置了一个 cdn,并将其用于 css、js 和图像。 网站只提供那些文件 我的问题是 firefox 中的页面速度插件对于我的图片请求,我看到了一个 cookie Cookie fc
在阅读了 Internet 上的文档和帖子后,我仍然无法解决 jMeter 中的 Cookie Manager 问题。 我在响应头中得到了 sid ID,但它没有存储在我的 cookie 管理器中。
我正在 Node.JS 中处理一些类似浏览器的 cookie 处理,想知道从 NodeJS and HTTP Client - Are cookies supported? 开始对这段代码进行扩展到什
我正在此堆栈上构建自托管 Web 服务器:欧文南希网络 API 2 我正在使用 Katana 的 Microsoft.Owin.Security.Cookies 进行类似表单的身份验证。我得到了 Se
我有一个从另一个网站加载资源的网站。我已经能够确定: 第三方网站在用户的浏览器上放置 cookie。 如果我在浏览器设置中禁用第三方 cookie,第三方网站将无法再在浏览器上放置 cookie。 该
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 9年前关闭。 Improve this q
我正在使用 python mechanize 制作登录脚本。我已经读到 Mechanize 的 Browser() 对象将自动处理 cookie 以供进一步请求。 我怎样才能使这个 cookie 持久
我正在尝试在 www.example.com 和 admin.other.example.com 之间共享 cookie 我已经能够使其与 other.example.com 一起使用,但是无法访问子
我设置了一个域为 .example.com 的 cookie .它适用于我网站上的每个一级子域,应该如此。 但是,它不适用于 n 级子域,即 sub.subdomain.example.com和 to
我想让用户尽可能长时间地登录。 我应该使用什么? 普通 cookies 持久性 cookie 快闪 cookies ip地址 session 或这些的某种组合? 最佳答案 我认为 Flash cook
如果给定的 Web 服务器只能读取其域内设置的 cookie,那么 Internet 广告商如何从其网络外的网站跟踪用户的 Web 流量? 是否存在某种“supercookie”全局广告系统,允许广告
我知道一个 cookie 可以容纳多少数据是有限制的,但是我们可以设置多少个 cookie 有限制吗? 最佳答案 来自 http://www.ietf.org/rfc/rfc2109.txt Prac
如果我拒绝创建 cookie,则在我的浏览器中创建名称为 __utma、__utmb 等的 cookie。我认为这个 cookie 是用于谷歌分析的。任何人都知道谷歌如何创建这个 cookie,即使浏
我有一个生产环境和一个登台环境。我想知道我是否可以在环境之间沙箱 cookie。我的设置看起来像 生产 domain.com - 前端 SPA api.domain.com - 后端节点 分期 sta
我想知道浏览器(即 Firefox )和网站的交互。 当我将用户名和密码提交到登录表单时,会发生什么? 我认为该网站向我发送了一些 cookie,并通过检查这些 cookie 来授权我。 cookie
我在两个不同的域中有两个网络应用程序 WebApp1 和 WebApp2。 我在 HttpResponse 的 WebApp1 中设置 cookie。 如何从 WebApp2 中的 HttpReque
我正在使用Dartium“Version 34.0.1847.0 aura(264987)”,并从Dart创建一个websocket。但是,如果不是httpOnly,我的安全 session cook
我从 Headfirst Javascript 书中获取了用于 cookie 的代码。但由于某种原因,它不适用于我的浏览器。我主要使用chrome和ff,并且我在chrome中启用了本地cookie。
我是一名优秀的程序员,十分优秀!