Web

쿠키 사용 시 CSRF 취약점 대응을 위한 설명!

hoonylab 2025. 4. 25. 17:18
728x90
반응형

🍪 웹 개발자가 꼭 알아야 할 쿠키(Cookie) 속성 정리

웹 보안과 인증에서 쿠키는 매우 중요한 역할을 합니다. 특히 SameSite 속성은 CSRF 공격을 방어하기 위해 꼭 알아야 하는 요소입니다. 이 글에서는 웹 개발자가 실무에서 자주 다루는 쿠키 속성들을 정리해보았습니다.

✅ 쿠키 속성 총정리

속성설명
Name=Value쿠키의 이름과 값
Domain쿠키가 유효한 도메인
Path쿠키가 전송될 URL 경로
Expires / Max-Age쿠키의 만료 시간 설정
SecureHTTPS에서만 쿠키를 전송
HttpOnlyJavaScript로 쿠키 접근 차단 (XSS 방지)
SameSiteCross-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

속성설명중요 이유
HttpOnlyJS에서 접근 차단XSS 방지
SecureHTTPS에서만 전송중간자 공격 방지
SameSite쿠키 전송 정책 설정CSRF 방지
Expires / Max-Age만료 시간자동 로그아웃 등
Domain / Path쿠키 유효 범위도메인 간 쿠키 관리

💡 마무리 정리

  • SameSite=Lax: 보안성과 사용성의 균형
  • SameSite=Strict: 보안 최우선 (사용성 낮음)
  • SameSite=None + Secure: 외부 서비스에서 필수
  • HttpOnlySecure는 항상 사용하는 습관 들이기
728x90
반응형