Adición de verbos <add>
Información general
El elemento <add>
de la colección <verbs>
especifica un verbo HTTP único que se va a agregar a la colección de verbos que Internet Information Services (IIS) 7 permite o deniega.
Nota:
Cuando el filtrado de solicitudes bloquea una solicitud HTTP debido a un verbo HTTP denegado, IIS 7 devolverá un error HTTP 404 al cliente y registrará el siguiente estado HTTP con un subestado único que identifique el motivo por el que se denegó la solicitud:
Subestado HTTP | Descripción |
---|---|
404.6 |
Verbo denegado |
Este subestado le permite a los administradores web analizar los registros de IIS e identificar posibles amenazas.
Compatibilidad
Versión | Notas |
---|---|
IIS 10.0 | El elemento <add> no se modificó en IIS 10.0. |
IIS 8.5 | El elemento <add> no se modificó en IIS 8.5. |
IIS 8.0 | El elemento <add> no se modificó en IIS 8.0. |
IIS 7.5 | El elemento <add> no se modificó en IIS 7.5. |
IIS 7.0 | El elemento <add> de la colección <verbs> se introdujo en IIS 7.0. |
IIS 6,0 | El elemento <verbs> reemplaza las características UrlScan [AllowVerbs] y [DenyVerbs] de IIS 6.0. |
Configuración
La instalación predeterminada de IIS 7 y versiones posteriores incluye el servicio de rol o característica Filtrado de solicitudes. Si se desinstala el servicio de rol o característica de filtrado de solicitudes, puede volver a instalarlo mediante los siguientes pasos.
Windows Server 2012 o Windows Server 2012 R2
- En la barra de tareas, haga clic en Administrador del servidor.
- En Administrador del servidor, haga clic en el menú Administrar y, después, haga clic en Agregar roles y características.
- 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.
- En la página Roles de servidor, expanda Servidor web (IIS), expanda Servidor web, expanda Seguridad y, a continuación, seleccione Filtrado de solicitudes. Haga clic en Next.
. - En la página Seleccionar características, haz clic en Siguiente.
- En la página Confirmar selecciones de instalación, haga clic en Instalar.
- En la página Resultados , haga clic en Cerrar.
Windows 8 o Windows 8.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.
- En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
- Expanda Internet Information Services, expanda Servicios World Wide Web, expanda Seguridad y seleccione Filtrado de solicitudes.
- Haga clic en OK.
- Haga clic en Cerrar.
Windows Server 2008 o Windows Server 2008 R2
- En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, luego, haga clic en Administrador del servidor.
- En el panel de jerarquía del Administrador del servidor, expanda Roles y, luego, haga clic en Servidor web (IIS).
- En el panel Servidor web (IIS), desplácese hasta la sección Servicios de rol y, luego, haga clic en Agregar servicios de rol.
- En la página Seleccionar servicios de rol del Asistente para agregar servicios de rol, seleccione Filtrado de solicitudes y haga clic en Siguiente.
- En la página Confirmar selecciones de instalación, haz clic en Instalar.
- En la página Resultados , haga clic en Cerrar.
Windows Vista o Windows 7
- En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
- En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
- Expanda Internet Information Services, después Servicios World Wide Web y, a continuación, Seguridad.
- Seleccione Filtrado de solicitudes y haga clic en Aceptar.
Procedimientos
Nota para los usuarios de IIS 7.0: Algunos de los pasos de esta sección pueden requerir que instale el módulo Administration Pack de Microsoft para IIS 7.0, que incluye una interfaz de usuario para el filtrado de solicitudes. Para instalar el módulo Administration Pack de Microsoft para IIS 7.0, consulte la siguiente dirección URL:
Cómo denegar un verbo HTTP
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.
- 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).
En el panel Conexiones, vaya a la conexión, sitio u aplicación de la que quiere modificar la configuración del filtrado de solicitudes.
En el panel Página principal, haga doble clic en Filtrado de solicitudes.
En el panel Filtrado de solicitudes, haga clic en la pestaña Verbos HTTP y, a continuación, haga clic en Denegar verbo... en el panel Acciones.
En el cuadro de diálogo Denegar verbo, escriba el verbo HTTP que desea bloquear y haga clic en Aceptar.
Por ejemplo, para evitar solicitudes HTTP TRACE al servidor, escribiría "TRACE" en el cuadro de diálogo.
Configuración
Atributos
Atributo | Descripción |
---|---|
allowed |
Atributo booleano requerido. Especifica si se permite o se deniega el verbo. Establecer el atributo allowed en true le permite al servidor web procesar estos verbos. Establecer el atributo allowed en false le impide al servidor web procesar solicitudes. El valor predeterminado es true . |
verb |
Atributo de cadena necesario. Especifica el nombre del verbo que permitir o denegar. |
Elementos secundarios
Ninguno.
Ejemplo de configuración
El siguiente archivo Web.config de ejemplo configurará dos opciones: que IIS deniegue las solicitudes HTTP PUT y que filtrado de solicitudes permita el acceso de WebDAV a todos los verbos HTTP.
<configuration>
<system.webServer>
<security>
<requestFiltering>
<verbs applyToWebDAV="false">
<add verb="PUT" allowed="false" />
</verbs>
</requestFiltering>
</security>
</system.webServer>
</configuration>
Código de ejemplo
Los siguientes códigos de ejemplo configurarán dos opciones: que IIS deniegue solicitudes HTTP PUT para el "Sitio web predeterminado" y que el filtrado de solicitudes permita el acceso de WebDAV a todos los verbos HTTP.
AppCmd.exe
appcmd.exe set config "Default Web Site" -section:system.webServer/security/requestFiltering /verbs.applyToWebDAV:"False"
appcmd.exe set config "Default Web Site" -section:system.webServer/security/requestFiltering /+"verbs.[verb='PUT',allowed='False']"
PowerShell
Start-IISCommitDelay
$verbs = Get-IISConfigSection -CommitPath 'Default Web Site' -SectionPath 'system.webServer/security/requestFiltering' | Get-IISConfigCollection -CollectionName 'verbs'
Set-IISConfigAttributeValue -ConfigElement $verbs -AttributeName 'applyToWebDAV' -AttributeValue $false
New-IISConfigCollectionElement -ConfigCollection $verbs -ConfigAttribute @{ 'verb'='PUT';'allowed'=$false }
Stop-IISCommitDelay
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample
{
private static void Main()
{
using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetWebConfiguration("Default Web Site");
ConfigurationSection requestFilteringSection = config.GetSection("system.webServer/security/requestFiltering");
ConfigurationElement verbsElement = requestFilteringSection.GetChildElement("verbs");
verbsElement["applyToWebDAV"] = false;
ConfigurationElementCollection verbsCollection = verbsElement.GetCollection();
ConfigurationElement addElement = verbsCollection.CreateElement("add");
addElement["verb"] = @"PUT";
addElement["allowed"] = false;
verbsCollection.Add(addElement);
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetWebConfiguration("Default Web Site")
Dim requestFilteringSection As ConfigurationSection = config.GetSection("system.webServer/security/requestFiltering")
Dim verbsElement As ConfigurationElement = requestFilteringSection.GetChildElement("verbs")
verbsElement("applyToWebDAV") = False
Dim verbsCollection As ConfigurationElementCollection = verbsElement.GetCollection
Dim addElement As ConfigurationElement = verbsCollection.CreateElement("add")
addElement("verb") = "PUT"
addElement("allowed") = False
verbsCollection.Add(addElement)
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site";
var requestFilteringSection = adminManager.GetAdminSection("system.webServer/security/requestFiltering", "MACHINE/WEBROOT/APPHOST/Default Web Site");
var verbsElement = requestFilteringSection.ChildElements.Item("verbs");
verbsElement.Properties.Item("applyToWebDAV").Value = false;
var verbsCollection = verbsElement.Collection;
var addElement = verbsCollection.CreateNewElement("add");
addElement.Properties.Item("verb").Value = "PUT";
addElement.Properties.Item("allowed").Value = false;
verbsCollection.AddElement(addElement);
adminManager.CommitChanges();
VBScript
Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site"
Set requestFilteringSection = adminManager.GetAdminSection("system.webServer/security/requestFiltering", "MACHINE/WEBROOT/APPHOST/Default Web Site")
Set verbsElement = requestFilteringSection.ChildElements.Item("verbs")
verbsElement.Properties.Item("applyToWebDAV").Value = False
Set verbsCollection = verbsElement.Collection
Set addElement = verbsCollection.CreateNewElement("add")
addElement.Properties.Item("verb").Value = "PUT"
addElement.Properties.Item("allowed").Value = False
verbsCollection.AddElement(addElement)
adminManager.CommitChanges()