๊ฐœ๋ฐœ ์ง€์‹/HTTP ์ง€์‹

๐ŸŒ ์›น ๋ธŒ๋ผ์šฐ์ €์˜ Cookie ํ—ค๋” ๋‹ค๋ฃจ๊ธฐ

์ธํŒŒ_ 2022. 12. 28. 09:51

http-cookie

์›น ๋ธŒ๋ผ์šฐ์ €์˜ Cookie ๋ž€?

์›น๋ธŒ๋ผ์šฐ์ €์—์„œ ์ฟ ํ‚ค(Cookie)๋ž€ ์„œ๋ฒ„๊ฐ€ ์‚ฌ์šฉ์ž์˜ ์›น ๋ธŒ๋ผ์šฐ์ €์— ์ „์†กํ•˜๋Š” ์ž‘์€ ๋ฐ์ดํ„ฐ ์กฐ๊ฐ์œผ๋กœ, key=value ํ˜•์‹์˜ ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ ๋ฌถ์Œ์ด๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ์ด ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ ์กฐ๊ฐ๋“ค์„ ์ €์žฅํ•ด๋†“์•˜๋‹ค๊ฐ€ ๋™์ผํ•œ ์„œ๋ฒ„์— ์žฌ ์š”์ฒญ์‹œ ์ฟ ํ‚ค ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค.

HTTP ํ”„๋กœํ† ์ฝœ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ Stateless ํ•œ ์†์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„์˜ ์—ฐ๊ฒฐ ์œ ์ง€๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์„œ๋กœ๋ฅผ ์ธ์‹ํ• ์ˆ˜ ์žˆ๋Š” ์‹๋ณ„ d๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•ด์กŒ๊ณ  ๊ทธ๊ฒƒ์ด ์ฟ ํ‚ค ๋ฐ์ดํ„ฐ ์กฐ๊ฐ์ด๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

์ฟ ํ‚ค์˜ ์–ด์›์€ 1994๋…„, ๋„ท์Šค์ผ€์ดํ”„ ๊ฐœ๋ฐœ์ž ๋ฃจ์ด J. ๋ชฌํˆด๋ฆฌ(Louis J. Montulli)๊ฐ€ ๊ณ ์•ˆํ–ˆ๋Š”๋ฐ, ์œ ๋‹‰์Šค ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์ด ํ”„๋กœ๊ทธ๋žจ ์ˆ˜์‹  ํ›„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ํŒจํ‚ท์„ '๋งค์ง ์ฟ ํ‚ค'๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๋ฐ์„œ ์ฐฉ์•ˆํ–ˆ๋‹ค.

์ฟ ํ‚ค์˜ ํ™œ์šฉ๋„

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

  1. ์„ธ์…˜ ๊ด€๋ฆฌ(Session Management) : ์„œ๋ฒ„ ๊ฐ„ ์ผ์‹œ์ ์ธ ์—ฐ๊ฒฐ ์œ ์ง€์— ์ด์šฉ (๋กœ๊ทธ์ธ)
  2. ๊ฐœ์ธํ™”(Personalization) : ์›น์‚ฌ์ดํŠธ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์„ ํ˜ธ, ํ…Œ๋งˆ ๋“ฑ์˜ ์„ธํŒ…
  3. ํŠธ๋ž˜ํ‚น(Tracking) : ์‚ฌ์šฉ์ž ํ–‰๋™์„ ๊ธฐ๋กํ•˜๊ณ  ๋ถ„์„ํ•˜๋Š” ์šฉ๋„ (๊ด‘๊ณ )

http-cookie

์ด์ฒ˜๋Ÿผ ์ฟ ํ‚ค๋Š” ํ™œ์šฉ๋„๊ฐ€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ์ง€๋งŒ ๋ช…ํ™•ํ•œ ํ•œ๊ณ„์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

์ •๋ณด๊ฐ€ ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ๊ด€๋ฆฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์•…์šฉ๋  ์šฐ๋ ค๊ฐ€ ์žˆ๊ณ , ๋ณด์•ˆ์— ์ทจ์•ฝํ•˜์—ฌ ์ •๋ณด๊ฐ€ ํƒˆ์ทจ๋‹นํ•  ์œ„ํ—˜์„ฑ์ด ์กด์žฌํ•œ๋‹ค๋Š” ์ ์ด๋‹ค. ๊ทธ๋ž˜์„œ ๋ณด์•ˆ์— ๋ฏผ๊ฐํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋‚˜ ์ฃผ๋ฏผ๋ฒˆํ˜ธ์™€ ๊ฐ™์€ ์ •๋ณด๋Š” ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋˜๊ณ  ์ตœ์†Œํ•œ์˜ ์ •๋ณด๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

ํŠนํžˆ๋‚˜ ์š”์ฆ˜์—๋Š” ์ฟ ํ‚ค๊ฐ€ ํŠธ๋ž˜ํ‚น์œผ๋กœ ๊ณผ๋„ํ•˜๊ฒŒ ์ด์šฉ๋˜์–ด ๊ณผํ•œ ๊ด‘๊ณ  ์ˆ˜๋‹จ์œผ๋กœ ๋‚จ์šฉ๋˜๋ฉด์„œ, ์ด๋ฅผ ๊ทœ์ œํ•˜๋Š” ๋ฐœ๊ฑธ์Œ์ด ํ™œ๋ฐœํ•ด์ง€๊ณ  ์žˆ๋‹ค. ๊ทธ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ฐ”๋กœ GDPR ๊ฐœ์ธ์ •๋ณด๋ณดํ˜ธ ๋ฒ•๋ น์ธ๋ฐ, ์–ด๋Š ์›น์‚ฌ์ดํŠธ๋ฅผ ๋ฐฉ๋ฌธํ•˜๋ฉด ๊ฑฐ์˜ ๋Œ€๋ถ€๋ถ„ ์•„๋ž˜์™€ ๊ฐ™์€ ์ฟ ํ‚ค ์ˆ˜์ง‘์— ๋Œ€ํ•œ ๋™์˜๋ฅผ ์š”๊ตฌํ•˜๋Š” ์ฐฝ์„ ๋ด์™”์„ ๊ฒƒ์ด๋‹ค.

http-cookie

์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ด๋Ÿฌํ•œ ์ฟ ํ‚ค ํ—ˆ์šฉ์„ ๋ฐ›์•„์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ์ฟ ํ‚ค์— ๋‚˜๋„ ๋ชจ๋ฅด๊ฒŒ ๋“ค์–ด๊ฐ„ ๊ฐœ์ธ ์ •๋ณด๋ฅผ ํƒ€ ์‚ฌ์ดํŠธ์—์„œ ํ•จ๋ถ€๋กœ ๋‚จ์šฉํ•˜์ง€ ๋ง๋ผ๋Š” ์ทจ์ง€์—์„œ์ด๋‹ค.


์ฟ ํ‚ค๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ด€๋ฆฌ

ํด๋ผ์ด์–ธํŠธ์˜ ์ฟ ํ‚ค๋Š” ์ „์ ์œผ๋กœ ์›น๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ด€๋ฆฌํ•œ๋‹ค. 

์ฆ‰, ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €, ์—ฃ์ง€ ๋ธŒ๋ผ์šฐ์ €, ํŒŒ์ด์–ดํญ์Šค ์™€ ๊ฐ™์€ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ๋ธŒ๋ผ์šฐ์ €๋กœ ๋™์ผํ•œ ์‚ฌ์ดํŠธ์— ๋“ค์–ด๊ฐ€๋ฉด ๋˜‘๊ฐ™์€ ๋‚ด์šฉ์˜ ์ฟ ํ‚ค๊ฐ’์„ ์ €์žฅํ•œ๋‹ค ํ•˜๋”๋ผ๋„ ์ด ์ฟ ํ‚ค๋“ค์€ ์„œ๋กœ ๋ณ„๊ฐœ์ด๋‹ค. ์ฆ‰, ์ฟ ํ‚ค๋Š” ๋ธŒ๋ผ์šฐ์ €์— ์ข…์†๋˜์–ด์žˆ๋‹ค.

http-cookie

๋’ค์—์„œ HTTP ์ฟ ํ‚ค ํ—ค๋” ํŒŒ๋ผ๋ฏธํ„ฐ ์„น์…˜์—์„œ ์ž์„ธํžˆ ๋‹ค๋ฃจ๊ฒ ์ง€๋งŒ, ์ฟ ํ‚ค๋Š” ์›น์‚ฌ์ดํŠธ ๋„๋ฉ”์ธ์— ๋”ฐ๋ผ ๋˜๋Š” ์›น์‚ฌ์ดํŠธ ํŽ˜์ด์ง€๊ฒฝ๋กœ์— ๋”ฐ๋ผ ์ €์žฅ๋˜๋„๋ก ๊ฐ๊ธฐ ๋‹ค๋ฅด๊ฒŒ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋งŒ์ผ ํ˜„์žฌ ๊ฒฝ๋กœ๊ฐ€ example.com/page ์ธ๋ฐ ์„œ๋ฒ„์—์„œ ์ฟ ํ‚ค๊ฐ’์„ test=1; path=/home ์ด๋ผ๊ณ  ์‘๋‹ตํ•˜๊ฒŒ ๋˜๋ฉด, ๋ธŒ๋ผ์šฐ์ €๋Š” /home ๊ฒฝ๋กœ์— ์ฟ ํ‚ค๋ฅผ ์ ์žฌํ•˜๊ฒŒ ๋˜์–ด, ํ˜„์žฌ ํŽ˜์ด์ง€์—์„œ test๋ผ๋Š” ์ฟ ํ‚ค ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋œ๋‹ค. ํŽ˜์ด์ง€๋ฅผ home์œผ๋กœ ์ด๋™์‹œํ‚ค๊ฒŒ ๋˜๋ฉด test ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ• ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

 

๋˜ํ•œ ๊ฐ ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ์ฟ ํ‚ค๋ฅผ ๊ด€๋ฆฌํ• ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋‰ด๋ฅผ ์ง€์›ํ•˜๊ธฐ๋„ ํ•˜๋Š”๋ฐ, ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €์˜ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์—์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ณ„๋„์˜ ์ฟ ํ‚ค ๊ด€๋ฆฌ ํƒญ์„ ์ œ๊ณตํ•˜๊ธฐ๋„ ํ•œ๋‹ค. (F12 → ์ƒ๋‹จ์— Applicationํƒญ ํด๋ฆญ → ์ขŒ์ธก ์‚ฌ์ด๋“œ๋ฐ”์— Cookies ํƒญ ํด๋ฆญ)

http-cookie


์ฟ ํ‚ค์˜ ํ๋ฆ„ (๋กœ๊ทธ์ธ ๊ณผ์ •)

์ฟ ํ‚ค๊ฐ€ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ๋กœ๊ทธ์ธ ๊ณผ์ •์„ ๊ฑฐ์ณ์ง€๋Š”์ง€ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ดํŽด๋ณด์ž. ๋‹ค์Œ์€ ์„ธ์…˜ ์ฟ ํ‚ค๋ฅผ ๋งŒ๋“œ๋Š” ๊ณผ์ •์ด๋‹ค.

์ฟ ํ‚ค-๋กœ๊ทธ์ธ

  1. ๋กœ๊ทธ์ธ(/login) ํ™”๋ฉด์—์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ username ๊ณผ password๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์„œ๋ฒ„์— ์ œ์ถœ(์š”์ฒญ) ํ•œ๋‹ค.
  2. ์„œ๋ฒ„๋Š” DB๋ฅผ ์กฐํšŒํ•˜์—ฌ ํ•ด๋‹น ์œ ์ € ์ •๋ณด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ๊ฒ€์ฆํ•˜๊ณ  ์„ธ์…˜ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ์„ธ์…˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‹๋ณ„ํ•˜๋Š” ์„ธ์…˜ ์•„์ด๋””(SessionID)๋ฅผ ์ฟ ํ‚ค๋กœ ๋งŒ๋“ค์–ด ๋ฐ˜ํ™˜ํ•œ๋‹ค. (Set-Cookie) 
  3. ํด๋ผ์ด์–ธํŠธ๋Š” ์‘๋‹ต ๋ฐ›์€ ์ฟ ํ‚ค๋ฅผ ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅํ•ด ๋†“๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜์ค‘์— ๋Œ€์‹œ๋ณด๋“œ ์ฐฝ(/dashboard)์— ์ง„์ž…ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญ์„ ๋ณด๋‚ผ๋•Œ ์ฟ ํ‚ค๋ฅผ ๊ฐ™์ด ์‹ค์–ด ๋ณด๋‚ธ๋‹ค.
  4. ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์˜จ ์ฟ ํ‚ค์— ๋“ค์€ ์„ธ์…˜ ์•„์ด๋””๋ฅผ ํŒŒ์‹ฑํ•˜์—ฌ ์˜ฌ๋ฐ”๋ฅธ์ง€ ๊ฒ€์ฆํ•˜๊ณ , ๋กœ๊ทธ์ธํ•œ ํšŒ์›์ด๋ฉด ๊ทธ์— ๊ฑธ๋งž๋Š” ๋Œ€์‹œ๋ณด๋“œ ํŽ˜์ด์ง€๋ฅผ ์‘๋‹ตํ•œ๋‹ค.
์„œ๋ฒ„์—์„œ ๊ฐœ์ธ ํšŒ์› ์ •๋ณด์™€ ๊ฐ™์€ ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ๊ทธ๋Œ€๋กœ ํด๋ผ์ด์–ธํŠธ์— ๋ณด๋‚ด๋ฉด, ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋„ ์–ผ๋งˆ๋“ ์ง€ ๋ณผ์ˆ˜ ์žˆ๋‹ค๋Š” ์œ„ํ—˜์„ฑ ๋•Œ๋ฌธ์—, ๋”ฐ๋กœ ์„ธ์…˜ ํ‚ค๋ฅผ ์„œ๋ฒ„์—์„œ ๋งŒ๋“ค์–ด์„œ DB์— ์ €์žฅํ•ด๋‘๊ณ  sessionId ๊ฐ’์œผ๋กœ ๋ณด๋‚ธ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ๊ทธ sessionId๋ฅผ ์ €์žฅํ•ด๋‘๊ณ  ์š”์ฒญํ•  ๋•Œ๋งˆ๋‹ค ๋ณด๋‚ด๊ฒŒ ๋œ๋‹ค.

HTTP Cookie ํ—ค๋”

http-cookie

 

Cookie (์š”์ฒญ ํ—ค๋”)

  • HTTP ์š”์ฒญ ์‹œ ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ์ „๋‹ฌํ•˜๋Š” ์ฟ ํ‚ค ํ—ค๋”
  • ์„œ๋ฒ„์˜ ์„ธ์…˜ ์ƒํƒœ๋ฅผ ๋‹ด์€ SessionID ํ˜น์€ ๊ฐ์ข… ํด๋ผ์ด์–ธํŠธ ์ •๋ณด๋“ค์„ ๋‹ด๊ณ  ์žˆ๋‹ค.

http-cookie


Set-Cookie (์‘๋‹ต ํ—ค๋”)

  • ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ์ „๋‹ฌํ•˜๋Š” ์ฟ ํ‚ค ํ—ค๋”
  • ํด๋ผ์ด์–ธํŠธ๋Š” ์ด ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ฟ ํ‚ค๋ฅผ ๋งŒ๋“ค์–ด ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅ

http-cookie


์ฟ ํ‚ค์˜ ์ €์žฅ ๋ฐฉ์‹

  • ์ฟ ํ‚ค๋Š” key=value ํ˜•ํƒœ๋กœ ์ €์žฅ๋˜๋Š” ๋ฌธ์ž์—ด๋กœ์„œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝค๋งˆ(,)๋กœ ์—ด๊ฑฐํ•˜์—ฌ ์ €์žฅํ•ด ๊ตฌ๋ถ„ํ•œ๋‹ค.
  • ์ฟ ํ‚ค๋Š” ์œ ํšจ ๊ธฐ๊ฐ„์ด๋‚˜ ๋„๋ฉ”์ธ ๋“ฑ์„ ์„ค์ •ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ๋“ค์„ ์„ธ๋ฏธ์ฝœ๋ก (;)์„ ํ†ตํ•ด ์—ด๊ฑฐํ•œ๋‹ค.
  • ์ฆ‰, ์•„๋ž˜์™€ ๊ฐ™์€ ์ฟ ํ‚ค ๋ฐ์ดํ„ฐ์ธ ๊ฒฝ์šฐ ์ด 3๊ฐ€์ง€ ํ˜•ํƒœ์˜ ์ฟ ํ‚ค๊ฐ’์ด ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.
    1. sessionId=abcde1234; expires=Sat, 26-Dec-2020 00:00:00 GMT; path=/; domain=.google.com; Secure
    2. name=์ธํŒŒ; domain=inpa.tistory.com
    3. test=value

http-cookie


HTTP Cookie ํŒŒ๋ผ๋ฏธํ„ฐ

์ฟ ํ‚ค๋Š” key=value ํ˜•ํƒœ๋กœ ์ด๋ฃจ์–ด์ง„ ๋‹จ์ˆœํ•œ ๋ฌธ์ž์—ด์ด์ง€๋งŒ, ๊ฐ ์ฟ ํ‚ค๊ฐ’์— ์ ์šฉ๋˜๋Š” ์ฟ ํ‚ค์˜ ์œ ํšจ ๊ธฐ๊ฐ„์ด๋‚˜ ๋„๋ฉ”์ธ ์„ค์ • ๋“ฑ์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ†ตํ•ด ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ํŒŒ๋ผ๋ฏธํ„ฐ๋“ค์€ ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €)์— ์ ์šฉ๋˜๋Š” ์†์„ฑ๋“ค์ด๋ฉฐ, ์„œ๋ฒ„์—์„œ ์‘๋‹ตํ• ๋•Œ ์„ค์ •ํ•˜์—ฌ ์‘๋‹ต ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €์˜ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์—์„œ๋Š” ๋ณ„๋„์˜ ์ฟ ํ‚ค ๊ด€๋ฆฌ ํƒญ์„ ์ด์šฉํ•ด ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

http-cookie-parameter

ํ•„๋“œ ์†์„ฑ ์„ค๋ช…
NAME=VALUE ์ฟ ํ‚ค์— ๋ถ€์—ฌ๋œ ์ด๋ฆ„๊ณผ ๊ฐ’ (ํ•„์ˆ˜)
Expires=DATE ์ฟ ํ‚ค ์œ ํšจ ๊ธฐํ•œ
Path=PATH ์ฟ ํ‚ค ์ ์šฉ ๋Œ€์ƒ์ด ๋˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ
Domain=๋„๋ฉ”์ธ๋ช… ์ฟ ํ‚ค ์ ์šฉ ๋Œ€์ƒ์ด ๋˜๋Š” ๋„๋ฉ”์ธ ๋ช…
Secure HTTPS๋กœ ํ†ต์‹ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ฟ ํ‚ค๋ฅผ ์†ก์‹ 
HttpOnly ์ฟ ํ‚ค๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์•ก์„ธ์Šค ํ•˜์ง€ ๋ชปํ•˜๋„๋ก ์ œํ•œ
SameSite ํฌ๋กœ์Šค ์‚ฌ์ดํŠธ(Cross-site)๋กœ ์ „์†กํ•˜๋Š” ์š”์ฒญ์˜ ๊ฒฝ์šฐ ์„œ๋“œ ํŒŒํ‹ฐ ์ฟ ํ‚ค์˜ ์ „์†ก์— ์ œํ•œ

์ฟ ํ‚ค ์ƒ๋ช… ์ฃผ๊ธฐ

http-cookie-parameter

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

์ฟ ํ‚ค Path

http-cookie-parameter

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

์ฟ ํ‚ค Domain

http-cookie-parameter

  • ์ฟ ํ‚ค์— ๋„๋ฉ”์ธ์„ ์„ค์ •ํ•˜๋ฉด, ํ•ด๋‹น ๋„๋ฉ”์ธ ํŽ˜์ด์ง€์—์„œ๋งŒ ์ฟ ํ‚ค ์‚ฌ์šฉ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ํ•ด๋‹น ๋„๋ฉ”์ธ์˜ ์„œ๋ธŒ ๋„๋ฉ”์ธ๊นŒ์ง€ ๋ชจ๋‘ ํฌํ•จํ•œ๋‹ค.
  • domain=example.org ์ง€์ •
    • .example.org ํ˜•ํƒœ๋กœ ์ €์žฅ (๋„๋ฉ”์ธ ์•ž์— ์ ์€ ์„œ๋ธŒ ๋„๋ฉ”์ธ๋„ ํ—ˆ์šฉํ•˜๊ฒ ๋‹ค๋Š” ๋œป์ด๋‹ค)
    • example.org → ์ฟ ํ‚ค ์ ‘๊ทผ ๊ฐ€๋Šฅ
    • www.example.org → ์ฟ ํ‚ค ์ ‘๊ทผ ๊ฐ€๋Šฅ
  • ๋„๋ฉ”์ธ์„ ์ƒ๋žตํ•˜๋ฉด ํ˜„์žฌ ๋ฌธ์„œ ๊ธฐ์ค€ ๋„๋ฉ”์ธ์œผ๋กœ๋งŒ ์ ์šฉ๋œ๋‹ค.
    • ์ฆ‰, ์œ„ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด .inpa.tistory.com ์ด ์•„๋‹Œ ์ ์ด ์ƒ๋žต๋œ inpa.tistory.com ์œผ๋กœ ์ €์žฅ๋˜์–ด ์„œ๋ธŒ ๋„๋ฉ”์ธ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ๋งŒ์ผ ํ˜„์žฌ ๋„๋ฉ”์ธ์—์„œ ์„ค์ •ํ•œ ์ฟ ํ‚ค๋ฅผ ํผ์ŠคํŠธ ํŒŒํ‹ฐ ์ฟ ํ‚ค(First-party cokkies) ๋ผ ํ•˜๊ณ , ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์œผ๋กœ ์„ค์ •๋œ ์ฟ ํ‚ค๋ฅผ ์„œ๋“œ ํŒŒํ‹ฐ ์ฟ ํ‚ค(Third-party cokkies)๋ผ ํ•œ๋‹ค.

 

์„œ๋“œ ํŒŒํ‹ฐ ์ฟ ํ‚ค

์ฟ ํ‚ค ๋„๋ฉ”์ธ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ „ํ˜€ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์œผ๋กœ ์„ค์ •๋œ ์ฟ ํ‚ค๋ฅผ ์„œ๋“œ ํŒŒํ‹ฐ ์ฟ ํ‚ค(Third-party Cookie)๋ผ๊ณ  ๋ถˆ๋ฆฌ์šด๋‹ค. 

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

third-party-cookie

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

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


์ฟ ํ‚ค Secure

http-cookie-parameter

  • ํ™œ์„ฑํ™”ํ•˜๋ฉด, HTTPS ์‚ฌ์šฉ ์‹œ์—๋งŒ ์ฟ ํ‚ค ์ •๋ณด ์ „๋‹ฌ
  • ๋ฏธ์ ์šฉ ์‹œ์—๋Š” HTTP, HTTPS ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์Œ

์ฟ ํ‚ค HttpOnly

http-cookie-parameter

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ฟ ํ‚ค ์‚ฌ์šฉ ์ ‘๊ทผ์„ ์ œํ•œํ•œ๋‹ค.
  • ๊ทธ๋ž˜์„œ ํ•ด์ปค๊ฐ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ฟ ํ‚ค๋ฅผ ํƒˆ์ทจํ• ์ˆ˜ ์—†์–ด, XSS ๊ณต๊ฒฉ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ฟ ํ‚ค ์ ‘๊ทผ ๋ฐฉ์ง€

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

document.cookie = "user=John; path=/; expires=Tue, 19 Jan 2038 03:14:07 GMT";
alert(document.cookie); // ๋ชจ๋“  ์ฟ ํ‚ค ๋ณด์—ฌ์ฃผ๊ธฐ
 

[JS] ๐Ÿช ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ฟ ํ‚ค(Cookie) ๋‹ค๋ฃจ๊ธฐ

Cookie๋ž€? Cookie๋Š” ๋ฐ์ดํ„ฐ์ด๋ฉด์„œ, ์šฐ๋ฆฌ๊ฐ€ ํ˜„์žฌ ์‚ฌ์šฉํ•˜๋Š” ์ปดํ“จํ„ฐ์— ์ž‘์€ ํ…์ŠคํŠธํŒŒ์ผ๋กœ ์ €์žฅ๋˜์–ด์žˆ๋Š” ๊ฒƒ์ด๋‹ค. โ€‹ ์–ด๋–ค ์‚ฌ์ดํŠธ์— ์ ‘๊ทผ์„ ํ•˜๊ณ  'ํ•˜๋ฃจ ๋™์•ˆ ์ด ์ฐฝ์„ ๋ณด์ง€ ์•Š๊ธฐ'๋ผ๋Š” ๋ฌธ๊ตฌ๋ฅผ ๋ณธ์ ์ด ์žˆ๋Š”

inpa.tistory.com

 

๊ทธ๋Ÿฐ๋ฐ ์•„๋ž˜์™€ ๊ฐ™์ด ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ test, test2, test3 ์ฟ ํ‚ค๊ฐ€ ์‘๋‹ต๋˜์—ˆ๋Š”๋ฐ, test3 ์ฟ ํ‚ค๋งŒ httpOnly ์†์„ฑ์ด ์ ์šฉ๋˜์–ด ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.

http-cookie-parameter
http-cookie-parameter

๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ฟ ํ‚ค๋ฅผ ๋‚˜์—ดํ•˜๋Š” ์ฝ”๋“œ document.cookie ๋ฅผ ์‹คํ–‰ํ•ด๋ณด๋ฉด test3 ๋ถ€๋ถ„๋งŒ ๋น ์ง„์ฑ„ ์—ด๊ฑฐ๋จ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

console.log(document.cookie);

http-cookie-parameter

๋งŒ์ผ ๊ฐœ๋ฐœ์ž๋„๊ตฌ์˜ Application ์ฟ ํ‚ค ํƒญ์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ €์žฅํ•œ ์ฟ ํ‚ค๊ฐ€ ์•ˆ๋ณด์ธ๋‹ค๋ฉด ์ฟ ํ‚ค์˜ domain ์†์„ฑ์„ ๋งž์ถฐ๋ณด๊ธธ ๋ฐ”๋ž€๋‹ค

์ฟ ํ‚ค SameSite

http-cookie-samesite

  • SameSite ์†์„ฑ์€ ์„œ๋“œ ํŒŒํ‹ฐ ์ฟ ํ‚ค์˜ ๋ณด์•ˆ์  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๊ธฐ์ˆ ์ด๋‹ค.
  • XSRF, CSRF ๊ณต๊ฒฉ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์š”์ฒญ ๋„๋ฉ”์ธ๊ณผ ์ฟ ํ‚ค ์ •๋ณด ๋‚ด์˜ ๋„๋ฉ”์ธ์ด ๋‹ค๋ฅธ ํฌ๋กœ์Šค ์‚ฌ์ดํŠธ(Cross-site)๋กœ ์ „์†กํ•˜๋Š” ์š”์ฒญ์— ๋Œ€ํ•ด์„œ ์ œํ•œ์„ ๋‘˜ ์ˆ˜ ์žˆ๋‹ค.

 

SameSite 3๊ฐ€์ง€ ์†์„ฑ

ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์œผ๋กœ None , Lax , Strict ์„ธ ๊ฐ€์ง€ ์ข…๋ฅ˜๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๊ณ , ๊ฐ๊ฐ ๋™์ž‘ํ•˜๋Š” ๋ฐฉ์‹์ด ๋‹ค๋ฅด๋‹ค.

  • None : ์ฟ ํ‚ค๋Š” ํฌ๋กœ์Šค ์‚ฌ์ดํŠธ ์š”์ฒญ์˜ ๊ฒฝ์šฐ์—๋„ ํ•ญ์ƒ ์ „์†กํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ณด์•ˆ์ ์œผ๋กœ SameSite ์ ์šฉ์„ ํ•˜์ง€ ์•Š์€ ์ฟ ํ‚ค์™€ ๋‹ค๋ฆ„์ด ์—†๋‹ค.
  • Strict : ์ฟ ํ‚ค๋Š” ํฌ๋กœ์Šค ์‚ฌ์ดํŠธ ์š”์ฒญ์—๋Š” ํ•ญ์ƒ ์ „์†ก๋˜์ง€ ์•Š๋Š”๋‹ค. ๊ฐ€์žฅ ๋ณด์ˆ˜์ ์ธ ์ •์ฑ….
  • Lax : Strict์— ๋น„ํ•ด ์ƒ๋Œ€์ ์œผ๋กœ ๋Š์Šจํ•œ ์†์„ฑ. ๋ช‡ ๊ฐ€์ง€ ์˜ˆ์™ธ์ ์ธ ์š”์ฒญ์—๋Š” ์ „์†กํ•˜๋„๋ก ํ•œ๋‹ค.

http-cookie-samesite
์ดˆ๋ก์ƒ‰ ์ฟ ํ‚ค๋Š” ์ดˆ๋ก์ƒ‰ ๋ฌธ์„œ์—๋งŒ ์ ์šฉ๋˜๋„๋ก (https://web.dev/i18n/ko/samesite-cookies-explained/)

 

SameSite Lax ์˜ˆ์™ธ ๊ธฐ์ค€

SameSite=Lax ์ผ๋•Œ ์ฟ ํ‚ค๊ฐ€ ์˜ˆ์™ธ์ ์œผ๋กœ ์ „์†ก๋˜๋Š” ๊ฒฝ์šฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
์‚ฌ์šฉ์ž๊ฐ€ <a> ํƒœํฌ๋ฅผ ํด๋ฆญํ•ด์„œ 302 ๋ฆฌ๋‹ค์ดํ…ํŠธ๋ฅผ ํ•˜๊ฑฐ๋‚˜, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ window.location.replace ๋“ฑ์œผ๋กœ ์ธํ•ด ์ž๋™์œผ๋กœ ์ด๋ฃจ์–ด์ง€๋Š” ์ด๋™์—์„  ์„œ๋“œ ํŒŒํ‹ฐ ์ฟ ํ‚ค๊ฐ€ ์ „์†ก๋œ๋‹ค.

ํ•˜์ง€๋งŒ <iframe> ํƒœ๊ทธ๋‚˜ <img> ํƒœ๊ทธ๋ฅผ ๋ฌธ์„œ์— ์‚ฝ์ž…ํ•จ์œผ๋กœ์„œ ๋ฐœ์ƒํ•˜๋Š” http ์š”์ฒญ์€ ์ „์†ก์„ ์ œํ•œํ•œ๋‹ค. ๋˜ํ•œ GET ์š”์ฒญ์— ๋Œ€ํ•ด์„  ์ฟ ํ‚ค๊ฐ€ ์ „์†ก๋˜์ง€๋งŒ, POST ๋‚˜ DELELTE ์š”์ฒญ์€ ์ œํ•œ๋œ๋‹ค.
์ฐธ๊ณ ๋กœ SameSite ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๋ณด์•ˆ ์†์„ฑ์„ ์„œ๋“œ ํŒŒํ‹ฐ ์ฟ ํ‚ค์— ํ•œํ•˜๋Š” ๊ฒƒ์ด๋ฉฐ, ํผ์ŠคํŠธ ํŒŒํ‹ฐ ์ฟ ํ‚ค๋Š” Lax๋‚˜ Strict์—ฌ๋„ ์ „์†ก๋œ๋‹ค.

 

SameSite None ์ฃผ์˜์ 

ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €๋Š” SameSite ๊ฐ’์œผ๋กœ None์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ•ด๋‹น ์ฟ ํ‚ค๋Š” ๋ฐ˜๋“œ์‹œ Secure ๊ฐ€ ์„ค์ •๋œ ์ฟ ํ‚ค์—ฌ์•ผ ํ•œ๋‹ค๋Š” ์ •์ฑ…์ด ์žˆ๋‹ค. ๋งŒ์ผ ํฌ๋กฌ์—์„œ ์œ„ ์ •์ฑ…์„ ์ง€ํ‚ค์ง€์•Š๊ณ  ์„œ๋ฒ„์—์„œ Set-Cookie๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ์ฟ ํ‚ค ์ž์ฒด๊ฐ€ ์ œ๋Œ€๋กœ ์„ค์ •๋˜์ง€ ์•Š๊ฒŒ ๋œ๋‹ค.

http-cookie-samesite


# ์ฐธ๊ณ ์ž๋ฃŒ

http://taeyo.net/columns/View.aspx?SEQ=471&PSEQ=36&IDX=1

https://www.virtuesecurity.com/kb/testing-cookie-based-session-management/

https://smorning.tistory.com/236

https://market.dighty.com/contents/?q=YToxOntzOjEyOiJrZXl3b3JkX3R5cGUiO3M6MzoiYWxsIjt9&bmode=view&idx=4988279&t=board