๐ ์ฌ์ฉ์ ์ธ์ฆ ๋ฐฉ์์ ๋ํ์ฌ
1. HTTP ์ฟ ํค
- ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์ฌ์ฉ์์ ์ปดํจํฐ์ ์ ์ฅ๋๋ ์์ ๊ธฐ๋ก ์ ๋ณด ํ์ผ
- ์น ์ฌ์ดํธ๋ ์ ์ฅ๋ ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ์ปดํจํฐ์ ๋จ๊ฒจ์ ํ์ํ ๋๋ง๋ค ์ฌ์ฌ์ฉํ๋ค.
- ๋ช ์๋ ์ง์ ์๊ฐ์ด ์ง๋๋ฉด ๋ฌดํจ๊ฐ ๋๋ค.
- ์ง์ ์๊ฐ์ ์ ๋ฌํ์ง ์์ผ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ๋ซํ๊ธฐ ์ ๊น์ง ๊ณ์ ์ ํจํ๋ค.
- ๊ตฌ์กฐ : {์ด๋ฆ, ๊ฐ, 0๊ฐ ์ด์์ ์์ฑ} (์์ฑ - ๋ง๋ฃ ๊ธฐ๊ฐ, ๋๋ฉ์ธ, ํ๋๊ทธ)
- ์ผ๋ฐ์ ์ผ๋ก ์น ์๋ฒ์ ์ํด ์ค์ ๋์ง๋ง ์คํฌ๋ฆฝํธ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ์ ์ํด ์ค์ ๊ฐ๋ฅํ๋ค.
- Set-Cookie HTTP ํค๋๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ ๋๋ฉฐ ์น ์๋ฒ์ HTTP ์๋ต์ ํตํด ์ก์ ๋๋ค.
2. Session
- ์น ์ฌ์ดํธ์ ์ฌ๋ฌ ํ์ด์ง์ ๊ฑธ์ณ ์ฌ์ฉ๋๋ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ
- ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ์ ์๋ฒ์์ ์ฐ๊ฒฐ์ ๋๋ด๋ ์์ ๊น์ง๋ฅผ ์ธ์ ์ด๋ผ๊ณ ํ๋ค.
- ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ , ์ธ์ ์ ํค๊ฐ๋ง์ ํด๋ผ์ด์ธํธ ์ธก์ ๋จ๊ฒจ๋๋ค.
- ๋ธ๋ผ์ฐ์ ๋ ํ์ํ ๋๋ง๋ค ํค๊ฐ์ ์ฌ์ฉํด์ ์๋ฒ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ค.
- ๋ณด์์ ์ทจ์ฝํ ์ฟ ํค๋ฅผ ๋ณด์ํด์ฃผ๋ ์ญํ ์ ํ๊ณ ์๋ค.
- UUID ์์ฑ ๋ฑ์ผ๋ก ํค๊ฐ์ ๋๋ค์ผ๋ก ์์ฑํด์ ์ธ์ ์ ์ฅ์์ ์ ์ฅ ํ ์ฟ ํค์ ๋ด์ ์๋ต์ ๋ณด๋ด๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ ์ ์๋ค.
3. JWT
- ์ ๋ณด๋ฅผ ์์ ํ๊ฒ ์ ์กํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ์ ์ํ๋ ์๋ช ๋ ํ ํฐ์ผ๋ก์์ JSON ๊ฐ์ฒด
- ์ผ๋ฐ์ ์ผ๋ก ์๋ฒ์ ๋น๊ณต๊ฐ ํค์ ์ํด ์๋ช ๊ฐ๋ฅํ๊ณ , ์๋ฒ๋ ํด๋น ํ ํฐ์ด ์ ํจํ์ง ํ์ธํ ์ ์๋ค.
- ๊ตฌ์กฐ : {ํค๋, ํ์ด๋ก๋, ์๋ช } - ์ (.)์ ์ฌ์ฉํด ์ฐ๊ฒฐ๋๋ค.
- ํ์ด๋ก๋๋ ์ผ๋ จ์ ๋ฑ๋ก๋ ํด๋ ์ ๋๋ ์ฌ์ฉ์ ์ง์ ํด๋ ์์ ํฌํจํ๋ค.
- ํค๋, ํ์ด๋ก๋, ์๋ช ์ ๋ฐ์ดํฐ์ ์ํฌ๋ฆฟ ํค๋ ํ ํฐ์ ์์ฑํ๋ค.
- ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธ ์ JWT๊ฐ ๋ฐํ๋๋ฉฐ, ๋ก์ปฌ์ด๋ ์ธ์ ์ ์ฅ์ ๋๋ ์ฟ ํค์ ์ ์ฅ๋์ด์ผ ํ๋ค.
- ํด๋ผ์ด์ธํธ ์ธก์์ ๋ณดํธ๋ ๋ฃจํธ๋ ์์์ ์ ๊ทผํ๊ณ ์ถ์ ๊ฒฝ์ฐ ์ผ๋ฐ์ ์ผ๋ก Bearer ์คํค๋ง๋ฅผ ์ฌ์ฉํ๋ฉฐ Authorization ํค๋ ์์ JWT๋ฅผ ๋ณด๋ด์ผ ํ๋ค.
4. CSRF (์ฌ์ดํธ ๊ฐ ์์ฒญ ์์กฐ)
- ์ฌ์ฉ์๊ฐ ์์ ์ ์์ง์๋ ๋ฌด๊ดํ๊ฒ ๊ณต๊ฒฉ์๊ฐ ์๋ํ ํ์(์์ , ์ญ์ , ๋ฑ๋ก ๋ฑ)๋ฅผ ์๋ฒ์ ์์ฒญํ๊ฒ ํ๋ ๊ณต๊ฒฉ์ ๋งํ๋ค.
- ํน์ ์น ์๋น์ค๊ฐ ์ฌ์ฉ์์ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์ ์ฉํ๋ ์ํ๋ฅผ ๋ ธ๋ฆฐ ๊ฒ์ผ๋ก, ์ฌ์ฉ์๊ฐ ์น ์๋น์ค์ ๋ก๊ทธ์ธํ ์ํ์์ CSRF ๊ณต๊ฒฉ ์ฝ๋๊ฐ ์ฝ์ ๋ ํ์ด์ง๋ฅผ ์ด๋ฉด, ํด๋น ๊ณต๊ฒฉ ๋ช ๋ น์ ์๋ฒ๊ฐ ์ ์ฉํ๊ฒ ๋์ด ๊ณต๊ฒฉ์ ๋ ธ์ถ๋๋ค.
- ์๋ฒ๊ฐ ์ฟ ํค๋ฅผ ํตํ ๋จ์ํ ์ฌ์ฉ์ ํ์ธ ๊ณผ์ ๋ง ๊ฑฐ์น๋ค๋ฉด ๊ณต๊ฒฉ ํผํด ์ํ์ด ์๋ค.
5. XSS (์ฌ์ดํธ ๊ฐ ์คํฌ๋ฆฝํ )
- ์น ์ฌ์ดํธ ๊ด๋ฆฌ์๊ฐ ์๋ ์ฌ๋์ด ์น ํ์ด์ง์ ์ ์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ์ ํ ์ ์๋ ์ทจ์ฝ์ ์ด๋ค.
- ์ฃผ๋ก ์น ์๋น์ค์ ๊ฒ์ํ ๋ฑ์ ์ ์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ๊ฒ์ํ๋ ํํ๋ก ๊ณต๊ฒฉ๋๋ค.
- ์น ์ดํ๋ฆฌ์ผ์ด์ ์ด ์ฌ์ฉ์๋ก๋ถํฐ ์ ๋ ฅ ๋ฐ์ ๊ฐ์ ์ ๋๋ก ๊ฒ์ฌํ์ง ์๊ณ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋ํ๋๋ค.
- ํด์ปค๊ฐ ์ฌ์ฉ์์ ์ ๋ณด(์ฟ ํค, ์ธ์ ๋ฑ)๋ฅผ ํ์ทจํ๊ฑฐ๋, ์๋์ผ๋ก ๋น์ ์์ ์ธ ๊ธฐ๋ฅ์ ์ํํ ์ ์๊ฒ ํ๋ค.
6. CORS (๊ต์ฐจ ์ถ์ฒ ์์ ๊ณต์ )
- ํ ์ถ์ฒ์์ ์คํ ์ค์ธ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ด ๋ค๋ฅธ ์ถ์ฒ์ ๋ณดํธ๋ ์์์ ์ ๊ทผํ ์ ์๋ ๊ถํ์ ๋ถ์ฌํ๋๋ก ๋ธ๋ผ์ฐ์ ์ ์๋ ค์ฃผ๋ ์ ์ฑ
- ๋ธ๋ผ์ฐ์ ์ ์๋ฒ ๊ฐ์ ์์ ํ ๊ต์ฐจ ์ถ์ฒ ์์ฒญ ๋ฐ ๋ฐ์ดํฐ ์ ์ก์ ์ง์ํ๋ค.
- CORS๋ฅผ ํ์ฑํํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ๋ธ๋ผ์ฐ์ ๋ ๋ณด์ ์์ ์ด์ ๋ก ์คํฌ๋ฆฝํธ์์ ์์ํ ๊ต์ฐจ ์ถ์ฒ HTTP ์์ฒญ์ ์ ํํ๋ค. (๋์ผ ์ถ์ฒ ์ ์ฑ )
7. Redis
- ํค-๊ฐ ๊ตฌ์กฐ์ ๋น์ ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํ ์คํ ์์ค ๊ธฐ๋ฐ์ ๋น๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ
- ๋ค์ํ ์๋ฃ ๊ตฌ์กฐ์ ๊ฐ์ ๊ฐ์ง ์ ์๋ค.
- ์๋ฒ์ ์ฃผ ๋ฉ๋ชจ๋ฆฌ์ ์์ฃผํ๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ๋น ๋ฅด๋ค.
- ์บ์ฑ, ์ธ์ ๊ด๋ฆฌ, ์ค์๊ฐ ์์ํ, ๋๊ธฐ์ด, ์ฑํ ๋ฐ ๋ฉ์์ง ๋ฑ์ ์ฌ์ฉํ ์ ์๋ค.
'Backend' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Spring Security (0) | 2023.08.07 |
---|---|
@MappedSuperclass (0) | 2023.06.30 |
์น์์ผ๊ณผ ์๋ฒ์ผํธ (0) | 2023.05.30 |
๋๊ธ