![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc4Sl7N%2FbtsbmX6errG%2FlZxcLSkB0jr38uuk9XmQL1%2Fimg.png)
Spring Boot 기반으로 개발하는 Spring Security : CSRF, CsrfFilter
2023. 4. 19. 22:08
무조건 따라하기/Spring Boot 기반 Security
CSRF CSRF란? CSRF는 Cross-Site Request Forgery의 약어로, "사이트간 요청 위조"를 의미한다. 공격자가 사용자가 로그인한 웹사이트를 통해 사용자가 모르는 상황에서 원치 않는 동작을 수행하게 하는 보안 취약점이다. 위 이미지와 같이 공격을 방지하기 위해 웹 개발자들은 요청을 보낼 때 추가적인 보안 검증 절차를 구현하고, 사용자에게 요청의 적절성을 확인하도록 요청하는 등의 대응 방안을 마련해야 한다. CsrfFilter CsrfFilter란? CsrfFilter는 웹 어플리케이션에서 CSRF(Cross-Site Request Forgery) 공격을 방지하기 위한 필터다. Spring Security에서 제공하는 CsrfFilter는, HTTP 요청에 대해 CSRF 토큰을 생성..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCqcga%2Fbtsa9K6r1Tc%2F4oN6WKZKKkM7NqscFRzjgk%2Fimg.png)
Spring Boot 기반으로 개발하는 Spring Security : ExceptionTranslationFilter, RequestCacheAwareFilter
2023. 4. 18. 22:06
무조건 따라하기/Spring Boot 기반 Security
ExceptionTranslationFilter ExceptionTranslationFilter는 AuthenticationException과 AccessDeniedException 이 두가지의 예외를 처리하는데 ExceptionTranslationFilter가 try-catch로 감싸고 catch에 오면 Filtersecurityinterceptor가 받아 예외를 발생시킨다. AuthenticationException AuthenticationEntryPoint 호출한다. 인증예외가 발생하기 전에 요청정보를 저장한다. AccessDeniedException 인가 예외 처리 - AccessDeniedHandler에서 예외처리하도록 제공 설정 전체코드 @Configuration @EnableWebSecur..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fca3HhX%2FbtsayWfvsTQ%2FnbUACgBxJ6euBolMNeEDA1%2Fimg.png)
Spring Boot 기반으로 개발하는 Spring Security : 권한설정과 표현식
2023. 4. 16. 20:46
무조건 따라하기/Spring Boot 기반 Security
권한 설정 http.antMatchers("{url}").hasRole(“{role}") 와 같이 설정이 가능하다. http .authorizeRequests() .antMatchers("/login").permitAll() // login 페이지는 인증이 안돼도 접근이 가능해야하기 때문에 .antMatchers("/user").hasRole("USER") .antMatchers("/admin/pay").hasRole("ADMIN") .antMatchers("/admin/**").access("hasRole('ADMIN') or hasAnyRole('sys')") //표현식을 사용해 두개이상의 권한을 설정 .anyRequest().authenticated(); ※ 주의 사항 - 설정 시 구체적인 경로가 ..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAUnQo%2Fbtsal4ysHow%2FdWYJ2s5vC2lOFlRFi7t7vk%2Fimg.png)
Spring Boot 기반으로 개발하는 Spring Security : SessionManagementFilter, ConcurrentSessionFilter
2023. 4. 16. 12:23
무조건 따라하기/Spring Boot 기반 Security
예외 처리 및 요청 캐시 필터 SessionManagementFilter 1.세션 관리 - 인증 시 사용자의 세션정보를 등록, 조회, 삭제 등의 세션 이력을 관리 2.동시적 세션 제어 - 동일 계정으로 접속이 허용되는 최대 세션수를 제한 3.세션 고정 보호 - 인증 할 때마다 세션쿠키를 새로 발급하여 공격자의 쿠키 조작을 방지 4.세션 생성 정책 - Always, If_Required, Never, Stateless 주요 클래스 ConcurrentSessionControlAuthenticationStrategy - 현재 저장된 세션의 count를 제공한다. ChangeSessionIdAuthenticationStrategy - 세션 고정 보호를 위해 세션ID를 교체한다. RegisterSessionAut..