当在Symfony中找不到路由时,访问控制似乎被忽略了


Access Control seems to be ignored when route is not found in Symfony

我们的symfony3项目有以下安全设置:

firewalls:
    myfirewall:
        pattern: ^/myapi
        stateless: true
        http_basic: ~
        anonymous: false
access_control:
    - { path: ^/myapi, ips: ['192.168.0.155'], roles: ROLE_USER }
    - { path: ^/myapi, roles: ROLE_NO_ACCESS }

除此之外,还有一个内存中的提供程序。当路由被命中时,这工作正常。对/myapi/resource/123 的调用受到保护。但不幸的是,/myapi/res不是。对此 URI 的请求会导致 404。

这样,坏人就能够确定资源是否存在。

有谁知道为什么会发生这种情况/出了什么问题?我有点头绪。

谢谢!

嗯,似乎法比安做到了:-/https://github.com/symfony/symfony/issues/8414

虽然真的不是一个大的安全问题,但这并没有让我们自由地按照我们想要的方式设计我们的 API。