본문 바로가기

전체 글290

CORS(Cross-Origin Resource Sharing, 교차 출처 리소스 공유) CORS(Cross-Origin Resource Sharing)는 웹 애플리케이션이 다른 출처의 리소스에 접근할 수 있도록 허용하는 보안 메커니즘입니다. 이 기능은 브라우저와 서버 간의 보안 정책을 설정해, 외부 출처로부터의 요청을 제어할 수 있도록 합니다. CORS 설정은 웹 애플리케이션의 보안을 강화하면서도, 필요한 경우에만 특정 출처에서의 요청을 허용할 수 있게 해줍니다. 1. 기본 CORS 개념CORS는 동일 출처 정책(SOP, Same-Origin Policy)에 기반을 두고 있으며, 웹 페이지가 로드된 출처(도메인, 프로토콜, 포트)와 다른 출처의 리소스에 접근할 수 없도록 제한하는 보안 장치입니다. CORS를 통해 서버는 외부 출처에서의 요청을 허용할 수 있습니다.2. CORS 요청 유형Si.. 2024. 11. 1.
CSRF(Cross-Site Request Forgery) HTML 코드는 CSRF(Cross-Site Request Forgery) 공격의 예시입니다. CSRF 공격은 사용자가 인증된 세션을 유지한 상태에서 특정 사이트를 방문하게 하여, 악의적인 요청을 사용자의 계정으로 전송하게 만드는 공격 기법입니다. 예를 들어, 사용자가 이미 mybank.com에 로그인된 상태에서 해당 코드를 포함하는 페이지를 로드하면, 자동으로 자금 이체 요청이 실행됩니다.설명:자동 폼 전송: 로 폼이 자동 전송되도록 설정하여 사용자가 의도하지 않은 자금 이체 요청이 수행됩니다.자동 쿠키 전송: www.xxx.com을 통해 자동으로 쿠키가 첨부되어 세션이 유지된 상태로 요청이 전달됩니다.방지 방법:CSRF 토큰 사용: 서버는 폼과 함께 고유한 토큰을 발급하여, 요청 시 해당 토큰을 포함.. 2024. 10. 31.
Filter (FilterChain) 스프링 시큐리티(Spring Security)는 다양한 필터로 구성된 필터 체인을 통해 보안 기능을 구현합니다. 각 필터는 인증(Authentication), 권한 부여(Authorization), 세션 관리 등 특정한 보안 기능을 수행합니다. Spring Security의 필터는 특정 순서에 따라 동작하며, 이로 인해 전체 보안 프로세스가 체계적으로 처리됩니다. 주요 필터와 그 역할을 정리하면 다음과 같습니다:1. SecurityContextPersistenceFilter역할: 요청이 들어오면 SecurityContext를 조회하고, 인증 정보를 유지합니다. 요청이 끝나면 SecurityContext를 세션에 저장하여 이후 요청에서도 인증 정보를 사용할 수 있게 합니다.위치: 보안 체인의 가장 앞 부분.. 2024. 10. 31.
Spring Security에서 중요한 인터페이스들 Spring Security에서 중요한 인터페이스들은 인증(Authentication), 인가(Authorization), 그리고 보안 상태 관리와 관련된 기능을 제공합니다.1. UserDetailsUserDetails는 Spring Security에서 사용자 정보를 나타내는 인터페이스입니다. 사용자 정보의 형태를 정의하여, Spring Security가 인증을 위해 사용하는 사용자 정보를 일관되게 관리할 수 있습니다.주요 메서드:getUsername(): 사용자의 이름(예: ID) 반환.getPassword(): 암호화된 비밀번호 반환.getAuthorities(): 사용자에게 부여된 권한 목록 반환.isAccountNonExpired(): 계정 만료 여부 확인.isAccountNonLocked(): .. 2024. 10. 30.
스레드풀 스레드 풀(Thread Pool)은 미리 생성된 일정 수의 스레드 묶음으로, 여러 작업을 동시에 효율적으로 처리하기 위해 사용됩니다. 매번 새로운 스레드를 생성하지 않고 재사용 가능한 스레드를 미리 준비해두는 방식으로, 시스템 자원 소모를 줄이고 작업 처리 성능을 향상시킵니다.스레드 풀의 작동 방식스레드 생성: 애플리케이션이 시작될 때, 설정된 수만큼의 스레드를 미리 생성합니다. 이 스레드들은 작업이 할당되기를 기다리면서 풀 안에 대기 상태로 있습니다.작업 할당: 작업이 요청되면, 스레드 풀에서 대기 중인 스레드가 할당되어 해당 작업을 처리합니다.스레드 반환: 작업이 끝나면, 해당 스레드는 종료되지 않고 다시 풀로 반환되어 다음 작업을 처리할 준비를 합니다. 이로써 스레드를 지속적으로 재사용할 수 있습니.. 2024. 10. 29.
2024.10.29(화) { 토큰&세션&JWT, 로그인 요청처리 } 토큰&세션&JWT 1. 토큰 (Token)정의: 토큰은 인증 정보와 기타 데이터를 포함한 문자열로, 사용자가 인증되었음을 나타내거나 특정 권한을 부여받았음을 증명하는 데 사용됩니다.사용 예시:웹 애플리케이션에서 사용자가 로그인하면 서버는 사용자를 인증하고, 토큰을 발급하여 사용자의 인증 상태를 유지합니다.장점:무상태(stateless) 성격으로 서버가 인증 정보를 직접 저장할 필요가 없습니다.단점:토큰이 만료되기 전까지는 유효하여, 해킹 시 악용될 수 있으므로 보관에 주의가 필요합니다.2. 세션 ID (Session ID)정의: 세션 ID는 서버가 생성하고 클라이언트와 연결하는 고유한 ID로, 주로 쿠키에 저장되며 사용자가 로그인한 이후 서버에서 사용자 상태를 유지하는 데 사용됩니다.사용 예시:사용자가 .. 2024. 10. 29.