共用方式為


要求篩選 < 要求篩選>

概觀

要求篩選是 Internet Information Services (IIS) 7.0 中引進的內建安全性功能,並取代許多可透過 IIS 6.0 的 UrlScan 附加元件取得的功能。 要求篩選功能的所有設定都位於 元素內 <requestFiltering> ,其中包含下列每個功能區域的數個子項目:

  • <denyUrlSequences> - 此元素可以包含 IIS 7 將拒絕的 URL 序列模式集合;例如:您可以拒絕攻擊者可能嘗試惡意探索的 URL 序列部分。
  • <fileExtensions> - 此元素可以包含 IIS 7 將拒絕或允許的副檔名集合;例如:您可以封鎖Web.config檔案的所有要求。
  • <hiddenSegments> - 此元素可以包含無法流覽的 URL 集合;例如:您可以拒絕 ASP.NET App_Code資料夾的要求。
  • <requestLimits> - 此元素包含 URL、內容和查詢字串長度的設定。 它也可以包含 HTTP 標頭的使用者定義最大長度集合。
  • <verbs> - 此元素可以包含 IIS 7 將拒絕或允許的 HTTP 動詞命令集合;例如:您可以封鎖所有 HTTP TRACE 要求。

IIS 7.5 的新功能

IIS 7.5 新增了數個額外的功能區域來篩選要求:

  • <alwaysAllowedUrls> - 此元素可以包含要求篩選一律允許的 URL 集合。
  • <alwaysAllowedQueryStrings> -此元素可以包含該要求篩選一律允許的集合查詢字串。
  • <denyQueryStringSequences> - 此元素可以包含要求篩選一律會拒絕的查詢字串序列集合。 這可讓系統管理員封鎖他們偵測到的潛在危險查詢字串序列。
  • <filteringRules> - 此元素可以包含自訂要求篩選規則的集合。 此集合可讓系統管理員針對特定準則建立自訂的要求篩選規則。

IIS 10.0 的新功能

IIS 10.0 新增 removeServerHeader 了 屬性,以隱藏將 HTTP 伺服器標頭傳送至遠端用戶端。

HTTP 404 錯誤子狀態碼

當要求篩選封鎖 HTTP 要求時,IIS 7 會將 HTTP 404 錯誤傳回給用戶端,並使用唯一的子狀態來記錄 HTTP 狀態,以識別要求遭到拒絕的原因。 例如:

HTTP 子狀態 描述
404.5 URL 序列遭拒
404.6 動詞遭拒
404.7 拒絕副檔名
404.8 隱藏命名空間
404.11 URL 雙重逸出
404.12 URL 有高位字元
404.14 URL 太長
404.15 查詢字串太長
404.18 查詢字串序列遭拒
404.19 篩選規則拒絕
413.1 內容長度太大
431 要求標頭太長

這些子狀態可讓 Web 系統管理員分析其 IIS 記錄,並識別潛在的威脅。

相容性

版本 備註
IIS 10.0 在 IIS 10.0 中新增了隱藏伺服器標頭的功能。
IIS 8.5 未在 IIS 8.5 中修改專案 <requestFiltering>
IIS 8.0 未在 IIS 8.0 中修改專案 <requestFiltering>
IIS 7.5 在 IIS 7.5 中,要求篩選隨附 unescapeQueryString 屬性和 alwaysAllowedUrlsalwaysAllowedQueryStringsdenyQueryStringSequencesfilteringRules 元素。 這些元素首次引進為 IIS 7.0 的更新,可透過 Microsoft 知識庫文章957508 (https://support.microsoft.com/kb/957508) 取得。
IIS 7.0 元素 <requestFiltering> 是在 IIS 7.0 中引進。
IIS 6.0 元素 <requestFiltering> 會取代 IIS 6.0 UrlScan 功能。

安裝程式

IIS 7 和更新版本的預設安裝包含要求篩選角色服務或功能。 如果卸載要求篩選角色服務或功能,您可以使用下列步驟重新安裝它。

Windows Server 2012 或 Windows Server 2012 R2

  1. 在工作列上,按一下 [伺服器管理員]
  2. [伺服器管理員] 中,按一下 [管理] 功能表,然後按一下 [新增角色及功能]。
  3. 在 [ 新增角色及功能精 靈] 中,按 [ 下一步]。 選取安裝類型,然後按 [ 下一步]。 選取目的地伺服器,然後按 [ 下一步]。
  4. 在 [ 伺服器角色] 頁面上,依序展開 [ Web 服務器] ([IIS) ]、[ Web 服務器]、[ 安全性],然後選取 [ 要求篩選]。 按一下 [下一步] 。
    展開 [Web 服務器和安全性] 窗格的影像,其中已選取 [要求篩選]。 .
  5. 在 [選取功能] 頁面上,按 [下一步]
  6. 在 [確認安裝選項] 頁面上,按一下 [安裝]
  7. 在 [結果] 頁面上,按一下 [關閉]

Windows 8 或 Windows 8.1

  1. 在 [開始] 畫面上,將指標一路移至左下角,以滑鼠右鍵按一下 [開始] 按鈕,然後按一下[主控台]。
  2. 主控台中,按一下 [程式和功能],然後按一下 [開啟或關閉 Windows 功能]。
  3. 序展開 [Internet Information Services]、[ 萬維網服務]、[ 安全性],然後選取 [ 要求篩選]。
    已展開 [萬維網服務和安全性] 窗格的影像,其中已醒目提示 [要求篩選]。
  4. 按一下 [確定]。
  5. 按一下 [關閉] 。

Windows Server 2008 或 Windows Server 2008 R2

  1. 在工作列上,按一下 [開始],指向 [系統管理工具],然後按一下[伺服器管理員]。
  2. [伺服器管理員階層] 窗格中,展開 [角色],然後按一下 [Web 服務器] (IIS)
  3. 在 [ Web Server (IIS) ] 窗格中,捲動至 [ 角色服務 ] 區段,然後按一下 [ 新增角色服務]。
  4. 在 [新增角色服務精靈] 的 [選取角色服務] 頁面上,選取 [要求篩選],然後按 [下一步]。
    [選取角色服務] 頁面的影像,其中已展開 [安全性] 窗格,並已選取 [要求篩選]。
  5. 在 [確認安裝選項] 頁面上,按一下 [安裝]
  6. 在 [結果] 頁面上,按一下 [關閉]

Windows Vista 或 Windows 7

  1. 在工作列上,按一下 [開始],然後按一下[主控台]。
  2. 主控台中,按一下 [程式和功能],然後按一下[開啟或關閉 Windows 功能]。
  3. 依序展開 [Internet Information Services]、[ World Wide Web 服務] 和 [ 安全性]。
  4. 選取 [ 要求篩選],然後按一下 [ 確定]。
    已展開 [萬維網服務和安全性] 節點的螢幕擷取畫面,並醒目提示 [要求篩選]。

作法

IIS 7.0 使用者的注意事項:本節中的某些步驟可能需要您安裝適用于 IIS 7.0 的 Microsoft 系統管理元件,其中包含用於要求篩選的使用者介面。 若要安裝適用于 IIS 7.0 的 Microsoft 系統管理元件,請參閱下列 URL:


如何編輯要求篩選功能設定和要求限制

  1. 開啟 [Internet Information Services (IIS) 管理員

    • 如果您使用 Windows Server 2012 或 Windows Server 2012 R2:

      • 在工作列上,依序按一下 [伺服器管理員]、[工具],然後按一下 [Internet Information Services (IIS) Manager]。
    • 如果您使用 Windows 8 或 Windows 8.1:

      • 按住Windows鍵,按字母X,然後按一下[主控台]。
      • 按一下 [系統管理工具],然後按兩下 [ Internet Information Services (IIS) Manager]。
    • 如果您使用 Windows Server 2008 或 Windows Server 2008 R2:

      • 在工作列上,按一下 [ 開始],指向 [ 系統管理工具],然後按一下 [ Internet Information Services (IIS) 管理員]。
    • 如果您使用 Windows Vista 或 Windows 7:

      • 在工作列上,按一下 [開始],然後按一下[主控台]。
      • 按兩下 [系統管理工具],然後按兩下 [ Internet Information Services] (IIS) Manager
  2. 在 [ 連線] 窗格中,移至您要修改要求篩選設定的連線、月臺、應用程式或目錄。

  3. 在 [ 首頁] 窗格中,按兩下 [ 要求篩選]。
    [預設網站首頁] 窗格的影像,其中已醒目提示 [要求篩選]。

  4. 按一下 [動作] 窗格中的[編輯功能設定...]。
    [要求篩選] 頁面的影像,其中顯示 [動作] 窗格中的 [編輯功能設定]。

  5. 指定您的選項,然後按一下 [ 確定]。
    [編輯要求篩選設定] 對話方塊的螢幕擷取畫面,其中顯示已選取 [允許未列出的副檔名]。 例如,您可以進行下列變更:

    • 藉由指定 2048,將 URL 長度上限變更為 2KB。
    • 藉由指定 1024,將查詢字串長度上限變更為 1KB。
    • 清除 [允許未列出的動詞] 核取方塊,拒絕存取未列出的 HTTP 動詞。

如何拒絕 URL 序列

  1. 開啟 [Internet Information Services (IIS) 管理員

    • 如果您使用 Windows Server 2012 或 Windows Server 2012 R2:

      • 在工作列上,依序按一下 [伺服器管理員]、[工具],然後按一下 [Internet Information Services (IIS) Manager]。
    • 如果您使用 Windows 8 或 Windows 8.1:

      • 按住Windows鍵,按字母X,然後按一下[主控台]。
      • 按一下 [系統管理工具],然後按兩下 [ Internet Information Services (IIS) Manager]。
    • 如果您使用 Windows Server 2008 或 Windows Server 2008 R2:

      • 在工作列上,按一下 [ 開始],指向 [ 系統管理工具],然後按一下 [ Internet Information Services (IIS) 管理員]。
    • 如果您使用 Windows Vista 或 Windows 7:

      • 在工作列上,按一下 [開始],然後按一下[主控台]。
      • 按兩下 [系統管理工具],然後按兩下 [ Internet Information Services] (IIS) Manager
  2. 在 [ 連線] 窗格中,移至您要修改要求篩選設定的連線、月臺、應用程式或目錄。

  3. 在 [ 首頁] 窗格中,按兩下 [ 要求篩選]。
    [預設網站首頁] 窗格的影像,其中已醒目提示 [要求篩選] 應用程式。

  4. 在 [要求篩選] 窗格中,按一下 [拒絕 URL 序列] 索引標籤,然後按一下 [動作] 窗格中的 [新增 URL 順序...]。
    [要求篩選] 頁面的螢幕擷取畫面,其中 [動作] 窗格中具有 [拒絕 U R L 序列] 索引標籤。

  5. 在 [ 新增拒絕順序 ] 對話方塊中,輸入您想要封鎖的 URL 順序,然後按一下 [ 確定]。
    [新增拒絕順序] 對話方塊的影像。
    例如,若要防止伺服器上的目錄轉譯,您會輸入兩個期間 (「。」對話方塊中) 。


如何拒絕存取特定副檔名

  1. 開啟 [Internet Information Services (IIS) 管理員

    • 如果您使用 Windows Server 2012 或 Windows Server 2012 R2:

      • 在工作列上,依序按一下 [伺服器管理員]、[工具],然後按一下 [Internet Information Services (IIS) Manager]。
    • 如果您使用 Windows 8 或 Windows 8.1:

      • 按住Windows鍵,按字母X,然後按一下[主控台]。
      • 按一下 [系統管理工具],然後按兩下 [ Internet Information Services (IIS) Manager]。
    • 如果您使用 Windows Server 2008 或 Windows Server 2008 R2:

      • 在工作列上,按一下 [ 開始],指向 [ 系統管理工具],然後按一下 [ Internet Information Services (IIS) 管理員]。
    • 如果您使用 Windows Vista 或 Windows 7:

      • 在工作列上,按一下 [開始],然後按一下[主控台]。
      • 按兩下 [系統管理工具],然後按兩下 [ Internet Information Services] (IIS) Manager
  2. 在 [ 連線] 窗格中,移至您要修改要求篩選設定的連線、月臺、應用程式或目錄。

  3. 在 [ 首頁] 窗格中,按兩下 [ 要求篩選]。
    [首頁] 窗格的螢幕擷取畫面,其中顯示已選取 [要求篩選] 應用程式。

  4. 在 [要求篩選] 窗格中,按一下 [副檔名] 索引標籤,然後按一下 [動作] 窗格中的[拒絕副檔名...]。
    預設網站首頁中醒目提示的要求篩選應用程式影像。

  5. 在 [ 拒絕副檔名 ] 對話方塊中,輸入您想要封鎖的副檔名,然後按一下 [ 確定]。
    [拒絕副檔名] 對話方塊的影像,其中顯示個別欄位中輸入的副檔名。 例如,若要防止存取副檔名為 .inc 的檔案,您可以在對話方塊中輸入 「inc」。


如何新增隱藏區段

  1. 開啟 [Internet Information Services (IIS) 管理員

    • 如果您使用 Windows Server 2012 或 Windows Server 2012 R2:

      • 在工作列上,依序按一下 [伺服器管理員]、[工具],然後按一下 [Internet Information Services (IIS) Manager]。
    • 如果您使用 Windows 8 或 Windows 8.1:

      • 按住Windows鍵,按字母X,然後按一下[主控台]。
      • 按一下 [系統管理工具],然後按兩下 [ Internet Information Services (IIS) Manager]。
    • 如果您使用 Windows Server 2008 或 Windows Server 2008 R2:

      • 在工作列上,按一下 [ 開始],指向 [ 系統管理工具],然後按一下 [ Internet Information Services (IIS) 管理員]。
    • 如果您使用 Windows Vista 或 Windows 7:

      • 在工作列上,按一下 [開始],然後按一下[主控台]。
      • 按兩下 [系統管理工具],然後按兩下 [ Internet Information Services] (IIS) Manager
  2. 在 [ 連線] 窗格中,移至您要修改要求篩選設定的連線、月臺、應用程式或目錄。

  3. 在 [ 首頁] 窗格中,按兩下 [ 要求篩選]。
    Internet Information Services I I S Manager 中 [首頁] 窗格的螢幕擷取畫面,其中已醒目提示 [要求篩選]。

  4. 在 [要求篩選] 窗格中,按一下 [隱藏區段] 索引標籤,然後按一下 [動作] 窗格中的 [新增隱藏區段...]。
    [要求篩選] 窗格的影像,其中顯示 [隱藏區段] 索引標籤的 [動作] 窗格中有 [新增隱藏區段] 選項。

  5. 在 [ 新增隱藏區段 ] 對話方塊中,輸入您想要隱藏的相對路徑,然後按一下 [ 確定]。
    [新增隱藏區段] 對話方塊的螢幕擷取畫面,其中顯示 [隱藏區段] 欄位中輸入的相對路徑。


如何新增 HTTP 標頭的限制

  1. 開啟 [Internet Information Services (IIS) 管理員

    • 如果您使用 Windows Server 2012 或 Windows Server 2012 R2:

      • 在工作列上,依序按一下 [伺服器管理員]、[工具],然後按一下 [Internet Information Services (IIS) Manager]。
    • 如果您使用 Windows 8 或 Windows 8.1:

      • 按住Windows鍵,按字母X,然後按一下[主控台]。
      • 按一下 [系統管理工具],然後按兩下 [ Internet Information Services (IIS) Manager]。
    • 如果您使用 Windows Server 2008 或 Windows Server 2008 R2:

      • 在工作列上,按一下 [ 開始],指向 [ 系統管理工具],然後按一下 [ Internet Information Services (IIS) 管理員]。
    • 如果您使用 Windows Vista 或 Windows 7:

      • 在工作列上,按一下 [開始],然後按一下[主控台]。
      • 按兩下 [系統管理工具],然後按兩下 [ Internet Information Services] (IIS) Manager
  2. 在 [ 連線] 窗格中,移至您要修改要求篩選設定的連線、月臺、應用程式或目錄。

  3. 在 [ 首頁] 窗格中,按兩下 [ 要求篩選]。
    預設網站首頁的影像,其中已醒目提示 [動作] 窗格和 [要求篩選]。

  4. 在 [要求篩選] 窗格中,按一下 [標頭]索引標籤,然後按一下 [動作] 窗格中的 [新增標頭...]。
    [要求篩選] 窗格的影像,其中顯示 [標頭] 索引標籤和 [動作] 窗格中的 [新增標頭]。

  5. 在 [ 新增標頭 ] 對話方塊中,輸入 HTTP 標頭和您想要用於標頭限制的大小上限,然後按一下 [ 確定]。
    [新增標頭] 對話方塊的螢幕擷取畫面,其中含有 H T P 標頭和大小限制的欄位。

    例如,「Content-type」 標頭包含要求的 MIME 類型。 指定 100 的值會將 「Content-type」 標頭的長度限制為 100 個位元組。


如何拒絕 HTTP 動詞命令

  1. 開啟 [Internet Information Services (IIS) 管理員

    • 如果您使用 Windows Server 2012 或 Windows Server 2012 R2:

      • 在工作列上,依序按一下 [伺服器管理員]、[工具],然後按一下 [Internet Information Services (IIS) Manager]。
    • 如果您使用 Windows 8 或 Windows 8.1:

      • 按住Windows鍵,按字母X,然後按一下[主控台]。
      • 按一下 [系統管理工具],然後按兩下 [ Internet Information Services (IIS) Manager]。
    • 如果您使用 Windows Server 2008 或 Windows Server 2008 R2:

      • 在工作列上,按一下 [ 開始],指向 [ 系統管理工具],然後按一下 [ Internet Information Services (IIS) 管理員]。
    • 如果您使用 Windows Vista 或 Windows 7:

      • 在工作列上,按一下 [開始],然後按一下[主控台]。
      • 按兩下 [系統管理工具],然後按兩下 [ Internet Information Services] (IIS) Manager
  2. 在 [ 連線] 窗格中,移至您要修改要求篩選設定的連線、月臺、應用程式或目錄。

  3. 在 [ 首頁] 窗格中,按兩下 [ 要求篩選]。
    [首頁] 窗格的螢幕擷取畫面,其中已醒目提示 [要求篩選] 應用程式。

  4. 在 [要求篩選] 窗格中,按一下 [HTTP 動詞] 索引標籤,然後按一下 [動作] 窗格中的[拒絕動詞...]。
    [要求篩選] 窗格的影像,其中顯示 [動作] 窗格中的 [H T T P 動詞] 索引標籤和 [拒絕動詞] 選項。

  5. 在 [ 拒絕動詞 ] 對話方塊中,輸入您想要封鎖的 HTTP 動詞命令,然後按一下 [ 確定]。
    在 [動詞] 欄位中輸入 H T T P 動詞命令的 [拒絕動詞] 對話方塊影像。

    例如,若要防止對伺服器的 HTTP TRACE 要求,您會在對話方塊中輸入 「TRACE」。

組態

屬性

屬性 描述
allowDoubleEscaping 選擇性的 Boolean 屬性。

如果設定為 true,要求篩選將會允許具有雙逸出字元的 URL。 如果設定為 false,如果 URL 中有兩次逸出字元,要求篩選將會拒絕要求。

預設值是 false
allowHighBitCharacters 選擇性的 Boolean 屬性。

如果設定為 true,要求篩選將會允許 URL 中的非 ASCII 字元。 如果設定為 false,如果 URL 中有高位字元,要求篩選將會拒絕要求。

預設值是 true
removeServerHeader 選擇性的 Boolean 屬性。

如果設定為 true,要求篩選將會隱藏 IIS 伺服器標頭。 如果設定為 false,IIS 會傳回預設的伺服器標頭。 (注意:這個屬性已新增于 IIS 10.0 中,不適用於 Windows Server 版本 1709 或 Windows 10 1709.) 之前的 Windows 版本

預設值是 false
unescapeQueryString 選擇性的 Boolean 屬性。

如果設定為 true,要求篩選將會在每個查詢字串掃描上執行兩個傳遞。 第一次傳遞會掃描原始查詢字串,而第二個階段會在 IIS 解碼任何逸出序列之後掃描查詢字串。 如果設定為 false,要求篩選只會查看用戶端所傳送的原始查詢字串。

注意: 這個屬性已在 IIS 7.5 中新增。

預設值是 true

子元素

元素 描述
alwaysAllowedQueryStrings 選擇性項目。

指定要求篩選一律允許的查詢字串集合。

注意: 此元素已新增于 IIS 7.5 中。
alwaysAllowedUrls 選擇性項目。

指定要求篩選一律允許的 URL 集合。

注意: 此元素已新增于 IIS 7.5 中。
denyQueryStringSequences 選擇性項目。

指定要求篩選一律會拒絕的查詢字串序列集合。

注意: 此元素已新增于 IIS 7.5 中。
denyUrlSequences 選擇性項目。

指定應該拒絕的序列,以協助防止網頁伺服器上的 URL 型攻擊。
fileExtensions 選擇性項目。

指定允許或拒絕的副檔名,以限制傳送至 Web 服務器的要求類型。
filteringRules 選擇性項目。

指定自訂要求篩選規則的集合。

注意: 此元素已新增于 IIS 7.5 中。
hiddenSegments 選擇性項目。

指定用戶端無法存取特定 URL 區段。
requestLimits 選擇性項目。

指定 Web 服務器所處理之要求的限制。
verbs 選擇性項目。

指定允許或拒絕哪些 HTTP 動詞來限制傳送至 Web 服務器的要求類型。

組態範例

下列來自Web.config檔案的組態範例會執行數個安全性相關工作:

  • 拒絕存取兩個 URL 序列。 第一個序列會防止目錄交易,而第二個序列會防止存取替代資料流程。
  • 拒絕存取未列出的副檔名和未列出的 HTTP 動詞。
  • 將 URL 的最大長度設定為 2KB,並將查詢字串的最大長度設為 1KB。
<configuration>
   <system.webServer>
      <security>
         <requestFiltering>
            <denyUrlSequences>
               <add sequence=".." />
               <add sequence=":" />
            </denyUrlSequences>
            <fileExtensions allowUnlisted="false" />
            <requestLimits maxUrl="2048" maxQueryString="1024" />
            <verbs allowUnlisted="false" />
         </requestFiltering>
      </security>
   </system.webServer>
</configuration>

範例程式碼

下列程式碼範例示範如何拒絕對預設網站的三個 URL 序列的存取:目錄交易 (「。」) ,替代資料流程 (「:」) 和反斜線 (「」) 。

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/security/requestFiltering /+"denyUrlSequences.[sequence='..']" 

appcmd.exe set config "Default Web Site" -section:system.webServer/security/requestFiltering /+"denyUrlSequences.[sequence=':']" 

appcmd.exe set config "Default Web Site" -section:system.webServer/security/requestFiltering /+"denyUrlSequences.[sequence='\']"

PowerShell

Start-IISCommitDelay

$denyUrlSequences = Get-IISConfigSection -CommitPath 'Default Web Site' -SectionPath 'system.webServer/security/requestFiltering' | Get-IISConfigCollection -CollectionName 'denyUrlSequences'

New-IISConfigCollectionElement -ConfigCollection $denyUrlSequences -ConfigAttribute @{ 'sequence' = '..' }
New-IISConfigCollectionElement -ConfigCollection $denyUrlSequences -ConfigAttribute @{ 'sequence' = ':' }
New-IISConfigCollectionElement -ConfigCollection $denyUrlSequences -ConfigAttribute @{ 'sequence' = '\' }

Stop-IISCommitDelay

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetWebConfiguration("Default Web Site");

         ConfigurationSection requestFilteringSection = config.GetSection("system.webServer/security/requestFiltering");

         ConfigurationElementCollection denyUrlSequencesCollection = requestFilteringSection.GetCollection("denyUrlSequences");

         ConfigurationElement addElement = denyUrlSequencesCollection.CreateElement("add");
         addElement["sequence"] = @"..";
         denyUrlSequencesCollection.Add(addElement);

         ConfigurationElement addElement1 = denyUrlSequencesCollection.CreateElement("add");
         addElement1["sequence"] = @":";
         denyUrlSequencesCollection.Add(addElement1);

         ConfigurationElement addElement2 = denyUrlSequencesCollection.CreateElement("add");
         addElement2["sequence"] = @"\";
         denyUrlSequencesCollection.Add(addElement2);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample

Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetWebConfiguration("Default Web Site")
      Dim requestFilteringSection As ConfigurationSection = config.GetSection("system.webServer/security/requestFiltering")
      Dim denyUrlSequencesCollection As ConfigurationElementCollection = requestFilteringSection.GetCollection("denyUrlSequences")

      Dim addElement As ConfigurationElement = denyUrlSequencesCollection.CreateElement("add")
      addElement("sequence") = ".."
      denyUrlSequencesCollection.Add(addElement)

      Dim addElement1 As ConfigurationElement = denyUrlSequencesCollection.CreateElement("add")
      addElement1("sequence") = ":"
      denyUrlSequencesCollection.Add(addElement1)

      Dim addElement2 As ConfigurationElement = denyUrlSequencesCollection.CreateElement("add")
      addElement2("sequence") = "\"
      denyUrlSequencesCollection.Add(addElement2)

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site";
var requestFilteringSection = adminManager.GetAdminSection("system.webServer/security/requestFiltering", "MACHINE/WEBROOT/APPHOST/Default Web Site");
var denyUrlSequencesCollection = requestFilteringSection.ChildElements.Item("denyUrlSequences").Collection;

var addElement = denyUrlSequencesCollection.CreateNewElement("add");
addElement.Properties.Item("sequence").Value = "..";
denyUrlSequencesCollection.AddElement(addElement);

var addElement1 = denyUrlSequencesCollection.CreateNewElement("add");
addElement1.Properties.Item("sequence").Value = ":";
denyUrlSequencesCollection.AddElement(addElement1);

var addElement2 = denyUrlSequencesCollection.CreateNewElement("add");
addElement2.Properties.Item("sequence").Value = "\\";
denyUrlSequencesCollection.AddElement(addElement2);

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site"
Set requestFilteringSection = adminManager.GetAdminSection("system.webServer/security/requestFiltering", "MACHINE/WEBROOT/APPHOST/Default Web Site")
Set denyUrlSequencesCollection = requestFilteringSection.ChildElements.Item("denyUrlSequences").Collection

Set addElement = denyUrlSequencesCollection.CreateNewElement("add")
addElement.Properties.Item("sequence").Value = ".."
denyUrlSequencesCollection.AddElement(addElement)

Set addElement1 = denyUrlSequencesCollection.CreateNewElement("add")
addElement1.Properties.Item("sequence").Value = ":"
denyUrlSequencesCollection.AddElement(addElement1)

Set addElement2 = denyUrlSequencesCollection.CreateNewElement("add")
addElement2.Properties.Item("sequence").Value = "\"
denyUrlSequencesCollection.AddElement(addElement2)

adminManager.CommitChanges()