.htaccess需要如何设置才能防止IP攻击

原创 admin  2020-08-21 08:17  阅读 10 次

很多时候,我们在运营网站的时候,会时不时出现一些恶意对手的IP攻击,又或者说想禁止某个IP及IP段,如果是linux系统的服务器,就可以通过以下.htaccess方式来设置。

.htaccess禁止IP语法有两种,分别是:

Order Allow,Deny及Order Deny,Allow

注意:Order语句中Allow,Deny的顺序不一样,语法是不一样的。

1、使用Order Allow,Deny禁止IP或IP段访问方法(IP改为你要禁止的IP即可):

Order Allow,Deny 
Allow from all
Deny from 192.168.1.123

如果是屏蔽多个IP,中间用空格隔开就可以:

Order Allow,Deny  Allow from all Deny from 192.168.1.123?168.153.21.23 222.222.222.121 

如果是屏蔽多个IP段,可以下面这样(屏蔽192.168.1.1到192.168.1.254的所有IP):

Order Allow,Deny 
Allow from all
Deny from 192.168.1

2、使用Order Deny,Allow禁止IP或IP段访问方法(同理,IP改为你要禁止的IP即可):

Order Deny,Allow
Deny from 192.168.1.123

屏蔽多个IP及IP段的方法同上,这里就不重复了。.

一般来说直接把上面的语句添加到.htaccess就会生效,不用重启Apache服务(况且虚拟主机里我们也没有权限重启Apache),我测试过是可以的(把自己的IP禁止再访问网站),效果如下:

但是有些虚拟主机即使.htaccess添加Order Allow,Deny或者Order Deny,Allow也是没有效果,不能禁止到目标IP的访问,原因我也不明白,可能是没有Allow,Deny功能,也可能是需要重启Apache。刚好西部数码的虚拟主机也y有同样问题,我还一直调试了很长时间,后来才看到官方有提供解决办法(之前的调试算是瞎忙了):

.htaccess添加以下代码:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{http:X-Forwarded-For}&%{REMOTE_ADDR}&%{http:X-Real-IP} (192.168.1.123) NC
RewriteRule (.*) - F
</IfModule>

屏蔽多个IP用”|”隔开,如:192.168.1.123|168.153.21.23;屏蔽IP段还是一样:192.168.1

如果你的.htaccess添加Order Allow,Deny同样没有效果,可以试试这段代码,应该就可以了。

上述看不懂.htaccess设置的朋友可以看一下简单教程;

A.如:只允许某个IP请求访问目录的,可以这样设置:

Orderdeny,allow#默认允许全部请求
Allowfrom192.9.200.69#允许IP192.9.200.69的请求

B.如:禁止某个IP段请求访问目录的,可以这样设置:

orderDeny,Allow
denyfrom113.68#禁止以113.68开头的所有IP段访问。

C.禁止所以IP访问网站的,可以这样设置:

orderDeny,Allow
denyfromall

D.允许所有访问,这样就不会出现403 Forbidden。如下:

403Forbidden
Orderallow,deny
Allowfromall

E.除某个IP请求以外,其他请求都可以访问目录。如下:

Orderallow,deny
denyfrom192.168.1.101#禁止IP192.168.1.101访问。

以上内容便是深圳SEO欢欢seo整理出来的详细教程,希望能对大家的工作有所帮助,感谢大家的支持。

来源:https://www.huanp.com/wangzhan/5905.html
声明:欢迎分享本文,转载请保留出处!

发表评论


表情