Condividi tramite


Request Filtering requestFiltering <>

Panoramica

Il filtro delle richieste è una funzionalità di sicurezza predefinita introdotta in Internet Information Services (IIS) 7.0 e sostituisce gran parte delle funzionalità disponibili tramite il componente aggiuntivo UrlScan per IIS 6.0. Tutte le impostazioni per la funzionalità di filtro delle richieste si trovano all'interno dell'elemento <requestFiltering> , che contiene diversi elementi figlio per ognuna delle aree di funzionalità seguenti:

  • <denyUrlSequences> - Questo elemento può contenere una raccolta di modelli di sequenza URL che IIS 7 negherà; ad esempio: è possibile negare parti di sequenze URL che un utente malintenzionato potrebbe tentare di sfruttare.
  • <fileExtensions> - Questo elemento può contenere una raccolta di estensioni di file che IIS 7 negherà o consentirà; ad esempio: è possibile bloccare tutte le richieste di Web.config file.
  • <hiddenSegments> - Questo elemento può contenere una raccolta di URL che non possono essere esplorati; ad esempio: è possibile negare le richieste per la cartella ASP.NET App_Code.
  • <requestLimits> - Questo elemento contiene le impostazioni per le lunghezze di URL, contenuto e stringa di query. Può anche contenere una raccolta di lunghezze massime definite dall'utente per le intestazioni HTTP.
  • <verbs> - Questo elemento può contenere una raccolta di verbi HTTP che IIS 7 negherà o consentirà; ad esempio: è possibile bloccare tutte le richieste HTTP TRACE.

Novità di IIS 7.5

IIS 7.5 ha aggiunto diverse aree di funzionalità aggiuntive per il filtro delle richieste:

  • <alwaysAllowedUrls> - Questo elemento può contenere una raccolta di URL che richiedono filtri consentirà sempre.
  • <alwaysAllowedQueryStrings> -Questo elemento può contenere stringhe di query di raccolta di tale filtro richieste consentirà sempre.
  • <denyQueryStringSequences> - Questo elemento può contenere una raccolta di sequenze di stringhe di query che richiedono il filtro negherà sempre. Ciò consente agli amministratori di bloccare sequenze di stringhe di query potenzialmente pericolose rilevate.
  • <filteringRules> - Questo elemento può contenere una raccolta di regole di filtro delle richieste personalizzate. Questa raccolta consente agli amministratori di creare regole di filtro delle richieste personalizzate per criteri specifici.

Novità di IIS 10.0

IIS 10.0 ha aggiunto l'attributo removeServerHeader per eliminare l'invio dell'intestazione del server HTTP ai client remoti.

Codici di stato secondario errore HTTP 404

Quando il filtro delle richieste blocca una richiesta HTTP, IIS 7 restituisce un errore HTTP 404 al client e registra lo stato HTTP con uno stato secondario univoco che identifica il motivo per cui la richiesta è stata negata. Ad esempio:

Stato secondario HTTP Descrizione
404.5 Sequenza URL negata
404.6 Verbo negato
404.7 Estensione file negata
404.8 Spazio dei nomi nascosto
404.11 URL doppio carattere di escape
404.12 URL ha caratteri di bit elevati
404.14 URL troppo lungo
404.15 Stringa di query troppo lunga
404.18 Sequenza di stringhe di query negata
404.19 Negata dalla regola di filtro
413.1 Lunghezza contenuto troppo grande
431 Intestazione richiesta troppo lunga

Questi stati secondari consentono agli amministratori Web di analizzare i log IIS e identificare potenziali minacce.

Compatibilità

Versione Note
IIS 10.0 La possibilità di eliminare l'intestazione del server è stata aggiunta in IIS 10.0.
IIS 8,5 L'elemento <requestFiltering> non è stato modificato in IIS 8.5.
IIS 8,0 L'elemento <requestFiltering> non è stato modificato in IIS 8.0.
IIS 7,5 In IIS 7.5, il filtro delle richieste viene fornito con l'attributo unescapeQueryString e gli alwaysAllowedUrlselementi , alwaysAllowedQueryStrings, denyQueryStringSequencese filteringRules . Questi elementi sono stati introdotti per la prima volta come aggiornamento per IIS 7.0 disponibili tramite l'articolo della Microsoft Knowledge Base 957508 (https://support.microsoft.com/kb/957508).
IIS 7.0 L'elemento <requestFiltering> è stato introdotto in IIS 7.0.
IIS 6.0 L'elemento <requestFiltering> sostituisce le funzionalità UrlScan di IIS 6.0.

Installazione

L'installazione predefinita di IIS 7 e versioni successive include il servizio ruolo o la funzionalità Filtro richieste. Se la funzionalità o il servizio ruolo Filtro richieste viene disinstallata, è possibile reinstallarla seguendo questa procedura.

Windows Server 2012 o Windows Server 2012 R2

  1. Sulla barra delle applicazioni fare clic su Server Manager.
  2. In Server Manager fare clic sul menu Gestisci e quindi su Aggiungi ruoli e funzionalità.
  3. Nella procedura guidata Aggiungi ruoli e funzionalità fare clic su Avanti. Selezionare il tipo di installazione e fare clic su Avanti. Selezionare il server di destinazione e fare clic su Avanti.
  4. Nella pagina Ruoli server espandere Server Web (IIS), server Web, serverWeb, sicurezzae quindi selezionare Filtro richieste. Fare clic su Avanti.
    Immagine del riquadro Server Web e Sicurezza espansa con Filtro richieste selezionato. .
  5. Nella pagina Selezione funzionalità fare clic su Avanti.
  6. Nella pagina Conferma selezioni per l'installazione fare clic su Installa.
  7. Nella pagina Risultati fare clic su Chiudi.

Windows 8 o Windows 8.1

  1. Nella schermata Start spostare il puntatore fino all'angolo inferiore sinistro, fare clic con il pulsante destro del mouse sul pulsante Start e quindi scegliere Pannello di controllo.
  2. In Pannello di controllo fare clic su Programmi e funzionalità e quindi su Attiva o disattiva funzionalità di Windows.
  3. Espandere Internet Information Services, servizi Web a livello globale, sicurezza, quindi selezionare Filtro richieste.
    Immagine del riquadro Servizi Web e sicurezza globale espansa con filtro richieste evidenziato.
  4. Fare clic su OK.
  5. Fare clic su Close.

Windows Server 2008 o Windows Server 2008 R2

  1. Sulla barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione, quindi fare clic su Server Manager.
  2. Nel riquadro della gerarchia Server Manager espandere Ruoli, quindi fare clic su Server Web (IIS).
  3. Nel riquadro Server Web (IIS) scorrere fino alla sezione Servizi ruolo e quindi fare clic su Aggiungi servizi ruolo.
  4. Nella pagina Selezione servizi ruolo della Procedura guidata Aggiungi servizi ruolo selezionare Filtro richieste e quindi fare clic su Avanti.
    Immagine della pagina Seleziona servizi ruolo con il riquadro Sicurezza espanso e Filtro richieste selezionato.
  5. Nella pagina Conferma selezioni per l'installazione fare clic su Installa.
  6. Nella pagina Risultati fare clic su Chiudi.

Windows Vista o Windows 7

  1. Sulla barra delle applicazioni fare clic su Start e quindi su Pannello di controllo.
  2. In Pannello di controllo fare clic su Programmi e funzionalità e quindi su Attiva o disattiva funzionalità di Windows.
  3. Espandere Internet Information Services, quindi Servizi Web a livello mondiale, quindi Sicurezza.
  4. Selezionare Filtro richieste e quindi fare clic su OK.
    Screenshot del nodo Servizi Web e sicurezza espanso e Filtro richieste evidenziato.

Procedure

Nota per gli utenti di IIS 7.0: alcuni passaggi di questa sezione potrebbero richiedere l'installazione del Microsoft Administration Pack per IIS 7.0, che include un'interfaccia utente per il filtro delle richieste. Per installare Microsoft Administration Pack per IIS 7.0, vedere l'URL seguente:


Come modificare le impostazioni delle funzionalità di filtro delle richieste e i limiti delle richieste

  1. Aprire Gestione Internet Information Services (IIS):

    • Se si usa Windows Server 2012 o Windows Server 2012 R2:

      • Sulla barra delle applicazioni fare clic su Server Manager, scegliere Strumenti, quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows 8 o Windows 8.1:

      • Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
      • Fare clic su Strumenti di amministrazione, quindi fare doppio clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Server 2008 o Windows Server 2008 R2:

      • Sulla barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione, quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Vista o Windows 7:

      • Sulla barra delle applicazioni fare clic su Start e quindi su Pannello di controllo.
      • Fare doppio clic su Strumenti di amministrazione, quindi fare doppio clic su Gestione Internet Information Services (IIS).
  2. Nel riquadro Connessioni passare alla connessione, al sito, all'applicazione o alla directory per cui si desidera modificare le impostazioni di filtro delle richieste.

  3. Nel riquadro Home fare doppio clic su Filtro richieste.
    Immagine del riquadro Home del sito Web predefinito che mostra l'opzione Filtro richieste evidenziata.

  4. Fare clic su Modifica impostazioni funzionalità nel riquadro Azioni .
    Immagine della pagina Filtro richieste che visualizza Modifica impostazioni funzionalità nel riquadro Azioni.

  5. Specificare le opzioni e quindi fare clic su OK.
    Screenshot della finestra di dialogo Modifica impostazioni filtro richieste che mostra l'opzione Consenti estensioni di file non elencate selezionate. Ad esempio, è possibile apportare le modifiche seguenti:

    • Modificare la lunghezza massima dell'URL in 2 KB specificando 2048.
    • Modificare la lunghezza massima della stringa di query in 1 KB specificando 1024.
    • Negare l'accesso ai verbi HTTP non elencati deselezionando la casella di controllo Consenti verbi non elencati .

Come negare una sequenza di URL

  1. Aprire Gestione Internet Information Services (IIS):

    • Se si usa Windows Server 2012 o Windows Server 2012 R2:

      • Sulla barra delle applicazioni fare clic su Server Manager, scegliere Strumenti, quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows 8 o Windows 8.1:

      • Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
      • Fare clic su Strumenti di amministrazione, quindi fare doppio clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Server 2008 o Windows Server 2008 R2:

      • Sulla barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione, quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Vista o Windows 7:

      • Sulla barra delle applicazioni fare clic su Start e quindi su Pannello di controllo.
      • Fare doppio clic su Strumenti di amministrazione, quindi fare doppio clic su Gestione Internet Information Services (IIS).
  2. Nel riquadro Connessioni passare alla connessione, al sito, all'applicazione o alla directory per cui si desidera modificare le impostazioni di filtro delle richieste.

  3. Nel riquadro Home fare doppio clic su Filtro richieste.
    Immagine del riquadro Home del sito Web predefinito che mostra l'applicazione filtro richieste evidenziata.

  4. Nel riquadro Filtro richieste fare clic sulla scheda Sequenze URL nega e quindi su Aggiungi sequenza URL nel riquadro Azioni .
    Screenshot della pagina Filtro richieste con la scheda Nega sequenze R L nel riquadro Azioni.

  5. Nella finestra di dialogo Aggiungi sequenza di rifiuto immettere la sequenza di URL che si desidera bloccare e quindi fare clic su OK.
    Immagine della finestra di dialogo Aggiungi sequenza di rifiuto.
    Ad esempio, per impedire la transversazione della directory nel server, immettere due punti ("..") nella finestra di dialogo.


Come negare l'accesso a un'estensione di file specifica

  1. Aprire Gestione Internet Information Services (IIS):

    • Se si usa Windows Server 2012 o Windows Server 2012 R2:

      • Sulla barra delle applicazioni fare clic su Server Manager, scegliere Strumenti, quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows 8 o Windows 8.1:

      • Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
      • Fare clic su Strumenti di amministrazione, quindi fare doppio clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Server 2008 o Windows Server 2008 R2:

      • Sulla barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione, quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Vista o Windows 7:

      • Sulla barra delle applicazioni fare clic su Start e quindi su Pannello di controllo.
      • Fare doppio clic su Strumenti di amministrazione, quindi fare doppio clic su Gestione Internet Information Services (IIS).
  2. Nel riquadro Connessioni passare alla connessione, al sito, all'applicazione o alla directory per cui si desidera modificare le impostazioni di filtro delle richieste.

  3. Nel riquadro Home fare doppio clic su Filtro richieste.
    Screenshot del riquadro Home che mostra l'applicazione Filtro richieste selezionata.

  4. Nel riquadro Filtro richieste fare clic sulla scheda Estensioni nome file e quindi su Nega estensione file... nel riquadro Azioni .
    Immagine dell'applicazione filtro richieste evidenziata nella home page del sito Web predefinito.

  5. Nella finestra di dialogo Nega estensione file immettere l'estensione del nome file che si desidera bloccare e quindi fare clic su OK.
    Immagine della finestra di dialogo Nega estensione file che visualizza l'estensione del nome file digitata nel campo corrispondente. Ad esempio, per impedire l'accesso ai file con estensione .inc, immettere "inc" nella finestra di dialogo.


Come aggiungere un segmento nascosto

  1. Aprire Gestione Internet Information Services (IIS):

    • Se si usa Windows Server 2012 o Windows Server 2012 R2:

      • Sulla barra delle applicazioni fare clic su Server Manager, scegliere Strumenti, quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows 8 o Windows 8.1:

      • Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
      • Fare clic su Strumenti di amministrazione, quindi fare doppio clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Server 2008 o Windows Server 2008 R2:

      • Sulla barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione, quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Vista o Windows 7:

      • Sulla barra delle applicazioni fare clic su Start e quindi su Pannello di controllo.
      • Fare doppio clic su Strumenti di amministrazione, quindi fare doppio clic su Gestione Internet Information Services (IIS).
  2. Nel riquadro Connessioni passare alla connessione, al sito, all'applicazione o alla directory per cui si desidera modificare le impostazioni di filtro delle richieste.

  3. Nel riquadro Home fare doppio clic su Filtro richieste.
    Screenshot del riquadro Home in Internet Information Services I Manager con filtro richieste evidenziato.

  4. Nel riquadro Filtro richieste fare clic sulla scheda Segmenti nascosti e quindi su Aggiungi segmento nascosto nel riquadro Azioni .
    Immagine del riquadro Filtro richieste che visualizza la scheda Segmenti nascosti con l'opzione Aggiungi segmenti nascosti nel riquadro Azioni.

  5. Nella finestra di dialogo Aggiungi segmento nascosto immettere il percorso relativo che si desidera nascondere e quindi fare clic su OK.
    Screenshot della finestra di dialogo Aggiungi segmento nascosto che mostra il percorso relativo immesso nel campo Segmento nascosto.


Come aggiungere limiti per le intestazioni HTTP

  1. Aprire Gestione Internet Information Services (IIS):

    • Se si usa Windows Server 2012 o Windows Server 2012 R2:

      • Sulla barra delle applicazioni fare clic su Server Manager, scegliere Strumenti, quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows 8 o Windows 8.1:

      • Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
      • Fare clic su Strumenti di amministrazione, quindi fare doppio clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Server 2008 o Windows Server 2008 R2:

      • Sulla barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione, quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Vista o Windows 7:

      • Sulla barra delle applicazioni fare clic su Start e quindi su Pannello di controllo.
      • Fare doppio clic su Strumenti di amministrazione, quindi fare doppio clic su Gestione Internet Information Services (IIS).
  2. Nel riquadro Connessioni passare alla connessione, al sito, all'applicazione o alla directory per cui si desidera modificare le impostazioni di filtro delle richieste.

  3. Nel riquadro Home fare doppio clic su Filtro richieste.
    Immagine della home page del sito Web predefinito con riquadro Azioni e Filtro richieste evidenziato.

  4. Nel riquadro Filtro richieste fare clic sulla scheda Intestazioni e quindi su Aggiungi intestazione nel riquadro Azioni .
    Immagine del riquadro Filtro richieste che visualizza la scheda Intestazioni e Aggiungi intestazione nel riquadro Azioni.

  5. Nella finestra di dialogo Aggiungi intestazione immettere l'intestazione HTTP e le dimensioni massime desiderate per il limite di intestazione, quindi fare clic su OK.
    Screenshot della finestra di dialogo Aggiungi intestazione con i campi per L'intestazione E il limite di dimensioni H T P.

    Ad esempio, l'intestazione "Content-type" contiene il tipo MIME per una richiesta. Se si specifica un valore pari a 100, la lunghezza dell'intestazione "Content-type" viene limitata a 100 byte.


Come negare un verbo HTTP

  1. Aprire Gestione Internet Information Services (IIS):

    • Se si usa Windows Server 2012 o Windows Server 2012 R2:

      • Sulla barra delle applicazioni fare clic su Server Manager, scegliere Strumenti, quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows 8 o Windows 8.1:

      • Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
      • Fare clic su Strumenti di amministrazione e quindi fare doppio clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Server 2008 o Windows Server 2008 R2:

      • Nella barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione e quindi fare clic su Gestione Internet Information Services (IIS).
    • Se si usa Windows Vista o Windows 7:

      • Nella barra delle applicazioni fare clic su Start e quindi fare clic su Pannello di controllo.
      • Fare doppio clic su Strumenti di amministrazione e quindi fare doppio clic su Gestione Internet Information Services (IIS).
  2. Nel riquadro Connessioni passare alla connessione, al sito, all'applicazione o alla directory per cui si desidera modificare le impostazioni di filtro delle richieste.

  3. Nel riquadro Home fare doppio clic su Filtro richieste.
    Screenshot del riquadro Home con l'applicazione Di filtro richieste evidenziata.

  4. Nel riquadro Filtro richieste fare clic sulla scheda Verbi HTTP e quindi fare clic su Nega verbo ... nel riquadro Azioni .
    Immagine del riquadro Filtro richieste che mostra la scheda Verbi H T T P e Opzione Nega verbo nel riquadro Azioni.

  5. Nella finestra di dialogo Nega verbo immettere il verbo HTTP da bloccare e quindi fare clic su OK.
    Immagine della finestra di dialogo Nega verbo con verbo H T T P immesso nel campo Verbo.

    Ad esempio, per impedire richieste HTTP TRACE al server, immettere "TRACE" nella finestra di dialogo.

Configurazione

Attributi

Attributo Descrizione
allowDoubleEscaping Attributo booleano facoltativo.

Se impostato su true, il filtro delle richieste consentirà gli URL con caratteri di escape doubly. Se impostato su false, il filtro delle richieste nega la richiesta se i caratteri di escape sono presenti due volte negli URL.

Il valore predefinito è false.
allowHighBitCharacters Attributo booleano facoltativo.

Se impostato su true, il filtro delle richieste consentirà caratteri non ASCII negli URL. Se impostato su false, il filtro delle richieste nega la richiesta se i caratteri a bit elevato sono presenti negli URL.

Il valore predefinito è true.
removeServerHeader Attributo booleano facoltativo.

Se impostato su true, il filtro delle richieste elimina l'intestazione del server IIS. Se impostato su false, IIS restituirà l'intestazione del server predefinita. Nota: questo attributo è stato aggiunto in IIS 10.0 e non funziona nelle versioni di Windows precedenti a Windows Server, versione 1709 o Windows 10, versione 1709.

Il valore predefinito è false.
unescapeQueryString Attributo booleano facoltativo.

Se impostato su true, il filtro delle richieste eseguirà due passaggi per ogni analisi della stringa di query. Il primo passaggio analizzerà la stringa di query non elaborata e il secondo pass analizzerà la stringa di query dopo che IIS ha decodificato tutte le sequenze di escape. Se impostato su false, il filtro delle richieste esaminerà solo la stringa di query non elaborata come inviata dal client.

Nota: Questo attributo è stato aggiunto in IIS 7.5.

Il valore predefinito è true.

Elementi figlio

Elemento Descrizione
alwaysAllowedQueryStrings Elemento facoltativo.

Specifica una raccolta di stringhe di query che richiedono il filtro consentirà sempre.

Nota: Questo elemento è stato aggiunto in IIS 7.5.
alwaysAllowedUrls Elemento facoltativo.

Specifica una raccolta di URL che richiedono il filtro consentirà sempre.

Nota: Questo elemento è stato aggiunto in IIS 7.5.
denyQueryStringSequences Elemento facoltativo.

Specifica una raccolta di sequenze di stringhe di query che richiedono il filtro nega sempre.

Nota: Questo elemento è stato aggiunto in IIS 7.5.
denyUrlSequences Elemento facoltativo.

Specifica le sequenze che devono essere negate per impedire attacchi basati su URL nel server Web.
fileExtensions Elemento facoltativo.

Specifica quali estensioni di file sono consentite o negate per limitare i tipi di richieste inviate al server Web.
filteringRules Elemento facoltativo.

Specifica una raccolta di regole di filtro delle richieste personalizzate.

Nota: Questo elemento è stato aggiunto in IIS 7.5.
hiddenSegments Elemento facoltativo.

Specifica che alcuni segmenti di URL possono essere resi inaccessibili ai client.
requestLimits Elemento facoltativo.

Specifica i limiti delle richieste elaborate dal server Web.
verbs Elemento facoltativo.

Specifica quali verbi HTTP sono consentiti o negati per limitare i tipi di richieste inviate al server Web.

Esempio di configurazione

L'esempio di configurazione seguente da un file di Web.config esegue diverse attività correlate alla sicurezza:

  • Nega l'accesso a due sequenze DI URL. La prima sequenza impedisce la transversa della directory e la seconda sequenza impedisce l'accesso ai flussi di dati alternativi.
  • Nega l'accesso alle estensioni di file non elencate e ai verbi HTTP non elencati.
  • Imposta la lunghezza massima per un URL su 2 KB e la lunghezza massima per una stringa di query su 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>

Codice di esempio

Gli esempi di codice seguenti illustrano come negare l'accesso a tre sequenze DI URL per il sito Web predefinito: flussi di dati alternativi (".."), flussi di dati alternativi (":"), e barre rovesciata ("").

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