빠른 사용법
세 단계로 확인합니다.
- 1인코드 또는 디코드를 선택합니다
일반 문자를 Entity로 만들지, Entity 문자열을 브라우저 표시 문자로 되돌릴지 정합니다.
- 2Named·10진·16진 방식을 고릅니다
예약문자 위주의 Named와 코드포인트 기반 Numeric 표현을 목적에 맞게 선택합니다.
- 3문자 수와 Entity 수를 확인합니다
입출력 길이와 결과 Entity 개수를 보고 복사하거나 작업 방향을 바꿔 검산합니다.
결과 읽기
Entity 변환과 HTML 문맥 보안은 같은 문제가 아닙니다.
텍스트 노드에서는 예약문자 치환이 유용하지만 속성·URL·JavaScript·CSS 문맥은 각각 별도 인코딩과 허용목록이 필요합니다.NAMEDNamed
가장 흔한 다섯 HTML 예약문자를 읽기 쉬운 이름 또는 안전한 숫자 표현으로 바꿉니다.
NUMERICNumeric
공백·영숫자를 제외한 Unicode 코드포인트를 10진 또는 16진 Entity로 만듭니다.
DECODE브라우저 디코드
분리된 textarea 파서를 사용해 브라우저가 이해하는 Named·Numeric Entity를 텍스트로 되돌립니다.
Entity 인코딩만으로 모든 XSS가 방지되지는 않습니다. 출력 위치의 HTML·속성·URL·스크립트 문맥에 맞는 검증과 DOM API를 사용하세요.
이럴 때 유용합니다.
- HTML 예제 코드 표시
- 예약문자 Entity 검산
- Numeric 코드포인트 표현 확인
함께 확인하세요.
- 출력 문맥별 보안 규칙 필요
- 이중 인코딩 주의
- 디코딩 결과를 innerHTML에 바로 넣지 않음
자주 묻는 질문
사용 전 알아둘 점
Named 모드가 모든 문자를 이름으로 바꾸나요?
아닙니다. 안전하고 예측 가능한 동작을 위해 다섯 예약문자만 명시적으로 바꿉니다.
디코딩한 결과를 그대로 innerHTML에 넣어도 되나요?
아닙니다. 신뢰할 수 없는 입력이라면 textContent를 쓰거나 검증된 sanitizer를 거쳐야 합니다.
입력과 결과가 서버에 남나요?
아닙니다. 현재 브라우저 안에서만 처리합니다.