214 votes

Comment supprimer les en-têtes HTTP par défaut ASP.Net MVC?

Chaque page d'une application MVC avec laquelle je travaille définit ces en-têtes HTTP dans les réponses:

 X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
X-AspNetMvc-Version: 2.0
 

Comment est-ce que je les empêche de montrer?

357voto

RedFilter Points 84190

Le "powered by" est un en-tête personnalisé dans IIS. Changer cela dépend de la version de IIS que vous utilisez. Pour des informations sur la façon de modifier ou de supprimer, voir ici:

http://www.iis.net/ConfigReference/system.webServer/httpProtocol/customHeaders

Pour supprimer le MVC en-tête,

Mondiale.asax, dans l'Application de Début de l'événement:

MvcHandler.DisableMvcResponseHeader = true;

Mettez-le en web.config de se débarrasser de la X-AspNet-Version d'en-tête:

<system.web>
<httpRuntime enableVersionHeader="false" />
</system.web>

117voto

bkaid Points 29335

Vous pouvez également les supprimer en ajoutant du code à votre fichier global.asax:

  protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
 {
   HttpContext.Current.Response.Headers.Remove("X-Powered-By");
   HttpContext.Current.Response.Headers.Remove("X-AspNet-Version");
   HttpContext.Current.Response.Headers.Remove("X-AspNetMvc-Version");
   HttpContext.Current.Response.Headers.Remove("Server");
 }
 

52voto

Kevin Hakanson Points 15498

J'ai trouvé cette configuration dans mon web.config qui a New Web Site... créé dans Visual Studio (par opposition à un New Project...). Depuis que la question des états d'un ASP.NET application MVC, pas comme pertinents, mais encore une option.

<system.webServer>
  <httpProtocol>
    <customHeaders>
      <clear />
      <remove name="X-Powered-By" />
    </customHeaders>
   </httpProtocol>
</system.webServer>

Mise à jour: Aussi, Troy Hunt a un article intitulé Chut... ne laissez pas vos en-têtes de réponse de parler trop fort avec les étapes détaillées sur la suppression de ces en-têtes ainsi qu'un lien vers son ASafaWeb outil d'analyse pour eux et d'autres configurations de sécurité.

34voto

RonyK Points 507

Comme décrit dans la Dissimulation de votre ASP.NET MVC de l'Application Web sur IIS 7, vous pouvez désactiver les X-AspNet-Version en-tête de l'application de la suivante à la section de configuration de votre site web.config:

<system.web> 
  <httpRuntime enableVersionHeader="false"/> 
</system.web>

et supprimer le X-AspNetMvc-Version-tête en modifiant votre Global.asax.cs comme suit:

protected void Application_Start() 
{ 
    MvcHandler.DisableMvcResponseHeader = true; 
}

Comme décrit dans les en-Têtes Personnalisés , Vous pouvez supprimer le "X-Powered-By" en-tête de l'application de la suivante à la section de configuration de votre site web.config:

<httpProtocol>
   <customHeaders>
      <clear />
   </customHeaders>
</httpProtocol>

Il n'y a pas de moyen facile de supprimer le "Serveur" en-tête de réponse via la configuration, mais vous pouvez mettre en œuvre un HttpModule pour supprimer des en-Têtes HTTP, comme décrit dans la Dissimulation de votre ASP.NET MVC de l'Application Web sur IIS 7 et dans how-to-remove-server-x-aspnet-version-x-aspnetmvc-version-and-x-powered-by-from-the-response-header-in-iis7.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X