Symfony CSRF 域和子域

Symfony CSRF domain and subdomain

我对 Symfony 的 CSRF 保护有疑问。

当我登录到域 toto.com 时,它可以工作,但是当我尝试连接到域 test 时。toto.com(相同的服务器,相同的代码,它只是重定向到 toto.com),我有一个错误 'CSRF Invalid token'。

你知道我怎么解决这个问题吗?在将应用程序推向产品之前,您如何测试它们?你有子域吗?

谢谢。

[编辑 - 18-04-03]

已添加:

framework:
    session:
        cookie_domain: xxxx.com

在我的 config_prod.yml 文件中。没用

[编辑 v2 - 18-04-03 - 工作]

framework
    trusted_hosts:  ['toto.com', 'test.toto.com']
    session:
        cookie_domain: .toto.com
        save_path:   "%kernel.root_dir%/../var/sessions/"
        cookie_lifetime: 31536000
        name: totosessionid

看起来它在工作。

谢谢。

您可以尝试在配置中设置 cookie_domain、save_path: 和 name:(对于框架)。

要包含域及其子域,您应该使用以下语法:

framework:
    session:
        cookie_domain: .xxxx.com

其他语法可能会导致特定浏览器出现问题(据我所知,主要是旧的 IE)。