Scott Mitchell cung cấp trong một bài đăng blog các giải pháp để loại bỏ các tiêu đề không cần thiết .
Như đã nói ở đây trong các câu trả lời khác, đối với Servertiêu đề, có giải pháp mô-đun http hoặc giải pháp web.config cho IIS 10+ hoặc bạn có thể sử dụng URLRewrite thay thế cho việc điền vào nó .
Giải pháp thiết thực nhất cho thiết lập (IIS 10 +) cập nhật đang sử dụng removeServerHeadertrong web.config:
<system.webServer>
...
<security>
<requestFiltering removeServerHeader="true" />
</security>
...
</system.webServer>
Đối với X-AspNet-Versionvà X-AspNetMvc-Version, anh ấy cung cấp một cách tốt hơn là loại bỏ chúng trên mỗi phản hồi: đơn giản là hoàn toàn không tạo ra chúng.
Sử dụng enableVersionHeaderđể tắt X-AspNet-Version, trong web.config
<system.web>
...
<httpRuntime enableVersionHeader="false" />
...
</system.web>
Sử dụng MvcHandler.DisableMvcResponseHeadertrong sự kiện .Net Application_Start để tắtX-AspNetMvc-Version
MvcHandler.DisableMvcResponseHeader = true;
Và cuối cùng, xóa trong cấu hình IIS X-Powered-Bytiêu đề tùy chỉnh trong web.config.
<system.webServer>
...
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
...
</system.webServer>
Hãy lưu ý, nếu bạn có ARR (Định tuyến yêu cầu ứng dụng), nó cũng sẽ thêm ARR của chính nó X-Powered-By, điều này sẽ không bị xóa bởi cài đặt tiêu đề tùy chỉnh. Cái này phải được xóa thông qua cấu hình IIS Manager, Editor trên IIS root (không phải trên site): đi tới system.webServer/proxynút và đặt arrResponseHeaderthành false. Sau một IISReset, nó được tính đến.
(Tôi đã tìm thấy cái này ở đây , ngoại trừ bài đăng này nói về cách cấu hình IIS 6.0 cũ.)
Đừng quên rằng giải pháp theo mã ứng dụng không áp dụng theo mặc định cho tiêu đề được tạo trên nội dung tĩnh (bạn có thể kích hoạt runAllManagedModulesForAllRequestsđể thay đổi điều đó, nhưng nó khiến tất cả các yêu cầu chạy đường ống .Net). Nó không phải là một vấn đề X-AspNetMvc-Versionvì nó không được thêm vào nội dung tĩnh (ít nhất là nếu yêu cầu tĩnh không chạy trong đường ống .Net).
Lưu ý phụ: khi mục đích là che giấu công nghệ đã qua sử dụng, bạn cũng nên thay đổi tên cookie .Net chuẩn ( .ASPXAUTHnếu kích hoạt xác thực hình thức (sử dụng namethuộc tính trên formsthẻ trong web.config), ASP.NET_SessionId(sử dụng <sessionState cookieName="yourName" />trong system.webthẻ dưới web.config ), __RequestVerificationToken(thay đổi nó bằng mã với AntiForgeryConfig.CookieName, nhưng tiếc là không áp dụng cho đầu vào ẩn mà hệ thống này tạo ra trong html)).