用ASP.NET MVC阻止ZmEu攻击

前端之家收集整理的这篇文章主要介绍了用ASP.NET MVC阻止ZmEu攻击前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
最近我的elmah异常日志充满了使用这样的大坝ZmEu安全软件对我的服务器的尝试

对于那些认为“什么是ZmEu?”,这里是一个解释…

“ZmEu似乎是一个安全工具,用于发现PHPMyAdmin(一个基于Web的MysqL数据库管理器)的2.x.x版中的安全漏洞.该工具似乎源于东欧的某个地方.就像所有黑帽子安全工具似乎都发生的一样,它进入了中国,在中国一直被用来对世界各地的网络服务器进行不间断的暴力攻击.“

这是一个关于这个令人讨厌的攻击的伟大的链接 – > http://www.philriesch.com/articles/2010/07/getting-a-little-sick-of-zmeu/

我使用.net,所以他们将在我的服务器上找到PHPMyAdmin,但事实上,我的日志充满了ZmEu攻击它变得令人厌烦.

上面的链接提供了一个很好的修复使用HTAccess,但im使用IIS7.5,而不是apache.
我有一个asp.net MVC 2网站,所以我使用global.asax文件来创建我的路由

这是HTAccess seugestion

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/path/to/your/abusefile.PHP
RewriteCond %{HTTP_USER_AGENT} (.*)ZmEu(.*)
RewriteRule .* http://www.yourdomain.com/path/to/your/abusefile.PHP [R=301,L]
</IfModule>

我的问题是,我可以在Global.ascx文件添加像这样的东西吗?

解决方法

对于 my other one的另一个答案…这一个专门阻止Elmah记录由ZmEu生成404错误,同时让您的其余站点行为不变.这可能比将消息直接传递给黑客更不明显.

您可以控制Elmah在various ways登录内容,其一种方法是将其添加到Global.asax中

void ErrorLog_Filtering(object sender,ExceptionFilterEventArgs e)
{
    if (e.Exception.GetBaseException() is HttpException)
    {
        HttpException httpEx = (HttpException)e.Exception.GetBaseException();
        if (httpEx.GetHttpCode() == 404)
        {
            if (Request.UserAgent.Contains("ZmEu"))
            {
                // stop Elmah from logging it
                e.Dismiss();
                // log it somewhere else
                logger.InfoFormat("ZmEu request detected from IP {0} at address {1}",Request.UserHostAddress,Request.Url);
            }           
        }
    }
}

要触发此事件,您需要从项目中引用Elmah DLL,并使用Elmah添加;到您的Global.asax.cs的顶部.

行logger.InfoFormat的行假定您正在使用log4net.如果没有,请将其更改为其他内容.

猜你在找的asp.Net相关文章