Cookie(쿠키)
쿠키는 클라이언트 로컬에 저장하는 작은 데이터 조각으로, 주로 다음과 같은 용도로 사용된다.
사용자 로그인 세션 관리
사용자 선호 설정
광고 정보 트래킹
그 외 다양한 용도로 사용
동작 방식
쿠키는 다음과 같은 방식으로 동작한다.
생성 및 저장: 서버는 Set-Cookie HTTP 헤더를 통해 클라이언트에게 쿠키를 생성하도록 지시하고, 클라이언트는 서버로부터 받은 쿠키를 로컬에 저장
전송: 클라이언트는 동일한 서버로 요청을 보낼 때마다 저장된 쿠키를 Cookie HTTP 헤더에 포함하여 전송(항상 헤더에 포함되어 전송되기 때문에, 트래픽이 증가할 수 있음)
구성:
이름=값
형태로 구성
쿠키의 생명주기
쿠키의 타입은 파기되는 시점에 따라 아래 두 가지로 나뉜다.
세션 쿠키(Session Cookie)
사용자가 사이트를 탐색할 때, 관련한 설정과 선호 사항들을 저장하는 임시 쿠키
브라우저가 종료되면 쿠키가 삭제됨
지속 쿠키(Persistent Cookie)
사용자가 주기적으로 방문하는 사이트에 대한 설정 정보나 로그인 이름 등을 저장하는 쿠키
디스크에 저장되어, 브라우저가 종료되어도 쿠키가 삭제되지 않음
Expires
나 Max-Age
를 지정하지 않으면 세션 쿠키로 생성되며, Expires
나 Max-Age
를 지정하면 지속 쿠키로 생성된다.
Expires
: 쿠키의 만료 시간을 지정Max-Age
: 쿠키의 만료 시간을 초 단위로 지정
도메인
모든 사이트에 브라우저 내의 모든 쿠키가 전송된다면 개인정보 문제와 불필요한 데이터를 전송하는 문제가 발생할 수 있기 때문에 해당 쿠키가 적용될 도메인과 경로를 지정할 수 있다.
Domain
: 쿠키가 적용될 도메인을 지정하는 속성(하위 도메인에도 적용)명시하지 않으면 현재 도메인만 적용되고, 하위 도메인에는 적용되지 않음
Path
: 쿠키가 적용될 경로를 지정하는 속성명시하지 않으면 모든 경로에 적용
보안
쿠키는 브라우저에 저장되기 때문에, 보안에 유의하지 않으면 여러 위험에 노출될 수 있다.
해당 브라우저가 다른 사람에 의해 접근될 경우, 쿠키를 통해 사용자의 정보가 유출될 수 있음
쿠키는 누구나 쉽게 볼 수 있는 평문 형태로 저장되기 때문에, 쿠키 값이 변조될 위험성이 존재
이러한 문제를 방지하기 위해 쿠키에 보안을 강화하는 속성을 지정할 수 있다.
Secure
쿠키는 원래
HTTP
,HTTPS
를 구분하지 않고 전송Secure
속성을 지정하면HTTPS
에서만 쿠키가 전송됨
HttpOnly
자바스크립트 코드에서 쿠키에 접근이 가능한데 이를 막기 위해
HttpOnly
속성을 지정(XSS 공격 방지)HTTP 전송에만 쿠키를 사용할 수 있게 됨
SameSite
SameSite
속성을 지정하면SameSite
속성에 지정한 도메인과 같은 도메인에서만 쿠키가 전송됨SameSite=Strict
: 동일한 도메인에서만 쿠키가 전송됨
참고자료
Last updated
Was this helpful?