htaccess 通过 ip 范围访问文件
Posted
技术标签:
【中文标题】htaccess 通过 ip 范围访问文件【英文标题】:htaccess access to file by ip range 【发布时间】: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 拒绝。因此,事情并没有那么简单——除非我在测试中犯了错误。我有吗? 【参考方案1】:只需添加 FilesMatch 或 Files 指令即可将其限制为特定脚本。
以下内容将阻止对所有以“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 范围到我的允许中是否正确? ***.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 地址,而不是范围。以上是关于htaccess 通过 ip 范围访问文件的主要内容,如果未能解决你的问题,请参考以下文章
多个 .htaccess 文件中多个 mod_rewrite 规则的优先级是啥? [关闭]
如何通过 IP 限制对我的 PHP 弹性 beanstalk 环境的访问?