【问题标题】:htaccess - using password OR ip whitelisthtaccess - 使用密码或 ip 白名单
【发布时间】:2011-12-01 19:02:08
【问题描述】:

所以我想限制对 url 的访问。现在,如果它们来自给定的 IP 地址,则不应提示它们输入密码。如果他们不是来自给定的 IP 地址,那么应该提示他们输入密码。

so a or of:

AuthUserFile /some/path/.htpasswd
AuthName "Please Log In"
AuthType Basic
require valid-user

和:

order deny,allow

deny from all
allow from x.x.x.x

【问题讨论】:

    标签: .htaccess


    【解决方案1】:

    您可以使用 Apache "Satisfy" 指令。

    这是一个使用它的例子:

    AuthType Basic
    AuthName "Please Log In"
    AuthUserFile /some/path/.htpasswd
    Require valid-user
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
    Satisfy any
    

    无密码访问只允许从 127.0.0.1.

    希望这会有所帮助。

    【讨论】:

    • +1 这正是我所做的。此外,如果您想禁用某些目录中的检查(例如某些公共/),只需将其放在子目录的 .htaccess:
    • Allow from allSatisfy any
    【解决方案2】:

    使用 Apache 2.4 Satisfy 仍然可用,但 deprecated

    注意

    mod_access_compat 提供的指令已被 mod_authz_host 弃用。 将 Order、Allow 或 Deny 等旧指令与 Require 等新指令混合在技术上是可行的,但不鼓励。 创建此模块是为了支持仅包含旧指令的配置,以促进 2.4 升级。请查看升级指南了解更多信息。


    在您的情况下,Allow from 1.2.3.4Require ip 1.2.3.4 替换

    组合多个Requires(如Require valid-userRequire ip)可以由Authorization Containers完成。因此,如果说客户端必须提供密码或来自特定 IP 地址,可以通过使用 RequireAny 包围指令来完成,例如

    <RequireAny>
        Require valid-user
        Require ip 1.2.3.4
    </RequireAny>
    

    虽然,这是Require末尾所述的特殊情况

    当多个 Require 指令在单个配置部分中使用并且不包含在另一个授权指令(如 &lt;RequireAll&gt;)中时,它们隐式包含在 &lt;RequireAny&gt; 指令中。因此第一个authorize 用户授权整个请求,随后的 Require 指令将被忽略。

    也就是说RequireAny在这里是可选的,你可以直接列出来

    Require valid-user
    Require ip 1.2.3.4
    

    【讨论】:

    • 那么你能展示一个寻找有效IP的版本,如果不要求输入密码,位置为htpasswd
    • @drooh 我还没有测试过,但也许把Require ip 放在第一位可能会奏效。如果没有,请提出一个新问题。
    【解决方案3】:

    这对我来说很完美:

    AuthType Basic
    AuthName "myserver publicname"
    AuthUserFile "/myserverpath/.htpasswds/public/passwd"
    require ip 100.12.255.233
    require valid-user
    

    注意: 只需将 'require ip' 和 'my example ip' 放在 'require valid-user' 之前,就可以了。我可以从我的 ip 登录而无需密码,但如果我从其他位置或我的移动设备访问,我需要密码。

    设置“满足任何要求”对我不利 (!),因为它禁用了我的应用程序较低层次结构中的其他 .htaccess 设置,并使我的网站不安全。

    【讨论】:

      猜你喜欢
      • 2013-06-11
      • 2016-10-26
      • 2022-08-16
      • 2021-05-02
      • 2012-12-04
      • 1970-01-01
      • 1970-01-01
      • 2019-01-08
      • 1970-01-01
      相关资源
      最近更新 更多