CSRF 공격 시나리오 및 방어 방법
·
Backend/Spring Security
CSRF공격 시나리오  1. 사용자가 google.com에 로그인사용자는 google.com에 로그인하여 세션 쿠키를 받습니다. 이 쿠키는 사용자가 google.com에 다시 요청을 보낼 때마다 자동으로 포함됩니다.2. 악의적인 사이트 방문사용자는 이메일 링크, 소셜 미디어 링크 또는 광고 등을 통해 attack.com이라는 악의적인 사이트를 방문합니다.attack.com에는 CSRF 공격을 수행하기 위한 악의적인 스크립트가 포함되어 있습니다.3. 악의적인 요청 생성attack.com의 페이지에 다음과 같은 HTML 코드가 포함되어 있다고 가정합니다." style="display:none">이 코드는 이미지 태그를 사용하여 google.com으로 GET 요청을 보냅니다. style="display:non..
[Spring Security] PasswordEncoder
·
Backend/Spring Security
일반적인 Spring Security 내부 흐름입니다. 우리는 InMemoryUserDetailsManager를 사용하는 대신에 직접 loadByUsername()을 오버라이딩하여 사용해보도록 하겠습니다.   실습 - User 정보를 SQL 스크립트를 활용하여 수동 입력Config - SecurityConfig@Configurationpublic class ProjectSecurityConfig { @Bean SecurityFilterChain defaultSecurityFilterChain(HttpSecurity http) throws Exception { http.authorizeHttpRequests((requests) -> requests.requ..
[Spring Security] 유저 정의와 관리
·
Backend/Spring Security
UserDetailsService, UserDetailsManagerloadUserByUsername인터페이스 내부에 loadUserByUsername이라는 추상 메소드가 존재합니다. 보편적인 인증 작업을 생각해보면 가장 먼저 데이터베이스에 저장되어 있는 유저 세부 정보 및 브라우저에 입력된 유저의 세부 정보를 불러오는 것입니다. 이를 위해 loadUserByusername이라는 추상 메서드가 존재합니다. 여기서 우리는 의문을 가질 수 있습니다.왜 데이터베이스에서 유저 이름만 불러오는가?유저 이름과 비밀번호를 둘 다 비교하는 것이 좋지 않은가?이유는 바로, 비밀번호를 불필요하게 네트워크로 전송하면 안되기 때문입니다. 보안 문제에 취약하므로, 먼저 유저 이름을 사용하여 유저 세부 정보를 로드하고, 나중에 ..
[Spring Security] OAuth 2.0 개념과 이해
·
Backend/Spring Security
OAuth제3의 서비스에 계정 관리를 맡기는 방식용어 정리리소스 오너(resource owner) : 자신의 정보를 사용하도록 인증 서버에 허가하는 주체. 서비스를 이용하는 사용자가 리소스 오너에 해당된다.리소스 서버(resource server) : 리소스 오너의 정보를 가지며, 리소스 오너의 정보를 보호하는 주체를 의미. 네이버, 구글, 페이스북이 리소스 서버에 해당한다.인증 서버(authorization server) : 클라이언트에게 리소스 오너의 정보에 접근할 수 있는 토큰을 발급하는 역할을 하는 애플리케이션.클라이언트 애플리케이션(client application) : 인증 서버에게 인증을 받고 리소스 오너의 리소스를 사용하는 주체를 의미. 지금 만들고 있는 서비스가 이해 해당한다.client..
[Spring Security] 내부 흐름 - 2
·
Backend/Spring Security
2024.02.17 - [Backend/Spring Security] - Spring Security 내부 흐름(1)에서 Spring Security 내부 흐름에 대해 간략하게 살펴봤다. 이번에는 디버깅을 통해 내부 코드를 파헤쳐보자.  Spring Security 내부 흐름 - 1이 글은 아래 링크의 강의를 바탕으로 정리된 글입니다. https://www.udemy.com/course/spring-security-6-jwt-oauth2-korean/ spring security 내부 흐름 과정 1단계 유저가 로그인 페이지에 본인의 자격증명을 입력 (브kimdozzi.tistory.com   Spring Security를 다루는 과정에서 핵심적인 부분만 확인하고 넘어가는 점을 유의해주세요 !   Spri..
[Spring Security] 내부 흐름 - 1
·
Backend/Spring Security
spring security 내부 흐름 과정1단계유저가 로그인 페이지에 본인의 자격증명을 입력 (브라우저 또는 모바일 애플리케이션의 도움을 받음)유저는 본인의 자격 증명과 함께 요청을 백엔드 웹 애플리케이션에 전달. 이 과정에서 spring security의 도움을 받아 데이터를 보호받는다.spring security filter전달된 정보는 spring security filters에서 받게 된다. security filter는 백엔드 서버에 들어오는 모든 요청을 감시하는 역할을 한다. 동작 과정은 다음과 같다.엔드유저가 접근하고자하는 경로 확인애플리케이션에 구성해둔 경로와 설정에 따라 이 필터들은 보호된 자원인지, 공개적으로 접근가능한지 판별하게 된다.결과에 따라 로그인 페이지를 표시하게 되고, 유저..