XSS·Output encoding 단계별 흐름 사용자 입력이 언제 단순 문자열이 아니라 Browser의 코드가 될까요? Attacker-controlled input이 URL·form·database 등 source에서 들어옵니다. → Server가 값을 HTML response의 특정 context에 출력합니다. → Encoding이 없으면 Browser parser가 입력을 data가 아니라 markup 또는 script로 해석할 수 있습니다. → Script가 victim origin에서 실행되어 cookie 접근·request 전송·화면 변조를 수행할 수 있습니다. → 방어는 HTML text·attribute·JavaScript·URL 등 출력 context에 맞는 encoding입니다. → CSP는 추가 방어층이며 근본적인 output encoding을 대체하지 않습니다. 사용자 입력이 언제 단순 문자열이 아니라 Browser의 코드가 될까요? 화살표를 왼쪽에서 오른쪽으로 따라가며 입력·처리·결과를 확인하세요. 1 Attacker-controlledinput이URL·form·database등 source에서들어옵니다. 2 Server가 값을HTMLresponse의 특정context에출력합니다. 3 Encoding이 없으면Browserparser가 입력을data가 아니라markup 또는script로 해석할 수 4 Script가victimorigin에서 실행되어cookie접근·request전송·화면 변조를 수행할 5 방어는 HTMLtext·attribute·JavaScript·URL등 출력 context에맞는encoding입니다. 6 CSP는 추가 방어층이며근본적인 outputencoding을대체하지 않습니다. 시험 읽기 순서 등장 주체 또는 입력 → 처리 규칙 → 보안 효과 → 조건과 한계