मेरे वर्तमान प्रोजेक्ट पर "सख्त" चक्र के माध्यम से होने के बाद - मैंने उस दृष्टिकोण के बारे में ब्लॉग किया, जिसमें निम्नलिखित हेडर को हटाने के लिए एक HTTPModule शामिल है :
सर्वर,
X-AspNet-Version,
X-AspNetMvc-Version,
X-Powered-By
Pertinent टुकड़े नीचे पुन: प्रस्तुत:
लेकिन कॉन्फ़िगरेशन के माध्यम से सर्वर प्रतिक्रिया हेडर को निकालने का कोई आसान तरीका नहीं है। सौभाग्य से IIS7 में एक प्रबंधित प्लगेबल मॉड्यूल इंफ्रास्ट्रक्चर है जो आपको आसानी से इसकी कार्यक्षमता बढ़ाने की अनुमति देता है। नीचे HTTP रिस्पांस हेडर्स की एक निर्दिष्ट सूची को हटाने के लिए HttpModule का स्रोत दिया गया है:
namespace Zen.Core.Web.CloakIIS
{
#region Using Directives
using System;
using System.Collections.Generic;
using System.Web;
#endregion
/// <summary>
/// Custom HTTP Module for Cloaking IIS7 Server Settings to allow anonymity
/// </summary>
public class CloakHttpHeaderModule : IHttpModule
{
/// <summary>
/// List of Headers to remove
/// </summary>
private List<string> headersToCloak;
/// <summary>
/// Initializes a new instance of the <see cref="CloakHttpHeaderModule"/> class.
/// </summary>
public CloakHttpHeaderModule()
{
this.headersToCloak = new List<string>
{
"Server",
"X-AspNet-Version",
"X-AspNetMvc-Version",
"X-Powered-By",
};
}
/// <summary>
/// Dispose the Custom HttpModule.
/// </summary>
public void Dispose()
{
}
/// <summary>
/// Handles the current request.
/// </summary>
/// <param name="context">
/// The HttpApplication context.
/// </param>
public void Init(HttpApplication context)
{
context.PreSendRequestHeaders += this.OnPreSendRequestHeaders;
}
/// <summary>
/// Remove all headers from the HTTP Response.
/// </summary>
/// <param name="sender">
/// The object raising the event
/// </param>
/// <param name="e">
/// The event data.
/// </param>
private void OnPreSendRequestHeaders(object sender, EventArgs e)
{
this.headersToCloak.ForEach(h => HttpContext.Current.Response.Headers.Remove(h));
}
}
}
सुनिश्चित करें कि आप असेंबली पर हस्ताक्षर करते हैं, फिर आप इसे अपने वेब सर्वर के GAC में स्थापित कर सकते हैं और बस अपने आवेदन के web.config के लिए निम्न संशोधन कर सकते हैं (या यदि आप चाहते हैं कि यह विश्व स्तर पर लागू हो, मशीन के लिए ।config:
<configuration>
<system.webServer>
<modules>
<add name="CloakHttpHeaderModule"
type="Zen.Core.Web.CloakIIS.CloakHttpHeaderModule, Zen.Core.Web.CloakIIS,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=<YOUR TOKEN HERE>" />
</modules>
</system.webServer>
</configuration>