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 许可证获得许可。