我可以阻止某个特定的用户代理,但我希望使用URLscan v3.1阻止具有空用户代理的所有请求。
有人知道怎么做吗?
发布于 2010-11-17 13:37:05
没有办法使用URLScan进行配置,但可以使用IIS服务器上的自定义ISAPI过滤器来完成。下面是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;
}发布于 2014-08-25 23:05:25
我有一个特定于块的用户代理示例,比如爬行器。这是
RuleList=DenyUserAgent (in the options section)
(place in the end)
[DenyUserAgent]
DenyDataSection=Agent Strings
ScanHeaders=User-Agent
[Agent Strings]
YisouSpider也许单词可以在ini文件中给出一个解释。
除了此配置文件中指定的其他检查和选项外,UrlScan还支持可应用的自定义规则。规则应在RuleList属性中以逗号分隔的字符串列出。列表中的每个规则对应于此配置文件中的两个部分,一个包含规则的选项,另一个包含规则的拒绝字符串。
https://stackoverflow.com/questions/3772027
复制相似问题