보안 공격 예 :
CSRF (Cross Site Request Forgery)
- CSRF는 다른 오리진(cross-site)에서 유저가 보내는 요청(request)을 조작(forge) 하는 것이다
- 예 : 이메일에 첨부된 링크를 눌러 은행계좌에서 돈이 빠져 나가는 거
- 기본적으로 해커는 직접 데이터에 접근할 수 없다
- 다른 오리진이기 때문에 응답(response)에 직접 접근 할 수 없다
어떤 조건에서 CSRF 공격이 가능한가?
- 쿠키를 사용한 로그인 : 유저가 로그인 했을 때, 쿠키로 어떤 유저인지 알 수 있다
- 예측할 수 있는 요청(request) / parameter를 가지고 있어야 한다 : request에 해커가 모를 수 있는 정보가 담겨 있으면 안된다.
- 공격방법은 어떻게 보면 간단하다
CSRF는 어떻게 막나?
- Token 사용하기
- 서버측에서 CSRF 공격에 보호하기 위한 문자열을 유저의 브라우저와 웹 앱에만 제공
- Same-site cookie 사용하기
- 같은 도메인에서만 session/cookie를 사용할 수 있게 한다