DOM Based XSS 대응 방안

누군가·2024년 2월 24일
0

XSS 대응 방안

목록 보기
5/5

DOM Based XSS 대응 방안

  • 해당 문서에서는 DOM Based XSS 대응 방안에 대해 기술합니다.

공격 방법

  • DOM 페이지에 스크립트를 입력을 통한 공격 방법입니다.
  • 임의의 DOM 페이지를 생성하여 공격 방법에 대해 설명하겠습니다.

  • URL 주소에 해시 (#) 값이 존재하면 서버로 해시 값 경로에 위치한 페이지를 요청합니다.

  • 해시 값이 변경될 때마다 서버에게 특정 페이지를 요청합니다.
  • URL에 스크립트 코드를 작성합니다.
# 스크립트 예시
https://{호스트}:{포트}/#javascript:function a() {setTimeout(function () {alert('안녕')}, 1000)}; a();

-> 1초 후 alert로 "안녕"이라는 문구를 띄우는 스크립트

  • 스크립트 코드가 포함된 URL을 요청합니다.

  • 이와 같이 URL에 스크립트가 포함되어 스크립트가 실행되며 alert 창이 발생합니다.

방어 방법

  • DOM Based XSS의 방어 방법에 대한 내용입니다.

1) 정적 템플릿 사용

  • XSS 공격에 대한 방어를 위해 가능하면 정적 템플릿 엔진을 사용하여 동적으로 생성되는 HTML을 최소화합니다.

2) 사용자 입력의 적절한 검증 및 이스케이프

  • 사용자로부터 받은 입력 값을 검증하여 이스케이프 과정을 거쳐야 합니다.
  • HTML 특수 문자를 이스케이프하여 사용자 입력이 HTML 태그로 해석되지 않도록 처리해야 합니다.

3) CSP (Content Security Policy) 설정

  • CSP를 사용하여 허용된 리소스 및 스크립트의 소스를 명시적으로 정의할 수 있습니다.
  • 특히, script-src 지시어를 사용하여 허용된 스크립트 출처를 제한할 수 있습니다.

소스코드

Reference

https://junhyunny.github.io/information/security/dom-based-cross-site-scripting/

profile
개발 중에 알게된 내용을 공유합니다 (나도 기억할겸)

0개의 댓글