SECURITY · CH4

문맥별 인코딩

문맥별 인코딩은 같은 입력값이라도 HTML, 속성, JavaScript, URL 중 어디에 출력되는지에 맞춰 다르게 처리하는 방어입니다.

문맥별 인코딩 구성 요소

출력 방어
HTML 본문<, >, &, 따옴표를 HTML 엔티티로 처리합니다.
HTML 속성속성 경계를 깨는 따옴표와 이벤트 핸들러 삽입을 막습니다.
JavaScript문자열 경계와 실행 문맥을 깨지 않도록 JS 인코딩이 필요합니다.
URL쿼리와 경로 문맥에 맞게 percent-encoding을 적용합니다.

문맥별 인코딩 진행 순서

문맥 인코딩
입력값사용자 데이터
출력 문맥HTML/JS/URL
인코딩문맥별 처리
검증과 차이

입력값 검증은 들어올 때의 기준이고, 출력 인코딩은 브라우저가 해석하기 직전의 방어입니다.