블로그

상담 신청

홈페이지 쿠키 보안 설정, Secure·HttpOnly·SameSite가 막는 것과 확인법

홈페이지 쿠키 보안 설정 세 가지, 점검 경고 읽는 법 표지

홈페이지 보안 점검에서 「쿠키에 Secure·HttpOnly·SameSite가 없음」 경고를 받았다면, 로그인 쿠키가 어디까지 보호되는지를 묻는 항목입니다. 세 설정이 각각 무엇을 막는지와 확인하는 법을 정리했습니다.

쿠키 설정이 왜 보안 항목인가

회원 로그인이나 관리자 화면이 있는 홈페이지는 「이 사람은 로그인한 상태」라는 표시를 쿠키에 담아 둡니다. 이 쿠키를 남이 가져가면 비밀번호 없이도 그 사람처럼 사이트를 쓸 수 있습니다. 그래서 쿠키를 만들 때 붙이는 몇 가지 설정이 보안 점검 항목에 들어갑니다.

세 가지 설정이 막는 것

Secure는 https에서만 전송, HttpOnly는 자바스크립트 읽기 차단, SameSite는 다른 사이트 요청에 실리는 것을 제한한다는 세 칸 설명

설정하는 일막는 위험
Securehttps 주소로 요청할 때만 쿠키를 보냄(localhost 제외)암호화되지 않은 연결에서 쿠키가 새는 것
HttpOnly자바스크립트(document.cookie)로 쿠키를 읽지 못하게 함사이트 간 스크립팅(XSS)으로 쿠키를 빼 가는 것
SameSite다른 사이트에서 시작된 요청에 쿠키를 실을지 정함(Strict·Lax·None)사이트 간 요청 위조(CSRF)의 일부

MDN 문서는 SameSite 값을 적지 않으면 Lax처럼 동작한다고 설명합니다. Lax는 이미지·프레임처럼 다른 사이트에서 불러오는 요청에는 쿠키를 보내지 않고, 사용자가 링크를 눌러 들어올 때는 보냅니다. SameSite=None을 쓰려면 반드시 Secure를 함께 붙여야 하고, 빠지면 브라우저가 쿠키를 받지 않습니다.

내 홈페이지 쿠키 확인하는 법

  1. 크롬에서 홈페이지를 열고 F12로 개발자 도구를 엽니다.
  2. 「Application」 탭 → 왼쪽 「Cookies」 → 내 사이트 주소를 누릅니다.
  3. 쿠키마다 HttpOnly·Secure 칸에 체크가 있는지, SameSite 칸 값이 무엇인지 봅니다. 로그인한 뒤에 한 번 더 봅니다(로그인 쿠키는 그때 생깁니다).

서버 응답 머리글로 볼 수도 있습니다. 아래는 디코랩 홈페이지 첫 화면 응답의 쿠키 부분입니다(값은 줄임).

set-cookie: XSRF-TOKEN=eyJpdi...; Max-Age=7200; path=/; secure; samesite=lax
set-cookie: g7-session=eyJpdi...; Max-Age=7200; path=/; secure; httponly; samesite=lax

로그인 상태를 담는 세션 쿠키에는 세 가지가 모두 붙어 있습니다. 위쪽 XSRF-TOKEN에는 HttpOnly가 없는데, 화면의 자바스크립트가 이 값을 읽어 요청에 실어 보내도록 만든 쿠키라서 일부러 뺀 것입니다. 그래서 경고가 떴다고 모든 쿠키에 HttpOnly를 붙일 필요는 없고, 로그인·세션 쿠키에 빠졌는지를 먼저 봅니다.

빠져 있다면 어디서 고치나

  • 홈페이지 프로그램 설정: 그누보드·워드프레스 같은 CMS나 프레임워크는 세션 쿠키 설정 항목이 따로 있습니다. 판 올림(업데이트)만으로 기본값이 바뀌는 경우도 많습니다.
  • PHP 설정: php.ini의 session.cookie_secure, session.cookie_httponly, session.cookie_samesite가 PHP 세션 쿠키에 붙는 값을 정합니다.
  • https 먼저: Secure는 https에서만 쿠키가 오가게 하므로, 사이트 일부가 아직 http로 열린다면 그 화면에서 로그인이 풀릴 수 있습니다. 전체 https 전환이 앞서야 합니다.

설정을 바꾼 뒤에는 브라우저 쿠키를 지우고 다시 로그인해 위 순서로 확인합니다. 예전 쿠키는 만료될 때까지 옛 설정으로 남아 있기 때문입니다.

디코랩은 보안 점검 서비스 디코가드로 쿠키 설정을 포함한 홈페이지 기본 보안 항목을 살펴 드립니다. 점검·수정 상담은 디코랩 문의하기에서 받습니다.

확인한 날: 2026년 11월 8일 · 출처: MDN 「Set-Cookie」, PHP 매뉴얼 「Session 설정」