Erweiterung <fileExtensions>

Übersicht

Das <fileExtensions> Element enthält eine Auflistung von <add> Elementen, die eindeutige Dateinamenerweiterungen angeben, die IIS abhängig davon, wie jedes <add> Element definiert ist, entweder zulassen oder verweigern wird. Mithilfe des <fileExtensions> Elements können Sie die Inhaltstypen optimieren, die ihr Server für Webclients zur Verfügung stellt.

Wenn Sie beispielsweise das Attribut allowUnlisted auf false festlegen, werden alle Anforderungen für Dateien mit Erweiterungen, die nicht in der Liste der zulässigen Erweiterungen enthalten sind, verweigert. Mithilfe des <clear> Elements können Sie die Liste der bereits definierten Erweiterungen löschen. Anschließend können Sie nur die Erweiterungen angeben, die Sie zulassen möchten.

Hinweis

Wenn die Anforderungsfilterung eine HTTP-Anforderung aufgrund einer Dateierweiterung verweigert blockiert, gibt IIS 7 einen HTTP 404-Fehler an den Client zurück und protokolliert den folgenden HTTP-Status mit einem eindeutigen Unterstatus, der den Grund identifiziert, warum die Anforderung verweigert wurde:

HTTP-Substatus Beschreibung
404.7 Dateierweiterung Verweigert

Mit diesem Unterstatus können Webadministratoren ihre IIS-Protokolle analysieren und potenzielle Bedrohungen identifizieren.

Kompatibilität

Version Hinweise
IIS 10.0 Das <fileExtensions> Element wurde in IIS 10.0 nicht geändert.
IIS 8.5 Das <fileExtensions> Element wurde in IIS 8.5 nicht geändert.
IIS 8.0 Das <fileExtensions> Element wurde in IIS 8.0 nicht geändert.
IIS 7.5 Das <fileExtensions> Element wurde in IIS 7.5 nicht geändert.
IIS 7.0 Das <fileExtensions>-Element der <requestFiltering> Auflistung wurde in IIS 7.0 eingeführt.
IIS 6.0 Das <fileExtensions>-Element ersetzt die Features IIS 6.0 UrlScan [AllowExtensions] und [DenyExtensions].

Setup

Die Standardinstallation von IIS 7 und höher umfasst den Rollendienst oder das Feature Anforderungsfilterung. Wenn der Rollendienst für die Anforderungsfilterung oder das Feature deinstalliert wird, können Sie ihn mit den folgenden Schritten erneut installieren.

Windows Server 2012 oder Windows Server 2012 R2

  1. Klicken Sie auf der Taskleiste auf Server-Manager.
  2. Klicken Sie im Server-Manager auf Verwalten und dann auf Rollen und Features hinzufügen.
  3. Klicken Sie im Assistenten zum Hinzufügen von Rollen und Features auf Weiter. Wählen Sie den Installationstyp aus, und klicken Sie auf Weiter. Wählen Sie den Zielserver aus, und klicken Sie auf Weiter.
  4. Erweitern Sie auf der Seite Serverrollen den Webserver (IIS), erweitern Sie den Webserver, erweitern Sie Sicherheit, und wählen Sie dann Anforderungsfilterung aus. Klicken Sie auf Weiter.
    Screenshot of the Request Filtering option being highlighted and selected. .
  5. Klicken Sie auf der Seite Features auswählen auf Weiter.
  6. Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren.
  7. Klicken Sie auf der Seite Ergebnisse auf Schließen.

Windows 8 oder Windows 8.1

  1. Bewegen Sie auf dem Startbildschirm den Mauszeiger ganz nach links unten, klicken Sie mit der rechten Maustaste auf die Starttaste und klicken Sie dann auf Systemsteuerung.
  2. Klicken Sie in der Systemsteuerungauf Programme und dann auf „Windows-Features aktivieren oder deaktivieren“.
  3. Erweitern Sie unter InternetinformationsdiensteWWW-Dienste, dann Sicherheit und wählen Sie dann Anforderungsfilterung aus.
    Screenshot of the Request Filtering folder being highlighted and selected.
  4. Klicken Sie auf OK.
  5. Klicken Sie auf Schließen.

Windows Server 2008 oder Windows Server 2008 R2

  1. Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltungstools, und klicken Sie dann auf Server-Manager.
  2. Erweitern Sie im Hierarchiebereich des Server-Managers die Rollen und klicken Sie dann auf den Webserver (IIS) .
  3. Scrollen Sie im Bereich Webserver (IIS) zum Abschnitt "Rollendienste ", und klicken Sie dann auf "Rollendienstehinzufügen".
  4. Wählen Sie auf der Seite Rollendienste auswählen des Assistenten Rollendienste hinzufügenVerwaltungsdienst aus, und klicken Sie dann auf Weiter.
    Screenshot of the Add Role Services Wizard
  5. Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren.
  6. Klicken Sie auf der Seite Ergebnisse auf Schließen.

Windows Vista oder Windows 7

  1. Klicken Sie auf der Taskleiste auf "Start" und dann auf "Systemsteuerung".
  2. Klicken Sie in der Systemsteuerungauf Programmeund dann auf Windows-Features aktivieren oder deaktivieren.
  3. Erweitern Sie Internetinformationsdienste, dann World Wide Web Services und dann Sicherheit.
  4. Wählen Sie Anforderungsfilterungaus, und klicken Sie dann auf OK.
    Screenshot of the Select Roles Services Wizard showing the Request Filtering folder being highlighted and selected.

Gewusst wie

Hinweis für IIS 7.0-Nutzer: Einige der Schritte in diesem Abschnitt erfordern möglicherweise, dass Sie das Microsoft Administration Pack für IIS 7.0 installieren, das eine Benutzeroberfläche für die Anforderungsfilterung enthält. Informationen zum Installieren des Microsoft Administration Pack für IIS 7.0 finden Sie unter der folgenden URL:

So verweigern Sie den Zugriff auf eine bestimmte Dateinamenerweiterung

  1. Öffnen Sie den Internet Information Services (IIS) Manager:

    • Wenn Sie Windows Server 2012 oder Windows Server 2012 R2 verwenden:

      • Klicken Sie in der Taskleiste auf Server-Managerdann auf Toolsund dann auf den Internet Information Services (IIS) Manager.
    • Wenn Sie Windows 8 oder Windows 8.1 verwenden:

      • Halten Sie die Windows-Taste gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf "Systemsteuerung".
      • Klicken Sie auf Verwaltungund doppelklicken Sie dann auf den Internet Information Services (IIS) Manager.
    • Wenn Sie Windows Server 2008 oder Windows Server 2008 R2 verwenden:

      • Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltungund dann auf den Internet Information Services (IIS) Manager.
    • Wenn Sie Windows Vista oder Windows 7 verwenden:

      • Klicken Sie auf der Taskleiste auf "Start" und dann auf "Systemsteuerung".
      • Doppelklicken Sie auf Verwaltungund doppelklicken Sie dann auf den Internet Information Services (IIS) Manager.
  2. Wechseln Sie im Bereich Verbindungen zu der Verbindung, zum Standort, zur Anwendung oder zum Verzeichnis, für die Sie die Einstellungen für die Anforderungsfilterung ändern möchten.

  3. Doppelklicken Sie im Bereich Startseite auf Anforderungsfilterung.
    Screenshot of the Default Web Site Home pane showing the Request Filtering option being highlighted.

  4. Klicken Sie im Bereich Anforderungsfilterung auf die Registerkarte Dateinamenerweiterungen, und klicken Sie dann im Bereich Aktionen auf Dateinamenerweiterung verweigern.
    Screenshot of the Request Filtering pane showing the Deny File Name Extension option.

  5. Geben Sie im Dialogfeld Dateinamenerweiterung verweigern die Dateinamenerweiterung ein, die Sie blockieren möchten, und klicken Sie dann auf OK.
    Screenshot of the Deny File Name Extension dialog box, showing the O K option. Wenn Sie beispielsweise den Zugriff auf Dateien mit der Dateinamenerweiterung .inc verhindern möchten, geben Sie „inc“ in das Dialogfeld ein.

Konfiguration

Attribute

Attribut Beschreibung
allowUnlisted Optionales boolesches Attribut.

Gibt an, ob der Webserver Dateien verarbeiten soll, die nicht aufgelistete Dateinamenerweiterungen enthalten. Wenn Sie dieses Attribut auf true festlegen, müssen Sie alle Erweiterungen auflisten, die Sie verweigern möchten. Wenn Sie dieses Attribut auf false festlegen, müssen Sie alle Erweiterungen auflisten, die Sie erlauben möchten.

Der Standardwert ist true.
applyToWebDAV Optionales boolesches Attribut.

Gibt an, ob diese Einstellungen auch für WebDAV-Anforderungen gelten sollen.

Untergeordnete Elemente

Element Beschreibung
add Optionales Element.

Fügt der Auflistung von Dateinamenerweiterungen eine Dateinamenerweiterung hinzu.
clear Optionales Element.

Entfernt alle Verweise auf Dateinamenerweiterungen aus der <fileExtensions> Auflistung.
remove Optionales Element.

Entfernt einen Verweis auf eine Dateinamenerweiterung aus der <fileExtensions> Auflistung.

Konfigurationsbeispiel

Die folgende Beispieldatei Web.config konfiguriert zwei Optionen. Sie konfiguriert die Anforderungsfilterung, um Web-Based Distributed Authoring and Versioning (WebDAV)-Zugriff auf alle Dateinamenerweiterungen zuzulassen, und IIS wird so konfiguriert, dass der Zugriff auf Dateien mit der Dateinamenerweiterung .inc verweigert wird, die manchmal als Includedateien für Anwendungen verwendet werden.

<configuration>
   <system.webServer>
      <security>
         <requestFiltering>
            <fileExtensions applyToWebDAV="false">
               <add fileExtension=".inc" allowed="false" />
            </fileExtensions>
         </requestFiltering>
      </security>
   </system.webServer>
</configuration>

Beispielcode

Die folgenden Codebeispiele fügen einen Eintrag zur Liste der Dateinamenerweiterungen für die Standardwebsite hinzu, die den Zugriff auf alle Dateien mit der Erweiterung .inc verweigert, die manchmal als Includedateien für Anwendungen verwendet werden, und sie konfigurieren die Anforderungsfilterung, um den WebDAV-Zugriff auf ausgeblendete Segmente zu ermöglichen.

Hinweis

Wenn Sie dieselben Beispiele verwenden möchten, um den Zugriff zuzulassen, legen Sie den Wert des zulässigen Attributs auf true anstelle von false in den einzelnen Beispielen fest.

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/security/requestFiltering /fileExtensions.applyToWebDAV:"False"

appcmd.exe set config "Default Web Site" -section:system.webServer/security/requestFiltering /+"fileExtensions.[fileExtension='.inc',allowed='False']"

PowerShell

Start-IISCommitDelay

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

New-IISConfigCollectionElement -ConfigCollection $fileExtensions -ConfigAttribute @{ 'fileExtension' = '.inc'; 'allowed' = $false } -AddAt 0

Set-IISConfigAttributeValue -ConfigElement $fileExtensions -AttributeName 'applyToWebDAV' -AttributeValue $false

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");

         ConfigurationElement fileExtensionsElement = requestFilteringSection.GetChildElement("fileExtensions");
         fileExtensionsElement["applyToWebDAV"] = false;
         ConfigurationElementCollection fileExtensionsCollection = fileExtensionsElement.GetCollection();

         ConfigurationElement addElement = fileExtensionsCollection.CreateElement("add");
         addElement["fileExtension"] = @"inc";
         addElement["allowed"] = false;
         fileExtensionsCollection.Add(addElement);

         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 fileExtensionsElement As ConfigurationElement = requestFilteringSection.GetChildElement("fileExtensions")
      fileExtensionsElement("applyToWebDAV") = False
      Dim fileExtensionsCollection As ConfigurationElementCollection = fileExtensionsElement.GetCollection

      Dim addElement As ConfigurationElement = fileExtensionsCollection.CreateElement("add")
      addElement("fileExtension") = "inc"
      addElement("allowed") = False
      fileExtensionsCollection.Add(addElement)

      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 fileExtensionsElement = requestFilteringSection.ChildElements.Item("fileExtensions");
fileExtensionsElement.Properties.Item("applyToWebDAV").Value = false;
var fileExtensionsCollection = fileExtensionsElement.Collection;

var addElement = fileExtensionsCollection.CreateNewElement("add");
addElement.Properties.Item("fileExtension").Value = "inc";
addElement.Properties.Item("allowed").Value = false;
fileExtensionsCollection.AddElement(addElement);

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 fileExtensionsElement = requestFilteringSection.ChildElements.Item("fileExtensions")
fileExtensionsElement.Properties.Item("applyToWebDAV").Value = False
Set fileExtensionsCollection = fileExtensionsElement.Collection

Set addElement = fileExtensionsCollection.CreateNewElement("add")
addElement.Properties.Item("fileExtension").Value = "inc"
addElement.Properties.Item("allowed").Value = False
fileExtensionsCollection.AddElement(addElement)

adminManager.CommitChanges()