Я могу заблокировать определенный пользовательский агент, но я бы хотел заблокировать все запросы с пустым пользовательским агентом с помощью URLscan v3.1.
Кто-нибудь знает как это сделать?
Я могу заблокировать определенный пользовательский агент, но я бы хотел заблокировать все запросы с пустым пользовательским агентом с помощью URLscan v3.1.
Кто-нибудь знает как это сделать?
Невозможно настроить это с помощью 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;
}
У меня есть пример блока конкретного пользовательского агента, такого как паук. Вот это
RuleList=DenyUserAgent (in the options section)
(place in the end)
[DenyUserAgent]
DenyDataSection=Agent Strings
ScanHeaders=User-Agent
[Agent Strings]
YisouSpider
Может быть, это слово могло дать объяснение в ini файле.
UrlScan поддерживает настраиваемые правила, которые можно применять в дополнение к другим проверкам и параметрам, указанным в этом файле конфигурации. Правила должны быть перечислены в строке, разделенной запятыми, в свойстве RuleList. Каждое правило в списке соответствует двум разделам в этом файле конфигурации, один из которых содержит параметры правила, а другой - строки запрета для правила.