网站业务运行过程中会遇到一些恶意 IP 的攻击访问,或者非法盗链、恶意采集网站资源的情况。如果网站是使用 Apache 服务构建的,可以通过在根目录下的 .htaccess 文件中进行相关配置来限制某些 IP 对网站的访问。
1、禁止特定 IP 访问:
Order Allow,Deny
Allow from all
Deny from 123.46.7.89
以上设置表示禁止 123.46.7.89 访问,其他IP可以正常访问。
2、禁止 IP 地址段访问:
Order Allow,Deny
Allow from all
Deny from 192.168.1.
以上设置表示禁止IP地址段 192.168.1.0/24,也就是禁止 192.168.1.1----192.168.1.254 的 IP 访问。
解释一下设置中出现的关键字:
Allow 和 Deny 可以用于 Apache 的 .htaccess 文件中,来控制目录和文件的访问授权,Allow 表示允许,Deny 表示拒绝。
Order 关键字可以决定 Allow 和 Deny 起作用的顺序,简单的说就是谁排在最后,谁就有最终的决定权,具体如下:
Order Deny,Allow 意思是先检查是否有 Deny 规则,不论有没有 Deny 规则都会继续检查是否有 Allow 规则,如果有 Allow,Allow 规则的内容可以覆盖掉 Deny 规则。
Order Allow,Deny 恰好相反。
例如:
Order Allow,Deny
Allow from IP1
Deny from all
这段规则实际是禁止了所有 IP 访问。按照谁在最后谁有最终决定权的原则,deny from all 就将 allow 的命令否决了。所以 IP1 也会被禁止,这个规则会禁止所有 IP 对网站的访问。
如果想只允许 IP1 访问,其他 IP 全部禁止,正确的写法应该是:
Order Deny,Allow //先检查Deny,由Allow拥有决定权
Deny from all //Deny规则要求禁止所有IP的访问
Allow from IP1 //Allow规则只允许IP1访问
按照这个原则,可以应用到网站中的常用规则有:
禁止特定 IP 的访问
Order Allow,Deny
Allow from all
Deny from IP1 //IP1替换成用户需要屏蔽的IP,比如123.46.7.89
禁止部分 IP(IP1,IP2,IP3),其他IP全部允许访问的两种写法
Order Deny,Allow
Deny from IP1 IP2 IP3
或者
Order Allow,Deny
Allow from all
Deny from IP1 IP2 IP3
(责任编辑:好模板) |