我正在使用Elmah来登录一个ASP.NET MVC项目,我收到了许多路径/prx2.php的404错误,这反过来又传递了一个哈希值作为查询字符串参数。
我假设这是一个试图发现漏洞的扫描器。因为我没有运行PHP,所以我是安全的!但是,我想停止ELmah报告此错误。
在不实际创建/prx2.php页面的情况下,从报告中排除这些类型的错误的最佳方法是什么?我也想在一个配置文件中做这件事,而不是在程序中做。
有什么想法吗?
发布于 2010-01-15 21:13:07
Elmah支持错误过滤- Error Filtering link
这应该可以为您解决问题。您可以通过代码定义过滤器-在Global.asx文件中,或者在elmah本身的xml配置中
发布于 2017-01-19 18:41:56
Step1:配置配置部分以包括elmah errorFilter
部分:
<configSections>
<sectionGroup name="elmah">
<!-- ... -->
<!-- this is the important part -->
<section name="errorFilter" requirePermission="false"
type="Elmah.ErrorFilterSectionHandler, Elmah"/>
</sectionGroup>
</configSections>
Step2:在<elmah>
部分配置过滤器本身。
<elmah>
<!-- ... -->
<errorFilter>
<test>
<and>
<equal binding="HttpStatusCode" value="404" type="Int32" />
<!-- you may want to consider something more generic like pattern="/.+[.]php" -->
<regex binding="Context.Request.Url" pattern="/prx2.php" />
</and>
</test>
</errorFilter>
</elmah>
Step3:在应用程序模块中包含Elmah.ErrorFilterModule
包含http模块的现代(IIS7+)版本:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<!-- ... -->
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah"
preCondition="managedHandler" />
</modules>
</system.webServer>
包含http模块的旧(旧IIS)版本:
<system.web>
<httpModules>
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
</httpModules>
</system.web>
https://stackoverflow.com/questions/2071389
复制相似问题