我正在使用Symfony 2.1来构建一个带有一点登录表单的网站。我正在this链接上学习该教程,但我没有看到任何关于CSRF保护的部分。但是,here有登录安全性的所有选项,最后我可以清楚地看到应该支持这种类型的保护。我不明白如何使用它
答案 0 :(得分:2)
Here您可以在2.1版中详细了解CSRF保护
如果你没有为表单使用表单类,你可以简单地使用csrf_token
函数(不要忘记在那里传递你的意图字符串,默认为空):
<input type="hidden" name="token" value="{{ csrf_token('') }}">
定义为here,默认情况下会执行this method。
这些答案可能也对您有用:
https://stackoverflow.com/a/12054712/970721
https://stackoverflow.com/a/11632713/970721
答案 1 :(得分:0)
没有什么阻止您为登录创建表单类。您需要做的就是告诉登录控制器生成的字段的名称:
form_login:
username_parameter: login[username]
password_parameter: login[password]
csrf_parameter: login[_token]
并将表单的CSRF意图设置为authenticate
:
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults([
'intention' => 'authenticate',
]);
}