我正在使用Elmah登录ASP.NET MVC项目,并且我正在接收大量404错误的路径/prx2.php,而该路径又将哈希作为查询字符串参数传递。Elmah报告不需要的404错误
我认为这是一个试图找到漏洞的扫描器。因为我没有运行PHP,所以我很安全!不过,我想停止ELmah报告此错误。
什么是最好的方式来排除这些类型的错误报告没有实际创建一个/prx2.php页面。我也想在配置文件中做这件事,而不是按照步骤进行。
任何想法?
我正在使用Elmah登录ASP.NET MVC项目,并且我正在接收大量404错误的路径/prx2.php,而该路径又将哈希作为查询字符串参数传递。Elmah报告不需要的404错误
我认为这是一个试图找到漏洞的扫描器。因为我没有运行PHP,所以我很安全!不过,我想停止ELmah报告此错误。
什么是最好的方式来排除这些类型的错误报告没有实际创建一个/prx2.php页面。我也想在配置文件中做这件事,而不是按照步骤进行。
任何想法?
ELMAH支持错误过滤 - Error Filtering link
这应该解决这一问题为您服务。您可以通过代码定义过滤器 - 在Global.asx文件或XML配置为ELMAH本身
第一步:配置配置部分包括ELMAH errorFilter
部分:
<configSections>
<sectionGroup name="elmah">
<!-- ... -->
<!-- this is the important part -->
<section name="errorFilter" requirePermission="false"
type="Elmah.ErrorFilterSectionHandler, Elmah"/>
</sectionGroup>
</configSections>
第二步:配置请在<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>
第三步:包括内部应用程序模块Elmah.ErrorFilterModule
现代(IIS7 +)版本,包括HTTP模块:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<!-- ... -->
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah"
preCondition="managedHandler" />
</modules>
</system.webServer>
传统(较老的IIS),包括HTTP模块的版本:
<system.web>
<httpModules>
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
</httpModules>
</system.web>
这段时间没有用过,但是这不会过滤掉'ALL' 404's?我只想要某些文件类型,请参阅上面有关接受的答案的评论。这个答案没有帮助tbh,对不起 – Rippo 2017-01-19 14:40:26
@Rippo - 我的坏 - 它只是这个页面首先提出如何从elmah日志中删除404,并且接受的答案中的链接已死亡。所以我总结了我从谷歌学到的东西:)无论如何,我已经更新我的答案,以匹配“过滤器只是特定的路径”。 – 2017-01-19 15:04:26
如果我想在配置文件中执行此操作,麻烦就是它的全部或全无''equal binding =“HttpStatusCode”value =“404”type =“Int32”/>'filters ALL 404 – Rippo 2010-01-15 13:19:06
您可以在配置文件中更具体 - 请参阅该链接的使用JScript部分。这将告诉你如何更具体和使用JavaScript语法来定义复杂的条件,例如在URL上使用RegEx来匹配特定路径 – saret 2010-01-15 13:28:24
+1谢谢你看,虽然这看起来有点讨厌! – Rippo 2010-01-15 13:33:15