관리 메뉴

ARTIFEX ;)

XSS, CSRF 간단 정리 본문

# Security/(구)보안

XSS, CSRF 간단 정리

Artifex_Ethan_ 2020. 5. 22. 16:06
반응형

XSS (Cross Site Scripting) :

- 공격자에 의해 작성된 스크립트가 다른 사용자에게 전달되는 기법

- 다른 사용자의 웹 브라우저 내에서 적절한 검증 없이 실행되기 때문에 사용자의 세션을 탈취하거나, 웹 사이트를 변조하거나 혹은 악의적인 사이트로 사용자를 이동시킬 수 있다.

 

# 공격 유형 

1. Stored XSS : 가장 일반적인 유형. 단순한 게시판 or 자료실과 같이 사용자가 글을 저장할 수 있는 부분에 정상적인 평문이 아닌 스크립트 코드를 입력하는 기법

 

2. Reflected XSS : 공격 스크립트가 포함된 공격 URL을 사용자가 클릭할 때 악성 스크립트가 서버 사이트에 의해 HTML 문서로 반사되어 웹 브라우저에서 실행되어 서버에 흔적을 남기지 않고 공격을 수행할 수 있다.

 

# 보안대책

  • 사용자가 입력한 문자열의 <,>,&," 등을 문자 변환 처리를 하여 &lt,&gt,&amp,&quot로 치환한다.
  • HTML 태그를 허용하는 게시판에서는 지원하는 HTML 태그의 리스트를 선정한 후, 해당 태그만 허용하는 방식을 적용한다.

 

CSRF(Cross Site Request Rofgery):

- 사용자가 인지하지 못한 상황에서 사용자의 의도와는 무관하게 공격자가 의도한 행위를 요청하게 하는 기법

- 정상적인 사용자가 악성 스크립트를 서버에 요청하게 하여 공격하는 방법

 

# 보안대책

  • 입력화면 폼 작성 시 GET 방식보단 POST 방식을 사용하고, 토큰을 이용하여 공격자의 직접적인 URL 사용이 동작하지 않도록 처리한다.
  • 특정한 사용자를 구분하는 인수가 있으면 하나의 사용자에게만 적용되거나 인증과정을 통해 공격을 막을 수 있다.
  • 아래 이미지는 안전한 코드를 예시로 보여준다.

출처 IT위키-CSRF

# 차이점 요약

XSS는 공격대상이 클라이언트이며, CSRF는 서버이다.

XSS는 사이트변조나 백도어를 통해 클라이언트에 대한 악성공격을 수행하며, 

CSRF는 요청을 위조하여 사용자의 권한을 이용해 서버에 악성공격을 수행한다.

반응형