【问题标题】:htaccess access to file by ip rangehtaccess 通过 ip 范围访问文件
【发布时间】:2011-06-29 20:50:43
【问题描述】:

如何只允许具有一定 IP 地址范围内 ip 的用户访问文件?

例如文件 admin.php。范围从 0.0.0.0 到 1.2.3.4。

我只需要配置对一个文件的访问权限,而不是对目录的访问权限。

【问题讨论】:

  • 允许从 FROM_IP TO_IP
  • @Manish Trivedi 刚刚尝试过:127.0.0.1 被 127.0.0.0 127.0.0.2 拒绝。因此,事情并没有那么简单——除非我在测试中犯了错误。我有吗?

标签: php .htaccess


【解决方案1】:

只需添加 FilesMatchFiles 指令即可将其限制为特定脚本。

以下内容将阻止对所有以“admin.php”结尾的脚本的访问:

<FilesMatch "admin\.php$">
    Order deny,allow
    Deny from all
    Allow from 10.0.0.0/24
</FilesMatch>

以下内容只会阻止 admin.php:

<Files "admin.php">
    Order deny,allow
    Deny from all
    Allow from 10.0.0.0/24
</Files>

有关更多信息,请参阅Configuration Sections 上的 apache 文档。

【讨论】:

    【解决方案2】:

    查看Allow Directive的手册页

    Order Deny,Allow
    Deny from all
    Allow from 10.1.0.0/255.255.0.0
    

    部分 IP 地址

    例子:

    Allow from 10.1
    Allow from 10 172.20 192.168.2
    

    IP 地址的前 1 到 3 个字节,用于子网限制。

    网络/网络掩码对

    例子:

    Allow from 10.1.0.0/255.255.0.0
    

    一个网络 a.b.c.d 和一个网络掩码 w.x.y.z。用于更细粒度的子网限制。

    网络/nnn CIDR 规范

    例子:

    Allow from 10.1.0.0/16
    

    与前一种情况类似,只是网络掩码由 nnn 高位 1 位组成。

    【讨论】:

    • 但是如何将它用于例如 admin.php 文件?
    • 从 htaccess 中的代码添加 2 个 ip 范围到我的允许中是否正确? stackoverflow.com/questions/31833456/…
    • "网络掩码由 nnn 高位 1 位组成。" - 那是什么意思?是关于“/16”的吗?我经常看到这个符号,但还没有找到解释。
    • 知道了,偶然发现:秘籍是“CIDR-Format”
    【解决方案3】:

    您无法将 IP 范围与 allow 匹配,但您可以使用 CIDR 表示法来模拟它:

    Order allow,deny
    
    # 0.0.0.0 - 0.255.255.255.255
    Allow from 0.0.0.0/8
    
    # 1.0.0.0 - 1.1.255.255
    Allow from 1.0.0.0/15
    
    # 1.2.0.0 - 1.2.1.255
    Allow from 1.2.0.0/23
    
    # 1.2.2.0 - 1.2.2.255
    Allow from 1.2.2.0/24
    
    # 1.2.3.0 - 1.2.3.3
    Allow from 1.2.3.0/30
    
    # 1.2.3.4
    Allow from 1.2.3.4
    

    【讨论】:

      【解决方案4】:

      只需为单个 IP 执行此操作:

      <Limit GET POST>
      order deny,allow
      deny from all
      allow from 1.2.3.4
      </Limit>
      

      如果您想为 10.x.x.x 之类的范围执行此操作,请执行以下操作:

      <Limit GET POST> 
      order allow,deny 
      allow from 10
      deny from all
      </LIMIT>
      

      【讨论】:

        【解决方案5】:

        如果您使用 WordPress,那么最好和最简单的方法是从他们的网站 http://www.lionscripts.com/ip-address-blocker 安装插件 - LionScripts : WordPress IP Blocker

        他们的专业版具有更多功能,例如国家/地区屏蔽和 IP 范围屏蔽、批量 csv 上传等。

        【讨论】:

        • 不过好像不会限制上传的文件。
        【解决方案6】:

        如果您提供通配符 0.0.255.255

        Order allow,deny
        # 1.2.0.0 - 1.2.255.255
        Allow from 1.2.0.0/16
        

        这将给出 1.2.0.1 - 1.2.255.254 的范围

        你也可以check here

        【讨论】:

          【解决方案7】:
          Order Deny,Allow
          Deny from all
          Allow from 311.311.311 322.322.322.322
          

          answer here

          【讨论】:

          • 这仅匹配指定的 IP 地址,而不是范围。
          猜你喜欢
          • 2015-04-21
          • 2011-08-19
          • 1970-01-01
          • 2021-03-17
          • 1970-01-01
          • 2016-06-09
          • 1970-01-01
          • 2011-04-05
          • 1970-01-01
          相关资源
          最近更新 更多