Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在特定防火墙上禁用CSRF_Php_Symfony_Oauth_Csrf - Fatal编程技术网

Php 在特定防火墙上禁用CSRF

Php 在特定防火墙上禁用CSRF,php,symfony,oauth,csrf,Php,Symfony,Oauth,Csrf,我有一个应用程序,允许用户通过2个不同的渠道访问 带小枝的正常 通过FOSRestBundle恢复完整-example.com/api/*地址 我启用了CSRF保护,因为我想在第一种情况下使用它 framework: csrf_protection: true 但是。。。我需要在向/api/*地址发送请求时禁用CSRF保护,因为在本例中,我使用OAuth登录 我可以禁用特定防火墙的CSRF保护吗 我的防火墙: firewalls: oauth_token:

我有一个应用程序,允许用户通过2个不同的渠道访问

  • 带小枝的正常
  • 通过FOSRestBundle恢复完整-example.com/api/*地址
我启用了CSRF保护,因为我想在第一种情况下使用它

framework:
    csrf_protection: true
但是。。。我需要在向/api/*地址发送请求时禁用CSRF保护,因为在本例中,我使用OAuth登录

我可以禁用特定防火墙的CSRF保护吗

我的防火墙:

firewalls:
    oauth_token:                                   
        pattern: ^/api/oauth/v2/token
        security: false
    api:
        pattern: ^/api/                            
        fos_oauth: true                            
        stateless: true                            
        anonymous: false                           
    main:
        pattern: ^/
        form_login:
            provider: chain_provider
            csrf_provider: form.csrf_provider
        logout:       true
        anonymous:    true
当我向/api/server发送POST请求时,返回错误:

CSRF令牌无效。请尝试重新提交表单


我需要为
api
防火墙禁用此保护,并将其保留在
main
中。有可能吗?

您可以根据用户情况处理此问题:

当构建一个应用程序,既要通过HTML表单也要通过RESTAPI处理表单时,就会遇到CSRF令牌验证的问题。在大多数情况下,有必要为HTML表单启用它们,但将它们用于RESTAPI是没有意义的。因此,有一个表单扩展,用于禁用具有特定角色的用户的CSRF验证。当然,这需要RESTAPI用户对自己进行身份验证并分配一个特殊角色

fos_rest:
    disable_csrf_role: ROLE_API