ASP.NET Web.config屏蔽来源域名/禁止外部来路的写法
作者:admin 时间:2022-8-31 16:55:16 浏览:如果你的ASP.NET网站想屏蔽某些来源域名,或者屏蔽外部来源,那么可以在Web.config里实现,而实现方法也很简单
首先要安装“URL重写”模块,安装教程请看《IIS7.5 安装url rewrite重写模块【 附下载地址】》。
示例一:禁止外部来路
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="rule1" stopProcessing="true">
<match url="^(.*)$" />
<conditions>
<add input="{HTTP_REFERER}" pattern="www.webkaka.com" negate="true" />
<add input="{HTTP_REFERER}" pattern="^$" negate="true" />
</conditions>
<action type="AbortRequest" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
解释
禁止来路不为空,且不是“www.webkaka.com”的来路。
注意,这里的 negate="true"
不能少,它表示“与模式不匹配”的意思。
示例二:屏蔽某个域名来路
如果你想单独屏蔽某个域名的来路,那么可以修改一下上面的代码:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="rule1" stopProcessing="true">
<match url="^(.*)$" />
<conditions>
<add input="{HTTP_REFERER}" pattern="123.com" />
</conditions>
<action type="AbortRequest" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
解释
屏蔽来路域名为“123.com”的来路,我们可以这样禁止该域名引用我们网站的资源。
示例三:屏蔽多个域名来路
如果你需要屏蔽多个域名的来路,那么可以修改一下上面的代码:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="rule1" stopProcessing="true">
<match url="^(.*)$" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_REFERER}" pattern="1.com" />
<add input="{HTTP_REFERER}" pattern="2.com" />
<add input="{HTTP_REFERER}" pattern="3.com" />
</conditions>
<action type="AbortRequest" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
解释
主要是在<conditions>
节点里添加 logicalGrouping="MatchAny"
,表示任何匹配都符合条件,每个<add>
相当于 OR
的“或”条件。
如果你要编写“与”条件,那么把 logicalGrouping="MatchAny"
改为 logicalGrouping="MatchAll"
即可,它表示每个<add>
的模式都匹配了才符合条件。
总结
本文介绍了ASP.NET网站屏蔽来路的实现方法 ,需要安装URL重写模块,但设置方法很容易,编写的规则也简单。
相关文章
标签: Web_config url重写 asp.net
- 站长推荐