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:
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
Klicken Sie auf der Taskleiste auf Server-Manager.
Klicken Sie im Server-Manager auf das Menü Verwalten und dann auf Rollen und Features hinzufügen.
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.
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.
Klicken Sie auf Weiter, und wählen Sie dann auf der Seite Features auswählen erneut Weiter aus.
Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren.
Klicken Sie auf der Seite Ergebnisse auf Schließen.
Windows 8 oder Windows 8.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.
Klicken Sie in der Systemsteuerung auf Programme und Features und dann auf Windows-Features aktivieren oder deaktivieren.
Erweitern Sie Internetinformationsdienste, und wählen Sie dann FTP-Server aus.
Klicken Sie auf OK.
Klicken Sie auf Schließen.
Windows Server 2008 R2
Klicken Sie auf der Taskleiste auf Start, zeigen Sie auf Verwaltung, und wählen Sie dann Server-Manager aus.
Erweitern Sie im Hierarchiebereich des Server-Managers den Eintrag Rollen, und klicken Sie dann auf Webserver (IIS).
Scrollen Sie im Bereich Webserver (IIS) zum Abschnitt Rollendienste, und klicken Sie dann auf Rollendienste hinzufügen.
Erweitern Sie auf der Seite Rollendienste auswählen des Assistenten zum Hinzufügen von Rollendiensten den Eintrag FTP-Server.
Wählen Sie FTP-Dienst aus.
Klicken Sie auf Weiter.
Klicken Sie auf der Seite Installationsauswahl bestätigen auf Installieren.
Klicken Sie auf der Seite Ergebnisse auf Schließen.
Windows 7
Klicken Sie auf der Taskleiste auf Start und dann auf Systemsteuerung.
Klicken Sie in der Systemsteuerung auf Programme und Features und dann auf Windows-Features aktivieren oder deaktivieren.
Erweitern Sie Internetinformationsdienste und dann FTP-Server.
Wählen Sie FTP-Dienst aus.
Klicken Sie auf OK.
Windows Server 2008 oder Windows Vista
Laden Sie das Installationspaket von der folgenden URL herunter:
Befolgen Sie die Anweisungen in der folgenden exemplarischen Vorgehensweise, um den FTP-Dienst zu installieren:
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
Ö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).
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.
Doppelklicken Sie im Bereich Start auf FTP-Anforderungsfilterung.
Klicken Sie im Bereich FTP-Anforderungsfilterung auf die Registerkarte Dateinamenerweiterungen.
Klicken Sie im Bereich Aktionen auf Dateinamenerweiterung ablehnen.
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.
Klicken Sie auf OK.
Bearbeiten der Featureeinstellungen und Anforderungsgrenzwerte für die Anforderungsfilterung
Ö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).
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.
Doppelklicken Sie im Bereich Start auf FTP-Anforderungsfilterung.
Klicken Sie im Bereich Aktionen auf Featureeinstellungen bearbeiten.
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.
Klicken Sie auf OK.
Hinzufügen eines ausgeblendeten Segments für FTP
Ö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).
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.
Doppelklicken Sie im Bereich Start auf FTP-Anforderungsfilterung.
Klicken Sie im Bereich FTP-Anforderungsfilterung auf die Registerkarte Ausgeblendete Segmente.
Klicken Sie im Bereich Aktionen auf Ausgeblendetes Segment hinzufügen.
Geben Sie im Dialogfeld Ausgeblendetes Segment hinzufügen den Pfad ein, den Sie ausblenden möchten.
Klicken Sie auf OK.
Verweigern einer FTP-URL-Sequenz
Ö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).
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.
Doppelklicken Sie im Bereich Start auf FTP-Anforderungsfilterung.
Klicken Sie im Bereich FTP-Anforderungsfilterung auf die Registerkarte Abgelehnte URL-Sequenzen.
Klicken Sie im Bereich Aktionen auf URL-Sequenz hinzufügen.
Geben Sie im Dialogfeld Ablehnungssequenz hinzufügen die URL-Sequenz ein, die Sie blockieren möchten.
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()