我正在编写一个具有内部请求身份验证的后端应用程序,所以我不需要 CSRF - 除了少数实际暴露给用户的表单。
所以我在 config.yml 中禁用了 CSRF,但我想为特定表单启用它。根据文档,这应该可以解决问题:
public function setDefaultOptions(OptionsResolverInterface $resolver) {
$resolver->setDefaults(array(
// FIXME: this doesn't work, I still don't get CSRF ?
'csrf_protection' => true,
'csrf_field_name' => '_token',
));
}
但事实并非如此,我仍然没有以这种形式获得 CSRF 令牌。我的树枝文件说:
<form action="{{ path('mypath') }}" method="post" {{ form_enctype(form) }}>
{{ form_widget(form) }}
<button name="submit">{{ 'register.submit'|trans }}</button>
</form>
所以这也应该有效。有什么问题?