✔️ 이 글을 읽기 전 CORS에 대해 잘 모르겠다면 아래 글을 먼저 보자. [CORS 00] CORS, 왜 필요할까? [CORS 01] CORS 기본 동작 과정 CorsConfig.java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter; @Con..
1. 클라이언트에서 HTTP Request시 브라우저가 header에 Origin을 담아서 보냄 2. 서버는 응답 header에 Access-Control-Allow-Origin을 담아서 전송 3. 브라우저가 Origin과 Access-Control-Allow-Origin을 비교 비교 후 Access-Control-Allow-Origin에 Origin이 없거나 다르다면 CORS 에러 발생 출처 교차 출처 리소스 공유 (CORS) - HTTP | MDN 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라 developer.mozi..
CORS (Cross-Origin Resource Sharing) 한 도메인에서 로드되어 다른 도메인에 있는 리소스와 상호 작용하는 클라이언트 웹 애플리케이션에 대한 방법을 정의 왜 CORS가 필요할까? CSRF 문제를 방지하기 위해 기본적으로 동일 오리진 정책(SOP)을 사용 승인된 다른 origin에서 데이터를 가져오는 것이 제한됨. 다른 origin에서 데이터를 공유해야 하는 경우가 있을 수 있음. 따라서 데이터 공유를 허용할 특정 origin을 적어놓은 것이 CORS이다. ❓ CSRF(Cross Site Request Forgery) 사이트 간 요청 위조 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격 ❓동일 오리진 정책(SOP..
Spring Security를 사용하기 위해 먼저 Security 설정을 해주어야 한다. 이 때, 설정 정보들을 하나의 class에 적어주는데 이것이 바로 SecurityConfig.java이다. SecurityConfig.java : Spring Security 설정 정보들을 작성해놓은 Class 해당 클래스 안에 filterChain이라는 method에 설정을 지정해준다. @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { return http .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and() .csrf()...
| Spring Security란? 애플리케이션의 인증, 인가, 공격 보호(protection agaist common attatcks)의 보안 기능을 제공하는 framework 인증(Authentication) - 사용자가 누구인지 확인하는 단계 ex) 로그인 - DB에 등록된 아이디와 패스워드를 사용자가 입력한 아이디와 비밀번호의 일치 여부 확인하는 과정 인가(Authorization) - 인증을 통해 검증된 사용자가 애플리케이션 내부의 리소스에 접근할 때 접근할 권리가 있는지 확인하는 과정 - 일반적으로 사용자가 인증 단계에서 발급받은 토큰은 인가 내용을 포함하고 있음. ex) 게시판 접근 등급 확인해 접근을 허가하거나 거부 | 왜 사용하는가? 1. 모든 URL에 대해서 인증을 요구한다. - int..