技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营

赞助商

分类目录

赞助商

最新文章

搜索

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

作者:admin    时间:2022-9-2 14:44:44    浏览:

ASP.NET Web.config 可以通过使用URL重写规则,屏蔽IP(段)访问网站,本文将介绍实现方法。

安装URL重写模块

要实现 ASP.NET Web.config URL重写功能,需要首先安装URL重写模块。安装方法很简单,教程请看《IIS7.5 安装url rewrite重写模块【 附下载地址】》。

设置URL重写规则

URL重写规则可以在IIS里的可视窗口里设置,也可以在 Web.config 里自己编写规则,这里介绍如何在 Web.config 里自己编写规则,屏蔽IP(段)访问网站。

代码

<?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>

解释

上面规则是屏蔽单个IP 192.168.100.1 ,如果要屏蔽多个IP,可以这样写<add>节点里的pattern,在每个IP之间加上“|”,如:192.168.100.1|202.96.25.1。如果要屏蔽一个IP段,那么可以写IP地址的前面三位,如:pattern="192.168.100."

<match> 节点里url的值 ^(.*)$ 是一个正则表达式,这里是表示匹配任何字符的URL。

<conditions> 节点里的 logicalGrouping 的值 MatchAny 是指,匹配任何一条后面 <add input=...> 的值,相当于“”条件。

<add> 节点 input 的表达式,本示例中写了三个,它们分别表示访客的IP地址代理地址真实地址

<action> 节点里 type 是声明执行动作,表示符合条件后要执行的动作,这里是返回403 - 拒绝访问的状态。

设置后,被拒绝IP访问网站时就返回 403 - 禁止访问:访问被拒绝 的提示。

 403 - 禁止访问:访问被拒绝

URL重写语法及参数

URL重写语法及参数主要有如下这些,我们可以根据需要灵活运用。

参数

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

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

#不带?后面的参数
appendQueryString="false"

#永久重定向
redirectType="Permanent"

#匹配条件为所有还是一条
logicalGrouping="MatchAll"|logicalGrouping="MatchAny"      # 用于conditions节点

<add>条件

<add>条件判断,就像我们程序中的if语句一样,表示如果符合某个或某几个条件则执行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中?后参数
<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.)" />

#判断真实文件
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false" />      

#判断真实目录
<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>是执行动作,即满足条件后如何处理。

#禁止访问
<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" />

#向客户端返回状态
<action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" />

总结

本文介绍了ASP.NET Web.config 屏蔽IP(段)的写法,要屏蔽IP(段),你还可以使用如下几种方法来实现:

相关文章

标签: Web_config  屏蔽IP  
x
  • 站长推荐
/* 左侧显示文章内容目录 */