문제
크로스 사이트 스크립팅(XSS) 공격의 종류별 특징을 설명하고, 각 유형에 대한 효과적인 방어 기법을 3가지 이상 제시하시오.
정답
XSS는 웹 애플리케이션이 사용자 입력을 적절히 검증하지 않아 악성 스크립트가 다른 사용자 브라우저에서 실행되는 공격이다. 1) Stored XSS: 서버에 저장된 악성 스크립트가 다른 사용자에게 전달, 2) Reflected XSS: URL 파라미터 등을 통해 즉시 반사되는 공격, 3) DOM-based XSS: 클라이언트 측 스크립트가 DOM을 조작하여 발생. 방어기법으로는 1) 입력값 검증과 HTML 엔티티 인코딩, 2) CSP(Content Security Policy) 헤더 설정, 3) HttpOnly 쿠키 플래그 설정, 4) 출력 시 컨텍스트별 이스케이프 처리 등이 있다.
스크립트 삽입Stored XSSReflected XSSDOM-based XSSHTML 인코딩CSPHttpOnly이스케이프
해설
XSS는 OWASP Top 10의 주요 취약점으로, 사용자 입력이 브라우저에서 스크립트로 해석되어 발생한다. Stored XSS는 지속성이 있어 가장 위험하고, Reflected는 소셜 엔지니어링과 결합되며, DOM-based는 클라이언트 측에서만 발생한다. CSP는 스크립트 실행 정책을 제어하고, HttpOnly는 자바스크립트를 통한 쿠키 접근을 차단한다.