sanitizationcspescaping

XSS를 설명해 주세요

예상 시간
7
30초 답변

꼬리질문

조금 더 깊게 물어본다면

답변 뒤에 이어질 수 있는 질문들을 하나씩 열어볼 수 있어요.

stored XSS와 reflected XSS는 어떻게 다른가요?

부가 설명

container.innerHTML = userInput;

userInput이 신뢰할 수 없는 값이면 위험할 수 있습니다.

<div>{userInput}</div>

React는 기본적으로 text interpolation을 escape하므로 이 경우 script로 실행되지 않습니다. 다만 dangerouslySetInnerHTML을 쓰면 직접 책임져야 합니다.

XSS는 입력 검증만으로 끝나는 문제가 아닙니다. 데이터가 들어오는 시점보다 “어떤 context에 출력되는지”가 더 중요할 때가 많습니다. HTML 본문, attribute, URL, script context마다 안전한 처리 방식이 다릅니다.

XSS는 stored XSS, reflected XSS, DOM-based XSS로 나누어 볼 수 있습니다.

한 줄 정리

XSS는 신뢰할 수 없는 값이 브라우저에서 script로 실행되는 문제이고, 출력 context에 맞는 escaping과 방어층이 필요합니다.