2010-09-22 30 views
7

Tôi có thể chặn tác nhân người dùng cụ thể, nhưng tôi muốn chặn tất cả các yêu cầu với tác nhân người dùng trống bằng cách sử dụng URLscan v3.1.Chặn tác nhân người dùng trống với URLScan

Có ai biết cách thực hiện việc này không?

Trả lời

4

Không có cách nào để định cấu hình điều này bằng cách sử dụng URLScan, nhưng có thể thực hiện bằng bộ lọc ISAPI tùy chỉnh trên máy chủ IIS của bạn. Dưới đây là trong 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

Tôi có một tác nhân người dùng cụ thể chặn ví dụ như nhện. Đây là

RuleList=DenyUserAgent (in the options section) 

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

[Agent Strings] 
YisouSpider 

Có thể từ đó có thể giải thích trong tệp ini.

UrlScan hỗ trợ các quy tắc tùy chỉnh có thể được áp dụng ngoài các kiểm tra khác và các tùy chọn được chỉ định trong tệp cấu hình này. Quy tắc phải là được liệt kê trong một chuỗi được phân tách bằng dấu phẩy trong thuộc tính RuleList. Mỗi quy tắc trong danh sách tương ứng với hai phần trong tệp cấu hình này, một trong số chứa các tùy chọn cho quy tắc và một phần chứa chuỗi từ chối cho quy tắc .

Các vấn đề liên quan