为什么登录后看不到 Cookie 参数?



我正在努力使Symfony网站安全。我看了这个页面:如何在Symfony 4会话上设置安全和httponly属性

并将建议的更改应用到 framework.yaml:

session:
handler_id: ~
cookie_secure: true
cookie_httponly: true

当我登录时,在网络选项卡中,我看到三个 Set-Cookie 实例。第一种是cookie删除,具有安全和HttpOnly属性。第二种是 cookie 创建,其中 cookie 标识符具有 secure 和 HttpOnly 属性。第三种是以HTTP编码的方式设置一些参数,这个参数还具有安全和HttpOnly属性。目前为止,一切都好。但是,当我转到任何页面时,我在请求标头中有一个 Cookie 属性,该属性与之前创建的标识符相同,但没有指定安全和 HttpOnly 属性。

因此,当我登录并创建cookie时,我具有我期望的属性,但是后来,在访问单独的页面时,我不再看到它们。为什么在以后的登录后请求标头上未指定 secure 和 HttpOnly 属性?我错过了什么吗?

安全属性由服务器在响应标头中设置,浏览器使用它们来确定它是否必须在请求中发送cookie,但它从不发送属性本身,只发送cookie值。如果您检查 ajax 或不安全的请求,则 cookie 标头根本不应该出现在请求中。

您可以在RFC6265中看到一些示例。

最新更新