Remove Reponse Header on ASP.Net MVC – 移除 ASP.Net MVC 的響應頭

最近公司終於分配了一些比較有趣的任務給我
可以明正言順地在公司做Research
之後測試
這個任務就是增強公司的那個ASP.Net MVC 網站的保安
以免被人入侵

最了一些research之後 發現有很多東西可以做 以減少被入侵的風險
今天想介紹給大家的是把 如何把MVC 的 Server Response Header 移除

原因
當有某一些安全漏洞被發現時
E.G. 針前某一些web server或 programming language
如果你的 web site的 Reponse Header把你的Server Config都 Response出來的話
那麼入侵者便可以得容易知道你的網站可以是下一個目標

E.G.

Default的ASP.Net MVC Website Response Header會把 Web Server的 資料
E.G. IIS 是什麼 Version
用那一個.Net Framework和那一個 ASP.Net Version 都沒有保留地 response出來
Google Chrome Console website response header

解決方法:

Global.asax 上 加入以下的 程式碼

  protected void Application_PreSendRequestHeaders()
        {
            Response.Headers.Remove("Server");
            Response.Headers.Remove("X-AspNet-Version");
            Response.Headers.Remove("X-AspNetMvc-Version");
            Response.Headers.Remove("X-Powered-By");
         
        }
        

Hope you find it useful

2 thoughts on “Remove Reponse Header on ASP.Net MVC – 移除 ASP.Net MVC 的響應頭

    1. ShareChiWai Post author

      你好, Nice to meet you
      感謝你的留言 [很久很久很久沒有人留言給我了]
      我在IIS 7.5 測試過 X-Powered-By 是可以用 IIS 的 Setting 移除的 =)

      有時間我們一起交流交流

      Reply

Leave a Reply