보안
2 posts
Spring Security

WebSecurityConfig CSRF(Cross Site Request Forgery)란? 웹 취약점 공격 방법중 하나로 사용자가 자신의 의지와 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격 Spring Security에서는 CSRF 예방기능을 제공하는데 DISABLE 하는 이유 Cross Site Request Forgery (CSRF) :: Spring Security 공식 페이지에 나와있듯, CSRF 설정은 브라우저에서 처리할 수 있는 모든 요청에 대해서 사용하는 것이 좋다. CSRF를 사용하지 않도록 사용하는 경우는 브라우저 이외의 클라이언트에서만 사용하는 서비스(REST API)를 생성할 경우이다. REST API는 서버에 인증정보를 보관하지 않기 때문에 CSRF 공격에 크게 영향을 받지 않는다. authorizeRequests() : 특정 경로에 대한 접근 권한을 지정하는 메소드 requestMatchers(PathRequest.toStaticR…

November 10, 2023
보안
인증과 인가

인증과 인가 인증(Authentication) 사용자의 신원을 검증하는 행위, 보안 프로세스에서 첫 번째 단계 인가(Authorization, 권한부여) 사용자에게 권한을 허용/거부하는 행위 우리가 사용하는 HTTP의 특성 비연결성 : 리소스 절약을 위해 서버는 하나의 요청에 대해서 응답을 주고 연결을 끊어버린다. 무상태 : 서버는 클라이언트가 이전에 어떤 상태였는지 알지 못한다. 🤔 그럼 연결이 되어있지 않고 상태도 안가지고 있는데 어떻게 인증과 인가를 진행하는걸까? 쿠키-세션 방식 사용자의 인증 정보가 서버의 세션 저장소에 저장되는 방식이다. 사용자가 로그인에 성공하면 서버는 사용자의 인증 정보를 세션 저장소에 저장하고, 사용자의 정보와는 관계없는 SESSION ID를 생성하여 클라이언트에게 응답값으로 전달한다. 클라이언트는 SESSION ID를 쿠키에 저장하고 앞으로의 요청마다 SESSION ID를 함께 보낸다. 서버는 요청값에 있는 SESSION ID에 해당하는 세션 정보가…

November 08, 2023
보안