Заблокируйте пустой пользовательский агент с помощью URLScan

Я могу заблокировать определенный пользовательский агент, но я бы хотел заблокировать все запросы с пустым пользовательским агентом с помощью URLscan v3.1.

Кто-нибудь знает как это сделать?


person Reto    schedule 22.09.2010    source источник


Ответы (2)


Невозможно настроить это с помощью URLScan, но это можно сделать с помощью настраиваемого фильтра ISAPI на вашем сервере IIS. Вот это на C ++:

DWORD WINAPI __stdcall HttpFilterProc(HTTP_FILTER_CONTEXT *pfc, DWORD NotificationType, VOID *pvData) 
{ 
    char buffer[256];
    DWORD buffSize = sizeof(buffer);
    HTTP_FILTER_PREPROC_HEADERS *p;
    switch (NotificationType)  {
      case SF_NOTIFY_PREPROC_HEADERS :
      p = (HTTP_FILTER_PREPROC_HEADERS *)pvData;
      BOOL bHeader = p->GetHeader(pfc,"User-Agent:",buffer,&buffSize); 
      CString UserAgent(buffer);
      if(UserAgent.GetLength() == 0) { // reject blank user agents
        p->SetHeader(pfc, "url", "/rejected-blank-user-agent");
      }
      return SF_STATUS_REQ_HANDLED_NOTIFICATION; 
    }
    return SF_STATUS_REQ_NEXT_NOTIFICATION; 
}
person Luke Peterson    schedule 17.11.2010

У меня есть пример блока конкретного пользовательского агента, такого как паук. Вот это

RuleList=DenyUserAgent   (in the options section)

(place in the end)
[DenyUserAgent]
DenyDataSection=Agent Strings
ScanHeaders=User-Agent

[Agent Strings]
YisouSpider

Может быть, это слово могло дать объяснение в ini файле.

UrlScan поддерживает настраиваемые правила, которые можно применять в дополнение к другим проверкам и параметрам, указанным в этом файле конфигурации. Правила должны быть перечислены в строке, разделенной запятыми, в свойстве RuleList. Каждое правило в списке соответствует двум разделам в этом файле конфигурации, один из которых содержит параметры правила, а другой - строки запрета для правила.

person Victor Choy    schedule 25.08.2014