🗣 기술면접 대비

Cross-Site Scripting (XSS)을 설명하고, 해결 방안은 무엇인가?

놀러와요 버그의 숲 2022. 1. 8. 09:44
728x90
반응형

 

XSS(Cross-Site Scripting) 

: 관리자가 아닌, 권한이 없는 사용자가 웹 사이트에 스크립트를 삽입하는 공격 기법

 

 

특징

대부분 사용자가 글을 쓰고 읽을 수 있는 게시판에 많이 발생하지만, 사용자의 입력 값을 웹 페이지에 보여주는 곳에서도 발생한다.

악의적인 사용자가 C&C 서버로 리다이렉션 하기 위해 리다이렉션 스크립트를 주입하여 중간 경유지로 활용하기도 하고, 

사용자의 쿠키를 탈취하여 세션 하이재킹(Session Hijacking) 공격을 수행하기도 한다.

 

위험성

1. 쿠키 정보 및 세션ID 획득

2. 시스템 관리자 권한 획득 

3. 악성코드 다운로드

4. 거짓 페이지 노출 

 

 

해결방안

 

1. 입출력값 검증 

 

XXS는 입출력 값 검증이 제대로 이루어지지 않아 발생하는 취약점이다. 

따라서 서버측에서 사용자의 모든 입력값에 대해서 필터링을 해주어야 한다.

주로 스크립트를 실행하기 위한 특수 문자를 필터링 해야한다.

 

2. XXS 방어 라이브러리, 브라우저 확장 앱 사용

 

회사

: XSS를 막아주는 Anti XSS 라이브러리를 여러 회사에서 제공하는데 이 라이브러리를 사용하면 손쉽게 XSS를 방어할 수 있다.

  XSS 라이브러리를 사용하는 것은 서버 단에서 개발자가 추가하는 것이다.

 

사용자

:브라우저 확장 앱 중 Anti XSS 를 해주는 애플리케이션을 설치하고 방어하여야 한다.

 

3. 웹 방화벽 사용

 

 

 

면접에서 나의 긴장된 ver. 대답

 

Cross-Site Scripting이란 권한이 없는 사용자가 웹 사이트에 스크립트를 삽입하여 공격하는 기법입니다.

주로 게시판에 많이 발생하지만, 사용자의 입력값을 보여주는 모든 곳에 나타날 수 있습니다.

리다이렉션 스크립트를 삽입하여 중간 경유지로 활용하기도 하고,

사용자의 쿠키를 탈취하여, 세션 하이젝킹 공격을 수행하기도 합니다. 

해결 방안 같은 경우는 가장 중요한것이 서버측에서 사용자의 모든 입력값을 필터링해주는 것입니다.

특히 스크립트를 실행하기 위한 특수 문자를 위주로 필터링 해주는 것이 좋습니다.

그 외에도 XXS 방어 라이브러리를 사용하거나 웹 방화벽을 사용하는 방법 등을 같이 이용해주는 것이 좋습니다.