본문 바로가기

항해99

23.08.31 항해 99 16기 주특기 Spring 6일차

오늘 공부한 것

* 주간 시험

* Spring 숙련주차 1주차 강의 듣기

 

주간시험의 날이었다사실 어제부터 엄청 걱정했다시험은 항상 걱정이 많은것 같다

 

다행히 Lv1 과제에서 조금 변경하면 되는것이었다

 

이후에는 숙련주차 1주차 강의를 완강했다

 

내일부터는 Lv2 과제를 시작할 예정이다

 

Filter web 애플리케이션에서 관리되는 영역으로 Client로부터 오는 요청과 응답에 대해 최초/최종 단계의 위치이며

          요청과 응답의 정보를 변경하거나 부가적인 추가 가능

          주로 범용적으로 처리해야 하는 작업들, 로깅 및 보안 처리에 활용되며 인증, 인가와 관련된 로직 처리도 가능

          인증, 인가와 관련된 로직을 비즈니스 로직과 분리하여 관리할 수 있다는 장점이있다

          여러개가 Chain 형식으로 묶여서 처리될 수 있다

 

Spring Security Filter Chain 방식으로 동작함

                            Spring 서버에 필요한 인증 및 인가를 위해 많은 기능을 제공

                           세션방식으로 동작함 그리고 default 로그인 기능을 제공

                            1) Form Login 인증 인증이 필요한 URL 요청이 들어왔을 때 인증이 되지 않으면 로그인 페이지를 반환함

                            2) UsernamePasswordAuthenticationFilter Form Login 기반 사용시 usernamepw를 확인하여

                                                                                                인증하는 필터

                                  (1) 사용자가 usernamepw를 제출하면 인증된 사용자의 정보가 담기는 인증 객체인

                                        Authentication 종류중 하나인 UsernamePasswordAuthenticationToken을 만들어서

                                        AuthenticationManager에게 넘겨 인증시도

                                  (2) 실패하면 SecurityContextHolder 비움

                                  (3) 성공하면 SecurityContextHolder Authentication를 세팅

                             3) SecurityContextHolder SecurityContext인증이 완료된 사용자의 상세 정보(Authentication)을 저장

                             4) Authentication 현재 인증된 사용자를 나타내며 SecurityContext에서 가져올 수 있다

                                                        principal 사용자를 식별 Username/Password 방식으로 인증시 일반적으로

                                                                       UserDetails 인스턴스

                                                        credentials 주로 비밀번호, 대부분 사용자 인증에 사용한 후 비운다

                                                        authorities 사용자에게 부여한 권한을 GrantedAuthority추상화하여 사용함

                             5) UserDetailsService username/password 인증방식 사용시 사용자를 조회하고 검증한 후

                                                                 UserDetails를 반환 Custom하여 Bean 등록 후 사용 가능

                             6) UserDetails 검증된 UserDetailsUsernamePasswordAuthenticationToken 타입의 Authentication

                                                     만들 때 사용됨 해당 인증객체는 SecurityContextHolder에 세팅됩니다. Custom하여

                                                     사용가능


CSRF 사이트 간 요청 위조

            공격자가 인증된 브라우저에 저장된 쿠키의 세션 정보를 활용해 웹서버에 사용자가 의도하지 않은 요청을 전달

             html에서 CSRF 토큰 값을 넘겨주어야 요청 수신가능

             쿠키 기반의 취약점을 이용한 공격이기 때문에 Rest 방식의 API에서는 disable 가능

 

Validation null 확인 뿐 아니라 문자길이 측정과 같은 다른 검증 과정도 처리가능

                  @NotNull : null 불가 / @NotEmpty : null, “” 불가 / @NotBlank : null, “”. “ “ 불가 / @Size : 문자 길이 측정 /

                  @Max : 최대값 / @Min : 최소값 / @Positive : 양수 / @Negative : 음수 / @Email : E-mail 형식 /

                  @Pattern : 정규 표현식