我正在使用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