Asp.Net`te Güvenli IIS Yanıt Üstbilgilerini Yapılandırma
![Asp Net te Güvenli IIS Yanıt Üstbilgilerini Yapılandırma](/image/w=600;h=400;r=false/upload/yazilar/2019/11/8/asp-net-guvenli-iis-yanit-ustbilgileri_3cad7b82-9cbf-4d1c-81c9-e663b290655c.jpg)
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. :)
#ASP-NET #header #response #secure #iis