설정
privacy.storage_manager.language_settings
테마 설정
HTML 이스케이프
XSS 위험을 낮추는 데 도움이 되는 HTML 엔티티 이스케이프/언이스케이프 도구
🚀 빠른 시작
- 텍스트 영역에 내용(HTML 또는 이미 이스케이프된 텍스트)을 입력
- 인코딩/디코딩을 선택
- 버튼 클릭 시 변환, 결과는 같은 텍스트 영역에 표시
- 복사를 눌러 결과를 재사용
📌 자주 쓰는 활용 사례
- 사용자 댓글: XSS 공격을 방지하기 위해 사용자 제출 댓글 이스케이프
- 블로그 게시물: 글에서 HTML 코드 예제 표시
- 포럼 게시물: 사용자 생성 콘텐츠를 안전하게 표시
- 채팅 메시지: 채팅 기능을 통한 악성 코드 확산 방지
- 폼 데이터: 폼 제출 데이터 처리 및 표시
- 코드 표시: 웹 페이지에서 HTML/JavaScript 코드 스니펫 표시
🧭 활용 팁
- 컨텍스트 인식 이스케이프: 출력 위치에 따라 적절한 이스케이프 전략 선택
- 서버 측 처리: 중요한 보안 이스케이프는 서버 측에서 수행
- 이중 확인: 이스케이프 후 출력을 확인하여 누락이 없는지 확인
- 라이브러리 사용: 프로덕션 환경에서는 수동 처리 대신 성숙한 이스케이프 라이브러리 사용
- 미리보기 확인: 이스케이프 후 브라우저 콘솔에서 실제 표시 미리보기
🎛️ 이스케이프 규칙 및 엔티티
- 일반 문자: < > & " '(슬래시 / 는 일반적으로 불필요; 문맥에 따름)
- 엔티티 형식: 특수 문자는 &entity; 또는 &#code; 형식으로 변환됩니다. 예: <는 &lt; 또는 &#60;이 됩니다
- 속성 이스케이프: 따옴표는 &quot;로 변환되어 HTML 속성 값 보호
- 스크립트 보호: <script> 태그는 자동으로 이스케이프되어 JavaScript 인젝션 방지
- 태그 처리: <div>는 &lt;div&gt;로 변환되어 브라우저 파싱 방지
⚠️ 제한 사항 및 호환성
- 이 도구는 Sanitizer가 아닙니다: 스크립트/이벤트/위험한 프로토콜을 제거하지 않습니다. 콘텐츠 정화와 함께 사용하세요
- 불완전한 보호: 이스케이프만으로는 모든 XSS를 방지할 수 없으며 다른 보안 조치와 결합 필요
- 컨텍스트 종속: 다른 위치에는 다른 이스케이프 전략이 필요 (HTML 콘텐츠, 속성, JavaScript, CSS)
- 페이지를 원활하게 유지하기 위해 대량 텍스트는 단순하게 처리될 수 있습니다. 분할을 권장합니다
🔒 개인정보 보호 및 보안
- 모든 처리는 브라우저 내에서 이루어지며, 데이터는 기기를 떠나지 않습니다
❓ 자주 묻는 질문
XSS 공격이란 무엇입니까?
XSS(크로스 사이트 스크립팅)는 공격자가 악성 스크립트를 웹 페이지에 주입하여 사용자 정보를 훔치거나 악의적인 작업을 수행하는 공격입니다. HTML 이스케이프는 XSS에 대한 기본 방어입니다
언제 HTML 이스케이프가 필요합니까?
댓글, 메시지, 폼 데이터 등 사용자 입력을 표시할 때는 항상 이스케이프가 필요합니다. HTML 태그를 포함할 수 있는 콘텐츠는 이스케이프가 필요합니다
&lt;와 &#60;의 차이점은 무엇입니까?
둘 다 < 문자를 나타냅니다. &lt;는 명명된 엔티티, &#60;은 숫자 엔티티입니다. 기능은 동일하지만 명명된 엔티티가 더 읽기 쉽고 숫자 엔티티가 더 범용적입니다
이스케이프로 모든 JavaScript 인젝션을 방지할 수 있습니까?
아니요. HTML 이스케이프는 HTML 컨텍스트에서만 작동합니다. JavaScript, CSS, URL 컨텍스트에서는 다른 이스케이프 방법이 필요합니다
왜 가끔 &amp;lt; 같은 이중 이스케이프가 표시됩니까?
콘텐츠가 두 번 이스케이프되었기 때문입니다. 처음에 <가 &lt;가 되고, 다음에 &가 &amp;로 이스케이프되어 결과적으로 &amp;lt;가 됩니다. 중복 이스케이프는 피해야 합니다
일부 안전한 HTML 태그를 허용하려면 어떻게 해야 합니까?
단순 이스케이프가 아니라 ‘정화(Sanitization)’를 사용하세요: 허용 목록으로 안전한 태그/속성만 남기고 프로토콜을 필터링합니다. p/br/ul/ol/li/a/strong/em/code/pre/blockquote/h1–h3 정도만 허용하고, a 는 href/title/target 만(프로토콜은 http/https/mailto/tel), img 는 src/alt 만 허용. style 과 모든 on* 이벤트는 제거. DOMPurify/sanitize‑html 권장, 가능하면 서버 측에서 정화. 신뢰되지 않은 내용을 innerHTML/dangerouslySetInnerHTML 에 주입하지 말고, 순수 텍스트는 textContent 사용