HTML Escape / Unescape

ऑनलाइन HTML एंटिटीज़ एनकोड और डिकोड करें

इनपुट
0 characters
आउटपुट
0 characters
What is HTML Escape & Unescape?

HTML Escape is the process of converting special HTML characters (like <, >, &, ") into HTML entities (like &lt;, &gt;, &amp;, &quot;).

Unescape is the reverse process, converting HTML entities back to their original characters.

Why Do We Need HTML Escaping?

  • Prevent XSS (Cross-Site Scripting): Escaping is the first line of defense against XSS attacks. It prevents malicious HTML/JavaScript injection and is essential when displaying user-generated content.
  • Display HTML Code as Text: Show HTML examples in documentation, render code snippets on web pages, or debug template engines.
  • Data Serialization: Safely embed HTML in JSON/XML, prepare content for API responses, or store HTML in databases.
  • Email & Header Safety: Escape special characters in email subjects, prepare data for HTTP headers, or handle form data correctly.

Entity Format Comparison

CharacterNamed EntityDecimal EntityHex Entity
<&lt;&#60;&#x3C;
>&gt;&#62;&#x3E;
&&amp;&#38;&#x26;
"&quot;&#34;&#x22;
'&apos;&#39;&#x27;

Code Examples

JavaScript (Browser)

// Escape HTML
function escapeHtml(text) {
  const map = {
    '&': '&amp;',
    '<': '&lt;',
    '>': '&gt;',
    '"': '&quot;',
    "'": '&#039;'
  };
  return text.replace(/[&<>"']/g, m => map[m]);
}

// Unescape HTML
function unescapeHtml(html) {
  const doc = new DOMParser().parseFromString(html, 'text/html');
  return doc.documentElement.textContent;
}

// Usage
const escaped = escapeHtml('<script>alert("XSS")</script>');
console.log(escaped); 
// &lt;script&gt;alert(&quot;XSS&quot;)&lt;/script&gt;

Node.js (using 'he' library)

const he = require('he');

// Encode
const encoded = he.encode('<div class="test">Hello & goodbye</div>');
console.log(encoded); 
// &lt;div class=&quot;test&quot;&gt;Hello &amp; goodbye&lt;/div&gt;

// Decode
const decoded = he.decode('&lt;div&gt;Hello&lt;/div&gt;');
console.log(decoded); // <div>Hello</div>

// Different formats
he.encode('<tag>', { useNamedReferences: true });  // &lt;tag&gt;
he.encode('<tag>', { decimal: true });             // &#60;tag&#62;
he.encode('<tag>', { hexadecimal: true });         // &#x3C;tag&#x3E;

Python

import html

# Escape
escaped = html.escape('<script>alert("XSS")</script>')
print(escaped)  
# &lt;script&gt;alert(&quot;XSS&quot;)&lt;/script&gt;

# Unescape
unescaped = html.unescape('&lt;div&gt;Hello&lt;/div&gt;')
print(unescaped)  # <div>Hello</div>

Security Best Practices

⚠️ Important Security Notes:

  • Escaping is NOT Enough: Combine with Content Security Policy (CSP) and backend validation.
  • Context Matters: Use appropriate escaping for HTML content, JavaScript strings, URLs, and SQL.
  • Don't Trust User Input: Always validate and sanitize on both client and server side.
  • Use Framework Built-ins: React, Vue, and Angular escape by default—leverage these features.

Common Use Cases

  • XSS Prevention: Escape user input before displaying:<script>alert('XSS')</script>&lt;script&gt;alert('XSS')&lt;/script&gt;
  • Displaying Code: Show HTML code examples on web pages by escaping tags.
  • JSON with HTML: Prepare HTML fragments for JSON serialization.
  • Email Content: Escape special characters in email subjects and headers.
  • Template Debugging: Unescape rendered template output to see actual HTML.
About This Tool

HTML एस्केपिंग वेब सुरक्षा और डेटा प्रदर्शन के लिए मौलिक है। मैंने यह टूल सुरक्षा ऑडिट के दौरान अनगिनत XSS कमजोरियों से निपटने और उपयोगकर्ता-जनित सामग्री को सुरक्षित रूप से प्रदर्शित करने की आवश्यकता के बाद बनाया। चाहे आप फॉर्म इनपुट को सैनिटाइज़ कर रहे हों, टेम्प्लेट इंजन को डिबग कर रहे हों, JSON/XML सीरियलाइज़ेशन के लिए डेटा तैयार कर रहे हों, या वेब सुरक्षा अवधारणाओं को पढ़ा रहे हों, उचित HTML एंटिटी एन्कोडिंग आवश्यक है। यह टूल तीन एंटिटी प्रारूपों का समर्थन करता है: नामित एंटिटीज़ (&lt;, &gt;), दशमलव एंटिटीज़ (&#60;, &#62;), और हेक्साडेसिमल एंटिटीज़ (&#x3C;, &#x3E;)—प्रत्येक विभिन्न संदर्भों में उपयोगी है। सभी प्रोसेसिंग आपके ब्राउज़र में क्लाइंट-साइड होती है, जो किसी भी सर्वर को डेटा भेजे बिना संवेदनशील सामग्री को संभालना सुरक्षित बनाता है।

How to Use

एस्केप करने के लिए: विशेष वर्णों वाले अपने HTML या टेक्स्ट को इनपुट पैनल में पेस्ट करें। टूल स्वचालित रूप से <, >, &, \", और ' जैसे वर्णों को रीयल-टाइम में HTML एंटिटी समकक्षों में बदल देता है। अपना पसंदीदा एंटिटी प्रारूप चुनें: नामित (सबसे पठनीय, जैसे &amp;), दशमलव (व्यापक रूप से संगत, जैसे &#38;), या हेक्साडेसिमल (कॉम्पैक्ट, जैसे &#x26;)। नई लाइनों को बनाए रखने या हटाने के लिए 'लाइन ब्रेक रखें' टॉगल करें। अनएस्केप के लिए: एंटिटीज़ के साथ HTML पेस्ट करें और टूल उन्हें मूल वर्णों में डिकोड कर देगा। 'सभी वर्णों को एन्कोड करें' विकल्प गैर-विशेष वर्णों को भी एस्केप करता है, जो अधिकतम संगतता के लिए उपयोगी है।

Common Use Cases

XSS रोकथाम

प्रदर्शित करने से पहले उपयोगकर्ता इनपुट को एस्केप करें: '<script>alert(XSS)</script>' बन जाता है '&lt;script&gt;alert(XSS)&lt;/script&gt;'।

टेम्प्लेट डिबगिंग

रेंडर किए गए टेम्प्लेट आउटपुट को अनएस्केप करें ताकि वास्तव में जनरेट की गई HTML देखी जा सके।

JSON स्ट्रिंग एस्केपिंग

उद्धरण और विशेष वर्णों को एस्केप करके JSON सीरियलाइज़ेशन के लिए HTML फ्रैगमेंट तैयार करें।

कोड प्रदर्शित करना

टैग को एस्केप करके वेब पेजों पर HTML कोड उदाहरण दिखाएं ताकि वे टेक्स्ट के रूप में दिखाई दें।

ईमेल HTML

ईमेल विषय पंक्तियों या हेडर में विशेष वर्णों को एस्केप करें।

डेटाबेस स्टोरेज

रेंडरिंग समस्याओं को रोकने के लिए टेक्स्ट फील्ड में स्टोर करने से पहले HTML को एस्केप करें।

Limitations & Important Notes

यह टूल HTML5 विनिर्देश में परिभाषित HTML एंटिटीज़ को संभालता है। यह संभावित रूप से खतरनाक HTML विशेषताओं (जैसे onclick, onerror) या JavaScript कोड को हटाता या सैनिटाइज़ नहीं करता—यह केवल वर्ण प्रतिनिधित्व को एस्केप करता है। सच्ची XSS रोकथाम के लिए, एस्केपिंग को Content Security Policy (CSP) और इनपुट सत्यापन के साथ मिलाएं। टूल UTF-8 एन्कोडिंग मानता है; अन्य एन्कोडिंग अप्रत्याशित परिणाम दे सकती हैं। बहुत बड़े दस्तावेजों (>5MB) के लिए, ब्राउज़र मेमोरी सीमाएं धीमापन का कारण बन सकती हैं। एंटिटी एन्कोडिंग टेक्स्ट आकार बढ़ाती है; बैंडविड्थ-सीमित परिदृश्यों के लिए आदर्श नहीं।