2010-02-05 134 views
1

在我們的.NET應用程序中,我們收到諸如_vti_bin/owssvr.dll(可能是黑客入侵)文件的請求。我想通過做一些像添加以下代碼的Application_BeginRequest處理它們:如何處理惡意網頁請求

if (HttpContext.Current.Request.Url.ToString().Contains("_vti_bin/owssvr.dll")) 
    { 
     HttpContext.Current.Response.Clear(); 
     HttpContext.Current.Response.End(); 
    } 

但我想這是處理問題的不可擴展的,無效的方式。任何更好的想法?

+1

你應該在IIS或防火牆上過濾,而不是應用程序級別 – 2010-02-05 00:12:25

+0

這是serverfault.com的問題嗎? – Hogan 2010-02-05 00:22:19

+1

他試圖用ASP.NET做它的方式絕對屬於這裏,但正確的解決方案可能是serverfault.com材料:) – Nathan 2010-02-05 00:24:18

回答

2

是不是這種事URLScan是爲了?

URLScan是Microsoft的IIS擴展,在讓IIS處理它們之前自動拒絕惡意請求。它拒絕vti_bin請求和許多其他攻擊。

1

爲什麼不告訴網絡服務器_vti_bin不是網絡可訪問的?

+0

你是怎麼做到的? – Daniel 2010-02-05 00:35:59

0

只要確保您的網絡服務器沒有該安全錯誤。如果您的服務器不受此漏洞攻擊,則阻止漏洞攻擊是沒有意義的。

+0

其實,我只是不希望他們在我們的錯誤日誌:) – Daniel 2010-02-05 00:22:02

1

Nathan是對的urlscan是要走的路 - 也注意到這個.NET不會看到這些請求,除非您將* .dll添加到.NET處理的擴展中。否則,II將處理這些請求。我已經在過去看到工作

2

兩個方法已經給下面的代碼將作爲Default.aspx的(確保設置的Default.aspx作爲IIS中的默認文檔類型):

<%@ Page language="c#" %> 

<Head> 
    <script language="CS" runat="server"> 
    void Page_Load(object sender, System.EventArgs e) 
    { 
    Response.Clear(); 
     Response.StatusCode = 404; 
     Response.End(); 
    } 
    </script> 
</Head> 

我見過的另一個解決方案是創建一個具有類似行爲的自定義HttpHandler。然後在web.config內定義要阻止的路徑。