दिलचस्प पोस्ट
System.currentTimeMillis बनाम System.nanoTime एंड्रॉइड: फेसबुक दोस्तों की सूची प्राप्त करें iPhone UITableView – हटाएं बटन वास्तव में अच्छा, खराब यूटीएफ -8 उदाहरण परीक्षण डेटा एसएसआईएस 2012 पैकेज को निष्पादित करना जिसमें बाह्य अनुप्रयोग से स्क्रिप्ट घटक हैं स्प्रिंग सुरक्षा में भूमिका और मान्य प्राधिकरण के बीच का अंतर गतिशील रूप से एक वेब पेज का शीर्षक कैसे बदल सकता है? SASS और ब्रेकपॉइंट का उपयोग करते हुए मीडिया प्रश्नों को मर्ज करना (उत्तर-के) Code-behind में DataTemplate के अंदर एक WPF तत्व ढूंढें घुमाए गए बफ़ेदार इमेज जेनरेटर के अंदर एंड्रॉइड – समर्थन v7 के साथ xml में selectableBackground चुनें कैसे jQueryUI संवाद बॉक्स गतिशील रूप से सामग्री लोड है घुमाओ HTML ड्रॉस्ट्रिंग मैं कंसोल का उपयोग करके कॉलम में पाठ कैसे संरेखित कर सकता हूं। WrightLine? वाइल्डकार्ड के साथ नया जेनेरिक ऑब्जेक्ट बनाना

सर्वर रिस्पांस हेडर IIS7 निकालें

IIS7 से "सर्वर" प्रतिक्रिया हैडर को हटाने का कोई तरीका है? कुछ लेख दिखाए जा रहे हैं कि एचटीटीपी मॉड्यूल का उपयोग हम एक ही चीज़ प्राप्त कर सकते हैं। यह उपयोगी होगा यदि हमारे पास सर्वर पर व्यवस्थापक का अधिकार न हो इसके अलावा मैं ISAPI फ़िल्टर लिखना नहीं चाहता।

मेरे पास मेरे सर्वर पर व्यवस्थापक अधिकार हैं इसलिए मैं उपरोक्त सामान नहीं करना चाहता। तो, कृपया मुझे ऐसा करने में मदद करें।

वेब के समाधान से एकत्रित समाधान "सर्वर रिस्पांस हेडर IIS7 निकालें"

इसे अपने global.asax.cs में जोड़ें:

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

IIS7 में आपको एक HTTP मॉड्यूल का उपयोग करना होगा वीएस में कक्षा पुस्तकालय के रूप में निम्न बनाएं:

 namespace StrongNamespace.HttpModules { public class CustomHeaderModule : IHttpModule { public void Init(HttpApplication context) { context.PreSendRequestHeaders += OnPreSendRequestHeaders; } public void Dispose() { } void OnPreSendRequestHeaders(object sender, EventArgs e) { HttpContext.Current.Response.Headers.Set("Server", "Box of Bolts"); } } } 

फिर अपने web.config में निम्नलिखित जोड़ें, या आप इसे IIS के भीतर कॉन्फ़िगर करें (यदि आप IIS के भीतर कॉन्फ़िगर करते हैं, तो असेंबली जीएसी में होना चाहिए)।

 <configuration> <system.webServer> <modules> <add name="CustomHeaderModule" type="StrongNamespace.HttpModules.CustomHeaderModule" /> </modules> </system.webServer> </configuration> 

IIS UrlRewrite 2.0 का उपयोग करें

 <outboundRules> <rule name="Remove RESPONSE_Server" > <match serverVariable="RESPONSE_Server" pattern=".+" /> <action type="Rewrite" value="" /> </rule> </outboundRules> 

स्कॉट मिशेल अनावश्यक हेडर को हटाने के लिए एक ब्लॉग पोस्ट समाधान प्रदान करता है।

जैसा कि पहले से ही अन्य उत्तरों में कहा गया है, Server शीर्षलेख के लिए, http मॉड्यूल समाधान या UrlScan मॉड्यूल है। (URLScan मॉड्यूल IIS7.5 + में अधिक उपलब्ध नहीं है । इसे रिक्त करने के बजाय URLRewrite का उपयोग करें।)

X-AspNet-Version और X-AspNetMvc-Version , प्रत्येक प्रतिक्रिया पर उन्हें निकालने की तुलना में वह बेहतर तरीके प्रदान करता है: उन्हें बिल्कुल भी सृजन नहीं करना।

enableVersionHeader X-AspNet-Version को अक्षम करने के लिए enableVersionHeader उपयोग करें

 <httpRuntime enableVersionHeader="false" /> 

MvcHandler.DisableMvcResponseHeader का उपयोग करें। MvcHandler.DisableMvcResponseHeader में X-AspNetMvc-Version को अक्षम करने के लिए .Net Application_Start ईवेंट में

 MvcHandler.DisableMvcResponseHeader = true; 

और अंत में, IIS कॉन्फ़िगरेशन में X-Powered-By कस्टम हेडर X-Powered-By हटाएं।

यह मत भूलो कि एप्लिकेशन कोड द्वारा समाधान डिफ़ॉल्ट रूप से स्थिर सामग्री पर जेनरेट करने के लिए लागू नहीं होता है (आप उसे बदलने के लिए runAllManagedModulesForAllRequests सभी runAllManagedModulesForAllRequests को सक्रिय कर सकते हैं, लेकिन यह सभी अनुरोधों को चलाने के लिए .नेट पाइपलाइन चलाता है)। यह X-AspNetMvc-Version लिए कोई समस्या नहीं है क्योंकि यह स्थिर सामग्री पर नहीं जोड़ा गया है (कम से कम अगर स्थिर अनुरोध को नेट पाइपलाइन में नहीं चलाया जाता है)।

साइड नोट: जब प्रयोग किया गया तकनीक को ढंकना है, तो आपको मानक। नेट कुकी नाम भी बदलना चाहिए ( <sessionState cookieName="yourName" /> अगर फॉर्म एथ सक्रिय होता है (web.config में forms टैग पर name विशेषता का उपयोग name ), ASP.NET_SessionId ( <sessionState cookieName="yourName" /> system.web टैग के तहत web.config में <sessionState cookieName="yourName" /> , __RequestVerificationToken ( <sessionState cookieName="yourName" /> के साथ कोड द्वारा इसे बदलना है, लेकिन दुर्भाग्य से छिपी इनपुट पर लागू नहीं होता जो इस सिस्टम को HTML में उत्पन्न करता है))।

असल में कोडित मॉड्यूल और ग्लोबल.एसएक्स उदाहरण केवल ऊपर दिखाए गए वैध अनुरोधों के लिए काम करते हैं।

उदाहरण के लिए, अपने यूआरएल के अंत में <जोड़ दें और आपको "खराब अनुरोध" पृष्ठ मिलेगा जो अभी भी सर्वर हैडर को प्रदर्शित करता है। बहुत सारे डेवलपर्स इस पर ध्यान नहीं देते

प्रदर्शित रजिस्ट्री सेटिंग्स या तो काम नहीं करते हैं URLScan "सर्वर" शीर्षलेख को निकालने का एकमात्र तरीका है (कम से कम IIS 7.5 में)

या web.config में जोड़ें:

 <system.webServer> <httpProtocol> <customHeaders> <remove name="X-AspNet-Version" /> <remove name="X-AspNetMvc-Version" /> <remove name="X-Powered-By" /> <!-- <remove name="Server" /> this one doesn't work --> </customHeaders> </httpProtocol> </system.webServer> 

यूआरएल के उत्थान के उत्तर में , यहां web.config लिए पूरा एक्सएमएल है

 <system.webServer> <rewrite> <outboundRules> <rule name="Remove RESPONSE_Server" > <match serverVariable="RESPONSE_Server" pattern=".+" /> <action type="Rewrite" value="Company name" /> </rule> </outboundRules> </rewrite> </system.webServer> 

URL पुनर्लेखन

Server: को निकालने के लिए Server: हेडर, Global.asax , Global.asax ईवेंट को ढूंढें / बनाएं और एक पंक्ति जोड़ें ( बीके और यह ब्लॉग करने के लिए धन्यवाद यह कैसिनी / स्थानीय देव पर असफल भी नहीं होगा):

 protected void Application_PreSendRequestHeaders(object sender, EventArgs e) { // Remove the "Server" HTTP Header from response HttpApplication app = sender as HttpApplication; if (null != app && null != app.Request && !app.Request.IsLocal && null != app.Context && null != app.Context.Response) { NameValueCollection headers = app.Context.Response.Headers; if (null != headers) { headers.Remove("Server"); } } } 

यदि आप Azure / IIS7 पर सभी संबंधित शीर्षलेखों को निकालने के लिए एक पूर्ण समाधान चाहते हैं और कैसिनी के साथ भी काम करता है, तो यह लिंक देखें, जो इन हेडर्स को एचटीटीपी मॉड्यूल या यूआरएलएसकैन का उपयोग किए बिना अक्षम करने का सबसे अच्छा तरीका दिखाता है।

यदि आप शीर्ष लेख को हटाना चाहते हैं तो आप ल्यूकिफ़र के उत्तर के संक्षिप्त संस्करण का उपयोग कर सकते हैं:

 using System.Web; namespace Site { public sealed class HideServerHeaderModule : IHttpModule { public void Dispose() { } public void Init(HttpApplication context) { context.PreSendRequestHeaders += (sender, e) => HttpContext.Current.Response.Headers.Remove("Server"); } } } 

और फिर Web.config :

 <system.webServer> <modules runAllManagedModulesForAllRequests="true"> <add name="CustomHeaderModule" type="Site.HideServerHeaderModule" /> </modules> </system.webServer> 

HKLM\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\DisableServerHeader रजिस्ट्री प्रविष्टि को 1 REG_DWORD पर सेट करने का प्रयास करें

UrlScan AlternateServerName= तहत [options] का उपयोग कर सर्वर हैडर को भी निकाल सकता है।

एडीडीईग्रोस के उत्तर के बाद , URLScan के संस्करण के आधार पर, आप इसके बजाय [options] RemoveServerHeader=1 [options] तहत RemoveServerHeader=1 सकते हैं

मुझे यकीन नहीं है कि यह विकल्प यूआरएल के संस्करण में जोड़ा गया था, लेकिन यह संस्करण 2.5 और बाद में उपलब्ध है।

मुझे एक लेख मिला है, जो बताता है कि आईआरआईएस में ठीक से स्थापित करने के लिए हमें रजिस्ट्री को संपादित करने और उपकरण जैसे यूआरएलस्कैन के रूप में उपयोग करने की आवश्यकता क्यों है मैंने इसे हमारे सर्वरों पर चलाया और यह काम करता है: http://blogs.msdn.com/b/varunm/archive/2013/04/23/remove-unwanted-http-response-headers.aspx । यदि आप केवल यूआरएलएसकेएन का प्रयोग करते हैं लेकिन रजिस्ट्री परिवर्तन नहीं करते हैं, तो जब आप वर्ल्ड वाइड पब्लिशिंग सर्विस को रोक रहे हैं, तो आपका सर्वर एचटीपीसीएस फ़ाइल से सर्वर HTTP प्रतिक्रिया देगा। साथ ही, यहां UrlScan टूल का उपयोग करने के सामान्य पीफाफल्स हैं: http://msdn.microsoft.com/en-us/library/ff648552.aspx#ht_urlscan_008

IIS 10 में, हम ड्रू के दृष्टिकोण के समान समाधान का उपयोग करते हैं, अर्थात्:

 using System; using System.Web; namespace Common.Web.Modules.Http { /// <summary> /// Sets custom headers in all requests (eg "Server" header) or simply remove some. /// </summary> public class CustomHeaderModule : IHttpModule { public void Init(HttpApplication context) { context.PreSendRequestHeaders += OnPreSendRequestHeaders; } public void Dispose() { } /// <summary> /// Event handler that implements the desired behavior for the PreSendRequestHeaders event, /// that occurs just before ASP.NET sends HTTP headers to the client. /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void OnPreSendRequestHeaders(object sender, EventArgs e) { //HttpContext.Current.Response.Headers.Remove("Server"); HttpContext.Current.Response.Headers.Set("Server", "MyServer"); } } } 

और जाहिर है कि आपके प्रोजेक्ट (डों) में उस डीएलएल के संदर्भ और उस मॉड्यूल को भी संदर्भ जोड़ें जो आप चाहते हैं:

 <system.webServer> <modules> <!--Use http module to remove/customize IIS "Server" header--> <add name="CustomHeaderModule" type="Common.Web.Modules.Http.CustomHeaderModule" /> </modules> </system.webServer>