7

特定のユーザーエージェントをブロックすることはできますが、URLscan v3.1を使用して、空のユーザーエージェントですべてのリクエストをブロックしたいと思います。

誰かがこれを行う方法を知っていますか?

4

2 に答える 2

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; 
}
于 2010-11-17T05:37:05.243 に答える
0

スパイダーなどの特定のユーザーエージェントをブロックする例があります。ここは

RuleList=DenyUserAgent   (in the options section)

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

[Agent Strings]
YisouSpider

おそらく、単語はiniファイルで説明を与えることができます。

UrlScan は、この構成ファイルで指定された他のチェックとオプションに加えて適用できるカスタム ルールをサポートしています。ルールは、RuleList プロパティにカンマ区切りの文字列でリストする必要があります。リスト内の各ルールは、この構成ファイル内の 2 つのセクションに対応しています。1 つはルールのオプションを含み、もう 1 つはルールの拒否文字列を含みます。

于 2014-08-25T15:05:24.590 に答える