यह IIS कर्नेल स्तर में सही अवरुद्ध है। एक परीक्षण के रूप में मैंने IIS में प्रत्येक मॉड्यूल को बाहर निकाला ताकि इसमें स्थिर पेज हैंडलर भी न हो, और इसने 400 त्रुटि संदेश प्रदर्शित किया।
मुझे विश्वास नहीं है कि यह संभव है कि आईआईएस के साथ ऐसा हो। आपके द्वारा उल्लिखित रजिस्ट्री सेटिंग्स अन्य प्रकार के प्रतिबंधित वर्णों के लिए हैं। मैंने उस कार्यक्षमता को बदलने के लिए एक लीवर नहीं देखा है।
आपका लक्ष्य क्या टाल रहा है? यह आपकी हमले की सतह को व्यापक रूप से खोलता है, और मैं अधूरे यूआरएल से बचने के क्रम को अवरुद्ध करने के परिणामस्वरूप खो जाने वाले कानूनी आगंतुक की कल्पना नहीं कर सकता।
Update2:
यहाँ इस पर तीन महान लिंक हैं। IIS टीम से नाज़िम लाला और वेड हिल्मो दोनों ने आपके सवाल पर चर्चा के कारण इस बारे में ब्लॉग किया है। इसके अलावा स्कॉट हंसेलमैन के पास querystring भाग पर एक शानदार पोस्ट है। .NET:
अद्यतन:
मैंने आधिकारिक जवाब पाने के लिए IIS टीम के एक सदस्य के साथ जाँच की। उन्होंने उल्लेख किया कि% RFC 1738 ( http://www.ietf.org/rfc/rfc1738.txt ) के अनुसार एक असुरक्षित चरित्र माना जाता है ।
यहाँ रीलेवेंट टेक्स्ट है:
असुरक्षित:
वर्ण कई कारणों से असुरक्षित हो सकते हैं। अंतरिक्ष वर्ण असुरक्षित है क्योंकि महत्वपूर्ण स्थान गायब हो सकते हैं और महत्वहीन स्थान तब पेश किए जा सकते हैं जब URL को स्थानांतरित या टाइपसेट या वर्ड-प्रोसेसिंग कार्यक्रमों के उपचार के अधीन किया जाता है। वर्ण "<" और ">" असुरक्षित हैं क्योंकि उनका उपयोग मुफ्त पाठ में URL के आसपास के सीमांकक के रूप में किया जाता है; उद्धरण चिह्न ("" ") का उपयोग कुछ सिस्टम में URL को सीमांकित करने के लिए किया जाता है। वर्ण" # "असुरक्षित है और इसे हमेशा एन्कोड किया जाना चाहिए क्योंकि इसका उपयोग वर्ल्ड वाइड वेब में और अन्य प्रणालियों में एक टुकड़ा या एंकर से URL को हटाने के लिए किया जाता है।" पहचानकर्ता जो इसका अनुसरण कर सकता है। वर्ण "%" असुरक्षित है क्योंकि इसका उपयोग अन्य वर्णों के एन्कोडिंग के लिए किया जाता है। अन्य वर्ण असुरक्षित हैं क्योंकि गेटवे और अन्य परिवहन एजेंट कभी-कभी ऐसे वर्णों को संशोधित करने के लिए जाने जाते हैं। ये वर्ण "{", "}", "|", "\", "^", "~", "[", "]", और "` "हैं।
सभी असुरक्षित वर्णों को हमेशा URL के भीतर एन्कोड किया जाना चाहिए। उदाहरण के लिए, वर्ण "#" को उन सिस्टमों में भी URL के अंदर एनकोड किया जाना चाहिए जो सामान्य रूप से खंड या एंकर आइडेंटिफ़ायर से नहीं निपटते हैं, ताकि यदि URL को किसी अन्य सिस्टम में कॉपी किया जाए जो उनका उपयोग करता है, तो उसे बदलना आवश्यक नहीं होगा URL एन्कोडिंग।
इसलिए आईआईएस ने मुख्य रूप से अपनी हमले की सतह को कम करने के लिए एक सक्रिय सुरक्षा उपाय को मुख्य स्तर पर ब्लॉक कर दिया है।