๐ ๋ค์ด๊ฐ๋ฉฐ
์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๊ฑฐ๋ ์ฌ์ฉํ๋ฉด์ ๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ ์ค ํ๋๋ ๋ฐ์ดํฐ์ ์ ์ฅ ๋ฐ ๊ด๋ฆฌ์ ๋๋ค.
์ด๋ฅผ ์ํด ์ฟ ํค, ์ธ์ , ์น ์คํ ๋ฆฌ์ง์ ๊ฐ์ ๊ธฐ์ ๋ค์ด ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์์ผ๋ฉฐ, ์ด๋ค์ ๊ฐ๊ฐ์ ๊ณ ์ ํ ํน์ง๊ณผ ์ฅ๋จ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ด๋ฒ ๊ธ์์๋ ์ฟ ํค, ์ธ์
, ์น ์คํ ๋ฆฌ์ง์ ์ฐจ์ด๋ฅผ ์์ธํ ์์๋ณด๊ณ , ๊ฐ๊ฐ์ ์ฅ๋จ์ ๊ณผ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ํฉ, ๊ทธ๋ฆฌ๊ณ ๋ณด์ ์ด์์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ฟ ํค(Cookie)
์ฟ ํค๋ ์น ์๋ฒ ๋๋ ํด๋ผ์ด์ธํธ์์ ์์ฑ๋์ด ์น ๋ธ๋ผ์ฐ์ ์ ์ ์ฅ๋๋ ํด๋ผ์ด์ธํธ ์ธก์ ์ ์ฅ๋๋ key์ value๋ก ์ด๋ฃจ์ด์ง ์์ ํ ์คํธ ํ์ผ์ ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์ฟ ํค๋ ๋ง๋ฃ์ผ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ๋ง๋ฃ์ผ์ด ์ง๋๋ฉด ์๋์ผ๋ก ์ญ์ ๋๋ ๊ตฌ์กฐ์ ๋๋ค.
์น ์๋ฒ๊ฐ ์๋ต์ ๋ณด๋ผ ๋ HTTP ํค๋๋ฅผ ํตํด ์ฟ ํค๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์ ์กํ๊ณ ํด๋ผ์ด์ธํธ๊ฐ ๊ฐ์ ์๋ฒ๋ก ์์ฒญ์ ๋ณด๋ผ ๋๋ง๋ค ๋ธ๋ผ์ฐ์ ๋ ์ฟ ํค๋ฅผ HTTP ํค๋์ ์๋์ผ๋ก ํฌํจ์์ผ ์ ์กํ๊ณ ์ด๋ฅผ ํตํด์ ์๋ฒ๋ ํด๋ผ์ด์ธํธ๋ฅผ ์๋ณํ๊ณ ์ํ ์ ๋ณด๋ฅผ ์ ์งํฉ๋๋ค.
์ฃผ๋ก ์ฌ์ฉ์์ ์ธ์ ์ ๊ด๋ฆฌํ๊ฑฐ๋, ์ฌ์ฉ์์ ์ ๋ณด๋ ๊ฐ์ธ ์ค์ ์ ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด, ์ฌ์ฉ์๊ฐ ์น ์ฌ์ดํธ์ ๋ก๊ทธ์ธํ๋ฉด ์ฌ์ฉ์์ ๋ก๊ทธ์ธ ์ ๋ณด๋ฅผ ์ฟ ํค์ ์ ์ฅํ์ฌ ์ฌ์ฉ์๊ฐ ๋ค์ ๋ฐฉ๋ฌธํ ๋๋ง๋ค ๋ก๊ทธ์ธ์ ์ ์งํ ์ ์์ต๋๋ค.
์ฅ์
- ์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ ์ ์ง์ ์ ์ฅ๋๋ฏ๋ก, ์๋ฒ์ ๋ถํ๋ฅผ ์ค์ผ ์ ์์ต๋๋ค.
- ์ฌ์ฉ์๊ฐ ์น์ฌ์ดํธ๋ฅผ ๋ค์ ๋ฐฉ๋ฌธํ๋ฉด ๊ธฐ์กด์ ์ํ๋ฅผ ๋ถ๋ฌ์ฌ ์ ์์ต๋๋ค.
- HttpOnly ์ต์ ์ผ๋ก XSS(Cross Site Scripting) ๊ณต๊ฒฉ์ ๋ํ ๋ณด์์ ๊ฐํํ ์ ์์ต๋๋ค. HttpOnly ์ต์ ์ ์ค์ ํ๊ฒ ๋๋ฉด ํด๋ผ์ด์ธํธ์์ ์ฟ ํค์ ์ ๊ทผํ ์ ์์ต๋๋ค.
๋จ์
- ์ฉ๋์ด ์์ต๋๋ค.(์ด 4KB)
- ๋ชจ๋ HTTP ์์ฒญ์ ์ฟ ํค ์ ๋ณด๊ฐ ํฌํจ๋์ด ์ ์ก๋๋ฏ๋ก, ๋คํธ์ํฌ ํธ๋ํฝ์ ์ฆ๊ฐ์ํต๋๋ค.
- HttpOnly ์ต์ ์ ์ฌ์ฉํ์ง ์์ผ๋ฉด XSS ๊ณต๊ฒฉ์ ์ทจ์ฝํฉ๋๋ค.
- CSRF(Cross-Site Request Forgery) ์ทจ์ฝ: ์น ์ฌ์ดํธ๊ฐ ์ฟ ํค๋ฅผ ์ฌ์ฉํด ์ฌ์ฉ์์ ์ธ์
์ ๊ด๋ฆฌํ๊ณ ์์ ๋, ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธ ์ํ์์ ๊ณต๊ฒฉ์๊ฐ ๋ง๋ ์
์์ ์ธ ์นํ์ด์ง์ ๋ฐฉ๋ฌธํ๋ฉด, ํด๋น ์นํ์ด์ง๋ ์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์
์์ ์ธ ์์ฒญ์ ๋ณด๋ผ ์ ์์ต๋๋ค.
- ์ด๋ฌํ ๋ณด์์ ๊ฐํํ๊ธฐ ์ํ ๋ฐฉ๋ฒ ์ค ํ๋๋ก SamSite ์ต์ ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. SamSite ์ต์ ์ ์ฟ ํค๊ฐ ๊ฐ์ ๋๋ฉ์ธ์์๋ง ์ ์ก๋๋๋ก ์ ํํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์, ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ์ฌ์ดํธ์์ ์ ์์ ์ธ ์์ฒญ์ ๋ณด๋ด๋ ํด๋น ์์ฒญ์๋ ์ฟ ํค๊ฐ ํฌํจ๋์ง ์์ต๋๋ค.
์ธ์ (Session)
์ธ์ ์ ์๋ฒ ์ธก์์ ํด๋ผ์ด์ธํธ๋ฅผ ์๋ณํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ธฐ์ ์ ๋๋ค.
ํด๋ผ์ด์ธํธ๊ฐ ์ฒ์ ์๋ฒ์ ์ ์ํ๋ฉด, ์๋ฒ๋ ๊ณ ์ ํ ์ธ์ ID๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌํฉ๋๋ค. ์ด ์ธ์ ID๋ ์ฃผ๋ก ์ฟ ํค๋ฅผ ํตํด ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌ๋๋ฉฐ, ํด๋ผ์ด์ธํธ๋ ์ดํ ์์ฒญ๋ง๋ค ์ธ์ ID๋ฅผ ์๋ฒ์ ์ ๋ฌํ์ฌ ์์ ์ ์๋ณํฉ๋๋ค.
์๋ฒ๋ ์ธ์ ID๋ฅผ ํตํด ํด๋ผ์ด์ธํธ์ ์ ๋ณด๋ฅผ ์๋ฒ ๋ฉ๋ชจ๋ฆฌ ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ฉฐ, ์๋ฒ์ ์ ์ํด์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ข ๋ฃํ ๋๊น์ง ์ธ์ฆ์ํ๋ฅผ ์ ์งํฉ๋๋ค.
์ฟ ํค์ ์ธ์ ์ ์ฐจ์ด๋ ๋์ ์๋ฆฌ๋ ๊ฒฐ๊ตญ ์ธ์ ๋ ์ฟ ํค๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋น์ทํฉ๋๋ค.
๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๊ณณ์ด ํด๋ผ์ด์ธํธ(์ฟ ํค)์ธ๊ฐ ์๋ฒ์ธ๊ฐ(์ธ์ )์ ์ฐจ์ด ๋ฐ ์ ์ฅ ๊ธฐ๊ฐ์ด ์์ต๋๋ค.
์ฅ์
- ๋ณด์์ฑ: ์ธ์ ์ ๋ณด๋ ์๋ฒ์ ์ ์ฅ๋๋ฏ๋ก ํด๋ผ์ด์ธํธ์์ ์ ๋ณด๋ฅผ ๊ฐ๋ก์ฑ ์ ์์ต๋๋ค.
- ์ฟ ํค์ ๋ฌ๋ฆฌ ์ธ์ ์ ์๋ฒ์ ์ ์ฅ๋๋ฏ๋ก ๋ฐ์ดํฐ ํฌ๊ธฐ ์ ํ์ด ์์ต๋๋ค.
- ๊ฐ ์ฌ์ฉ์(๋๋ ๋ธ๋ผ์ฐ์ )๋ ๊ณ ์ ํ ์ธ์ ID๋ฅผ ๊ฐ์ง๊ณ ์์ด์ ๊ฐ๋ณ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ๋ฐ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
๋จ์
- ์ธ์ ์ ๋ณด๊ฐ ์๋ฒ์ ์ ์ฅ๋๋ฏ๋ก ๋ง์ ์ฌ์ฉ์๊ฐ ์ ์ํ ๊ฒฝ์ฐ ์๋ฒ ๋ถํ๊ฐ ์ฆ๊ฐํ ์ ์์ต๋๋ค.
์น ์คํ ๋ฆฌ์ง(Web Storage)
HTML5๋ถํฐ ์ง์ํ๋ ์น ์คํ ๋ฆฌ์ง(Storage)๋ก ๋ก์ปฌ ์คํ ๋ฆฌ์ง(Local Storage)์ ์ธ์ ์คํ ๋ฆฌ์ง(Session Storage)๊ฐ ์์ต๋๋ค.
์ฟ ํค๋ณด๋ค ํจ์ฌ ๋ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์์ผ๋ฉฐ, ํด๋ผ์ด์ธํธ์ ์ ์ฅ๋ง ํ ๋ฟ ์๋ฒ์ ์๋์ผ๋ก ์ ์ก๋์ง ์์ต๋๋ค.
๋ธ๋ผ์ฐ์ ์ธ์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์งํ๊ฑฐ๋, ์ฟ ํค๋ฅผ ์ฌ์ฉํ์ง ์๋ ํ๊ฒฝ์์ ๋ฐ์ดํฐ๋ฅผ ๋ก์ปฌ์ ์ ์ฅํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค.
์ธ์ ์คํ ๋ฆฌ์ง(Session Storage)
- ๋ธ๋ผ์ฐ์ ์ ์ธ์ ์ด ์ข ๋ฃ๋ ๋(๋ซ์ ๋)๊น์ง ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค.
- ์์ฐฝ, ์ ํญ ๋จ์๋ก ์คํ ๋ฆฌ์ง๊ฐ ์์ฑ์ด ๋๋๋ฐ์. ์ดํ ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ์ผ๋ฉด ์ธ์ ์คํ ๋ฆฌ์ง์ ๋ชจ๋ ์ ๋ณด๊ฐ ์ญ์ ๋ฉ๋๋ค. ์ด๋ ๊ธฐ ๋๋ฌธ์ ์ ๊น ์ ๋ณด๋ฅผ ์ ์ฅํ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ฉ๋๋ค.
๋ก์ปฌ ์คํ ๋ฆฌ์ง(Local Storage)
- ์ฌ์ฉ์๊ฐ ์น ์ฌ์ดํธ๋ฅผ ๋ซ๊ฑฐ๋, ์ปดํจํฐ๋ฅผ ์ฌ๋ถํ ํด๋ ๋ฐ์ดํฐ๋ ๊ณ์ ์ ์ฅ๋์ด ์์ผ๋ฉฐ ์ฆ, ์ง์ ์ญ์ ํ์ง ์๋ ์ด์ ๋ง๋ฃ ๊ธฐ๊ฐ ์์ด ๋ฐ์ดํฐ๋ฅผ ์๊ตฌ์ ์ผ๋ก ์ ์ฅํฉ๋๋ค.
- ์ฌ์ฉ์ ์ค์ , ํ ๋ง ๋ฑ ์ง์์ ์ผ๋ก ์ ์งํด์ผ ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
์ฅ์
- ์ฟ ํค์ ๋นํด ๋ ํฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค. (์ธ์ ์คํ ๋ฆฌ์ง์ ๋ก์ปฌ ์คํ ๋ฆฌ์ง ๊ฐ๊ฐ ์ต๋ 5MB)
- HTTP ์์ฒญ์ ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ํฌํจํ์ง ์์ ์ฟ ํค์ ๋นํด ์ถ๊ฐ์ ์ธ ๋คํธ์ํฌ ํธ๋ํฝ์ ์ค์ผ ์ ์์ผ๋ฉฐ, CSRF์ ์์ ํฉ๋๋ค.
๋จ์
- ํด๋ผ์ด์ธํธ ์ธก์์ ๊ด๋ฆฌ๋๋ฏ๋ก XSS(Cross Site Scripting) ๊ณต๊ฒฉ์ ์ทจ์ฝํฉ๋๋ค.
- ์ค์ง ๋ฌธ์์ด๋ง ์ ์ฅํ ์ ์๊ธฐ ๋๋ฌธ์, ๊ฐ์ฒด๋ ๋ค๋ฅธ ๋ฐ์ดํฐ ์ ํ์ ์ ์ฅํ๋ ค๋ฉด ์ง๋ ฌํ ๋๋ ์ญ์ง๋ ฌํ ๊ณผ์ ์ด ํ์ํฉ๋๋ค.
์ฐธ๊ณ ๋ฌธํ:
https://raonctf.com/essential/study/web/cookie_connection
https://interconnection.tistory.com/74
https://developer.mozilla.org/ko/docs/Web/HTTP/Cookies
https://developer.mozilla.org/ko/docs/Web/API/Web_Storage_API