Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais
Como Remover Cabeçalhos Indesejados no HTTP
Data:4/4/2011

Translate this page now :





Categories: ASP.NET , C#

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :
Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon

Veja Também


 

Normalmente é um assunto que passa despercebido, exceto para os mal intencionados que tentam invadir nossos servidores.

Quando um hacker deseja invadir um servidor, quanto mais informações ele puder obter sobre o servidor mais fácil será. São utilizadas ferramentas para analisar os pacotes de comunicação e frequentemente nestes pacotes o servidor pode informar que tipo de tecnologia está utilizando.

A comunicação com páginas ASP.NET é um exemplo. Podemos utilizar o Fiddler (baixe aqui) para visualizar os cabeçalhos do protocolo.

Passo a passo

  1. Crie um novo empty web project
  2. Adicione uma página com um conteúdo qualquer
  3. Abra o Fiddler
  4. Rode a página
  5. No endereço, substitua Localhost por ipv4.fiddler
  6. Observe, no fiddler, a comunicação realizada e os cabeçados de comunicação

SNAG-0013

SNAG-0011

Resultado

Temos então 3 linhas de cabeçalho que informam mais do que gostariamos :

X-AspNet-Version

X-Powered-By

Server

Eliminar o X-AspNet-Version

Podemos inserir a seguinte linha no web.config, dentro do system.web :

 

Eliminar o X-Powered-By

Estando utilizando um IIS a partir da versão 7, podemos utilizar as seguintes instruções no web.config :


 
   
     
   

 

Para IIS’s de versões anteriores é necessário utilizar um software chamado URLScan

Eliminar o Server

Esse é sem dúvida o mais complexo, pois para retirar o header “Server” é necessário interceptarmos eventos do próprio servidor web, do IIS.

Felizmente o IIS, a partir da versão 7.0,  permite que utilizemos o próprio .NET para criar e anexar módulos ao servidor.

Passo a Passo

  1. Adicione na solução um proojeto class library chamado bufServerModules
  2. Adicione referência para System.Web
  3. Crie uma classe CustomHeaderModule
  4. Monte a classe com o código abaixo
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;

namespace bufServerModules
{
    public class CustomHeaderModule : IHttpModule 
    {
        #region IHttpModule Members

        public void Dispose()
        {
           
        }

        public void Init(HttpApplication context)
        {
            context.PreSendRequestHeaders += OnPreSendRequestHeaders; 
        }

        void OnPreSendRequestHeaders(object sender, EventArgs e)
        {
            // modify the "Server" Http Header
           // HttpContext.Current.Response.Headers.Remove("Server");
           HttpContext.Current.Response.Headers.Set("Server", "Bufalo WebServer");
        }
        #endregion
    }
}
  1. No projeto web faça referência ao projeto class library. A referência apenas garantirá que o assembly da class library seja copiado para a pasta BIN
  2. No web.config do projeto web, adicione as seguintes tags :
<system.webServer>
    <modules>
      <add name="header" type="bufServerModules.CustomHeaderModule,bufServerModules"/>
    </modules>
</system.webServer>
  1. Teste a aplicação, fazendo um rebuild solution e um view in browser
  2. Use novamente o fiddler (chamando a aplicação com o endereço ipv4.fiddler) para observar o header do protocolo

Aplicando o Módulo para todo o Servidor

Com as tags no web.config o módulo criado poderá ser aplicado apenas para nossa aplicação/site, além de apenas funcionar para aplicações gerenciadas.

Porém é possível adicionarmos o módulo diretamente ao IIS (a partir da versão 7) e desta forma fazer com que o IIS o execute para todas as aplicações do servidor. Fazendo isso, até mesmo aplicação não-.NET terão o header alterado.

Passo a Passo

  1. O assembly precisa ter um strong name (veja aqui)
  2. O assembly precisa ser inserido no GAC (Global Assembly Cache)
  3. Acesse o IIS Manager

SNAG-0018

  1. Abra o ícone Modules
  2. Na lateral direita, clique em Add Managed Module

SNAG-0019

  1. Digite o nome do módulo. Vale inventar
  2. Na opção type serão exibidos os módulos instalados no GAC, basta selecionar o correto, a caixa de tipos irá exibir todos os módulos instalados no GAC

Outras utilidades

A retirada dos cabeçalhos serve não apenas para páginas, mas também para serviços web de qualquer tipo. Em casos extremos não deixa de ser uma redução no tamanho dos pacotes de comunicação.



Categories: ASP.NET , C#


Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
data: 2/1/2017 1:33:00 AM
nome: pHDmCcNSjxSJZqZs
email: derby451@hotmail.com
comentário:
nZIzU1 http://www.y7YwKx7Pm6OnyJvolbcwrWdoEnRF29pb.com

data: 1/31/2017 11:13:00 AM
nome: onFejbzALG
email: derby451@hotmail.com
comentário:
RVlkNk http://www.y7YwKx7Pm6OnyJvolbcwrWdoEnRF29pb.com

data: 1/30/2017 12:37:00 AM
nome: rkRwGKdGRMfyMOyq
email: derby451@hotmail.com
comentário:
nZi47S http://www.y7YwKx7Pm6OnyJvolbcwrWdoEnRF29pb.com

data: 1/29/2017 11:27:00 PM
nome: UacqzmgxbSlLViRazYY
email: jogcbfn@hotmail.com
comentário:
CmWjkm http://www.y7YwKx7Pm6OnyJvolbcwrWdoEnRF29pb.com

data: 1/29/2017 8:30:00 AM
nome: luWqmobkuTSDbqiIYo
email: jogcbfn@hotmail.com
comentário:
dO8xvK http://www.y7YwKx7Pm6OnyJvolbcwrWdoEnRF29pb.com

 1  
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br