# CSRF(XSRF)와 요청 위조 방어

[원문](https://www.linkymeadow.com/w/8841e9/)

마지막 수정: 2026-10-05 20:20 (KST)

CSRF(Cross-Site Request Forgery, 사이트 간 요청 위조)는 사용자의 브라우저를 통해 의도하지 않은 요청을 보내 서버의 상태를 바꾸도록 하는 공격이며, XSRF도 같은 뜻의 다른 표기입니다. 대표적으로 브라우저가 로그인 쿠키를 자동 첨부하는 상황을 악용해 계정 설정 변경 같은 작업을 실행하게 만듭니다.

CORS는 다른 출처에 응답을 공유하는 규칙이므로, CORS 허용 출처를 설정하는 것만으로 모든 CSRF를 막지는 못합니다. 서버에서 CSRF 토큰이나 요청 출처 등을 검증하고 SameSite 쿠키를 함께 검토해야 하며, POST·HTTPS·HttpOnly만으로 CSRF 방어가 완성되는 것은 아닙니다.

## 공격 원리와 방어 기준

- [Cross-site request forgery (CSRF) — MDN](https://developer.mozilla.org/en-US/docs/Web/Security/Attacks/CSRF) · 영문

  쿠키를 이용한 요청 위조의 원리와 CSRF 토큰·Fetch Metadata·비단순 요청을 이용한 방어, SameSite의 한계를 설명합니다.
- [Cross-Site Request Forgery Prevention Cheat Sheet — OWASP](https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html) · 영문

  동기화 토큰·서명된 이중 제출 쿠키·사용자 지정 헤더, Origin·Referer 검증과 SameSite를 적용할 때의 조건을 정리합니다.

## 쿠키와 요청 출처

- [Set-Cookie header — MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Set-Cookie) · 영문

  SameSite의 Strict·Lax·None과 Secure·HttpOnly의 차이, HttpOnly 쿠키도 HTTP 요청에는 전송된다는 점을 설명합니다.
- [Sec-Fetch-Site header — MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Sec-Fetch-Site) · 영문

  브라우저가 전하는 same-origin·same-site·cross-site·none 값을 통해 요청의 출처 관계를 판별하는 방법을 설명합니다.

## 프레임워크에서 적용하기

- [Cross Site Request Forgery protection — Django 5.2](https://docs.djangoproject.com/en/5.2/ref/csrf/) · 영문

  CSRF 미들웨어의 쿠키·폼 토큰 검증, Origin·Referer 검사와 신뢰할 출처 설정의 동작을 설명합니다.
- [Cross Site Request Forgery (CSRF) — Spring Security](https://docs.spring.io/spring-security/reference/servlet/exploits/csrf.html) · 영문

  CSRF 토큰의 저장·검증과 HTML 폼·JavaScript·SPA에서 토큰을 전달하는 방법을 안내합니다.
- [Security의 Cross-site request forgery — Angular](https://angular.dev/best-practices/security#cross-site-request-forgery) · 영문

  HttpClient의 XSRF 쿠키·헤더 연동과 토큰을 첨부하는 요청 범위, 서버 측 검증이 함께 필요하다는 점을 설명합니다.

## 연관 문서

- [CORS와 교차 출처 요청](https://www.linkymeadow.com/w/0d27a3/)
- [웹·브라우저 보안](https://www.linkymeadow.com/w/ff79f4/)
- [API 보안](https://www.linkymeadow.com/w/63f1cf/)
- [인증·인가와 권한 관리](https://www.linkymeadow.com/w/f6c93c/)
