Asp.Net`te Güvenli IIS Yanıt Üstbilgilerini Yapılandırma

Asp Net te Güvenli IIS Yanıt Üstbilgilerini Yapılandırma

Server'dan Client'a dönen yanıt içindeki güvenlik gereği kaldırmanız gereken header bilgilerini nasıl kaldırırsınız?

Yukarıdaki header bilgilerini incelediğimizde, Client'a göndermemize gerek olmayan bazı header bilgilerini görmekteyiz.

Aşağıdaki header bilgilerini gizlememiz gerekmektedir:

Server
X-AspNet-Version
X-AspNetMvc-Version
X-Powered-By

Bu bilgileri saklamak istersek neler yapmalıyız, teker teker inceleyelim:

Server başlığı

Global.asax dosyamız yoksa oluşturalım ve içine şu metodu ekleyelim:

protected void Application_BeginRequest(object sender, EventArgs e) {
  var app = sender as HttpApplication;
  if (app != null && app.Context != null) {
    app.Context.Response.Headers.Remove("Server");
  }
}


X-AspNet-Version Başlığı

Web.config dosyamızı açalım ve <system.web> altında <httpRuntime> elementi oluşturalım (eğer yoksa) ve enableVersionHeader değerini düzenleyelim:

<httpRuntime maxRequestLength="4096" targetFramework="4.5" enableVersionHeader="false"/>


X-AspNetMvc-Version Başlığı

Global.asax dosyamızın içine şu metodu ekleyelim:

protected void Application_Start()
{
  //diğer kodlarınız.... 
  MvcHandler.DisableMvcResponseHeader = true; 
}

 

 

X-Powered-By Başlığı

web.config dosyamızı açalım, <system.webServer> altındaki <httpProtocol> elementine şunu ekleyelim:

<httpProtocol>
  <customHeaders>
    <remove name="X-Powered-By"/>
  </customHeaders>
</httpProtocol>

 

Bu işlemlerin ardından server başlıklarını tekrar inceleyelim:


X-SourceFiles başlığı, dosya yolunun Base64 ile şifrelenmiş halini barındırır. Sadece localden bağlandığınızda karşınıza çıktığı için bunu dert etmemize gerek yok.

Öte yandan şimdi de güvenliğimiz açısından eklememiz gereken başlıkları inceleyelim:

X-Frame-Options
X-XSS-Protection
X-Content-Type-Options

Bu başlıkları eklemek için web.config dosyamızda <system.webServer> altında <httpProtocol> elementini düzenlemeliyiz:

<httpprotocol>
  <customheaders>
    <remove name="X-Powered-By" />
    <add name="X-Frame-Options" value="DENY" />
    <add name="X-XSS-Protection" value="1; mode=block" />
    <add name="X-Content-Type-Options" value="nosniff " />
  </customheaders>
</httpprotocol>

 

Tüm bu işlemlerin ardından server başlıklarını tekrar inceleyelim:

 

Herkese iyi kodlamalar... 

Not: Güvenlik önemlidir. :)