이 글은 정수원님의 Infrean 강의를 학습한 내용을 정리하여 작성합니다. 인증 개념 이해 - Authentication Authentication 당신이 누구인지 증명하는 것 사용자의 인증 정보를 저장하는 토큰 개념이다. 인증 시 id와 password를 담고 인증 검증을 위해 전달되어 사용된다. 인증 후 최종 인증 결과 (user 객체, 권한정보)를 담고 SecurityContext에 저장되어 전역적으로 참조가 가능하다. Authentication authentication = SecurityContextHolder.getContext().getAuthentication() 구조 principal: 사용자 아이디 혹은 User 객체를 저장 credentials: 사용자 비밀번호 authoriteis..
스프링 시큐리티
이 글은 정수원님의 Infrean 강의를 학습한 내용을 정리하여 작성합니다. 필터 초기화와 다중 보안 설정 필터 초기화와 다중 설정 클래스 설정클래스 별로 보안 기능이 각각 작동한다. 설정클래스 별로 RequestMatcher 설정 http.antMatcher("/admin/**) 설정클래스 별로 필터가 생성 FilterChainProxy가 각 필드들을 가지고 있다. 요청에 따라 ReqeustMatcher와 매칭되는 필터가 작동하도록 한다. 사용자가 GET 방식으로 /admin 자원에 접근한다. FilterChainProxy가 요청을 받아 사용자 요청을 처리할 필터를 선택해야 한다. FilterChainProxy는 각 객체에 포함된 RequestMatcher에 포함된 자원과 사용자가 요청한 자원이 동일한..
이 글은 정수원님의 Infrean 강의를 학습한 내용을 정리하여 작성합니다. 위임 필터 및 필터 빈 초기화 - DelegatingProxyChain, FilterChainProxy DelegatingFilterProxy 스프링 시큐리티는 필터 기반으로 보안 처리를 진행한다. 필터는 스프링 기술을 사용해야 한다. 서블릿 필터는 스프링에서 정의된 빈을 주입해 사용할 수 없다. Servlet Filter는 서블릿 컨테이너에서 생성되고 실행된다. 스프링 빈은 스프링 컨테이너에서 서블릿 필터는 서블릿 컨테이너에서 관리되기 때문이다. 특정한 이름을 가진 스프링 빈을 찾아 그 빈에게 요청을 위임한다. springSecurityFilterChain 이름으로 생성된 빈을 ApplicationContext에서 찾아 요청을..
이 글은 정수원님의 Infrean 강의를 학습한 내용을 정리하여 작성합니다. 사이트 간 요청 위조 - CSRF, CsrfFilter Form 인증 - CSRF (사이트 간 요청 위조) 사용자는 쇼핑몰에 인증 후 쿠키를 발급받는다. 공격자는 링크를 이용자에게 전달한다. 사용자는 공격자가 제공한 링크를 클릭해 공격용 웹페이지에 접속한다. 이미지 소스는 사용자가 접속한 쇼핑몰의 링크이다. 공격자주소가 추가로 존재한다. 사용자가 공격용 페이지를 열면, 브라우저는 이미지 파일을 받아오기 위해 공격용 URL을 연다. 사용자의 브라우저에는 인증 후 발급받은 쿠키가 존재한다. 사용자는 쿠키가 저장된 브라우저로 공격자가 제공한 링크를 클릭해 공격자주소로 요청한다. 쇼핑몰은 자신이 제공한 쿠키가 브라우저에 존재하는지 검사..