2010-09-22 58 views

回答

4

没有办法使用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; 
} 
0

我有一个示例块特定的用户代理,如蜘蛛。这里是

RuleList=DenyUserAgent (in the options section) 

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

[Agent Strings] 
YisouSpider 

也许这个词可以在ini文件中给出解释。

UrlScan支持除此配置文件中指定的其他 检查和选项外可应用的自定义规则。规则应该是 在RuleList属性中用逗号分隔的字符串列出。 中的每个规则对应于此配置文件中的两个部分,其中一个 包含规则的选项,另一个包含 规则的拒绝字符串。