HTML Entities Encoder / Decoder

안전하지 않은 HTML 문자를 엔티티로 인코딩하고 엔티티를 문자로 디코딩.

Processed in your browserNo upload, no signup

Text

0 lines · 0 chars

Escaped

0 lines · 0 bytes
입력은 로컬에서 처리되며 업로드되지 않습니다. DevTools → Network에서 확인할 수 있습니다.

HTML Entities Encoder / Decoder 예제.

// HTML 이스케이프

// 엔티티 언이스케이프

자주 묻는 질문.

왜 HTML을 이스케이프하나요?

XSS 공격을 방지하고 콘텐츠가 올바르게 표시되도록 하기 위해서입니다.

HTML 이스케이핑이 중요한 이유

HTML 이스케이핑은 <, >, &, `,

과 같은 특수 문자를 HTML 엔티티로 변환하는 과정입니다. 이 문자들은 HTML에서 특별한 의미를 가지므로, 텍스트로 표시하려면 반드시 이스케이핑해야 합니다.

이스케이핑을 하지 않으면 브라우저가 텍스트를 HTML 태그로 해석할 수 있습니다. 이는 의도하지 않은 레이아웃 변경은 물론, XSS(크로스 사이트 스크립팅) 공격의 원인이 될 수 있습니다.

사용자 입력을 HTML에 삽입할 때는 반드시 이스케이핑을 적용해야 합니다. XSS 공격은 악의적인 스크립트를 삽입하여 사용자 세션을 탈취하거나 페이지를 변조하는 대표적인 보안 위협입니다.

XSS 방어와 이스케이핑

XSS(Cross-Site Scripting)는 공격자가 웹 페이지에 악의적인 JavaScript 코드를 삽입하는 공격 기법입니다. HTML 이스케이핑은 XSS 공격의 첫 번째 방어선 역할을 합니다.

Content Security Policy(CSP) 헤더와 같은 추가적인 보안 조치와 함께 사용하면 XSS 방어 효과를 높일 수 있습니다. CSP는 허용된 스크립트 소스만 실행하도록 제한합니다.

서버 측에서의 입력 검증과 출력 이스케이핑을 모두 적용하는 것이 가장 안전합니다. 클라이언트 측 이스케이핑만으로는 충분하지 않으며, 반드시 서버 측에서도 검증해야 합니다.

이름 지정 엔티티 vs 숫자 엔티티

이름 지정 엔티티는 &lt;, &gt;, &amp;, &quot;, &apos;와 같은 사람이 읽기 쉬운 이름을 사용합니다. 가독성이 높고 기억하기 쉬운 장점이 있습니다.

숫자 엔티티는 &#60;, &#62;, &#38;처럼 숫자 코드 포인트를 사용합니다. 이름을 기억할 필요가 없으며, 모든 유니코드 문자를 표현할 수 있는 장점이 있습니다.

자주 사용되는 특수 문자(&, <, >, `)는 이름 지정 엔티티를 사용하는 것이 권장됩니다. 그 외의 문자는 숫자 엔티티를 사용하면 됩니다. 실무에서는 가장 간결한 형태를 선택하는 것이 좋습니다.'

관련 도구.