์ฟ ํค(Cookie)๋?
์ฟ ํค๋ ์ธํฐ๋ท์ ์ฌ์ฉํ๋ ์ ์ ๊ฐ ์ด๋ค ์น์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธํ์ ๋ ๊ทธ ์ฌ์ดํธ๊ฐ ์ฌ์ฉํ๋ ์๋ฒ๋ฅผ ํตํด ๋ก์ปฌ์ ์ ์ฅ๋๋ ์์ ๋ฐ์ดํฐ์ด๋ค.
์ฟ ํค๋ ํค์ ๋ฐธ๋ฅ๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ ๋ง๋ฃ๊ธฐ๊ฐ, ๋๋ฉ์ธ, ๊ฒฝ๋ก ๋ฑ์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
๊ทธ๋ ๋ค๋ฉด ์ ์ฟ ํค๋ ์ด๋ฆ์ ๊ฐ์ง๊ฒ ๋ ๊ฒ์ผ๊น?
๋ท์ค์ผ์ดํ ๊ฐ๋ฐ์์ธ ๋ฃจ ๋ชฌํ๋ฆฌ๊ฐ ์ด๋ฆ์ ์ง๊ฒ ๋์๋๋ฐ ๋ฐ์ดํฐ์ ํจํท์ ์๋ฏธํ๋ "๋งค์ง ์ฟ ํค" ์์ ๋น๋กฏ๋์๋ค๊ณ ํ๋ค.
ํด๋ผ์ด์ธํธ๋ ์ต๋ 300๊น์ง ์ฟ ํค๋ฅผ ๊ฐ์ง ์ ์์ผ๋ฉฐ, ํ๋์ ๋๋ฉ์ธ ๋น ์ต๋ 20๊ฐ, ํ๋์ ์ฟ ํค ๋น ์ต๋ 4KB๊น์ง ์ ์ฅํ ์ ์๋ค.
์ฟ ํค๋ฅผ ์ฌ์ฉํ๋ ์ด์
์ด์ HTTP์ ํน์ง์ ์ ๋ฆฌํ ๊ธ์์ ๋ฆฌ์์ค๋ฅผ ์๋ผ๊ธฐ ์ํด์ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์ฐ๊ฒฐ๋์ง ์๋ ํน์ง(๋น์ฐ๊ฒฐ์ฑ)์ด ์๋ค๊ณ ํ๋ค.
๋ํ ๋น์ฉ์ ์ค์ด๊ธฐ ์ํด์ ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ์ํ๋ฅผ ๊ฐ์ง๊ณ ์์ง ์๊ณ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ ์์ ๋ชจ๋ ์ ๋ณด๋ฅผ ๋ด์ ๋ณด๋ธ๋ค๊ณ ํ๋ค. (๋ฌด์ํ)
์ HTTP์ ํน์ง ๋๋ฌธ์ ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ์ ์ฅํ ์ ์๊ธฐ ๋๋ฌธ์ ์น์ฌ์ดํธ๋ ์ฌ์ฉ์๋ฅผ ๊ตฌ๋ณํ ์ ์๊ณ ์ฌ์ฉ์๋ ๋งค๋ฒ ๋ฒ๊ฑฐ๋ก์ด ์ธ์ฆ ์ ์ฐจ๋ฅผ ์งํํด์ผ ํ์๋ค.
์ฟ ํค๋ ๊ฐ๋จํ ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ๊ธฐ์ตํ ์ ์๋ ์๋จ์ด๋ฉฐ ์ด๊ฒ์ HTTP์ ๋จ์ ์ ํด๊ฒฐํ๊ฒ ๋๋ค.
๋ฐ๋ก ์ด๊ฒ์ด ์ฟ ํค๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ด๋ค.
์ฟ ํค์ ์์ฑ๊ณผ์
์ฟ ํค๊ฐ ์์ฑ๋๋ ๊ณผ์ ์ ์๋์ ๊ฐ๋ค.
1. ํด๋ผ์ด์ธํธ๊ฐ ์ด๋ ํ ์ ๋ณด๋ฅผ ์์ฒญํ๋ค.
2. ์๋ฒ๋ ์ฟ ํค๋ฅผ ์์ฑํ๋ค.
3. ์์ฑํ ์ฟ ํค๋ฅผ ์์ฒญํ ์ ๋ณด(HTTP ํค๋)์ ํจ๊ป ๋๋ ค ๋ณด๋ธ๋ค.
4. ํด๋ผ์ด์ธํธ๋ ๋ก์ปฌ์ ์ฟ ํค๋ฅผ ์ ์ฅํ๋ค.
5. ์ฌ๋ฐฉ๋ฌธ ์ ์ด๋ฏธ ์ฟ ํค๊ฐ ์๋ ๊ฒฝ์ฐ ์๋ฒ์ ์ฟ ํค๋ฅผ ์ ๋ฌํ๋ค.
6. ์ ๋ฐ์ดํธํ ์ ๋ณด๊ฐ ์๋ค๋ฉด ์๋ฒ๋ ํด๋น ์ฟ ํค๋ฅผ ์์ฒญํ ์ ๋ณด์ ํจ๊ฒ ๋๋ ค ๋ณด๋ธ๋ค.
์ฆ, ์์ฃผ ์ฐ์ด๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์์ ๋ฐ์์ค๋ ๊ฒ์ด ์๋ ๋ก์ปฌ์ ์ ์ฅํ์ฌ ์ฝ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํ ์๋จ์ด๋ค.
์ฟ ํค์ ์ข ๋ฅ
1. Session Cookie
์ธ์ ๋์๋ง ์ ์ฅ๋๊ณ ์ฌ๋ผ์ง๋ ์ฟ ํค๋ฅผ ์๋ฏธํ๋ค.
2. Persistent Cookie
ํ๋ ๋์คํฌ์ ์ ์ฅ๋๋ ์ฟ ํค์ด๋ฉฐ ์น ํ์ด์ง์ ์ ์ํ ๋๋ง๋ค ์๋ฒ์ ์ ์ก๋๋ ์ฟ ํค๋ฅผ ์๋ฏธํ๋ค.
3. Secure Cookie
์ํธํ๋ ์ฟ ํค๋ฅผ ์๋ฏธํ๋ค.
4. HTTP Only Cookie
์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ์ ๋น HTTP API์ ์ ๊ทผ์ ์ ํํ๋ ์ฟ ํค๋ฅผ ์๋ฏธํ๋ค.
์ฟ ํค๊ฐ ์ฌ์ฉ๋๋ ์์
1. ์๋ ๋ก๊ทธ์ธ
์ฟ ํค๋ฅผ ํตํด์ ๋ก์ปฌ์ ๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ์๋ฒ์ ํด๋น ์ ๋ณด๋ฅผ ๋ณด๋ด ์ฌ์ฉ์ ์ธ์ฆ์ ๋ฐ์ ์ ์๋ค.
2. ํ๋ฃจ๋์ ๋ณด์ง ์๊ธฐ
์ฟ ํค์ ๋ง๋ฃ์ผ์ ์ค์ ํ ์ ์์ผ๋ฏ๋ก ํด๋น ์ ๋ณด๋ฅผ ํตํด์ ๋ณด๊ณ ์ถ์ง ์์ ์ ๋ณด๋ฅผ ์ค์ ํ ์ ์์
3. ์ต๊ทผ ๊ฒ์ ๋ฆฌ์คํธ
์ฟ ํค๋ฅผ ํตํด์ ์ต๊ทผ์ ๊ฒ์ํ ์ ๋ณด๋ค์ ์ ์ฅํ์ฌ ์ฌ์ฉ์์ ๋ฐ๋ผ ๋ณด์ฌ์ค ์ ์์
์ฟ ํค๋ฅผ ์ฌ์ฉํ๋ฉด ์ข์ ์
์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ๋ฐฉ๋ฌธ ์์ ์ ์ฅํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ฐฉ๋ฌธ ์๋ง๋ค ํ์ธํด์ผํ ๋ฒ๊ฑฐ๋ก์ด ์์ (๋ก๊ทธ์ธ)๋ค์ ํธ๋ฆฌํ๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค.
๋ํ ์ฌ์ฉ์๋ง๋ค ์ ์ฅํ๋ ์ ๋ณด๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์์ ๋ง๊ฒ ์น์ฌ์ดํธ์ ๋ชจ๋(๋คํฌ ๋ชจ๋)๋ ์ธ์ด(ํ๊ตญ์ด) ๋ฑ์ ์ค์ ํ ์ ์๋ค.
๋ง์ง๋ง์ผ๋ก ์น์ฌ์ดํธ๋ฅผ ์ด์ํ๋ ์ ์ฅ์์ ์ฌ์ฉ์๊ฐ ์ ์ฅํ ์ฟ ํค ์ ๋ณด๋ฅผ ์ด์ฉํ์ฌ ์ฌ์ฉ์์ ํ๋๊ณผ ํจํด์ ๋ถ์ํ๊ณ ํธ๋ํน ํ ์ ์๋ค.
์ฟ ํค์ ํ๊ณ
์ฟ ํค๋ ์ฌ์ฉ์ ์ธ์ฆ, ๊ฒ์ ๊ธฐ๋ก ๋ฑ์ ๊ฐ์ธ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์์ ๊ฐ์ธ ์ ๋ณด๋ฅผ ์นจํด ๋นํ ์์ง๊ฐ ์๋ค.
๋ํ ์ด๊ฒ์ ์ฌ์ฉ์ ๋ก์ปฌ์ ์ ์ฅ๋๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฝ๊ฒ ์กฐ์๋๊ฑฐ๋ ๊ฐ๋ก์ฑ ์ ์์ด ๋ณด์์ด ์ทจ์ฝํ๋ค.
๊ตฌ์ฒด์ ์ผ๋ก ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ฟ ํค๋ฅผ ํ์ทจํ๋ XSS ๊ณต๊ฒฉ, ์ํธํ ๋์ง ์์ ์ฟ ํค๋ฅผ ํ์ทจํ๋ ์ค๋ํ ๊ณต๊ฒฉ ๋ฑ์ด ์๋ค.
๊ทธ๋ฌ๋ฏ๋ก ์ฟ ํค์๋ ์ค์ํ ์ ๋ณด๋ฅผ ๋ด๋ ๊ฒ์ ์ํํ๊ณ ์น์ฌ์ดํธ๋ ๋ฐ๋์ ์ฟ ํค๋ฅผ ์ ์ฅํด๋ ๋๋์ง์ ์ฌ๋ถ๋ฅผ ์ฌ์ฉ์์๊ฒ ๋ฌผ์ด๋ด์ผ ํ๋ค.
๋ง์ฝ ์ฟ ํค๋ฅผ ์ ์ฅํ๋ค๊ณ ์ค์ ํ๋๋ผ๋ ๋์ค์ ์ธํ ์ ๊ฐ์ ๊ฑฐ๋ถํ๋ค๊ณ ๋ฐ๊ฟ ์๋ ์๋ค.
๋๊ธ