2010-02-05 131 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内定义要阻止的路径。