Jef*_*.D. 6 security cookies cross-domain
最近,Chrome 更改了是否将 cookie 附加到跨域请求的策略。现在,cookie 不会附加到跨域请求,除非:
SameSitecookie的属性为Lax或None并且该请求是由用户发起的动作,或SameSitecookie的属性None和Securecookie的属性true,这意味着跨域请求必须使用https方案。(上面没有错,只是稍微简化了。这里有一篇更彻底的文章。)
在我的开发环境中,我使用一个工具来编译我的开发语言并将更改热加载到我的浏览器选项卡中。这个工具在自己的端口上提供前端代码,后端由一个单独的进程在一个单独的端口上提供服务,所以我们正在处理从浏览器到后端的跨域请求。当然,前端和后端都由localhostscheme 提供服务http。前端应用程序发出的许多请求不是由用户操作发起的,但仍需要 cookie 以进行身份验证。
因此,任何需要 cookie 的东西都无法在我的开发环境中运行。(是的,花了很长时间才弄清楚那个……)
我的问题是:如何SameSite以一种简单的方式绕过、解决或禁用我的开发环境的这些cookie 安全限制,而不会在我浏览其他站点时降低我的安全性?
例如,如果有一种方法可以添加localhost到我的浏览器中的来源白名单,SameSite=None即使没有Secure=true属性也允许cookie ,那就太好了。稍微不那么好,但仍然可以接受,这将是一种包装或代理我的http://localhost:<port>服务的简单方法,以便可以通过该https方案访问它们。或者也许还有另一种使用一些晦涩的 cookie 魔法的方法。
如果您的所有开发环境都托管在localhost不同端口之间的请求下,那么跨域仍然算作同站点。请参阅:https : //web.dev/same-site-same-origin/
在您的开发环境中,您可以SameSite=None; Secure完全删除或显式设置SameSite=Lax.
或者,查看为localhostvm 或本地 vm创建自签名证书以更好地匹配您的生产环境 - 尽管这涉及更多。
| 归档时间: |
|
| 查看次数: |
2894 次 |
| 最近记录: |