Web
쿠키 사용 시 CSRF 취약점 대응을 위한 설명!
hoonylab
2025. 4. 25. 17:18
728x90
반응형
🍪 웹 개발자가 꼭 알아야 할 쿠키(Cookie) 속성 정리
웹 보안과 인증에서 쿠키는 매우 중요한 역할을 합니다. 특히 SameSite 속성은 CSRF 공격을 방어하기 위해 꼭 알아야 하는 요소입니다. 이 글에서는 웹 개발자가 실무에서 자주 다루는 쿠키 속성들을 정리해보았습니다.
✅ 쿠키 속성 총정리
속성 | 설명 |
---|---|
Name=Value | 쿠키의 이름과 값 |
Domain | 쿠키가 유효한 도메인 |
Path | 쿠키가 전송될 URL 경로 |
Expires / Max-Age | 쿠키의 만료 시간 설정 |
Secure | HTTPS에서만 쿠키를 전송 |
HttpOnly | JavaScript로 쿠키 접근 차단 (XSS 방지) |
SameSite | Cross-site 요청 시 쿠키 전송 여부 결정 (CSRF 방지) |
🔐 SameSite 속성 설명
SameSite는 쿠키가 다른 사이트에서 요청될 때 쿠키를 보낼지 여부를 결정하는 속성입니다.
1️⃣ SameSite=Lax
- 기본값 (대부분 브라우저)
- GET 요청에 한해 cross-site 쿠키 전송 허용
- POST 요청은 차단되어 CSRF 방지 효과 있음
2️⃣ SameSite=Strict
- 모든 cross-site 요청에서 쿠키 전송 차단
- 보안성이 가장 높지만, 사용자 경험(UX)에 불편함 있음
3️⃣ SameSite=None
- 모든 요청에서 쿠키를 전송
- 반드시 Secure 속성과 함께 사용해야 하며, HTTPS가 필수
- 제3자 로그인 또는 결제 API 등에서 사용
📌 Set-Cookie 예시
Set-Cookie: sessionId=abc123;
Path=/;
Domain=.example.com;
HttpOnly;
Secure;
SameSite=Lax;
Max-Age=3600
🧠 중요 속성 Top 5
속성 | 설명 | 중요 이유 |
---|---|---|
HttpOnly | JS에서 접근 차단 | XSS 방지 |
Secure | HTTPS에서만 전송 | 중간자 공격 방지 |
SameSite | 쿠키 전송 정책 설정 | CSRF 방지 |
Expires / Max-Age | 만료 시간 | 자동 로그아웃 등 |
Domain / Path | 쿠키 유효 범위 | 도메인 간 쿠키 관리 |
💡 마무리 정리
- SameSite=Lax: 보안성과 사용성의 균형
- SameSite=Strict: 보안 최우선 (사용성 낮음)
- SameSite=None + Secure: 외부 서비스에서 필수
- HttpOnly와 Secure는 항상 사용하는 습관 들이기
728x90
반응형