์๋ฒ๊ฐ ์ฌ์ฉ์์ ๋ก๊ทธ์ธ ์ํ๋ฅผ ์ธ์ ๊ฐ์ฒด๋ก ์ ์ฅํ๊ณ , ํด๋ผ์ด์ธํธ๋ ์ธ์ ID๋ฅผ ์ฟ ํค์ ๋ด์ ์์ฒญํ ๋๋ง๋ค ์๋ฒ๋ก ์ ์กํ๋ ๋ฐฉ์์ ๋๋ค.
์ธ์ฆ Flow ๐
์ฅ์ ๐
๋ณด์ ๊ณ ๋ ค์ฌํญ โ
์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธํ๋ฉด ์๋ฒ๋ ์ธ์ฆ ์ ๋ณด๋ฅผ ๋ด์ JWT( Json Web Token ) ๋ฑ์ ํ ํฐ์ ์์ฑํ์ฌ ํด๋ผ์ด์ธํธ์ ์ ๋ฌํ๊ณ , ํด๋ผ์ด์ธํธ๋ ์ดํ ์์ฒญ๋ง๋ค ํด๋น ํ ํฐ์ HTTP ํค๋์ ๋ด์ ์ ์กํ๋ค.
์ธ์ฆ Flow ๐
์ฅ์ ๐
๋ณด์ ๊ณ ๋ ค์ฌํญ โ
์ฆ, ์๋ฒ๋ ํด๋น ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธํ๋์ง๋ฅผ ๊ธฐ์ตํ์ง ์๊ณ , ์์ฒญ ํ๋ํ๋๊ฐ ์ค์ค๋ก ์ธ์ฆ ์ ๋ณด๋ฅผ ์ฆ๋ช ํ๋ค.
| ๊ตฌ๋ถ | ์ธ์ ๊ธฐ๋ฐ ์ธ์ฆ | ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ |
|---|---|---|
| ์ํ๊ด๋ฆฌ | ์ํ ์ ์ฅ ( ์๋ฒ ๋ฉ๋ชจ๋ฆฌ / DB / Redis ๋ฑ ) | ๋ฌด์ํ (Stateless) |
| ํ์ฅ์ฑ | ์๋ฒ ํ์ฅ ์ด๋ ค์ | ์๋ฒ ํ์ฅ ์ฉ์ด |
| ์ ์ฅ์์น | ์ธ์ ID: ์ฟ ํค | ํ ํฐ: ๋ฉ๋ชจ๋ฆฌ / HttpOnly ์ฟ ํค / ๋ก์ปฌ์คํ ๋ฆฌ์ง (์ ํ์ ๋ฐ๋ผ ๋ณด์ ํน์ฑ ๋ฌ๋ผ์ง) |
| ์ธ์ฆ์ ๋ณด ์ ์ง | ์๋ฒ์ ์ ์ง | ํ ํฐ ์์ฒด์ ๋ดํฌ |
| CSRF ์ทจ์ฝ์ฑ | ์กด์ฌ (์ฟ ํค ์ฌ์ฉ) | Authorization ํค๋ ์ฌ์ฉ ์ ์ํฅ ์ ์ (์ฟ ํค ๊ธฐ๋ฐ ์ ์ฅ ์ ์ฃผ์ ํ์) |
| XSS ์ทจ์ฝ์ฑ | ์๋์ ์ผ๋ก ์ ์ | ์ ์ฅ ๋ฐฉ์์ ๋ฐ๋ผ ์ทจ์ฝ |
| ๋ก๊ทธ์์ ์ฒ๋ฆฌ | ์ธ์ ์ญ์ | ์ด๋ ต๋ค (๋ธ๋๋ฆฌ์คํธ ํ์) |
| ํญ๋ชฉ | ์ธ์ ๊ธฐ๋ฐ ์ธ์ฆ | ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ |
|---|---|---|
| ์ธ์ ํ์ทจ ๋์ | HTTPS + Secure ์ฟ ํค + SameSite ์ค์ | HTTPS + ์งง์ ํ ํฐ ์ ํจ๊ธฐ๊ฐ + Refresh Token ์ฌ์ฉ |
| CSRF ๋ฐฉ์ง | CSRF ํ ํฐ + SameSite ์ฟ ํค | ํ ํฐ์ ์ฟ ํค์ ์ ์ฅํ์ง ์์ผ๋ฉด ์ํฅ ์ ์ |
| XSS ๋ฐฉ์ง | ์ฟ ํค์ httpOnly ์ค์ | ๋ก์ปฌ์คํ ๋ฆฌ์ง ์ฌ์ฉ ์ XSS ๋ฐฉ์ด ๊ฐํ ํ์ |
| ๋ก๊ทธ์์ ์ฒ๋ฆฌ | ์ธ์ ๋ฌดํจํ | ํ ํฐ ๋ธ๋๋ฆฌ์คํธ ๋๋ ๋ง๋ฃ ๋๊ธฐ |
์ธ์ ๊ธฐ๋ฐ๊ณผ ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ์ ๊ฐ๊ฐ์ ์ฅ๋จ์ ์ด ์์ผ๋ฉฐ, ์ฌ์ฉํ๋ ํ๊ฒฝ๊ณผ ์๋น์ค ๊ตฌ์กฐ์ ๋ฐ๋ผ ์ ์ ํ ๋ฐฉ์์ ์ ํํ๋ ๊ฒ์ด ์ค์ํ๋ค.
๋ฌด์๋ณด๋ค๋ ๋ณด์์ ๋ํ ๊ณ ๋ ค ์์ด ์ธ์ฆ ๋ฐฉ์์ ์ ํํ๋ ๊ฒ์ ์ข์ง ๋ชปํ ์ ํ์ด๋ฉฐ, ๊ฐ ๋ฐฉ์์ ๋ง๋ ์ ์ ํ ๋ณด์ ๋์ฑ ์ ์ค๋ ์ตํ ๊ฒ์ ํ ๋๋ก ์ค๊ณํ๋๋ก ํ์ ๐ฏ