Backend _ Cookie 1

이승미·2022년 7월 15일
0

Cookie
-> 서버에서 클라이언트에 영속성 있는 데이터를 저장하는 방법
-> 서버가 원한다면 서버는 클라이언트의 쿠키를 이용하여 데이터를 가져올 수 있다.
-> 뿐만 아니라 클라이언트에서 서버로 다시 쿠키를 전송하는 것도 쿠키를 이용하는 것이다.

Cookie 옵션
-> 이 특정 옵션들이 만족되어야 데이터를 다시 가져올 수 있다.

  • Domain
    'www.naver.com' 과 같이 서버에 접속할 수 있는 이름.
    쿠키 옵션에서의 도메인은 서브 도메인 정보(www), 세부 경로를 포함하지 않는다.
    따라서 위의 예시에서의 도메인은 'naver.com' 이다.
  • Path
    서버가 러우팅할 때 사용하는 경로, 기본값은 '/'
    요청해야 하는 URL이 'http://localhost:3000/users/login' 이면 path는 '/user/login' 이다.
    Path 옵션의 경우, 설정된 경로를 포함하는 하위 경로로 요청을 하더라도 쿠키를 서버에 전송할 수 있다. 즉, Path가 /users로 이고, 요청하는 세부 경로가 '/users/login'인 경우라면 쿠키 전송이 가능하다.
  • MaxAge or Expires
    쿠키가 유효한 기간을 정하는 옵션
    쿠키가 영원히 남아있다면 그만큼 탈취하기도 쉽기 때문에 보안을 위해서 유효기간을 정하는 것이 중요하다.

    MaxAge -> 쿠키가 유효한 시간을 초 단위로 설정
    Expires -> 언제까지 쿠키가 유효한지 날짜를 지정

위의 옵션이 지정되어 있으면 영속성 쿠키 (Persistent Cookie), 지정되어 있지 않으면 세션 쿠키 (Session Cookie, 즉 브라우저 종료하면 해당 쿠키 삭제됨) 라고 부른다.

  • Secure
    사용하는 프로토콜에 따른 쿠키 전송 여부 결정하는 옵션
    해당 옵션이 true인 경우에는 HTTPS 이용하는 경우에만 쿠키 전송 가능
  • HttpOnly
    자바스크립트에서 브라우저의 쿠키에 접근 여부를 결정하는 옵션, 기본값은 false
    true로 지정할 경우, 자바스크립트로 쿠키에 접근이 불가능하다.(false일 경우 보안 취약)
  • SameSite
    Cross-Origin 요청 받은 경우, 요청에서 사용한 메서드와 해당 옵션의 조합을 기준으로 쿠키 전송 여부를 결정하는 옵션

    Lax -> Cross-Origin 요청이라면 GET 메서드에 대해서만 쿠키 전송 가능
    Strict -> 가장 엄격한 옵션, Cross-Origin이 아닌 Same-Site인 경우에만 쿠키 전송 가능
    None -> 가장 관대한 옵션, 항상 쿠키를 보내줄 수 있으나 Secure 옵션이 필요

0개의 댓글