본문으로 건너뛰기

HTML 엔티티 인코더 및 디코더

<, >, & 및 따옴표와 같은 특수 문자를 HTML 엔티티로 변환하거나 다시 원래 문자로 변환합니다. 모든 과정이 브라우저 내에서 이루어집니다.

38자

HTML 엔티티

0자

이용 방법

HTML 엔티티는 브라우저가 마크업으로 해석할 수 있는 < 또는 & 같은 문자를 대신하는 짧은 코드로, 특수 문자가 HTML 태그로 인식되는 것을 방지합니다.

  1. 텍스트 붙여넣기

    일반 텍스트 상자에 입력하면 엔티티 상자가 자동으로 업데이트됩니다.

  2. 인코딩 범위 선택

    토글을 끄면 5가지 특수 문자만 인코딩되고, 켜면 모든 비ASCII 문자도 함께 인코딩됩니다.

  3. 결과 복사

    또는 엔티티 상자를 직접 수정하고 디코딩을 클릭하여 일반 텍스트로 되돌리세요.

주요 HTML 엔티티

문자엔티티 이름엔티티 번호
<&lt;&#60;
>&gt;&#62;
&&amp;&#38;
"&quot;&#34;
'&apos;&#39;
©&copy;&#169;
®&reg;&#174;
(줄바꿈 없는 공백)&nbsp;&#160;

엔티티 인코딩과 XSS

엔티티 인코딩은 크로스 사이트 스크립팅 방지를 위한 필수적인 방어 수단이지만, 이것만으로는 완전한 전략이 아닙니다. HTML 요소 본문 내에 배치된 텍스트에는 올바르게 작동합니다. 그러나 JavaScript 문자열, HTML 속성, CSS 또는 URL 매개변수 내에 배치되는 사용자 입력값에는 각 상황에 맞는 별도의 이스케이프 처리가 필요합니다. 단일 인코딩 과정에만 의존하지 말고 항상 보안에 중점을 둔 라이브러리나 프레임워크를 사용하세요.

명명 엔티티와 숫자 참조

명명 엔티티는 &에 대한 &amp;와 같이 읽기 쉬운 식별자를 사용합니다. 숫자 참조는 대신 10진수(&#38;) 또는 16진수(&#x26;) Unicode 코드 포인트를 사용합니다. 명명 엔티티는 정의된 문자 집합만 포함하지만, 숫자 참조는 모든 Unicode 문자를 표현할 수 있으며 위의 "모든 비ASCII 문자 인코딩" 옵션에서 이 방식을 사용합니다.

기기 밖으로 전송되는 데이터 없음

인코딩과 디코딩 모두 JavaScript와 DOM을 사용하여 브라우저 내에서 완전히 실행됩니다. 텍스트가 어떤 서버로도 전송되지 않으므로 민감한 콘텐츠, HTML에 포함된 인증 토큰 또는 내부 애플리케이션 마크업을 안전하게 붙여넣을 수 있습니다.

자주 묻는 질문

XSS 방지를 위해 특수 문자를 HTML 엔티티로 어떻게 인코딩하나요?

일반 텍스트 상자에 원본 텍스트를 입력하거나 붙여넣으세요. 입력하는 동안 다섯 가지 특수 문자인 <, >, &, ", '를 각각 해당하는 HTML 엔티티로 변환합니다. <는 &lt;로, >는 &gt;로, &는 &amp;로, "는 &quot;로, '는 &#39;로 변환됩니다. 이 인코딩은 브라우저가 텍스트를 마크업으로 해석하는 것을 방지합니다.

HTML 엔티티 인코딩만으로 XSS를 완벽하게 방지할 수 있나요?

엔티티 인코딩은 필수적인 방어 수단이지만 그것만으로는 충분하지 않습니다. 이 방식은 HTML 콘텐츠 컨텍스트, 즉 요소 본문 내부의 텍스트에는 올바르게 작동합니다. 그러나 JavaScript 문자열, HTML 속성, CSS 또는 URL 매개변수에 배치되는 사용자 입력에는 다른 이스케이프 전략이 필요합니다. 항상 컨텍스트에 맞는 출력 인코딩을 적용하고, 단일 인코딩 처리에만 의존하기보다 보안 중심의 라이브러리나 프레임워크를 사용하세요.

HTML 엔티티를 다시 읽기 쉬운 텍스트로 디코딩하려면 어떻게 해야 하나요?

엔티티로 인코딩된 텍스트를 HTML 엔티티 상자에 붙여넣고 일반 텍스트로 디코딩 버튼을 클릭하세요. 도구가 각 명명된 엔티티나 숫자 엔티티를 해당 문자로 다시 변환합니다. 이는 HTML 소스에서 텍스트를 추출하거나, 로그에서 이스케이프된 문자열을 읽거나, 서버 측 출력을 검사할 때 유용합니다.

HTML 엔티티를 인코딩하거나 디코딩할 때 텍스트가 서버로 전송되나요?

아니요. 인코딩과 디코딩 모두 브라우저 내에서 JavaScript와 DOM 조작을 사용하여 전적으로 실행됩니다. 텍스트가 어떤 서버로도 전송되지 않으므로 민감한 콘텐츠, HTML에 포함된 인증 토큰 또는 내부 애플리케이션 마크업을 안전하게 붙여넣을 수 있습니다.

명명된 HTML 엔티티와 숫자 문자 참조의 차이점은 무엇인가요?

명명 엔티티는 &로 시작하고 ;로 끝나는 사람이 읽을 수 있는 식별자를 사용합니다(예: &의 경우 &amp;). 숫자 참조는 10진수(&#38;) 또는 16진수(&#x26;) Unicode 코드 포인트를 사용합니다. 명명 엔티티는 정의된 집합으로 제한되지만, 숫자 참조는 모든 Unicode 문자를 표현할 수 있습니다. 둘 다 유효한 HTML5이며 브라우저에서 동일한 결과를 생성합니다.

이 도구로 다섯 가지 기본 특수 문자 외에 다른 문자도 인코딩할 수 있나요?

네. "비ASCII 문자도 모두 인코딩" 옵션을 켜면 다섯 가지 특수 문자는 물론 출력 가능한 ASCII 범위를 벗어나는 모든 문자(악센트 문자, 기호 및 이모지 포함)를 숫자 엔티티로 변환합니다. 이는 일반 ASCII 마크업만 지원하는 이전 시스템을 위해 텍스트를 준비할 때 유용합니다.