Cookie ๋?
HTTP์ฟ ํค(์น ์ฟ ํค ๋๋ ๋ธ๋ผ์ฐ์ ์ฟ ํค)๋ ์๋ฒ๊ฐ ์ฌ์ฉ์์ ์น ๋ธ๋ผ์ฐ์ ์ ์ ์กํ๋ ์์ ๋ฐ์ดํฐ ์กฐ๊ฐ์ผ๋ก, ๋ธ๋ผ์ฐ์ ๋ ํด๋น ๋ฐ์ดํฐ ์กฐ๊ฐ๋ค์ ์ ์ฅํด ๋์๋ค๊ฐ, ๋์ผํ ์๋ฒ์ ์์ฒญ ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ํจ๊ป ์ ์กํ๋ค.
์ฟ ํค๋ ๋ ์์ฒญ์ด ๋์ผํ ๋ธ๋ผ์ฐ์ ์์ ๋ค์ด์๋์ง ์๋์ง๋ฅผ ํ๋จํ ๋ ์ฃผ๋ก ์ฌ์ฉํ๋ฉฐ, ์ด๋ฅผ ์ฌ์ฉํ์ฌ stateless์ธ HTTP ํ๋กํ ์ฝ์์ ์ํ ์ ๋ณด๋ฅผ ๊ธฐ์ตํ์ฌ ์ฌ์ฉ์์ ๋ก๊ทธ์ธ ์ํ๋ฅผ ์ ์งํ ์ ์๋ค.
์ฟ ํค๋ Key=value ํํ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
ํ์
์ String์ด๊ณ , ๊ณต๊ฐ ์ ์ฝ์ด ์์ด์ 4KB ์ด์ ์ ์ฅ์ด ๋ถ๊ฐ๋ฅํ๋ค.
Set-Cookie ๋ ์๋ฒ์์ ํด๋ผ์ด์ธํธ(์ฌ์ฉ์ ๋ธ๋ผ์ฐ์ )๋ก ์ฟ ํค๋ฅผ ์ ์กํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค. (์๋ต)
Set-Cookie: <cookie-name>=<cookie-value>โ
์ฟ ํค์ ํน์ง
- ์ฟ ํค๋ ์ ํจ๊ธฐ๊ฐ์ด ์๊ณ , ์๋ฒ๊ฐ ์ ํ ๊ธฐ๊ฐ์ ๋ฐ๋ผ ์ ํจํ๋ค. (๊ธฐ๊ฐ์ ์ ํ์ง ์์ ๊ฒฝ์ฐ ๋ธ๋ผ์ฐ์ ์ข ๋ฃ์ ๊น์ง๋ง ์ ์ง๋๋ค.)
- ์ฟ ํค๋ ์ธ์ฆ๋ฟ๋ง ์๋๋ผ, ๋ค์ํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ค.
1) ์ธ์
๊ด๋ฆฌ : ์๋ฒ์ ์ ์ฅํด์ผ ํ ๋ก๊ทธ์ธ, ์ฅ๋ฐ๊ตฌ๋, ๊ฒ์ ์ค์ฝ์ด ๋ฑ์ ์ ๋ณด ๊ด๋ฆฌ.
2) ๊ฐ์ธํ : ์ฌ์ฉ์ ์ ํธ, ํ
๋ง ๋ฑ์ ์ธํ
.
3) ํธ๋ํน : ์ฌ์ฉ์ ํ๋์ ๊ธฐ๋กํ๊ณ ๋ถ์ํ๋ ์ฉ๋.
* ๊ณผ๊ฑฐ์ ํด๋ผ์ด์ธํธ ์ธก์ ์ ๋ณด๋ฅผ ์ ์ฅํ ๋ ์ฟ ํค๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ์ง๋ง, ์์ฆ์ ์ฑ๋ฅ ์ด์ ๋ฑ์ผ๋ก ํด๋ผ์ด์ธํธ ์ธก์ ์ ๋ณด๋ฅผ ์ ์ฅํ ๋ Modern APIs์ ์ข ๋ฅ์ธ ์น ์คํ ๋ฆฌ์ง API ์ IndexedDB๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
- ์ธ์
์ฟ ํค๋ ํ์ฌ ์ธ์
์ด ๋๋ ๋ ์ญ์ ๊ฐ ๋๋ค. ๋ธ๋ผ์ฐ์ ๋ "ํ์ฌ ์ธ์
"์ด ๋๋๋ ์์ ์ ์ ์ํ๋ค.
์ด๋ค ๋ธ๋ผ์ฐ์ ๋ค์ ์ฌ์์ํ ๋ ์ธ์
์ ๋ณต์ํด์ ์ธ์
์ฟ ํค๊ฐ ๋ฌด๊ธฐํ ์กด์ฌํ ์ ์๋๋ก ํ๋ค.
- ์ง์ ์ฟ ํค๋ Expires ๋๋ Max-Age ๋ผ๋ ์์ฑ์ ๋ช
์๋ ๋ ์ง์ ์ญ์ ๊ฐ ๋๋ค.
- ์ฟ ํค๋ ๋ธ๋ผ์ฐ์ ์๋ง ์๋ค. ๐ Native App์์ ์ฌ์ฉ ๋ถ๊ฐ.
- ๋๋ฉ์ธ๊ณผ ํจ์ค ๋๋ ํฐ๋ธ๋ ์ฟ ํค์ ์ค์ฝํ๋ฅผ ์ ์ํ๋ค.(์ด๋ค URL๋ก ์ฟ ํค๋ฅผ ๋ณด๋ด์ผ ํ๋์ง)
** ๋ณด์์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ(์ฃผ๋ฏผ๋ฒํธ, ์ ์ฉ์นด๋ ์ ๋ณด ๋ฑ)๋ ์ฟ ํค์ ์ ์ฅํ๋ฉด ์๋๋ฉฐ ์ต์ํ์ ์ ๋ณด๋ง ์ฌ์ฉํ๋ ๊ฒ์ ์ถ์ฒ.(์ธ์ id, ์ธ์ฆ ํ ํฐ ๋ฑ)
Secure, HttpOnly, SameSite
Secure
์ฟ ํค๋ http, https๋ฅผ ๊ตฌ๋ถํ์ง ์๊ณ ์ ์กํ๊ธฐ ๋๋ฌธ์ Secure๋ฅผ ์ ์ฉํ๋ฉด HTTPSํ๋กํ ์ฝ ์์์ ์ํธํ๋ ๊ฒฝ์ฐ์๋ง ์ ์กํ๋ค. ํ์ง๋ง Secure์ผ์ง๋ผ๋ ๋ฏผ๊ฐํ ์ ๋ณด๋ ์ ๋ ์ฟ ํค์ ์ ์ฅํ๋ฉด ์๋๋ค.
HttpOnly
์๋ฐ์คํฌ๋ฆฝํธ์์ ์ ๊ทผ ๋ถ๊ฐ(document.cookie)ํ๋๋ก ํ์ฌ, XSS(Cross-site-scripting) ๊ณต๊ฒฉ์ ๋ฐฉ์งํ๋ค.
HTTP ์ ์ก์๋ง ์ฌ์ฉํ๋ค.
SameSite
์ฟ ํค๊ฐ cross-site ์์ฒญ ์ ์ก์ ์๊ตฌํ๊ฒ ๋ง๋ค์ด์ XSRF(์ฌ์ดํธ ๊ฐ ์์ฒญ ์์กฐ) ๊ณต๊ฒฉ ๋ฐฉ์ง, ์์ฒญ ๋๋ฉ์ธ๊ณผ ์ฟ ํค์ ์ค์ ๋ ๋๋ฉ์ธ์ด ๊ฐ์ ๊ฒฝ์ฐ์๋ง ์ฟ ํค๋ฅผ ์ ์กํ๋ค. ์์ง ์คํ ๋จ๊ณ์ ์ฟ ํค๋ผ์ ๋ชจ๋ ๋ถ๋ผ์ฐ์ ์์ ์ฌ์ฉํ ์ ์์ง ์๋ค.
๐ธ ์ถ์ฒ ๐ธ
'WEB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ WEB ] AJAX์ ๋ํด ์์๋ณด๊ธฐ. (0) | 2023.02.06 |
---|---|
[ WEB ] HTTP Header(ํค๋) - 1 (0) | 2022.12.18 |
[ WEB ] Web Storage์ ๋ํด ์์๋ณด๊ธฐ. (0) | 2022.09.04 |
[ HTTP ] HTTP์ ๋ํด ์์๋ณด๊ธฐ (0) | 2022.08.07 |
[ Internet / ๋์์๋ฆฌ ] MDN - ์ธํฐ๋ท์ ๊ธฐ๋ณธ ๋์ ์๋ฆฌ์ ๋ํ์ฌ (0) | 2021.12.23 |