स्कॉट मिचेल अनावश्यक हेडर को हटाने के लिए एक ब्लॉग पोस्ट समाधान प्रदान करता है ।
जैसा कि पहले से ही अन्य उत्तरों में यहाँ कहा गया है, Server
हेडर के लिए, http मॉड्यूल समाधान है , या IIS 10+ के लिए एक web.config समाधान है , या आप URLRewrite का उपयोग इसे खाली करने के बजाय कर सकते हैं। ।
अप-टू-डेट (IIS 10 +) सेटअप के लिए सबसे व्यावहारिक समाधान removeServerHeader
web.config में उपयोग किया जा रहा है:
<system.webServer>
...
<security>
<requestFiltering removeServerHeader="true" />
</security>
...
</system.webServer>
के लिए X-AspNet-Version
औरX-AspNetMvc-Version
बस नहीं उन सब पर पैदा:, वह प्रत्येक प्रतिक्रिया पर उन्हें हटाने की तुलना में एक बेहतर तरीका प्रदान करता है।
enableVersionHeader
अक्षम करने के लिए उपयोग करें X-AspNet-Version
, web.config में
<system.web>
...
<httpRuntime enableVersionHeader="false" />
...
</system.web>
MvcHandler.DisableMvcResponseHeader
अक्षम करने के लिए .Net Application_Start ईवेंट का उपयोग करेंX-AspNetMvc-Version
MvcHandler.DisableMvcResponseHeader = true;
और अंत में, X-Powered-By
web.config में कस्टम हेडर को IIS कॉन्फ़िगरेशन में हटा दें ।
<system.webServer>
...
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
...
</system.webServer>
खबरदार, यदि आपके पास एआरआर (एप्लीकेशन रिक्वेस्ट राउटिंग) है, तो यह स्वयं को भी जोड़ देगा X-Powered-By
, जिसे कस्टम हेडर सेटिंग्स द्वारा हटाया नहीं जाएगा। इसे IIS प्रबंधक, IIS रूट पर संपादक कॉन्फ़िगरेशन (साइट पर नहीं) के माध्यम से हटाया जाना चाहिए: system.webServer/proxy
नोड पर जाएं और सेट arrResponseHeader
करें false
। एक के बाद IISReset
, इसे ध्यान में रखा जाता है।
(मुझे यह यहाँ मिल गया है , सिवाय इस पोस्ट के पुराने IIS 6.0 चीजों को कॉन्फ़िगर करने का तरीका है।)
यह मत भूलो कि एप्लिकेशन कोड द्वारा समाधान स्थिर सामग्री पर उत्पन्न हेडर के लिए डिफ़ॉल्ट रूप से लागू नहीं होता है (आप runAllManagedModulesForAllRequests
इसे बदलने के लिए सक्रिय कर सकते हैं , लेकिन यह चलाने के लिए सभी अनुरोधों का कारण बनता है। नेट पाइपलाइन)। यह तब से कोई समस्या नहीं है X-AspNetMvc-Version
क्योंकि इसमें स्टैटिक कंटेंट नहीं जोड़ा गया है (कम से कम अगर स्टैटिक रिक्वेस्ट को .Net पाइपलाइन में नहीं चलाया जाता है)।
साइड नोट: जब उद्देश्य का उपयोग की गई तकनीक को क्लोक करने के लिए है, तो आपको मानक .Net कुकी नाम भी बदलना चाहिए ( .ASPXAUTH
यदि प्रपत्र सक्रिय हैं ( web.config में टैग name
पर विशेषता का उपयोग करें forms
), ASP.NET_SessionId
( टैग के <sessionState cookieName="yourName" />
तहत web.config में उपयोग करें system.web
), __RequestVerificationToken
(इसे बदलें ) कोड के साथ AntiForgeryConfig.CookieName
, लेकिन दुर्भाग्य से छिपे हुए इनपुट पर लागू नहीं होता है यह प्रणाली HTML में उत्पन्न होती है))।