Verbos <verbs>
Visão geral
O elemento <verbs>
especifica quais verbos HTTP são permitidos ou negados para limitar o tipo de solicitações HTTP permitidas pelo servidor Web.
Observação
Quando a filtragem de solicitações bloqueia uma solicitação HTTP devido a um verbo HTTP negado, o IIS 7 retornará um erro HTTP 404 ao cliente e registrará o seguinte status HTTP com um substatus exclusivo que identifica o motivo pelo qual a solicitação foi negada:
Substatus HTTP | Descrição |
---|---|
404.6 |
Verbo negado |
Esse substatus permite que os administradores Web analisem seus logs do IIS e identifiquem possíveis ameaças.
Compatibilidade
Versão | Observações |
---|---|
IIS 10.0 | O elemento <verbs> não foi modificado no IIS 10.0. |
IIS 8.5 | O elemento <verbs> não foi modificado no IIS 8.5. |
IIS 8.0 | O elemento <verbs> não foi modificado no IIS 8.0. |
IIS 7.5 | O elemento <verbs> não foi modificado no IIS 7.5. |
IIS 7.0 | O elemento <verbs> da coleção <requestFiltering> foi introduzido no IIS 7.0. |
IIS 6,0 | O elemento <verbs> substitui os recursos UrlScan [AllowVerbs] e [DenyVerbs] do IIS 6.0. |
Instalação
A instalação padrão do IIS 7 e versões posteriores inclui o serviço ou recurso de função Filtragem de Solicitações. Se o serviço ou recurso de função Filtragem de Solicitações for desinstalado, você poderá reinstalá-lo usando as etapas a seguir.
Windows Server 2012 R2 ou Windows Server 2012
- Na barra de tarefas, clique em Gerenciador do Servidor.
- No Gerenciador do Servidor, clique no menu Gerenciar e clique em Adicionar Funções e Recursos.
- No assistente Adicionar Funções e Recursos, clique em Avançar. Selecione o tipo de instalação e clique em Avançar. Selecione o servidor de destino e clique em Avançar.
- Na página Funções de Servidor, expanda Servidor Web (IIS), Servidor Web, expanda Segurança e selecione Filtragem de Solicitações. Clique em Avançar.
. - Na página Selecionar recursos, clique em Avançar.
- Na página Confirmar seleções de instalação, clique em Instalar.
- Na página Resultados , clique em Fechar.
Windows 8 ou Windows 8.1
- Na tela Iniciar, mova o ponteiro até o canto inferior esquerdo, clique com o botão direito do mouse no botão Iniciar e clique em Painel de Controle.
- Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar recursos do Windows.
- Expanda Serviços de Informações da Internet, expanda Serviços da World Wide Web, expanda Segurança e, em seguida, selecione Filtragem de Solicitações.
- Clique em OK.
- Clique em Fechar.
Windows Server 2008 R2 ou Windows Server 2008
- Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador do Servidor.
- No painel de hierarquia do Gerenciador do Servidor, expanda Funções e clique em Servidor Web (IIS).
- No painel Servidor Web (IIS), role até a seção Serviços de Função e clique em Adicionar Serviços de Função.
- Na página Selecionar Serviços de Função do Assistente para Adicionar Serviços de Função, selecione Filtragem de Solicitações e clique em Avançar.
- Na página Confirmar Seleções de Instalação, clique em Instalar.
- Na página Resultados , clique em Fechar.
Windows Vista ou Windows 7
- Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
- Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar Recursos do Windows.
- Expanda Serviços de Informações da Internet e, em seguida, Serviços World Wide Web e, em seguida, Segurança.
- Selecione Filtragem de Solicitações e clique em OK.
Instruções
Observação para usuários dos IIS 7.0: algumas etapas nesta seção podem exigir que você instale o Microsoft Administration Pack para IIS 7.0, que inclui uma interface do usuário para filtragem de solicitações. Para instalar o Microsoft Administration Pack para IIS 7.0, consulte a seguinte URL:
Como negar um verbo HTTP
Abra o Gerenciador dos Serviços de Informações da Internet (IIS):
Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:
- Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador dos Serviços de Informações da Internet (IIS).
Se você estiver usando o Windows 8 ou Windows 8.1:
- Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
- Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:
- Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador dos Serviços de Informações da Internet (IIS).
Se você estiver usando o Windows Vista ou Windows 7:
- Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
- Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
No painel Conexões, acesse a conexão, o site, o aplicativo ou o diretório para o qual você deseja modificar as configurações de filtragem de solicitações.
No painel Página Inicial, clique duas vezes em Filtragem de Solicitações.
No painel Filtragem de Solicitações, clique na guia Verbos HTTP e clique em Negar Verbo... no painel Ações.
Na caixa de diálogo Negar Verbo, digite o verbo HTTP que você deseja bloquear e clique em OK.
Por exemplo, para impedir solicitações HTTP TRACE para o servidor, digite "TRACE" na caixa de diálogo.
Configuração
Atributos
Atributo | Descrição |
---|---|
allowUnlisted |
Atributo booliano opcional. Especifica se o servidor Web deve processar os verbos não listados. Se você definir esse atributo como true, deverá listar todos os verbos que deseja negar. Se você definir esse atributo como false, deverá listar todos os verbos que deseja permitir. O valor padrão é true . |
applyToWebDAV |
Atributo booliano opcional. Especifica se essas configurações também devem se aplicar a solicitações WebDAV. |
Elementos filho
Elemento | Descrição |
---|---|
add |
Elemento opcional. Adiciona um verbo à coleção de verbos. |
clear |
Elemento opcional. Remove todas as referências a verbos da coleção de verbos. |
remove |
Elemento opcional. Remove uma referência a um verbo da coleção de verbos. |
Exemplo de configuração
O arquivo Web.config de exemplo a seguir configurará duas opções: ele configurará o IIS para negar solicitações HTTP PUT e configurará a filtragem de solicitações para permitir o acesso WebDAV a todos os verbos HTTP.
<configuration>
<system.webServer>
<security>
<requestFiltering>
<verbs applyToWebDAV="false">
<add verb="PUT" allowed="false" />
</verbs>
</requestFiltering>
</security>
</system.webServer>
</configuration>
Exemplo de código
Os códigos de exemplo a seguir configurarão duas opções: eles configurarão o IIS para negar solicitações HTTP PUT para o "Site Padrão" e configurarão a filtragem de solicitações para permitir o acesso WebDAV a todos os 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()