इस लेख में
HTML एंटिटी क्या हैं?
HTML एंटिटी विशेष कोड होते हैं जो उन अक्षरों को दर्शाते हैं जिनका या तो HTML में कोई विशेष अर्थ होता है या जिन्हें सीधे टाइप नहीं किया जा सकता। उदाहरण के लिए, < अक्षर < (लेस-दैन चिह्न) के लिए HTML एंटिटी है, जिसे अन्यथा किसी HTML टैग की शुरुआत के रूप में समझा जाता।
एंटिटी नामित (<, &, ©) या संख्यात्मक (<, &) हो सकती हैं। नामित एंटिटी अधिक पठनीय होती हैं; संख्यात्मक एंटिटी किसी भी Unicode अक्षर के लिए काम करती हैं, भले ही उसके लिए कोई विशिष्ट नामित एंटिटी न हो।
HTML एंटिटी एन्कोडिंग कैसे काम करती है
एन्कोडर टेक्स्ट में उन अक्षरों को खोजता है जिन्हें एस्केप करने की आवश्यकता होती है और उन्हें उनके एंटिटी समकक्षों से बदल देता है।
- महत्वपूर्ण एस्केपिंग — HTML इंजेक्शन और XSS को रोकने के लिए < > & " ' को हमेशा एस्केप किया जाता है
- विस्तारित एस्केपिंग — वैकल्पिक रूप से सभी गैर-ASCII अक्षरों को संख्यात्मक एंटिटी के रूप में एन्कोड करें
- डिकोड मोड — जाँच के लिए एंटिटी-एन्कोडेड HTML को वापस सादे टेक्स्ट में बदल देता है
निःशुल्क आज़माएँ — कोई साइनअप आवश्यक नहीं
HTML एंटिटी एन्कोड करें →HTML एंटिटी एन्कोडिंग का उपयोग कब करें
वेब पेजों में सुरक्षा और विशेष अक्षरों को प्रदर्शित करने के लिए HTML एंटिटी एन्कोडिंग बेहद महत्वपूर्ण है।
- उपयोगकर्ता सामग्री प्रदर्शन — XSS हमलों को रोकने के लिए उपयोगकर्ता-निर्मित सामग्री को HTML में रेंडर करने से पहले हमेशा एन्कोड करें
- ईमेल टेम्पलेट — सही रेंडरिंग सुनिश्चित करने के लिए HTML ईमेल टेम्पलेट में विशेष अक्षरों को एन्कोड करें
- दस्तावेज़ीकरण — HTML दस्तावेज़ीकरण में कोड उदाहरणों को एस्केप करें ताकि एंगल ब्रैकेट सही ढंग से दिखें
अक्सर पूछे जाने वाले प्रश्न
XSS क्या है और एंटिटी एन्कोडिंग इसे कैसे रोकती है?
क्रॉस-साइट स्क्रिप्टिंग (XSS) एक ऐसा हमला है जिसमें दुर्भावनापूर्ण स्क्रिप्ट को उन वेब पेजों में इंजेक्ट किया जाता है जिन्हें अन्य उपयोगकर्ता देखते हैं। यदि कोई उपयोगकर्ता <script>alert('xss')</script> सबमिट करता है और इसे HTML के रूप में रेंडर किया जाता है, तो स्क्रिप्ट चल जाती है। एंटिटी एन्कोडिंग < को < में बदल देती है, जिससे यह टेक्स्ट के रूप में रेंडर होता है और स्क्रिप्ट के निष्पादन को रोकता है।
HTML में मुझे & के बजाय & का उपयोग कब करना चाहिए?
HTML एट्रिब्यूट और सामग्री में, जब भी & किसी HTML एंटिटी का हिस्सा न हो, तो उसे & के रूप में एन्कोड किया जाना चाहिए। HTML में बिना एन्कोड किया गया & एक पार्सिंग त्रुटि है। href एट्रिब्यूट के भीतर URL में, वैध HTML के लिए & को भी & के रूप में एन्कोड किया जाना चाहिए (हालाँकि ब्राउज़र इस मामले में उदार होते हैं)।
क्या HTML एंटिटी एन्कोडिंग SQL इंजेक्शन से बचाती है?
नहीं। HTML एंटिटी एन्कोडिंग केवल HTML इंजेक्शन (XSS) से बचाती है। SQL इंजेक्शन को रोकने के लिए, अपनी डेटाबेस परत में पैरामीटराइज़्ड क्वेरी या प्रीपेयर्ड स्टेटमेंट का उपयोग करें। ये अलग-अलग अटैक वेक्टर हैं जिनके लिए अलग-अलग बचाव की आवश्यकता होती है — SQL इंजेक्शन रोकने के लिए कभी भी HTML एन्कोडिंग पर निर्भर न रहें।