如何在开发环境中绕过SameSite cookie限制?

问题描述 投票:0回答:1

最近,Chrome改变了跨源请求是否附加cookie的政策。现在,跨源请求不会附加 cookie,除非。

  1. 在以下情况下,才会附加cookie SameSite cookie属性是 LaxNone 并且该请求是由用户操作发起的,或
  2. SameSite cookie属性是 NoneSecure cookie属性是 true,这意味着跨源请求必须使用 https 方案。

(以上并没有错,但略为简化。下面是 彻头彻尾.)

在我的开发环境中,我使用了一个工具来编译我的开发语言,并将更改的内容热加载到我的浏览器标签中。这个工具在自己的 port 上为前端代码提供服务,而后端则由一个单独的进程在单独的 port 上提供服务,因此我们要处理从浏览器到后端的跨源请求。当然,前台和后台都是从 localhost 有计划 http. 而前台应用提出的许多请求并不是由用户操作发起的,却仍然需要Cookie来进行认证。

因此,在我的开发环境中,任何需要cookies的东西都无法工作。(是啊,花了不少时间才弄明白这个问题......)

我的问题是:我怎样才能绕过、绕过或禁用这些。SameSite 以一种简单的方式为我的开发环境添加cookie安全限制,而不会降低我在浏览其他网站时的安全性?

例如,如果有一种方法可以在我的开发环境中添加 localhost 在我的浏览器中,将其加入到一个白名单中,从而允许 SameSite=None 饼干,即使没有 Secure=true 属性。稍微差一点,但还是可以接受的,就是一个简单的方法来包装或代理我的 http://localhost:<port> 服务,从而可以通过 https 方案。或者还有另一种方法,使用一些晦涩的Cookie魔法。

security cookies cross-domain
1个回答
0
投票

如果你的所有开发环境都托管在 localhost 那么不同端口之间的请求,虽然是跨源的,但仍然算作同源。参见 https:/web.devsame-site-same-origin。

在你的开发环境中,你可以放弃 SameSite=None; Secure 全盘托出 SameSite=Lax.

另外,可以看看为以下内容创建自签证书。localhost 或本地vms,以更好地匹配你的生产环境--虽然这稍微有点麻烦。

© www.soinside.com 2019 - 2024. All rights reserved.