3

Symfony2 propse 为框架启用或禁用 csrf_protection,例如:

    csrf_protection: 
        enabled: false


csrf_protection: false

我们应该注意到这两种配置是完全不同的,第一种意味着 csrf 已加载但为假,第二种我们甚至不加载此功能。好吧,我们可以很容易地为特殊形式启用它,例如:

    public function getDefaultOptions(array $options)
{
    return array(
            'data_class' => 'xxx\Entity\Company',
            'csrf_protection' => true,
    );
}

在表单构建器类中。

但我认为这还不够,所以我问这个问题,我们可以做类似的事情:

mybundle:
    csrf_protection:
        enabled: false
4

1 回答 1

1

您可以为项目中的每个捆绑包全局禁用文件中的 csrf_protection config.yml,但我认为仅对其中一个捆绑包执行此操作是不可能的。

相反,您需要修改该捆绑包的每个 Form 类上的选项数组,如下所示:

class TaskType extends AbstractType
{
    // ...

    public function getDefaultOptions(array $options)
    {
        return array(
            'data_class'      => 'Acme\TaskBundle\Entity\Task',
            'csrf_protection' => false
        );
    }

    // ...
} 
于 2013-01-14T12:46:48.340 回答