Stored XSS 대응 방안

누군가·2024년 1월 12일
0

XSS 대응 방안

목록 보기
4/5
post-thumbnail

Stored XSS 대응 방안

  • 해당 문서에서는 Stored XSS 대응 방안에 대해 기술합니다.
  • 대부분 서버에서 제공하는 게시판, 사용자 프로필 등에 악의적으로 동작하는 스크립트가 그대로 저장된 후 클라이언트의 브라우저로 전달되어 문제가 발생합니다.

특이 사항

  • 해당 문서에서는 Naver에서 제공하는 Smart Editor 2를 활용하여 Stored XSS 공격에 대한 대응 방안을 설명합니다.
  • XSS 대응으로 Lucy XSS Filter (lucy-xss-servlet-filter)를 활용할 수 있지만 Lucy XSS Filter로도 모든 XSS 공격에 대해 방어하지는 못하는 것으로 보입니다.

공격 방법

  • Naver 스마트 에디터 HTML 편집 기능을 통한 공격 방법입니다.
  • 아래와 같이 HTML 탭을 선택합니다.

  • 스크립트 코드를 작성합니다.
# 스크립트 예시
<img src="#" onerror="alert('hi')">

-> 유효하지 않은 이미지 경로를 지정하고, 이에 대한 에러 발생 시 alert 창을 띄우는 스크립트

  • 스크립트 코드가 포함된 글을 게시합니다.

  • 다시 게시글을 확인합니다.

  • 게시글로 이동하면 (위 사진에서는 뒤로가기) 아래와 같이 스크립트가 실행되며 alert 창이 발생합니다.

방어 방법

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

1) 꼭 사용할 태그만 WhiteList로 등록

  • 모든 스크립트 사용을 제한하고 XSS 공격과 무관한 스크립트만 WhiteList에 등록하여 사용할 수 있도록 합니다.
  • XSS 공격 의도가 아니었음에도 스크립트를 사용하지 못할 수 있다는 단점이 있습니다.

2) 태그 중 이벤트가 포함될 경우 치환

  • onclick, ontoggle 등 이벤트를 발생시키는 태그가 존재할 경우 이벤트를 발생시킬 수 없도록 해당 태그를 치환합니다.
    • 공백 등으로 치환할 수 있습니다.

Reference

https://junhyunny.github.io/information/security/spring-mvc/stored-cross-site-scripting/

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

0개의 댓글