gpt4 book ai didi

Symfony2 对所有人的 IP 限制

转载 作者:行者123 更新时间:2023-12-02 15:23:59 29 4
gpt4 key购买 nike

我正在尝试对 Symfony2 中的特定路由应用 IP 限制,如 Symfony2 book 中所述。 。我没有用户身份验证,我只是希望我的服务能够响应来自特定 IP 的请求。

但是我没有成功应用限制(我在测试期间总是通过)。

这是我的 security.yml

jms_security_extra:
secure_all_services: false
expressions: true

security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext

role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

providers:
in_memory:
memory:
users:
user: { password: userpass, roles: [ 'ROLE_USER' ] }
admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }

firewalls:
secured_area:
pattern: ^/wsoa/tests
anonymous: ~
# http_basic:
# realm: "Secured Demo Area"

access_control:
#- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
#- { path: ^/_internal/secure, roles: IS_AUTHENTICATED_ANONYMOUSLY, ip: 127.0.0.1 }
# THE RESTRICTION I'D LIKE (FOR EXEMPLE 127.0.0.1)
- { path: ^/wsoa_products_tests, roles: IS_AUTHENTICATED_ANONYMOUSLY, ip: 127.0.0.1 }

这是我的routing.yml路线:

wsoa_products_tests:
pattern: /wsoa/tests
defaults: { _controller: WsoaProductsBundle:Test:display }

有人知道如何让它发挥作用吗?我应该忘记在 Symfony2 中执行此操作并使用 htaccess 执行此操作吗?

最佳答案

要将路径限制为仅特定 IP,您可以将以下内容添加到 security.yml access_control:

- { path: ^/yourpath, roles: IS_AUTHENTICATED_ANONYMOUSLY, ips: [1.1.1.1, 2.2.2.2, ...]  }
- { path: ^/yourpath, roles: ROLE_NO_ACCESS }

如果您想限制整个 IP 范围,请使用 IP 网络掩码,如下所示:

- { path: ^/yourpath, roles: IS_AUTHENTICATED_ANONYMOUSLY, ips: [1.1.1.0/24]  }
- { path: ^/yourpath, roles: ROLE_NO_ACCESS }

注意:我在此处放置的 IP 地址需要替换为您要限制的 IP 地址。还要将 ^/yourpath 替换为您的实际路径或子路径。

关于Symfony2 对所有人的 IP 限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13879923/

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