我在Azure上的Windows 2008 r2实例上托管了一个mvc / forms混合Web应用程序。 IIS服务器是IIS 7.5。在过去的4-5个月里,我的服务器受到漏洞扫描程序检查与php相关的漏洞的严重打击。例如:
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列表。什么是短路这些请求的最佳方法?如果我可以选择禁止IP,那将是一件好事,但现在有700个独特的IP在过去3个月内提出这些请求。主要优先事项是将来自URL的字典中的请求短路,我知道这些请求是假的,并避免来自我的网络服务器的记录和响应。谢谢!
答案 0 :(得分: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;
}