Symfony 在3.2版中添加了对 SameSite cookie属性 (2016年11月)的支持。SameSite attribute 可防止浏览器在跨站请求(cross-site requests)的同时发送cookie。实践中,这可减轻跨域(cross-origin)时的信息泄露风险,并提供一些针对CSRF攻击的保护。

在 Symfony 4.2 中我们把框架内一些地方对此属性的设置进行了简化。

"Remember Me"中的SameSite属性

Contributed by
Kévin Dunglas
in #27976.

The Remember Me 功能 现在定义了一个新的名为 samesite 的cookie选项,以便在用到此功能的cookie中设置该值:

1
2
3
4
5
6
7
8
9
10
11
12
13
# config/packages/security.yaml
security:
    # ...

    firewalls:
        main:
            # ...
            remember_me:
                # ...
 
                # possible values: 'strict', 'lax' and null
                # 可选的值是: 'strict', 'lax' and null
                samesite: 'strict'

session中的SameSite属性

Contributed by
Remon van de Kamp
in #28168.

类似的,用于管理用户session的cookie,现在也定义了一个新的名为 cookie_samesite 的配置选项,它具有同样的可选值 (strict, laxnull):

1
2
3
4
5
6
# config/packages/framework.yaml
framework:
    # ...
    session:
        # ...
        cookie_samesite: 'strict'