-
์๋ฒ์์ ํด๋ผ์ด์ธํธ์ ์์์ฑ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ
-
์๋ฒ๊ฐ ์น ๋ธ๋ผ์ฐ์ ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ๋ถ๋ฌ์ฌ ์ ์๋ ์๋จ
-
ํด๋น ๋๋ฉ์ธ์ ๋ํด ์ฟ ํค๊ฐ ์กด์ฌํ๋ฉด, ์น ๋ธ๋ผ์ฐ์ ๋ ๋๋ฉ์ธ์๊ฒ http ์์ฒญ ์ ์ฟ ํค๋ฅผ ํจ๊ป ์ ๋ฌ
-
์๋ฒ์์ ํด๋ผ์ด์ธํธ์ ์ ์กํ๋ ๊ฒ ๋ฟ๋ง ์๋๋ผ, ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ์ฟ ํค๋ฅผ ๋ค์ ์ ์กํ๋ ๊ฒ๋ ํฌํจ
-
๋ค๋ง, ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ดํ http ํค๋ ์ค์ ๋ฑ ํน์ ์กฐ๊ฑด๋ค์ด ๋ง์กฑ๋์ด์ผ ๋ค์ ๊ฐ์ ธ์ฌ ์ ์์
'Set-Cookie':[ 'cookie=yummy', 'Secure=Secure; Secure', 'HttpOnly=HttpOnly; HttpOnly', 'Path=Path; Path=/cookie', 'Doamin=Domain; Domain=naver.com' ]
-
Domain
www.google.com
๊ณผ ๊ฐ์ด ์๋ฒ์ ์ ์ํ ์ ์๋ ์ด๋ฆ- ํฌํธ ๋ฐ ์๋ธ ๋๋ฉ์ธ ์ ๋ณด, ์ธ๋ถ ๊ฒฝ๋ก ๋ฑ์ ํฌํจํ์ง ์์
- ํด๋ผ์ด์ธํธ์์๋ ์ฟ ํค์ ๋๋ฉ์ธ ์ต์ ๊ณผ ์๋ฒ์ ๋๋ฉ์ธ์ด ์ผ์นํด์ผ ์ฟ ํค ์ ์ก ๊ฐ๋ฅ
http://www.localhost.com:3000/users/login
์์ Domain์localhost.com
-
Path
- ์ธ๋ถ ๊ฒฝ๋ก๋ก์ ์๋ฒ๊ฐ ๋ผ์ฐํ ํ ๋ ์ฌ์ฉํ๋ ๊ฒฝ๋ก
- ์ค์ ๋ ๊ฒฝ๋ก๋ฅผ ํฌํจํ๋ ํ์ ๊ฒฝ๋ก๋ก ์์ฒญํด๋ ์ฟ ํค๋ฅผ ์๋ฒ์ ์ ์ก ๊ฐ๋ฅ
http://www.localhost.com:3000/users/login
์์ Path๋/users/login
-
MaxAge or Expires
- ์ฟ ํค๊ฐ ์ ํจํ ๊ธฐ๊ฐ์ ์ ํ๋ ์ต์
- MaxAge๋ ์ฟ ํค๊ฐ ์ ํจํ ์๊ฐ์ ์ด ๋จ์๋ก ์ค์ ํ๋ ์ต์
- Expires๋ (ํด๋ผ์ด์ธํธ ์๊ฐ ๊ธฐ์ค) ์ฟ ํค๊ฐ ์ ํจํ ์๊ฐ๊ณผ ๋ ์ง
- ์ธ์
์ฟ ํค(Session Cookie)
- MaxAge ๋๋ Expires ์ต์ ์ด ์๋ ์ฟ ํค
- ๋ธ๋ผ์ฐ์ ๊ฐ ์คํ ์ค์ผ ๋ ์ฌ์ฉํ ์ ์๋ ์์ ์ฟ ํค
- ๋ธ๋ผ์ฐ์ ๋ฅผ ์ข ๋ฃํ๋ฉด ํด๋น ์ฟ ํค๋ ์ญ์
- ์์์ฑ ์ฟ ํค(Persistent Cookie)
- ๋ธ๋ผ์ฐ์ ์ ์ข ๋ฃ ์ฌ๋ถ์ ์๊ด์์
- MaxAge ๋๋ Expires์ ์ง์ ๋ ์ ํจ์๊ฐ๋งํผ ์ฌ์ฉ๊ฐ๋ฅํ ์ฟ ํค
-
Secure
- ์ฌ์ฉํ๋ ํ๋กํ ์ฝ์ ๋ฐ๋ฅธ ์ฟ ํค ์ ์ก ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ์ต์
- ์ต์
์ด
true
์ธ ๊ฒฝ์ฐ HTTPS๋ฅผ ์ด์ฉํ๋ ๊ฒฝ์ฐ์๋ง ์ฟ ํค ์ ์ก ๊ฐ๋ฅ - secure ์ต์ ์ด ์๋ค๋ฉด ํ๋กํ ์ฝ์ ์๊ด ์์ด http๋ https๋ ๋ชจ๋ ์ฟ ํค ์ ์ก ๊ฐ๋ฅ
- ๋จ, ๋๋ฉ์ธ์ด
localhost
์ธ ๊ฒฝ์ฐ https๊ฐ ์๋์ด๋ ์ฟ ํค ์ ์ก ๊ฐ๋ฅ
-
HttpOnly
- ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ธ๋ผ์ฐ์ ์ฟ ํค์ ์ ๊ทผ์ด ๊ฐ๋ฅํ์ง ์ฌ๋ถ ๊ฒฐ์
- ํด๋ผ์ด์ธํธ์์ DOM์ ์ด์ฉํด ์ฟ ํค์ ์ ๊ทผํ๋ ๊ฒ์ ๋ง์์ฃผ๋ ์ต์
- ์ฌ์ฉํ๋ ํ๋กํ ์ฝ์ ๋ฐ๋ฅธ ์ฟ ํค ์ ์ก ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ์ต์
- ๋ํดํธ false๋ก ์ง์ ๋๊ณ ์ต์
์ด
true
์ธ ๊ฒฝ์ฐ, ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ฟ ํค์ ์ ๊ทผ ๋ถ๊ฐ - ๋ง์ฝ
false
์ธ ๊ฒฝ์ฐ,document.cookie
๋ฅผ ์ด์ฉํด ์ฟ ํค๊ฐ ํ์ทจ๋ ์ํ์ด ์์
-
SameSite
- Cross-site ์์ฒญ์ ๋ฐ์ ๊ฒฝ์ฐ, ์์ฒญ์์ ์ฌ์ฉํ ๋ฉ์๋์ ํด๋น ์ต์ ์ ์กฐํฉ์ ๊ธฐ์ค์ผ๋ก ์ฟ ํค ์ ์ก ์ฌ๋ถ ๊ฒฐ์
- Cross-origin
- ์๋ฒ์ ๋๋ฉ์ธ, ํ๋กํ ์ฝ, ํฌํธ ์ค ํ๋๋ผ๋ ๋ค๋ฅธ ๊ฒฝ์ฐ Cross-origin์ผ๋ก ๊ตฌ๋ถ
- Cross-site
- eTLD+1์ด ๋ค๋ฅธ ๊ฒฝ์ฐ (*eTLD+1: ์ต์์ ๋๋ฉ์ธ์ ๋ฐ๋ก ์ผ์ชฝ ํ์ ๋ ๋ฒจ ๋๋ฉ์ธ์ ํฉํ ๊ฒ)
- SameSite ์ต์
์์ ์ฌ์ฉํ ์ ์๋ ์์ฑ
- Lax: Cross-Site ์์ฒญ์ด๋ผ๋ฉด GET ๋ฉ์๋์ ๋ํด์๋ง ์ฟ ํค ์ ์ก ๊ฐ๋ฅ
- Strict: Cross-Site๊ฐ ์๋ Same-Site์ธ ๊ฒฝ์ฐ์๋ง ์ฟ ํค๋ฅผ ์ ์ก
- None: ํญ์ ์ฟ ํค๋ฅผ ๋ณด๋ด์ค ์ ์์ผ๋, Secure ์ต์ ํ์
- ์ฟ ํค์ ํน์ฑ์ ์ด์ฉํด statelessํ ์ธํฐ๋ท ์ฐ๊ฒฐ์ statefulํ๊ฒ ์ ์ง ๊ฐ๋ฅ
- ๋ค๋ง, ๊ธฐ๋ณธ์ ์ผ๋ก ์ฟ ํค๋ ์ค๋ ์๊ฐ ๋์ ์ ์ง๋ ์ ์๊ณ , HttpOnly ์ต์ ์ ์ฌ์ฉํ์ง ์์๋ค๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ฟ ํค ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ฏ๋ก ์ฟ ํค์ ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ๋ด๋ ๊ฒ์ ์ํ