Compartir a través de


Filtrado de solicitudes FTP <requestFiltering>

El filtrado de solicitudes FTP es una característica de seguridad integrada que se introdujo en FTP 7 y es similar en general a la funcionalidad que ofrecían las características de filtrado de solicitudes disponibles para sitios HTTP. Toda la configuración de la característica de filtrado de solicitudes se encuentra dentro del elemento <requestFiltering>, que contiene varios elementos secundarios para cada una de las siguientes áreas de características:

  • <denyUrlSequences>: este elemento puede contener una colección de patrones de secuencias de direcciones URL que IIS 7 denegará; por ejemplo: puede denegar partes de secuencias de direcciones URL que un atacante puede intentar aprovechar.
  • <fileExtensions>: este elemento puede contener una colección de extensiones de nombre de archivo que IIS 7 denegará o permitirá; por ejemplo: puede bloquear todas las solicitudes de archivos *.EXE o *.COM.
  • <hiddenSegments>: este elemento puede contener una colección de direcciones URL que no se pueden examinar; por ejemplo: puede denegar solicitudes para la carpeta ASP.NET App_Code.
  • <requestLimits>: este elemento contiene la configuración de longitud de las direcciones URL, el contenido y los comandos.

Una diferencia importante entre el filtrado de solicitudes FTP y el filtrado de solicitudes HTTP es que el segundo incluye un elemento <verbs> adicional, que puede contener una colección de verbos HTTP que IIS denegará o permitirá. FTP proporciona este mismo tipo de filtrado a través del elemento <commandFiltering> configurado en el nivel de sitio.

Nota:

Cuando el filtrado de solicitudes bloquea una solicitud FTP debido a que esta infringe las reglas de filtrado de solicitudes, FTP 7 devolverá un error FTP al cliente y registrará uno de los subestados FTP siguientes que identifica el motivo por el que se ha denegado la solicitud:

Subestado de FTP Descripción
8 Se ha detectado un segmento oculto en la ruta de acceso en función de las reglas de filtrado de solicitudes.
9 Se ha detectado una secuencia de direcciones URL denegadas en la ruta de acceso en función de las reglas de filtrado de solicitudes.
10 Se han detectado caracteres de bit más significativo en la ruta de acceso en función de las reglas de filtrado de solicitudes.
11 Se ha denegado la extensión de nombre de archivo en función de las reglas de filtrado de solicitudes
12 La ruta de acceso es demasiado larga según las reglas de filtrado de solicitudes.
51 Las reglas de filtrado de comandos han denegado el acceso.

La notificación de las condiciones que indican estos subestados permite a los administradores web analizar sus registros de IIS e identificar posibles amenazas.

Compatibilidad

Versión Notas
IIS 10.0 El elemento <requestFiltering> no se modificó en IIS 10.0.
IIS 8.5 El elemento <requestFiltering> no se modificó en IIS 8.5.
IIS 8.0 El elemento <requestFiltering> no se modificó en IIS 8.0.
IIS 7.5 El elemento <requestFiltering> del elemento <system.ftpServer/security> se incluye como una característica de IIS 7.5.
IIS 7.0 El elemento <requestFiltering> del elemento <system.ftpServer/security> se introdujo en FTP 7.0, que era una descarga independiente para IIS 7.0.
IIS 6,0 El servicio FTP de IIS 6.0 no admitía el filtrado de solicitudes.

Nota:

Los servicios FTP 7.0 y FTP 7.5 se lanzaron fuera de banda para IIS 7.0, lo que requería descargar e instalar los módulos desde la siguiente dirección URL:

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

Con Windows 7 y Windows Server 2008 R2, el servicio FTP 7.5 se incluye como característica para IIS 7.5, por lo que la descarga del servicio FTP ya no es necesaria.

Configuración

Para admitir la publicación de FTP para el servidor web, debe instalar el servicio FTP. Para ello, siga estos pasos.

Windows Server 2012 o Windows Server 2012 R2

  1. En la barra de tareas, haga clic en Administrador del servidor.

  2. En Administrador del servidor, haga clic en el menú Administrar y, después, haga clic en Agregar roles y características.

  3. En el asistente para Agregar roles y características, haga clic en Siguiente. Seleccione el tipo de instalación y haga clic en Siguiente. Seleccione el servidor de destino y haga clic en Siguiente.

  4. En la página Roles de servidor, expanda Servidor web (IIS) y, a continuación, seleccione Servidor FTP.

    Nota:

    Para admitir la autenticación ASP.Membership o la autenticación del Administrador de IIS para el servicio FTP, también debe seleccionar Extensibilidad de FTP, además de Servicio FTP.

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

  5. Haga clic en Siguiente y, después, en la página Seleccionar características, vuelva a hacer clic en Siguiente.

  6. En la página Confirmar selecciones de instalación, haga clic en Instalar.

  7. En la página Resultados , haga clic en Cerrar.

Windows 8 o Windows 8.1

  1. En la pantalla Inicio, mueva el puntero hasta la esquina inferior izquierda, haga clic con el botón derecho en el botón Inicio y, a continuación, haga clic en Panel de control.

  2. En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.

  3. Expanda Internet Information Services y, después, seleccione Servidor FTP.

    Nota:

    Para admitir la autenticación ASP.Membership o la autenticación del Administrador de IIS para el servicio FTP, también deberá seleccionar Extensibilidad de FTP. Screenshot of the I I S navigation tree. F T P Extensibility is highlighted and selected.

  4. Haga clic en OK.

  5. Haga clic en Cerrar.

Windows Server 2008 R2

  1. En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, luego, haga clic en Administrador del servidor.

  2. En el panel de jerarquía del Administrador del servidor, expanda Roles y, luego, haga clic en Servidor web (IIS).

  3. En el panel Servidor web (IIS), desplácese hasta la sección Servicios de rol y, luego, haga clic en Agregar servicios de rol.

  4. En la página Seleccionar servicios de rol del Asistente para agregar servicios de rol, expanda Servidor FTP.

  5. Seleccione Servicio FTP.

    Nota:

    Para admitir la autenticación ASP.Membership o la autenticación del Administrador de IIS para el servicio FTP, también debe seleccionar Extensibilidad de FTP. Screenshot of the Select Role Services page. F T P Server is expanded. F T P Service is selected and highlighted.

  6. Haga clic en Next.

  7. En la página Confirmar selecciones de instalación, haz clic en Instalar.

  8. En la página Resultados , haga clic en Cerrar.

Windows 7

  1. En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.

  2. En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.

  3. Expanda Internet Information Services y, luego, Servidor FTP.

  4. Seleccione Servicio FTP.

    Nota:

    Para admitir la autenticación ASP.Membership o la autenticación del Administrador de IIS para el servicio FTP, también debe seleccionar Extensibilidad de FTP. Screenshot of the I I S navigation tree. F T P Server is selected and expanded.

  5. Haga clic en OK.

Windows Server 2008 o Windows Vista

  1. Descargue el paquete de instalación desde la siguiente dirección URL:

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

  2. Siga las instrucciones del siguiente tutorial para instalar el servicio FTP:

    Instalación y solución de problemas de FTP 7

Procedimientos

Nota:

El filtrado de solicitudes FTP no tenía interfaz de usuario en la versión FTP 7.0; la interfaz de usuario de filtrado de solicitudes FTP se agregó en la versión FTP 7.5.

Cómo denegar el acceso FTP a una extensión de nombre de archivo específica

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • Haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones, vaya al sitio o directorio para el que quiere modificar la configuración del filtrado de solicitudes.

  3. En el panel Inicio, haga doble clic en Filtrado de solicitudes FTP.

  4. En el panel Filtrado de solicitudes FTP, haga clic en la pestaña Extensiones de nombre de archivo.
    Screenshot of the F T P Request Filtering pane. The File Name Extensions tab is selected.

  5. Haga clic en Denegar extensión de nombre de archivo en el panel Acciones.

  6. En el cuadro de diálogo Denegar extensión de nombre de archivo, escriba la extensión de nombre de archivo que quiere bloquear. Por ejemplo, para evitar el acceso a los archivos con una extensión de nombre de archivo de .inc, se escribiría "inc" en el cuadro de diálogo.
    Screenshot of the Deny File Name Extension dialog box. In the File name extension box, i n c is written.

  7. Haga clic en OK.

Cómo editar la configuración de características de filtrado de solicitudes y los límites de las solicitudes

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • Haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones, vaya al sitio o directorio para el que quiere modificar la configuración del filtrado de solicitudes.

  3. En el panel Inicio, haga doble clic en Filtrado de solicitudes FTP.

  4. Haga clic en Modificar configuración de característica en el panel Acciones.
    Screenshot of the Actions pane. Server is expanded. Sites is expanded.

  5. Especifique las opciones. Por ejemplo, puede realizar los siguientes cambios:

    • Especifique 2048 para cambiar la longitud máxima de dirección URL a 2 KB.
    • Especifique 1024 para cambiar la longitud máxima de comando a 1 KB.

    Nota:

    Se recomienda no desactivar la casilla Permitir comandos que no figuran en la lista.

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

  6. Haga clic en OK.

Cómo agregar un segmento oculto de FTP

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • Haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones, vaya al sitio o directorio para el que quiere modificar la configuración del filtrado de solicitudes.

  3. En el panel Inicio, haga doble clic en Filtrado de solicitudes FTP.

  4. En el panel Filtrado de solicitudes FTP, haga clic en la pestaña Segmentos ocultos.
    Screenshot of the F T P Request Filtering pane. The Hidden Segments tab is selected.

  5. Haga clic en Agregar segmento oculto... en el panel Acciones.
    Screenshot of the Add Hidden Segment dialog box. In the Hidden segment box, a path is written.

  6. En el cuadro de diálogo Agregar segmento oculto, especifique la ruta de acceso que quiere ocultar.

  7. Haga clic en OK.

Cómo denegar una secuencia de direcciones URL de FTP

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • Haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones, vaya al sitio o directorio para el que quiere modificar la configuración del filtrado de solicitudes.

  3. En el panel Inicio, haga doble clic en Filtrado de solicitudes FTP.
    Screenshot of the Home pane. The F T P Request icon is highlighted and selected.

  4. En el panel Filtrado de solicitudes FTP, haga clic en la pestaña Secuencias de direcciones URL denegadas.
    Screenshot of the F T P Request Filtering pane. the Denied U R L Sequences tab is selected.

  5. Haga clic en Agregar secuencia de dirección URL en el panel Acciones.

  6. En el cuadro de diálogo Agregar secuencia de denegación, escriba la secuencia de direcciones URL que quiere bloquear.
    Screenshot of the Add Deny Sequence dialog box. The U R L sequence box is shown.

  7. Haga clic en OK.

Configuración

El elemento <requestFiltering> se configura en el nivel global, de sitio o de dirección URL.

Atributos

Atributo Descripción
allowHighBitCharacters Atributo Boolean opcional.

Especifica si se van a permitir caracteres que no sean ASCII en las direcciones URL.

El valor predeterminado es true.

Elementos secundarios

Elemento Descripción
fileExtensions Elemento opcional.

Especifica qué extensiones de nombre de archivo se permiten o se deniegan para limitar los tipos de solicitudes que se envían al servidor FTP.
requestLimits Elemento opcional.

Especifica los límites de las solicitudes procesadas por el servidor FTP.
hiddenSegments Elemento opcional.

Especifica que determinados segmentos de las direcciones URL se pueden hacer inaccesibles para los clientes.
denyUrlSequences Elemento opcional.

Especifica secuencias que deben denegarse para ayudar a evitar ataques basados en direcciones URL en el servidor FTP.

Ejemplo de configuración

En el ejemplo siguiente se muestran varios valores de configuración relacionados con la seguridad en el elemento <system.ftpServer> para un sitio FTP. En concreto, los valores <location> de este ejemplo muestran cómo:

  • Especificar una regla de autorización FTP de acceso de lectura y escritura para el grupo de administradores.
  • Especificar las opciones de filtrado de solicitudes FTP que deniegan los archivos *.exe, *.bat y *.cmd.
  • Especificar los límites de solicitudes FTP para una longitud máxima de contenido de 1000000 bytes y una longitud de dirección URL máxima de 1024 bytes.
  • Bloquear el acceso FTP al directorio virtual _vti_bin, que se usa con las Extensiones de servidor de FrontPage.
  • Especificar opciones de filtrado de IP de FTP que permitan el acceso desde 127.0.0.1 y lo denieguen desde el intervalo de direcciones IP 169.254.0.0/255.255.0.0.
<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>

Código de ejemplo

En los ejemplos siguientes se especifican las opciones de filtrado de solicitudes FTP que deniegan los archivos *.exe, *.bat y *.cmd.

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

Nota:

Debe asegurarse de establecer el parámetro de confirmación en apphost cuando use AppCmd.exe para configurar estas opciones. Esto confirma los valores de configuración en la sección de ubicación adecuada del archivo ApplicationHost.config.

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

En los ejemplos siguientes se especifican los límites de solicitudes FTP para una longitud máxima de contenido de 1000000 bytes y una longitud de dirección URL máxima de 1024 bytes.

AppCmd.exe

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

Nota:

Debe asegurarse de establecer el parámetro de confirmación en apphost cuando use AppCmd.exe para configurar estas opciones. Esto confirma los valores de configuración en la sección de ubicación adecuada del archivo ApplicationHost.config.

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