#38 TIL CSRF

장석진·2021년 6월 28일
0

Web application Security 란?

  • 개발자들이 웹사이트, 모바일 어플, 웹 API 등을 만들 때에 해커들의 공격을 막기 위해서 보안(security)은 필수 사항
  • 여러 가지 공격들
  • SQL injection,XSS,CSRF

CSRF(Cross Site Request Forgery)란?

  • 서버가 클라이언트(의 쿠키 정보를)너무 믿어서 생기는 공격
  • 다른 오리진(cross-site)에서 유저가 보내는 요청(request)을 조작(forgery)하는 것
    Ex) 이메일에 첨부된 링크를 누르면 내 은행계좌의 돈이 빠져나감.
  • 해커가 직접 데이터를 접근할 수 없다
    Ex) 다른 오리진이기 때문에 response에 직접 접근할 수 없음

CSRF 공격을 하기 위한 조건

  • 쿠키를 사용한 로그인 => 유저가 로그인 했을 때, 쿠키로 어떤 유저인지 알수 있어야 함
  • 예츨할 수 있는 요청/parameter를 가지고 있어야 함 => request에 해커가 모를 수 있는 정보가 담겨있으면 안됨

GET요청으로 CSFR 공격하기

Ex) 계좌이체를 사용되는 GET요청 => 김코딩에 계좌로 보내는 요청코드를 해커에 계좌로 바꿈 => 해커는 악성링크를 보냄
=> 은행에서는 로그인이 되어있느 상태에 이체요청을 보냈으니 해커에게 돈을 보내는 요청을 받아드림

POST요청으로 CSRF 공격하기

EX) 비밀번호 변경에 사용되는 POST 요청 => body에 사용된다.

CSRF 막는 법

  • CSRF 토큰 사용하기,서버측에서 CSRF 공격에 보호하기 위한 문자열을 유저의 브라우저와 웹 앱에만 제공
  • Same-site cookie사용하기, 같은 도메인에서만 세션/쿠키를 사용할 수 있다.
profile
개발자가 되고 싶은 새내기

0개의 댓글