์ƒ์„ธ ์ปจํ…์ธ 

๋ณธ๋ฌธ ์ œ๋ชฉ

[์ฟ ํ‚ค๐Ÿช] SameSite, Path, Domain ์™€ Request.credentials

CS/๋„คํŠธ์›Œํฌ๐Ÿ•Š

by :ํ•ดํ”ผ๋ž˜๋น—๐Ÿพ 2025. 2. 11. 17:12

๋ณธ๋ฌธ

์ฟ ํ‚ค

HTTP ํ”„๋กœํ† ์ฝœ์ด ๋ฌด์ƒํƒœ์ธ ๊ฒƒ์„ ๋ณด์™„ํ•˜์—ฌ ์„ธ์…˜ ๊ด€๋ฆฌ, ๊ฐœ์ธํ™”, ์ถ”์ ์˜ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ž‘์€ ๋ฐ์ดํ„ฐ์ด๋‹ค

๋„๋ฉ”์ธ๋‹น ์ตœ๋Œ€ ์ฟ ํ‚ค ์ˆ˜์™€ ์ฟ ํ‚ค๋‹น ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ์ œํ•œํ•˜๊ณ  ์žˆ๋‹ค

 

์ฟ ํ‚ค ์ƒ์„ฑ

Set-Cookie : <์ฟ ํ‚ค์ด๋ฆ„>=<์ฟ ํ‚ค๊ฐ’>
Set-Cookie : <์ฟ ํ‚ค์ด๋ฆ„>=<์ฟ ํ‚ค๊ฐ’>
...

 

์ฟ ํ‚ค ์ œ๊ฑฐ

- ์˜๊ตฌ์ฟ ํ‚ค : Expires, Max-Age ์†์„ฑ ์„ค์ •์— ๋”ฐ๋ผ ๋งŒ๋ฃŒ์ผ์ด ๊ฒฐ์ •๋œ๋‹ค 

- ์„ธ์…˜์ฟ ํ‚ค : Expires, Max-Age ๋Š” ํ˜„์žฌ ์„ธ์…˜์ด ์ข…๋ฃŒ๋˜๋ฉด ์‚ญ์ œ๋œ๋‹ค

 


์ฟ ํ‚ค ๋ณด์•ˆ๊ณผ ์ •์ฑ…

๋ณด์•ˆ์ ์ธ ์ด์œ ๋กœ ๋ธŒ๋ผ์šฐ์ €๋Š” ์ฟ ํ‚ค๋ฅผ ์–ด๋–ป๊ฒŒ ์ €์žฅํ•˜๊ณ , ์–ธ์ œ ์ „์†กํ• ์ง€์— ๋Œ€ํ•œ ์ •์ฑ…์„ ์—„๊ฒฉํ•˜๊ฒŒ ๊ด€๋ฆฌํ•œ๋‹ค.
๊ต์ฐจ ์‚ฌ์ดํŠธ ์š”์ฒญ์ด ์žˆ์„ ๋•Œ ์ฟ ํ‚ค๊ฐ€ ์ž๋™์œผ๋กœ ์ „์†ก๋˜์ง€ ์•Š๋„๋ก ์ œํ•œ์„ ๋‘๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•œ๋‹ค.
SameSite, Secure, Path, Domain ๋“ฑ์˜ ์ฟ ํ‚ค ์†์„ฑ์€ ๊ต์ฐจ ์‚ฌ์ดํŠธ ์š”์ฒญ์—์„œ ์ฟ ํ‚ค๋ฅผ ์ „์†กํ•˜๋Š” ๋ฐฉ์‹์„ ์ œ์–ดํ•˜๋Š” ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค
 

 
 

Domain

Domain์€ ์ฟ ํ‚ค๊ฐ€ ์œ ํšจํ•œ ๋„๋ฉ”์ธ(์–ด๋–ค ์„œ๋ฒ„๊ฐ€ ์ฟ ํ‚ค๋ฅผ ์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€)์„ ์„ค์ •ํ•˜๋Š” ์†์„ฑ์ด๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด example.com์œผ๋กœ ์„ค์ •ํ•˜๋ฉด example.com ๋ฐ ๋ชจ๋“  ํ•˜์œ„ ๋„๋ฉ”์ธ์—์„œ ์ฟ ํ‚ค๊ฐ€ ์œ ํšจํ•ด์ง„๋‹ค.

์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด Domain ์ฟ ํ‚ค๋Š” ํ•ด๋‹น ์†์„ฑ์„ ์„ค์ •ํ•œ ์„œ๋ฒ„์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํ•˜์œ„ ๋„๋ฉ”์ธ์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. 
 

์ž˜๋ชป๋œ ๋„๋ฉ”์ธ ์˜ˆ์‹œ >> https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#invalid_domains
 

Path

Path๋Š” ์ฟ ํ‚ค๊ฐ€ ์œ ํšจํ•œ URL ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•˜๋Š” ์†์„ฑ์ด๋‹ค.
Path=/ ๋กœ ์„ค์ •ํ•˜๋ฉด ๋ชจ๋“  URL ๊ฒฝ๋กœ์—์„œ ์ฟ ํ‚ค๊ฐ€ ์œ ํšจํ•˜๋‹ค.
 

HttpOnly

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

Secure

Secure ์†์„ฑ์ด ์„ค์ •๋œ ์ฟ ํ‚ค๋Š” HTTPS ์—ฐ๊ฒฐ์„ ํ†ตํ•ด์„œ๋งŒ ์ „์†ก๋œ๋‹ค.

์ด ์†์„ฑ์€ ์ฟ ํ‚ค๊ฐ€ ์•”ํ˜ธํ™”๋œ ์—ฐ๊ฒฐ์—์„œ๋งŒ ์•ˆ์ „ํ•˜๊ฒŒ ์ „์†ก๋˜๋„๋ก ๋ณด์žฅํ•œ๋‹ค. (๋กœ์ปฌํ˜ธ์ŠคํŠธ ์ œ์™ธ)

์ค‘๊ฐ„์ž ๊ณต๊ฒฉ์„ ๋ง‰์„ ์ˆ˜ ์žˆ๋‹ค. 
 

SameSite

์ฟ ํ‚ค๊ฐ€ ๊ต์ฐจ ์‚ฌ์ดํŠธ ์š”์ฒญ(ํƒ€์‚ฌ ์ฟ ํ‚ค)์— ํฌํ•จ๋˜์ง€ ์•Š๋„๋ก ์ œ์–ดํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.
SameSite ๊ฐ’์— ๋”ฐ๋ผ ์ฟ ํ‚ค๊ฐ€ ์–ด๋А ์ƒํ™ฉ์—์„œ ์ „์†ก๋˜๋Š”์ง€ ๊ฒฐ์ •๋œ๋‹ค.
 
- Strict : ๊ต์ฐจ ์‚ฌ์ดํŠธ ์š”์ฒญ ์‹œ ์ฟ ํ‚ค๊ฐ€ ์ „์†ก๋˜์ง€ ์•Š๋Š”๋‹ค 
- Lax : ๊ต์ฐจ ์‚ฌ์ดํŠธ GET ์š”์ฒญ ์‹œ์—๋งŒ ์ฟ ํ‚ค ์ „์†ก, POST ์š”์ฒญ์€ ํฌํ•จ๋˜์ง€ ์•Š๋Š”๋‹ค
- None : ๊ต์ฐจ ์‚ฌ์ดํŠธ ์š”์ฒญ์—์„œ๋„ ์ฟ ํ‚ค๋ฅผ ์ „์†กํ•˜๋„๋ก ํ—ˆ์šฉํ•˜์ง€๋งŒ, Secure ์†์„ฑ์ด ํ•„์š”ํ•˜๋‹ค 


Request.credentials 

cross-origin ์š”์ฒญ์˜ ๊ฒฝ์šฐ user agent๊ฐ€ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์œผ๋กœ๋ถ€ํ„ฐ cookie ๋“ค์„ ์ „๋‹ฌํ•ด์•ผ๋งŒ ํ•˜๋Š”๊ฐ€ ์•„๋‹Œ๊ฐ€๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค

์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” 3๊ฐ€์ง€ ๊ฐ’์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค 

 

- omit : ์ ˆ๋Œ€๋กœ Cookie ๋“ค์„ ์ „์†กํ•˜๊ฑฐ๋‚˜ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค

- same-origin : URL์ด ํ˜ธ์ถœ script์™€ ๋™์ผ ์ถœ์ฒ˜(same origin)์— ์žˆ๋‹ค๋ฉด, user credentials(cookies, basic http auth ๋“ฑ)์„ ์ „์†กํ•œ๋‹ค(default๊ฐ’)

- include : cross-origin ํ˜ธ์ถœ์ด๋ผ๋„ ์–ธ์ œ๋‚˜ user credentials(cookies, basic http auth๋“ฑ)์„ ์ „์†กํ•œ๋‹ค 

์˜ˆ๋ฅผ ๋“ค์–ด, CORS ์š”์ฒญ์—์„œ Set-Cookie๋กœ ๋ฐ›์€ ์„ธ์…˜์„ ์œ ์ง€ํ•˜์—ฌ ์ฟ ํ‚ค๋ฅผ ๋ณด๋‚ด๋ ค๋ฉด ํ•„์š”ํ•˜๋‹ค

โš  ์„œ๋ฒ„์—์„œ Access-Control-Allow-Credentials: true๊ฐ€ ์„ค์ •๋˜์ง€ ์•Š์œผ๋ฉด credentials: 'include'๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค 

 

 

[์ฐธ๊ณ  ๋ฌธ์„œ] Request.Credentials

https://developer.mozilla.org/ko/docs/Web/API/Request/credentials

 

Request.credentials - Web API | MDN

Request ์ธํ„ฐํŽ˜์ด์Šค์˜ credentials ์ฝ๊ธฐ ์ „์šฉ ์†์„ฑ์€ cross-origin ์š”์ฒญ์˜ ๊ฒฝ์šฐ, user agent๊ฐ€ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์œผ๋กœ๋ถ€ํ„ฐ cookie ๋“ค์„ ์ „๋‹ฌํ•ด์•ผ๋งŒ ํ•˜๋Š”๊ฐ€ ์•„๋‹Œ๊ฐ€๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ด๊ฒƒ์€ XHR ์˜ withCredentials flag ๊ณผ ๋น„์Šทํ•˜

developer.mozilla.org

 

 

 


[์ฐธ๊ณ  ๋ฌธ์„œ] ์ฟ ํ‚ค
https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies

 

Using HTTP cookies - HTTP | MDN

A cookie (also known as a web cookie or browser cookie) is a small piece of data a server sends to a user's web browser. The browser may store cookies, create new cookies, modify existing ones, and send them back to the same server with later requests. Coo

developer.mozilla.org

 

728x90

๊ด€๋ จ๊ธ€ ๋”๋ณด๊ธฐ