XSS (Cross-site Scripting)

XSS

개요

XSS(크로스 사이트 스크립팅)는 웹 애플리케이션의 취약점으로, 악성 스크립트가 웹 페이지에 삽입되어 사용자 브라우저에서 실행되는 공격입니다. 이를 통해 세션 쿠키 탈취, 사용자 정보 수집, 페이지 변조, 키 입력 감시, 피싱 유도 등이 가능합니다.

XSS 설명

🚨 XSS 유형과 활용

XSS는 다음과 같은 주요 유형으로 나뉩니다:

  • 반사형 XSS: URL 매개변수나 입력값을 통해 악성 스크립트가 전달되어 즉시 실행됩니다.
  • 저장형 XSS: 악성 스크립트가 DB나 게시판에 저장되어 모든 방문자에게 실행됩니다.
  • DOM 기반 XSS: 클라이언트 측 JavaScript가 DOM을 조작해 악성 스크립트를 실행합니다.

반사형 XSS는 공격자가 URL에 악성 스크립트를 삽입하여 피해자가 링크를 클릭하면 스크립트가 실행됩니다. 저장형 XSS는 게시판이나 프로필에 스크립트를 저장해 페이지를 변조합니다.

🔒 대응 방안

입력값 검증

모든 사용자 입력을 검증하여 악성 스크립트가 삽입되지 않도록 합니다.

출력 인코딩

HTML, JavaScript, URL 등 출력 데이터를 적절히 인코딩하여 스크립트 실행을 차단합니다.

안전한 코딩

OWASP 가이드라인을 따라 Flask 등 프레임워크에서 이스케이프 처리를 적용합니다.