2017-08-30 31 views
1

我有一个mvc/forms混合web应用程序托管在Azure上的Windows 2008 R2实例上。网络服务器是IIS 7.5。在过去的4-5个月中,我的服务器正在受到漏洞扫描程序检查与php相关的漏洞的严重影响。例如:拒绝/查杀特定URL请求的最佳实践ASP.Net IIS 7.5

The controller for path '/wp-login.php' was not found or does not implement IController. 

从ELMAH

所以我已经在和专门过滤IIS 7.5中.php然后cgi的文件扩展名的请求这是伟大的工作。但是我仍然得到敲定像请求:

The controller for path '/admin/Cms_Wysiwyg/directive/' was not found or does not implement IController. 

The controller for path '/phpmyadmin2018/' was not found or does not implement IController. 

等等等,这是更大的烦恼因为一切都被记录,404返回,这一切都无用的资源暴殄天物。

通过Elmah我查询了与所有这些请求相关的URL的不同列表。什么是短路这些请求的最佳方式?如果我可以选择禁止知识产权,这将是一件好事,但现在有700个独特的知识产权在过去3个月内提出这些请求。主要优先事项是短路来自我知道是虚假URL的字典的请求,并避免来自我的网络服务器的日志记录和响应。谢谢!

回答

1

半伪代码,但我认为它会有所帮助;

在Global.asax.cs中:

public class MvcApplication : HttpApplication 
{ 
    protected void Application_BeginRequest(Object sender, EventArgs e) 
    { 
     var url = HttpContext.Current.Request.Url.AbsoluteUri; 
     if(checkUrl(url)){ 
      // your code here 
     } 

     if (UserIsBanned(GetUserIp())) 
     { 
      Response.Write("ban"); 
      Response.End(); 
     } 
    } 

    private string GetUserIp() 
    { 
     return HttpContext.Current.Request.UserHostAddress; 
    } 
+0

是的,这是非常有用的。谢谢。如果我有一个字典/数组/收集的说〜400“坏”的网址是如何资源密集的这将是对常规“好”请求的响应时间? –

+0

可能没关系,你可以随时测量它,你也可以单独询问在字典中查找的性能以及这会减慢请求的速度 – Omu