Compartilhar via


Filtragem de solicitação <requestFiltering>

Visão geral

A Filtragem de Solicitações é um recurso de segurança interno que foi introduzido no IIS (Serviços de Informações da Internet) 7.0 e substitui grande parte da funcionalidade que estava disponível por meio do complemento UrlScan para IIS 6.0. Todas as configurações do recurso de filtragem de solicitação estão localizadas no elemento <requestFiltering>, que contém vários elementos filho para cada uma das seguintes áreas de recurso:

  • <denyUrlSequences> – Esse elemento pode conter uma coleção de padrões de sequência de URL que o IIS 7 negará; por exemplo: você pode negar partes de sequências de URL que um invasor pode tentar explorar.
  • <fileExtensions> – Esse elemento pode conter uma coleção de extensões de nome de arquivo que o IIS 7 negará ou permitirá; por exemplo: você pode bloquear todas as solicitações de arquivos Web.config.
  • <hiddenSegments> – Esse elemento pode conter uma coleção de URLs que não podem ser navegados; por exemplo: você pode negar solicitações para a pasta ASP.NET App_Code.
  • <requestLimits> – Esse elemento contém as configurações de URL, conteúdo e comprimentos de cadeia de caracteres de consulta. Ele também pode conter uma coleção de comprimentos máximos definidos pelo usuário para cabeçalhos HTTP.
  • <verbs> – Este elemento pode conter uma coleção de verbos HTTP que o IIS 7 negará ou permitirá; por exemplo: você pode bloquear todas as solicitações HTTP TRACE.

Novidades no IIS 7.5

O IIS 7.5 adicionou várias áreas de recursos adicionais para filtragem de solicitações:

  • <alwaysAllowedUrls> – Este elemento pode conter uma coleção de URLs que a filtragem de solicitação sempre permitirá.
  • <alwaysAllowedQueryStrings> – Este elemento pode conter uma coleção de cadeia de caracteres de consulta que a filtragem de solicitação sempre permitirá.
  • <denyQueryStringSequences> – Este elemento pode conter uma coleção de sequências de cadeia de caracteres de consulta que a filtragem de solicitação sempre permitirá. Isso permite que os administradores bloqueiem sequências de caracteres de consulta potencialmente perigosas detectadas.
  • <filteringRules> – Esse elemento pode conter uma coleção de regras de filtragem de solicitação personalizadas. Essa coleção permite que os administradores criem regras de filtragem de solicitação personalizadas para critérios específicos.

Novidades no IIS 10.0

O IIS 10.0 adicionou o atributo removeServerHeader para suprimir o envio do cabeçalho do servidor HTTP para clientes remotos.

Códigos de substatus de erro HTTP 404

Quando a filtragem de solicitações bloqueia uma solicitação HTTP, o IIS 7 retornará um erro HTTP 404 ao cliente e registrará o status HTTP com um substatus exclusivo que identifica o motivo pelo qual a solicitação foi negada. Por exemplo:

Substatus HTTP Descrição
404.5 Sequência de URL negada
404.6 Verbo negado
404.7 Extensão de arquivo negada
404.8 Namespace Oculto
404.11 URL com escape duplo
404.12 URL tem caracteres de bits altos
404.14 URL muito longa
404.15 Cadeia de caracteres de consulta muito longa
404.18 Sequência da Cadeia de Caracteres de Consulta Negada
404.19 Regra de Filtragem Negada
413.1 Tamanho do conteúdo muito grande
431 Cabeçalho de solicitação muito longo

Esses substatus permitem que os administradores Web analisem seus logs do IIS e identifiquem possíveis ameaças.

Compatibilidade

Versão Observações
IIS 10.0 A capacidade de suprimir o cabeçalho do servidor foi adicionada no IIS 10.0.
IIS 8.5 O elemento <requestFiltering> não foi modificado no IIS 8.5.
IIS 8.0 O elemento <requestFiltering> não foi modificado no IIS 8.0.
IIS 7.5 No IIS 7.5, a filtragem de solicitação é fornecida com o atributo unescapeQueryString e os elementos alwaysAllowedUrls, alwaysAllowedQueryStrings, denyQueryStringSequences e filteringRules. Esses elementos foram introduzidos primeiro como uma atualização para o IIS 7.0 que está disponível por meio do Artigo 957508 da Base de Dados de Conhecimento Microsoft (https://support.microsoft.com/kb/957508).
IIS 7.0 O elemento <requestFiltering> foi introduzido no IIS 7.0.
IIS 6,0 O elemento <requestFiltering> substitui os recursos UrlScan do IIS 6.0.

Instalação

A instalação padrão dos IIS 7 e versões posteriores inclui o serviço ou recurso de função Filtragem de Solicitações. Se o serviço ou recurso de função Filtragem de Solicitações for desinstalado, você poderá reinstalá-lo usando as etapas a seguir.

Windows Server 2012 R2 ou Windows Server 2012

  1. Na barra de tarefas, clique em Gerenciador do Servidor.
  2. No Gerenciador do Servidor, clique no menu Gerenciar e clique em Adicionar Funções e Recursos.
  3. No assistente Adicionar Funções e Recursos, clique em Avançar. Selecione o tipo de instalação e clique em Avançar. Selecione o servidor de destino e clique em Avançar.
  4. Na página Funções de Servidor, expanda Servidor Web (IIS), Servidor Web, expanda Segurança e selecione Filtragem de Solicitações. Clique em Avançar.
    Image of Web Server and Security pane expanded with Request filtering selected. .
  5. Na página Selecionar recursos, clique em Avançar.
  6. Na página Confirmar seleções de instalação, clique em Instalar.
  7. Na página Resultados , clique em Fechar.

Windows 8 ou Windows 8.1

  1. Na tela Iniciar, mova o ponteiro até o canto inferior esquerdo, clique com o botão direito do mouse no botão Iniciar e clique em Painel de Controle.
  2. Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar recursos do Windows.
  3. Expanda Serviços de Informações da Internet, expanda Serviços da World Wide Web, expanda Segurança e, em seguida, selecione Filtragem de Solicitações.
    Image of World Wide Web Services and Security pane expanded with Request Filtering highlighted.
  4. Clique em OK.
  5. Clique em Fechar.

Windows Server 2008 R2 ou Windows Server 2008

  1. Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador do Servidor.
  2. No painel de hierarquia do Gerenciador do Servidor, expanda Funções e clique em Servidor Web (IIS).
  3. No painel Servidor Web (IIS), role até a seção Serviços de Função e clique em Adicionar Serviços de Função.
  4. Na página Selecionar Serviços de Função do Assistente para Adicionar Serviços de Função, selecione Filtragem de Solicitações e clique em Avançar.
    Image of Select Role Services page with Security pane expanded and Request Filtering selected.
  5. Na página Confirmar Seleções de Instalação, clique em Instalar.
  6. Na página Resultados , clique em Fechar.

Windows Vista ou Windows 7

  1. Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
  2. Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar Recursos do Windows.
  3. Expanda Serviços de Informações da Internet e, em seguida, Serviços World Wide Web e, em seguida, Segurança.
  4. Selecione Filtragem de Solicitações e clique em OK.
    Screenshot of World Wide Web Services and Security node expanded and Request Filtering highlighted.

Instruções

Observação para usuários dos IIS 7.0: algumas etapas nesta seção podem exigir que você instale o Microsoft Administration Pack para IIS 7.0, que inclui uma interface do usuário para filtragem de solicitações. Para instalar o Microsoft Administration Pack para IIS 7.0, consulte a seguinte URL:


Como editar as configurações do recurso de filtragem de solicitação e os limites de solicitação

  1. Abra o Gerenciador dos Serviços de Informações da Internet (IIS):

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

      • Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows 8 ou Windows 8.1:

      • Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
      • Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
  2. No painel Conexões, acesse a conexão, o site, o aplicativo ou o diretório para o qual você deseja modificar as configurações de filtragem de solicitações.

  3. No painel Página Inicial, clique duas vezes em Filtragem de Solicitações.
    Image of Default Web Site Home pane showing Request Filtering highlighted.

  4. Clique em Editar Configurações de Recurso... no painel Ações.
    Image of Request Filtering page displaying Edit Feature Settings in the Actions pane.

  5. Especifique suas opções e clique em OK.
    Screenshot of Edit Request Filtering Settings dialog box showing Allow unlisted file name extensions selected. Por exemplo, você pode fazer as seguintes alterações:

    • Altere o comprimento máximo da URL para 2KB especificando 2048.
    • Altere o comprimento máximo da cadeia de caracteres de consulta para 1KB especificando 1024.
    • Negue acesso a verbos HTTP não listados desmarcando a caixa de seleção Permitir verbos não listados.

Como negar uma sequência de URL

  1. Abra o Gerenciador dos Serviços de Informações da Internet (IIS):

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

      • Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows 8 ou Windows 8.1:

      • Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
      • Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
  2. No painel Conexões, acesse a conexão, o site, o aplicativo ou o diretório para o qual você deseja modificar as configurações de filtragem de solicitações.

  3. No painel Página Inicial, clique duas vezes em Filtragem de Solicitações.
    Image of Default Web Site Home pane showing Request Filtering application highlighted.

  4. No painel Filtragem de Solicitações, clique na guia Negar Sequências de URL e clique em Adicionar Sequência de URL... no painel Ações.
    Screenshot of Request Filtering page with Deny U R L Sequences tab in Actions pane.

  5. Na caixa de diálogo Adicionar Sequência de Negação, insira a sequência de URL que você deseja bloquear e clique em OK.
    Image of Add Deny Sequence dialog box.
    Por exemplo, para evitar a transversalidade do diretório no servidor, insira dois pontos ("..") na caixa de diálogo.


Como negar o acesso a uma extensão de nome de arquivo específica

  1. Abra o Gerenciador dos Serviços de Informações da Internet (IIS):

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

      • Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows 8 ou Windows 8.1:

      • Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
      • Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
  2. No painel Conexões, acesse a conexão, o site, o aplicativo ou o diretório para o qual você deseja modificar as configurações de filtragem de solicitações.

  3. No painel Página Inicial, clique duas vezes em Filtragem de Solicitações.
    Screenshot of Home pane displaying Request Filtering application selected.

  4. No painel Filtragem de Solicitações, clique na guia Extensões de Nome de Arquivo e clique em Negar Extensão de Nome de Arquivo... no painel Ações.
    Image of Request Filtering application highlighted in Default Web Site Home.

  5. Na caixa de diálogo Negar Extensão de Nome de Arquivo, insira a extensão de nome de arquivo que você deseja bloquear e, em seguida, clique em OK.
    Image of Deny File Name Extension dialog box displaying file name extension typed in the respective field. Por exemplo, para impedir o acesso a arquivos com uma extensão de nome de arquivo .inc, digite "inc" na caixa de diálogo.


Como adicionar um segmento oculto

  1. Abra o Gerenciador dos Serviços de Informações da Internet (IIS):

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

      • Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows 8 ou Windows 8.1:

      • Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
      • Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
  2. No painel Conexões, acesse a conexão, o site, o aplicativo ou o diretório para o qual você deseja modificar as configurações de filtragem de solicitações.

  3. No painel Página Inicial, clique duas vezes em Filtragem de Solicitações.
    Screenshot of Home pane in Internet Information Services I I S Manager with Request Filtering highlighted.

  4. No painel Filtragem de Solicitações, clique na guia Segmentos Ocultos e clique em Adicionar Segmento Oculto... no painel Ações.
    Image of request Filtering pane displaying Hidden Segments tab with Add Hidden Segments option in the Actions pane.

  5. Na caixa de diálogo Adicionar Segmento Oculto, insira o caminho relativo que você deseja ocultar e clique em OK.
    Screenshot of Add Hidden Segment dialog box showing the relative path entered in the Hidden Segment field.


Como adicionar limites para cabeçalhos HTTP

  1. Abra o Gerenciador dos Serviços de Informações da Internet (IIS):

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

      • Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows 8 ou Windows 8.1:

      • Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
      • Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
  2. No painel Conexões, acesse a conexão, o site, o aplicativo ou o diretório para o qual você deseja modificar as configurações de filtragem de solicitações.

  3. No painel Página Inicial, clique duas vezes em Filtragem de Solicitações.
    Image of Default Web Site Home page with Actions pane and Request Filtering highlighted.

  4. No painel Filtragem de Solicitações, clique na guia Cabeçalhos e clique em Adicionar Cabeçalho... no painel Ações.
    Image of Request Filtering pane displaying Headers tab and Add Header in the Actions pane.

  5. Na caixa de diálogo Adicionar Cabeçalho, digite o cabeçalho HTTP e o tamanho máximo desejado para o limite de cabeçalho e clique em OK.
    Screenshot of Add Header dialog box with fields for H T T P Header and Size limit.

    Por exemplo, o cabeçalho “Content-type” contém o tipo MIME para uma solicitação. A especificação de um valor de 100 limitaria o tamanho de um cabeçalho “Content-type” a 100 bytes.


Como negar um verbo HTTP

  1. Abra o Gerenciador dos Serviços de Informações da Internet (IIS):

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

      • Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows 8 ou Windows 8.1:

      • Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
      • Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
  2. No painel Conexões, acesse a conexão, o site, o aplicativo ou o diretório para o qual você deseja modificar as configurações de filtragem de solicitações.

  3. No painel Página Inicial, clique duas vezes em Filtragem de Solicitações.
    Screenshot of Home pane with Request Filtering application highlighted.

  4. No painel Filtragem de Solicitações, clique na guia Verbos HTTP e clique em Negar Verbo... no painel Ações.
    Image of Request Filtering pane showing H T T P verbs tab and Deny verb option in the Actions pane.

  5. Na caixa de diálogo Negar Verbo, digite o verbo HTTP que você deseja bloquear e clique em OK.
    Image of Deny Verb dialog box with H T T P verb entered in the Verb field.

    Por exemplo, para impedir solicitações HTTP TRACE para o servidor, digite “TRACE” na caixa de diálogo.

Configuração

Atributos

Atributo Descrição
allowDoubleEscaping Atributo booliano opcional.

Se definida como true, a filtragem de solicitação permitirá URLs com caracteres de escape duplo. Se definido como false, a filtragem de solicitação negará a solicitação se caracteres que foram escapados duas vezes estiverem presentes em URLs.

O valor padrão é false.
allowHighBitCharacters Atributo booliano opcional.

Se definido como true, a filtragem de solicitação permitirá caracteres não-ASCII em URLs. Se definido como false, a filtragem de solicitação negará a solicitação se caracteres de bits altos estiverem presentes em URLs.

O valor padrão é true.
removeServerHeader Atributo booliano opcional.

Se definido como true, a filtragem de solicitação suprimirá o cabeçalho do servidor IIS. Se definido como false, o IIS retornará o cabeçalho de servidor padrão. (Observação: esse atributo foi adicionado ao IIS 10.0 e não funciona em versões do Windows anteriores ao Windows Server, versão 1709 ou Windows 10, versão 1709.)

O valor padrão é false.
unescapeQueryString Atributo booliano opcional.

Se definida como true, a filtragem de solicitação executará duas passagens em cada verificação de cadeia de caracteres de consulta. A primeira passagem verificará a cadeia de caracteres de consulta bruta e a segunda passagem verificará a cadeia de caracteres de consulta depois que o IIS tiver decodificado todas as sequências de escape. Se definida como false, a filtragem de solicitação examinará apenas a cadeia de caracteres de consulta bruta conforme enviada pelo cliente.

Observação: esse atributo foi adicionado ao IIS 7.5.

O valor padrão é true.

Elementos filho

Elemento Descrição
alwaysAllowedQueryStrings Elemento opcional.

Especifica uma coleção de cadeias de caracteres de consulta que a filtragem de solicitações sempre permitirá.

Observação: esse elemento foi adicionado ao IIS 7.5.
alwaysAllowedUrls Elemento opcional.

Especifica uma coleção de URLs que a filtragem de solicitações sempre permitirá.

Observação: esse elemento foi adicionado ao IIS 7.5.
denyQueryStringSequences Elemento opcional.

Especifica uma coleção de sequências de cadeias de caracteres de consulta que a filtragem de solicitações sempre negará.

Observação: esse elemento foi adicionado ao IIS 7.5.
denyUrlSequences Elemento opcional.

Especifica sequências que devem ser negadas para ajudar a evitar ataques baseados em URL no servidor Web.
fileExtensions Elemento opcional.

Especifica quais extensões de nome de arquivo são permitidas ou negadas para limitar os tipos de solicitações enviadas ao servidor Web.
filteringRules Elemento opcional.

Especifica uma coleção de regras de filtragem de solicitações personalizadas.

Observação: esse elemento foi adicionado ao IIS 7.5.
hiddenSegments Elemento opcional.

Especifica que determinados segmentos de URLs podem ser tornados inacessíveis aos clientes.
requestLimits Elemento opcional.

Especifica os limites de solicitações processadas pelo servidor Web.
verbs Elemento opcional.

Especifica quais verbos HTTP são permitidos ou negados para limitar os tipos de solicitações enviadas ao servidor Web.

Exemplo de configuração

O exemplo de configuração a seguir de um arquivo Web.config executa várias tarefas relacionadas à segurança:

  • Nega acesso a duas sequências de URL. A primeira sequência impede o diretório transversal e a segunda sequência impede o acesso a fluxos de dados alternativos.
  • Nega acesso a extensões de nome de arquivo não listadas e verbos HTTP não listados.
  • Define o comprimento máximo de uma URL como 2KB e o comprimento máximo de uma cadeia de caracteres de consulta como 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>

Exemplo de código

Os exemplos de código a seguir demonstram como negar acesso a três sequências de URL para o Site Padrão: transversais de diretório (“..”), fluxos de dados alternativos (“:”) e barras invertidas (“”).

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