Php 在Symfony中找不到路由时,访问控制似乎被忽略
我们的symfony3项目有以下安全设置:Php 在Symfony中找不到路由时,访问控制似乎被忽略,php,security,access-control,symfony,Php,Security,Access Control,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,
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
这样,坏人就能够确定资源是否存在
有人知道为什么会发生这种情况吗?我有点不知所措
谢谢 嗯,好像是法比恩干的:-/ 虽然这确实不是一个大的安全问题,但这并没有给我们以我们想要的方式设计API的自由。通过使用编译器过程替换“security.firewall”类,我们能够更改订阅事件的优先级,因此现在在路由器侦听器之前调用防火墙侦听器。到目前为止对我们有效。。