感谢你来到这里
我真的很激动
盼望,能有你的支持
捐赠可扫描二维码转账支付
支付宝扫一扫付款
微信扫一扫付款
(微信为保护隐私,不显示你的昵称)
你可以强制自己的网站在security配置信息中使用HTTPS协议。他是通过在 access_control
规则中使用 requires_channel
选项来完成的。例如,如果你要强制所有以 /secure
开头的URLs使用HTTPS,那么你应该使用以下配置:
1 2 3 4 5 6 | # app/config/security.yml
security:
# ...
access_control:
- { path: ^/secure, roles: ROLE_ADMIN, requires_channel: https } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <!-- app/config/security.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<srv:container xmlns="http://symfony.com/schema/dic/security"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:srv="http://symfony.com/schema/dic/services"
xsi:schemaLocation="http://symfony.com/schema/dic/services
http://symfony.com/schema/dic/services/services-1.0.xsd">
<config>
<!-- ... -->
<rule path="^/secure" role="ROLE_ADMIN" requires_channel="https" />
</config>
</srv:container> |
登录表单本身需要能够匿名访问,否则用户将无法进行身份验证。要强制其使用HTTPS,你仍然可以使用 access_control
规则中的 IS_AUTHENTICATED_ANONYM
role(属性):
1 2 3 4 5 6 | # app/config/security.yml
security:
# ...
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <!-- app/config/security.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<srv:container xmlns="http://symfony.com/schema/dic/security"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:srv="http://symfony.com/schema/dic/services"
xsi:schemaLocation="http://symfony.com/schema/dic/services
http://symfony.com/schema/dic/services/services-1.0.xsd">
<config>
<!-- ... -->
<rule path="^/login"
role="IS_AUTHENTICATED_ANONYMOUSLY"
requires_channel="https"
/>
</config>
</srv:container> |
也可以在路由配置中使用HTTPS,参考 如何强制路由总是使用HTTPS或HTTP 以了解更多。
本文,包括例程代码在内,采用的是 Creative Commons BY-SA 3.0 创作共用授权。