2015-06-02 4 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.

Существуют и другие ошибки для определенных URL-адресов, которые раньше существовали, но с тех пор были удалены.

Есть ли способ предотвратить попадание ботов в эти ссылки, или это то, что мне придется решать, отфильтровывая определенные запросы в ELMAH?

ответ

1

К сожалению, из-за количества ботов и разнообразия способов, которыми они закодированы для атаки или очистки вашего сайта, вы не сможете предотвратить все эти ошибки. Однако вы можете легко игнорировать определенные типы ошибок в Elmah. Вот пример фильтра в <elmah> секции файла web.config:

<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, которые обычно запускаются вредоносными ботами. Оттуда вы можете настроить ...