gpt4 book ai didi

security - symfony 安全性限制对指定 ip 集的路由列表的访问

转载 作者:行者123 更新时间:2023-12-04 08:47:36 25 4
gpt4 key购买 nike

我有一个 Symfony 应用程序,需要限制对一组指定 ips 的路径列表的访问。

对于仍在开发中但将分阶段投入使用的站点,这是必需的。任何人都应该可以访问完成的路径。

其他路径只能从一组指定的 IP 地址访问。
否则应该显示一个简单的 403。

路径不共享相同的前缀。
我也不想临时更改实际路径。

这样做的最佳方法是什么?
在 access_control 中添加大量项目感觉不是一个好主意。

我可以添加防火墙监听器或可以检查 ip 和请求路径的东西吗?我可以从那里抛出一个简单的 AccessDenied 异常吗?

最佳答案

您想要的是在 access_control 下的 security.yml 中对其进行配置

# app/config/security.yml
security:
# ...
providers:
in_memory:
memory:
users:
ryan:
password: ryanpass
roles: 'ROLE_USER'
admin:
password: kitten
roles: 'ROLE_ADMIN'

access_control:
- { path: ^/admin, roles: ROLE_USER, ip: 127.0.0.1 }
- { path: ^/admin, roles: ROLE_USER, host: symfony\.com$ }
- { path: ^/admin, roles: ROLE_ADMIN, methods: [POST, PUT] }
- { path: ^/admin, roles: ROLE_USER }

您也可以使用 ips: [1.2.3.4, 5.6.7.8] 代替 ip

角色来自您的提供者,在上面的示例中,它被添加到配置中。

一切都在这里: http://symfony.com/doc/current/cookbook/security/access_control.html

阅读整个安全部分也很好:
http://symfony.com/doc/current/book/security.html
http://symfony.com/doc/current/book/security.html#roles

关于security - symfony 安全性限制对指定 ip 集的路由列表的访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33148410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com