У нас есть IIS 6.0 на Windows Server 2003 с веб-приложением ASP.NET. Наше веб-приложение или, в частности, одна веб-страница подвергается атаке ботов. Просматривая журналы IIS, мы обнаружили, что User-Agent атакует:
Python-запросы / 0.13.2
#Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status
2012-07-17 23:59:59 W3SVC336290672 192.168.2.65 POST /MyVirtualDirectory/MyFolder/wf_Page_Under_Attack.aspx - 80 - 190.232.79.70 python-requests/0.13.2 200 0 0
Можно ли в IIS заблокировать или запретить доступ к запросам "python-requests / 0.13.2"?
Нет встроенных функций, чтобы делать то, что вы ищете.
Одно бесплатное решение, которое сделает то, что вы хотите, - это Фильтр перезаписи Ionics Isapi (IIRF) Модуль фильтра ISAPI. У них даже есть образец конфигурации для блокировка доступа на основе User-Agent.
Второй вариант - Microsoft URLScan (как вы указали в своем комментарии - я не мог вспомнить, позволяла ли это логика на основе User-Agent или нет). Эта запись в блоге описывает использование URLScan для блокировки запросов на основе пользовательского агента. Я не верю, что URLScan может соответствовать на основе регулярного выражения, но поскольку вы ищете точное совпадение строки, он должен делать то, что вы хотите.
Сказав все это, автору-боту тривиально легко изменить строку User-Agent на что-нибудь «безобидное». Вы делаете первые шаги в гонке вооружений.