거누의 개발노트

XSS, CSRF 본문

CS

XSS, CSRF

Gogozzi 2022. 6. 9. 13:36
반응형

XSS(CSS) 크로스사이트 스크립트 란

XSS 공격방법은 해커가 웹 페이지에서 악성 스크립트를 넣습니다.

예를들어 게시판 사이트가 있으면 게시판에 글쓰는 공간에 악성 스크립트를 넣는것이죠.

그럼 악성 스크립트가 들어간 게시글이 등록 되고, 그 등록된 게시글을 사용자가 단순히 게시글인줄알고 게시글을 읽으러 들어갔을때

악성 스크립트가 실행되면서 해커에게 사용자의 정보가 넘어오게 되는 공격 방식입니다.

공격자는 이런 공격을 통해 사용자의 개인정보, 세션쿠키정보, 악성코드 다운로드 등을 이용해 공격을 수행합니다.

CSRF(크로스사이트 요청 변조)란?

XSS와 같이 악성 스크립트를 삽입하는 것까지는 같지만 사용자가 악성 스크립트가 포함된 게시글을 열람했을 때,

사용자의 권한으로 웹서버에 공격을 가합니다.

XSS와 다른점은 웹서버에 CSRF 스크립트를 실행 시킨다는 점이죠.

사용자는 자신도 모르게 공격자가 의도한대로 어떤 행위를 서버에게 요청하는 건데, 예를들면 사용자의 비밀번호를 변경시켜버리는 행위가 있습니다.

두 공격의 큰 차이점은 공격이 실행되는 위치입니다.

XSS는 클라이언트 PC에서 실행되며 사용자의 정보를 탈취하는 것이고, CSRF는 위조된 요청을 서버에 보내어 서버단에서 스크립트가 실행됩니다.

 

두가지 공격에 대한 대응방안

쿠키에 저장되는 정보나 서버에서 내려주는 정보를 읽지 못하게 정보를 암호화 해야합니다.

게시물을 등록할 때나 사용자 입력이 들어가는 페이지라면 스크립트 코드가 적용되지 않게 특수문자를 변환해야 합니다.

요청할 때의 도메인을 검사하여, 올바르게 웹페이지에서 요청한건지 검증해야합니다.

사용자  세션에 임의의 난수 값을 저장하고, 사용자의 요청 마다 해당 난수 값을 포함 시켜 전송해야합니다. 이렇게 하면 서버에서 내려준 난수값과 사용자가 요청한 난수값이 일치한다면 사용자가 보낸 요청인지 판단할 수 있습니다.

반응형
Comments