用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.如果没有,请将其更改为其他内容.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....