Anforderungsfilterung <requestFiltering>

Übersicht

Die Anforderungsfilterung ist ein integriertes Sicherheitsfeature, das in Internetinformationsdienste (IIS) 7.0 eingeführt wurde, und ersetzt einen Großteil der Funktionen, die über das UrlScan-Add-On für IIS 6.0 verfügbar waren. Alle Einstellungen für das Feature „Anforderungsfilterung“ befinden sich innerhalb des <requestFiltering>-Elements, das mehrere untergeordnete Elemente für jeden der folgenden Featurebereiche enthält:

  • <denyUrlSequences>: Dieses Element kann eine Sammlung von URL-Sequenzmustern enthalten, die von IIS 7 verweigert werden. Sie können beispielsweise Teile von URL-Sequenzen verweigern, die von einem Angreifer ausgenutzt werden könnten.
  • <fileExtensions>: Dieses Element kann eine Sammlung von Dateiendungen enthalten, die von IIS 7 verweigert oder zugelassen werden. Sie können beispielsweise alle Anforderungen für Web.config-Dateien blockieren.
  • <hiddenSegments>: Dieses Element kann eine Sammlung von URLs enthalten, die nicht durchsucht werden können. Sie können beispielsweise Anforderungen für den ASP.NET-Ordner „App_Code“ verweigern.
  • <requestLimits>: Dieses Element enthält die Einstellungen für URL-, Inhalts- und Abfragelängen. Kann auch eine Sammlung von benutzerdefinierten maximalen Längen für HTTP-Header enthalten.
  • <verbs>: Dieses Element kann eine Sammlung von HTTP-Verben enthalten, die IIS 7 entweder verweigern oder zulassen; Beispiel: Sie können alle HTTP TRACE-Anforderungen blockieren.

Neu in IIS 7.5

IIS 7.5 hat mehrere zusätzliche Featurebereiche für die Anforderungsfilterung hinzugefügt:

  • <alwaysAllowedUrls>: Dieses Element kann eine Sammlung von URLs enthalten, die die Anforderungsfilterung immer zulassen.
  • <alwaysAllowedQueryStrings>: Dieses Element kann eine Sammlungsabfragezeichenfolgen dieser Anforderungsfilterung enthalten, ist immer zulässig.
  • <denyQueryStringSequences>: Dieses Element kann eine Sammlung von Abfragezeichenfolgensequenzen enthalten, die die Anforderungsfilterung immer verweigern. Auf diese Weise können Administratoren potenziell gefährliche Abfragezeichenfolgensequenzen blockieren, die sie erkennen.
  • <filteringRules>: Dieses Element kann eine Sammlung von benutzerdefinierten Anforderungsfilterregeln enthalten. Mit dieser Sammlung können Administratoren angepasste Anforderungsfilterregeln für bestimmte Kriterien erstellen.

Neu in IIS 10.0

IIS 10.0 hat das Attribut hinzugefügt, um das removeServerHeader Senden des HTTP-Serverheaders an Remoteclients zu unterdrücken.

HTTP 404-Fehlerunterstatuscodes

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

HTTP-Substatus Beschreibung
404.5 Abgelehnte URL-Sequenz
404.6 Abgelehntes Verb
404.7 Dateierweiterung Verweigert
404.8 Ausgeblendeter Namespace
404.11 URL Double Escaped
404.12 URL hat höchstwertige Bitzeichen
404.14 URL zu lang
404.15 Abfragezeichenfolge zu lang
404.18 Abfragezeichenfolgensequenz verweigert
404.19 Abgelehnt durch Filterregel
413.1 Inhaltslänge zu groß
431 Anforderungsheader zu lang

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

Kompatibilität

Version Hinweise
IIS 10.0 Die Möglichkeit zum Unterdrücken des Serverheaders wurde in IIS 10.0 hinzugefügt.
IIS 8.5 Das <requestFiltering> Element wurde in IIS 8.5 nicht geändert.
IIS 8.0 Das <requestFiltering> Element wurde in IIS 8.0 nicht geändert.
IIS 7.5 In IIS 7.5 wird die Anforderungsfilterung mit dem Attribut unescapeQueryString und den Elementen alwaysAllowedUrls, alwaysAllowedQueryStrings, denyQueryStringSequences und filteringRules ausgeliefert. Diese Elemente wurden zunächst als Update für IIS 7.0 eingeführt, das über den Microsoft Knowledge Base-Artikel 957508 (https://support.microsoft.com/kb/957508) verfügbar ist.
IIS 7.0 Das <requestFiltering>-Element wurde in IIS 7.0 eingeführt.
IIS 6.0 Das <requestFiltering>-Element ersetzt die IIS 6.0 UrlScan-Features.

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.
    Image of Web Server and Security pane expanded with Request filtering 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 InternetinformationsdiensteWorld Wide Web Services, dann Sicherheit und wählen Sie dann Anforderungsfilterung aus.
    Image of World Wide Web Services and Security pane expanded with Request Filtering highlighted.
  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 Rollenund klicken Sie dann auf den Webserver (IIS) .
  3. Scrollen Sie im Bereich Webserver (IIS) zum Abschnitt Rollendienste, und klicken Sie dann auf Rollendienste hinzufügen.
  4. Wählen Sie auf der Seite Rollendienste auswählen des Assistenten Rollendienste hinzufügenAnforderungsfilterung aus, und klicken Sie dann auf Weiter.
    Image of Select Role Services page with Security pane expanded and Request Filtering selected.
  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 Programme und Funktionenund dann auf Windows-Features aktivieren oder deaktivieren.
  3. Erweitern Sie Internetinformationsdienste, dann World Wide Web Servicesund dann Sicherheit.
  4. Wählen Sie Anforderungsfilterungaus, und klicken Sie dann auf OK.
    Screenshot of World Wide Web Services and Security node expanded and Request Filtering highlighted.

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:


Bearbeiten der Featureeinstellungen und Anforderungsgrenzwerte für die Anforderungsfilterung

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

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

      • Klicken Sie der 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.
    Image of Default Web Site Home pane showing Request Filtering highlighted.

  4. Klicken Sie im Bereich Aktionen auf Featureeinstellungen bearbeiten....
    Image of Request Filtering page displaying Edit Feature Settings in the Actions pane.

  5. Geben Sie Ihre Optionen an, und klicken Sie dann auf OK.
    Screenshot of Edit Request Filtering Settings dialog box showing Allow unlisted file name extensions selected. Sie können beispielsweise die folgenden Änderungen vornehmen:

    • Ändern Sie die maximale URL-Länge in 2 KB, indem Sie 2.048 angeben.
    • Ändern Sie die maximale Länge der Abfragezeichenfolge auf 1 KB, indem Sie 1024 angeben.
    • Verweigern des Zugriffs auf nicht aufgelistete HTTP-Verben durch Deaktivieren des Kontrollkästchens Nicht aufgelistete Verben zulassen.

So verweigern Sie eine URL-Sequenz

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

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

      • Klicken Sie der 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.
    Image of Default Web Site Home pane showing Request Filtering application highlighted.

  4. Klicken Sie im Bereich Anforderungsfilterung auf die Registerkarte URL-Sequenz verweigern, und klicken Sie dann im Bereich Aktionen auf URL-Sequenz hinzufügen....
    Screenshot of Request Filtering page with Deny U R L Sequences tab in Actions pane.

  5. Geben Sie im Dialogfeld Verweigerungssequenz hinzufügen die URL-Sequenz ein, die Sie blockieren möchten, und klicken Sie dann auf OK.
    Image of Add Deny Sequence dialog box.
    Um beispielsweise das Transversal des Verzeichnisses auf Ihrem Server zu verhindern, geben Sie im Dialogfeld zwei Punkte („..“) ein.


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 der 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 Home pane displaying Request Filtering application selected.

  4. Klicken Sie im Bereich Anforderungsfilterung auf die Registerkarte Dateinamenerweiterungen, und klicken Sie dann im Bereich Aktionen auf Dateinamenerweiterung verweigern.
    Image of Request Filtering application highlighted in Default Web Site Home.

  5. Geben Sie im Dialogfeld Dateinamenerweiterung verweigern die Dateinamenerweiterung ein, die Sie blockieren möchten, und klicken Sie dann auf OK.
    Image of Deny File Name Extension dialog box displaying file name extension typed in the respective field. Wenn Sie beispielsweise den Zugriff auf Dateien mit der Dateinamenerweiterung .inc verhindern möchten, geben Sie „inc“ in das Dialogfeld ein.


So fügen Sie ein ausgeblendetes Segment hinzu

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

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

      • Klicken Sie der 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 Home pane in Internet Information Services I I S Manager with Request Filtering highlighted.

  4. Klicken Sie im Bereich Anforderungsfilterung auf die Registerkarte Ausgeblendete Segmente und dann im Bereich Aktionen auf Ausgeblendetes Segment hinzufügen.
    Image of request Filtering pane displaying Hidden Segments tab with Add Hidden Segments option in the Actions pane.

  5. Geben Sie im Dialogfeld Ausgeblendetes Segment hinzufügen den relativen Pfad ein, den Sie ausblenden möchten, und klicken Sie dann auf OK.
    Screenshot of Add Hidden Segment dialog box showing the relative path entered in the Hidden Segment field.


Hinzufügen von Grenzwerten für HTTP-Header

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

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

      • Klicken Sie der 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.
    Image of Default Web Site Home page with Actions pane and Request Filtering highlighted.

  4. Klicken Sie im Bereich Anforderungsfilterung auf die Registerkarte Kopfzeilen und dann im Bereich Aktionen auf Kopfzeile hinzufügen.
    Image of Request Filtering pane displaying Headers tab and Add Header in the Actions pane.

  5. Geben Sie im Dialogfeld Kopfzeile hinzufügen den HTTP-Header und die maximale Größe für die Kopfzeile ein, und klicken Sie dann auf OK.
    Screenshot of Add Header dialog box with fields for H T T P Header and Size limit.

    Der Header „Content-type“ enthält z. B. den MIME-Typ für eine Anforderung. Wenn Sie einen Wert von 100 angeben, wird die Länge des Headers „Content-type“ auf 100 Bytes begrenzt.


So verweigern Sie ein HTTP-Verb

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

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

      • Klicken Sie der 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 Home pane with Request Filtering application highlighted.

  4. Klicken Sie im Bereich Anforderungsfilterung auf die Registerkarte HTTP-Verben, und dann im Bereich Aktionen auf Verb verweigern....
    Image of Request Filtering pane showing H T T P verbs tab and Deny verb option in the Actions pane.

  5. Geben Sie im Dialogfeld Verb verweigern das HTTP-Verb ein, das Sie blockieren möchten, und klicken Sie dann auf OK.
    Image of Deny Verb dialog box with H T T P verb entered in the Verb field.

    Um beispielsweise HTTP TRACE-Anforderungen an Ihren Server zu verhindern, geben Sie im Dialogfeld „TRACE“ ein.

Konfiguration

Attribute

Attribut Beschreibung
allowDoubleEscaping Optionales boolesches Attribut.

Wenn dieser Wert auf wahrfestgelegt ist, lässt die Anforderungsfilterung URLs mit doppelten Escapezeichen zu. Wenn dieser Wert auf falsch festgelegt ist, verweigert die Anforderungsfilterung die Anforderung, wenn Zeichen, die zweimal mit Escapezeichen versehen wurden, in URLs vorhanden sind.

Der Standardwert ist false.
allowHighBitCharacters Optionales boolesches Attribut.

Wenn dieser Wert auf wahr festgelegt ist, lässt die Anforderungsfilterung Nicht-ASCII-Zeichen in URLs zu. Wenn dieser Wert auf falschfestgelegt ist, verweigert die Anforderungsfilterung die Anforderung, wenn hochbitige Zeichen in URLs vorhanden sind.

Der Standardwert ist true.
removeServerHeader Optionales boolesches Attribut.

Wenn dieser Wert auf wahr festgelegt ist, unterdrückt die Anforderungsfilterung den IIS-Serverheader. Wenn dieser Wert auf falsch festgelegt ist, gibt IIS den Standardserverheader zurück. (Hinweis: Dieses Attribut wurde in IIS 10.0 hinzugefügt und funktioniert nicht in Versionen von Windows vor Windows Server, Version 1709 oder Windows 10, Version 1709.)

Der Standardwert ist false.
unescapeQueryString Optionales boolesches Attribut.

Wenn dieser Wert auf wahr festgelegt ist, führt die Anforderungsfilterung zwei Durchläufe für jeden Abfragezeichenfolgenscan durch. Der erste Durchlauf scannt die unformatierte Abfragezeichenfolge, und der zweite Durchlauf scannt die Abfragezeichenfolge, nachdem IIS alle Escapesequenzen decodiert hat. Wenn dieser Wert auf falsch festgelegt ist, wird die Anforderungsfilterung nur die unformatierte Abfragezeichenfolge betrachten, wie vom Client gesendet.

Hinweis: Dieses Attribut wurde in IIS 7.5 hinzugefügt.

Der Standardwert ist true.

Untergeordnete Elemente

Element Beschreibung
alwaysAllowedQueryStrings Optionales Element.

Gibt eine Auflistung von Abfragezeichenfolgen an, die die Anforderungsfilterung immer zulassen.

Hinweis: Dieses Element wurde in IIS 7.5 hinzugefügt.
alwaysAllowedUrls Optionales Element.

Gibt eine Auflistung von URLs an, die die Anforderungsfilterung immer zulassen.

Hinweis: Dieses Element wurde in IIS 7.5 hinzugefügt.
denyQueryStringSequences Optionales Element.

Gibt eine Auflistung von Abfragezeichenfolgensequenzen an, die die Anforderungsfilterung immer verweigern.

Hinweis: Dieses Element wurde in IIS 7.5 hinzugefügt.
denyUrlSequences Optionales Element.

Gibt Sequenzen an, die verweigert werden sollen, um URL-basierte Angriffe auf den Web-Server zu verhindern.
fileExtensions Optionales Element.

Gibt an, welche Dateiendungen zulässig sind oder verweigert werden, um die an den Web-Server gesendeten Anforderungstypen zu beschränken.
filteringRules Optionales Element.

Gibt eine Auflistung von benutzerdefinierten Anforderungsfilterregeln an.

Hinweis: Dieses Element wurde in IIS 7.5 hinzugefügt.
hiddenSegments Optionales Element.

Gibt an, dass Clients der Zugriff auf bestimmte Segmente von URLs verweigert werden kann.
requestLimits Optionales Element.

Gibt Grenzwerte für vom Web-Server verarbeitete Anforderungen an.
verbs Optionales Element.

Gibt an, welche HTTP-Verben zulässig oder verweigert werden, um Typen von Anforderungen einzuschränken, die an den Webserver gesendet werden.

Konfigurationsbeispiel

Im folgenden Konfigurationsbeispiel aus einer Web.config-Datei werden mehrere sicherheitsbezogene Aufgaben ausgeführt:

  • Verweigert den Zugriff auf zwei URL-Sequenzen. Die erste Sequenz verhindert das Transversal des Verzeichnisses, und die zweite Sequenz verhindert den Zugriff auf alternative Datenströme.
  • Verweigert den Zugriff auf nicht aufgelistete Dateinamenerweiterungen und nicht aufgelistete HTTP-Verben.
  • Legt die maximale Länge für eine URL auf 2 KB und die maximale Länge für eine Abfragezeichenfolge auf 1 KB fest.
<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>

Beispielcode

Die folgenden Codebeispiele veranschaulichen, wie Der Zugriff auf drei URL-Sequenzen für die Standardwebsite verweigert wird: Verzeichnistransversale („..“), alternative Datenströme („:“) und umgekehrte Schrägstriche („“).

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