在我们的.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();
}
但我认为这是处理问题的一种不可扩展,无效的方法。有更好的想法吗?
答案 0 :(得分:2)
这不是URLScan的用途吗?
URLScan是Microsoft的IIS扩展,可以在让IIS处理恶意请求之前自动拒绝恶意请求。它拒绝vti_bin请求和许多其他攻击。
答案 1 :(得分: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中定义要阻塞的路径。
答案 2 :(得分:1)
为什么不告诉网络服务器_vti_bin不能通过网络访问?
答案 3 :(得分:1)
Nathan是对的urlscan是要走的路 - 请注意,除非你将* .dll添加到.NET处理的扩展名,否则.NET不会看到这些请求。否则,IIs将处理这些请求。
答案 4 :(得分:0)
确保您的网络服务器没有该安全错误。如果您的服务器不受该漏洞攻击,那么阻止漏洞利用尝试就毫无意义。