MSDN 首頁 

How To:使用 URLScan

發佈日期: 2004 年 5 月 28 日
本頁內容
目標目標
適用於適用於
如何使用本單元如何使用本單元
摘要摘要
安裝 URLScan安裝 URLScan
記錄檔記錄檔
移除 URLScan移除 URLScan
設定 URLScan設定 URLScan
使用 URLScan 節流要求大小使用 URLScan 節流要求大小
偵錯安裝 URLScan 的 VS.NET偵錯安裝 URLScan 的 VS.NET
遮罩內容標頭 (橫幅)遮罩內容標頭 (橫幅)
潛在風險潛在風險
參考資料參考資料

目標

透過本單元即可:

取得及安裝 URLScan。

使用 URLScan 來增強 Web 伺服器抵抗常見攻擊 (例如,拒絕服務和目錄周遊攻擊) 的防禦力。

使用 URLScan 的同時也啟用 Visual Studio .NET 偵錯

回到頁首回到頁首

適用於

本單元適用於下列產品及技術:

Microsoft® Windows® 2000 Server

Internet Information Services

回到頁首回到頁首

如何使用本單元

若要充分瞭解本單元:

您必須具備管理 Internet Information Services 的相關經驗。

您必須具備使用 Visual Studio .NET 的程式設計經驗。

閱讀<How To:使用 IISLockdown>單元。本單元說明如何安裝 IISLockdown,這是安裝 URLScan 的方法之一。

回到頁首回到頁首

摘要

URLScan 是 ISAPI 篩選器,可讓網站系統管理員限制由伺服器處理的 HTTP 要求類型。藉由封鎖特定 HTTP 要求,URLScan 篩選器可預防具有潛在危害的要求傳到伺服器,進而造成損害。本單元說明如何取得、安裝及設定 URLScan。

回到頁首回到頁首

安裝 URLScan

在撰寫本指南的當時,URLScan 2.0 會在執行 IISLockdown (IISLockd.exe) 時安裝,也可讓您獨立安裝。

使用 IISLockdown 安裝 URLScan 2.0:您可以以使用「IIS 鎖定精靈 (IIS Lockdown Wizard)」(IISLockd.exe) 一起安裝 URLScan 2.0。您可以從 Microsoft 網站下載 IISLockd.exe,網址是:http://download.microsoft.com/download/iis50/Utility/2.1/NT45XP/EN-US/iislockd.exe

只安裝 URLScan 2.0,不執行 IISLockdown:若要只安裝 URLScan 而不執行 IISLockdown,您必須以手動方式從 IIS 鎖定工具 (IIS Lockdown Tool) 解壓縮 URLScan。首先您得將 IISLockd.exe 另存到目錄中。接著,解壓縮 URLScan 安裝檔案,從安裝 IISLockd.exe 之目錄的命令列執行下列命令:

iislockd.exe /q /c

這樣會解壓縮 URLScan.exe,也就是 URLScan 的安裝程式。

如需詳細資訊,請參閱 Microsoft 知識庫文件 315522《How To: Extract the URLScan Tool and Lockdown Template Files from the IIS Lockdown Tool (英文)》,網址是:http://support.microsoft.com/default.aspx?scid=315522。

安裝 URLScan 2.5:URLScan 2.5 目前是 URLScan 的最新版本。若要安裝 URLScan 2.5,首先您需要 URLScan 1.0 或 URLScan 2.0。

如需詳細資訊,請參閱 Microsoft 知識庫文件 307608《INFO:URLScan 安全性工具的可用情形》,網址是:http://support.microsoft.com/default.aspx?scid=307608

預設的安裝目錄:包括 Urlscan.dll、URLScan.ini 及 URLScan 記錄檔等 URLScan 檔案,均存放在 %windir%\system32\inetsrv\urlscan 中。URLScan.dll 是篩選器。您可使用 URLScan.ini 來設定篩選器的工作方式。

回到頁首回到頁首

記錄檔

URLScan 會建立記錄拒絕要求的記錄檔。記錄檔位於下列資料夾中:

%windir%\system32\inetsrv\urlscan

記錄檔使用以下命名慣例:URLScan<date>.log。

回到頁首回到頁首

移除 URLScan

您可以在 [網際網路服務管理員 (Internet Services Manager)] 中,透過 Web 伺服器內容對話方塊中的 [ISAPI 篩選器] 頁,來手動移除 URLScan

回到頁首回到頁首

設定 URLScan

若要設定 URLScan 以便判斷應拒絕的要求,請使用 URLScan.ini。此檔案位於以下資料夾中:

%windir%\system32\inetsrv\urlscan

有關如何修改 URLScan.ini 各個區段的詳細資訊,請參閱 Microsoft 知識庫文件 815155《How To: Configure URLScan to Protect ASP.NET Web Applications (英文)》,網址是:http://support.microsoft.com/default.aspx?scid=815155

回到頁首回到頁首

使用 URLScan 節流要求大小

利用 URLScan,您可以在要求根本尚未到達 ASP.NET 之前,形成對抗拒絕服務攻擊的另一道防線。方法是對 MaxAllowedContentLengthMaxUrl MaxQueryString 屬性設限。

若要節流要求大小,請將下列設定加入 URLScan.ini 中:

[RequestLimits]
; The entries in this section impose limits on the length
; of allowed parts of requests reaching the server.
;MaxAllowedContentLength=2000000000
;MaxUrl=16384
;MaxQueryString=4096
回到頁首回到頁首

偵錯安裝 URLScan 的 VS.NET

在預設的狀況下,URLScan 不允許 DEBUG 動詞。因此當您在安裝 URLScan 的伺服器上使用 VS.NET 來偵錯 Web 應用程式時,可能會出現下列錯誤:

Microsoft Development Environment:
Error while trying to run project: Unable to start debugging on the web server. 
Could not start ASP.NET or ATL Server debugging.

Verify that ASP.NET or ATL Server is correctly installed on the server.Would you 
like to disable future attempts to debug ASP.NET pages for this project?Yes   No   
Help   

您的 URLScan 記錄檔也會包含如下所示的項目:

[01-18-2003 - 22:25:26] Client at 127.0.0.1: Sent verb 'DEBUG', which is not 
specifically allowed.Request will be rejected.

若要支援偵錯,請將 DEBUG 加入 URLScan.ini 的 AllowVerbs 區段,如下所示:

[AllowVerbs]
GET
HEAD
POST
DEBUG

注意 您必須重新啟動 IIS,變更才會生效。

回到頁首回到頁首

遮罩內容標頭 (橫幅)

若要避免橫幅資訊洩漏 Web 伺服器的類型及版本,請在 URLScan.ini 中找出 RemoveServerHeader 屬性,並將其值設為 1,如下所示。

RemoveServerHeader=1

如需詳細資訊,請參閱 Microsoft 知識庫文件 317741《How To: Mask IIS Version Information from Network Trace and Telnet (英文)》,網址是: http://support.microsoft.com/default.aspx?scid=317741

回到頁首回到頁首

潛在風險

使用 URLScan 時可能會遇到下列問題:

URLScan 會封鎖 DEBUG 動詞,造成應用程式偵錯中斷。如果您需要支援偵錯,請將 DEBUG 動詞加入 URLScan.ini 的 [AllowVerbs] 區段中。

您需要回收 IIS,變更才會生效。URLScan 是在 IIS 處理序 (Inetinfo.exe) 內部執行的 ISAPI 篩選器,當 IIS 啟動時,URLScan 的選項會從 URLScan.ini 中載入。您可以從命令提示字元執行 IISReset 命令來回收 IIS。

URLScan 會封鎖包含具有潛在危害字元的要求,例如過去曾經用來利用安全性弱點的字元,像是目錄周遊所使用的 "."。不建議專案路徑使用 "." 字元。如果您一定要允許這類作業,那麼您需要設定 URLScan.ini 中的 AllowDotInPath=1。

如果您的 Web 應用程式目錄在路徑中包含點,例如包含名稱 "Asp.Net" 的目錄,那麼 URLScan 將會拒絕這項要求,「404 找不到檔案」訊息將會傳回用戶端。

其他 URLScan 所拒絕因而應避免在專案名稱中使用的字元有:逗點 (,) 和井字號 (#)。

回到頁首回到頁首

參考資料

如需其他資訊,請參閱下列資源:

有關如何修改 Urlscan.ini 各個區段的詳細資訊,請參閱 Microsoft 知識庫文件 815155《How To: Configure URLScan to Protect ASP.NET Web Applications (英文)》,網址是:http://support.microsoft.com/default.aspx?scid=815155

有關使用 URLScan 的詳細資訊,請參閱 http://www.nardware.co.uk/Security/Docs/Nmsurlscan.html

有關 URLScan 2.5 的詳細資訊,請參閱 Microsoft 知識庫文件 307608《INFO:URLScan 安全性工具的可用情形》,網址是:http://support.microsoft.com/default.aspx?scid=307608


回到頁首回到頁首