
์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋์์ผ๋ก ํ๋ ๊ณต๊ฒฉ XSS์ CSRF
XSS ๊ณต๊ฒฉ์ Cross-Site Scripting์ด ์ฝ์๋ก ์ฌ์ดํธ์ ์ ์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ์ ํด ๊ณต๊ฒฉ์ ํ๋ ํ์์ด๋ค.

์ด๋ ๊ฒ ๊ณต๊ฒฉ์ ํ๊ฒ ๋๋ฉด ์นจ์ ์๋ ์ฌ์ฉ์์๊ฒ์ ์ป์ ์ ๋ณด๋ก ์ฌ์ฉ์๋ก ๊ฐ์ฅํด ๋์ฉ์ ํ ์ ์๋ค๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
CSRF ๊ณต๊ฒฉ์ Cross-Site Request Forgery์ ์ฝ์๋ก ์ฌ์ดํธ ๊ฐ ์์ฒญ์ ์์กฐํ๋ ๊ณต๊ฒฉ์ด๋ค.

๋ง์ฝ ์ด ์น ์ฌ์ดํธ๊ฐ ์ํ ์น ์ฌ์ดํธ์์ ๋์ ์ก๊ธํ๋ ๊ณผ์ ์ด๋ผ๊ณ ๊ฐ์ ํ๋ฉด ์ฌ์ฉ์๋ ์นจ์ ์๊ฐ ์ฌ์ด๋์ ๋งํฌ๋ฅผ ๋๋ฌ์ ์นจ์ ์ ์น ์ฌ์ดํธ๋ก ๋ค์ด๊ฐ์ ์ฌ์ฉ์ ๋ณธ์ธ๋ ๋ชจ๋ฅด๊ฒ ๋์ ์ก๊ธํ๊ฒ ๋๋ค.
์ด๋, ์ํ ์น ์ฌ์ดํธ๋ ํด๋น ์์ฒญ์ ์นจ์ ์๊ฐ ์๋ ์ฌ์ฉ์๊ฐ ๋ณด๋ธ ์์ฒญ์ผ๋ก ํ๋จํ๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด JWT Token์ ์ด๋์ ์ ์ฅํ๋๊ฒ ์ข์๊น?
1) Local Storage
๐ ์ฅ์ : CSRF ๊ณต๊ฒฉ์ ์์ ํจ
๐ ๋จ์ : XSS ๊ณต๊ฒฉ์ ์ทจ์ฝํจ
2) Cookie
๐ ์ฅ์ : XSS ๊ณต๊ฒฉ์ด Local Storage์ ๋นํด ๋น๊ต์ ์์ ํจ
httpOnly ์ต์
์ ์ฌ์ฉํ๋ฉด JS๋ก ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ Local Storage ๋ณด๋ค๋ XSS ๊ณต๊ฒฉ์ด ์ฝ์ง ์๋ค.๐ ๋จ์ : CSRF ๊ณต๊ฒฉ์ ์ทจ์ฝํจ
Cookie์ ์ ์ฅ ํ XSS httpOnly ์ต์
์ ์ฌ์ฉํด XSS ๊ณต๊ฒฉ ๋ฐฉ์ง, sameSite=strict๋ฅผ ์ฌ์ฉํด CSRF ๊ณต๊ฒฉ ๋ฐฉ์ง
Refresh Token์ ์ฌ์ฉํด ์ฟ ํค์ ์ ์ฅ์ ํ๊ณ , Access-Token์ ์๋ก๊ณ ์นจ ์ Refresh Token์ Request์ ๋ด์์ ์ฌ๋ฐ๊ธ ํ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ
CSRF ๊ณต๊ฒฉ์ ํ ๋ ์นจ์
์๊ฐ Refresh Token์ ์์๋ ์๋ก ๋ฐ์์จ Access Token์ ํ์ธ ๋ถ๊ฐ
XSS ๊ณต๊ฒฉ์ ํ ๋ httpOnly ์ต์
์ ํตํด JS๋ก ์ฟ ํค์ ์ ๊ทผ์ ๋ง์