본문 바로가기
.etc

CSRF란?

by 오늘의개발부 2019. 7. 4.
반응형

CSRF의 기본 개념입니다.

CSRF(Cross Site Request Forgery)

  1. 개념 : 권한을 도용당한 인터넷 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록)를 특정 웹사이트에 요청하게 만드는 공격
  2. 방어 기법
    • Referer 검증
      • Back-end에서 request의 referer를 확인하여 Domain(saleson.com)이 일치하는지 검증.
      • 대부분의 CSRF공격 방어가 가능함. 하지만 XSS 취약점이 있는 경우 방어가 불가능해질 수 있음.
    • Security Token 사용(CSRF Token)
      • 사용자의 세션에 임의의 난수값을 저장하고 사용자의 요청마다 해당 난수값을 포함시켜 전송.
      • 이후 Back-end에서 요청을 받을 때마다 세션에 저장된 토큰값과 요청 파라미터에서 전달되는 토큰값이 같은지 검증하는 방법. 이 또한 XSS 취약점이 있는 경우 방어가 불가능해질 수 있음.
    • Double Submit Cookie 검증
      • 웹브라우저의 Same Origin 정책으로 인해 자바스크립트에서 타 도메인의 쿠키값을 확인, 수정하지 못한다는 것을 이용한 방어 기법.
      • script 단에서 요청시 난수를 생성하여 쿠키에 저장하고 동일한 난수 값을 요청 파라미터에 저장하여 서버에 전송. 서버단에서 쿠키의 토큰 값과 파라미터의 토큰값이 일치하는지만 검사하면 됨. 서버에 토큰값을 저장할 필요가 없어 세션 검증보다 가벼움.
    • Spring Security를 이용하는 방법
      • 사실 Spring Security를 공부하다가 CSRF 개념을 접하게 되었습니다. Spring Security를 이용한 CSRF 방어 방법은 세부 예제와 함께 이어집니다.[링크]
  3. 참고
    https://codediver.tistory.com/148

    XSS(Cross Site Scripting)

  • 공격하려는 사이트에 스크립트를 넣어 공격하는 기법
반응형