本文作者:心月

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
若轉載請注明原文及出處:http://www.sae4.cn/jianzhan/532.html

分享到:
贊(
發表評論
快捷輸入:

驗證碼

    評論列表 (有 0 條評論,人圍觀)參與討論