본문 바로가기
IT/javascript

Cross-site Scripting (XSS)란?

by 뉴코딩맨 2023. 5. 21.
크로스 사이트 스크립팅(XSS)은 웹 애플리케이션에서 발생하는 보안 취약점 중 하나로, 공격자가 악성 스크립트를 삽입하여 사용자의 브라우저에서 실행되게 하는 공격입니다. XSS의 개념, 공격 유형, 예방 방법 등에 대해 자세히 알아보겠습니다.

 

 

XSS의 종류

  1. 저장형 XSS(Stored XSS): 악성 스크립트가 서버에 저장되어 다른 사용자가 해당 페이지를 요청할 때 실행됩니다. 주로 게시판, 댓글 등에서 발생합니다.
  2. 반사형 XSS(Reflected XSS): 사용자가 입력한 데이터가 즉시 서버로 전달되어 해당 응답에 악성 스크립트가 포함되어 반환됩니다. 주로 검색어, 링크 공유 등에서 발생합니다.
  3. DOM 기반 XSS(DOM-based XSS): 웹 페이지의 DOM(Document Object Model) 구조를 조작하여 악성 스크립트를 실행하는 공격입니다.

 

 

XSS 공격의 위험성

XSS 공격은 사용자의 브라우저에서 실행되므로, 공격자는 사용자의 세션을 탈취하거나, 사용자의 정보를 유출하거나, 악성 행동을 수행할 수 있습니다. 이를 통해 개인정보 유출, 계정 탈취, 사이트 변조 등의 피해가 발생할 수 있습니다.
 
 

XSS 예방 방법

  1. 입력 데이터의 필터링 및 이스케이프(Escape): 사용자 입력 데이터에 대해 필터링하여 악성 스크립트를 제거하거나 이스케이프 처리하여 실행되지 않도록 합니다.
  2. 콘텐츠 보안 정책(Content Security Policy, CSP) 설정: 웹 페이지에서 실행 가능한 스크립트의 출처를 제한하여 악성 스크립트의 실행을 방지합니다.
  3. XSS 필터링 기능 활성화: 웹 애플리케이션의 보안 설정에서 XSS 필터링 기능을 활성화하여 악성 스크립트의 삽입을 방지합니다.
  4. 안전한 쿠키 설정: 쿠키의 HttpOnly 속성을 설정하여 JavaScript에서 접근할 수 없도록 합니다.
 
 

요약

크로스 사이트 스크립팅(XSS)은 웹 애플리케이션에서 발생하는 보안 취약점으로, 악성 스크립트를 삽입하여 사용자의 브라우저에서 실행되게 하는 공격입니다. XSS 공격은 사용자의 개인정보 유출, 계정 탈취, 사이트 변조 등을 초래할 수 있으므로, 적절한 보안 대책을 적용하여 XSS 공격으로부터 안전한 웹 애플리케이션을 구축해야 합니다.
 

댓글