본문 바로가기
Q&A2021년 9월 15일1분 읽기

CSRF 공격과 방어 방법을 알려주세요

강
강서연
조회 824댓글 1

CSRF(Cross-Site Request Forgery)가 어떤 공격인지, 어떻게 방어해야 하는지 궁금합니다.

댓글 1

김김영삼5년 전

CSRF는 사용자가 의도하지 않은 요청을 웹사이트에 보내게 만드는 공격입니다.

예시: 사용자가 은행 사이트에 로그인한 상태에서, 공격자의 페이지를 방문하면:

<img src="https://bank.com/transfer?to=attacker&amount=1000000">

이 이미지 태그가 자동으로 송금 요청을 보냅니다.

방어법:

  1. CSRF 토큰 — 서버가 발급한 랜덤 토큰을 폼에 포함, 요청 시 검증
  2. SameSite 쿠키 — Set-Cookie: session=...; SameSite=Strict
  3. Referer/Origin 헤더 검증
  4. 중요 작업에 재인증 — 비밀번호 재입력

대부분의 현대 프레임워크(Django, Rails, Spring 등)는 CSRF 토큰을 기본 지원합니다.

Ctrl+Enter로 등록