Freigeben über


FTP-Anforderungsfilterung: <requestFiltering>-Element

Die FTP-Anforderungsfilterung ist ein integriertes Sicherheitsfeature, das in FTP 7 eingeführt wurde und in etwa der Funktionalität entspricht, die über die verfügbaren Funktionen zur Anforderungsfilterung für HTTP-Sites bereitgestellt wurde. 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 Dateien mit den Dateiendungen *.EXE oder *.COM 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 Befehlslängen.

Ein erheblicher Unterschied zwischen der FTP-Anforderungsfilterung und der HTTP-Anforderungsfilterung besteht darin, dass die HTTP-Anforderungsfilterung ein zusätzliches <verbs>-Element umfasst, das eine Sammlung von HTTP-Verben enthalten kann, die von IIS verweigert oder zugelassen werden. FTP bietet dieselbe Art von Filterung über das <commandFiltering>-Element, das auf Siteebene konfiguriert wird.

Hinweis

Wenn die Anforderungsfilterung eine FTP-Anforderung blockiert, weil diese die Regeln der Anforderungsfilterung verletzt, gibt FTP 7 einen FTP-Fehler an den Client zurück und protokolliert einen der folgenden FTP-Unterstatus, der den Grund für die Verweigerung der Anforderung angibt:

FTP-Unterstatus Beschreibung
8 Basierend auf den Anforderungsfilterungsregeln wurde ein ausgeblendetes Segment im Pfad erkannt.
9 Basierend auf den Anforderungsfilterungsregeln wurde eine verweigerte URL-Sequenz im Pfad erkannt.
10 Basierend auf den Anforderungsfilterungsregeln wurden höchstwertige Bitzeichen im Pfad erkannt.
11 Die Dateiendung wurde basierend auf den Anforderungsfilterungsregeln verweigert.
12 Der Pfad ist basierend auf den Anforderungsfilterungsregeln zu lang.
51 Der Zugriff wurde aufgrund der Befehlsfilterungsregeln verweigert.

Eine Benachrichtigung über die Bedingungen, die durch diese Unterstatus angezeigt werden, ermöglicht es Webadministratoren, ihre IIS-Protokolle zu analysieren und potenzielle Bedrohungen zu identifizieren.

Kompatibilität

Version Hinweise
IIS 10.0 Das <requestFiltering>-Element wurde in IIS 10.0 nicht geändert.
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 Das <requestFiltering>-Element des <system.ftpServer/security>-Elements wird als Feature von IIS 7.5 bereitgestellt.
IIS 7.0 Das <requestFiltering>-Element des <system.ftpServer/security>-Elements wurde in FTP 7.0 als separater Download für IIS 7.0 eingeführt.
IIS 6.0 Der FTP-Dienst in IIS 6.0 hat die Anforderungsfilterung nicht unterstützt.

Hinweis

Die Dienste FTP 7.0 und FTP 7.5 waren nicht im Lieferumfang von IIS 7.0 enthalten, daher mussten die Module von der folgenden URL heruntergeladen und installiert werden:

https://www.iis.net/downloads/microsoft/ftp

Bei Windows 7 und Windows Server 2008 R2 wird der FTP 7.5-Dienst als Feature für IIS 7.5 bereitgestellt, sodass das Herunterladen des FTP-Diensts nicht mehr erforderlich ist.

Setup

Um die FTP-Veröffentlichung für Ihren Webserver zu unterstützen, müssen Sie den FTP-Dienst installieren. Führen Sie dazu die folgenden Schritte aus:

Windows Server 2012 oder Windows Server 2012 R2

  1. Klicken Sie auf der Taskleiste auf Server-Manager.

  2. Klicken Sie im Server-Manager auf das Menü 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 Eintrag Webserver (IIS), und wählen Sie dann FTP-Server aus.

    Hinweis

    Um die Authentifizierung mittels ASP.NET-Mitgliedschaft oder IIS-Manager für den FTP-Dienst zu unterstützen, müssen Sie zusätzlich zu FTP-Dienst die Option FTP-Erweiterbarkeit auswählen.

    Screenshot of the Server Roles page. F T P server is selected and expanded. F T P Extensibility is highlighted and selected.

  5. Klicken Sie auf Weiter, und wählen Sie dann auf der Seite Features auswählen erneut Weiter aus.

  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. Klicken Sie auf dem Startbildschirm in der unteren linken Ecke mit der rechten Maustaste auf die Schaltfläche Start, und wählen Sie dann Systemsteuerung aus.

  2. Klicken Sie in der Systemsteuerung auf Programme und Features und dann auf Windows-Features aktivieren oder deaktivieren.

  3. Erweitern Sie Internetinformationsdienste, und wählen Sie dann FTP-Server aus.

    Hinweis

    Um die Authentifizierung mittels ASP.NET-Mitgliedschaft oder IIS-Manager für den FTP-Dienst zu unterstützen, müssen Sie auch FTP-Erweiterbarkeit auswählen. Screenshot of the I I S navigation tree. F T P Extensibility is highlighted and selected.

  4. Klicken Sie auf OK.

  5. Klicken Sie auf Schließen.

Windows Server 2008 R2

  1. Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltung, und wählen Sie dann Server-Manager aus.

  2. Erweitern Sie im Hierarchiebereich des Server-Managers den Eintrag Rollen, und klicken Sie dann auf Webserver (IIS).

  3. Scrollen Sie im Bereich Webserver (IIS) zum Abschnitt Rollendienste, und klicken Sie dann auf Rollendienste hinzufügen.

  4. Erweitern Sie auf der Seite Rollendienste auswählen des Assistenten zum Hinzufügen von Rollendiensten den Eintrag FTP-Server.

  5. Wählen Sie FTP-Dienst aus.

    Hinweis

    Um die Authentifizierung mittels ASP.NET-Mitgliedschaft oder IIS-Manager für den FTP-Dienst zu unterstützen, müssen Sie auch FTP-Erweiterbarkeit auswählen. Screenshot of the Select Role Services page. F T P Server is expanded. F T P Service is selected and highlighted.

  6. Klicken Sie auf Weiter.

  7. Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren.

  8. Klicken Sie auf der Seite Ergebnisse auf Schließen.

Windows 7

  1. Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.

  2. Klicken Sie in der Systemsteuerung auf Programme und Features und dann auf Windows-Features aktivieren oder deaktivieren.

  3. Erweitern Sie Internetinformationsdienste und dann FTP-Server.

  4. Wählen Sie FTP-Dienst aus.

    Hinweis

    Um die Authentifizierung mittels ASP.NET-Mitgliedschaft oder IIS-Manager für den FTP-Dienst zu unterstützen, müssen Sie auch FTP-Erweiterbarkeit auswählen. Screenshot of the I I S navigation tree. F T P Server is selected and expanded.

  5. Klicken Sie auf OK.

Windows Server 2008 oder Windows Vista

  1. Laden Sie das Installationspaket von der folgenden URL herunter:

    https://www.iis.net/downloads/microsoft/ftp

  2. Befolgen Sie die Anweisungen in der folgenden exemplarischen Vorgehensweise, um den FTP-Dienst zu installieren:

    Installieren von FTP 7 und Problembehandlung

Gewusst wie

Hinweis

Für die FTP-Anforderungsfilterung war im Release FTP 7.0 keine Benutzeroberfläche verfügbar. Die Benutzeroberfläche für die FTP-Anforderungsfilterung wurde im Release FTP 7.5 hinzugefügt.

Verweigern des FTP-Zugriffs auf eine bestimmte Dateiendung

  1. Öffnen Sie Internetinformationsdienste-Manager (IIS):

    • Vorgehensweise unter Windows Server 2012 oder Windows Server 2012 R2:

      • Klicken Sie auf der Taskleiste auf Server-Manager, wählen Sie Tools und dann Internetinformationsdienste-Manager (IIS) aus.
    • Vorgehensweise unter Windows 8 oder Windows 8.1:

      • Halten Sie die Windows-Logo-Taste gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf Systemsteuerung.
      • Klicken Sie auf Verwaltung, und doppelklicken Sie dann auf Internetinformationsdienste-Manager (IIS).
    • Vorgehensweise unter Windows Server 2008 oder Windows Server 2008 R2:

      • Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltung, und klicken Sie dann auf Internetinformationsdienste-Manager (IIS).
    • Vorgehensweise unter Windows Vista oder Windows 7:

      • Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
      • Doppelklicken Sie auf Verwaltung und dann auf Internetinformationsdienste-Manager (IIS).
  2. Wechseln Sie im Bereich Verbindungen zu der Site oder dem Verzeichnis, für die bzw. das Sie die Einstellungen für die Anforderungsfilterung ändern möchten.

  3. Doppelklicken Sie im Bereich Start auf FTP-Anforderungsfilterung.

  4. Klicken Sie im Bereich FTP-Anforderungsfilterung auf die Registerkarte Dateinamenerweiterungen.
    Screenshot of the F T P Request Filtering pane. The File Name Extensions tab is selected.

  5. Klicken Sie im Bereich Aktionen auf Dateinamenerweiterung ablehnen.

  6. Geben Sie im Dialogfeld Dateinamenerweiterung ablehnen die Dateiendung ein, die Sie blockieren möchten. Wenn Sie beispielsweise den Zugriff auf Dateien mit der Dateiendung .INC verhindern möchten, geben Sie „inc“ im Dialogfeld ein.
    Screenshot of the Deny File Name Extension dialog box. In the File name extension box, i n c is written.

  7. Klicken Sie auf OK.

Bearbeiten der Featureeinstellungen und Anforderungsgrenzwerte für die Anforderungsfilterung

  1. Öffnen Sie Internetinformationsdienste-Manager (IIS):

    • Vorgehensweise unter Windows Server 2012 oder Windows Server 2012 R2:

      • Klicken Sie auf der Taskleiste auf Server-Manager, wählen Sie Tools und dann Internetinformationsdienste-Manager (IIS) aus.
    • Vorgehensweise unter Windows 8 oder Windows 8.1:

      • Halten Sie die Windows-Logo-Taste gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf Systemsteuerung.
      • Klicken Sie auf Verwaltung, und doppelklicken Sie dann auf Internetinformationsdienste-Manager (IIS).
    • Vorgehensweise unter Windows Server 2008 oder Windows Server 2008 R2:

      • Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltung, und klicken Sie dann auf Internetinformationsdienste-Manager (IIS).
    • Vorgehensweise unter Windows Vista oder Windows 7:

      • Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
      • Doppelklicken Sie auf Verwaltung und dann auf Internetinformationsdienste-Manager (IIS).
  2. Wechseln Sie im Bereich Verbindungen zu der Site oder dem Verzeichnis, für die bzw. das Sie die Einstellungen für die Anforderungsfilterung ändern möchten.

  3. Doppelklicken Sie im Bereich Start auf FTP-Anforderungsfilterung.

  4. Klicken Sie im Bereich Aktionen auf Featureeinstellungen bearbeiten.
    Screenshot of the Actions pane. Server is expanded. Sites is expanded.

  5. Geben Sie Ihre Optionen an. 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 Befehlslänge in 1 KB, indem Sie 1.024 angeben.

    Hinweis

    Es wird empfohlen, das Kontrollkästchen Nicht aufgelistete Befehle zulassen nicht zu deaktivieren.

    Screenshot of the Edit F T P Request Filtering Settings page. In the General category both options are checked.

  6. Klicken Sie auf OK.

Hinzufügen eines ausgeblendeten Segments für FTP

  1. Öffnen Sie Internetinformationsdienste-Manager (IIS):

    • Vorgehensweise unter Windows Server 2012 oder Windows Server 2012 R2:

      • Klicken Sie auf der Taskleiste auf Server-Manager, wählen Sie Tools und dann Internetinformationsdienste-Manager (IIS) aus.
    • Vorgehensweise unter Windows 8 oder Windows 8.1:

      • Halten Sie die Windows-Logo-Taste gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf Systemsteuerung.
      • Klicken Sie auf Verwaltung, und doppelklicken Sie dann auf Internetinformationsdienste-Manager (IIS).
    • Vorgehensweise unter Windows Server 2008 oder Windows Server 2008 R2:

      • Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltung, und klicken Sie dann auf Internetinformationsdienste-Manager (IIS).
    • Vorgehensweise unter Windows Vista oder Windows 7:

      • Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
      • Doppelklicken Sie auf Verwaltung und dann auf Internetinformationsdienste-Manager (IIS).
  2. Wechseln Sie im Bereich Verbindungen zu der Site oder dem Verzeichnis, für die bzw. das Sie die Einstellungen für die Anforderungsfilterung ändern möchten.

  3. Doppelklicken Sie im Bereich Start auf FTP-Anforderungsfilterung.

  4. Klicken Sie im Bereich FTP-Anforderungsfilterung auf die Registerkarte Ausgeblendete Segmente.
    Screenshot of the F T P Request Filtering pane. The Hidden Segments tab is selected.

  5. Klicken Sie im Bereich Aktionen auf Ausgeblendetes Segment hinzufügen.
    Screenshot of the Add Hidden Segment dialog box. In the Hidden segment box, a path is written.

  6. Geben Sie im Dialogfeld Ausgeblendetes Segment hinzufügen den Pfad ein, den Sie ausblenden möchten.

  7. Klicken Sie auf OK.

Verweigern einer FTP-URL-Sequenz

  1. Öffnen Sie Internetinformationsdienste-Manager (IIS):

    • Vorgehensweise unter Windows Server 2012 oder Windows Server 2012 R2:

      • Klicken Sie auf der Taskleiste auf Server-Manager, wählen Sie Tools und dann Internetinformationsdienste-Manager (IIS) aus.
    • Vorgehensweise unter Windows 8 oder Windows 8.1:

      • Halten Sie die Windows-Logo-Taste gedrückt, drücken Sie den Buchstaben X, und klicken Sie dann auf Systemsteuerung.
      • Klicken Sie auf Verwaltung, und doppelklicken Sie dann auf Internetinformationsdienste-Manager (IIS).
    • Vorgehensweise unter Windows Server 2008 oder Windows Server 2008 R2:

      • Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltung, und klicken Sie dann auf Internetinformationsdienste-Manager (IIS).
    • Vorgehensweise unter Windows Vista oder Windows 7:

      • Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
      • Doppelklicken Sie auf Verwaltung und dann auf Internetinformationsdienste-Manager (IIS).
  2. Wechseln Sie im Bereich Verbindungen zu der Site oder dem Verzeichnis, für die bzw. das Sie die Einstellungen für die Anforderungsfilterung ändern möchten.

  3. Doppelklicken Sie im Bereich Start auf FTP-Anforderungsfilterung.
    Screenshot of the Home pane. The F T P Request icon is highlighted and selected.

  4. Klicken Sie im Bereich FTP-Anforderungsfilterung auf die Registerkarte Abgelehnte URL-Sequenzen.
    Screenshot of the F T P Request Filtering pane. the Denied U R L Sequences tab is selected.

  5. Klicken Sie im Bereich Aktionen auf URL-Sequenz hinzufügen.

  6. Geben Sie im Dialogfeld Ablehnungssequenz hinzufügen die URL-Sequenz ein, die Sie blockieren möchten.
    Screenshot of the Add Deny Sequence dialog box. The U R L sequence box is shown.

  7. Klicken Sie auf OK.

Konfiguration

Das <requestFiltering>-Element wird auf globaler, Site- oder URL-Ebene konfiguriert.

Attribute

Attribut Beschreibung
allowHighBitCharacters Optionales Boolean -Attribut.

Gibt an, ob Nicht-ASCII-Zeichen in URLs zulässig sind.

Der Standardwert ist true.

Untergeordnete Elemente

Element Beschreibung
fileExtensions Optionales Element.

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

Gibt Grenzwerte für vom FTP-Server verarbeitete Anforderungen an.
hiddenSegments Optionales Element.

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

Gibt Sequenzen an, die verweigert werden sollen, um URL-basierte Angriffe auf den FTP-Server zu verhindern.

Konfigurationsbeispiel

Das folgende Beispiel zeigt mehrere sicherheitsbezogene Konfigurationseinstellungen im <system.ftpServer>-Element für eine FTP-Site. Insbesondere zeigen die <location>-Einstellungen in diesem Beispiel, wie Sie:

  • eine FTP-Autorisierungsregel für Lese- und Schreibzugriff für die Administratorengruppe festlegen
  • Optionen für die FTP-Anforderungsfilterung festlegen, die Dateien mit den Dateiendungen „*.exe“, „*.bat“ und „*.cmd“ verweigern
  • FTP-Anforderungsgrenzwerte für eine maximale Inhaltslänge von 1.000.000 Bytes und eine maximale URL-Länge von 1.024 Bytes festlegen
  • den FTP-Zugriff auf das virtuelle Verzeichnis „_vti_bin“ blockieren, das mit den FrontPage-Servererweiterungen (FPSE) verwendet wird
  • IP-Filterungsoptionen für FTP festlegen, die den Zugriff von 127.0.0.1 zulassen und den Zugriff vom IP-Adressbereich 169.254.0.0/255.255.0.0 verweigern
<location path="ftp.example.com">
  <system.ftpServer>
    <security>
      <authorization>
        <add accessType="Allow" roles="administrators" permissions="Read, Write" />
      </authorization>
      <requestFiltering>
        <fileExtensions allowUnlisted="true">
          <add fileExtension=".exe" allowed="false" />
          <add fileExtension=".bat" allowed="false" />
          <add fileExtension=".cmd" allowed="false" />
        </fileExtensions>
        <requestLimits maxAllowedContentLength="1000000" maxUrl="1024" />
        <hiddenSegments>
          <add segment="_vti_bin" />
        </hiddenSegments>
      </requestFiltering>
      <ipSecurity enableReverseDns="false" allowUnlisted="true">
        <add ipAddress="127.0.0.1" allowed="true" />
        <add ipAddress="169.254.0.0" subnetMask="255.255.0.0" allowed="false" />
      </ipSecurity>
    </security>
  </system.ftpServer>
</location>

Beispielcode

In den folgenden Beispielen werden Optionen für die FTP-Anforderungsfilterung festgelegt, die Dateien mit den Dateiendungen „*.exe“, „*.com“, „*.bat“ und „*.cmd“ verweigern.

AppCmd.exe

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

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

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

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

Hinweis

Sie müssen den commit-Parameter auf apphost festlegen, wenn Sie „AppCmd.exe“ verwenden, um diese Einstellungen zu konfigurieren. Dadurch werden die Konfigurationseinstellungen in den entsprechenden Location-Abschnitt der Datei „ApplicationHost.config“ committet.

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.GetApplicationHostConfiguration();
         ConfigurationSection requestFilteringSection = config.GetSection("system.ftpServer/security/requestFiltering", "Default Web Site");
         ConfigurationElement fileExtensionsElement = requestFilteringSection.GetChildElement("fileExtensions");
         ConfigurationElementCollection fileExtensionsCollection = fileExtensionsElement.GetCollection();

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

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

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

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

         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.GetApplicationHostConfiguration
      Dim requestFilteringSection As ConfigurationSection = config.GetSection("system.ftpServer/security/requestFiltering", "Default Web Site")
      Dim fileExtensionsElement As ConfigurationElement = requestFilteringSection.GetChildElement("fileExtensions")
      Dim fileExtensionsCollection As ConfigurationElementCollection = fileExtensionsElement.GetCollection

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

      Dim addElement1 As ConfigurationElement = fileExtensionsCollection.CreateElement("add")
      addElement1("fileExtension") = ".com"
      addElement1("allowed") = False
      fileExtensionsCollection.Add(addElement1)

      Dim addElement2 As ConfigurationElement = fileExtensionsCollection.CreateElement("add")
      addElement2("fileExtension") = ".cmd"
      addElement2("allowed") = False
      fileExtensionsCollection.Add(addElement2)

      Dim addElement3 As ConfigurationElement = fileExtensionsCollection.CreateElement("add")
      addElement3("fileExtension") = ".bat"
      addElement3("allowed") = False
      fileExtensionsCollection.Add(addElement3)

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var requestFilteringSection = adminManager.GetAdminSection("system.ftpServer/security/requestFiltering", "MACHINE/WEBROOT/APPHOST/Default Web Site");
var fileExtensionsElement = requestFilteringSection.ChildElements.Item("fileExtensions");
var fileExtensionsCollection = fileExtensionsElement.Collection;

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

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

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

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

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set requestFilteringSection = adminManager.GetAdminSection("system.ftpServer/security/requestFiltering", "MACHINE/WEBROOT/APPHOST/Default Web Site")
Set fileExtensionsElement = requestFilteringSection.ChildElements.Item("fileExtensions")
Set fileExtensionsCollection = fileExtensionsElement.Collection

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

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

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

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

adminManager.CommitChanges()

In den folgenden Beispielen werden FTP-Anforderungsgrenzwerte für eine maximale Inhaltslänge von 1.000.000 Bytes und eine maximale URL-Länge von 1.024 Bytes festgelegt.

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.ftpServer/security/requestFiltering /requestLimits.maxAllowedContentLength:"1000000" /requestLimits.maxUrl:"1024" /commit:apphost

Hinweis

Sie müssen den commit-Parameter auf apphost festlegen, wenn Sie „AppCmd.exe“ verwenden, um diese Einstellungen zu konfigurieren. Dadurch werden die Konfigurationseinstellungen in den entsprechenden Location-Abschnitt der Datei „ApplicationHost.config“ committet.

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.GetApplicationHostConfiguration();
         ConfigurationSection requestFilteringSection = config.GetSection("system.ftpServer/security/requestFiltering", "Default Web Site");

         ConfigurationElement requestLimitsElement = requestFilteringSection.GetChildElement("requestLimits");
         requestLimitsElement["maxAllowedContentLength"] = 1000000;
         requestLimitsElement["maxUrl"] = 1024;

         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.GetApplicationHostConfiguration
      Dim requestFilteringSection As ConfigurationSection = config.GetSection("system.ftpServer/security/requestFiltering", "Default Web Site")

      Dim requestLimitsElement As ConfigurationElement = requestFilteringSection.GetChildElement("requestLimits")
      requestLimitsElement("maxAllowedContentLength") = 1000000
      requestLimitsElement("maxUrl") = 1024

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var requestFilteringSection = adminManager.GetAdminSection("system.ftpServer/security/requestFiltering", "MACHINE/WEBROOT/APPHOST/Default Web Site");
var requestLimitsElement = requestFilteringSection.ChildElements.Item("requestLimits");
requestLimitsElement.Properties.Item("maxAllowedContentLength").Value = 1000000;
requestLimitsElement.Properties.Item("maxUrl").Value = 1024;

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set requestFilteringSection = adminManager.GetAdminSection("system.ftpServer/security/requestFiltering", "MACHINE/WEBROOT/APPHOST/Default Web Site")
Set requestLimitsElement = requestFilteringSection.ChildElements.Item("requestLimits")
requestLimitsElement.Properties.Item("maxAllowedContentLength").Value = 1000000
requestLimitsElement.Properties.Item("maxUrl").Value = 1024

adminManager.CommitChanges()