技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運(yùn)營(yíng)

贊助商

分類目錄

贊助商

最新文章

搜索

ASP.NET Web.config 屏蔽IP(段)的寫法

作者:admin    時(shí)間:2022-9-2 14:44:44    瀏覽:

ASP.NET Web.config 可以通過使用URL重寫規(guī)則,屏蔽IP(段)訪問網(wǎng)站,本文將介紹實(shí)現(xiàn)方法。

安裝URL重寫模塊

要實(shí)現(xiàn) ASP.NET Web.config URL重寫功能,需要首先安裝URL重寫模塊。安裝方法很簡(jiǎn)單,教程請(qǐng)看《IIS7.5 安裝url rewrite重寫模塊【 附下載地址】》。

設(shè)置URL重寫規(guī)則

URL重寫規(guī)則可以在IIS里的可視窗口里設(shè)置,也可以在 Web.config 里自己編寫規(guī)則,這里介紹如何在 Web.config 里自己編寫規(guī)則,屏蔽IP(段)訪問網(wǎng)站。

代碼

<?xml version="1.0" encoding="UTF-8"?>
  <configuration>
    <system.webServer>
      <rewrite>
        <rules>
          <rule name="rule1" stopProcessing="true">
            <match url="^(.*)$" />
              <conditions logicalGrouping="MatchAny">
                <add input="{REMOTE_ADDR}" pattern="192.168.100.1" />
                <add input="{HTTP_X_FORWARDED_FOR}" pattern="192.168.100.1" />
<add input="{HTTP_X_Real_IP}" pattern="192.168.100.1" />
              </conditions>
              <action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" />
          </rule>
        </rules>
      </rewrite>
    </system.webServer>
  </configuration>

解釋

上面規(guī)則是屏蔽單個(gè)IP 192.168.100.1 ,如果要屏蔽多個(gè)IP,可以這樣寫<add>節(jié)點(diǎn)里的pattern,在每個(gè)IP之間加上“|”,如:192.168.100.1|202.96.25.1。如果要屏蔽一個(gè)IP段,那么可以寫IP地址的前面三位,如:pattern="192.168.100."

<match> 節(jié)點(diǎn)里url的值 ^(.*)$ 是一個(gè)正則表達(dá)式,這里是表示匹配任何字符的URL。

<conditions> 節(jié)點(diǎn)里的 logicalGrouping 的值 MatchAny 是指,匹配任何一條后面 <add input=...> 的值,相當(dāng)于“”條件。

<add> 節(jié)點(diǎn) input 的表達(dá)式,本示例中寫了三個(gè),它們分別表示訪客的IP地址、代理地址真實(shí)地址。

<action> 節(jié)點(diǎn)里 type 是聲明執(zhí)行動(dòng)作,表示符合條件后要執(zhí)行的動(dòng)作,這里是返回403 - 拒絕訪問的狀態(tài)。

設(shè)置后,被拒絕IP訪問網(wǎng)站時(shí)就返回 403 - 禁止訪問:訪問被拒絕 的提示。

 403 - 禁止訪問:訪問被拒絕

URL重寫語法及參數(shù)

URL重寫語法及參數(shù)主要有如下這些,我們可以根據(jù)需要靈活運(yùn)用。

參數(shù)

#忽略大小寫
ignoreCase="true"|ignoreCase="false"

#非(不等于)
negate="true" 

#不帶?后面的參數(shù)
appendQueryString="false"

#永久重定向
redirectType="Permanent"

#匹配條件為所有還是一條
logicalGrouping="MatchAll"|logicalGrouping="MatchAny"      # 用于conditions節(jié)點(diǎn)

<add>條件

<add>條件判斷,就像我們程序中的if語句一樣,表示如果符合某個(gè)或某幾個(gè)條件則執(zhí)行action后的語句。

#判斷訪問域名
<add input="{HTTP_HOST}" pattern="^www.xxx.com$" />                                                   

#判斷user_agent
<add input="{HTTP_USER_AGENT}" pattern="baiduspider|googlebot" />                                      

#判斷訪問來源域名
<add input="{HTTP_REFERER}" pattern="xxx.com" negate="true" />

#判斷url中
<add input="{URL}" pattern="^.*(.css|.js|.gif|.png|.jpg|.jpeg|.xml)" ignoreCase="false" />

#判斷url中?后參數(shù)
<add input="{QUERY_STRING}" pattern="blog" negate="true" />                                            

#判斷url路徑地址
<add input="{REQUEST_URI}" pattern="blog" negate="true" />   

#判斷ip(包括代理)
<add input="{REMOTE_ADDR}" pattern="(8.8.4.4|8.8.8.)" />

#判斷真實(shí)文件
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false" />      

#判斷真實(shí)目錄
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" pattern="" ignoreCase="false" /> 

#判斷match中的變量
<add input="{R:1}" pattern="^(bbs|blog)" ignoreCase="false" negate="true" />

#其他
<add input="%" pattern="^$" ignoreCase="false" negate="true" />

<action>處理方式

<action>是執(zhí)行動(dòng)作,即滿足條件后如何處理。

#禁止訪問
<action type="AbortRequest" />  

#重定向到
<action type="Redirect" url="http://www.xxx.com" redirectType="Permanent" />   

#重寫到
<action type="Rewrite" url="{R:1}/t_list.asp?teacher_id={R:2}" appendQueryString="false" />  

#不做操作
<action type="None" />

#向客戶端返回狀態(tài)
<action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" />

總結(jié)

本文介紹了ASP.NET Web.config 屏蔽IP(段)的寫法,要屏蔽IP(段),你還可以使用如下幾種方法來實(shí)現(xiàn):

相關(guān)文章

標(biāo)簽: Web_config  屏蔽IP  
x
  • 站長(zhǎng)推薦
/* 左側(cè)顯示文章內(nèi)容目錄 */