์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- spring data jpa
- ์ ๋ค๋ฆญ์ค
- HTML
- ๊ฑฐ๋ญ์ ๊ณฑ
- fibonacci
- ๋ฌธ์์ด๋ค์ง๊ธฐ
- FilterChain
- java
- Spring Security
- ์ธํ ๋ฆฌ์ ์ด
- ๊ทธ๋ฆฌ๋
- ๊ณ์ฐ๊ธฐ๋ง๋ค๊ธฐ
- ์๋ฐ
- ๋ฐฑ์๋
- ์๊ณ ๋ฆฌ์ฆ
- ์๋ฃ๊ตฌ์กฐ
- ๋ถํธ์บ ํ
- CSS
- ๋ฐฑ์ค์๊ณ ๋ฆฌ์ฆ
- ๊นํ๋ธ
- Spring Data JDBC
- ํ๊ณ
- ์คํ๋ง
- testing
- ํ์ดํ๋ก๊ทธ๋๋ฐ
- ์ปฌ๋ ์ ํ๋ ์์ํฌ
- ์ฒซ๊ธ์๋๋ฌธ์
- Publishing
- CLI๋ช ๋ น์ด
- ๋ฐ์ผ๋ฆฌ์ฝ๋ฉ
- Today
- Total
๋์ ๋ชจ์
061 | ์ธ์ฆ๋ณด์ ๊ธฐ์ด ๋ณธ๋ฌธ
๐ HTTPS(Hyper Text Transfer Protocal Secure Socket layer)
HTTPS๋ ๊ธฐ์กด HTTP์์ ๋ณด์Secure์ด ๊ฐํ๋ ๊ฒ์ผ๋ก, HTTPS๋ HTTP์์ฒญ์ SSL ๋๋ TLS๋ผ๋ ์๊ณ ๋ฆฌ์ฆ์ ํตํด ์ํธํ ํ์ฌ ์ ์กํ๋ ํ๋กํ ์ฝ์ด๋ค.
HTTPS๋ ๋น๋์นญ ์ํธํ ํค๋ฅผ ์ฌ์ฉํ๋ค. ์ํธํ ํ ๋ ์ฌ์ฉ๋ ํค์ ๋ณตํธํ ํ ๋ ์ฌ์ฉ๋ ํค๊ฐ ์๋ก ๋ฌ๋ผ ๋น๋์นญ์ด๋ผ๊ณ ํ๋ค.
HTTPS๋ 2๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ์ํธํ๋ฅผ ์งํํ๋ค.
- ์ํธํ
- ์ธ์ฆ์
๐งฉ ์ํธํ
- HTTPS๋ ๋์นญํค์ ๋น๋์นญํค๋ฅผ ๋ชจ๋ ์ฌ์ฉํ๋ค. ๋น๋์นญํค๋ฅผ ์ด์ฉํ์ฌ ๋์นญํค๋ฅผ ์ฃผ๊ณ ๋ฐ์ ํ ์ฃผ๊ณ ๋ฐ์ ๋์นญํค๋ก ์ํธํ๋ฅผ ํ๋ค. ๋น๋์นญ ํค๋ 2๊ฐ์ง์ ํค๋ฅผ ๊ฐ๊ณ ์๋ค.
- ๋น๋ฐํค(private Key): ๋๋ง ๊ฐ๊ณ ์์
- ๊ณต๊ฐํค(public key): ๊ณต๊ฐ์ ์ธ ํค
- ๊ณต๊ฐํ ํค, ๋๋ง ๊ฐ์ง ํค๋ฅผ ๋๋์ด ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ์๋ฒ๊ฐ ๋ถํน์ ๋ค์์ธ ํด๋ผ์ด์ธํธ์๊ฒ ์ํธํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ์ ์๋ ์ฅ์ ์ด ์์ง๋ง, ๋ถํน์ ๋ค์์ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ์ค ์ 3์๊ฐ ์ ๋ณด๋ฅผ ํ์ทจํ๋๋ผ๋ ์๋ฒ๋ง ๊ฐ์ง๊ณ ์๋ ๋น๋ฐํค๊ฐ ์์ด์ผ๋ง ๊ณต๊ฐํค๋ก ์ํธํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณตํธํ ํ ์ ์๋ค.
- ๋น๋ฐํค ์ํธํ โ ๊ณต๊ฐํค ๋ณตํธํ || ๊ณต๊ฐํค ์ํธํ โ ๋น๋ฐํค ๋ณตํธํ๋ก ๋น๋ฐํค์ ๊ณต๊ฐํค๋ ์๋ก ์ํธํ์ ์ํธํ์ ๋ํ ๋ณตํธํ๋ฅผ ์ํํ ์ ์๋ค.
- private key์ public key๋ ํ ์์ด๋ค. ๋๊ตฌ๋ ๊ฐ์ง ์ ์๋ public key ์์ ์๋ private key๋ก ์ํธํ๋ ์๋ฒ์์ ๋ฐ์ ๋ฐ์ดํฐ ๋ณตํธํ๊ฐ ๊ฐ๋ฅํ๋ฉฐ, private key ์์ ์ (์๋ฒ)๋ public key๋ก ์ํธํํ ๋ฐ์ดํฐ ๋ณตํธํ๊ฐ ๊ฐ๋ฅํ๋ค. public key๊ฐ ๋๊ตฌ๋ ๊ฐ์ง๊ณ ์์ ์ ์์ง๋ง ์ฌ์ฉํ๋ ์ด์ ๋ ๊ณต๊ฐํค๊ฐ ๋ฐ์ดํฐ ์ ๊ณต์์ ์ ์์ ๋ณด์ฅํด ์ฃผ๊ธฐ ๋๋ฌธ์ด๋ค.
๐งฉ ์ธ์ฆ์
- ์๋ฒ๋ฅผ ๋ณด์ฆํ ์ ์๋ Certificate Authority(CA)๋ ์๊ฒฉํ๊ฒ ๊ณต์ธ๋ ๊ธฐ๊ด๋ค์ ๋งํ๋ค. CA๋ค์ ์๋ฒ์ ๊ณต๊ฐํค์ CA์ ๋น๋ฐํค๋ก ์ํธํ๋ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํ๋ค. CA์ ๋น๋ฐํค๋ก ์ํธํ๋ ์ธ์ฆ์๋ฅผ CA์ ๊ณต๊ฐํค๋ก ๋ณตํธํํํ๋ฉด CA์์ ๋ฐ๊ธํ ์ธ์ฆ์๋ฅผ ๋ณด์ฆํ ์ ์๊ฒ ๋๊ณ ์ ์ํ ์๋ฒ์ ๊ณต๊ฐํค๋ฅผ ์ป์ ์ ์๋ค.
- ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ CA๋ฅผ ํตํด ์๋ฒ๋ฅผ ์ธ์ฆํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๋ ํ๋กํ ์ฝ์ TLS ๋๋ SSL์ด๋ผ๊ณ ํ๋ค.
๐ Hashing
Hashing์ ์ด๋ค ๋ฌธ์์ด์ ์์์ ์ฐ์ฐ์ ์ ์ฉํ์ฌ ๋ค๋ฅธ ๋ฌธ์์ด๋ก ๋ณํํ๋ ๊ฒ์ด๋ค. ํด์ฑ์ ์๋น์ค์ ์ ์ฉํ ๋๋ ์ธ ๊ฐ์ง๋ฅผ ์ง์ผ์ผํ๋ค.
- ํด์๊ฐ์ ํด๋ (decoding)ํ ๋๋ ๋ง์ ์๊ฐ์ด ๊ฑธ๋ ค์ผํ์ง๋ง ๋ฐ๋๋ก ํด์๊ฐ์ ๋ง๋๋ ๋ฐ์ ์ค๋๊ฑธ๋ฆฌ์ง ์์์ผํ๋ค.
- ํด์ ๊ฐ๋ค์ ์ต๋ํ ๋ค๋ฅธ ํด์ ๊ฐ์ ํผํด์ผ ํ๋ฉฐ, ๋ชจ๋ ๊ฐ์ ๊ณ ์ ํ ํด์ ๊ฐ์ ๊ฐ์ ธ์ผ ํ๋ค. Hashing์ ์ด๋ ํ ์ํ์ ์ฐ์ฐ(์๊ณ ๋ฆฌ์ฆ)์ ํตํด ์ ๋ ฅ๋ฐ์ ๋ฌธ์์ด์ ๋ค๋ฅธ ๋ฌธ์์ด๋ก ๋ฐํํด์ฃผ๊ธฐ ๋๋ฌธ์ ๊ทนํ ๋ฎ์ ํ๋ฅ ๋ก ์ ํ ๋ค๋ฅธ ๋ฌธ์์ด์ธ๋ฐ ๋๊ฐ์ ํด์ ๊ฐ์ ๊ฐ๋ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ๋ค. ํ์ง๋ง ์ด๋ฌํ ์ํฉ์ด ์ต๋ํ ๋ฐ์ํ์ง ์๋๋ก ํ๋ ์๊ณ ๋ฆฌ์ฆ๋ค์ด ์ด๋ฏธ ๋ฐฐํฌ๋์ด์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
- ๋ฌธ์์ด์ ์์ฃผ ์์ ๋จ์์ ๋ณ๊ฒฝ์ด ์๋๋ผ๋ ๋ฐํ๋๋ ํด์๊ฐ์ ์์ ํ ๋ค๋ฅธ ๊ฐ์ ๊ฐ์ ธ์ผ ํ๋ค.
๐ Cookie
๐งฉ Domain
- ๋๋ฉ์ธ์ ์๋ฒ์ ์ ์ํ ์ ์๋ ์ด๋ฆ์ผ๋ก, ์ฟ ํค ์ต์ ์์๋ ํฌํธ ๋ฐ ์๋ธ ๋๋ฉ์ธ ์ ๋ณด, ์ธ๋ถ ๊ฒฝ๋ก๋ฅผ ํฌํจํ์ง ์๋๋ค.์ฟ
- ํค ์ต์ ์ ๋๋ฉ์ธ ์ ๋ณด๊ฐ ์กด์ฌํ๋ค๋ฉด ํด๋ผ์ด์ธํธ์์๋ ์ฟ ํค์ ๋๋ฉ์ธ ์ต์ ๊ณผ ์๋ฒ์ ๋๋ฉ์ธ์ด ์ผ์นํด์ผ๋ง ์ฟ ํค๋ฅผ ์ ์กํ ์ ์๋ค.
๐งฉ Path
path์ ์ต์ ๊ฐ์ผ๋ก ์ค์ ๋ ๊ฒฝ๋ก๊ฐ URL์ ํฌํจ๋๋ฉด ์๋ฒ์ ์ฟ ํค๋ฅผ ์ ์กํ ์ ์๋ค.
path์ ์ต์ ๊ฐ์ด /users๋ฉด /users/login์ ์คํ ๋์ง๋ง /user/login์ด๋ฉด ์คํ๋์ง ์๋๋ค.
๐งฉ MaxAge, Expire
์ฟ ํค์ ์ ํจ๊ธฐ๊ฐ์ ์ ํ๋ ์ต์ ์ผ๋ก, ์ผ์ ๊ธฐ๊ฐ์ ์ ํด๋๊ณ ํด๋น ๊ธฐ๊ฐ์ด ๋ง๋ฃ๋๋ค๋ฉด ์๋์ผ๋ก ์ญ์ ๋ ์ ์๋๋ก ํ๋ค.
MaxAge๋ ๋ช ์ด๋์ ์ฟ ํค๊ฐ ์ ํจํ ๊ฒ์ธ์ง ์ ํ๋ ์ต์ ์ด๊ณ , Expires๋ ์ฟ ํค๊ฐ ์ธ์ ๊น์ง ์ ํจํ ์ง Date๋ฅผ ์ง์ ํ๋ค.(ํด๋ผ์ด์ธํธ ๊ธฐ์ค)
- ์ธ์ ์ฟ ํค: MaxAge ๋๋ Expires์ต์ ์ด ์๋ ์ฟ ํค๋ก ๋ธ๋ผ์ฐ์ ์ข ๋ฃ์ ์๋ ์ญ์ ๋๋ค.
- ์์์ฑ ์ฟ ํค: ๋ธ๋ผ์ฐ์ ์ข ๋ฃ ์ฌ๋ถ์ ์๊ด์์ด MaxAge ๋๋ Expires์ ์ง์ ๋ ์ ํจ์๊ฐ ๋งํผ ์ฌ์ฉ๊ฐ๋ฅํ๋ค.
๐งฉ Secure
ํ๋กํ ์ฝ์ ๋ฐ๋ผ ์ฟ ํค ์ ์ก์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ค. Secure ์ต์ ์ด true์ผ ๋ HTTPS ํ๋กํ ์ฝ๋ก ํต์ ํ๋ ๊ฒฝ์ฐ์๋ ์ฟ ํค๋ฅผ ์ ์กํ์ง๋ง ์ต์ ์ด ์๋ค๋ฉด ํ๋กํ ์ฝ์ ์๊ด ์์ด ์ฟ ํค๋ฅผ ์ ์กํ๋ค.
๐งฉ HttpOnly
์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ธ๋ผ์ฐ์ ์ ์ฟ ํค์ ์ ๊ทผ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ค.
- ์ต์ ์ด true์ธ ๊ฒฝ์ฐ ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ฟ ํค์ ์ ๊ทผ์ด ๋ถ๊ฐํ๋ค. true์ง์ ์ HTTP๋ก๋ง ์ ๊ทผํ ์ ์๋๋ก ์ค์ ํ๋ ์ต์ ์ด HttpOnly์ด๋ค.
- ๊ธฐ๋ณธ ์ค์ ์ false์ด์ง๋ง ์๋ฐ์คํฌ๋ฆฝํธ์์ <script> ํ๊ทธ๋ก ์ ๊ทผ์ด ๊ฐ๋ฅํด์ XSS๊ณต๊ฒฉ์ ์ทจ์ฝํ๋ค.
๐งฉ SameSite
same-site๋ ์์ฒญ์ ๋ณด๋ธ Origin๊ณผ ์๋ฒ์ ๋๋ฉ์ธ, ํ๋กํ ์ฝ, ํฌํธ๊ฐ ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ๋งํ๋ค. ์ด ์ค ํ๋๋ผ๋ ๋ค๋ฅด๋ค๋ฉด Cross-Origin์ผ๋ก ๊ตฌ๋ถ๋๋ค. Cross-Origin ์์ฒญ์ ๋ฐ์ ๊ฒฝ์ฐ ์์ฒญ์์ ์ฌ์ฉํ ๋ฉ์๋์ ํด๋น ์ต์ (e.g. GET, POST, PUT, PATCH โฆ)์ ์กฐํฉ์ผ๋ก ์๋ฒ์ ์ฟ ํค ์ ์ก ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ค.
- SameSite ์ต์
- LAX: Cross-Origin ์์ฒญ์ GET๋ฉ์๋์ ๋ํด์๋ง ์ฟ ํค๋ฅผ ์ ์กํ ์ ์๋ค.
- STRICT: Cross-Origin ์์ฒญ์ ๊ฑฐ์ ํ๊ณ SameSite์ธ ๊ฒฝ์ฐ์๋ง ์ฟ ํค๋ฅผ ์ ์กํ๋ค.
- None: HTTPS ํ๋กํ ์ฝ์์๋ง Cross-Origin ์์ฒญ์ ํญ์ ์ฟ ํค๋ฅผ ์ ์กํ ์ ์๋ค.
๐งฉ Session
- ์๋ฒ๋ ์ธ์ฆ(Authentication)์ ์ฑ๊ณตํ๋ค๊ณ ํ๋จ๋๋ฉด ์ํธํ๋ ์ธ์ ์์ด๋๋ฅผ ์ฟ ํค์ ๋ด์์ ์๋ฒ โ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌํ๋ค.
- ๋ก๊ทธ์ธ์ผ๋ก ์ธ์ฆ์ ์ฑ๊ณตํ๋ฉด ํด๋ผ์ด์ธํธ๋ ๊ฐ์ง๊ณ ์๋ ์ธ์ ์์ด๋๋ฅผ ์ ๋ถ์ฆ ์ฒ๋ผ ์ฌ์ฉํด์ ๋ค์ ๋ก๊ทธ์ธ ํ ํ์ ์์ด ํ์ํ ์์ ์ ์ํํ๋ค.
- ์๋ฒ๋ ์ธ์ ์์ด๋๋ฅผ ํ์ธํ๊ณ ์์ ์ ์ ๋ฐ์ดํธ ํ๋ค. ์ ๋ฐ์ดํธ ํ ์ธ์ ์์ด๋๋ฅผ ํตํด ํด๋ผ์ด์ธํธ์ ๊ฒฐ๊ณผ ์๋ต์ ์ ๋ฌํ๋ค.
๐งฉ ๋ก๊ทธ์์
- ์๋ฒ: ์ธ์ ์ ๋ณด๋ฅผ ์ญ์ ํด์ผ ํ๋ค.
- ํด๋ผ์ด์ธํธ: ์ฟ ํค๋ฅผ ๊ฐฑ์ ํด์ผ ํ๋ค.
๐ ์น ๋ณด์ ๊ณต๊ฒฉ
๐งฉ SQL Injection
๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์์์ SQL๋ฌธ์ ์คํํ ์ ์๋๋ก ๋ช ๋ น์ด๋ฅผ ์ฝ์ ํ๋ ๊ณต๊ฒฉ ์ ํ์ผ๋ก, ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ณด์์์ ํ์ ์ ์ด์ฉํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋น์ ์์ ์ผ๋ก ์กฐ์ํ๋ฉฐ, ๊ธฐ๋ก์ด ์ญ์ ๋๊ฑฐ๋ ๋ฐ์ดํฐ๊ฐ ์ ์ถ๋ ์ ์๋ค.
- SQL Injection ๋์ฒ๋ฒ
- ์
๋ ฅ(์์ฒญ) ๊ฐ ๊ฒ์ฆ
๋ธ๋๋ฆฌ์คํธ๊ฐ ์๋ ํ์ดํธ๋ฆฌ์คํธ ๋ฐฉ์(๊ธฐ๋ณธ ์ ์ฑ ์ด ๋ชจ๋ ์ฐจ๋จ์ธ ์ํฉ์์ ์์ธ์ ์ผ๋ก ์ ๊ทผ์ด ๊ฐ๋ฅํ ๋์)์ผ๋ก ํด๋น ํค์๋๊ฐ ๋ค์ด์ค๋ฉด ๋ค๋ฅธ ๊ฐ์ผ๋ก ๋ฐ๊ฟ SQL Injection์ ๋์ํ ์ ์๋ค. - Prepared Statement ๊ตฌ๋ฌธ ์ฌ์ฉ
์ฌ์ฉ์์ ์ ๋ ฅ ๊ฐ์ด ์ ๋ฌ ๋๊ธฐ ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ฏธ๋ฆฌ ์ปดํ์ผํ์ฌ SQL์ ๋ฐ๋ก ์คํํ์ง ์๊ณ ๋๊ธฐํ๋ฉฐ, ์ฌ์ฉ์์ ์ ๋ ฅ๊ฐ์ ๋จ์ ํ ์คํธ๋ก ์ธ์ํด์ ์ ๋ ฅ ๊ฐ์ด SQL๋ฌธ์ด ์๋ ๋จ์ ํ ์คํธ๋ก ์ ์ฉ๋์ด ๊ณต๊ฒฉ์ ์คํจํ๊ฒ ๋๋ค. - Error Message ๋
ธ์ถ ๊ธ์ง
- ์
๋ ฅ(์์ฒญ) ๊ฐ ๊ฒ์ฆ
๐งฉ CSRF(Cross Site Request Forgery)
Cross-Origin์์ ์ ์ ๊ฐ ๋ณด๋ด๋ ์์ฒญ์ ์กฐ์ํ๋ค. ์ถ์ฒ๊ฐ ๋ฌ๋ผ ์ง์ ๋ฐ์ดํฐ์๋ ์ ๊ทผํ ์ ์๋ค. ์ฟ ํค๋ฅผ ์ฌ์ฉํ์ฌ ๋ก๊ทธ์ธํ ๋, ๋ ์์ฒญ์ด๋ ํ๋ผ๋ฏธํฐ๊ฐ ์์ธก๊ฐ๋ฅํ ๋ ๊ณต๊ฒฉํ ์ ์๋ค.
- CSRF ๋์ฒ๋ฒ
- CSRF ํ ํฐ์ ์ ์ ์ ๋ธ๋ผ์ฐ์ ์ ์น ์ฑ์๋ง ์ ๊ณตํ์ฌ ์กฐํฉ์ผ๋ก ์์ฑ๋ ์์ฒญ์๋ง ์ฑ๊ณต์ ์ผ๋ก ์๋ตํ๋ค.
- Same-site ์ฟ ํค์ต์ ์ ์ด์ฉํ์ฌ ๊ฐ์ ์ฌ์ดํธ์์๋ง ์๋ตํ๊ฒ ํ๋ค.
'SEB > TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
069 | AWS - EC2, RDS, S3 (0) | 2022.09.30 |
---|---|
067 | Spring Security - OAuth 2.0 Authentication (0) | 2022.09.28 |
058 | Asciidocs, Asciidoctor (2) | 2022.09.15 |
057 | API Documentation, Swagger, SpringRest (0) | 2022.09.14 |
052 | Transaction (0) | 2022.09.05 |