मैंने Google पर कैननिकल प्रतिनिधित्व के अर्थ के लिए खोज की और दस्तावेजों को पूरी तरह से गुप्त बना दिया। क्या कोई भी कैनोलिक प्रतिनिधित्व का त्वरित विवरण प्रदान कर सकता है और वेबसाइटों में कैननिकल प्रतिनिधित्व हमलों के लिए कुछ सामान्य भेद्यताएं भी प्रदान कर सकती हैं?कैनोनिकल प्रतिनिधित्व का मतलब क्या है और वेबसाइटों की इसकी संभावित भेद्यता
उत्तर
कैनोनिकलिसेशन वह प्रक्रिया है जिसके द्वारा आप इनपुट नाम लेते हैं, जैसे फ़ाइल नाम या स्ट्रिंग, और इसे मानक प्रतिनिधित्व में बदल दें।
उदाहरण के लिए यदि आपका वेब एप्लिकेशन केवल सी: \ वेबसाइट \ mydomain के अंतर्गत फ़ाइलों तक पहुंच की इजाजत देता है तो आम तौर पर फाइलनामों का जिक्र करने वाला कोई इनपुट भौतिक, सीधा पथ होता है, जो सापेक्ष पथ का उपयोग करता है। यदि आप सी: \ वेबसाइट \ mydomain \ example \ example.txt को खोलना चाहते हैं तो उस फ़ंक्शन में एक इनपुट उदाहरण \ example.txt हो सकता है। यह काम करना मुश्किल है अगर यह आपकी वेबसाइट की सीमाओं के बाहर जाता है, तो कैनोलिकिसेशन फ़ंक्शन एप्लिकेशन निर्देशिका को देखेगा और उस सापेक्ष पथ को भौतिक एक में बदल देगा, सी: \ वेबसाइट \ mydomain \ example \ example.txt। यह जांचना स्पष्ट रूप से आसान है क्योंकि आप फ़ाइल पथ की शुरुआत पर स्ट्रिंग की तुलना करते हैं।
एचटीएमएल इनपुट के लिए आप% 20 जैसे इनपुट लेते हैं और उन्हें अनएकोडिंग द्वारा कैनोनिकलिस करते हैं, इसलिए यह एक स्थान में बदल जाएगा। यह एक अच्छा विचार है क्योंकि एन्कोडिंग के विभिन्न तरीकों की संख्या असंख्य है, कैनोनिकलिसेशन का मतलब है कि आप सभी एन्कोडिंग विविधताओं को कवर करने के बजाय केवल डीकोडेड स्ट्रिंग की जांच करेंगे।
असल में आप इनपुट ले रहे हैं जो तर्कसंगत समकक्ष है और उन्हें एक मानक रूप में परिवर्तित कर रहा है जिसे आप कार्य कर सकते हैं।
इतनी संभावित रूप से एक इनपुट क्षेत्र में मैं सामान्य स्ट्रिंग sanitization बाईपास करने के लिए एक एसक्यूएल इंजेक्शन हमला या संभव एक्सएसएस कोशिश कर सकते हैं? – predhme
स्वच्छता अलग है। आम तौर पर एक एसक्यूएल इंजेक्शन हमला एन्कोडिंग का उपयोग नहीं करेगा, इसलिए यह एक कैनोलिकिसेशन मुद्दा नहीं है। एक्सएसएस हो सकता है, यह आपके काम पर निर्भर करता है। यदि आप इसे आउटपुट करने से पहले सभी इनपुट एन्कोड कर रहे हैं तो नहीं, यह नहीं है। हालांकि यदि आप श्वेत सूची का प्रयास कर रहे हैं, या किसी स्ट्रिंग के कुछ हिस्सों को और खराब कर देते हैं तो आप पहले स्ट्रिंग को कैनोनिकल कर सकते हैं, उदाहरण के लिए,
कैननिकल (मुझे लगता है) का अर्थ है कि कंसोल इनपुट "सामान्य व्यवहार" है। गैर-कैननिकल का अर्थ है कि इनपुट गैर मानक है और विशेष ज्ञान की आवश्यकता है, जैसे लिनक्स पर "vi" के इनपुट व्यवहार।
स्रोत
2009-07-22 18:54:43 djangofan
लेकिन यह वेबसाइटों पर कैसे लागू होता है और कमजोर होता है? – predhme
कैनोनिकल –
की परिभाषा के लिए blowdart का उत्तर देखें मेरा जवाब Blowdarts उत्तर के साथ बिल्कुल भी संघर्ष नहीं करता है सिवाय इसके कि मैं इसे एक वाक्य में समझा सकता हूं। प्रोग्रामर के लिए, दक्षता कुंजी है। – djangofan
निम्नलिखित विवरण "अनुप्रयोग सुरक्षा और विकास STIG" से है here पाया:
स्रोत
2011-02-04 18:30:46 CrazyPyro
कैनोनिकलिसेशन का मतलब है कि अपने सरलतम रूप में प्राप्त डेटा को कम करना, इसका उपयोग इनपुट सत्यापन के लिए किया जाता है।
स्रोत
2014-04-10 18:35:02 germangti