我正在跟进本教程来自 digitalocean 我已经成功设置了需要的 ip 和允许的 ip,以便只有我的 ip 地址可以连接到网页。
然而,在设置 Web 服务器身份验证门的最后一部分,当我启用 htaccess 并创建 htpasswd 时,它会禁用对 ip 地址的限制,以便每个 ip 都可以连接到它。
当我删除 htaccess 文件时,Web 登录又可以正常工作。
有人有什么想法吗?
答案1
如果你按照这两个教程进行操作,你将获得(第二个.htaccess
):
Require ip your_workstation_IP_address
Require valid-user
来自 mod_authz_coreRequire
指示文档:
Require
当在单个指令中使用多个指令时配置部分并且不包含在其他授权指令中,例如<RequireAll>
,它们隐式包含在<RequireAny>
指令中。因此,第一个授权用户的指令将授权整个请求,而后续Require
指令将被忽略。
关于合并:
<Directory>
(正则表达式除外)并.htaccess
同时完成(.htaccess
如果允许,则覆盖<Directory>
)
如果你确实需要这两条规则:
- 将它们放在同一个配置部分中。
- 把它们放在里面
<RequireAll>
。
但实际上,如果您已经Require ip
限制为一个(或几个)IP 地址和 PhpMyAdmin 登录表单,则Require valid-user
实际上不会增加任何额外的安全层。
本教程缺少一个关键步骤,比以下任何Require
陈述都重要:
但是,您的 phpMyAdmin 界面将在我们选择的新位置可用:
http://server_domain_or_IP/nothingtosee
仅提供受 TLS 保护的 PhpMyAdmin!
这确实应该是https://server_domain_or_IP/nothingtosee
。这很重要,否则你可能会泄露你的数据库登录信息并泄露数据库中的所有数据。启用 HTTPS,例如使用免费的让我们加密证书并遵循 Apache 的SSL/TLS 强加密:操作方法。