2

我正在使用 Symfony 2.1 构建一个带有一点登录表单的网站。我正在关注链接上的教程,但我没有看到任何有关 CSRF 保护的部分。但是,这里有登录安全性的所有选项,最后我可以清楚地看到应该支持这种类型的保护。我不明白如何使用它

4

2 回答 2

2

在这里您可以阅读 2.1 版本中有关 CSRF 保护的详细信息


如果您不为表单使用表单类,则可以简单地使用csrf_token函数(不要忘记在那里传递您的意图字符串,默认情况下为空):

<input type="hidden" name="token" value="{{ csrf_token('') }}">

在此处定义,默认情况下将执行此方法


这些答案可能对您也有用:

https://stackoverflow.com/a/12054712/970721
https://stackoverflow.com/a/11632713/970721

于 2012-10-07T21:09:55.320 回答
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',
    ]);
}
于 2012-10-08T06:22:00.130 回答