์น ๊ฐ๋ฐ์์ LocalStorage์ SessionStorage์ ๋ณด์ ์ฐจ์ด๋ฅผ ํ์ํ๊ณ , ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๋ฉฐ ์ผ๋ฐ์ ์ธ ์น ์ทจ์ฝ์ ์ํ์ ์ํํ๋ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์์๋ณด์ธ์.
์น ์คํ ๋ฆฌ์ง ๋ณด์: LocalStorage ๋ SessionStorage ์์ ์ฑ ์ฌ์ธต ๋ถ์
LocalStorage
์ SessionStorage
๋ฅผ ๋ชจ๋ ํฌํจํ๋ ์น ์คํ ๋ฆฌ์ง๋ ์น ์ ํ๋ฆฌ์ผ์ด์
์ด ์ฌ์ฉ์ ๋ธ๋ผ์ฐ์ ๋ด์ ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ ๊ฐ๋ ฅํ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์๊ตฌ์ ์ผ๋ก ์ ์ฅํ๊ณ ์๋ฒ ์์ฒญ์ ์ค์ฌ ์ฑ๋ฅ์ ํฅ์์ํค๋ ๋ฑ ํฅ์๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ํธ๋ฆฌํจ์๋ ๋ด์ฌ๋ ๋ณด์ ์ํ์ด ๋ฐ๋ฆ
๋๋ค. LocalStorage
์ SessionStorage
์ ์ฐจ์ด์ ์ ์ดํดํ๊ณ ์ ์ ํ ๋ณด์ ์กฐ์น๋ฅผ ๊ตฌํํ๋ ๊ฒ์ ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๊ณ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.
์น ์คํ ๋ฆฌ์ง ์ดํดํ๊ธฐ: LocalStorage์ SessionStorage
LocalStorage
์ SessionStorage
๋ ๋ชจ๋ ์น ๋ธ๋ผ์ฐ์ ๋ด์์ ํด๋ผ์ด์ธํธ ์ธก ์คํ ๋ฆฌ์ง ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ค์ ์น ์คํ ๋ฆฌ์ง API์ ์ผ๋ถ์ด๋ฉฐ ํค-๊ฐ ์์ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์ฃผ์ ์ฐจ์ด์ ์ ์๋ช
๊ณผ ๋ฒ์์ ์์ต๋๋ค:
- LocalStorage:
LocalStorage
์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ ๋ธ๋ผ์ฐ์ ์ธ์ ๊ฐ์ ์ ์ง๋ฉ๋๋ค. ์ฆ, ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ์๋ค๊ฐ ๋ค์ ์ด์ด๋ ๋ฐ์ดํฐ๊ฐ ๊ณ์ ๋จ์ ์์ต๋๋ค.LocalStorage
์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ ๋์ผ ์ถ์ฒ(ํ๋กํ ์ฝ, ๋๋ฉ์ธ, ํฌํธ)์ ์คํฌ๋ฆฝํธ์์๋ง ์ ๊ทผํ ์ ์์ต๋๋ค. - SessionStorage:
SessionStorage
์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ ๋ธ๋ผ์ฐ์ ์ธ์ ๊ธฐ๊ฐ ๋์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ์ฐฝ์ด๋ ํญ์ ๋ซ์ผ๋ฉด ๋ฐ์ดํฐ๋ ์๋์ผ๋ก ์ง์์ง๋๋ค.LocalStorage
์ ๋ง์ฐฌ๊ฐ์ง๋กSessionStorage
์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ ๋์ผ ์ถ์ฒ์ ์คํฌ๋ฆฝํธ์์๋ง ์ ๊ทผํ ์ ์์ต๋๋ค.
LocalStorage์ SessionStorage์ ์ฌ์ฉ ์ฌ๋ก
LocalStorage
์ SessionStorage
์ค ์ด๋ค ๊ฒ์ ์ ํํ ์ง๋ ์ ์ฅํด์ผ ํ ๋ฐ์ดํฐ์ ์ ํ๊ณผ ์๋๋ ์๋ช
์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ๋ค์์ ๋ช ๊ฐ์ง ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก์
๋๋ค:
- LocalStorage:
- ์ฌ์ฉ์ ๊ธฐ๋ณธ ์ค์ ์ ์ฅ(์: ํ ๋ง, ์ธ์ด ์ค์ ). ๊ธ๋ก๋ฒ ๋ด์ค ์น์ฌ์ดํธ์์ ์ฌ์ฉ์๊ฐ ์์น์ ๊ด๊ณ์์ด ํฅํ ๋ฐฉ๋ฌธ์ ์ํด ์ ํธํ๋ ์ธ์ด๋ฅผ ์ ์ฅํ ์ ์๋๋ก ํ์ฉํ๋ ๊ฒ์ ์์ํด ๋ณด์ธ์.
- ์คํ๋ผ์ธ ์ก์ธ์ค๋ฅผ ์ํ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ ์บ์ฑ. ์ฌํ ์ฑ์ ์คํ๋ผ์ธ ๋ณด๊ธฐ๋ฅผ ์ํด ํญ๊ณตํธ ์ธ๋ถ ์ ๋ณด๋ฅผ ์บ์ํ์ฌ ์ธํฐ๋ท ์ฐ๊ฒฐ์ด ์ ํ๋ ๋ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ ํ ์ ์์ต๋๋ค.
- ์ฌ์ฉ์ ๋ก๊ทธ์ธ ์ํ ๊ธฐ์ต(๋จ, ๋์ค์ ๋ ผ์ํ ๋ณด์ ์ํฅ์ ์ ์คํ๊ฒ ๊ณ ๋ คํด์ผ ํจ).
- SessionStorage:
- ์ผํ ์นดํธ ๋ด์ฉ๊ณผ ๊ฐ์ด ํน์ ์ธ์
๊ณผ ๊ด๋ จ๋ ์์ ๋ฐ์ดํฐ ์ ์ฅ. ์ ์ ์๊ฑฐ๋ ์ฌ์ดํธ๋ ๋ธ๋ผ์ฐ์ง ์ธ์
๋์ ์นดํธ์ ์ถ๊ฐ๋ ํญ๋ชฉ์ ๋ณด๊ดํ๊ธฐ ์ํด
SessionStorage
๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ์ผ๋ฉด ์์๋๋ก ์นดํธ๊ฐ ๋น์์ง๋๋ค. - ๋ค๋จ๊ณ ์์์ ์ํ ์ ์ง. ์จ๋ผ์ธ ๋ฑ
ํน ์ ํ๋ฆฌ์ผ์ด์
์ ์ ์ถ์ด ์๋ฃ๋ ๋๊น์ง ๋ถ๋ถ์ ์ผ๋ก ์๋ฃ๋ ๊ฑฐ๋ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ธฐ ์ํด
SessionStorage
๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ฑ์ ํฅ์์ํค๊ณ ๋ฐ์ดํฐ ์์ค์ ๋ฐฉ์งํ ์ ์์ต๋๋ค. - ์์ ์ธ์ฆ ํ ํฐ ์ ์ฅ. ์์ ์ธ์ฆ ํ ํฐ์ SessionStorage์ ์ ์ฅํ์ฌ ์ธ์ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ํด ๋ฐฑ์๋์ ๋์กฐ ํ์ธํ ์ ์์ต๋๋ค.
- ์ผํ ์นดํธ ๋ด์ฉ๊ณผ ๊ฐ์ด ํน์ ์ธ์
๊ณผ ๊ด๋ จ๋ ์์ ๋ฐ์ดํฐ ์ ์ฅ. ์ ์ ์๊ฑฐ๋ ์ฌ์ดํธ๋ ๋ธ๋ผ์ฐ์ง ์ธ์
๋์ ์นดํธ์ ์ถ๊ฐ๋ ํญ๋ชฉ์ ๋ณด๊ดํ๊ธฐ ์ํด
์น ์คํ ๋ฆฌ์ง์ ๊ด๋ จ๋ ๋ณด์ ์ํ
LocalStorage
์ SessionStorage
๋ ์ ์ฉํ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ง, ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌํ์ง ์์ผ๋ฉด ์ ์ฌ์ ์ธ ๋ณด์ ์ทจ์ฝ์ ์ ์ผ๊ธฐํ ์ ์์ต๋๋ค. ์ฃผ์ ์ํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
1. ์ฌ์ดํธ ๊ฐ ์คํฌ๋ฆฝํ (XSS) ๊ณต๊ฒฉ
์ค๋ช
: XSS ๊ณต๊ฒฉ์ ์
์ฑ ์คํฌ๋ฆฝํธ๊ฐ ์น์ฌ์ดํธ์ ์ฃผ์
๋์ด ์ฌ์ฉ์ ๋ธ๋ผ์ฐ์ ์ ์ปจํ
์คํธ์์ ์คํ๋ ๋ ๋ฐ์ํฉ๋๋ค. ๊ณต๊ฒฉ์๊ฐ LocalStorage
๋ SessionStorage
์ ์ ๊ทผํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์ฃผ์
ํ ์ ์๋ค๋ฉด, ์ฌ์ฉ์ ์๊ฒฉ ์ฆ๋ช
์ด๋ ์ธ์
ํ ํฐ๊ณผ ๊ฐ์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ํ์น ์ ์์ต๋๋ค. XSS ๊ณต๊ฒฉ์ ์ฌ๊ฐํ ๋ณด์ ์ํ์ด๋ฉฐ ์ฒ ์ ํ๊ฒ ์ํํด์ผ ํฉ๋๋ค.
์์: ์ฌ์ฉ์์ ์ธ์ฆ ํ ํฐ์ ์ ์ฅํ๊ธฐ ์ํด LocalStorage
๋ฅผ ์ฌ์ฉํ๋ ์น์ฌ์ดํธ๋ฅผ ์๊ฐํด ๋ณด์ธ์. ๋ง์ฝ ์น์ฌ์ดํธ๊ฐ XSS์ ์ทจ์ฝํ๋ค๋ฉด, ๊ณต๊ฒฉ์๋ LocalStorage
์์ ํ ํฐ์ ์ฝ์ด ์์ ์ ์๋ฒ๋ก ์ ์กํ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ฃผ์
ํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๊ณต๊ฒฉ์๋ ์ด ํ ํฐ์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์๋ฅผ ์ฌ์นญํ๊ณ ๊ณ์ ์ ๋ฌด๋จ์ผ๋ก ์ ๊ทผํ ์ ์์ต๋๋ค.
์ํ ์กฐ์น:
- ์ ๋ ฅ๊ฐ ๊ฒ์ฆ ๋ฐ ์๋ํ์ด์ ์ด์ : ๋ชจ๋ ์ฌ์ฉ์ ์ ๋ ฅ์ ์๊ฒฉํ๊ฒ ๊ฒ์ฆํ๊ณ ์ด๊ท (sanitize)ํ์ฌ ์ ์ฑ ์คํฌ๋ฆฝํธ ์ฃผ์ ์ ๋ฐฉ์งํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์์, URL ๋ฐ ๊ธฐํ ๋ชจ๋ ์ฌ์ฉ์ ์ ๊ณต ์ ๋ ฅ ์์ค์ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ฉ๋๋ค. ํด๋ผ์ด์ธํธ ์ธก ๊ฒ์ฆ์ ์ฐํ๋ ์ ์์ผ๋ฏ๋ก ์๋ฒ ์ธก ๊ฒ์ฆ์ด ํ์์ ์ ๋๋ค.
- ์ฝํ ์ธ ๋ณด์ ์ ์ฑ (CSP): ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฆฌ์์ค๋ฅผ ๋ก๋ํ ์ ์๋ ์์ค๋ฅผ ์ ์ดํ๊ธฐ ์ํด ๊ฐ๋ ฅํ CSP๋ฅผ ๊ตฌํํฉ๋๋ค. ์ด๋ ์ฃผ์ ๋ ์คํฌ๋ฆฝํธ์ ์คํ์ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. CSP๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ์น์ธ๋ ์ฝํ ์ธ ์์ค๋ฅผ ์ ์ํ์ฌ ๊ณต๊ฒฉ ํ๋ฉด์ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค.
- ์ถ๋ ฅ ์ธ์ฝ๋ฉ: ํ์ด์ง์ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๊ธฐ ์ ์ ์ธ์ฝ๋ฉํ์ฌ ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ฅผ ์คํ ๊ฐ๋ฅํ ์ฝ๋๋ก ํด์ํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค. ์ธ์ฝ๋ฉ์ ํน์ ๋ฌธ์๋ฅผ ํด๋น HTML ์ํฐํฐ๋ก ๋ณํํ์ฌ ์คํฌ๋ฆฝํธ ์ฃผ์ ์ ๋ฐฉ์งํฉ๋๋ค.
- ์ ๊ธฐ์ ์ธ ๋ณด์ ๊ฐ์ฌ: ์ ๊ธฐ์ ์ธ ๋ณด์ ๊ฐ์ฌ ๋ฐ ์นจํฌ ํ ์คํธ๋ฅผ ์ํํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ฌ์ ์ธ ์ทจ์ฝ์ ์ ์๋ณํ๊ณ ํด๊ฒฐํฉ๋๋ค. ์ด๋ ์ฝ์ ์ ์ฌ์ ์ ํ์ ํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด์์ ๋ณด์ฅํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
2. ์ฌ์ดํธ ๊ฐ ์์ฒญ ์์กฐ(CSRF) ๊ณต๊ฒฉ
์ค๋ช
: CSRF ๊ณต๊ฒฉ์ ์น์ฌ์ดํธ๊ฐ ์ฌ์ฉ์ ๋ธ๋ผ์ฐ์ ์ ๋ํด ๊ฐ๋ ์ ๋ขฐ๋ฅผ ์
์ฉํฉ๋๋ค. ๊ณต๊ฒฉ์๋ ์ฌ์ฉ์๊ฐ ๋ชจ๋ฅด๋ ์ฌ์ด์ ๋๋ ๋์ ์์ด ์น์ฌ์ดํธ์์ ์์
์ ์ํํ๋๋ก ์์ผ ์ ์์ต๋๋ค. LocalStorage
์ SessionStorage
๋ CSRF์ ์ง์ ์ ์ผ๋ก ์ทจ์ฝํ์ง๋ ์์ง๋ง, CSRF ๊ณต๊ฒฉ์ ์ํด ์กฐ์๋ ์ ์๋ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉ๋ ๊ฒฝ์ฐ ๊ฐ์ ์ ์ผ๋ก ์ํฅ์ ๋ฐ์ ์ ์์ต๋๋ค.
์์: ํ ์ํ ์น์ฌ์ดํธ๊ฐ ์ฌ์ฉ์์ ๊ณ์ ์ค์ ์ LocalStorage
์ ์ ์ฅํ๋ค๊ณ ๊ฐ์ ํด ๋ด
์๋ค. ๊ณต๊ฒฉ์๋ ์ฌ์ฉ์์ ๊ณ์ ์ค์ ์ ๋ณ๊ฒฝํ๊ธฐ ์ํด ์ํ ์น์ฌ์ดํธ์ ์์ฒญ์ ์ ์ถํ๋ ์์์ด ํฌํจ๋ ์
์ฑ ์น์ฌ์ดํธ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ์ํ ์น์ฌ์ดํธ์ ๋ก๊ทธ์ธํ ์ํ์์ ์
์ฑ ์น์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธํ๋ฉด, ๊ณต๊ฒฉ์๋ ์ฌ์ฉ์์ ๊ธฐ์กด ์ธ์
์ ์
์ฉํ์ฌ ์ฌ์ฉ์๋ฅผ ๋์ ํ์ฌ ์์
์ ์ํํ ์ ์์ต๋๋ค.
์ํ ์กฐ์น:
- CSRF ํ ํฐ: CSRF ๊ณต๊ฒฉ์ผ๋ก๋ถํฐ ๋ณดํธํ๊ธฐ ์ํด CSRF ํ ํฐ์ ๊ตฌํํฉ๋๋ค. CSRF ํ ํฐ์ ์๋ฒ์์ ์์ฑ๋์ด ๊ฐ ์์ฒญ์ ํฌํจ๋๋ ๊ณ ์ ํ๊ณ ์์ธก ๋ถ๊ฐ๋ฅํ ๊ฐ์ ๋๋ค. ์๋ฒ๋ ๊ฐ ์์ฒญ์์ ํ ํฐ์ ํ์ธํ์ฌ ์์ฒญ์ด ํฉ๋ฒ์ ์ธ ์ฌ์ฉ์๋ก๋ถํฐ ์จ ๊ฒ์ธ์ง ํ์ธํฉ๋๋ค.
- SameSite ์ฟ ํค ์์ฑ: ์ฟ ํค์
SameSite
์์ฑ์ ์ฌ์ฉํ์ฌ ์ฌ์ดํธ ๊ฐ ์์ฒญ๊ณผ ํจ๊ป ์ฟ ํค๊ฐ ์ ์ก๋๋ ๋ฐฉ์์ ์ ์ดํฉ๋๋ค.SameSite
์์ฑ์Strict
๋๋Lax
๋ก ์ค์ ํ๋ฉด CSRF ๊ณต๊ฒฉ์ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. ์ด๋ ํนํ CSRF ํ ํฐ๊ณผ ํจ๊ป ์ฌ์ฉํ ๋ ํจ๊ณผ์ ์ ๋๋ค. - ์ด์ค ์ ์ถ ์ฟ ํค ํจํด: ์ด ํจํด์์๋ ์๋ฒ๊ฐ ์์์ ๊ฐ์ ํฌํจํ๋ ์ฟ ํค๋ฅผ ์ค์ ํ๊ณ , ํด๋ผ์ด์ธํธ์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๊ฐ ์ด ์ฟ ํค๋ฅผ ์ฝ์ด ์จ๊ฒจ์ง ์์ ํ๋๋ก ์๋ฒ์ ๋ค์ ๋ณด๋ ๋๋ค. ์๋ฒ๋ ์ฟ ํค ๊ฐ๊ณผ ์์ ํ๋ ๊ฐ์ด ์ผ์นํ๋์ง ํ์ธํฉ๋๋ค.
3. ๋ฐ์ดํฐ ์ ์ฅ ํ๋ ๋ฐ ์ฑ๋ฅ
์ค๋ช
: LocalStorage
์ SessionStorage
๋ ๋ธ๋ผ์ฐ์ ์ ๋ฐ๋ผ ๋ค๋ฅธ ์ ์ฅ ํ๋๋ฅผ ๊ฐ์ง๋๋ค. ์ด ํ๋๋ฅผ ์ด๊ณผํ๋ฉด ๋ฐ์ดํฐ ์์ค์ด๋ ์๊ธฐ์น ์์ ๋์์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ํ ์น ์คํ ๋ฆฌ์ง์ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ฉด ์น ์ ํ๋ฆฌ์ผ์ด์
์ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
์์: ์ ์ธ๊ณ์ ์ผ๋ก ์ฌ์ฉ๋๋๋ก ์๋๋ ๋ณต์กํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์บ์ฑ์ ์ํด ๋ก์ปฌ ์คํ ๋ฆฌ์ง์ ํฌ๊ฒ ์์กดํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ์ ์ ์ฅ ์ฉ๋์ ๊ฐ์ง ์ฌ์ฉ์๊ฐ ์ฌ์ดํธ์ ์ ์ํ ๊ฒฝ์ฐ, ์ ์ฅ ํ๋์ ๋๋ฌํ๋ฉด ๋ถ์ผ์น์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ ์ฅ ํ๋๊ฐ ๋ฎ์ ๋ชจ๋ฐ์ผ ๋ธ๋ผ์ฐ์ ์ฌ์ฉ์๋ ๋ฐ์คํฌํฑ ๋ธ๋ผ์ฐ์ ์์ ์ํํ๊ฒ ์๋ํ๋ ๊ธฐ๋ฅ์ด ๊นจ์ง๋ ๊ฒ์ ๋ฐ๊ฒฌํ ์ ์์ต๋๋ค.
์ํ ์กฐ์น:
- ์คํ ๋ฆฌ์ง ์ฌ์ฉ๋ ๋ชจ๋ํฐ๋ง:
LocalStorage
์SessionStorage
์ ์ ์ฅ๋ ๋ฐ์ดํฐ ์์ ์ ๊ธฐ์ ์ผ๋ก ๋ชจ๋ํฐ๋งํฉ๋๋ค. ์ ์ฅ ํ๋์ ๊ทผ์ ํ ๋ ์ฌ์ฉ์์๊ฒ ๊ฒฝ๊ณ ํ๋ ๋ฉ์ปค๋์ฆ์ ๊ตฌํํฉ๋๋ค. - ๋ฐ์ดํฐ ์ ์ฅ ์ต์ ํ: ์น ์คํ ๋ฆฌ์ง์๋ ํ์์ ์ธ ๋ฐ์ดํฐ๋ง ์ ์ฅํ๊ณ ๋์ฉ๋ ์ด์ง ํ์ผ ์ ์ฅ์ ํผํฉ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ ์ ์์ถํ์ฌ ์ ์ฅ ๊ณต๊ฐ์ ์ค์ ๋๋ค.
- ๋์ฒด ์คํ ๋ฆฌ์ง ์ต์ ๊ณ ๋ ค: ๋ ํฐ ๋ฐ์ดํฐ์ ์ ๊ฒฝ์ฐ IndexedDB๋ ์๋ฒ ์ธก ์คํ ๋ฆฌ์ง์ ๊ฐ์ ๋์ฒด ์คํ ๋ฆฌ์ง ์ต์ ์ ๊ณ ๋ คํฉ๋๋ค. IndexedDB๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๋ ๊ฐ๋ ฅํ๊ณ ํ์ฅ ๊ฐ๋ฅํ ์คํ ๋ฆฌ์ง ์๋ฃจ์ ์ ์ ๊ณตํฉ๋๋ค.
4. ์ ๋ณด ๋ ธ์ถ
์ค๋ช
: ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๊ฐ ์ ์ ํ ์ํธํ ์์ด LocalStorage
๋ SessionStorage
์ ์ ์ฅ๋๋ฉด, ์ฌ์ฉ์์ ์ฅ์น๊ฐ ์์๋๊ฑฐ๋ ๋ธ๋ผ์ฐ์ ์ ์คํ ๋ฆฌ์ง๊ฐ ์
์ฑ ์ํํธ์จ์ด์ ์ํด ์ ๊ทผ๋ ๊ฒฝ์ฐ ๋
ธ์ถ๋ ์ ์์ต๋๋ค.
์์: ์ ์ ์๊ฑฐ๋ ์น์ฌ์ดํธ๊ฐ ์ํธํ๋์ง ์์ ์ ์ฉ์นด๋ ์ ๋ณด๋ฅผ LocalStorage
์ ์ ์ฅํ๋ ๊ฒฝ์ฐ, ์ฌ์ฉ์ ์ปดํจํฐ์ ์ ๊ทผํ ๊ณต๊ฒฉ์๋ ์ด ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ํ์น ์ ์์ต๋๋ค.
์ํ ์กฐ์น:
- ๋ฏผ๊ฐํ ๋ฐ์ดํฐ ์ํธํ:
LocalStorage
๋SessionStorage
์ ์ ์ฅํ๊ธฐ ์ ์ ํญ์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ์ํธํํฉ๋๋ค. ๊ฐ๋ ฅํ ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๊ณ ์ํธํ ํค๋ฅผ ์์ ํ๊ฒ ๊ด๋ฆฌํฉ๋๋ค. - ๋งค์ฐ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ ์ ์ฅ ํํผ: ์ผ๋ฐ์ ์ธ ๊ท์น์ผ๋ก, ์ ์ฉ์นด๋ ๋ฒํธ, ๋น๋ฐ๋ฒํธ ๋๋ ์ฌํ ๋ณด์ฅ ๋ฒํธ์ ๊ฐ์ ๋งค์ฐ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ ์น ์คํ ๋ฆฌ์ง์ ์ ์ฅํ์ง ๋ง์ญ์์ค. ๋์ ์๋ฒ์ ๋ฐ์ดํฐ์ ๋ํ ์ฐธ์กฐ๋ฅผ ์ ์ฅํ๊ณ ํ์ํ ๋ ๊ฒ์ํฉ๋๋ค.
- ์์ ํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ดํ ๊ตฌํ: ๋ฐ์ดํฐ ์๋ช ์ฃผ๊ธฐ ์ ๋ฐ์ ๊ฑธ์ณ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๊ธฐ ์ํด ์์ ํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ดํ์ ๋ฐ๋ฆ ๋๋ค. ์ฌ๊ธฐ์๋ ๋ณด์ ํต์ ์ฑ๋(HTTPS) ์ฌ์ฉ, ์ ๊ทผ ์ ์ด ๊ตฌํ, ์ ๊ธฐ์ ์ธ ๋ณด์ ๊ดํ ๊ฐ์ฌ๊ฐ ํฌํจ๋ฉ๋๋ค.
์น ์คํ ๋ฆฌ์ง ๋ณด์์ ์ํ ๋ชจ๋ฒ ์ฌ๋ก
์น ์คํ ๋ฆฌ์ง์ ๊ด๋ จ๋ ๋ณด์ ์ํ์ ํจ๊ณผ์ ์ผ๋ก ์ํํ๋ ค๋ฉด ๋ค์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด์ญ์์ค:
1. ์ฌ์ฉ์ ์ ๋ ฅ ๊ฒ์ฆ ๋ฐ ์๋ํ์ด์ ์ด์
์ด๊ฒ์ ์น ๋ณด์์ ์ด์์ ๋๋ค. ์์, URL ๋๋ ๋ค๋ฅธ ์์ค์์ ์ฌ์ฉ์๋ก๋ถํฐ ๋ฐ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ ํญ์ ๊ฒ์ฆํ๊ณ ์ด๊ท (sanitize)ํด์ผ ํฉ๋๋ค. ์ด๋ ๊ณต๊ฒฉ์๊ฐ ์ ์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ์ฃผ์ ํ๊ฑฐ๋ ์๊ธฐ์น ์์ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
2. ์ฝํ ์ธ ๋ณด์ ์ ์ฑ (CSP) ๊ตฌํ
CSP๋ฅผ ์ฌ์ฉํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฆฌ์์ค๋ฅผ ๋ก๋ํ ์ ์๋ ์์ค๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค. ์ด๋ ์ฃผ์ ๋ ์คํฌ๋ฆฝํธ์ ์คํ์ ๋ฐฉ์งํ๊ณ XSS ๊ณต๊ฒฉ์ ์ํ์ ์ค์ด๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์ ๋ขฐํ ์ ์๋ ์ฝํ ์ธ ์์ค๋ง ํ์ฉํ๋๋ก CSP๋ฅผ ์ ์คํ๊ฒ ๊ตฌ์ฑํ์ญ์์ค.
3. ์ถ๋ ฅ ์ธ์ฝ๋ฉ ์ฌ์ฉ
ํ์ด์ง์ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๊ธฐ ์ ์ ์ธ์ฝ๋ฉํ์ฌ ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ฅผ ์คํ ๊ฐ๋ฅํ ์ฝ๋๋ก ํด์ํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค. ์ด๋ ๋ฐ์ดํฐ๊ฐ ์ฝ๋๊ฐ ์๋ ์ผ๋ฐ ํ ์คํธ๋ก ์ฒ๋ฆฌ๋๋๋ก ํ์ฌ XSS ๊ณต๊ฒฉ์ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
4. ๋ฏผ๊ฐํ ๋ฐ์ดํฐ ์ํธํ
์น ์คํ ๋ฆฌ์ง์ ์ ์ฅํ๊ธฐ ์ ์ ํญ์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ์ญ์์ค. ๊ฐ๋ ฅํ ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๊ณ ์ํธํ ํค๋ฅผ ์์ ํ๊ฒ ๊ด๋ฆฌํ์ญ์์ค. ์ํธํ ๋ฐ ๋ณตํธํ๋ฅผ ์ํด CryptoJS์ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ ๊ณ ๋ คํ์ญ์์ค.
5. ๋ณด์ ํต์ ์ฑ๋(HTTPS) ์ฌ์ฉ
์น์ฌ์ดํธ๊ฐ HTTPS๋ฅผ ์ฌ์ฉํ์ฌ ๋ธ๋ผ์ฐ์ ์ ์๋ฒ ๊ฐ์ ๋ชจ๋ ํต์ ์ ์ํธํํ๋๋ก ํ์ญ์์ค. ์ด๋ ๋์ฒญ ๋ฐ ๋ณ์กฐ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํฉ๋๋ค. HTTPS๋ ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๊ณ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด์์ ๋ณด์ฅํ๋ ๋ฐ ํ์์ ์ ๋๋ค.
6. CSRF ๋ณดํธ ๊ตฌํ
CSRF ํ ํฐ์ ๊ตฌํํ๊ฑฐ๋ ์ฟ ํค์ SameSite
์์ฑ์ ์ฌ์ฉํ์ฌ CSRF ๊ณต๊ฒฉ์ผ๋ก๋ถํฐ ๋ณดํธํ์ญ์์ค. ์ด๋ ๊ณต๊ฒฉ์๊ฐ ์ฌ์ฉ์๊ฐ ๋ชจ๋ฅด๋ ์ฌ์ด์ ๋๋ ๋์ ์์ด ์น์ฌ์ดํธ์์ ์์
์ ์ํํ๋๋ก ์์ด๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
7. ์ ๊ธฐ์ ์ธ ๋ณด์ ๊ดํ ๊ฐ์ฌ
์ ๊ธฐ์ ์ธ ๋ณด์ ๊ฐ์ฌ ๋ฐ ์นจํฌ ํ ์คํธ๋ฅผ ์ํํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ฌ์ ์ธ ์ทจ์ฝ์ ์ ์๋ณํ๊ณ ํด๊ฒฐํ์ญ์์ค. ์ด๋ ์ฝ์ ์ ์ฌ์ ์ ํ์ ํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด์์ ๋ณด์ฅํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
8. ์ธ์ ๊ด๋ฆฌ๋ฅผ ์ํด HttpOnly ์ฟ ํค ์ฌ์ฉ ๊ณ ๋ ค
์ธ์ ๊ด๋ฆฌ, ํนํ ์ธ์ฆ ํ ํฐ์ ๊ฒฝ์ฐ LocalStorage๋ SessionStorage ๋์ HttpOnly ์ฟ ํค ์ฌ์ฉ์ ๊ณ ๋ คํ์ญ์์ค. HttpOnly ์ฟ ํค๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํตํด ์ ๊ทผํ ์ ์์ผ๋ฏ๋ก XSS ๊ณต๊ฒฉ์ ๋ํ ๋ ๋์ ๋ณดํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์น ์คํ ๋ฆฌ์ง์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ ์ฅํด์ผ ํ๋ ๊ฒฝ์ฐ, ์ ์ ํ๊ฒ ์ํธํํ๊ณ ๋ ์งง์ ๋ง๋ฃ ์๊ฐ์ ๊ณ ๋ คํ์ญ์์ค. ๋ฆฌํ๋ ์ ํ ํฐ์ localStorage์, ์ก์ธ์ค ํ ํฐ์ SessionStorage์ ์ ์ฅํ ์ ์์ต๋๋ค. ์ก์ธ์ค ํ ํฐ์ ์๋ช ์ด ์งง์ ์ ์์ต๋๋ค. ์ก์ธ์ค ํ ํฐ์ด ๋ง๋ฃ๋๋ฉด ๋ฆฌํ๋ ์ ํ ํฐ์ ์ฌ์ฉํ์ฌ ์ ์ก์ธ์ค ํ ํฐ์ ์ป์ ์ ์์ต๋๋ค. ์ด ์ ๋ต์ ์ ์ถ ์ ์ํฅ์ ์ต์ํํฉ๋๋ค.
9. ์ฌ์ฉ์์๊ฒ ๋ณด์ ๋ชจ๋ฒ ์ฌ๋ก ๊ต์ก
์ฌ์ฉ์์๊ฒ ๊ฐ๋ ฅํ ๋น๋ฐ๋ฒํธ ์ฌ์ฉ, ์์ฌ์ค๋ฌ์ด ๋งํฌ ํผํ๊ธฐ, ์ํํธ์จ์ด๋ฅผ ์ต์ ์ํ๋ก ์ ์งํ๋ ๊ฒ์ ์ค์์ฑ์ ๋ํด ์๋ฆฌ์ญ์์ค. ๊ต์ก๋ฐ์ ์ฌ์ฉ์๋ ํผ์ฑ ์๋ ๋ฐ ๊ธฐํ ๋ณด์ ์ํ์ ์ธ์ํ๊ณ ํผํ ๊ฐ๋ฅ์ฑ์ด ๋ ๋์ต๋๋ค. ์ฌ์ฉ์๊ฐ ๊ณต์ฉ ์ปดํจํฐ ๋ฐ ๋ณด์๋์ง ์์ ๋คํธ์ํฌ ์ฌ์ฉ๊ณผ ๊ด๋ จ๋ ์ํ์ ์ดํดํ๋๋ก ํ์ญ์์ค.
LocalStorage ๋ SessionStorage: ๋น๊ต ๋ณด์ ๋ถ์
LocalStorage
์ SessionStorage
๋ ๋ชจ๋ ์ ์ฌํ ๋ณด์ ์ํ์ ์ทจ์ฝํ์ง๋ง, ๋ณด์ ์ํฅ์๋ ๋ช ๊ฐ์ง ์ฃผ์ ์ฐจ์ด์ ์ด ์์ต๋๋ค:
- ์๋ช
:
SessionStorage
๋ ๋ธ๋ผ์ฐ์ ์ธ์ ์ด ์ข ๋ฃ๋ ๋ ๋ฐ์ดํฐ๊ฐ ์๋์ผ๋ก ์ง์์ง๊ธฐ ๋๋ฌธ์ ์ฝ๊ฐ ๋ ๋์ ๋ณด์ ํ๋กํ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ ๊ณต๊ฒฉ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ํ์น ์ ์๋ ๊ธฐํ์ ์ฐฝ์ ์ค์ฌ์ค๋๋ค. ๋ฐ๋ฉด์LocalStorage
๋ ๋ฐ์ดํฐ๋ฅผ ๋ฌด๊ธฐํ์ผ๋ก ์ ์งํ๋ฏ๋ก ๊ณต๊ฒฉ์์๊ฒ ๋ ๋งค๋ ฅ์ ์ธ ๋์์ด ๋ฉ๋๋ค. - ์ฌ์ฉ ์ฌ๋ก: ์ผ๋ฐ์ ์ผ๋ก
LocalStorage
์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ ์ ํ(์: ์ฌ์ฉ์ ๊ธฐ๋ณธ ์ค์ )์SessionStorage
์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ(์: ์ธ์ ํ ํฐ)๋ณด๋ค ๋ ๋ฏผ๊ฐํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ํญ์ ๊ทธ๋ฐ ๊ฒ์ ์๋๋ฉฐ ๊ฐ ์คํ ๋ฆฌ์ง ์ ํ์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ์ ๋ฏผ๊ฐ๋๋ฅผ ํ๊ฐํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. - ๊ณต๊ฒฉ ๋ฒกํฐ:
LocalStorage
์SessionStorage
์ ๊ณต๊ฒฉ ๋ฒกํฐ๋ ์ ์ฌํ์ง๋ง, ๋ฐ์ดํฐ์ ์๊ตฌ์ ์ธ ํน์ฑ์ผ๋ก ์ธํด ์ฑ๊ณต์ ์ธ ๊ณต๊ฒฉ์ ์ํฅ์LocalStorage
์ ๊ฒฝ์ฐ ๋ ํด ์ ์์ต๋๋ค.
๊ถ๊ทน์ ์ผ๋ก LocalStorage
์ SessionStorage
์ฌ์ด์ ์ ํ์ ์ ํ๋ฆฌ์ผ์ด์
์ ํน์ ์๊ตฌ ์ฌํญ๊ณผ ์ ์ฅ๋๋ ๋ฐ์ดํฐ์ ๋ฏผ๊ฐ๋์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ์ด๋ค ์ ํ์ ์คํ ๋ฆฌ์ง๋ฅผ ์ ํํ๋ ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๊ธฐ ์ํด ์ ์ ํ ๋ณด์ ์กฐ์น๋ฅผ ๊ตฌํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
๊ฒฐ๋ก
LocalStorage
์ SessionStorage
๋ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ์ ์ฉํ ํด๋ผ์ด์ธํธ ์ธก ์คํ ๋ฆฌ์ง ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ฌ๋ ์น ์คํ ๋ฆฌ์ง์ ๊ด๋ จ๋ ๋ณด์ ์ํ์ ์ธ์งํ๊ณ ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๊ธฐ ์ํ ์ ์ ํ ๋ณด์ ์กฐ์น๋ฅผ ๊ตฌํํ๋ ๊ฒ์ด ํ์์ ์
๋๋ค. ์ด ๊ธฐ์ฌ์์ ์ค๋ช
ํ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด๋ฉด XSS ๊ณต๊ฒฉ, CSRF ๊ณต๊ฒฉ ๋ฐ ๊ธฐํ ๋ณด์ ์ํ์ ์ํ์ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค. ์น ๋ณด์์ ์ง์์ ์ธ ๊ณผ์ ์ด๋ฉฐ ์ต์ ์ํ ๋ฐ ์ทจ์ฝ์ ์ ๋ํ ์ ๋ณด๋ฅผ ๊ณ์ ํ์
ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๊ธ๋ก๋ฒ ๊ณ ๊ฐ์ ๋์์ผ๋ก ์ค๊ณ๋ ์น ์ฑ์ ์ด๋ฌํ ์กฐ์น๋ฅผ ๊ตฌํํ๋ ๊ฒ์ ๊ณ ๋ คํด ๋ณด์ธ์. ์๋ฅผ ๋ค์ด, localStorage์ ์ ์ฅ๋ ์ธ์ด ๋ฐ ์ง์ญ ์ค์ ์ ๋ํ ์ฌ์ฉ์ ๊ธฐ๋ณธ ์ค์ ๊ณผ, ๋ค๋ฅธ ์ง์ญ์ ํ์งํ๋ ์ ์์๊ฑฐ๋ ๊ฒฝํ์ ์ํด sessionStorage์ ์ ์ฅ๋ ์์ ์ผํ ์นดํธ ์ ๋ณด๋ฅผ ์๊ฐํด ๋ณผ ์ ์์ต๋๋ค. ๋ณด์์ ์ฐ์ ์ํจ์ผ๋ก์จ ๊ธฐ๋ฅ์ ์ด๋ฉด์๋ ์์ ํ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.