Filtrado de solicitudes <requestFiltering>

Información general

El filtrado de solicitudes es una característica de seguridad integrada que se introdujo en Internet Information Services (IIS) 7.0 y reemplaza gran parte de la funcionalidad que estaba disponible a través del complemento UrlScan para IIS 6.0. Toda la configuración de la característica de filtrado de solicitudes se encuentra dentro del elemento <requestFiltering>, que contiene varios elementos secundarios para cada una de las siguientes áreas de características:

  • <denyUrlSequences>: este elemento puede contener una colección de patrones de secuencias de direcciones URL que IIS 7 denegará; por ejemplo: puede denegar partes de secuencias de direcciones URL que un atacante puede intentar aprovechar.
  • <fileExtensions>: Este elemento puede contener una colección de extensiones de nombre de archivo que IIS 7 denegará o permitirá; por ejemplo: puede bloquear todas las solicitudes de archivos Web.config.
  • <hiddenSegments>: este elemento puede contener una colección de direcciones URL que no se pueden examinar; por ejemplo: puede denegar solicitudes para la carpeta ASP.NET App_Code.
  • <requestLimits>: este elemento contiene la configuración de longitud de las direcciones URL, el contenido y los cadenas de consulta. También puede contener una colección de longitudes máximas definidas por el usuario para los encabezados HTTP.
  • <verbs>: este elemento puede contener una colección de verbos HTTP que IIS 7 denegará o permitirá; por ejemplo: puede bloquear todas las solicitudes HTTP TRACE.

Novedades de IIS 7.5

IIS 7.5 agregó varias áreas de características adicionales para el filtrado de solicitudes:

  • <alwaysAllowedUrls>: este elemento puede contener una colección de direcciones URL que solicitan filtrado siempre permitirá.
  • <alwaysAllowedQueryStrings>: este elemento puede contener cadenas de consulta de colección de que el filtrado de solicitudes siempre permitirá.
  • <denyQueryStringSequences>: este elemento puede contener una colección de secuencias de cadenas de consulta que el filtrado de solicitudes siempre denegará. Esto permite a los administradores bloquear secuencias de cadenas de consulta potencialmente peligrosas que detectan.
  • <filteringRules>: este elemento puede contener una colección de reglas de filtrado de solicitudes personalizadas. Esta colección permite a los administradores crear reglas de filtrado de solicitudes personalizadas para criterios específicos.

Novedades de IIS 10.0

IIS 10.0 agregó el atributo removeServerHeader para suprimir el envío del encabezado del servidor HTTP a clientes remotos.

Códigos de subestado de error HTTP 404

Cuando el filtrado de solicitudes bloquea una solicitud HTTP, IIS 7 devolverá un error HTTP 404 al cliente y registrará el estado HTTP con un subestado único que identifique el motivo por el que se denegó la solicitud. Por ejemplo:

Subestado HTTP Descripción
404.5 Secuencia de direcciones URL denegada
404.6 Verbo denegado
404.7 Extensión de archivo denegada
404.8 Espacio de nombres oculto
404.11 URL Double Escaped
404.12 URL tiene caracteres de Bit más significativo
404.14 URL demasiado larga
404.15 Cadena de consulta demasiado larga
404.18 Secuencia de cadenas de consulta denegada
404.19 Denegado por regla de filtrado
413.1 Longitud del contenido demasiado grande
431 Encabezado de solicitud demasiado largo

Este subestado permite a los administradores web analizar sus registros de IIS e identificar posibles amenazas.

Compatibilidad

Versión Notas
IIS 10.0 La capacidad de suprimir el encabezado de servidor se agregó en IIS 10.0.
IIS 8.5 El elemento <requestFiltering> no se modificó en IIS 8.5.
IIS 8.0 El elemento <requestFiltering> no se modificó en IIS 8.0.
IIS 7.5 En IIS 7.5, el filtrado de solicitudes se incluye con el unescapeQueryString atributo y los elementos alwaysAllowedUrls, alwaysAllowedQueryStrings, denyQueryStringSequencesy filteringRules. Estos elementos se introdujeron por primera vez como una actualización de IIS 7.0 que está disponible a través del artículo de Microsoft Knowledge Base 957508 (https://support.microsoft.com/kb/957508).
IIS 7.0 El elemento <requestFiltering> se introdujo en IIS 7.0.
IIS 6,0 El elemento <requestFiltering> reemplaza las características de URLScan de IIS 6.0.

Configuración

La instalación predeterminada de IIS 7 y versiones posteriores incluye el servicio de rol o característica Filtrado de solicitudes. Si se desinstala el servicio o el rol de Filtrado de solicitudes puede volver a instalarlo siguiendo estos pasos.

Windows Server 2012 o Windows Server 2012 R2

  1. En la barra de tareas, haga clic en Administrador del servidor.
  2. En Administrador del servidor, haga clic en el menú Administrar y, después, haga clic en Agregar roles y características.
  3. En el asistente para Agregar roles y características, haga clic en Siguiente. Seleccione el tipo de instalación y haga clic en Siguiente. Seleccione el servidor de destino y haga clic en Siguiente.
  4. En la página Roles de servidor, expanda Servidor web (IIS), expanda Servidor web, expanda Seguridad y luego seleccione Filtrado de solicitudes. Haga clic en Next.
    Image of Web Server and Security pane expanded with Request filtering selected..
  5. En la página Seleccionar características, haz clic en Siguiente.
  6. En la página Confirmar selecciones de instalación, haga clic en Instalar.
  7. En la página Resultados , haga clic en Cerrar.

Windows 8 o Windows 8.1

  1. En la pantalla Inicio, mueva el puntero hasta la esquina inferior izquierda, haga clic con el botón derecho en el botón Inicio y, a continuación, haga clic en Panel de control.
  2. En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
  3. Expanda Internet Information Services, expanda Servicios World Wide Web, expanda Seguridad y luego seleccione Filtrado de solicitudes.
    Image of World Wide Web Services and Security pane expanded with Request Filtering highlighted.
  4. Haga clic en OK.
  5. Haga clic en Cerrar.

Windows Server 2008 o Windows Server 2008 R2

  1. En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, luego, haga clic en Administrador del servidor.
  2. En el panel de jerarquía del Administrador del servidor, expanda Roles y, luego, haga clic en Servidor web (IIS).
  3. En el panel Servidor web (IIS), desplácese hasta la sección Servicios de rol y, luego, haga clic en Agregar servicios de rol.
  4. En la página Seleccionar servicios de rol del Asistente para agregar servicios de rol, seleccione Filtrado de solicitudes y luego haga clic en Siguiente.
    Image of Select Role Services page with Security pane expanded and Request Filtering selected.
  5. En la página Confirmar selecciones de instalación, haz clic en Instalar.
  6. En la página Resultados , haga clic en Cerrar.

Windows Vista o Windows 7

  1. En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
  2. En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
  3. Expanda Internet Information Services, después World Wide Web Services y luego Seguridad.
  4. Seleccione Filtrado de solicitudes y haga clic en Aceptar.
    Screenshot of World Wide Web Services and Security node expanded and Request Filtering highlighted.

Procedimientos

Nota para los usuarios de IIS 7.0: algunos de los pasos de esta sección pueden requerir que instale el módulo Administration Pack de Microsoft para IIS 7.0, que incluye una interfaz de usuario para el filtrado de solicitudes. Para instalar el módulo Administration Pack de Microsoft para IIS 7.0, consulte la siguiente dirección URL:


Cómo editar la configuración de características de filtrado de solicitudes y los límites de las solicitudes

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones, vaya a la conexión, sitio u aplicación de la que quiere modificar la configuración del filtrado de solicitudes.

  3. En el panel Página principal, haga doble clic en Filtrado de solicitudes.
    Image of Default Web Site Home pane showing Request Filtering highlighted.

  4. Haga clic en Modificar configuración de característica... en el panel Acciones.
    Image of Request Filtering page displaying Edit Feature Settings in the Actions pane.

  5. Especifique las opciones y haga clic en Aceptar.
    Screenshot of Edit Request Filtering Settings dialog box showing Allow unlisted file name extensions selected. Por ejemplo, puede realizar los siguientes cambios:

    • Especifique 2048 para cambiar la longitud máxima de dirección URL a 2 KB.
    • Cambie la longitud máxima de la cadena de consulta a 1 KB especificando 1024.
    • Deniegue el acceso a verbos HTTP no enumerados desactivando la casilla Permitir verbos no enumerados.

Cómo denegar una secuencia de direcciones URL

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones, vaya a la conexión, sitio u aplicación de la que quiere modificar la configuración del filtrado de solicitudes.

  3. En el panel Página principal, haga doble clic en Filtrado de solicitudes.
    Image of Default Web Site Home pane showing Request Filtering application highlighted.

  4. En el panel Filtrado de solicitudes, haga clic en la pestaña Denegar secuencias de direcciones URL y, a continuación, haga clic en Agregar secuencia de direcciones URL... en el panel Acciones.
    Screenshot of Request Filtering page with Deny U R L Sequences tab in Actions pane.

  5. En el cuadro de diálogo Agregar secuencia de denegación, escriba la secuencia de direcciones URL que quiere bloquear y, a continuación, haga clic en Aceptar.
    Image of Add Deny Sequence dialog box.
    Por ejemplo, para evitar la transversal de directorio en el servidor, escribiría dos puntos ("..") en el cuadro de diálogo.


Cómo denegar el acceso a una extensión de nombre de archivo específica

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones, vaya a la conexión, sitio u aplicación de la que quiere modificar la configuración del filtrado de solicitudes.

  3. En el panel Página principal, haga doble clic en Filtrado de solicitudes.
    Screenshot of Home pane displaying Request Filtering application selected.

  4. En el panel Filtrado de solicitudes, haga clic en la pestaña Extensiones de nombre de archivo y, a continuación, haga clic en Denegar extensión de nombre de archivo... en el panel Acciones.
    Image of Request Filtering application highlighted in Default Web Site Home.

  5. En el cuadro de diálogo Denegar extensión de nombre de archivo, escriba la extensión de nombre de archivo que desea bloquear y, a continuación, haga clic en Aceptar.
    Image of Deny File Name Extension dialog box displaying file name extension typed in the respective field. Por ejemplo, para evitar el acceso a los archivos con una extensión de nombre de archivo .inc, escribiría "inc" en el cuadro de diálogo.


Cómo agregar un segmento oculto

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones, vaya a la conexión, sitio u aplicación de la que quiere modificar la configuración del filtrado de solicitudes.

  3. En el panel Página principal, haga doble clic en Filtrado de solicitudes.
    Screenshot of Home pane in Internet Information Services I I S Manager with Request Filtering highlighted.

  4. En el panel Filtrado de solicitudes , haga clic en la pestaña Segmentos ocultos y, a continuación, haga clic en Agregar segmento oculto... en el panel Acciones.
    Image of request Filtering pane displaying Hidden Segments tab with Add Hidden Segments option in the Actions pane.

  5. En el cuadro de diálogo Agregar segmento oculto, escriba la ruta de acceso relativa que desea ocultar y, a continuación, haga clic en Aceptar.
    Screenshot of Add Hidden Segment dialog box showing the relative path entered in the Hidden Segment field.


Adición de límites para encabezados HTTP

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones, vaya a la conexión, sitio u aplicación de la que quiere modificar la configuración del filtrado de solicitudes.

  3. En el panel Página principal, haga doble clic en Filtrado de solicitudes.
    Image of Default Web Site Home page with Actions pane and Request Filtering highlighted.

  4. En el panel Filtrado de solicitudes, haga clic en la pestaña Encabezados y, a continuación, haga clic en Agregar encabezado... en el panel Acciones.
    Image of Request Filtering pane displaying Headers tab and Add Header in the Actions pane.

  5. En el cuadro de diálogo Agregar encabezado, escriba el encabezado HTTP y el tamaño máximo que desee para el límite de encabezados y, a continuación, haga clic en Aceptar.
    Screenshot of Add Header dialog box with fields for H T T P Header and Size limit.

    Por ejemplo, el encabezado "Content-type" contiene el tipo MIME para una solicitud. Especificar un valor de 100 limitaría la longitud del encabezado "Content-type" a 100 bytes.


Cómo denegar un verbo HTTP

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones, vaya a la conexión, sitio u aplicación de la que quiere modificar la configuración del filtrado de solicitudes.

  3. En el panel Página principal, haga doble clic en Filtrado de solicitudes.
    Screenshot of Home pane with Request Filtering application highlighted.

  4. En el panel Filtrado de solicitudes, haga clic en la pestaña Verbos HTTP y, a continuación, haga clic en Denegar verbo... en el panel Acciones.
    Image of Request Filtering pane showing H T T P verbs tab and Deny verb option in the Actions pane.

  5. En el cuadro de diálogo Denegar verbo, escriba el verbo HTTP que desea bloquear y haga clic en Aceptar.
    Image of Deny Verb dialog box with H T T P verb entered in the Verb field.

    Por ejemplo, para evitar solicitudes HTTP TRACE al servidor, escribiría "TRACE" en el cuadro de diálogo.

Configuración

Atributos

Atributo Descripción
allowDoubleEscaping Atributo Boolean opcional.

Si se establece en true, el filtrado de solicitudes permitirá las direcciones URL con caracteres de doble escape. Si se establece en false, el filtrado de solicitudes denegará la solicitud si los caracteres que se han escapado dos veces están presentes en las direcciones URL.

El valor predeterminado es false.
allowHighBitCharacters Atributo Boolean opcional.

Si se establece en true, el filtrado de solicitudes permitirá caracteres no ASCII en direcciones URL. Si se establece en false, el filtrado de solicitudes denegará la solicitud si los caracteres de alto bits están presentes en las direcciones URL.

El valor predeterminado es true.
removeServerHeader Atributo Boolean opcional.

Si se establece en true, el filtrado de solicitudes suprimirá el encabezado del servidor IIS. Si se establece en false, IIS devolverá el encabezado de servidor predeterminado. (Nota: Este atributo se agregó en IIS 10.0 y no funciona en versiones de Windows anteriores a Windows Server, versión 1709 o Windows 10, versión 1709).

El valor predeterminado es false.
unescapeQueryString Atributo Boolean opcional.

Si se establece en true, el filtrado de solicitudes realizará dos pasos en cada examen de cadena de consulta. El primer paso examinará la cadena de consulta sin procesar y el segundo paso examinará la cadena de consulta después de que IIS haya descodificado las secuencias de escape. Si se establece en false, el filtrado de solicitudes solo examinará la cadena de consulta sin procesar que envía el cliente.

Nota: Este atributo se ha agregado en IIS 7.5.

El valor predeterminado es true.

Elementos secundarios

Elemento Descripción
alwaysAllowedQueryStrings Elemento opcional.

Especifica una colección de cadenas de consulta que el filtrado de solicitudes siempre permitirá.

Nota: Este elemento se agregó en IIS 7.5.
alwaysAllowedUrls Elemento opcional.

Especifica una colección de direcciones URL que solicitan filtrado siempre permitirá.

Nota: Este elemento se agregó en IIS 7.5.
denyQueryStringSequences Elemento opcional.

Especifica una colección de secuencias de cadenas de consulta que el filtrado de solicitudes siempre denegará.

Nota: Este elemento se agregó en IIS 7.5.
denyUrlSequences Elemento opcional.

Especifica secuencias que se deben denegar para ayudar a evitar ataques basados en direcciones URL en el servidor web.
fileExtensions Elemento opcional.

Especifica qué extensiones de nombre de archivo se permiten o deniegan para limitar los tipos de solicitudes enviadas al servidor web.
filteringRules Elemento opcional.

Especifica una colección de reglas de filtrado de solicitudes personalizadas.

Nota: Este elemento se agregó en IIS 7.5.
hiddenSegments Elemento opcional.

Especifica que determinados segmentos de las direcciones URL se pueden hacer inaccesibles para los clientes.
requestLimits Elemento opcional.

Especifica límites en las solicitudes procesadas por el servidor web.
verbs Elemento opcional.

Especifica qué verbos HTTP se permiten o deniegan para limitar los tipos de solicitudes enviadas al servidor web.

Ejemplo de configuración

El ejemplo de configuración siguiente de un archivo Web.config realiza varias tareas relacionadas con la seguridad:

  • Deniega el acceso a dos secuencias de direcciones URL. La primera secuencia impide que el directorio transversal y la segunda secuencia impida el acceso a flujos de datos alternativos.
  • Deniega el acceso a extensiones de nombre de archivo no enumerados y verbos HTTP no enumerados.
  • Establece la longitud máxima de una dirección URL en 2 KB y la longitud máxima de una cadena de consulta en 1 KB.
<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>

Código de ejemplo

Los siguientes ejemplos de código muestran cómo denegar el acceso a tres secuencias de direcciones URL para el sitio web predeterminado: transversales de directorio (".."), secuencias de datos alternativas (":") y barras diagonales inversas ("").

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()