[06.30] Cookie/Session

0
post-thumbnail

๋ชฉ์ฐจ

  • Cookie
  • Session

: ๋ฐ์ดํ„ฐ์ด๋ฉด์„œ, ์šฐ๋ฆฌ๊ฐ€ ํ˜„์žฌ ์‚ฌ์šฉํ•˜๋Š” ์ปดํ“จํ„ฐ(๋ธŒ๋ผ์šฐ์ €)์— ์ž‘์€ ํ…์ŠคํŠธ ํŒŒ์ผ๋กœ ์ €์žฅ๋˜์–ด์žˆ๋Š” ๊ฒƒ

  • ์˜ˆ๋ฅผ ๋“ค์–ด ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ๋‹ด์„ ๊ฒฝ์šฐ, 'ํ•˜๋ฃจ ์ด์ฐฝ์„ ๋ณด์ง€ ์•Š๊ธฐ'ํด๋ฆญ์‹œ ๊ณ„์† ์•ˆ ๋ณผ์ˆ˜ ์žˆ์Œ, ๋กœ๊ทธ์ธ์„ ์œ„ํ•ด ๋กœ๊ทธ์ธ ์ •๋ณด ์ €์žฅ, ์ž๋™ ๋กœ๊ทธ์ธ ๊ฐ™์€ ๊ฒฝ์šฐ
    โžก๏ธ ๋ธŒ๋ผ์šฐ์ €๋Š” ๋‚ด์šฉ์„ ๊ธฐ์–ตํ•  ๊ณต๊ฐ„์ด X, ๊ธฐ์–ตํ•ด์ฃผ๋Š” ๊ฒƒ์€ ์ฟ ํ‚ค!
  • ์‚ฌ์šฉ์ž ๋‹จ์œ„๊ฐ€ ์•„๋‹Œ ๋ธŒ๋ผ์šฐ์ € ๋‹จ์œ„๋กœ ์ƒ์„ฑ์ด ๋จ
  • ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์„ ๋Œ€์‹ ํ•˜์—ฌ ์ฟ ํ‚ค ๋ฐœ๊ธ‰ ๋ถˆ๊ฐ€
  • ์ฟ ํ‚ค๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์€ ๋‹จ์ˆœํžˆ ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ์— ์ฟ ํ‚ค๋ฅผ ์ „์†กํ•˜๋Š” ๊ฒƒ๋งŒ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ์ฟ ํ‚ค๋ฅผ ๋‹ค์‹œ ์ „์†กํ•˜๋Š”๊ฒƒ๋„ ํฌํ•จ๋จ
  • ์ฟ ํ‚ค์˜ ์ €์žฅ๋ฐฉ์‹์€ key:value (ex, username = ํ™๊ธธ๋™)

    Q : ๊ทธ๋ ‡๋‹ค๋ฉด, ์ฟ ํ‚ค๋Š” ์™œ ์‚ฌ์šฉ์„ ํ•˜๋Š” ๊ฑธ๊นŒ?
    A : ์ œ์ผ ํฐ ์ด์œ ๋Š” ์‚ฌ์šฉ์ž์˜ ํŽธ์˜๋ฅผ ์œ„ํ•ด์„œ์ด๋‹ค.
    ์ƒํƒœ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์—†๋Š” http, ํ”„๋กœํ† ์ฝœ ํŠน์„ฑ์ƒ ์ฟ ํ‚ค๋ฅผ ์ด์šฉํ•ด์„œ ์ƒํƒœ๋ฅผ ์ €์žฅํ•จ

  1. ๋ธŒ๋ผ์šฐ์ €(ํด๋ผ์ด์–ธํŠธ)๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋ƒ„
  2. ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ์ž‘์„ฑํ•  ๋•Œ, ํด๋ผ๋ฆฌ์–ธํŠธ ์ธก์— ์ €์žฅํ•˜๊ณ  ์‹ถ์€ ์ •๋ณด๋ฅผ ์‘๋‹ต ํ—ค๋”์˜ Set-Cookie์— ๋‹ด์Œ
  3. ์ดํ›„ ํ•ด๋‹น ํด๋ผ์ด์–ธํŠธ๋Š” ์š”์ฒญ์„ ๋ณด๋‚ผ๋•Œ๋งˆ๋‹ค ๋งค๋ฒˆ ์ €์žฅ๋œ ์ฟ ํ‚ค๋ฅผ ์š”์ฒญ ํ—ค๋”์˜ Cookie์— ๋‹ด์•„ ๋ณด๋‚ธ๋‹ค. ์„œ๋ฒ„๋Š” ์ฟ ํ‚ค์— ๋‹ด๊ธด ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ•ด๋‹น ์š”์ฒญ์˜ ํด๋ผ๋ฆฌ์–ธํŠธ๊ฐ€ ๋ˆ„๊ตฐ์ง€ ์‹๋ณ„ํ•˜๊ฑฐ๋‚˜ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ถ”์ฒœ ๊ด‘๊ณ ๋ฅผ ๋„์šฐ๊ฑฐ๋‚˜ ํ•œ๋‹ค

1. Domain

: ์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ์‚ฌ์šฉํ•˜๋Š” www.google.com๊ณผ ๊ฐ™์€ ์„œ๋ฒ„์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋Š” ์ด๋ฆ„

  • ํ•ด๋‹น ๋„๋งค์ธ์˜ ์„œ๋ธŒ ๋„๋ฉ”์ธ๊นŒ์ง€ ๋ชจ๋‘ ํฌํ•จ, ์„ธ๋ถ€ ๊ฒฝ๋กœ๋ฅผ ํฌํ•จ X
    ๐Ÿ“ ์„œ๋ธŒ ๋„๋ฉ”์ธ์ด๋ž€? : www ๊ฐ™์€ ๋„๋ฉ”์ธ ์•ž์— ์ถ”๊ฐ€๋กœ ์ž‘์„ฑ๋˜๋Š” ๋ถ€๋ถ„
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ์š”์ฒญํ•ด์•ผ ํ•  URL์ด [http://www.localhost.com:3000/users/login]์ด๋ผ ํ•˜๋ฉด ์—ฌ๊ธฐ์—์„œ Domain์€ localhost.com์ด ๋จ

2. Path

: ์„ธ๋ถ€ ๊ฒฝ๋กœ๋กœ์จ ์„œ๋ฒ„๊ฐ€ ๋ผ์šฐํŒ…ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ๋กœ๋ฅผ ์˜๋ฏธ

  • ์ฟ ํ‚ค์— ํ•ด๋‹น ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ•˜๋ฉด, ํ•ด๋‹น ํŽ˜์ด์ง€ ๊ฒฝ๋กœ์—์„œ๋งŒ ์ฟ ํ‚ค ์‚ฌ์šฉ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅ
  • ํ•ด๋‹น ๊ฒฝ๋กœ์˜ ํ•˜์œ„ ๊ฒฝ๋กœ๊นŒ์ง€ ๋ชจ๋‘ ํฌํ•จ. ๋ฃจํŠธ ๊ฒฝ๋กœ (/)๋กœ ์„ค์ •ํ•˜๋ฉด ๋ชจ๋“  ๊ฒฝ๋กœ์— ์ฟ ํ‚ค๊ฐ€ ์œ ํšจํ•˜๋‹ค๋Š” ๋œป
    • path=/home ์ง€์ •์‹œ
      • /home/level1 -> ์ ‘๊ทผ ๊ฐ€๋Šฅ
      • /home/levelq/level2 -> ์ ‘๊ทผ๊ฐ€๋Šฅ
      • /hello -> ์ ‘๊ทผ ๋ถˆ๊ฐ€๋Šฅ (๋‹ค๋ฅธ ๊ฒฝ๋กœ)
  • path๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฃจํŠธ ๊ฒฝ๋กœ๋กœ ์ž๋™ ์ž…๋ ฅ๋จ

3. Expires/ Max-age

: ์œ ํšจ๊ธฐ๊ฐ„(๋งŒ๋ฃŒ์ผ) ์„ค์ •

  • expires=Sat, 26-Dec-2020 04:39:21 GMT
    • ๊ตฌ์ฒด์ ์ธ ๋‚ ์งœ๋ฅผ ๋ช…์‹œ
    • ๋งŒ๋ฃŒ์ผ์ด ์ง€๋‚˜๋ฉด ์ฟ ํ‚ค ์‚ญ์ œ
  • max-age=3600
    • ์ดˆ ๋‹จ์œ„๋กœ ์œ ํšจ ์‹œ๊ฐ„์„ ๋ช…์‹œ
    • ๋งŒ์ผ 0์ด๋‚˜ ์Œ์ˆ˜๋กœ ์ง€์ •ํ•  ๊ฒฝ์šฐ ์ฟ ํ‚ค๋Š” ์‚ญ์ œ ๋จ
  • ์„ธ์…˜ ์ฟ ํ‚ค : ๋งŒ๋ฃŒ ๋‚ ์งœ๋ฅผ ์ƒ๋žตํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ € ์ข…๋ฃŒ์‹œ๊นŒ์ง€๋งŒ ์œ ์ง€
  • ์˜์† ์ฟ ํ‚ค : ๋งŒ๋ฃŒ ๋‚ ์งœ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํ•ด๋‹น ๋‚ ์งœ๊นŒ์ง€ ์œ ์ง€

4. Secure

: ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์— ๋”ฐ๋ฅธ ์ฟ ํ‚ค์˜ ์ „์†ก ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์˜ต์…˜

  • ํ™œ์„ฑํ™”ํ•˜๋ฉด HTTPS ์‚ฌ์šฉ์‹œ์—๋งŒ ์ฟ ํ‚ค ์ •๋ณด ์ „๋‹ฌ(๋ฏธ์ ์šฉ์‹œ HTTP๋„ ์ „๋‹ฌ)
  • ๋„๋ฉ”์ธ์ด localhost์ธ ๊ฒฝ์šฐ HTTPS๊ฐ€ ์•„๋‹ˆ์–ด๋„ ์ฟ ํ‚ค ์ „์†ก์ด ๊ฐ€๋Šฅ (๊ฐœ๋ฐœ๋‹จ๊ณ„์—์„œ localhost๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๊ธด ์˜ˆ์™ธ์‚ฌํ•ญ)

5.HttpOnly

: ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ๋ธŒ๋ผ์šฐ์ €์˜ ์ฟ ํ‚ค์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •

  • ํ•ด์ปค๊ฐ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ฟ ํ‚ค๋ฅผ ํƒˆ์ทจํ•  ์ˆ˜ ์—†์–ด์„œ, XSS ๊ณต๊ฒฉ ๋ฐฉ์ง€๊ฐ€๋Šฅ
  • ์ฟ ํ‚ค๋Š” ๊ผญ ์„œ๋ฒ„์—์„œ ๋งŒ๋“ค์–ด ๋ฐ˜ํ™˜ํ•˜์—ฌ์•ผ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์–ผ๋งˆ๋“ ์ง€ ํด๋ผ์ด์–ธํŠธ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
    document.cookie = "user=John; path=/; expires=Tue, 19 Jan 	2038 03:14:07 GMT";
	alert(document.cookie); // ๋ชจ๋“  ์ฟ ํ‚ค ๋ณด์—ฌ์ฃผ๊ธฐ

โžก๏ธ ์ฝ˜์†Œ๋กœ๊ทธ๋ฅผ ์ฐ์–ด๋ณด๋ฉด HttpOnly๊ฐ€ true์ธ test3๋Š” ๋ณด์ด์ง€ ์•Š์Œ

console.log(document.cookie); //test=100; test-200

6. SameSite

: ์„œ๋“œ ํŒŒํ‹ฐ ์ฟ ํ‚ค์˜ ๋ณด์•ˆ์  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๊ธฐ์ˆ 

  • ์š”์ฒญ ๋„๋ฉ”์ธ๊ณผ ์ฟ ํ‚ค ์ •๋ณด ๋‚ด์˜ ๋„๋ฉ”์ธ์ด ๋‹ค๋ฅธ ํฌ๋กœ์Šค ์‚ฌ์ดํŠธ(cross site)๋กœ ์ „์†กํ•˜๋Š” ์š”์ฒญ์— ๋Œ€ํ•ด์„œ ์ œํ•œ์„ ๋‘˜ ์ˆ˜ ์žˆ์Œ
  • Cross-Origin : ์„œ๋ฒ„์˜ ๋„๋ฉ”์ธ, ํ”„๋กœํ† ์ฝœ, ํฌํŠธ ์ค‘ ํ•˜๋‚˜๋ผ๋„ ๋‹ค๋ฅธ ๊ฒฝ์šฐ
  • Cross-Site : eTLD+1์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ
    • eTLD+1
      • TLD : .com, .org, .kr, .io ๊ฐ™์ด ๋„๋ฉ”์ธ์˜ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„
      • eTLD : ์‚ฌ์ดํŠธ๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ ์„ธ๋ถ„ํ™”๋œ TLD๋ฅผ ๋งํ•˜์—ฌ, .kr, .io ๊ฐ™์€ TML๋Š” ํ•˜์œ„ ๋„๋ฉ”์ธ์„ ํ•˜๋‚˜ ๋” ๋”ํ•œ .co.kr, .github.io๋“ฑ์„ eTLD๋ผ๊ณ  ํŒ๋‹จํ•จ
      • eTLD+1 : eTLD ๋ฐ”๋กœ ์™ผ์ชพ์˜ ํ•˜์œ„ ๋ ˆ๋ฒจ ๋„๋ฉ”์ธ์„ ํ•ฉํ•œ ๊ฒƒ
    • ์˜ˆ๋ฅผ ๋“ค์–ด, [https://code.github.io] vs [https://states.github.io] โ‡’ ๋‘ ์ฃผ์†Œ ๋ชจ๋‘ eTLD๊ฐ€ github.io๋กœ ๊ฐ™์ง€๋งŒ, eTLD+1์€ ๊ฐ๊ฐ code.github.io, states.github.io๋กœ ๋‹ค๋ฅด๋ฏ€๋กœ Cross-Site

๐Ÿ“ ์„œ๋“œ ํŒŒํ‹ฐ๋ž€?

: ์ฟ ํ‚ค ๋„๋ฉ”์ธ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ „ํ˜€ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์œผ๋กœ ์„ค์ •๋œ ์ฟ ํ‚ค

์˜ˆ๋ฅผ๋“ค์–ด, ์‚ฌ์šฉ์ž๊ฐ€ Example ์‚ฌ์ดํŠธ์— ๋ฐฉ๋ฌธํ•ด์„œ ๋กœ๊ทธ์ธ์„ ํ–ˆ๋‹ค๋ฉด ๋‹ค์Œ ๋กœ๊ทธ์ธํ•  ๋•Œ ์ •๋ณด๋ฅผ ๋‹ค์‹œ ์ž…๋ ฅํ•ด์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์„ ์ค„์ผ ์ˆ˜ ์žˆ๋„๋ก Example ์‚ฌ์ดํŠธ์—์„œ ์‚ฌ์šฉ์ž์˜ ์›น๋ธŒ๋ผ์šฐ์ €๋กœ Cookie A๊ฐ€ ๋ถ€์—ฌ๋œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด ์›นํŽ˜์ด์ง€๋Š” ์šฐ์ธก์— ๋ฐฐ๋„ˆ ๊ด‘๊ณ ๊ฐ€ ํ‘œ์‹œ๋˜๋Š”๋ฐ ์ด ๋ฐฐ๋„ˆ ๊ด‘๊ณ ๋Š” Adserver ์‚ฌ์ดํŠธ์—์„œ ์ „๋‹ฌ๋˜๊ณ  ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ์ด ๋ฐฐ๋„ˆ๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ ์›น๋ธŒ๋ผ์šฐ์ €์— ๋‹ค๋ฅธ ๋„๋ฉ”์ธ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ฐ–๋Š” Cookie B๊ฐ€ ๋ถ€์—ฌ๋˜๊ฒŒ ๋œ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ๋ฐฉ๋ฌธํ•˜๊ณ  ์žˆ๋Š” ๋„๋ฉ”์ธ์—์„œ ๋ฐœํ–‰๋˜๋Š” Cookie A๋ฅผ ํผ์ŠคํŠธ ํŒŒํ‹ฐ ์ฟ ํ‚ค(First-party Cookie) ์ด๋ฉฐ, ํƒ€ ๋„๋ฉ”์ธ์—์„œ ๋ฐœํ–‰๋˜๋Š” Cookie B๋ฅผ ์„œ๋“œ ํŒŒํ‹ฐ ์ฟ ํ‚ค(Third-party Cookie)๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ด ์„œ๋“œ ํŒŒํ‹ฐ ์ฟ ํ‚ค๋Š” ์ฃผ๋กœ ํƒ€๊นƒ ๋งˆ์ผ€ํŒ… ๊ด‘๊ณ  ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด ์‹ ๋ฐœ ์‡ผํ•‘๋ชฐ ์‚ฌ์ดํŠธ๋ฅผ ์ž์ฃผ ๋ฐฉ๋ฌธํ•˜๊ฒŒ ๋˜๋ฉด ์ฟ ํ‚ค๊ฐ€ ์ €์žฅ๋˜๊ฒŒ ๋˜๊ณ  ๊ตฌ๊ธ€ ์• ๋“œ์„ผ์Šค๊ฐ€ ์ด๋ฅผ ๊ฐ€์ ธ๊ฐ€ ๋‹ค๋ฅธ ์‚ฌ์ดํŠธ์—์„œ์˜ ๋ฐฐ๋„ˆ ๊ด‘๊ณ ์—์„œ ์‹ ๋ฐœ ๊ด‘๊ณ ๊ฐ€ ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ์ด ์„œ๋“œ ํŒŒํ‹ฐ ์ฟ ํ‚ค๋ฅผ ์ด์šฉํ•œ ์›๋ฆฌ๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

Same-site ์†์„ฑ

  • None : ์ฟ ํ‚ค๋Š” ํฌ๋กœ์Šค ์‚ฌ์ดํŠธ ์š”์ฒญ์˜ ๊ฒฝ์šฐ์— ํ•ญ์ƒ ์ „์†ก, ์ฟ ํ‚ค ์˜ต์…˜ ์ค‘ Secure ์˜ต์…˜์ด ํ•„์š”๋กœ ํ•จ
  • Strict : ์ฟ ํ‚ค๋Š” ํฌ๋กœ์Šค ์‚ฌ์ดํŠธ ์š”์ฒญ์—๋Š” ํ•ญ์ƒ ์ „์†ก๋˜์ง€ ์•Š์Œ (๊ฐ€์žฅ ๋ณด์ˆ˜์ ), Same-site์˜ ๊ฒฝ์šฐ์—๋งŒ ์ฟ ํ‚ค ์ „์†ก
  • Lax : Strict์— ๋น„ํ•ด ์ƒ๋Œ€์ ์œผ๋กœ ๋Š์Šจํ•œ ์†์„ฑ
  • ๋ณด์•ˆ์— ์ทจ์•ฝ
    ์š”์ฒญ์‹œ ์ฟ ํ‚ค์˜ ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ๋ณด๋‚ด๊ธฐ ๋•Œ๋ฌธ์— ์œ ์ถœ ๋ฐ ์กฐ์ž‘์„ ๋‹นํ•  ์œ„ํ—˜์ด ์กด์žฌ
  • ์ฟ ํ‚ค์—๋Š” ์šฉ๋Ÿ‰ ์ œํ•œ์ด ์žˆ์–ด ๋งŽ์€ ์ •๋ณด๋ฅผ ๋‹ด์„ ์ˆ˜ ์—†์Œ
  • ์›น ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ์ฟ ํ‚ค์— ๋Œ€ํ•œ ์ง€์› ํ˜•ํƒœ๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋ธŒ๋ผ์šฐ์ €๊ฐ„ ๊ณต์œ ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅ
  • ์ฟ ํ‚ค์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ ํฌ๋ฉด ํด์ˆ˜๋ก ๋„คํŠธ์›Œํฌ์— ๋ถ€ํ•˜๊ฐ€ ์‹ฌํ•ด์ง

๐Ÿ“Œ Session

: ์„œ๋ฒ„๊ฐ€ Client์— ์œ ์ผํ•˜๊ณ  ์•”ํ˜ธํ™”๋œ ID๋ฅผ ๋ถ€์—ฌํ•˜๊ณ  ์ค‘์š” ๋ฐ์ดํ„ฐ๋Š” ์„œ๋ฒ„์—์„œ ๊ด€๋ฆฌ

Q : ์„ธ์…˜ ๊ฐ์ฒด๋Š” ์–ด๋–ค ํ˜•ํƒœ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‚˜?
A: ์„ธ์…˜ ๊ฐ์ฒด๋Š” Key์— ํ•ด๋‹นํ•˜๋Š” SESSION ID์™€ ์ด์— ๋Œ€์‘ํ•˜๋Š” Value๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋”ฐ.
Value์—๋Š” ์„ธ์…˜ ์ƒ์„ฑ ์‹œ๊ฐ„, ๋งˆ์ง€๋ง‰ ์ ‘๊ทผ ์‹œ๊ฐ„ ๋ฐ User๊ฐ€ ์ €์žฅํ•œ ์†์„ฑ ๋“ฑ์ด Map ํ˜•ํƒœ๋กœ ์ €์žฅ๋œ๋‹ค.

Session ์ธ์ฆ ๋ฐฉ์‹

  1. ์œ ์ €๊ฐ€ ์›น์‚ฌ์ดํŠธ์—์„œ ๋กœ๊ทธ์ธํ•˜๋ฉด ์„ธ์…˜์ด ์„œ๋ฒ„ ๋ฉ”๋ชจ๋ฆฌ(DB)์ƒ์— ์ €์žฅ๋œ๋‹ค.
    ์ด๋•Œ, ์„ธ์…˜์„ ์‹๋ณ„ํ•˜๊ธฐ์œ„ํ•œ Session ID๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค.
  2. ์„œ๋ฒ„์—์„œ ๋ธŒ๋ผ์šฐ์ €์— ์ฟ ํ‚ค์—๋‹ค๊ฐ€ Session ID๋ฅผ ์ €์žฅํ•œ๋‹ค.
  3. ์ฟ ํ‚ค์— ์ •๋ณด๊ฐ€ ๋‹ด๊ฒจ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ธŒ๋ผ์šฐ์ €๋Š” ํ•ด๋‹น ์‚ฌ์ดํŠธ์— ๋Œ€ํ•œ ๋ชจ๋“  Request์— Session ID๋ฅผ ์ฟ ํ‚ค์— ๋‹ด์•„ ์ „์†กํ•œ๋‹ค.
  4. ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ Sesssion ID์™€ ์„œ๋ฒ„ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๋Š” Session ID๋ฅผ ๋น„๊ตํ•˜์—ฌ ์ธ์ฆ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
    [์˜ˆ์‹œ]

Q : ์„ธ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ?
A : ์ฟ ํ‚ค์— SessionId ์™ธ์˜ ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•˜์ง€ ์•Š์Œ์œผ๋กœ์จ ์•ˆ์ •์„ฑ์ด ํ™•๋ณด๋œ๋‹ค

Session ๋ฐฉ์‹์˜ ๋‹จ์ 

  • ์ฟ ํ‚ค๋ฅผ ํฌํ•จํ•œ ์š”์ฒญ์ด ์™ธ๋ถ€์— ๋…ธ์ถœ๋˜๋”๋ผ๋„ ์„ธ์…˜ ID ์ž์ฒด๋Š” ์œ ์˜๋ฏธํ•œ ๊ฐœ์ธ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์ง€ ์•Š์Œ
    ๊ทธ๋Ÿฌ๋‚˜, ํ•ด์ปค๊ฐ€ ์„ธ์…˜ ID ์ž์ฒด๋ฅผ ํƒˆ์ทจํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์ธ์ฒ™ ์œ„์žฅํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ํ•œ๊ณ„๊ฐ€ ์กด์žฌ (์ด๋Š” ์„œ๋ฒ„์—์„œ IP ํŠน์ •์„ ํ†ตํ•ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๊ธดํ•จ)
  • ์œ ์ € ์ •๋ณด๊ฐ€ ์„œ๋ฒ„์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฒ˜๋ฆฌ ์†๋„์— ๋Œ€ํ•œ ๋น„์šฉ ๋ฐœ์ƒ์ด ๋จ
  • ์„œ๋ฒ„์—์„œ ์„ธ์…˜ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์š”์ฒญ์ด ๋งŽ์•„์ง€๋ฉด ์„œ๋ฒ„์— ๋ถ€ํ•˜๊ฐ€ ์‹ฌํ•ด์ง€๊ณ  ์„œ๋ฒ„ ๋น„์šฉ์ด ๋” ๋งŽ์ด ๋“ฌ

0๊ฐœ์˜ ๋Œ“๊ธ€