在登录表单中使用CSRF保护

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.7,现已不再维护。

本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。

跨站请求伪造).Security组件已经内置了对CSRF的支持。在本文中,您将了解如何在登录表单中使用它。

请注意

登录CSRF攻击不太为人所知。看到伪造登录请求如果你想知道更多细节。

然后,安全组件需要一个CSRF令牌提供者。你可以设置为使用安全组件中的默认提供程序:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7 8 9 10
# app / config / security.yml安全:#……防火墙:secured_area:#……form_login:#……csrf_provider:security.csrf.token_manager

Security组件可以进一步配置,但这是它在登录表单中使用CSRF所需的全部信息。

_csrf_token.该隐藏字段必须包含CSRF令牌,该令牌可以通过使用csrf_token ()函数。该函数需要一个令牌ID,必须设置为进行身份验证使用登录表单时:

  • 嫩枝
  • PHP
12 3 4 5 6 7 8 9 10 11 12
{# src / AppBundle /资源/视图/安全/ login.html。树枝#}{#……#}<形式行动{{path('login')}}方法“职位”>{#……登录字段#}<输入类型“隐藏”的名字“_csrf_token”价值{{csrf_token('authenticate')}}><按钮类型“提交”>登录按钮>形式>

在此之后,您已经保护了登录表单免受CSRF攻击。

提示

您可以通过设置更改字段的名称csrf_parameter并通过设置更改令牌ID意图在您的配置中:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7 8 9 10 11
# app / config / security.yml安全:#……防火墙:secured_area:#……form_login:#……csrf_parameter:_csrf_security_token意愿:a_private_string