Cada página em um aplicativo MVC com o qual estou trabalhando define esses cabeçalhos HTTP nas respostas:
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
X-AspNetMvc-Version: 2.0
Como evito que eles sejam exibidos?
asp.net-mvc
security
http-headers
Paul Fryer
fonte
fonte
Respostas:
X-Powered-By
é um cabeçalho personalizado no IIS. Desde o IIS 7, você pode removê-lo adicionando o seguinte ao seuweb.config
:Esse cabeçalho também pode ser modificado de acordo com suas necessidades, para obter mais informações, consulte http://www.iis.net/ConfigReference/system.webServer/httpProtocol/customHeaders
Adicione isso para
web.config
se livrar doX-AspNet-Version
cabeçalho:Por fim, para remover
X-AspNetMvc-Version
, editarGlobal.asax.cs
e adicionar o seguinte noApplication_Start
evento:Você também pode modificar cabeçalhos em tempo de execução através do
Application_PreSendRequestHeaders
evento inGlobal.asax.cs
. Isso é útil se os valores do cabeçalho forem dinâmicos:fonte
X-Powered-By
cabeçalho. Veja outras respostas sobre como conseguir isso emweb.config
.Você também pode removê-los adicionando código ao seu arquivo global.asax:
fonte
<system.webServer> <httpProtocol> <customHeaders> <remove name="X-Powered-By" /> </customHeaders> <redirectHeaders> <clear /> </redirectHeaders> </httpProtocol> </system.webServer>
Eu encontrei essa configuração no meu
web.config
que era para umNew Web Site...
criado no Visual Studio (em oposição aNew Project...
). Como a pergunta indica um aplicativo ASP.NET MVC, não é relevante, mas ainda é uma opção.Atualização : Além disso, Troy Hunt tem um artigo intitulado Shhh… não deixe seus cabeçalhos de resposta falar alto demais com etapas detalhadas sobre a remoção desses cabeçalhos, bem como um link para sua ferramenta ASafaWeb para digitalizá-los e outras configurações de segurança.
fonte
code
<security> <requestFiltering> <verbs> <add verb = "OPTIONS" allowed = "false" /> </verbs> </requestFiltering> </security>code
Para remover o cabeçalho do servidor , no arquivo Program.cs , adicione a seguinte opção:
Para o dot net core 1, adicione a opção na chamada .UseKestrel (). Para dot net core 2, adicione a linha após UseStartup ().
Para remover o cabeçalho X-Powered-By , se implantado no IIS, edite seu web.config e adicione a seguinte seção na tag system.webServer:
Para remover o cabeçalho do servidor , no arquivo global.asax, adicione o seguinte:
Adicione a seguinte classe c # ao seu projeto:
e, em seu web.config, adicione a seguinte seção <modules>:
No entanto, tive um problema em que os subprojetos não conseguiram encontrar este módulo. Não tem graça.
Removendo o cabeçalho X-AspNetMvc-Version
Para remover a tag '' X-AspNetMvc-Version '', para qualquer versão do .NET, modifique o arquivo '' web.config '' para incluir:
Obrigado à Microsoft por tornar isso incrivelmente difícil. Ou talvez essa fosse sua intenção, para que você pudesse acompanhar as instalações do IIS e MVC em todo o mundo ...
fonte
RemoveServerHeaderModule
isso não vai funcionar no projeto WebApi.Conforme descrito em Cloaking your ASP.NET MVC Web Application no IIS 7 , você pode desativar o cabeçalho X-AspNet-Version aplicando a seguinte seção de configuração ao seu web.config:
e remova o cabeçalho X-AspNetMvc-Version alterando seu Global.asax.cs da seguinte maneira:
Conforme descrito em Cabeçalhos personalizados Você pode remover o cabeçalho "X-Powered-By" aplicando a seguinte seção de configuração ao seu web.config:
Não há uma maneira fácil de remover o cabeçalho de resposta "Servidor" por meio da configuração, mas você pode implementar um
HttpModule
para remover cabeçalhos HTTP específicos, conforme descrito em Encobrindo seu aplicativo Web do ASP.NET MVC no IIS 7 e em como remover o servidor- x-aspnet-version-x-aspnetmvc-version-e-x-powered by-the-response-header-in-iis7 .fonte
Conforme mostrado em Removendo cabeçalhos de servidor padrão na página Sites do Windows Azure , você pode remover cabeçalhos com o seguinte:
Isso remove o cabeçalho do servidor e os cabeçalhos X.
Isso funcionou localmente nos meus testes no Visual Studio 2015.
fonte
No Asp.Net Core, você pode editar os arquivos web.config da seguinte forma:
Você pode remover o cabeçalho do servidor nas opções do Kestrel:
fonte
Confira este blog Não use código para remover cabeçalhos. É instável de acordo com a Microsoft
Minha opinião sobre isso:
fonte
Por uma questão de integridade, existe outra maneira de remover o
Server
cabeçalho, usando o regedit.Veja este blog do MSDN .
Prefiro encontrar uma solução adequada usando o Web.config, mas o uso
<rewrite>
não é bom porque requer a instalação do módulo de reescrita e, mesmo assim, ele não remove o cabeçalho, apenas o esvazia.fonte
Você pode alterar qualquer cabeçalho ou qualquer coisa ao
Application_EndRequest()
tentar issofonte
O cabeçalho X-Powered-By é adicionado pelo IIS à resposta HTTP, para que você possa removê-lo mesmo no nível do servidor via Gerenciador do IIS:
Você pode usar o web.config diretamente:
fonte