2015-06-02 37 views
0

我以爲我就要由機器人引起的有錯誤:如何有效防止殭屍程序請求或至少防止它們堵塞我的日誌?

  • 索引我以前的網站相同的域下;和
  • 正在探索某種類型的漏洞。

這裏有一些錯誤:

  • 代碼:404;類型:Http;錯誤:A public action method 'IPC$' was not found on controller ...
  • 代碼:0;類型:InvalidOperation;錯誤:The requested resource can only be accessed via SSL.

對於曾經存在但已被刪除的特定網址,還存在其他錯誤。

有沒有一種方法可以防止機器人點擊這些鏈接,或者是我不得不通過過濾掉ELMAH中的特定請求來處理?

回答

1

不幸的是,由於機器人的數量以及它們編碼攻擊或刮擦網站的各種方式,您將無法防止所有這些錯誤。但是,您可以輕鬆選擇忽略Elmah中的特定類型的錯誤。這裏是一個過濾器的web.config文件的<elmah>部內的樣品:

<errorFilter> 
    <test> 
    <or> 
     <and> 
     <!-- filter all errors out that fall in the range 400-499 --> 
     <greater binding="HttpStatusCode" value="399" type="Int32" /> 
     <lesser binding="HttpStatusCode" value="500" type="Int32" /> 
     </and> 

     <regex binding="BaseException.Message" pattern="A potentially dangerous \b.+?\b value was detected from the client" caseSensitive="false" /> 

     <regex binding="BaseException.Message" pattern="he provided anti-forgery token was meant for user" caseSensitive="false" />   
    </or> 
    </test> 
</errorFilter> 

這將過濾掉所有的404等,僅包括超過400比499小還是大的錯誤,不包括一對夫婦通常由惡意機器人觸發的特定.NET異常。從那裏,你可以調整以適應...