【问题标题】:Symfony CSRF domain and subdomainSymfony CSRF 域和子域
【发布时间】:2018-08-23 07:43:12
【问题描述】:

我对 Symfony 的 CSRF 保护有疑问。

当我登录到域 toto.com 时,它可以工作,但是当我尝试连接到域 test.toto.com(相同的服务器,相同的代码,它只是重定向到 toto.com)时,我有错误“CSRF 无效令牌”。

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

谢谢。

[编辑 - 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

看起来它正在工作。

谢谢。

【问题讨论】:

    标签: symfony csrf


    【解决方案1】:

    您可以尝试在配置中设置 cookie_domain、save_path: 和 name:。

    【讨论】:

    • 你不是想在子域上使用它吗?你试过设置 test.toto.com 吗?
    • 是的,它在子域上。 test.toto.com 我的登录无效
    • 对不起。我错过了有关重定向的部分。您是否尝试过 cookie_domain: .toto.com 选项?如果它不起作用,您使用的是什么 Symfony 版本?
    • 是的,我放入了我的 config_prod cookie_domain: .toto.com 也没有工作。我的 symfony 版本是 3.4。我也删除了我的 cookie。
    • 尝试设置 save_path: 和 name:
    【解决方案2】:

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

    framework:
        session:
            cookie_domain: .xxxx.com
    

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

    【讨论】:

      猜你喜欢
      • 2013-02-10
      • 2011-02-28
      • 2021-07-01
      • 2013-03-08
      • 2018-01-07
      • 1970-01-01
      • 2015-08-11
      • 2014-02-19
      相关资源
      最近更新 更多