개요
Cross-Site Scripting은 신뢰할 수 없는 입력이 HTML, JavaScript, URL, CSS 문맥에 안전하지 않게 출력되어 브라우저에서 공격자 스크립트가 실행되는 취약점이다.
주요 유형
Reflected XSS
요청 파라미터가 응답에 즉시 반영될 때 발생한다.
Stored XSS
게시글, 프로필, 로그처럼 저장된 데이터가 다른 사용자에게 렌더링될 때 발생한다.
DOM-based XSS
서버 응답보다 클라이언트 JavaScript의 DOM 조작 과정에서 발생한다.
영향
- 세션 탈취
- 사용자 행동 위조
- 피싱 UI 삽입
- 내부 페이지 정보 유출
방어
출력 문맥별 인코딩을 적용하고, 위험한 HTML 삽입 API 사용을 제한한다. CSP는 피해 범위를 줄이는 보조 방어로 사용한다.