本文作者:心月

htaccess屏蔽IP、真实IP访问的设置方法

心月IT博客 12-02
htaccess屏蔽IP、真实IP访问的设置方法摘要:apache服务器或虚拟机,有时候为了防止网站被垃圾留言、镜像、刷流量等恶意骚扰,需要通过htaccess来屏蔽一些IP、IP段禁止访问。

        apache服务器或虚拟机,有时候为了防止网站被垃圾留言、镜像、刷流量等恶意骚扰,需要通过htaccess来屏蔽一些IP、IP段禁止访问。

htaccess 屏蔽ip有两种方法

第一种方法:

RewriteEngine on
RewriteBase /
Order Deny,Allow
Deny from 59.42.239.150 ##屏蔽某个ip:59.42.239.150
Deny from 59.42.239     ##屏蔽IP段:59.42.239.1~59.42.239.255 之间的ip
Deny from 59.42         #屏蔽IP段:以59.42开头的ip

        这种方法确实可以实现屏蔽的效果,但如果ip被转化或者被伪装,他就失效了。

        例如网站使用了万网的 waf 前端防火墙,这种屏蔽IP的方法就会失效,不相信的话可以查看网站日志,开启 waf前端防火墙后查一下,网站日志中记录的 IP 是不是真实的访问 IP 。

QQ截图20191202150518.png

        上图是一台开启了 waf 前端防火墙的服务器,使用了第一种屏蔽IP的方法,但ip屏蔽并没有生效,为什么会失效呢?从图中可以看到访客 IP 和实际 IP 并不一致,而 Deny 阻止的是访客 IP,所以才会导致屏蔽功能失效。那有什么更好的屏蔽IP的方法吗?请看第二种方法。

RewriteEngine on
RewriteBase /
Order Deny,Allow
Deny from 59.42.239.150


第二种方法:

RewriteEngine on
<IfModule mod_rewrite.c>
RewriteCond %{http:X-Forwarded-For} (59.42.239.150) [NC]
RewriteRule (.*) - [F]
</IfModule>

在来看访问结果:

QQ截图20191202151123.png

        此时在访问,访问已被禁止了。虽然用了 waf 前端防火墙改变了访客IP,当访问依然被禁止了,也就是说此时屏蔽的是真实IP,而不是访客IP。

下面在来看看第二种方法的配置:

        RewriteCond %{http:X-Forwarded-For}

在配置中既包含了真实访客 IP ,不管IP有没有被伪装都可以获取到真实的IP ,所以实际屏蔽IP效果这种方法比第一种更好。

第二种方法屏蔽IP段以及屏蔽多个ip的配置方法:

RewriteEngine on
<IfModule mod_rewrite.c>
RewriteCond %{http:X-Forwarded-For} (59.42.239.150|65.8.157.*|61.214.*.*) [NC]
RewriteRule (.*) - [F]
</IfModule>
文章版权及转载声明:

本文由 心月IT技术博客 博主整理于 12-02
若转载请注明原文及出处:https://www.xinyueseo.com/jianzhan/532.html

分享到:
赞(
发表评论
快捷输入:

验证码

    评论列表 (有 0 条评论,人围观)参与讨论