Skip to content

Latest commit

ย 

History

History
77 lines (63 loc) ยท 4.03 KB

Cookie.md

File metadata and controls

77 lines (63 loc) ยท 4.03 KB

Cookie ๐Ÿช

1. ์ฟ ํ‚ค๋ž€?

  • ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ์— ์˜์†์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•

  • ์„œ๋ฒ„๊ฐ€ ์›น ๋ธŒ๋ผ์šฐ์ €์— ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋‹จ

  • ํ•ด๋‹น ๋„๋ฉ”์ธ์— ๋Œ€ํ•ด ์ฟ ํ‚ค๊ฐ€ ์กด์žฌํ•˜๋ฉด, ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ๋„๋ฉ”์ธ์—๊ฒŒ http ์š”์ฒญ ์‹œ ์ฟ ํ‚ค๋ฅผ ํ•จ๊ป˜ ์ „๋‹ฌ

  • ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ์— ์ „์†กํ•˜๋Š” ๊ฒƒ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ์ฟ ํ‚ค๋ฅผ ๋‹ค์‹œ ์ „์†กํ•˜๋Š” ๊ฒƒ๋„ ํฌํ•จ

  • ๋‹ค๋งŒ, ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ ์ดํ›„ http ํ—ค๋” ์„ค์ • ๋“ฑ ํŠน์ • ์กฐ๊ฑด๋“ค์ด ๋งŒ์กฑ๋˜์–ด์•ผ ๋‹ค์‹œ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Œ

    'Set-Cookie':[
              'cookie=yummy', 
              'Secure=Secure; Secure',
              'HttpOnly=HttpOnly; HttpOnly',
              'Path=Path; Path=/cookie',
              'Doamin=Domain; Domain=naver.com'
          ]
    

2. ์ฟ ํ‚ค ์˜ต์…˜ ์ข…๋ฅ˜

  1. Domain

    • www.google.com๊ณผ ๊ฐ™์ด ์„œ๋ฒ„์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋Š” ์ด๋ฆ„
    • ํฌํŠธ ๋ฐ ์„œ๋ธŒ ๋„๋ฉ”์ธ ์ •๋ณด, ์„ธ๋ถ€ ๊ฒฝ๋กœ ๋“ฑ์„ ํฌํ•จํ•˜์ง€ ์•Š์Œ
    • ํด๋ผ์ด์–ธํŠธ์—์„œ๋Š” ์ฟ ํ‚ค์˜ ๋„๋ฉ”์ธ ์˜ต์…˜๊ณผ ์„œ๋ฒ„์˜ ๋„๋ฉ”์ธ์ด ์ผ์น˜ํ•ด์•ผ ์ฟ ํ‚ค ์ „์†ก ๊ฐ€๋Šฅ
    • http://www.localhost.com:3000/users/login ์—์„œ Domain์€ localhost.com
  2. Path

    • ์„ธ๋ถ€ ๊ฒฝ๋กœ๋กœ์„œ ์„œ๋ฒ„๊ฐ€ ๋ผ์šฐํŒ…ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ๋กœ
    • ์„ค์ •๋œ ๊ฒฝ๋กœ๋ฅผ ํฌํ•จํ•˜๋Š” ํ•˜์œ„ ๊ฒฝ๋กœ๋กœ ์š”์ฒญํ•ด๋„ ์ฟ ํ‚ค๋ฅผ ์„œ๋ฒ„์— ์ „์†ก ๊ฐ€๋Šฅ
    • http://www.localhost.com:3000/users/login ์—์„œ Path๋Š” /users/login
  3. MaxAge or Expires

    • ์ฟ ํ‚ค๊ฐ€ ์œ ํšจํ•œ ๊ธฐ๊ฐ„์„ ์ •ํ•˜๋Š” ์˜ต์…˜
    • MaxAge๋Š” ์ฟ ํ‚ค๊ฐ€ ์œ ํšจํ•œ ์‹œ๊ฐ„์„ ์ดˆ ๋‹จ์œ„๋กœ ์„ค์ •ํ•˜๋Š” ์˜ต์…˜
    • Expires๋Š” (ํด๋ผ์ด์–ธํŠธ ์‹œ๊ฐ„ ๊ธฐ์ค€) ์ฟ ํ‚ค๊ฐ€ ์œ ํšจํ•œ ์‹œ๊ฐ„๊ณผ ๋‚ ์งœ
    • ์„ธ์…˜ ์ฟ ํ‚ค(Session Cookie)
      • MaxAge ๋˜๋Š” Expires ์˜ต์…˜์ด ์—†๋Š” ์ฟ ํ‚ค
      • ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์‹คํ–‰ ์ค‘์ผ ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž„์‹œ ์ฟ ํ‚ค
      • ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•˜๋ฉด ํ•ด๋‹น ์ฟ ํ‚ค๋Š” ์‚ญ์ œ
    • ์˜์†์„ฑ ์ฟ ํ‚ค(Persistent Cookie)
      • ๋ธŒ๋ผ์šฐ์ €์˜ ์ข…๋ฃŒ ์—ฌ๋ถ€์™€ ์ƒ๊ด€์—†์Œ
      • MaxAge ๋˜๋Š” Expires์— ์ง€์ •๋œ ์œ ํšจ์‹œ๊ฐ„๋งŒํผ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ์ฟ ํ‚ค
  4. Secure

    • ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์— ๋”ฐ๋ฅธ ์ฟ ํ‚ค ์ „์†ก ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์˜ต์…˜
    • ์˜ต์…˜์ด true์ธ ๊ฒฝ์šฐ HTTPS๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ฟ ํ‚ค ์ „์†ก ๊ฐ€๋Šฅ
    • secure ์˜ต์…˜์ด ์—†๋‹ค๋ฉด ํ”„๋กœํ† ์ฝœ์— ์ƒ๊ด€ ์—†์ด http๋“  https๋“  ๋ชจ๋‘ ์ฟ ํ‚ค ์ „์†ก ๊ฐ€๋Šฅ
    • ๋‹จ, ๋„๋ฉ”์ธ์ด localhost์ธ ๊ฒฝ์šฐ https๊ฐ€ ์•„๋‹ˆ์–ด๋„ ์ฟ ํ‚ค ์ „์†ก ๊ฐ€๋Šฅ
  5. HttpOnly

    • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ๋ธŒ๋ผ์šฐ์ € ์ฟ ํ‚ค์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ์ง€ ์—ฌ๋ถ€ ๊ฒฐ์ •
    • ํด๋ผ์ด์–ธํŠธ์—์„œ DOM์„ ์ด์šฉํ•ด ์ฟ ํ‚ค์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ ๋ง‰์•„์ฃผ๋Š” ์˜ต์…˜
    • ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์— ๋”ฐ๋ฅธ ์ฟ ํ‚ค ์ „์†ก ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์˜ต์…˜
    • ๋””ํดํŠธ false๋กœ ์ง€์ •๋˜๊ณ  ์˜ต์…˜์ด true์ธ ๊ฒฝ์šฐ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ฟ ํ‚ค์— ์ ‘๊ทผ ๋ถˆ๊ฐ€
    • ๋งŒ์•ฝ false์ธ ๊ฒฝ์šฐ, document.cookie๋ฅผ ์ด์šฉํ•ด ์ฟ ํ‚ค๊ฐ€ ํƒˆ์ทจ๋  ์œ„ํ—˜์ด ์žˆ์Œ
  6. SameSite

    • Cross-site ์š”์ฒญ์„ ๋ฐ›์€ ๊ฒฝ์šฐ, ์š”์ฒญ์—์„œ ์‚ฌ์šฉํ•œ ๋ฉ”์†Œ๋“œ์™€ ํ•ด๋‹น ์˜ต์…˜์˜ ์กฐํ•ฉ์„ ๊ธฐ์ค€์œผ๋กœ ์ฟ ํ‚ค ์ „์†ก ์—ฌ๋ถ€ ๊ฒฐ์ •
    • Cross-origin
      • ์„œ๋ฒ„์˜ ๋„๋ฉ”์ธ, ํ”„๋กœํ† ์ฝœ, ํฌํŠธ ์ค‘ ํ•˜๋‚˜๋ผ๋„ ๋‹ค๋ฅธ ๊ฒฝ์šฐ Cross-origin์œผ๋กœ ๊ตฌ๋ถ„
    • Cross-site
      • eTLD+1์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ (*eTLD+1: ์ตœ์ƒ์œ„ ๋„๋ฉ”์ธ์˜ ๋ฐ”๋กœ ์™ผ์ชฝ ํ•˜์œ„ ๋ ˆ๋ฒจ ๋„๋ฉ”์ธ์„ ํ•ฉํ•œ ๊ฒƒ)
    • SameSite ์˜ต์…˜์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ
      • Lax: Cross-Site ์š”์ฒญ์ด๋ผ๋ฉด GET ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด์„œ๋งŒ ์ฟ ํ‚ค ์ „์†ก ๊ฐ€๋Šฅ
      • Strict: Cross-Site๊ฐ€ ์•„๋‹Œ Same-Site์ธ ๊ฒฝ์šฐ์—๋งŒ ์ฟ ํ‚ค๋ฅผ ์ „์†ก
      • None: ํ•ญ์ƒ ์ฟ ํ‚ค๋ฅผ ๋ณด๋‚ด์ค„ ์ˆ˜ ์žˆ์œผ๋‚˜, Secure ์˜ต์…˜ ํ•„์š”

3. ์ฟ ํ‚ค๋ฅผ ์ด์šฉํ•œ ์ƒํƒœ ์œ ์ง€

  • ์ฟ ํ‚ค์˜ ํŠน์„ฑ์„ ์ด์šฉํ•ด statelessํ•œ ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ์„ statefulํ•˜๊ฒŒ ์œ ์ง€ ๊ฐ€๋Šฅ
  • ๋‹ค๋งŒ, ๊ธฐ๋ณธ์ ์œผ๋กœ ์ฟ ํ‚ค๋Š” ์˜ค๋žœ ์‹œ๊ฐ„ ๋™์•ˆ ์œ ์ง€๋  ์ˆ˜ ์žˆ๊ณ , HttpOnly ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ฟ ํ‚ค ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์ฟ ํ‚ค์— ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ๋‹ด๋Š” ๊ฒƒ์€ ์œ„ํ—˜