본문으로 바로가기

Django | 보안 | XSS | crose site scripting

category TIL/team_project 2022. 12. 22. 02:07

웹개발을 하면서 처음으로 느껴본 보안문제였다.

프로젝트 진행중에 게시판이나 리뷰를 저장할때 <script> 를 사용해서 작성하면 게시글을 불러볼때 스크립트 내용이 실행되는걸 알았다.

공격방법이 어느정도 잘 알려져있기 때문에 해결책을 잘 찾을 수 있고 간단하게 해결 할 수 있다고 생각했지만 정확한 방법이 정해져 있지않고 나만의 방법으로 만들어 볼 생각이다.

XSS 공격 방법은 스크립트를 삽입해서 사이트 사용자를 공격하고 스크립트를 실행시켜 유저정보를 탈취하는것이다.

 

스크립트가 포함된 게시글을 본다면 심어놓은 스크립트를 실행하고 유저토큰, 쿠키를 탈취하고 다른 사이트로 이동시켜서 악성코드를 심기도 한다. 로컬 스토리지에 있는 엑세스 토큰과 리프레시토큰까지 훔치는게 가능하다.

<script> const access_token = window.localStorage.getItem('access_token'); </script>

 

방지방법은 프론트에서 <>특수문자를 사용하지못하게 하는방법이 있다.

다음글에서 drf 시리얼라이저에서 XSS를 방지하는 코드를 만들고 기록해 볼 예정이다.