[๋คํธ์ํฌ] Cookie
๐ Cookie
HTTP ์ฟ ํค(์น ์ฟ ํค, ๋ธ๋ผ์ฐ์ ์ฟ ํค)๋ ์๋ฒ๊ฐ ์ฌ์ฉ์์ ์น ๋ธ๋ผ์ฐ์ ์ ์ ์กํ๋ ์์ ๋ฐ์ดํฐ ์กฐ๊ฐ์ ๋๋ค.
์๋ฒ๊ฐ HTTP์์ฒญ์ ์์ ํ ๋, ์๋ฒ๋ ์๋ต๊ณผ ํจ๊ป Set-Cookie
ํค๋๋ฅผ ์ ์กํฉ๋๋ค.
ํด๋ผ์ด์ธํธ๋ ์๋ฒ์์ ๋ฐ์ ์ฟ ํค๋ฅผ ์ ์ฅํ๊ณ , HTTP ์์ฒญ์ ์ฟ ํค๋ฅผ ์๋ฒ๋ก ์ ๋ฌํฉ๋๋ค.
๐ ์ฟ ํค๋ ์ ํ์ํ ๊น?
HTTP๋ Stateless์ํ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
์๋ก ์ํ๋ฅผ ์ ์งํ์ง ์๊ธฐ ๋๋ฌธ์ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์์ฒญ์ ์ฃผ๊ณ ๋ฐ์ผ๋ฉด ์ฐ๊ฒฐ์ด ๋์ด์ง๋๋ค.
๋ฐ๋ผ์ ํด๋ผ์ด์ธํธ๊ฐ ๋ค์ ์์ฒญํ๋ฉด ์๋ฒ๋ ์ด์ ์์ฒญ์ ๊ธฐ์ตํ์ง ๋ชปํฉ๋๋ค.
๋ชจ๋ ์์ฒญ๊ณผ ๋งํฌ์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ํฌํจํ๋ค๋ฉด ๊ฐ๋ฐ์๊ฐ ๋ชจ๋ ์์ฒญ์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ถ๊ฐํด์ ๊ฐ๋ฐํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋นํจ์จ์ ์ ๋๋ค.
์ด๋ฌํ ์ํฉ์์ ์ฟ ํค๋ฅผ ์จ์ ์น ๋ธ๋ผ์ฐ์ ์ ์ฟ ํค ์ ์ฅ์์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ ์ฅํด ๋์ ์ ์์ต๋๋ค.
์ด๋ ๊ฒ ์น ๋ธ๋ผ์ฐ์ ์ ์ฟ ํค ์ ์ฅ์์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ ์ฅํด ๋๊ณ ๋ชจ๋ ์์ฒญ์ ์ฟ ํค ์ ๋ณด๋ฅผ ์๋์ผ๋ก ํฌํจ์ํฌ ์ ์์ต๋๋ค.
๐ ์ฟ ํค๋ ์ธ์ ์ฌ์ฉํ ๊น?
์ฟ ํค์ ์ฃผ๋ ์ฌ์ฉ์ฒ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ฌ์ฉ์ ๋ก๊ทธ์ธ ์ธ์ ๊ด๋ฆฌ
- ๊ด๊ณ ์ ๋ณด ํธ๋ํน
๋ณดํต ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ ์ฅํด ๋ก๊ทธ์ธ ์ธ์
์ ๊ด๋ฆฌํ๊ณ ,
์น ๋ธ๋ผ์ฐ์ ์ฌ์ฉ์์ ๊ด๊ณ ์ ํธ๋๋ฅผ ํ์
ํ๊ธฐ ์ํด ์ฌ์ฉํฉ๋๋ค.
๐ ์ฟ ํค๋ฅผ ์ฌ์ฉํ ๋ ์ฃผ์ํ ์
-
์ต์ํ์ ์ ๋ณด๋ง ์ฌ์ฉํ์
์ฟ ํค์ ์ ๋ณด๋ ํญ์ ์๋ฒ์ ์ ์ก๋๊ธฐ ๋๋ฌธ์ ๋คํธ์ํฌ ํธ๋ํฝ์ด ์ถ๊ฐ๋ก ์ ๋ฐ๋ฉ๋๋ค. ์ด๋ฐ ์ผ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ธ์ id๋ ์ธ์ฆ ํ ํฐ ๋ฑ ์ต์ํ์ ์ ๋ณด๋ง ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. -
๋ณด์์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ ์ ์ฅํ์ง ์๋๋ค. ์น ๋ธ๋ผ์ฐ์ ์ ์ฟ ํค ์ ์ฅ์์ ์๋ ์ ๋ณด๋ค์ ์๋ฒ์ ๋ณด๋ด๋ ์์ฒญ์ ์๋์ผ๋ก ํฌํจ๋๊ธฐ ๋๋ฌธ์ ์ฃผ๋ฏผ๋ฒํธ, ์ ์ฉ์นด๋ ๋ฒํธ ๋ฑ ๋ณด์์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ ์ ์ฅํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
๐ ์ฟ ํค์ ์๋ช ์ฃผ๊ธฐ
โช ์์ ์ฟ ํค
๋ง๋ฃ ๋ ์ง๋ฅผ ์ ๋ ฅํ๋ฉด ๋ธ๋ผ์ฐ์ ์ข ๋ฃ์ ๊น์ง๋ง ์ ์งํฉ๋๋ค. 0์ด๋ ์์๋ฅผ ์ ๋ ฅํ๋ฉด ์ฟ ํค๊ฐ ์ญ์ ๋ฉ๋๋ค.
์) Set-Cookie: expires=Sat, 26-Dec2020 04:39:21 GMT
โช ์ธ์ ์ฟ ํค
๋ง๋ฃ ๋ ์ง๋ฅผ ์๋ตํ๋ฉด ๋ธ๋ผ์ฐ์ ์ข ๋ฃ์ ๊น์ง๋ง ์ ์งํ๋ค.
๐ ์ฟ ํค - ๋๋ฉ์ธ(Domain)
-
๋๋ฉ์ธ ๋ช ์
ํค๋์ ๋๋ฉ์ธ์ ๋ช ์ํ๋ฉด ๋ช ์ํ ๋ฌธ์ ๊ธฐ์ค ๋๋ฉ์ธ + ์๋ธ ๋๋ฉ์ธ์ ํฌํจํด์ ์ฟ ํค๋ฅผ ์ ์กํฉ๋๋ค.
domain=example.org
๋ฅผ ์ง์ ํด์ ์ฟ ํค๋ฅผ ์์ฑํ๋ฉด
example.org
+dev.example.org
๋ฅผ ํฌํจํด์ ์ฟ ํค๋ฅผ ์ ์กํฉ๋๋ค. -
๋๋ฉ์ธ ์๋ต
example.org
์์ ์ฟ ํค๋ฅผ ์๋ตํ๊ณdomain
์ง์ ์ ์๋ตํ๋ค๋ฉด
example.org
์์๋ง ์ฟ ํค ์ ๊ทผ์ด ๊ฐ๋ฅํ๊ณdev.example.org
๋ ์ฟ ํค๊ฐ ์ ๊ทผํ ์ ์์ต๋๋ค.
๐ ์ฟ ํค - ๊ฒฝ๋ก(Path)
์ฟ ํค๋ ์ง์ ํ ๊ฒฝ๋ก๋ฅผ ํฌํจํ ํ์ ๊ฒฝ๋ก ํ์ด์ง๋ง ์ ๊ทผ์ด ๊ฐ๋ฅํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก path=/
๋ฃจํธ๋ก ์ง์ ํฉ๋๋ค.
๐ ์ฟ ํค - ๋ณด์
-
Secure
์๋ ์ฟ ํค๋http
,https
๋ฅผ ๊ตฌ๋ถํ์ง ์๊ณ ์ ์กํ์ง๋งSecure
๋ฅผ ์ ์ฉํ๋ฉดhttps
์ธ ๊ฒฝ์ฐ์๋ง ์ ์กํฉ๋๋ค. -
HttpOnly
XSS
๊ณต๊ฒฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ์ฉํฉ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํ๋ฉฐHTTP
์ ์ก์๋ง ์ฌ์ฉํฉ๋๋ค. -
SameSite
XSRF
๊ณต๊ฒฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ์ฉํฉ๋๋ค. ์์ฒญ ๋๋ฉ์ธ๊ณผ ์ฟ ํค์ ์ค์ ๋ ๋๋ฉ์ธ์ด ๊ฐ์ ๊ฒฝ์ฐ์๋ง ์ฟ ํค๋ฅผ ์ ์กํฉ๋๋ค.
๐ฌ ์ต์ ๋๊ธ