Condividi tramite


Come configurare WebDAV con il filtro delle richieste

di Robert McMurray

Introduzione

Microsoft ha rilasciato un nuovo modulo di estensione WebDAV completamente riscritto per Internet Information Services 7.0 (IIS 7.0) in Windows Server® 2008. Questo nuovo modulo di estensione WebDAV ha incorporato molte nuove funzionalità che consentono agli autori Web di pubblicare contenuto meglio di prima e offre agli amministratori Web più opzioni di sicurezza e configurazione. Microsoft ha rilasciato un aggiornamento del modulo di estensione WebDAV per Windows Server® 2008 che fornisce il supporto di blocchi condivisi ed esclusivi per evitare la perdita di aggiornamenti a causa di sovrascrizioni.

IIS 7.0 offre diverse nuove funzionalità di sicurezza, tra cui il nuovo filtro richieste iis 7.0. Per gli utenti IIS che hanno familiarità con UrlScan rispetto alle versioni precedenti di IIS, la funzionalità filtro richieste in IIS 7.0 è simile alla presenza di URLScan predefinita.

Il nuovo modulo WebDAV e il filtro delle richieste sono stati progettati per collaborare e questo documento illustra come configurare le impostazioni di filtro richieste correlate a WebDAV insieme alle impostazioni WebDAV per configurare un ambiente di pubblicazione sicuro. Si noti che se si usa l'interfaccia utente di Gestione IIS per configurare WebDAV, le impostazioni di filtro delle richieste vengono aggiornate automaticamente e non è necessario seguire la procedura descritta in questo articolo.

Prerequisiti

Per completare le procedure descritte in questo articolo sono necessari gli elementi seguenti:

  • IIS 7.0 deve essere installato nel server e deve essere configurato quanto segue:

    • Il sito Web predefinito creato dall'installazione di IIS 7.0 deve ancora esistere.
    • È necessario installare la funzionalità filtro richieste.
  • È necessario installare il nuovo modulo di estensione WebDAV. Per informazioni sull'installazione del nuovo modulo WebDAV, vedere il documento seguente:

  • La conoscenza di come usare AppCmd è utile. Per altre informazioni sull'uso del filtro delle richieste, vedere il documento seguente:

Nota

È necessario assicurarsi di seguire la procedura descritta in questo documento usando le autorizzazioni amministrative complete. Questa operazione viene eseguita al meglio usando uno dei due metodi seguenti:

  • Accedere al computer usando l'account "amministratore" locale.
  • Se si è connessi usando un account con autorizzazioni amministrative che non sono l'account "amministratore" locale, aprire Gestione IIS e tutte le sessioni del prompt dei comandi usando l'opzione "Esegui come Amministrazione istrator".

La condizione precedente è necessaria perché il componente di sicurezza Controllo account utente in Windows Server 2008 impedirà l'accesso amministrativo alle impostazioni di configurazione di IIS 7.0. Per altre informazioni sull'interfaccia utente, vedere la documentazione seguente:

Concetti di filtro delle richieste di base

Il filtro delle richieste in IIS 7.0 consiste nel filtrare le richieste in base ai parametri seguenti:

  • Estensioni di file
  • Segmenti nascosti
  • Verbi HTTP
  • Limiti di richiesta.
  • Sequenze URL

Tutte queste funzionalità di filtro delle richieste possono influire sul contenuto caricato o scaricato tramite WebDAV, ma alcune funzionalità possono essere configurate per funzionare in collaborazione con WebDAV.

L'elenco seguente descrive quali funzionalità possono essere configurate per l'uso con WebDAV:

  • Le funzionalità seguenti influiscono sempre sulle richieste WebDAV:

    • Limiti di richiesta.
    • Sequenze URL
  • Le funzionalità seguenti influiscono sulle richieste WebDAV per impostazione predefinita, ma possono essere configurate per ignorare le richieste WebDAV:

    • Estensioni di file
    • Segmenti nascosti
    • Verbi HTTP

Ad esempio, è possibile configurare il server per consentire richieste non WebDAV per i file ".htm" e ".php" bloccando l'accesso ai file ".mdb" e ".config", consentendo comunque alle richieste WebDAV di accedere al contenuto bloccato.

Nota

Le richieste WebDAV richiedono l'autenticazione.

È possibile modificare le impostazioni di filtro delle richieste usando uno dei metodi seguenti:

  • Uso dell'interfaccia utente fornita come parte di Amministrazione istration Pack per IIS 7.0
  • Uso di AppCmd da una riga di comando
  • Modifica del file applicationHost.config
  • Uso di Microsoft.Web. Amministrazione istration da un'applicazione .NET o Da Windows PowerShell

Le informazioni rimanenti in questa procedura dettagliata illustrano come usare AppCmd da una riga di comando, mostrando anche le impostazioni di configurazione risultanti nel file applicationHost.config.

Nota

Questo documento non illustra tutte le funzionalità che possono essere configurate tramite il filtro delle richieste. Per informazioni sulla configurazione di opzioni di filtro delle richieste aggiuntive, vedere l'argomento seguente:

Configurazione del filtro delle richieste e webDAV

Filtro delle estensioni di file

Alcune estensioni di file come ".config" e ".asax" sono protette dall'insieme di file di filtro richieste predefinitoExtensions . È possibile aggiungere voci aggiuntive all'elenco di estensioni di file per consentire o bloccarle per le richieste HTTP ed è possibile controllare se questo elenco si applica alle richieste WebDAV. In questo esempio si userà il blocco appcmd per l'accesso ai file ".txt", anche se normalmente accessibili e si specifica che le richieste WebDAV potranno accedere a tutte le estensioni di file bloccate.

  1. Aprire un prompt dei comandi con privilegi amministrativi completi e passare alla cartella InetSrv:

    cd "%WinDir%\System32\InetSrv"
    
  2. Usare la sintassi seguente per visualizzare le regole di filtro delle richieste esistenti:

    AppCmd list config "Default Web Site/" /section:system.webServer/security/requestFiltering
    
  3. Bloccare l'accesso ai file ".txt" aggiungendo un'estensione di file specifica all'insieme fileExtensions e specificando false per l'attributo consentito usando la sintassi seguente:

    AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /+fileExtensions.[fileExtension='.txt',allowed='false'] /commit:apphost
    
  4. Consentire a WebDAV di accedere a tutti i tipi di file bloccati impostando l'attributo applyToWebDAV per l'insieme fileExtensions su false usando la sintassi seguente:

    AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /fileExtensions.applyToWebDAV:false /commit:apphost
    

Dopo aver completato i passaggi precedenti, il codice risultante nella sezione fileExtensions del file applicationHost.config dovrebbe essere simile all'esempio seguente:

<requestFiltering>
   <fileExtensions applyToWebDAV="false">
      <add fileExtension=".txt" allowed="false" />
   </fileExtensions>
</requestFiltering>

Note:

  • È possibile usare i passaggi precedenti per bloccare l'accesso ad estensioni di file aggiuntive aggiungendole all'insieme fileExtensions oppure è possibile modificare la sintassi per consentire file specifici specificando true per l'attributo consentito .

  • È possibile bloccare tutte le estensioni di file sconosciute impostando l'attributo allowUnlisted per l'insieme fileExtensions su false usando la sintassi seguente:

    AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /fileExtensions.allowUnlisted:false /commit:apphost
    

    Nota

    L'impostazione di questa opzione richiede l'aggiunta specifica di ogni estensione di file prima di poter accedere alle richieste non WebDAV.

  • È possibile usare i passaggi precedenti per bloccare l'accesso per le richieste WebDAV specificando true per l'attributo applyToWebDAV .

Filtro dei segmenti nascosti

Alcuni segmenti di file come "web.config" e "App_code" sono nascosti dalla raccolta predefinita di filtri delle richieste hiddenSegments . È possibile aggiungere altre voci all'elenco dei segmenti di file per nasconderle per le richieste HTTP ed è possibile controllare se questo elenco si applica alle richieste WebDAV. In questo esempio si userà AppCmd per nascondere il segmento "include" dalle richieste HTTP, anche se normalmente sarebbe visibile e si specifica che le richieste WebDAV saranno in grado di accedere a tutti i segmenti di file nascosti.

  1. Aprire un prompt dei comandi con privilegi amministrativi completi e passare alla cartella InetSrv:

    cd "%WinDir%\System32\InetSrv"
    
  2. Bloccare l'accesso al segmento "include" aggiungendo una voce specifica all'insieme hiddenSegments usando la sintassi seguente:

    AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /+hiddenSegments.[segment='include'] /commit:apphost
    
  3. Consentire a WebDAV di accedere a tutti i tipi di file bloccati impostando l'attributo applyToWebDAV per l'insieme hiddenSegments su false usando la sintassi seguente:

    AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /hiddenSegments.applyToWebDAV:false /commit:apphost
    

Dopo aver completato i passaggi precedenti, il codice risultante nella sezione hiddenSegments del file applicationHost.config dovrebbe essere simile all'esempio seguente:

<requestFiltering>
   <hiddenSegments applyToWebDAV="false">
      <add segment="include" />
   </hiddenSegments>
</requestFiltering>

Note:

  • È possibile usare i passaggi precedenti per nascondere segmenti di file aggiuntivi aggiungendoli all'insieme hiddenSegments .
  • È possibile usare i passaggi precedenti per bloccare l'accesso per le richieste WebDAV specificando true per l'attributo applyToWebDAV .

Filtro dei verbi HTTP

La raccolta di verbi di filtro delle richieste predefinita consente tutti i verbi HTTP non elencati, anche se alcuni verbi potrebbero non essere mappati a gestori HTTP specifici. È possibile specificare quali verbi HTTP devono essere consentiti o bloccati aggiungendo voci a questo elenco ed è possibile controllare se questo elenco si applica alle richieste WebDAV. In questo esempio si userà AppCmd per bloccare il verbo "DELETE" e "PUT" dalle richieste HTTP e si specificherà che le richieste WebDAV saranno in grado di usare questi verbi.

  1. Aprire un prompt dei comandi con privilegi amministrativi completi e passare alla cartella InetSrv:

    cd "%WinDir%\System32\InetSrv"
    
  2. Bloccare l'accesso al verbo "DELETE" aggiungendo una voce specifica all'insieme verbi e specificando false per l'attributo consentito usando la sintassi seguente:

    AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /+verbs.[verb='DELETE',allowed='false'] /commit:appHost
    
  3. Bloccare l'accesso al verbo "PUT" aggiungendo un'altra voce specifica all'insieme verbi e specificando false per l'attributo consentito usando la sintassi seguente:

    AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /+verbs.[verb='PUT',allowed='false'] /commit:appHost
    
  4. Consentire a WebDAV di accedere a tutti i verbi HTTP impostando l'attributo applyToWebDAV per l'insieme verbi su false usando la sintassi seguente:

    AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /verbs.applyToWebDAV:false /commit:appHost
    

Dopo aver completato i passaggi precedenti, il codice risultante nella sezione verbi del file applicationHost.config dovrebbe essere simile all'esempio seguente:

<requestFiltering>
   <verbs applyToWebDAV="false">
      <add verb="DELETE" allowed="false" />
      <add verb="PUT" allowed="false" />
   </verbs>
</requestFiltering>

Note:

  • È possibile usare i passaggi precedenti per bloccare verbi HTTP aggiuntivi aggiungendoli all'insieme verbi oppure è possibile modificare la sintassi per consentire verbi specifici specificando true per l'attributo consentito .

  • È possibile bloccare tutti i verbi HTTP sconosciuti impostando l'attributo allowUnlisted per l'insieme verbi su false usando la sintassi seguente:

    AppCmd set config "Default Web Site/" /section:system.webServer/security/requestFiltering /verbs.allowUnlisted:false /commit:appHost
    

    Nota

    L'impostazione di questa opzione richiede l'aggiunta specifica di ogni verbo HTTP prima che sia possibile accedervi da richieste non WebDAV.

  • È possibile usare i passaggi precedenti per bloccare l'accesso per le richieste WebDAV specificando true per l'attributo applyToWebDAV .

Riepilogo

Questo documento ha illustrato i concetti seguenti:

Ulteriori informazioni

Per altre informazioni sull'uso di WebDAV, vedere gli articoli seguenti: