-
์ฟ ํค์ ์ธ์ , ๊ทธ๋ฆฌ๊ณ ์ฟ ํค์ ์ต์ ๋ค์ ๋ํ์ฌ์นดํ ๊ณ ๋ฆฌ ์์ 2023. 3. 19. 22:51
1. ์ฟ ํค๋?
์ฟ ํค๋ ์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ ์ ์ ์ฅ๋๋ ์์ ๋ฌธ์์ด๋ก ์ต๋ 4KB๊น์ง ์ ์ฅ๋ ์ ์๋ค. HTTP๋ ๋ฌด์ํ์ฑ(stateless)์ด๋ ํน์ง์ ๊ฐ์ง๊ณ ์๋๋ฐ, ๋ฐ๋ผ์ ์๋ฒ๋ ๋ ์์ฒญ์ด ๊ฐ์ ๋ธ๋ผ์ฐ์ ์์ ์ค๋์ง ์ ์ ์๋ค. ๋ฐ๋ผ์ ์ด๊ธฐ ์น ์ํ๊ณ์์๋ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํ ์์ฒญ์ ๋ํ response๋ก ์ด๋ค ํ ํฐ์ ๋๋ ค์ฃผ๊ณ ๋ค์ ์์ฒญ์์ ํด๋น ํ ํฐ์ ๊ฐ์ด ๋ณด๋ด๋ ๋ฐฉ๋ฒ์ผ๋ก ์ด๋ฐ ๋ฌด์ํ์ฑ์ ํด๊ฒฐํด ์๋ ๊ฒ์ด๋ค.
์๋ฅผ ๋ค์ด, ๋ก๊ทธ์ธ ์์ฒญ์ ํตํด ํ๋ฒ ๋ค์ด๋ฒ์ ์ธ์ฆ์ด ์ด๋ค์ง๊ณ ๋๋ฉด, ๋๋ ๋ค์ด๋ฒ ๋ด ์ค์ ํ์ด์ง๋ ๋ค์ด๊ฐ ์ ์๊ณ ์ฌ๋ฌ ๋ด๊ฐ ๊ฐ์ ํ ์นดํ์๋ ๋ค์ด๊ฐ ์ ์๋ ๋ฑ ๋ด ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ํ๋ํ ์ ์๋๋ฐ, ์ธ์ฆ ํ ์๋ฒ์์ ๋๋ ค๋ฐ์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ๋งค ์์ฒญ์ ์ค์ด ๋ณด๋ด๊ณ ์๊ธฐ ๋๋ฌธ์ ์๋ฒ๊ฐ ์ด ์์ฒญ์ ํ๋ ์ฃผ์ฒด๊ฐ ๋์ธ์ค์ ์๊ณ ์ ๊ทผ ๊ถํ ๋ฑ์ ํ์ฉํด ์ฃผ๋ ๊ฒ์ด๋ค.
- ๊ฐ์ ๋๋ฉ์ธ์์ ๋ง๋ค์ด์ง ์ฟ ํค๋ง ๋งค ์์ฒญ์ ํด๋น ์น ์๋ฒ์ ๋ณด๋ด์ง๋ค.
- ์ฟ ํค์ ๋ง๋ฃ๊ธฐ๊ฐ์ ์ง์ ํ ์ ์๋ค.
2. ์ฟ ํค๋ ์ด๋ป๊ฒ ๋ง๋ค์ด์ง๋๊ฐ?
์น ์๋ฒ๊ฐ HTTP ์์ฒญ์ ํค๋์
Set-cookie
๋ฅผ ๋ณด๋ด๋ฉด ์น ๋ธ๋ผ์ฐ์ ์ ์๋ฒ๊ฐ ๋ณด๋ธ ์ฟ ํค๊ฐ ์ ์ฅ์ด ๋๋ค. ํฌ๋กฌ์ ๋คํธ์ํฌ ํญ์ ํตํด ์ดํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ด Response Header์ set-cookie๊ฐ ์๋ ๊ฒ์ ๋ณผ ์ ์๋ค.์ด ์ฟ ํค๋ Application ํญ์์ ํ์ธํ ์ ์์ผ๋ฉฐ, ์๋์ ๊ฐ์ด Request์์ header์ cookie์ ๋ด๊ฒจ ์๋ฒ์ ๋ณด๋ด์ง๊ณ ์๋ ๊ฒ์ ์ ์ ์๋ค.
3. ์ฟ ํค๋ฅผ ํ์ธํด๋ณด์
๋ค์๊ณผ ๊ฐ์ด ํฌ๋กฌ์ ๊ฒฝ์ฐ Application ํญ์์ ์ฟ ํค๋ฅผ ํ์ธํ ์ ์๋ค.
๋ณด๋ฉด ์ฟ ํค์ Name๊ณผ Value ์ธ์๋
Domain, Path, Expires, HttpOnly, Secure, SameSite, Priority ๋ฑ๋ฑ
์ฌ๋ฌ๊ฐ์ง ๋ค์ํ ์์ฑ๋ค์ด ์๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ์ด ์์ฑ๋ค์ ๋ํด ์ดํด๋ด์ผ๋ก์จ ์ฟ ํค์ ๋ํด ์ข ๋ ์์ธํ๊ฒ ์์๋ณด์.3-1. Domain ์ต์
๋๋ฉ์ธ์ ์ฟ ํค๊ฐ ๋ณด๋ด์ ธ์ผ ํ ๋๋ฉ์ธ์ ์ง์ ํ๋ ์์ฑ์ด๋ค. ๋ํดํธ๋ก ๋๋ฉ์ธ์ ์ฟ ํค๋ฅผ ๋ณด๋ธ ๋๋ฉ์ธ์ผ๋ก ์ง์ ๋์ด, ํด๋น ํธ์คํธ ์ด๋ฆ์ผ๋ก HTTP ๋ฆฌํ์คํธ๊ฐ ์ผ์ด๋ ๋ ๋ณด๋ด์ง๋ค. ์๋ฅผ ๋ค์ด,
google.com
์์๋ ๋ด๊ฐ ์ฌ์ฉํ๋maps.cgoogle.com
,calendar.google.com
๋ฑ ์ฌ๋ฌ ์๋น์ค๋ค์ด ์กด์ฌํ๋ค.์ด ๋ ๋๋ฉ์ธ ์ต์ ์
google.com
์ด๋ผ๊ณ ์ง์ ํด ๋๋ฉด*name*.google.com
์ ์ ์ํ ๋ ์ฟ ํค๊ฐ ํจ๊ป ๋ณด๋ด์ง๋ค. ๋ธ๋ผ์ฐ์ ๋ ์์ฒญ์ด ๋ณด๋ด์ง ๋ ํธ์คํธ ๋ค์์ ๋น๊ตํ์ฌ ๊ฐ์ ๋๋ฉ์ธ์ ์๋ ์ฟ ํค๋ฅผ ์๋ฒ์ ๋ณด๋ธ๋ค.๋๋ฉ์ธ์ ์ง์ ํ์ง ์์์ ๊ฒฝ์ฐ, ์๋ธ๋๋ฉ์ธ์์๋ ์ฟ ํค๊ฐ ๋ณด๋ด์ง์ง ์์ผ๋, ์์ ๊ฒฝ์ฐ์ฒ๋ผ ๋๋ฉ์ธ ์ต์ ์ ์ง์ ํด๋๋ฉด ์๋ธ๋๋ฉ์ธ์์๋ ์ฟ ํค๊ฐ ์ ์ก๋๋ค.
3-2. Path ์ต์
์ฟ ํค๊ฐ ์ธ์ ๋ณด๋ด์ ธ์ผ ํ๋์ง ์ปจํธ๋กคํ๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ path ์ต์ ์ ์ฌ์ฉํ๋ ๊ฒ์ธ๋ฐ, ๋๋ฉ์ธ ์ต์ ์ ํ์ธํด์ ๊ฐ์ ๋๋ฉ์ธ์ธ์ง ํ์ธํ๊ณ ๋๋ฉด, path ์ต์ ๋น๊ต๊ฐ ์ผ์ด๋๋ค. ์ด ๋ ๊ธ์ ๋น๊ต๊ฐ ์ผ์ด๋๋๋ฐ, ์๋ฅผ๋ค์ด,
path=/blog
๋ก ์ง์ ๋์ด ์๋ค๋ฉด,/blog, /blogminju
์ ๊ฐ์ด/blog
๋ก ์์๋๋ ๊ณณ์ ์ ๋ถ ์ฟ ํค๊ฐ ๋ณด๋ด์ง ๊ฒ์ด๋ค.3-3. Expires/Max-Age ์ต์
์ฟ ํค๋ ๋ง๋ฃ๊ธฐ๊ฐ๊ณผ ํจ๊ป ์์ฑ๋ ์ ์๋ค. ์ด ๋ ๋ง๋ฃ๊ธฐ๊ฐ์ด ์๋์ง ์๋์ง์ ๋ฐ๋ผ
์ธ์ ์ฟ ํค
์์์์ฟ ํค
๋ก ๋๋๋ค.- ์ธ์ ์ฟ ํค๋ ์ธ์ ์ด ์ข ๋ฃ๋ ๋ ์ฌ๋ผ์ง๋ค. (๋ธ๋ผ์ฐ์ ๊ฐ ๋ซํ์ ๋) ์์ ์์์์ Session์ด๋ผ๊ณ ์ ํ ์๋ ๊ฒ์ด ์ธ์ ์ฟ ํค์ด๋ค.
- ์์์ฟ ํค๋ ์ง์ ๋ ์๊ฐ์ด ์ง๋๋ฉด ์ฌ๋ผ์ง๋ ์ฟ ํค์ด๋ค.
์ฐธ๊ณ ๋ก ์ฟ ํค๋ ์ ์ฅ์ฉ๋์ด ์ ํ๋์ด ์๋๋ฐ, ๋ฐ๋ผ์ ์ฉ๋์ด ๋ค ์ฐจ๊ฒ ๋๋ฉด ์ต์ ์ฟ ํค๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ๋ธ๋ผ์ฐ์ ๊ฐ ์์์ ๊ธฐ์กด์ ์ฟ ํค๋ค์ ์ญ์ ํ ๊ฒ์ด๋ค.
3-4. HttpOnly ์ต์
HttpOnly ์ต์ ์ Cross-site ์คํฌ๋ฆฝํ (XSS) ๊ณต๊ฒฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ์ฉ๋๋๋ฐ, ์ด ์ต์ ์ด ์ง์ ๋์ด ์์ผ๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ์
Document.cookie
API์ ์ ๊ทผํ ์ ์๊ณ , ์๋ฒ์ ์ ์ก๋ง ๋ ์ ์๋ค.๋ค์ ์์์ ๊ฐ์ด ์ผ๋ฐ์ ์ผ๋ก ํด๋น API๋ก ์ฟ ํค์ ์ ๊ทผํ์ฌ ์ฟ ํค๋ฅผ ๋ง๋ค๊ณ ์ง์ฐ๋ ๋ฑ ์ฌ๋ฌ๊ฐ์ง๋ฅผ ํ ์ ์๋ค.
๋ด ์ด๋ฆ์ผ๋ก ๋ ์ฟ ํค ๋ง๋ค๊ธฐ
document.cookie = "name=Minju; SameSite=None; Secure" 'name=Minju; SameSite=None; Secure'
3-5. Secure ์ต์
secure์ต์ ์ด ์ง์ ๋์ด ์๋ ์ฟ ํค๋ ์์ฒญ์ด SSL์ด๋ HTTPS ํ๋กํ ์ฝ ์์์ ์ด๋ค์ง ๋์๋ง ์๋ฒ์ ์ ์ก๋ ๊ฒ์ด๋ค. Secure ์ต์ ์ด ์๋๋ผ๋ ๋ณธ์ง์ ์ผ๋ก ์ฟ ํค๋ ์์ ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ฏผ๊ฐํ ์ ๋ณด๋ ์ฟ ํค์ ์ ๋ ์ ์ฅํ๋ฉด ์๋๋ค.
3-6. SameSite ์ต์
SameSite๋ ์น ์ดํ๋ฆฌ์ผ์ด์ ์์ CSRF(Cross-Site Request Forgery)๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด HTTP ์ฟ ํค์์ ์ค์ ํ ์ ์๋ ์์ฑ์ด๋ค.
None, Lax, Strict
์ธ ๊ฐ์ง ์ต์ ์ด ์๋๋ฐ Cross-site์ธ์ง๋ฅผ ํ์ธํ์ฌ ์ฟ ํค ์ ์ก ์ฌ๋ถ๊ฐ ๊ฒฐ์ ๋๋ค.- None : ์ ํํ์ง ์๋ ๊ฒ์ผ๋ก, same-site์ด๋ cross-site์ด๋ ์ฟ ํค ์ ์ก์ด ๊ฐ๋ฅํ๋ค.
- Lax : ๊ธฐ๋ณธ์ ์ผ๋ก same-site์ผ ๋ ์ฟ ํค๊ฐ ์ ์ก๋๋ฉฐ, cross-site์ผ ๊ฒฝ์ฐ top level navigation์ด ๋ณ๊ฒฝ๋๊ฑฐ๋ '์์ ํ' Http ๋ฉ์๋๊ฐ ์ฌ์ฉ๋ ๋์๋ง ์ฟ ํค๊ฐ ์ ์ก๋๋ค.
- Strict : same-site์ผ ๊ฒฝ์ฐ์๋ง ์ฟ ํค๊ฐ ์ ์ก๋๋ค.
2020๋ ๊ธฐ์ค์ผ๋ก default ๊ฐ์ด None ์์ Lax๋ก ๋ณ๊ฒฝ์ด ๋์๋ค. Lax์ผ ๊ฒฝ์ฐ ๋ด๊ฐ ๋ค๋ฅธ ์ฌ์ดํธ์์ ๋งํฌ๋ฅผ ํตํด ์ฟ ํก์ ๋ค์ด๊ฐ์ ๋, ๋ด๊ฐ ๊ฒ์ํ๋ ํค์๋๊ฐ ์๋ ์ฟ ํค๊ฐ์ด ์ฟ ํก์ ์ ์ก๋์ด, ์ฟ ํก์ด ๋์๊ฒ ๋ง์ถค ์ปจํ ์ธ ๋ฅผ ๋ณด๋ด์ค ์ ์๊ฒ ํ๋ ๋ฑ์ ์ญํ ์ ํ๋ค. ๋ง์ฝ Strict๋ก ๋์ด ์๋ค๋ฉด ์ฟ ํก์ ์ฟ ํค๊ฐ ์ ์ก๋์ง ์์ ๋ง์ถค ๊ด๊ณ ๋ฅผ ๋ณด์ง ๋ชปํ์ ๊ฒ์ด๋ค.
์์๋ฅผ ํตํด ์ต์ ๋ค์ ๋ํด ๋ ์์๋ณด์.
๋ด๊ฐ ์ ์ํ ์ฌ์ดํธ๋ฅผ
https://minju.com
์ด๋ผ๊ณ ํ์ ๋, lax, strict์ ๋ํด ์๋ ์์๋ค์ ์ด๋ป๊ฒ ๋์ํ ๊น?case 1.
<img src="https://ariel.com/1.png" />
minju.com์์ ์ด๋ฏธ์ง ํ๊ทธ๋ฅผ ํตํด ariel.com์ ์ด๋ฏธ์ง ํ๋๋ฅผ ๊ฐ์ ธ์๋ค. same-site๊ฐ ์๋๊ธฐ ๋๋ฌธ์ Lax์ Strict๋ชจ๋ ์ฟ ํค๊ฐ ์ ์ก๋์ง ์๋๋ค.
case 2.
<a href="https://ariel.com/blog/samesite.html">Link</a>
๋งํฌ๋ฅผ ํตํด ๋ค๋ฅธ ์ฌ์ดํธ์ ์ด๋ํ๋ ๊ฒ์ธ๋ฐ, ์ต์์ navigation์ ๋ณ๋์ด ์ผ์ด๋๋ฏ๋ก, Lax์์๋ ์ฟ ํค๊ฐ ์ ์ก๋์ง๋ง, strict์์๋ ์ฟ ํค๊ฐ ์ ์ก๋์ง ์๋๋ค.
case 3.
<iframe id="if" src="/hello"></iframe>
<iframe id="if" src="/hello"></iframe>
<script> document.getElementById("if").contentDocument.location.href="https://ariel.com"
iframe ๋ด๋ถ์์ ariel.com์ผ๋ก ์ด๋ํ๊ฒ ๋ ํ ๋ฐ, top-level navigation์ด ์๋๊ธฐ ๋๋ฌธ์ Lax์ Strict๋ชจ๋์์ ์ฟ ํค๊ฐ ์ ์ก๋์ง ์๋๋ค.case 4.
document.location.href="https://ariel.com"</script>
์ต์๋จ์์ navigation ๋ณ๋์ด๊ธฐ ๋๋ฌธ์ Lax์ผ ๋๋ ์ฟ ํค์ ์ก, Strict์ผ ๋๋ ์ฟ ํค์ ์ก์ด ์ผ์ด๋์ง ์๋๋ค.
Same-site ์ต์ ์ ๋ณด๋ค๋ณด๋ฉด, ๋ ๊ฐ์ง ์ง๋ฌธ์ด ์๊ธด๋ค.
์ฒซ ๋ฒ์งธ, CSRF๋ ๋ฌด์์ผ๊น?
์ฌ์ดํธ ๊ฐ ์์ฒญ ์์กฐ์ ์ค์๋ง๋ก, ์ธ์ฆ๋ ์ฌ์ฉ์๊ฐ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ํน์ ์์ฒญ์ ๋ณด๋ด๋๋ก ์ ๋ํ๋ ๊ณต๊ฒฉ ํ์๋ฅผ ๋งํ๋ค. ์๋ฅผ ๋ค์ด ๋ด๊ฐ A๋ผ๋ ์น์ฌ์ดํธ์ ๋ก๊ทธ์ธ ๋์ด์๋ ์ํ์์ ํผ์ฑ ์ฌ์ดํธ๋ฅผ ํด๋ฆญํ์ ๋, ํด๋น URL์ ํด๋ฆญํจ๊ณผ ๋์์ A๋ผ๋ ์น์ฌ์ดํธ์์ ๋ฐ์์จ ๋ด ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ A์น์ฌ์ดํธ์ ๋ด ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํด๋ฌ๋ผ๊ณ ํ๋ ์์ฒญ, ํน์ ๋์ ์ก๊ธํด๋ฌ๋ผ๊ณ ํ๋ ์์ฒญ๋ค์ ํ๋๋ก ํ๋ ๊ฒ์ด๋ค.
**๋น๊ต, XSS๋?
Cross Site Scripting ์ ์ค์๋ง๋ก, ๊ณต๊ฒฉ์๊ฐ ํด๋ผ์ด์ธํธ ์ธก ์คํฌ๋ฆฝํธ๋ฅผ ์น ์ฌ์ดํธ์ ์ฝ์ ํ์ฌ ๋ค๋ฅธ ์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ ์์ ์ํ๋๊ฒ ํ๋ ๊ณต๊ฒฉ์ ์ ํ`์ ๋งํ๋ค. ์ฝ์ ๋ ์ฝ๋๋ ํผํด ์ฌ์ฉ์์ ์ฌ์ดํธ ๊ถํ ์ฟ ํค๋ฅผ ๊ณต๊ฒฉ์์๊ฒ ๋ณด๋ด๋ ์ข ๋ฅ์ ์ ์ฑ์์ ์ ์ํํ ์ ์๊ณ , ๊ณต๊ฒฉ์๋ ์ ๋ฌ๋ฐ์ ์ ๋ณด๋ฅผ ํ์ฉํด ๋ง์น ํผํด ์ฌ์ฉ์์ธ ๊ฒ์ฒ๋ผ ์์ฅํ์ฌ ์ฌ์ดํธ์ ๋ก๊ทธ์ธํ๊ณ ํผํด ์ฌ์ฉ์๊ฐ ํ ์ ์๋ ๋ชจ๋ ์์ ์ ์ํํ ์ ์๋ค.Cross-site ๊ธฐ์ค์ ์ด๋ป๊ฒ ๋ ๊น?
HTTP ๋ชฉ์ ์ง์ ์ฌ์ดํธ์ ํ์ฌ ์ฃผ์ ํ์์ฐฝ์ ์๋ ์ฌ์ดํธ ๊ฐ์ ๋น๊ต๊ฐ ์ผ์ด๋๋๋ฐ, Same-site์ธ์ง ํ๋ณํ ๋์๋ ๋ชจ๋ ๋๋ฉ์ธ์ ํ์ธํ์ง ์๊ณ , .com/.net/.org๊ฐ์ public suffix์ ์์ ์๋ ๋๋ฉ์ธ๊น์ง๋ง ๋น๊ต๋ฅผ ํ๊ฒ ๋๋ค. (Same Origin์ธ์ง ํ์ธํ ๋์๋, scheme(http)์, Host, Port ๋ชจ๋๋ฅผ ํ์ธํ์ฌ ์ด ์ ์ค์ ํ๋๋ผ๋ ๋ค๋ฅด๋ฉด ๋ค๋ฅธ Origin์ด๋ผ๊ณ ํ๋ณํ๋ค.)
public-suffix์ ์๋ฏธ๋ฅผ ์ข ๋ ์ง๊ณ ๊ฐ์ผํ๋๋ฐ, public suffix๋ ๋ฐ๋ก ๊ทธ ์์์๋ ๋๋ฉ์ธ์ ์ ์ ๋ค์ด ๋ง๋ค ์ ์์ด์ผ ํ๋ค. publicsuffix.org ๋ผ๋ ๊ณณ์์ ์ด๊ฑธ ๊ด๋ฆฌํ๋๋ฐ ์๋ฅผ ๋ค์ด ์ด ์ฌ์ดํธ์ ๋ณด๋ฉด github.io์์ฒด๊ฐ public suffix๋ก ๋ฑ๋ก๋์ด ์๋ค. ๋ฐ๋ผ์ same-site๋ฅผ ํ๋ณํ ๋, minju.github.io ๊น์ง ๋น๊ตํ ๊ฒ์ด๋ค.
์์๋ฅผ ํ๋ฒ ๋ณด๋๋ก ํ์.
1) https://www.minju-k.com/path.page.html
2) https://blog.minju-k.com:8443/sop.html
3) http://www.minju-k.com/index.html
4) https://minju.github.io/index.html
5) https://hello.github.io/index.html์ ์์์์, 1,2,3์ Same-site๋ผ๊ณ ๋ณผ ์ ์๊ณ , 4,5๋ฒ ๊ฐ์ ๊ฒฝ์ฐ์๋ github.io ์์ฒด๊ฐ public suffix์ด๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ์๋จ๊ณ์ ๋๋ฉ์ธ์ด ๋ฌ๋ผ cross-site๋ผ๊ณ ๋ณผ ์ ์๋ค.
์ธ์ ์ด๋?
์ฟ ํค์ ๋ํด ์ดํด๋ดค์ผ๋, ์ธ์ ์ ๋ํด ์ดํด๋ณด๋๋ก ํ์.
์ธ์ ๊ณผ ์ฟ ํค์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ ์ ๋ณด๋ฅผ ๊ด๋ฆฌํ๋ ์์น์ธ๋ฐ, ์ฟ ํค์ ๊ฒฝ์ฐ ์ฌ์ฉ์์ ์ ๋ณด๊ฐ ๋ธ๋ผ์ฐ์ ์ ์ ์ฅ๋์ด ์๋ค๊ฐ ์๋ฒ์๊ฒ ๋ณด๋ด์ง๋ค๊ณ ํ๋ค๋ฉด, ์ธ์ ์ ๊ฒฝ์ฐ ์ธ์ ID๋ง ์ฟ ํค์ ์ ๋ฌํด์ฃผ๊ณ , ์ ๋ณด๋ ์ธ์ DB์์ ๊ด๋ฆฌํ๋ค. ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ๊ณ ์ ID๋ฅผ ๋ถ์ฌํ์ฌ, ์ธ์ ID๋ก ํด๋ผ์ด์ธํธ๋ฅผ ๊ตฌ๋ถํด์ ์๊ตฌ์ ๋ง๋ ์๋น์ค๋ฅผ ์ ๊ณตํด ์ฃผ๋ ๋ฐฉ์์ผ๋ก, ๋ณด์ ๋ฉด์์ ์ฟ ํค๋ณด๋ค ์ฐ์ํ๋ค.
์ธ์ ์ ์๋ฒ์์ ๊ด๋ฆฌํ๊ณ ์๊ธฐ ๋๋ฌธ์, ์๋ฒ ์ธก์์ ๊ฐ์ ํํด, ๋ทํ๋ฆญ์ค ๊ณ์ 4๋ช ๊น์ง ์ ํ ๋ฑ ์ฌ๋ฌ๊ฐ์ง ์ผ์ ํ ์ ์์ง๋ง, ์๋ฒ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์๊ฐ ๋ง์์ง ๊ฒฝ์ฐ ์๋๊ฐ ๋๋ ค์ง ์ ์๊ณ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ฐ๋นํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ์์ ์ ์๋ค. ๋งค ์์ฒญ๋ง๋ค ํด๋ผ์ด์ธํธ๊ฐ ์ฟ ํค๋กค ํตํด ๋ณด๋ด์จ ์ธ์ ID๋ฅผ ์ธ์ DB๋ฅผ ํตํด ํ์ธํด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
๊ฐ๋จํ๊ฒ ํ ํฐ๊ณผ ๋น๊ตํ์๋ฉด, ํ ํฐ์ ์๋ฒ์ ๋น๋ฐ ํค๋ก ์ฌ์ธ์ ํด ์ค ์ข ์ด๋ฅผ ๋๋ ค์ฃผ๋ ๊ฒ๊ณผ ๊ฐ์๋ฐ, ์ฌ์ฉ์๋ ์๋ฒ์์ ๋ฐ๊ธํ ํ ํฐ์ ๋ค์ ์๋ฒ์ ์ ์กํ ๋, ๋ง์ฝ ์๋ฒ๊ฐ ์ ๋ฌํด ์ค ํ ํฐ์ด ์๋๋ผ๋ฉด ์ธ์ฆ์ด ์ด๋ ค์ด ์๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค. ์ธ์ ์ ๊ฒฝ์ฐ์๋ ์๋ฒ๊ฐ ๋ก๊ทธ์ธ๋ ์ ์ ์ ๋ชจ๋ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์๊ฐ ์ด๋ฏธ ์ ์ํด ์์์ ์์์ฐจ๋ฆด ์ ์๋ ๋ฐ๋ฉด, ํ ํฐ์ ๊ฒฝ์ฐ์๋ ์ธ์ฆ๋ ์ข ์ด(ํ ํฐ)๋ง ๋ด๋ฐ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ๊ฐ์ ํ ํฐ์ผ๋ก ๋ก๊ทธ์ธ์ ํ ์๋ ์๋ค.
*์ฐธ๊ณ
https://web.dev/i18n/ko/samesite-cookies-explained/
https://developer.mozilla.org/ko/docs/Web/HTTP/Cookies
https://www.youtube.com/watch?v=tosLBcAX1vk&t=417s
https://www.youtube.com/watch?v=Q3YuKipzPbs&t=811s