CSRF
CSRF(Cross-Site Request Forgery, 사이트 간 요청 위조)
-
정의: 사용자가 자신의 의지와 무관하게 공격자가 의도한 요청을 웹 애플리케이션에 보내게 하는 보안 공격
-
공격 예시
-
사용자가 웹 애플리케이션에 로그인한 상태 (쿠키 인증 세션 유지 중)
-
공격자가 사용자를 악성 페이지로 유도
-
피해 웹 애플리케이션이 요청 위조를 검증하지 않음
-
-
방어 방법
- CSRF Token 사용
- 서버가 임의의 토큰을 발급해 HTML 폼에 포함시키고, 요청 시 토큰을 함께 전송하도록 함
- 서버는 요청이 유효한지를 토큰으로 검증함
- SameSite 쿠키 속성 설정
SameSite=Lax또는SameSite=Strict설정 시, 외부 사이트에서 쿠키가 자동 전송되지 않음
- Referer / Origin 검증
- 요청의
Referer또는Origin헤더를 검사하여 유효한 도메인에서 왔는지 확인
- 요청의
- CORS 정책 강화
- 허용된 도메인에서만 요청할 수 있도록 설정
- CSRF Token 사용
CSRF vs XSS 비교
| 구분 | CSRF | XSS |
|---|---|---|
| 목적 | 사용자의 권한을 이용해 요청 | 악성 스크립트를 실행 |
| 방식 | 사용자가 모르게 요청 전송 | 사용자 브라우저에서 스크립트 실행 |
| 방어 | CSRF Token, SameSite 등 | 입력값 필터링, CSP 등 |
참고
- ChatGPT-4.0
보완/복습
- 2025.06.24 생성