添加了对SameSite cookie属性的支持 

same-site是一个新的cookie属性,能够让程序禁止第三方使用任何cookie。这可以帮助用户抵御CSRF攻击,因为如果没有cookie,攻击者在攻击时就不能看到你已经登陆网站。

在Symfony 3.2中,Cookie类的构造器,增加了第九个参数也就是$sameSite,来获取定义在Cookie::SAMESITE_LAXCookie::SAMESITE_STRICT常量中的值:

1
2
3
use Symfony\Component\HttpFoundation\Cookie;
 
$cookie = new Cookie(..., Cookie::SAMESITE_LAX);

strict模式可以防止任何针对cookie进行的跨站攻击。在lax模式下,一些顶级(top-level)的GET请求将被允许,比如点击一个跳向他站的链接,或者发送一个GET表单。

改进了对缓存头的响应 

以前,如果你要处理一个301永久重定向,同时不设置cache header,则no-cache头会被Symfony添加。在Symfony 3.2中,这种行为被改变,现在的301不再自动添加no-cache头了,但它还存在,如果需要你可以显式指定它。

Symfony 3.2也修复了另一处与缓存头相关的前后不一致的地方。当no-cache头出现时,Symfony也会添加private指令(directive),因此响应中如果有no-cache,现在还会多一个private

添加了isMethodIdempotent()用法 

HTTP安全方法是指那些“取出资源,但不修改、删除或创建它们”的(只有GETHEAD等被认为安全)。Request类有一个isMethodSafe()方法,用于检查给定的HTTP方法是否安全。

HTTP idempotent幂等性,是指一个请求序列(多次请求)可以得到相同的结果而没有任何额外的副作用(即,一次和多次请求某一个资源具有同样的效果)。例如,PUT是幂等的,两次相同的请求之后,资源保持同样状态(始终是被替换),但是POST不具等幂性,因为相同的两次请求之后,你面对的是同一内容的两个资源。

Symfony 3.2中我们添加了一个新方法isMethodIdempotent(),用于检查给定的HTTP method是否具有幂等性。