Contributed by
Nicolas Grekas
in #28447 and
#28446.
在 PHP 中的 setcookie()
或 session_set_cookie_params()
函数中把 secure
参数设为 true
,可令cookie仅在连接是安全的和使用HTTPS时才被发送。
在 Symfony 程序中你可以通过 framework.session.cookie_secure 选项 来控制此种行为,它是个默认为 false
的布尔值。为了提高程序的安全性,在 Symfony 4.2 中我们让cookie的安全性实现了自动化。
全新 cookie_secure
选项的默认值是 null
,可在使用HTTPS进行请求时令cookies安全,并且在使用HTTP进行请求时不改变cookie。这个新行为是一个较好的平衡点,既让程序“默认是安全的”,又不会破坏现有程序。
据此,在 Remember Me 功能 中使用的cookies,现在继承了 framework.session.cookie_*
选项中的默认配置值,因此这个新的“自动安全”之行为也就应用于其中了。
在2019年11月推出的 Symfony 5.0 中,Cookie
类的构造器中的 $secure
参数将从 false
变为 null
。此外, $samesite
参数的默认值将从 null
变为 lax
以便使用 全新的 SameSite cookie 配置项。