Убираем ненужные HTTP заголовки из ASP.NET MVC

Если посмотреть на стандартные заголовки asp.net mvc приложения, можно заметить следующие:

стандартные заголовки asp.net mvc

Эти заголовки никак не влияют на работоспособность сайта, в некоторых случаях они даже лишние. Эти заголовки помогают поисковым ботам больше узнать о вашем сайте. Понять используемые технологии. Также они помогуть понять устройство сервера и могут открывать уязвимости. Я считаю, что эти заголовки следует всегда выключать.

Server

Для начала выключим (или заменим) заголовок Server. Добавим следующий код в global.asax.

protected void Application_PreSendRequestHeaders()
{
    this.Response.Headers.Remove( “Server” );
}

X-Powered-By

Этот заголовок можно выключить в локальном web.config или в глобальном web.config на уровне всего сервера. Сейчас рассмотрим локальный вариант.

<system.webServer>
   <httpProtocol>
     <customHeaders>
       <remove name=“X-Powered-By” />
     </customHeaders>
   </httpProtocol>
</system.webServer>

X-AspNet-Version

X-AspNet-Version предоставляет информацию о версии asp.net, на которой работает сайт. Некоторые версии имеют свои особенности. Не следует помогать Еве раскрывая такую информацию. Тоже выключаем.

<httpRuntime enableVersionHeader=“false” />

X-AspNetMvc-Version

X-AspNetMvc-Version отправляет версию фреймворка MVC. Выключается в методе старта приложения в global.asax.

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

Комментарии

comments powered by Disqus