【发布时间】:2019-03-16 17:31:07
【问题描述】:
我发现了一个奇怪的问题,不知道需要应用什么解决方法。
最简单的安全改进之一是将所有 cookie 设置为 HttpOnly 和 Secure。我知道,如果您以非安全模式(即方案是 HTTP)打开带有安全 cookie 的网站,那么 cookie 将被忽略。 但我们的情况如下。
假设有一个 URL 可以让您登录:contoso.com/AutoLogin/
如果我在 HTTPS 模式下打开它,则设置了 AUTH cookie 并且它是安全的:
GET https://contoso.com/AutoLogin/<user token>
Response: Set-Cookie: .ASPXAUTH=<cookie is here>; expires=Fri, 11-Oct-2019 14:51:40 GMT; path=/; secure; HttpOnly
那绝对没问题。我可以在开发工具中看到 cookie。 现在,相同的浏览器会话,我试图打开相同的 URL,但在 HTTP 模式下。请求 Cookie 不再具有 AUTH cookie - 由于安全 cookie 的性质,这一点很清楚并且可以预测。
GET http://contoso.com/AutoLogin/<user token>
Response: .ASPXAUTH=<here comes the cookie>; expires=Fri, 11-Oct-2019 14:54:07 GMT; path=/; HttpOnly
- 这次没有安全标志 - 好的。
但是,cookie 没有设置,所有后续请求都没有 AUTH cookie。 至少在 Chrome 和 Firefox 中确认了该行为(未在其他浏览器中检查)。
您可能注意到后端是使用 ASP.NET MVC 实现的。 也许,GET 请求是 AJAX 请求这一事实可能会有所帮助。
感谢您的帮助。
【问题讨论】:
-
你找到解决办法了吗?
-
请在bugzilla.mozilla.org/show_bug.cgi?id=1617361为 Firefox 报告错误报告
标签: authentication cookies https