डेवलपर टूल · HTML इकाई एस्केपर
भागना, उतारना या स्वच्छ करना HTML: तीन तकनीकें और प्रत्येक का उपयोग कब करना है
· यह काम किस प्रकार करता है
HTML सुरक्षा पाठ प्रसंस्करण
एस्केपिंग मार्कअप को टेक्स्ट के रूप में दिखाता है, स्ट्रिपिंग इसे हटा देता है, और सैनिटाइज़िंग एक सुरक्षित उपसमूह रखता है। यह पोस्ट बताती है कि प्रत्येक तकनीक वास्तव में क्या करती है, प्रत्येक तकनीक कहाँ विफल होती है, और अपने इनपुट के लिए सही तकनीक का चयन कैसे करें।
वह टिप्पणी जिसे कोड दिखाना था और इसके बजाय उसे चलाना था - तीन तकनीकों में से एक गलत विकल्प
वह टिप्पणी जिसे कोड दिखाना था और इसके बजाय उसे चलाना था - तीन तकनीकों में से एक गलत विकल्प। मार्कअप दिखाने के उद्देश्य से की गई टिप्पणी तब निष्पादित हो सकती है जब कोई एप्लिकेशन इसे HTML के रूप में प्रस्तुत करता है। पहला निर्णय यह है कि क्या उत्पाद सादा पाठ चाहता है, कोई मार्कअप नहीं, या जानबूझकर सीमित समृद्ध उपसमूह चाहता है।
एस्केप बनाम सैनिटाइज़ HTML को सत्यापित करने के लिए, उस टिप्पणी का निर्माण करें जो एक टिप्पणी प्रणाली बनाने वाले डेवलपर के लिए थी। प्रिजर्व को कोड दिखाना चाहिए जबकि तीन-ऑपरेशन विकल्प उत्पन्न करता है और इसके बजाय इसे चलाता है; पहचानें कि गलत विकल्प का उपयोग कहां किया जाता है। तीन तकनीकों के बारे में अवलोकन केवल HTML पाठ से संबंधित है।
पलायन: मार्कअप दृश्यमान पाठ बन जाता है - क्या बदलता है, क्या संरक्षित है और यह डिफ़ॉल्ट क्यों है
पलायन: मार्कअप दृश्यमान पाठ बन जाता है - क्या बदलता है, क्या संरक्षित है और यह डिफ़ॉल्ट क्यों है। मार्कअप-क्रिटिकल को संदर्भों में बदलते समय एस्केपिंग प्रत्येक चरित्र को संरक्षित करता है। ब्राउज़र मूल प्रतीकों को टेक्स्ट के रूप में प्रदर्शित करता है, जिससे यह टिप्पणियों और कोड उदाहरणों के लिए सही डिफ़ॉल्ट बन जाता है।
एक टिप्पणी प्रणाली का निर्माण करने वाला डेवलपर परीक्षण कर सकता है कि तीन-ऑपरेशन विकल्प पास होने से पहले टेक्स्ट को रिकॉर्ड करके एस्केपिंग मार्कअप दृश्यमान हो जाता है कि क्या बदलता है। तुलना संरक्षित है और बाद में क्यों और इसके लिए जिम्मेदार पार्सर का पता लगाना डिफ़ॉल्ट है। यह एस्केप बनाम सैनिटाइज़ HTML परिणाम तीन-ऑपरेशन विकल्प साक्ष्य की व्याख्या करता है, निष्पादन योग्य संदर्भों की नहीं।
स्ट्रिपिंग: टैग हटाना - रेगेक्स टैग-स्ट्रिपिंग अविश्वसनीय क्यों है और इससे क्या नुकसान होता है
स्ट्रिपिंग: टैग हटाना - रेगेक्स टैग-स्ट्रिपिंग अविश्वसनीय क्यों है और इससे क्या नुकसान होता है। स्ट्रिपिंग से स्पष्ट टैग हट जाते हैं और संरचना, विराम चिह्न या शब्द खो जाते हैं। नियमित अभिव्यक्तियाँ सुरक्षा को परिभाषित करने के लिए ब्राउज़र त्रुटि पुनर्प्राप्ति, कच्चे-पाठ तत्वों या विकृत नेस्टिंग को विश्वसनीय रूप से मॉडल नहीं कर सकती हैं।
एक छोटे से तीन-ऑपरेशन विकल्प नमूने में स्ट्रिपिंग डिलीटिंग टैग को अलग करें। रेगेक्स टैग स्ट्रिपिंग को शाब्दिक स्रोत के रूप में दिखाएं, अविश्वसनीय का अनुसरण करें और इसे अपने गंतव्य तक ले जाएं, और API रीडिंग लॉस का नाम दें। एस्केप बनाम सैनिटाइज़ HTML के लिए, तीन-ऑपरेशन विकल्प साक्ष्य पार्सर-बाउंड साक्ष्य बना हुआ है।
स्वच्छता: एक उपसमूह की अनुमति देना - अनुमति-सूचियाँ, विशेषता नियम और यह तीनों में से सबसे कठिन क्यों है
स्वच्छता: एक उपसमूह की अनुमति देना - अनुमति-सूचियाँ, विशेषता नियम और यह तीनों में से सबसे कठिन क्यों है। पार्स को साफ़ करना या मार्कअप को टोकनाइज़ करना और तत्वों, विशेषताओं और URL योजनाओं की एक स्पष्ट अनुमति सूची रखना। यह काफ़ी कठिन है क्योंकि ब्राउज़र व्याख्या, विकृत इनपुट और नेस्टेड भाषाएँ मायने रखती हैं।
किसी उपसमूह को अनुमति देते हुए स्वच्छता को एक सीमा प्रयोग के रूप में मानें। एक टिप्पणी प्रणाली का निर्माण करने वाले डेवलपर को सूची विशेषता नियमों को बनाए रखना चाहिए, एक तीन-ऑपरेशन विकल्प ऑपरेशन करना चाहिए, और निरीक्षण करना चाहिए कि यह सबसे कठिन बदलाव से पहले चरित्र दर चरित्र क्यों है। तीन के बारे में दावा इस HTML परत पर रुकता है।
कार्यान्वित उदाहरण: तीनों के माध्यम से समान उपयोगकर्ता इनपुट - परिणामी पाठ या मार्कअप की तुलना
कार्यान्वित उदाहरण: तीनों के माध्यम से समान उपयोगकर्ता इनपुट - परिणामी पाठ या मार्कअप की तुलना। <strong onclick="go()">Hi & bye</strong> को देखते हुए, एस्केपिंग पूरे स्रोत को दिखाता है, स्ट्रिपिंग का लक्ष्य Hi & bye है, और एक सिद्ध नीति के तहत ऑनक्लिक को हटाते समय सैनिटाइजिंग <strong> को बनाए रख सकता है।
ग्राहक सामग्री के बजाय हानिरहित इनपुट के साथ उसी उदाहरण को पुन: प्रस्तुत करें। सभी के माध्यम से उपयोगकर्ता इनपुट रिकॉर्ड करें, परिणामी तीन पाठ का निरीक्षण करें, और प्रत्येक जानबूझकर तीन-ऑपरेशन विकल्प पास की गणना करें। वह एस्केप बनाम सैनिटाइज़ HTML ट्रेल एक डेवलपर को एक टिप्पणी प्रणाली का मूल्यांकन या मार्कअप की तुलना और अनुमान लगाए बिना तीन-ऑपरेशन विकल्प साक्ष्य का निर्माण करने देता है।
इरादे से चयन - सादा पाठ और कोड नमूने बच जाते हैं; समृद्ध पाठ स्वच्छता; अलग करना शायद ही कभी सही होता है
इरादे से चयन - सादा पाठ और कोड नमूने बच जाते हैं; समृद्ध पाठ स्वच्छता; अलग करना शायद ही कभी सही होता है। आशय से चुनें: सादा पाठ और उदाहरण बच गए हैं; समर्थित समृद्ध पाठ को एक समर्पित, अनुरक्षित नीति द्वारा स्वच्छ किया जाता है; स्ट्रिपिंग एक हानिपूर्ण रूपांतरण है और XSS गारंटी नहीं है।
तीन-ऑपरेशन विकल्प समीक्षा के दौरान इरादे के सादे, पाठ और कोड नमूनों के आधार पर स्थान का चयन करना, और साथ-साथ समृद्ध पाठ से बचना। एक टिप्पणी प्रणाली बनाने वाला डेवलपर तब यह तय कर सकता है कि रूपांतरण या डाउनस्ट्रीम में स्ट्रिपिंग को शायद ही कभी सही तरीके से बदला गया हो। सामान्य सुरक्षा दावों से तीन-ऑपरेशन विकल्प साक्ष्य के बारे में एस्केप बनाम सैनिटाइज़ HTML निष्कर्ष को दूर रखें।
इसमें क्या शामिल नहीं है - अतिरिक्त परतों के रूप में मार्कडाउन रेंडरिंग और सामग्री सुरक्षा नीतियां
इसमें क्या शामिल नहीं है - अतिरिक्त परतों के रूप में मार्कडाउन रेंडरिंग और सामग्री सुरक्षा नीतियां। मार्कडाउन और सामग्री सुरक्षा नीति अलग-अलग चरण जोड़ते हैं। मार्कडाउन HTML उत्पन्न करता है जिसे अभी भी सुरक्षित प्रतिपादन की आवश्यकता है, जबकि CSP परिणामों को सीमित कर सकता है लेकिन असुरक्षित आउटपुट निर्णय को सही नहीं करता है।
तीन-ऑपरेशन विकल्प चलाने से पहले परिभाषित करें कि यह क्या नहीं करता है। कवर मार्कडाउन रेंडरिंग को सहेजें और नियंत्रण के रूप में, सामग्री सुरक्षा नीतियों के पीछे कोड बिंदुओं का निरीक्षण करें, और अगले दुभाषिया के लिए अतिरिक्त परतें मैप करें। यह एस्केप बनाम सैनिटाइज़ HTML की जांच करने वाली टिप्पणी प्रणाली बनाने वाले डेवलपर के लिए तीन-ऑपरेशन विकल्प साक्ष्य को ऑडिट करने योग्य बनाता है।
टेकअवे: ToolAcre केवल भागने का कार्य करता है, कपड़े उतारना या साफ़ करना नहीं
टेकअवे: ToolAcre केवल भागने का काम करता है, कपड़े उतारने या साफ-सफाई करने का नहीं। ToolAcre केवल भागने का मामला निष्पादित करता है। यह XSS सैनिटाइज़र नहीं है और सुरक्षित रिच रेंडरिंग के लिए प्रतिकूल HTML को स्वीकार नहीं करता है; यह मार्कअप-दिखने वाले इनपुट को HTML टेक्स्ट में परिवर्तित करता है।
कनेक्ट टेकअवे टूलक्रे एक अवलोकन योग्य तीन-ऑपरेशन विकल्प आउटपुट से बचकर कार्य करता है। केवल स्ट्रिपिंग या एक-पास परिणाम के बगल में न रखें, फिर सत्यापित करें कि सैनिटाइजिंग तीन-ऑपरेशन विकल्प साक्ष्य में कहां प्रवेश करती है। एक टिप्पणी प्रणाली का निर्माण करने वाला डेवलपर अब एक संकीर्ण पलायन बनाम सैनिटाइज़ HTML खोज के रूप में तीन-ऑपरेशन विकल्प साक्ष्य की समीक्षा कर सकता है। इस आलेख के पीछे व्यावहारिक निर्णय विशिष्ट है: एस्केपिंग मार्कअप को टेक्स्ट के रूप में दिखाता है, स्ट्रिपिंग इसे हटा देता है, और सैनिटाइज़िंग एक सुरक्षित उपसमूह रखता है। यह पोस्ट बताती है कि प्रत्येक तकनीक वास्तव में क्या करती है, प्रत्येक तकनीक कहाँ विफल होती है, और अपने इनपुट के लिए सही तकनीक का चयन कैसे करें। पाठक की कार्रवाई समान रूप से ठोस है: HTML इकाई एस्केपर से लिंक और उपयोगकर्ता इनपुट के एक स्निपेट से बचने का प्रदर्शन करता है ताकि यह शाब्दिक मार्कअप के रूप में प्रदर्शित हो।