Oh MyUtils

HTML 인코더 및 디코더 - HTML 엔티티 이스케이프 온라인

특수 문자를 HTML 엔티티로 인코딩하거나 HTML 엔티티를 텍스트로 디코딩. XSS 취약점 방지 — 100% 클라이언트 사이드.

모드
엔티티 형식
인코딩 모드
입력
출력

자주 묻는 질문

HTML 인코딩이란 무엇인가요?

HTML 인코딩(HTML 이스케이핑)은 <, >, &, ", ' 같은 특수 문자를 HTML 엔티티(&lt;, &gt;, &amp;, &quot;, &#39;)로 변환하는 과정입니다. 브라우저가 이를 HTML 마크업으로 해석하지 않고 텍스트로 표시하게 합니다.

이 HTML 인코더 도구는 어떻게 사용하나요?

입력 필드에 텍스트를 입력하거나 붙여넣으세요. 인코딩 모드를 선택하면 텍스트가 HTML 엔티티로 변환되고, 디코딩 모드를 선택하면 엔티티가 다시 텍스트로 변환됩니다. 엔티티 형식(이름, 10진수, 16진수)과 인코딩 범위(최소 또는 전체)를 선택할 수 있습니다.

데이터는 안전한가요?

네. 모든 처리는 100% 브라우저에서 이루어집니다. 어떤 데이터도 서버로 전송되지 않습니다. 인터넷 연결을 끊어도 도구가 계속 작동하는 것으로 확인할 수 있습니다.

HTML 인코딩은 XSS 공격을 어떻게 방지하나요?

XSS 공격은 웹 페이지에 악성 스크립트를 삽입합니다. HTML 인코딩은 < 와 > 같은 문자를 무해한 엔티티로 변환하여 브라우저가 실행하지 않고 텍스트로 표시하게 합니다.

이름, 10진수, 16진수 엔티티의 차이점은 무엇인가요?

이름 엔티티는 설명적 이름을 사용합니다(&lt;, &amp;). 10진수 엔티티는 유니코드 코드 포인트를 사용합니다(&#60;, &#38;). 16진수 엔티티는 16진수 코드 포인트를 사용합니다(&#x3C;, &#x26;). 세 형식 모두 유효한 HTML이며 동일하게 렌더링됩니다.

코드 예제

// HTML Encode (minimal)
function encodeHtml(text) {
  const entities = { '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;' };
  return text.replace(/[&<>"']/g, c => entities[c]);
}

// HTML Decode
function decodeHtml(encoded) {
  const textarea = document.createElement('textarea');
  textarea.innerHTML = encoded;
  return textarea.value;
}

console.log(encodeHtml('<script>alert("XSS")</script>'));
// &lt;script&gt;alert(&quot;XSS&quot;)&lt;/script&gt;

console.log(decodeHtml('&lt;div&gt;Hello &amp; World&lt;/div&gt;'));
// <div>Hello & World</div>

관련 도구