|
|
|
|
|
如果你的ASP.NET網(wǎng)站想屏蔽某些來源域名,或者屏蔽外部來源,那么可以在Web.config里實現(xiàn),而實現(xiàn)方法也很簡單
首先要安裝“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.howtostagehomes.com" negate="true" />
<add input="{HTTP_REFERER}" pattern="^$" negate="true" />
</conditions>
<action type="AbortRequest" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
解釋
禁止來路不為空,且不是“www.howtostagehomes.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”的來路,我們可以這樣禁止該域名引用我們網(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="{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>
節(jié)點里添加 logicalGrouping="MatchAny"
,表示任何匹配都符合條件,每個<add>
相當(dāng)于 OR
的“或”條件。
如果你要編寫“與”條件,那么把 logicalGrouping="MatchAny"
改為 logicalGrouping="MatchAll"
即可,它表示每個<add>
的模式都匹配了才符合條件。
總結(jié)
本文介紹了ASP.NET網(wǎng)站屏蔽來路的實現(xiàn)方法 ,需要安裝URL重寫模塊,但設(shè)置方法很容易,編寫的規(guī)則也簡單。
相關(guān)文章