소스 코드 입력
상단 입력창에 블로그에 게시할 마크업 소스 코드나 괄호(<, >) 등 특수 기호가 포함된 일반 텍스트를 복사하여 붙여넣습니다.
XSS 보안 방어 및 소스 코드 문서화를 위한 태그 무력화 유틸리티
웹 브라우저는 서버로부터 전달받은 문서를 파싱(Parsing)할 때, 특정 기호들을 단순한 글자가 아닌 문서의 구조를 결정하는 '예약어(Reserved Characters)'로 인식합니다. 대표적으로 < 기호는 새로운 태그의 시작을 의미합니다.
만약 "5 < 10"이라는 텍스트를 본문에 그대로 작성하면, 브라우저는 < 10 부분을 알 수 없는 태그로 오해하여 화면 렌더링을 깨뜨립니다. 이러한 충돌을 방지하기 위해 <를 <라는 일종의 우회 코드로 치환하는 것이 웹 표준이며, 이를 'HTML 엔티티(Entities)'라고 부릅니다. 본 변환기는 자바스크립트 정규식을 통해 로컬 환경에서 이스케이프(Escape) 처리를 즉각 수행합니다.
상단 입력창에 블로그에 게시할 마크업 소스 코드나 괄호(<, >) 등 특수 기호가 포함된 일반 텍스트를 복사하여 붙여넣습니다.
'태그 무력화(Escape)'를 눌러 기호를 웹 표준 엔티티로 변환하거나, '코드로 복구(Unescape)'를 눌러 원본 코드로 되돌립니다.
XSS 공격으로부터 안전하게 변환된 문자열을 복사하여, 웹사이트의 데이터베이스나 블로그 마크다운 에디터에 붙여넣어 사용합니다.
HTML 엔티티 변환은 현대 웹 보안의 가장 치명적인 취약점인 XSS(Cross-Site Scripting) 공격을 방어하는 최전선입니다. 공격자가 <script> 태그를 주입하더라도, 이를 <script>로 무력화하면 브라우저는 이를 실행 가능한 코드가 아닌 '단순 문자열'로 렌더링합니다.
※ 5대 핵심 예약 문자 치환 알고리즘 및 DOMParser 파싱
// 1. 핵심 5대 예약문자 보안 치환 (XSS 방어)
const escapeHtml = (rawHtml) => {
const entityMap = {
'&': '&', '<': '<', '>': '>',
'"': '"', "'": ''', '/': '/'
};
return rawHtml.replace(/[&<>"'/]/g, (s) => entityMap[s]);
};
// 2. 브라우저 파서 엔진(DOMParser)을 활용한 완벽한 역치환
const unescapeHtml = (escapedHtml) => {
const doc = new DOMParser().parseFromString(escapedHtml, 'text/html');
return doc.documentElement.textContent;
}; Tistory, Velog, GitHub README 등을 작성할 때, <div>나 <svg> 같은 마크업을 그대로 붙여넣어 에디터 레이아웃이 찢어지는 현상을 방지하고 코드를 예쁘게 본문에 출력합니다.
사용자가 입력한 댓글이나 게시글 데이터를 백엔드 서버의 데이터베이스(DB)에 저장하기 전, 모든 태그 기호를 엔티티로 치환하여 추후 화면에 렌더링될 때 발생할 수 있는 스크립트 인젝션 공격을 원천 차단합니다.
프론트엔드 프레임워크(React, Vue 등)로 외부 API의 원시 HTML 데이터를 불러올 때, 구조적 오류를 일으키는 큰따옴표(")나 작은따옴표(')를 사전에 치환하여 데이터 파싱 에러를 방지합니다.
A. 복구 기능 자체는 텍스트를 읽기 위한 수단이므로 위험하지 않습니다. 하지만 복원된 소스 코드를 자바스크립트의 innerHTML 등을 통해 웹사이트에 직접 삽입하면 악성 스크립트가 실행될 수 있으므로, 오직 개발자가 눈으로 확인하고 에디터에서 편집하는 용도로만 사용해야 합니다.
기호로 변환해 주지 않나요? A. 본 변환기는 '구조의 파괴 방지'와 'XSS 보안'에 집중합니다. 일반 공백을 강제로 로 모두 변환할 경우, 브라우저의 자연스러운 자동 줄바꿈(Word Wrap) 기능이 무력화되어 스마트폰 화면에서 웹페이지 레이아웃이 찢어지는 역효과가 발생할 수 있습니다.
FreetyTools의 모든 변환 로직은 100% 클라이언트 사이드(Client-Side)에서 브라우저 메모리로만 실행됩니다. 입력하신 텍스트와 결과값은 귀하의 기기 밖으로 단 1바이트도 유출되지 않으며, 외부 서버에 전송되거나 기록되지 않습니다.
※ 주의: 엔티티 변환은 출력의 안전성을 보장할 뿐, 악성 코드를 '제거'하는 백신이 아닙니다. 복원(Unescape)된 코드를 신뢰할 수 없는 환경에서 실행하지 마십시오.