2010-09-22 8 views
7

특정 사용자 에이전트를 차단할 수 있지만 URLscan v3.1을 사용하여 빈 사용자 에이전트로 모든 요청을 차단하고 싶습니다.URLScan으로 빈 사용자 에이전트 차단

누구든지이 작업을 수행하는 방법을 알고 있습니까?

답변

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 속성의 쉼표로 구분 된 문자열로 나열되어야합니다. 의 각 규칙은이 구성 파일의 두 섹션에 해당하며 하나는 규칙에 대한 옵션을 포함하는 이고 하나는 규칙에 대한 의 거부 문자열을 포함합니다.