CSRF(Cross Site Request Forgery)란?

Jean Young Park·2023년 9월 25일
0

기타

목록 보기
2/4

웹 개발자라면 당연히 알아야하는 공격중 하나!
근데 생각해보니 나.. 제대로 알고 있나..? 한번쯤 정리하면 좋겠다 싶어서 정리를 해보려고 한다.

CSRF란

CSRF는 Cross-Site Request Forgery의 약자로, 사이트 간 요청 위조를 의미한다. 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹 사이트에 요청하게 하는 공격을 말한다.

CSRF 공격이 가능한 이유는 웹 브라우저가 사용자가 인증한 상태를 유지하기 때문이다.
공격자는 사용자가 인증된 상태를 악용해 공격자가 의도한 행위를 하도록 유도한다. 예를 들어, 공격자는 사용자가 이메일에 포함된 악성 링크를 클릭하도록 유도할 수 있다. 이 악성 링크는 사용자가 인증된 웹사이트에 요청을 전송하도록 한다. 이 요청은 사용자가 직접 전송한 것이 아니기 때문에 사용자는 이를 인지하지 못할 수 있다.

CSRF 공격

  • 계정 탈취
  • 데이터 유출
  • 결제 요청

CSFR 공격을 방지

  • CSFR 토큰 사용
    웹 애플리케이션은 사용자 세션과 연관된 CSFR 토큰을 생성하고 요청에 이 토큰을 포함 시킨다. 서버는 요청을 받을 때 이 토큰을 검증하여 해당 요청이 유효한지 확인하다.
  • SameSite 쿠키 속성
    SameSite 쿠키 속성을 설정하면 웹 애플리케이션의 출처와 다른 출처로의 요청에서는 쿠키를 전송하지 않도록 설정할 수 있다.
  • HTTP Referer 검증
    서버는 요청 헤더에 있는 Referer 값을 검증하여 요청이 유효한 출처에서 왔는지 확인할 수 있다.

0개의 댓글