CSRF 공격

조예빈·2024년 12월 15일
0

CSRF 공격이란?

  • 로그인한 사용자의 권한을 이용하여 웹사이트에 악성 요청을 보내는 것(사용자가 이미 로그인 한 상태에서 공격자가 사용자의 권한으로 요청을 보내는 것)
  • 서버에서 발생 함
  • 권한을 도용당한 클라이언트가 가짜 요청을 서버에게 전송하는 것

순서

  1. 사용자가 A 사이트에 로그인
  2. A사이트가 세션 쿠키를 브라우저에 저장
  3. 사용자가 악성 사이트 B를 방문
  4. B사이트에서 악성 코드 실행(사용자의 세션 쿠키를 포함하여 A사이트로 전송)
  5. A사이트는 이 요청을 정상적인 사용자로부터 온 요청으로 인식하고 처리

방어법

  • 각 요청에 대해 고유한 CSRF 토큰을 생성하고 검증하여 요청의 유효성을 확인
  • CSRF 토큰을 HTML 폼에 숨겨진 필드로 추가하여 서버로 요청을 전송한 후 서버에서 세션에 저장된 토큰과 비교
  • 쿠키에 SameSite 속성을 설정하여 외부 사이트에서의 요청에 대해 쿠키가 전송되지 않도록 함
  • 요청의 Referer 헤더를 확인하여 요청이 신뢰할 수 있는 출처에서 온 것인지 검증
profile
컴퓨터가 이해하는 코드는 바보도 작성할 수 있다. 사람이 이해하도록 작성하는 프로그래머가 진정한 실력자다. -마틴 파울러

0개의 댓글

관련 채용 정보