๐ Spring/Spring Security
์ด ํฌ์คํธ๋ ๋ฐ์ด ํ๋ก๊ทธ๋๋ฐ๋์ ์ ํ๋ธ ๊ฐ์๋ฅผ ๋ฃ๊ณ ๋์ ์ ๋ฆฌํ ๊ธ์
๋๋ค. 2021.10.26 - [๐ Spring/Spring Security] - 3. JWT๋ฅผ ์ดํดํ๊ธฐ ์ CIA ๋ํด ์ดํดํ๊ธฐ 3. JWT๋ฅผ ์ดํดํ๊ธฐ ์ CIA ๋ํด ์ดํดํ๊ธฐ ์ด ํฌ์คํธ๋ ๋ฐ์ด ํ๋ก๊ทธ๋๋ฐ๋์ ์ ํ๋ธ ๊ฐ์๋ฅผ ๋ฃ๊ณ ๋์ ์ ๋ฆฌํ ๊ธ์
๋๋ค. CIA CIA(Confidentiality Integrity Availability) Confidentiality(๊ธฐ๋ฐ์ฑ) ๊ฐ์ธ์ ๋ณด, ๋ฏผ๊ฐํ ์ ๋ณด ๋ฑ์ ์ธ๊ฐ๋ ์ฌ์ฉ์์๊ฒ๋ง ํ๊ฐ.. iseunghan.tistory.com ์ ๋ฒ ์๊ฐ์ ๋ ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ์ด์ ์ ๋ฌ ๋ฌธ์ ๋๊ฐ ๋ณด๋๋์ง? ์ ๋ํ ๋ฌธ์ , ์ธ์ฆ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํ ๊ฒ์ธ๊ฐ RSA(์ํธํ) Public Key : ๊ณต๊ฐ ํค ์์ ..
๐ Spring/Spring Security
์ด ํฌ์คํธ๋ ๋ฐ์ด ํ๋ก๊ทธ๋๋ฐ๋์ ์ ํ๋ธ ๊ฐ์๋ฅผ ๋ฃ๊ณ ๋์ ์ ๋ฆฌํ ๊ธ์
๋๋ค. CIA CIA(Confidentiality Integrity Availability) Confidentiality(๊ธฐ๋ฐ์ฑ) ๊ฐ์ธ์ ๋ณด, ๋ฏผ๊ฐํ ์ ๋ณด ๋ฑ์ ์ธ๊ฐ๋ ์ฌ์ฉ์์๊ฒ๋ง ํ๊ฐ Integrity(๋ฌด๊ฒฐ์ฑ) ๋ด์ฉ์ ๋ณ๊ฒฝ์ด๋, ํผ์์์ด ์ ํํ๊ฒ ๋ณด์กด Availability(๊ฐ์ฉ์ฑ) ํญ์ ์ ์์ ์ผ๋ก ์ ๋ขฐ์ฑ ์๋ ์๋น์ค๋ฅผ ํ ์ ์๋ ์ํ ์๋ฅผ ๋ค์ด, A๋๋ผ, B๋๋ผ, C๋๋ผ๊ฐ ์๋ค๊ณ ๊ฐ์ ํด๋ด
์๋ค. A๋๋ผ๊ฐ B๋๋ผ์๊ฒ ๋ฌธ์๋ฅผ ์ ๋ฌํ๋๋ฐ, ์ค๊ฐ์์ C๋๋ผ๊ฐ ๊ทธ ๋ฌธ์๋ฅผ ํ์ทจํ์ต๋๋ค. -> ๊ธฐ๋ฐ์ฑ์ด ๊นจ์ง A๋๋ผ๊ฐ B๋๋ผ์๊ฒ ๋ฌธ์๋ฅผ ์ ๋ฌํ๋๋ฐ, ์ด๋ฒ์๋ C๋๋ผ๊ฐ ์์กฐ๋ ๋ฌธ์๋ฅผ ์ ๋ฌ์์ผฐ์ต๋๋ค. -> ๋ฌด๊ฒฐ์ฑ์ด ๊นจ์ง B๋๋ผ๋ A๋๋ผ๊ฐ ๋ณด๋ด์ค ๋ฌธ์๋ฅผ ์..
๐ Spring/Spring Security
์ด ํฌ์คํธ๋ ๋ฐ์ด ํ๋ก๊ทธ๋๋ฐ๋์ ์ ํ๋ธ ๊ฐ์๋ฅผ ๋ฃ๊ณ ๋์ ์ ๋ฆฌํ ๊ธ์
๋๋ค. OSI 7 ๊ณ์ธต๊ณผ TCP์ ๋ํด์ ๊ฐ๋ตํ๊ฒ ์ดํดํด๋ณด๋ ์๊ฐ์ ๊ฐ์ ธ๋ณด๊ฒ ์ต๋๋ค. OSI 7 ๊ณ์ธต ํต์ ์๋ OSI 7 ๊ณ์ธต์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ด๊ฐ ์ด๋ค ๊ฒ์์์ A ์คํฌ์ ์ด๋ค๊ณ ํ์ ๋, ํด๋น ๊ฒ์ํ์ฌ ์๋ฒ๊น์ง์ ์ ์ก์ ์๋ก ๋ค์ด๋ณด๊ฒ ์ต๋๋ค. Application: ํด๋น ๊ฒ์ ํ๋ก๊ทธ๋จ์ ์๋ฏธํฉ๋๋ค. Presentation: ๋ด๊ฐ A ์คํฌ์ ์ด๋ค๋ ๋ด์ฉ์ ์ํธํํด์ ๋ณด๋
๋๋ค. (๋๋, ์ฌ์ง ๊ฐ์ ๊ฒ๋ค์ ๋ณด๋ผ ๋ ์์ถ์ ํด์ ๋ณด๋ด๊ธฐ๋ ํฉ๋๋ค.) Session: ์ธ์ฆ ์ฒดํฌ (๋ด๊ฐ ๋ณด๋ผ ์ ์๋์ง์ ๋ํ ์ฒดํฌ : ์๋๋ฐฉ ์ปดํจํฐ๊ฐ ์ผ์ ธ์๋์ง, ๋ด๊ฐ ์๋๋ฐฉ ์ปดํจํฐ์ ์ ๊ทผ์ ํ ์ ์๋์ง ๋ฑ) Transport: TCP/UDP ํต์ ์ฌ๋ถ ๊ฒฐ..
๐ Spring/Spring Security
์ด ํฌ์คํธ๋ ๋ฐ์ด ํ๋ก๊ทธ๋๋ฐ๋์ ์ ํ๋ธ ๊ฐ์๋ฅผ ๋ฃ๊ณ ๋์ ์ ๋ฆฌํ ๊ธ์
๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ต์ด ์ ๊ทผํ ๊ฒฝ์ฐ ์์ฒญ ํค๋์ ์ธ์
ID๋ฅผ ๋ค๊ณ ์ ๊ทผํ ๊ฒฝ์ฐ ๊ทธ๋ผ ์ด ์ธ์
๋ง ์์ผ๋ฉด ๊ณ์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๊ฐ? ์๋๋ค. ์ธ์
์ด ๋ ๋ผ๊ฐ๋ ์์ ์ด ์๋ค. 1. ์๋ฒ์์ ๊ฐ์ ๋ก Session์ ๋ ๋ฆฐ๋ค. 2. ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ข
๋ฃํ ๋ 3. Session ๋ง๋ฃ ์๊ฐ์ด ๋์ ๋ (๋ณดํต 30๋ถ์ผ๋ก ๋๋ค) ์ธ์
๋ก๊ทธ์ธ ์์ฒญ / ์ธ์ฆ ๋ก์ง ์ฒ์ ๋ก๊ทธ์ธ ์์ฒญ์ ํฉ๋๋ค. ์ฌ์ฉ์ ID, PW๋ฅผ ํ์ธํ์ฌ ์ฌ์ฉ์๊ฐ ๋ง๋์ง ํ์ธํฉ๋๋ค. ์ธ์
ID๋ฅผ ์์ฑํฉ๋๋ค. ์ฌ์ฉ์์๊ฒ ์๋ต ํค๋์ ์ธ์
ID๋ฅผ ๋ด์์ ์๋ตํฉ๋๋ค. ์ธ์
ID๋ฅผ ์น ๋ธ๋ผ์ฐ์ ์ ์ ์ฅํฉ๋๋ค. ์ด์ ์ธ์
ID๋ฅผ ํค๋์ ๋ด์์ ์์ฒญ์ ํฉ๋๋ค. ์๋ฒ์์๋ ์ธ์
ID๊ฐ ์์ผ๋, ์ธ์
์ ์ฅ์..
๐ Spring/Spring Security
๋ฌธ์ : Security ๋ก๊ทธ์ธ์ ์ฑ๊ณต์ ํ๋ฉด ๋ด๊ฐ ์ค์ ํด๋ url๋ก redirect๊ฐ ๋์ง ์๊ณ .css ํ์ผ์ด๋ imageํ์ผ๋ก ์ด๋ํ๋ค. ๋ฌธ์ ์ : Security config์์ js ๋๋ css ํด๋๋ฅผ ํ์ฉํด์ฃผ์ง ์์๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ์ ์๋ ์ฝ๋ @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .anyRequest().authenticated() .and() .formLogin() .loginPage("/login") .permitAll() .defaultSuccessUrl("/") .and() .logout() .logoutSuccessUrl("/") .and() .cs..
๐ Spring/Spring Security
๊ฐ์ํ ์ดํ๋ก์ ํธ๋ฅผ ์งํํ๋ ๋์ค์ ์คํ๋ง ์ํ๋ฆฌํฐ๋ฅผ ์ค์ ํ๊ณ ๋์, ๋ก๊ทธ์ธ ์ธ์ฆ์ ๋ง์ณค๋๋ฐ๋ 403 Forbidden ์๋ฌ๊ฐ ๊ณ์ํด์ ๋ฐ์ํ์์ต๋๋ค. ์๋ฌ๊ฐ ๋ฐ์ํ๋ ์์ ์ด GET ์์ฒญ์ ๋ฌด๋ฆฌ์์ด ์ ๋๋๋ฐ, POST ์์ฒญ์ผ๋ก ๋ณด๋ด๋ฉด ์ด์ํ๊ฒ 403 ์๋ฌ๊ฐ ๋๋๋ฐ ์ด์ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.SecurityConfig๋ฅผ ์ดํด๋ณด์์๋๋ ๊ธฐ์กด ์ํ๋ฆฌํฐ ์ค์ ์ฝ๋์
๋๋ค.@Overrideprotected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/").authenticated() .antMa..