ASP.NET Web.config屏蔽来源域名/禁止外部来路的写法
作者:admin 时间:2022-8-31 16:55:16 浏览:550如果你的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重写模块,但设置方法很容易,编写的规则也简单。
相关文章