XSS 공격이란?

2022. 3. 13. 15:06·Auth | Security
목차
  1. XSS, 크로스 사이트 스크립팅이란?
  2. XSS 공격 방법
  3. XSS 공격 방어 방법
  4. 마치며

XSS 공격은 크로스 사이트 스크립팅(Cross Site Scripting)을 뜻하며, 브라우저에서 특정 스크립트가 실행되도록 하는 공격 방식입니다. 공격자는 XSS 공격을 통해 사용자의 세션을 가로채거나, 웹사이트를 변조하고, 피싱을 시도할 수 있습니다.

XSS, 크로스 사이트 스크립팅이란?

크로스 사이트 스크립팅은 웹 애플리케이션에서 발생하는 가장 일반적인 10가지 공격 중 하나에 해당하며, 웹사이트에 악성 스크립트를 심어 이를 열람한 피해자를 공격하는 방법입니다.

 

해커는 쿠키의 정보를 사용해 세션을 가로채거나, 웹사이트를 변조하고 피싱 공격을 시도할 수 있습니다. 또한, 사용자가 키보드를 통해 입력하는 정보를 가로채는 키 로거(Key Logger), 마우스 위치를 추적하는 마우스 스니퍼(Mouse Sniffer), 스크립트 암호화 및 우회 등을 시도할 수 있습니다.

XSS 공격 방법

XSS 공격은 저장형(stored)과 반사형(reflected)이 존재합니다.

 

저장형은 사용자가 보는 게시물에 악성 스크립트를 삽입하여, 이를 열람할 경우 공격자의 자바스크립트가 실행됩니다. 공격자의 스크립트는 데이터베이스에 저장되어 이를 열람하는 사용자들을 공격하게 됩니다. 공격자는 이를 통해 사용자의 쿠키, 세션 등의 정보를 획득합니다.

 

반사형은 URL에 스크립트 코드를 삽입하는 것입니다. 특정 링크를 클릭하면, 링크 URL에 삽입된 스크립트가 실행되며 웹페이지의 내용이 변경됩니다.

XSS 공격 방어 방법

XSS 공격에는 어떤 방어 방법으로 대응할 수 있을까요? 안타깝게도 XSS 공격은 사전 방어가 어려우며, 사용자의 개인 기기가 아닌 방문하는 웹사이트를 대상으로 하기 때문에 공격에 노출되기가 쉽습니다. 그럼에도 몇 가지 대응 방안이 있습니다.

 

개발자는 다음과 같은 방어 방법을 구축할 수 있습니다.

  1. 중요한 정보는 쿠키에 저장하지 않아야 합니다
  2. 스크립트 코드에 사용되는 특수 문자를 정확히 필터링해야 합니다. 일례로 사용자가 입력할 수 있는 문자를 제외하고는 공격에 사용될 수 있는 특수 문자들(<, >, &, %...)이 입력되지 못하도록 합니다.
  3. HTML 형식의 입력을 제한해야 하여. HTML 태그들이 자유롭게 입력될 수 없도록 해야 합니다.

사용자는 다음과 같은 주의 사항을 준수할 수 있습니다.

  1. 이메일이나 신뢰할 수 없는 출처의 링크를 클릭하지 않고, 즐겨찾기 해둔 URL을 통해 사이트에 접속합니다.
  2. 브라우저를 최신 버전으로 업데이트합니다.
  3. 쿠키 수집을 차단하는 등 브라우저 보안을 설정합니다.
  4. 웹 메일에서 자바스크립트 허용 여부를 검토할 수 있습니다.

마치며

XSS 크로스 사이트 스크립팅은 사용자의 브라우저에서 악성 스크립트를 실행하여 사용자의 세션을 가로채거나 웹사이트를 변조하고, 피싱 등을 시도하는 공격의 한 유형입니다.

 

참고: https://nordvpn.com/ko/blog/xss-attack/

 

반응형

'Auth | Security' 카테고리의 다른 글

JWT 토큰 발급과 로그인 처리 방법  (0) 2022.04.06
SSO 싱글사인온이란?  (0) 2022.03.08
SSH 개념과 사용 방법: 퍼블릭 키와 프라이빗 키 설명  (1) 2022.03.01
  1. XSS, 크로스 사이트 스크립팅이란?
  2. XSS 공격 방법
  3. XSS 공격 방어 방법
  4. 마치며
'Auth | Security' 카테고리의 다른 글
  • JWT 토큰 발급과 로그인 처리 방법
  • SSO 싱글사인온이란?
  • SSH 개념과 사용 방법: 퍼블릭 키와 프라이빗 키 설명
휘 Hwi
휘 Hwi
개발자 성장 로그
  • 휘 Hwi
    개발자 로그: 변화를 위한 공간
    휘 Hwi
  • 전체
    오늘
    어제
    • 분류 전체보기 (61)
      • 101 (1)
      • Web | Internet (4)
      • HTML | CSS (4)
      • Python (9)
      • Django (20)
      • Javascript (0)
      • Node.js (0)
      • React (0)
      • React Native (0)
      • Database (1)
      • Git (1)
      • Terminal | Vim (1)
      • Auth | Security (4)
      • AWS (0)
      • Docker (0)
      • Kubernetest (1)
      • Deployment (1)
      • Project (2)
      • TIL (12)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    함수
    JWT
    프로젝트 회고
    장고 Views
    TIL
    장고 프로젝트
    장고
    css
    깃
    깃 오류
    파이썬
    정규 표현식
    파라미터
    탭내빙
    target="_blank"
    장고 URL
    깃 퍼블릭 키 등록
    요소 크기 설정
    JWT 인코딩
    요소 상대 크기
    요소 절대 크기
    깃 ssh
    JWT 디코딩
    HTTP GET 요청
    배포
    새 탭에서 열기
    html
    HTTP POST 요청
    깃 에러 해결
    HTTP
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
휘 Hwi
XSS 공격이란?
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.