주요정보통신기반 시설 가이드

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

만보만보잠만보 2024. 3. 17. 16:25

크로스사이트 스크립팅(XSS)

(Cross-site scripting)

 

개념

공격자가 공격하려는 사이트에 스크립트를 넣는 취약점입니다.

공격자가 게시판 같은 곳에 악의적인 스크립트를 심고 타 사용자가 해당 게시물을 확인할 경우 발생합니다.

 

발생 원인

사용자 입력 값에 대한 필터링이 제대로 이루어지지않아 발생합니다.

 

위험한 이유

악의적인 스크립트를 삽입하여 사용자의 쿠키(세션)을 탈취하여 도용하거나 Redirect를 할 수 있으며 CSRF공격의 베이스로 활용될 수 있습니다.

 

조치 방법

- 웹 사이트에 사용자 입력 값이 저장되는 페이지는 공격자가 웹 브라우저를 통해 실행되는 스크립트 언어를 사용하여 공격하므로 해당되는 태그 사용을 사전에 제한하고, 사용자 입력 값에 대한 필터링 작업이 필요합니다.

- 게시글의 본문뿐만 아니라 제목, 댓글, 검색어 입력 창, 그 외 사용자 측에서 넘어오는 값을 신뢰하는 모든 form과 파라미터 값에 대해서 필터링을 수행합니다.

- 입력 값에 대한 필터링 로직 구현 시 공백 문자를 제거하는 trim, replace 함수를 사용하여 반드시 서버 측에서 구현되어야 합니다.

- URLDecoder 클래스에 존재하는 decode 메소드를 통해 URL 인코딩이 적용된 사용자 입력값을 디코딩함으로써 우회 공격을 차단합니다.

- 웹 방화벽에 모든 사용자 입력 폼을 대상으로 특수문자, 특수 구문을 필터링하도록 룰셋을 적용합니다.

주통 내 필터링 대상 1
주통 내 필터링 대상 2

추가 정보

XSS가 성공할 경우 CSRF가 성공할 가능성이 높습니다.

XSS는 클라이언트(공격자)-클라이언트(피해자)의 느낌이고 CSRF는 클라이언트(피해자)-서버로 도달하는 공격으로 두 취약점에는 차이가 있습니다.

'주요정보통신기반 시설 가이드' 카테고리의 다른 글

불충분한 인증이란?  (0) 2024.03.17
약한 문자열 강도란?  (0) 2024.03.17
악성 콘텐츠란?  (0) 2024.03.17
정보 누출이란?  (0) 2024.03.17
디렉터리 인덱싱이란?  (0) 2024.03.17