Cookie“PHPSESSID”将很快被视为针对 <file> 的跨站点 cookie,因为方案不匹配

Dig*_*nja 34 cookies assets url-scheme cross-site websecurity

我刚刚注意到我的控制台上到处都是这个警告,出现在每个链接的资源上。这包括所有引用的 CSS 文件、javascript 文件、SVG 图像,甚至来自 ajax 调用的 URL(以 JSON 响应)。但不是图像。

警告,例如在style.css文件的情况下,会说:

Cookie“PHPSESSID”很快将被视为针对“http://localhost/style.css”的跨站点 cookie,因为方案不匹配。

但是,方案不匹配什么?文件?因为它确实如此。

  • 我网站的网址是http://localhost/.
  • 该站点及其资源都在httphttps本地主机上没有)
  • 域名肯定没有什么不同,因为所有内容都是相对于域名引用的(意味着文件路径以斜杠开头href="/style.css"

网络检查员只报告绿色200 OK响应,显示一切正常。

只有 Mozilla Firefox 对此有所抱怨。Chromium 似乎不关心任何事情。我没有任何浏览器插件。警告似乎来自浏览器,每个警告链接到在 Debugger 中查看相应的文件源。

为什么会出现这个?

小智 21

我的情况完全一样。问题是,firefox 让我什至显示托管在同一 URL 上的不同网站的 Cookie:“本地主机:端口号”存储在浏览器内存中。

就我而言,我有两个项目配置为运行 at http://localhost:62601,当我运行第一个项目时,它会将该 cookie 保存在浏览器内存中。当我运行具有相同 URL 的第二个项目时,该项目控制台内也可以使用 Cookie。

您可以做的是从浏览器中删除所有 cookie。


Wat*_*man 19

@Paramjot Singh 的回答是正确的,并让我大部分时间到达了我需要去的地方。我也浪费了很多时间盯着那些警告。

但要澄清一点,您不必删除所有 cookie 来解决此问题。在 Firefox 中,您可以删除单个站点 cookie,这将保留您在其他站点上的设置。

为此,请单击右上角的汉堡菜单,然后, Options->Privacy & Security

从这里向下滚动大约一半并找到Cookies 和站点数据。不要点击 Clear Data。而是单击Manage Data。然后,搜索您收到通知的站点,将其突出显示,然后Remove Selected

很简单,我知道,但我第一次犯了清除所有内容的错误 - 也许这会阻止某人做同样的事情。


Sta*_*low 13

给出警告是因为,根据MDN 网络文档

与 Cookie SameSite 属性相关的标准最近发生了变化,例如:

如果未指定 SameSite,cookie 发送行为是 SameSite=Lax。以前的默认设置是为所有请求发送 cookie。具有 SameSite=None 的 Cookie 现在还必须指定 Secure 属性(它们需要安全上下文/HTTPS)。

这表明需要安全上下文/HTTPS 才能通过设置SameSite=None Securecookie来允许跨站点cookie。

根据 Mozilla 的说法,您应该为您的 cookie 明确传达预期的 SameSite 策略(而不是依赖浏览器自动应用 SameSite=Lax),否则您可能会收到如下警告:

Cookie“myCookie”将“SameSite”策略设置为“Lax”,因为它缺少“SameSite”属性,“SameSite=Lax”是该属性的默认值。

简单地删除 localhost cookie 的建议实际上并不能解决问题。解决方法是正确设置SameSite服务器设置的cookies的属性,并在需要时使用HTTPS。

Firefox 并不是唯一进行这些更改的浏览器。显然,当我在控制台中收到此消息时,我正在使用的 Chrome 版本 (84.0.4147.125) 已经实施了更改: 在此处输入图片说明

前面提到的 MDN 文章Mike Conca 的这篇文章提供了有关更改 SameSite cookie 行为的重要信息。


Emu*_*ite 3

猜测您正在使用 WAMP 或 LAMP 等。您需要做的第一件事是在 WAMP 上启用 ssl,因为您会发现许多参考资料说您需要将 cookie 设置调整为 SameSite=None;安全 这意味着您的本地连接是安全的。此链接https://articlebin.michaelmilette.com/how-to-add-ssl-https-to-wampserver/上有说明 以及一些 YouTube 视频。需要注意的重要一点是,在创建 SSL 证书时,您应该使用 sha256 编码,因为 sha1 现已弃用,并且会引发另一个警告。https://web.dev/samesite-cookies-explained/上对 SameSite cookie 有很好的解释, 我一直在努力解决同样的问题,并通过确保启用 Apache 2.4 标头模块并添加一行代码来解决它

Header always edit Set-Cookie ^(.")$ $1;HttpOnly;Secure
Run Code Online (Sandbox Code Playgroud)

我浪费了很多时间盯着 Inspector 中的同一组警告,直到我意识到 cookie 仍然存在并且需要清除。

显然 Chrome 现在已经准备好引入新规则了,但 Covid-19 意味着人们在家工作时许多网站可能会被破坏。主要浏览器正在共同开发 SameSite 属性,因此它将很快生效。