우주먼지
article thumbnail
JWT (Json Web Token) & Sticky Session
Framework/Spring 2022. 11. 22. 10:01

💡 JWT 인증 (CSR 방식) 기존 SSR 세션 기반 방식 HTTP는 Request 전송 후 & Response 수신 후 Connection을 끊는 비연결성, Request, Response에 대한 상태를 버리는 비상태성의 특성이 있는데, 서버에서는 매번 인증된 사용자가 보낸 Request인지 어떻게 구분할까? 답은 세션 기반의 자격증명 방식을 사용해 유저의 정보를 세션의 형태로 저장한다 JWT 유래 SSR 방식에서의 세션 기반 FilterChain 인증을 사용했을때 인증에 필요한 리소스는 모두 서버가 부담해야했다. 이 리소스 부담을 덜어줄 방법을 고안해낸게 CSR방식의 JWT인증으로, 인증부담을 클라이언트에게 전가한다. 민감정보를 클라이언트 측에서 보관하는 보안관점에서의 취약점 -> 인증정보 암호화로..

Spring EL 접근 제어 표현식
Framework/Spring 2022. 11. 21. 03:44

💡 Spring EL 접근 제어 표현식 hasRole(String role) 보안의 주체(principal)가 지정된 역할을 가지고 있다면 true 리턴 파라미터의 값은 ROLE_로 시작해야하지만 DefaultWebSecurityExpressionHandler의 defaultRolePrefix를 수정하여 Customize 할 수 있다 hasAnyRole(String... roles) principal이 지정한 역할이 1개 이상이면 true 리턴, 문자열의 리스트를 ','로 구분하여 전달한다 hasAuthority(String authority) principal이 지정한 권한을 가지고 있으면 true 리턴, ex) hasAuthority('write') hasAnyAuthority(String... au..

article thumbnail
Authorization
Framework/Spring 2022. 11. 21. 03:02

💡 Processing Flow Spring Security 5.5 이전 버전까지는 FilterSecurityInterceptor를 통한 권한 부여 처리 과정이 상당히 복잡해서 이해가 쉽지 않았지만 5.5 부터는 AuthorizationFilter의 손쉬운 AuthorizationManager API를 이용한 권한 부여 작업을 할 수 있게 되었다. 1. AuthorizationFilter는 SecurityContextHolder로부터 Authentication 획득 2. AuthorizationFilter는 SecurityContextHolder로부터 얻은 HttpServletRequest & Response , FilterChain을 기반으로 FilterInvocation 생성 3. Authorizat..

article thumbnail
Authentication
Framework/Spring 2022. 11. 20. 05:42

💡 Processing Flow 1. User의 로그인 시도, Request를 제일 먼저 만나는 컴포넌트 - UsernamePasswordAuthenticationFilter Login Form 방식의 로그인 시 사용 2. ID, PW를 전달받은 UsernamePasswordAuthenticationFilter는 UsernamePasswordAuthenticationToken을 생성 * UsernamePasswordAuthenticationFilter는 AbstractAuthenticationProcessingFilter를 상속한다. UsernamePasswordAuthenticationToken은 Authentication 인터페이스의 구현체이다 3. 인증이 되지않은 Authentication을 Aut..

article thumbnail
Servlet Filter Chain & DelegatingPasswordEncoder
Framework/Spring 2022. 11. 20. 01:33

💡 Filter Chain Filter Chain의 특징 - Request URI Path를 기반으로 HttpServletRequest 를 URI Filter & Servlet 매핑 - 필터체인 안에서 순서를 지정할 수 있으며, 순서는 매우 중요 - 순서를 지정하기 위한 @Order & Ordered 인터페이스를 구현해서 순서 지정 - FilterRegistrationBean을 이용해 순서 지정 가능 - Spring Security의 Filter Chain은 URL별로 여러개 등록 가능 - 어떤 Filter Chain을 사용할지는 FilterChainProxy가 결정하며, 가장 먼저 매칭된 Filter Chain을 실행 Servlet Filter Chain의 2가지 종류 DelegatingFilterPr..

article thumbnail
Spring Security 기본 구조
Framework/Spring 2022. 11. 18. 19:53

💡 Spring Security 어플리케이션에 Spring Security가 없을때 중요한 요소가 빠져있다. - Authentication (인증) - Authorization (인가) - 웹 보안 취약점에 대한 방지 Spring Security를 사용하는 이유 - 특정 보안 요구사항을 만족하기 위한 Customizing 용이 - 유연한 확장 - 보안기능이 검증된 신뢰할만한 보안 프레임워크 Spring Security의 로그인 인증 방식 - Form Login 방식 : SSR 방식의 어플리케이션에서 주로 사용 Security를 적용하여 보안 취약으로 인한 사고 방지 방법 SSL 적용 Role 별 권한 적용 많은 유형의 사용자 인증 기능 민감 정보 암호화 resource ACL 알려진 웹 공격 차단 Spr..

article thumbnail
Cookie & Session & 웹 보안 공격 & CA 발급/HTTPS 적용
Framework/Spring 2022. 11. 17. 12:03

💡 Cookie 서버에서 클라이언트에 데이터를 저장, 클라이언트에 저장된 후히를 이용하여 데이터를 가져옴 Cookie Option Domain 도메인 불일치 시 쿠키 전송 X 도메인이란? 서브 도메인(ex: www)을 제외한 URL 중 포트까지의 URL을 의미함 이 옵션을 통해 도메인이 다를때 발생할 수 있는 취약점 공격에 대한 방어가 가능함 Path 세부 경로 라우팅 기능 Default Path = '/' 설정된 Path가 만족하는 경우, 하위의 경로가 존재해도 쿠키 전송이 가능함 MaxAge & Expires MaxAge : second 설정 == Session 쿠키 Expires : date 설정 == Persistent 쿠키 Secure https 프로토콜만 쿠키 전송 허용 HttpOnly Def..

검색 태그