跳到内容

CSRF 保护

编辑此页

为了防止对双因素身份验证表单的 CSRF 攻击,您可以像在登录表单上一样启用 CSRF 保护。

首先,请确保在主配置文件中启用了 CSRF 保护

1
2
3
# config/packages/framework.yaml
framework:
    csrf_protection: ~

然后,在防火墙的 two_factor 安全配置中需要启用 CSRF

1
2
3
4
5
6
# config/packages/security.yaml
security:
    firewalls:
        your_firewall_name:
            two_factor:
                enable_csrf: true

确保在身份验证表单中为 CSRF 令牌添加额外的字段。默认模板中的代码可以完成这项工作

1
2
3
{% if isCsrfProtectionEnabled %}
    <input type="hidden" name="{{ csrfParameterName }}" value="{{ csrf_token(csrfTokenId) }}">
{% endif %}

您可以通过在配置中设置 csrf_parameter 来更改字段名称,并通过设置 csrf_token_id 来更改令牌 ID

1
2
3
4
5
6
7
8
# config/packages/security.yaml
security:
    firewalls:
        your_firewall_name:
            two_factor:
                enable_csrf: true
                csrf_parameter: _csrf_security_token
                csrf_token_id: a_private_string
本作品,包括代码示例,根据 Creative Commons BY-SA 3.0 许可证获得许可。
目录
    版本