- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
你好!进一步到40781534 ,接受的答案是设置 SameSite=Lax
:
如何在重定向到我自己时设置 SameSite=Strict
Cookie,以便我可以从 Chrome 56.0.2924.87
取回 Cookie,即使用户的请求本身是从我的 OAUTH2 提供商上的登录页面进行的重定向?
完整的请求链是:
POST https://provider.com/callback
→ 302 FOUND
包含:
Location: https://me/login?code=xxx&state=yyy
获取 https://example.com/login?code=xxx&state=yyy
→ 302 FOUND
或 303 SEE OTHER
(似乎并不重要):
Location: https://example.com/destination
Set-Cookie: sid=zzzz; Secure; HttpOnly; SameSite=Strict; Path=/
GET https://example.com/destination
→ 401 离开我的草坪
,因为浏览器未显示 sid
cookie
GET https://example.com/destination
→ 200 OK
如果我刷新,因为这样站点是相同的,并且我的浏览器会显示 sid
cookie
对于用户最后加载的页面不在 example.com
上的一般情况,我很欣赏将 sid
呈现给 /destination
的 CSRF 潜力>,但是我只是从 /login
设置它,而我现在重定向到 /destination
。
当然,我可以设置 SameSite=Lax
,但是如果有人能够找到某种方法通过恶意方式从我的网站触发他们选择的重定向,那么是否存在点击劫持的可能性?形成一个 URL?
最佳答案
出于安全原因,我认为不能这样做。 SameSite=Strict
意味着如果用户已被重定向或只是单击了指向您网站的链接(从其他主机),则不应发送 cookie。重定向就像“链接”请求。因此,如果您的服务器重定向到另一个服务器,并且该服务器立即使用 3xx 代码重定向回来,则将发送 cookie,因为您的服务器位于该链的“顶部”。
但是,如果您重定向到 oauth 提供商并且用户必须允许您访问他的帐户,则意味着此“链”已损坏,并且即使您的网站设置了 cookie,也将不再发送 cookie(已设置但未设置)发送)。您的重定向只是单击的“允许”链接的“扩展”。
如果您想防止其他人点击劫持您的网站,只需在链接中使用随机数(如果您认为必须防止这种行为),否则可能会很危险。但请注意,大多数提供商正在为您检查重定向网址是否已被您的应用先前定义并允许。
以下是其他解决方案(仅当您知道自己在做什么并且能够承担 100% 的责任时才使用)。
我在开发时使用了第二个,现在我正在使用同一个站点 lax(这是 Hapi 中默认的,可能到 15 版本,所以它还不错)。
关于google-chrome - 如何在使用 SameSite=Strict 的 OAUTH2 后重定向并仍然获取我的 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42216700/
我正在尝试使用谷歌浏览器的 Trace Event Profiling Tool分析我正在运行的 Node.js 应用程序。选择点样本后,我可以在三种 View 之间进行选择: 自上而下(树) 自上而
对于一个可能是菜鸟的问题,我们深表歉意,但尽管在 SO 上研究了大量教程和其他问题,但仍找不到答案。 我想做的很简单:显示一个包含大量数据库存储字符串的 Android ListView。我所说的“很
我已经开始了一个新元素的工作,并决定给 Foundation 5 一个 bash,看看它是什么样的。在创建带有水平字段的表单时,我在文档中注意到的第一件事是它们使用大量 div 来设置样式。所以我在下
我有一个 Windows 窗体用户控件,其中包含一个使用 BeginInvoke 委托(delegate)调用从单独线程更新的第 3 方图像显示控件。 在繁重的 CPU 负载下,UI 会锁定。当我附加
我有一堆严重依赖dom元素的JS代码。我目前使用的测试解决方案依赖于 Selenium ,但 AFAIK 无法正确评估 js 错误(addScript 错误不会导致您的测试失败,而 getEval 会
我正在制作一款基于滚动 2D map /图 block 的游戏。每个图 block (存储为图 block [21][11] - 每个 map 总共 231 个图 block )最多可以包含 21 个
考虑到以下情况,我是前端初学者: 某个 HTML 页面应该包含一个沉重的图像(例如 - 动画 gif),但我不想强制客户缓慢地等待它完全下载才能享受一个漂亮的页面,而是我更愿意给他看一个轻量级图像(例
我正在设计一个小软件,其中包括: 在互联网上获取资源, 一些用户交互(资源的快速编辑), 一些处理。 我想使用许多资源(它们都列在列表中)来这样做。每个都独立于其他。由于编辑部分很累,我想让用户(可能
我想比较两个理论场景。为了问题的目的,我简化了案例。但基本上它是您典型的生产者消费者场景。 (我关注的是消费者)。 我有一个很大的Queue dataQueue我必须将其传输给多个客户端。 那么让我们
我有一个二元分类问题,标签 0 和 1(少数)存在巨大不平衡。由于测试集带有标签 1 的行太少,因此我将训练测试设置为至少 70-30 或 60-40,因此仍然有重要的观察结果。由于我没有过多地衡量准
我是一名优秀的程序员,十分优秀!