2009-07-22 11 views
5

मैंने Google पर कैननिकल प्रतिनिधित्व के अर्थ के लिए खोज की और दस्तावेजों को पूरी तरह से गुप्त बना दिया। क्या कोई भी कैनोलिक प्रतिनिधित्व का त्वरित विवरण प्रदान कर सकता है और वेबसाइटों में कैननिकल प्रतिनिधित्व हमलों के लिए कुछ सामान्य भेद्यताएं भी प्रदान कर सकती हैं?कैनोनिकल प्रतिनिधित्व का मतलब क्या है और वेबसाइटों की इसकी संभावित भेद्यता

उत्तर

8

कैनोनिकलिसेशन वह प्रक्रिया है जिसके द्वारा आप इनपुट नाम लेते हैं, जैसे फ़ाइल नाम या स्ट्रिंग, और इसे मानक प्रतिनिधित्व में बदल दें।

उदाहरण के लिए यदि आपका वेब एप्लिकेशन केवल सी: \ वेबसाइट \ mydomain के अंतर्गत फ़ाइलों तक पहुंच की इजाजत देता है तो आम तौर पर फाइलनामों का जिक्र करने वाला कोई इनपुट भौतिक, सीधा पथ होता है, जो सापेक्ष पथ का उपयोग करता है। यदि आप सी: \ वेबसाइट \ mydomain \ example \ example.txt को खोलना चाहते हैं तो उस फ़ंक्शन में एक इनपुट उदाहरण \ example.txt हो सकता है। यह काम करना मुश्किल है अगर यह आपकी वेबसाइट की सीमाओं के बाहर जाता है, तो कैनोलिकिसेशन फ़ंक्शन एप्लिकेशन निर्देशिका को देखेगा और उस सापेक्ष पथ को भौतिक एक में बदल देगा, सी: \ वेबसाइट \ mydomain \ example \ example.txt। यह जांचना स्पष्ट रूप से आसान है क्योंकि आप फ़ाइल पथ की शुरुआत पर स्ट्रिंग की तुलना करते हैं।

एचटीएमएल इनपुट के लिए आप% 20 जैसे इनपुट लेते हैं और उन्हें अनएकोडिंग द्वारा कैनोनिकलिस करते हैं, इसलिए यह एक स्थान में बदल जाएगा। यह एक अच्छा विचार है क्योंकि एन्कोडिंग के विभिन्न तरीकों की संख्या असंख्य है, कैनोनिकलिसेशन का मतलब है कि आप सभी एन्कोडिंग विविधताओं को कवर करने के बजाय केवल डीकोडेड स्ट्रिंग की जांच करेंगे।

असल में आप इनपुट ले रहे हैं जो तर्कसंगत समकक्ष है और उन्हें एक मानक रूप में परिवर्तित कर रहा है जिसे आप कार्य कर सकते हैं।

+0

इतनी संभावित रूप से एक इनपुट क्षेत्र में मैं सामान्य स्ट्रिंग sanitization बाईपास करने के लिए एक एसक्यूएल इंजेक्शन हमला या संभव एक्सएसएस कोशिश कर सकते हैं? – predhme

+1

स्वच्छता अलग है। आम तौर पर एक एसक्यूएल इंजेक्शन हमला एन्कोडिंग का उपयोग नहीं करेगा, इसलिए यह एक कैनोलिकिसेशन मुद्दा नहीं है। एक्सएसएस हो सकता है, यह आपके काम पर निर्भर करता है। यदि आप इसे आउटपुट करने से पहले सभी इनपुट एन्कोड कर रहे हैं तो नहीं, यह नहीं है। हालांकि यदि आप श्वेत सूची का प्रयास कर रहे हैं, या किसी स्ट्रिंग के कुछ हिस्सों को और खराब कर देते हैं तो आप पहले स्ट्रिंग को कैनोनिकल कर सकते हैं, उदाहरण के लिए,

-4

कैननिकल (मुझे लगता है) का अर्थ है कि कंसोल इनपुट "सामान्य व्यवहार" है। गैर-कैननिकल का अर्थ है कि इनपुट गैर मानक है और विशेष ज्ञान की आवश्यकता है, जैसे लिनक्स पर "vi" के इनपुट व्यवहार।

+0

लेकिन यह वेबसाइटों पर कैसे लागू होता है और कमजोर होता है? – predhme

+0

कैनोनिकल –

+0

की परिभाषा के लिए blowdart का उत्तर देखें मेरा जवाब Blowdarts उत्तर के साथ बिल्कुल भी संघर्ष नहीं करता है सिवाय इसके कि मैं इसे एक वाक्य में समझा सकता हूं। प्रोग्रामर के लिए, दक्षता कुंजी है। – djangofan

3

निम्नलिखित विवरण "अनुप्रयोग सुरक्षा और विकास STIG" से है here पाया:

3,11 विहित प्रतिनिधित्व विहित प्रतिनिधित्व समस्याएं आ सकती हैं जब एक संसाधन के नाम नियंत्रण संसाधन का उपयोग किया जाता है। कंप्यूटर सिस्टम पर संसाधन नामों का प्रतिनिधित्व करने के कई तरीके हैं। एक संसाधन नाम पर पूरी तरह भरोसा पहुँच को नियंत्रित करने नाम किसी अपरिचित स्वरूप में निर्दिष्ट किया जाता है, तो गलत तरीके से एक अभिगम नियंत्रण फैसला लेने के लिए कर सकते हैं एक आवेदन।

उदाहरण के लिए

, Windows में , notepad.exe जा निम्न फ़ाइल और पथ नाम संयोजनों का प्रतिनिधित्व करती हो सकता है:

C: \ Windows \ System32 \ notepad.exe

% SystemRoot% \ System32 \ notepad.exe

\ \ सी: \ Windows \ System32 \ \ मेजबान \ notepad.exe

$ \ Windows ग \ system32 \ notepad.exe

एक आवेदन फ़ाइल पथ पर आधारित फाइल करने के लिए उपयोग को सीमित करने का प्रयास और नाम को अनुचित तरीके से अनुदान कर सकते हैं या पहुंचने से रोका जाता।एक ही मुद्दा अन्य नामित संसाधनों के लिए पर एक प्रणाली है, इस तरह के एक मुश्किल और नरम लिंक, यूआरएल, पाइप, शेयर, निर्देशिका, डिवाइस का नाम, या डेटा के भीतर फ़ाइलों के रूप में, आवेदन कर सकते हैं वैकल्पिक एन्कोडिंग तंत्र रहे हैं डेटा के साथ प्रयोग किया जाता है।

• अभिगम नियंत्रण निर्णय एक संसाधन नाम पर आधारित:

निम्नलिखित मदों एक आवेदन में संभावित विहित प्रतिनिधित्व मुद्दों का संकेत हो सकता।

• संसाधन नाम को को उपयोग करने से पहले इसके कैनोलिक रूप को कम करने में विफलता।

आदेश आवेदन में विहित प्रतिनिधित्व की समस्याओं को कम करने के लिए, निम्न प्रक्रियाओं को लागू:

• पूरी तरह से पर संसाधन नाम विश्वास न करें पहुँच को नियंत्रित करने।

• एक्सेस को नियंत्रित करने के लिए संसाधन नामों का उपयोग करके, को सुनिश्चित करने के लिए नामों को मान्य करें, वे उचित प्रारूप में हैं; अस्वीकार करें सभी नाम ज्ञात-अच्छे मानदंडों को फ़िट नहीं करते हैं।

• ऑपरेटिंग सिस्टम-आधारित उपयोग नियंत्रण तंत्र जैसे अनुमतियां और एसीएल का उपयोग करें।

0

कैनोनिकलिसेशन का मतलब है कि अपने सरलतम रूप में प्राप्त डेटा को कम करना, इसका उपयोग इनपुट सत्यापन के लिए किया जाता है।

संबंधित मुद्दे