Sur IIS 7.0
integrated mode
après avoir supprimé tous les en-têtes avec Response.ClearHeaders()
IIS ajouterait d'autres en-têtes comme Server
y X-Powered-By
qui révèle de bonnes informations aux pirates. Comment puis-je arrêter ce comportement (en considérant que je dois toujours ajouter mes en-têtes personnalisés) ?
Réponses
Trop de publicités?Vous pouvez ajouter ceci à votre Web.Config :
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
</system.webServer>
Mise à jour : si vous utilisez le framework MVC, je vous recommande également de supprimer l'option X-AspNetMvc-Version
y X-AspNet-Version
ainsi que les en-têtes. Pour ce faire, il faut définir MvcHandler.DisableMvcResponseHeader = true
dans votre Global.asax
et <system.web><httpRuntime enableVersionHeader="false" /></system.web>
dans votre Web.config
respectivement.
Pour le mode intégré de IIS7+, eth0 l'a : <customHeaders>
dans le web.config. Merci pour cela. Quant à l'en-tête "Server", si vous utilisez MVC, vous pouvez simplement ajouter :
protected void Application_PreSendRequestHeaders()
{
Response.Headers.Remove("Server");
}
à votre classe MvcApplication dans Global.asax. Sinon, vous pouvez simplement ajouter un module Http personnalisé, gérant l'événement PreSendRequestHeaders, et faire la même chose.
Je voudrais ajouter ici que pour les versions ASP.NET Core, où il n'y a plus de fichier web.config, une approche différente est nécessaire.
J'ai fait les ajustements suivants pour supprimer les en-têtes dans ASP.NET Core 2.1 :
Vous pouvez supprimer l'en-tête x-powered-by en remplaçant
<customHeaders>
<clear />
<add name="X-Powered-By" value="ASP.NET" />
</customHeaders>
avec
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
dans le fichier applicationhost.config qui se trouve dans le fichier .vs. \config du projet.
L'en-tête du serveur peut être supprimé en ajoutant
.UseKestrel(c => c.AddServerHeader = false)
dans le fichier Program.cs.
- Réponses précédentes
- Plus de réponses