dkplus / csrf-api-unprotection-bundle
禁用所有匹配给定表达式的URL的CSRF-token验证。
v2.2.1
2019-01-10 09:27 UTC
Requires
- php: ^5.6|^7
- beberlei/assert: ^2||^3
- symfony/config: ^2.8|^3|^4
- symfony/dependency-injection: ^2.8|^3|^4
- symfony/form: ^2.8|^3|^4
- symfony/http-foundation: ^2.8|^3|^4
- symfony/http-kernel: ^2.8|^3|^4
Requires (Dev)
- ocramius/finalizer: ^1.0
- phpunit/phpunit: ^4.7
README
在开发无状态的REST-API时,您不需要CSRF令牌验证。幸运的是,FOSRest 提供了禁用它的能力。
如果没有为所有API用户设置ROLE,则此解决方案不起作用。
此Bundle根据请求的URL禁用CSRF令牌验证。因此,如果您的API有一个全局前缀如/api/
,您可以为所有API表单禁用CSRF令牌验证。
安装
步骤1:下载Bundle
此Bundle的安装使用composer。它要求您全局安装Composer。有关Composer文档,请参阅getcomposer.org。
打开命令行,进入您的项目目录,并执行以下命令以下载此bundle的最新稳定版本
composer require dkplus/csrf-api-unprotection-bundle
步骤2:在您的AppKernel中启用Bundle
然后,通过在您的项目的app/AppKernel.php
文件中添加以下行来启用bundle
<?php class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // … new Dkplus\CsrfApiUnprotectionBundle\DkplusCsrfApiUnprotectionBundle, ); // … } // … }
这就是您需要的一切 :-)
配置
默认配置禁用了以/api/
开头的所有uris的CSRF令牌验证,无论您使用的是哪个环境。
dkplus_csrf_api_unprotection: rules: match_uri: - "#^(/app(_[a-zA-Z]*)?.php)?/api/#"