Spring Boot/Security (18) 썸네일형 리스트형 SecurityFilterChain에 H2 콘솔이 막힐때 h2 로그인 후에 콘솔이 보이지 않는다십중팔구 Security implements 되어있어서 그런거임 이걸 어떻게 해결하는가? 자주 해결했지만 자주 까먹어서 적어둔다 import org.springframework.boot.autoconfigure.security.servlet.PathRequest;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.core.annotation.Order;import org.springframework.security.config.annotation.method.configura.. CSRF : enable(), disable() Security 6.x 기준 CSRF는 기본적으로 enable() 상태이다 @Configurationpublic class SecurityConfig { @Bean public SecurityFilterChain defaultChain(HttpSecurity http) throws Exception { http .csrf(csrf -> csrf.enable()) // 기본값, 메서드는 없음 .authorizeHttpRequests(auth -> auth.anyRequest().authenticated()); return http.build(); } 이걸 언제 disable()로 사용해야 하는가? https:/.. 주요 웹 보안 이슈 & Security 방어 전략 : CORS Cross-Origin Resource Sharing - CORS의 개념, 필요성 - Same-Origin Policy(동일 출처 정책)의 의미, 한계 - CORS의 동작 원리(단순 요청 vs Preflight 요청) 이해 - CORS 해결을 위한 HTTP 응답/요청 헤더의 역할 - Security에서 제공하는 CORS 설정법CORS(Cross-Origin Resource Sharing) 이란 위 에러는 브라우저가 preflight 요청을 보냈는데 (Response to preflight request)서버가 응답 헤더에 Access-Control-Allow-Origin 이걸 안넣었다 (서버가 CORS 허용 헤더를 안내려줌)그래서 브라우저가 다른 출처의 요청을 허용하지 않아서 차단한거임 CORS(C.. 주요 웹 보안 이슈 & Security 방어 전략 : XSS XSS(Cross-Site Scripting) - XSS 공격의 개념, 위험성 - XSS 공격의 주요 유형과 실제 동작 방식 - Security에서 제공하는 XSS 방어 기법 - 기본 응답 헤더 설정을 통해 보안을 강화하는 방법 - Content-Security-Policy(CSP) 활용 실습XSS(Cross-Site Scripting)1. 개념XSS는 공격자가 악의적인 스크립트를 웹페이지에 삽입하여 사용자의 브라우저에서 실행되도록 하는 공격 기법임주로 쿠키 탈취, 세션 하이재킹, 악성 사이트 리다이렉션, 피싱 등에 활용된다 2. XSS 주요 유형유형설명예시Stored XSS서버 DB에 저장된 악성 스크립트가 여러 사용자에게 전달됨게시판 글 내용에 삽입Reflected XSSURL 파라미터에 삽입된.. 주요 웹 보안 이슈 & Security 방어 전략 : CSRF CSRF(Cross-Site Request Forgery) - CSRF 공격의 개념, 위험성 - Security의 기본 CSRF 보호 메커니즘 - CsrfFilter와 CsrfToken의 동작 방식 - http.csrf() 설정을 통한 CSRF 방어 - 실무에서 CSRF 보호를 커스터마이징 하는법 - 토큰 생성, 저장, 전달, 검증 과정의 내부 동작 이해CSRF(Cross-Site Request Forgery)1. 개념CSRF는 사용자가 의도하지 않은 요청을 공격자가 위조하여 서버에 보내도록 하는 공격 기법임피해자는 이미 로그인된 세션을 가진 상태이므로, 서버는 공격자가 보낸 요청을 정상 요청으로 오인하게 된다 결과적으로 사용자는 모르는 사이에 계정 정보 변경, 송금, 글 작성 등의 행위가 발생할 수 .. 커스텀 필터 구현 : 구현해보기 리포지토리https://github.com/B1uffer/customFilterTest 1. 시나리오요청 / 응답 로깅 필터 : 모든 요청의 메서드 / URL / 상태 / 소요시간을 기록하고, 민감정보는 마스킹함감사(Audit) 필터 : 누가(사용자 or 익명) 언제 어떤 자원에 접근했는지 기록함성능 모니터링 필터 : 처리 시간을 측정하고 임계값 초과시 경고 로그를 남김테스트용 API : 공개 API, 인증 필요 API, 일부러 지연되는 API 설계 2. 실행, 테스트1. Postman 테스트 시나리오공개 API(로깅 / 성능 / 감사 로그 확인)Method : GETURL : http://localhost:8080/public/hello?name=neo&password=secret설명 : 인증이 필요.. 커스텀 필터 구현 : 필터체인에 커스텀 필터 추가하기 - Spring Security의 필터 체인 구조 이해하기 - 커스텀 필터를 필터 체인에 추가하는 방법 - 특정 위치에 커스텀 필터를 삽입하는 방법 - 기존 필터 앞 / 뒤에 배치하여 실행 순서를 제어하는 방법 알기 - URL 패턴 기반 필터 적용 대상을 제한하는 두가지 방식(단일 체인 vs 다중 체인) 비교해서 알기필터 체인에 커스텀 필터 추가1. 특정 위치에 필터 추가하기Security에서는 필터 체인에 커스텀 필터를 원하는 위치에 추가할 수 있다일반적으로 SecurityFilterChain을 구성할 때addFilterBefore, addFilterAfter, addFilterAt 메서드를 사용할 수 있다 @Bean public SecurityFilterChain filterChain(Htt.. 커스텀 필터 구현 : 구현 방법 - 커스텀 필터를 직접 구현하는 방법 - GenericFilterBean을 확장하여 필터를 구현하는 방법 - OncePerRequestFilter를 활용하여 요청당 한번만 실행되는 필터 작성하기 - 필터 내부에서 요청 / 응답 객체를 다루고 원하는 로직을 삽입하는 방법 - 실무에서 자주 사용되는 커스텀 필터 패턴 예시커스텀 필터 구현 방법1. GenericFilterBean 확장Spring Security에서 필터를 구현할 때 가장 기본적으로 사용할 수 있는 클래스javax.servlet.Filter 를 구현한 추상 클래스이며, 스프링 빈으로 등록 가능하도록 지원한다 CustomGenericFilter 클래스, GenericFilterBean을 상속함import jakarta.servlet.FilterC.. 이전 1 2 3 다음