HTML एंटिटीज एनकोडर और डिकोडर
विशेष अक्षरों को HTML एंटिटीज में बदलें और वापस, सब कुछ क्लाइंट-साइड। तीन एनकोडिंग मोड — केवल विशेष, सभी गैर-ASCII, या केवल संख्यात्मक — आइडेम्पोटेंट एनकोडिंग के साथ।
HTML एंटिटीज़ क्या हैं?
HTML एंटिटीज एस्केप क्रम हैं जो HTML सोर्स में आरक्षित या गैर-ASCII अक्षरों का प्रतिनिधित्व करते हैं। पाँच सबसे आम — & < > " ' — को एंटिटाइज़ करना ज़रूरी है ताकि ब्राउज़र उन्हें HTML मार्कअप न समझे। एंटिटी से कोई भी Unicode कोड पॉइंट जोड़ सकते हैं।
नामित बनाम संख्यात्मक एंटिटीज
नामित एंटिटी जैसे & या © पढ़ने में आसान हैं लेकिन ~250 पूर्व-निर्धारित अक्षरों तक सीमित हैं। संख्यात्मक & (दशमलव) या & (hex) किसी भी Unicode कोड पॉइंट के लिए काम करती हैं। संदेह में — और XML में — संख्यात्मक उपयोग करें।
HTML कब एस्केप करें?
HTML में डालने से पहले उपयोगकर्ता द्वारा दिए गए टेक्स्ट को हमेशा एस्केप करें — टिप्पणियाँ, खोज, प्रोफ़ाइल, त्रुटि संदेश। यह कदम छोड़ना सबसे आम XSS बग है। आधुनिक टेम्पलेट इंजन और फ्रेमवर्क यह स्वचालित रूप से करते हैं; कच्चा concatenation नहीं।
URL एनकोडिंग चाहिए? हमारा URL एनकोडर / डिकोडर देखें ।
सामान्य उपयोग
- XSS रोकें: उपयोगकर्ता द्वारा सबमिट की गई टिप्पणियों, प्रोफ़ाइल और खोज को HTML में रेंडर करने से पहले एस्केप करें ताकि स्क्रिप्ट इंजेक्शन रुक सके।
- ईमेल टेम्पलेट सुरक्षा: लेन-देन वाले ईमेल में डायनामिक नाम और संदेश फ़ील्ड को एनकोड करें ताकि HTML-समर्थित क्लाइंट सामग्री को मार्कअप न समझें।
- स्टैटिक साइट बिल्डर: बिल्ड के दौरान मार्कडाउन-व्युत्पन्न सामग्री को पहले से एनकोड करें ताकि परिणामी HTML XSS-मुक्त हो।
- JSON-से-HTML माइग्रेशन: सर्वर-रेंडर्ड टेम्पलेट में पेस्ट करने से पहले HTML मेटा-अक्षरों वाले API फ़ील्ड को एंटिटी रूप में बदलें।
- लॉगिंग और डिबगिंग: HTML लॉग व्यूअर में लिखने से पहले कच्चे payloads को एनकोड करें।
- दस्तावेज़ स्निपेट: <code> ब्लॉक में शाब्दिक HTML मार्कअप दिखाने के लिए कोण कोष्ठकों को एंटिटाइज़ करें।
- लीगेसी CMS माइग्रेशन: पुराने CMS से निर्यात HTML-एंटिटाइज़्ड सामग्री को सादे टेक्स्ट में डिकोड करें।
FAQ
HTML एंटिटीज़ क्या हैं और इनकी ज़रूरत क्यों है?
ये एस्केप क्रम हैं जो आरक्षित अक्षर (& < > " ') और कोई भी गैर-ASCII अक्षर का प्रतिनिधित्व करते हैं बिना HTML parsing तोड़े।
नामित बनाम संख्यात्मक — कौन सी उपयोग करें?
XML, RSS, या जेनेरिक SGML जैसे संदर्भों के लिए संख्यात्मक (&, &) उपयोग करें। हाथ से लिखे HTML में जहाँ पठनीयता मायने रखती है, named (&, ©) उपयोग करें।
उपयोगकर्ता-निर्मित सामग्री में HTML कब एस्केप करें?
हमेशा — सिवाय इसके कि आप DOMPurify जैसे sanitizer का उपयोग कर रहे हों जो ज्ञात-सुरक्षित HTML उप-समूह की अनुमति देता है।
' और ' को कैसे डिकोड करें?
दोनों apostrophe (') में डिकोड होते हैं। यह डिकोडर named ', दशमलव ', और हेक्स ' स्वीकार करता है — सभी एक ही आउटपुट देते हैं।
क्या यह टूल मेरा डेटा कहीं भेजता है?
नहीं। सारी एनकोडिंग और डिकोडिंग पूरी तरह आपके ब्राउज़र में चलती है। आपका टेक्स्ट कभी आपके डिवाइस से बाहर नहीं जाता।
आँकड़ों में
- HTML Living Standard में ~250 नामित अक्षर संदर्भ परिभाषित हैं — अधिकांश ब्राउज़र पुराने HTML 4.01 सेट को भी स्वीकार करते हैं
- OWASP HTML body में अविश्वसनीय टेक्स्ट डालते समय पाँच अक्षर (
&,<,>,",') एस्केप करने की सिफ़ारिश करता है - संख्यात्मक अक्षर संदर्भ (जैसे
&) किसी भी Unicode कोड पॉइंट के लिए काम करते हैं — जब नामित एंटिटी उपलब्ध न हो तो उपयोगी - XML केवल पाँच नामित एंटिटीज़ (
amp lt gt quot apos) का समर्थन करता है — सख्त XML parser HTML की©जैसी एंटिटीज़ को अस्वीकार करते हैं