2010-09-22 27 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屬性中用逗號分隔的字符串列出。 中的每個規則對應於此配置文件中的兩個部分,其中一個 包含規則的選項,另一個包含 規則的拒絕字符串。