보안 가이드 2026.03.17 · 조회 4648

쿠키 보안 설정 완벽 가이드 (Secure, HttpOnly, SameSite)

Secure, HttpOnly, SameSite — 쿠키 속성 세 가지를 제대로 설정하면 세션 탈취 공격의 대부분을 막을 수 있다.

S
보안 전문 기업 SENTRIX 레드팀
해킹대회 수상 · 보안 실무 10년 · 실전 진단 경험을 바탕으로 작성합니다.
웹사이트를 운영하고 있다면
보안 헤더·인증서·공개 노출부터 무료로 점검하세요. 결과 링크는 이메일로 받습니다. 로그인 이후 권한·업무 로직은 별도 검증이 필요합니다.

다음 화면에서 이메일과 점검 권한을 확인합니다. 회원가입·카드 없이 무료 요약을 받고, 상세 리포트는 선택 구매합니다.

쿠키 속성 하나 빠지면 세션이 탈취된다

로그인 기능을 만들면 세션 쿠키가 생긴다. 이 쿠키에 적절한 보안 속성이 없으면 XSS 공격 한 번에 세션이 통째로 탈취된다. 공격자가 피해자의 쿠키를 얻으면 비밀번호 없이도 해당 계정으로 로그인할 수 있다.

핵심 속성 3가지

HttpOnly, JavaScript에서 쿠키 접근 차단

HttpOnly가 없으면 document.cookie로 쿠키를 읽을 수 있다. XSS 취약점이 있으면 공격자 스크립트가 이 방법으로 세션 쿠키를 탈취한다.

Set-Cookie: session_id=abc123; HttpOnly

Secure, HTTPS에서만 전송

Secure 플래그가 없으면 HTTP로도 쿠키가 전송된다. 공용 WiFi 환경에서 중간자 공격(MITM)으로 쿠키를 가로챌 수 있다.

Set-Cookie: session_id=abc123; Secure; HttpOnly

SameSite, CSRF 공격 차단

SameSite 속성은 다른 도메인에서 발생한 요청에 쿠키를 포함할지 제어한다.

  • Strict: 외부 도메인에서 오는 모든 요청에 쿠키 미전송. 가장 안전하지만 외부 링크로 접근 시 로그아웃 상태가 됨
  • Lax: GET 방식의 최상위 레벨 탐색에만 쿠키 전송. 대부분의 경우 적합한 균형점
  • None: 제한 없음. Secure 속성 필수
Set-Cookie: session_id=abc123; Secure; HttpOnly; SameSite=Lax

프레임워크별 설정 방법

Django

# settings.py
SESSION_COOKIE_SECURE = True      # Secure
SESSION_COOKIE_HTTPONLY = True    # HttpOnly
SESSION_COOKIE_SAMESITE = 'Lax'  # SameSite

CSRF_COOKIE_SECURE = True
CSRF_COOKIE_HTTPONLY = True
CSRF_COOKIE_SAMESITE = 'Lax'

Express.js

app.use(session({
    secret: process.env.SESSION_SECRET,
    cookie: {
        secure: true,      // Secure (HTTPS 필수)
        httpOnly: true,    // HttpOnly
        sameSite: 'lax',   // SameSite
        maxAge: 3600000    // 1시간 만료
    }
}));

Next.js (next-auth)

// next-auth는 기본적으로 보안 설정을 잘 해줌
// 추가로 커스텀할 경우:
export const authOptions = {
    cookies: {
        sessionToken: {
            options: {
                httpOnly: true,
                sameSite: 'lax',
                path: '/',
                secure: process.env.NODE_ENV === 'production',
            },
        },
    },
};

쿠키 설정이 올바른지는 브라우저 개발자도구 → Application → Cookies에서 확인하거나, CodeScan의 쿠키 스캔 항목에서 자동 점검할 수 있다.

내 사이트도 점검해보세요

URL 입력, 결과 링크는 메일로 받는 무료 점검. 회원가입·카드 불필요.

AI 코딩 보안 체크리스트 받기

AI 코딩 보안 체크리스트(PDF)를 무료로 받아보세요.

배포·설정을 바꾼 뒤에는 같은 주소를 다시 점검하세요. 수정 후 재점검 순서와 일정 저장 · 자동 점검이 필요하면 Continuous의 범위와 체험 조건을 확인하세요.
이런 글을 계속 받아보려면 뉴스레터 구독 · RSS 피드