Các thông tin về phiên bản được sử dụng bởi một kẻ tấn công sẽ khai thác để tấn công vào hệ thống.
Khi trình duyệt gửi một request lên server, các thông tin version sẽ đi theo header của response trả về cho trình duyệt như [Server, X-AspNet-Version,X-AspNetMvc-Version, X-Powered-By].
Server sẽ hiển thị thông tin của web server nào đang được sử dụng.
X-AspNet-Version hiển thị phiên bản ASP.NET được sử dụng
X-AspNetMvc-Version hiển thị phiên bản của ASP.NET MVC
X-Powered-By hiển thị phiên bản framework mà website đang chạy.
Giải pháp:
1. Để loại bỏ thông tin X-AspNetMvc-Version ở header
Để loại bỏ thông tin X-AspNetMvc-Version hiển thị phiên bản của ASP.NET MVC khi chúng ta sử dụng ASP.NET MVC.
Hãy set [MvcHandler.DisableMvcResponseHeader = true;] trong sự kiện Application_Start trong file Global.asax
Sau khi đã loại bỏ X-AspNetMvc-Version
2) Để loại bỏ X-AspNet-Version và Server header
Để loại bỏ thông tin Server header hiển thị thông tin của web server và header X-AspNet-Version hiển thị thông tin chi tiết về ASP.NET version.
Chỉ cần thêm một event [Application_PreSendRequestHeaders()] vào file Global.asax để remove header mà chúng ta cần.
protected void Application_PreSendRequestHeaders()
{
Response.Headers.Remove("Server"); //Remove Server Header
Response.Headers.Remove("X-AspNet-Version"); //Remove X-AspNet-Version Header
}
Sau khi loại bỏ X-AspNet-Version header và Server header.
3) Để loại bỏ X-Powered-By header
Để loại bỏ response X-Powered-By header hiển thị thông tin framework nào mà website đang chạy.
Chỉ cần thêm thẻ dưới System.WebServer trong web.config sẽ bỏ header [X-Powered-By]
<httpprotocol>
<customheaders>
</customheaders>
</httpprotocol>
Thêm custom header vào Web.config để loại bỏ Response header
Sau khi loại bỏ header X-Powered-By
Trích nguồn từ: (codeproject.com)