easycode

세션쿠키와 지속쿠키의 차이점 (feat.cookie secure) 본문

CS

세션쿠키와 지속쿠키의 차이점 (feat.cookie secure)

ez() 2024. 1. 15. 23:50

 


CS를 공부하던 중 쿠키의 종류에 대해 간단히 알아 보았던 걸 기록으로 남겨 보려 합니다. 요약본 같은 느낌이라 자세하지 않을 수 있습니다. 제일 아래에 있는 참고사이트를 보시면 좀더 이해하기 쉽습니다. 누군가에게 도움이 되길 바랍니다.

 


세션쿠키

  • 만료 날짜/시간을 지정하지 않으면 세션 쿠키
  • 브라우저 메모리에 저장현재 세션이 끝날 때 삭제된다.
  • 브라우저는 "현재 세션"이 끝나는 시점을 정의하며 (ex : 브라우저가 닫히면 세션 종료), 어떤 브라우저들은 재시작할 때 세션을 복원해 세션 쿠키가 무기한 존재할 수 있도록 한다.

 

 

 

지속쿠키

  • 만료 날짜/시간을 지정하면 지속 쿠키
  • 파일로 저장되므로 브라우저가 종료되어도 쿠키는 남아있다.
  • Expires 속성에 명시된 날짜에 삭제되거나, Max-age 속성에 명시된 기간 이후에 삭제된다. (삭제하는 건 자동으로 된다)
  • expires: 쿠키만료될 날짜 지정
  • Max-Age: 현재시간을 기준으로 얼마 동안 유지시킬것인지 지정한다.

→ 따라서 브라우저가 종료 되더라도 쿠키를 유지하고 싶다면 지속쿠키 사용

 

 

 

Secure

  • Secure을 설정하면 쿠키는 HTTPS 프로토콜 상에서 암호화된 요청일 경우에만 전송된다. 하지만 Secure이더라도 민감한 정보는 절대 쿠키에 저장하면 안된다!!!
  • 만약 Secure 설정 후 http와 같이 SSL접속이 아닌 곳에서 쿠키 사용하려고 하면 아래와 같은 오류가 뜬다.
This attempt to set a cookie via a Set-Cookie header was blocked because it has ”Secure" attribute but was not received over a secure connection.
  • 크롬52 or 파이어폭스52를 사용하면 안전하지 않은 사이트(예 : http://)는 쿠키에 Secure 설정을 지시할 수 없다.

 

 

 

HttpOnly

  • 크로스 사이트 스크립팅(XSS) 공격을 방지하기 위해, HttpOnly 쿠키는 JS의 Document.cookie API에 접근할 수 없도록 막아준다.
  • HTTP Only Cookie를 사용하면 client에서 javascript를 통한 쿠키 탈취문제(cross-site scripting XSS)를 예방할 수 있다.
  • 쿠키 생성할 때 `secure` 접미사 사용
  • https가 아닌 통신에서는 쿠키가 전송되지 않는다!!!
Set-Cookie: 쿠키명 = 쿠키값; path=/; **secure**`

 


크로스 사이트 스크립팅이란?

2024.01.15 - [CS] - 크로스 사이트 스크립팅 (XSS)의 의미와 예방법(feat.innerText vs textContent)

 

크로스 사이트 스크립팅 (XSS)의 의미와 예방법(feat.innerText vs textContent)

XSS (크로스 사이트 스크립팅)란? - 서버에 공격적인 자바 스크립트를 심어서 사용자들을 공격하는 것으로, 크로스 사이트 스크립팅은 언제 실행되느냐에 따라 Reflected와 Stored로 구분됩니다. Reflec

easyoungcode.tistory.com

 

 

 

 


참고사이트입니다. 더 자세하게 설명되어 있으니 보시는 걸 추천 드립니다.

 

1. 세션쿠키와 지속쿠키의 차이점 : https://velog.io/@software/%EC%84%B8%EC%85%98-%EC%BF%A0%ED%82%A4%EC%99%80-%EC%A7%80%EC%86%8D-%EC%BF%A0%ED%82%A4

 

2. 쿠키와 세션 : https://bongjava.tistory.com/entry/쿠키cookie와-세션session](https://bongjava.tistory.com/entry/%EC%BF%A0%ED%82%A4cookie%EC%99%80-%EC%84%B8%EC%85%98session

 

3. 쿠키와 로그인(HttpOnly와 Secure Cookie) : https://velog.io/@eeeve/HttpOnly%EC%99%80-Secure-Cookie

 

4. 서버와 브라우저가 서로를 기억하는 방법(세션과 쿠키) : https://velog.io/@jayone1202/%EC%84%9C%EB%B2%84%EC%99%80-%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80%EA%B0%80-%EA%B8%B0%EC%96%B5%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95.-session-%EA%B3%BC-cookie

 

세션 쿠키와 지속 쿠키

면접 공부를 하다가 세션 쿠키와 지속 쿠키에 대해 잘못 알고 있는 블로그 포스트들이 있어서 정리해보고자 합니다.세션 쿠키: 만료 시점을 정하면 세션 쿠키. 브라우저가 종료되면 쿠키는 사라

velog.io