네이버 클라우드 캠프

CORS, CSRF

99duuk 2024. 5. 31. 01:01

이 코드는 스프링 애플리케이션의 CORS 설정을 정의합니다.

  • addMapping("/")**: 모든 경로에 대해 CORS를 적용합니다.
  • allowedOrigins("*"): 모든 도메인에서의 요청을 허용합니다.
  • allowedMethods("HEAD", "GET", "POST", "PUT", "DELETE", "OPTIONS"): 나열된 HTTP 메서드를 허용합니다.
  • maxAge(300): 사전 요청(프리플라이트 요청)의 캐시 시간을 300초로 설정합니다.
  • allowedHeaders("Authorization", "Cache-Control", "Content-Type"): 지정된 헤더들을 허용합니다.

CORS (Cross-Origin Resource Sharing)

CORS는 웹 브라우저에서 다른 도메인(출처)의 리소스에 접근할 때 발생하는 문제를 해결하기 위한 보안 기능입니다. 기본적으로 웹 브라우저는 보안상의 이유로, 현재 웹페이지가 로드된 도메인과 다른 도메인의 리소스에 접근하는 것을 제한합니다. CORS는 이러한 제한을 제어하고, 안전한 방법으로 다른 도메인의 리소스에 접근할 수 있도록 허용합니다.

CSRF (Cross-Site Request Forgery)

**CSRF (Cross-Site Request Forgery)**는 악의적인 웹사이트가 사용자의 브라우저를 통해 사용자 권한으로 요청을 전송하여, 사용자가 의도하지 않은 행동을 하게 만드는 공격입니다. 예를 들어, 사용자가 은행 웹사이트에 로그인한 상태에서, 악의적인 웹사이트를 방문하게 되면, 이 웹사이트가 사용자 대신 은행에 돈을 송금하는 요청을 보낼 수 있습니다.

CSRF 공격 방지 방법:

  • CSRF 토큰 사용: 모든 상태 변경 요청에 대해 고유한 토큰을 요구합니다. 이 토큰은 서버가 생성하고 클라이언트가 요청에 포함시킵니다.
  • Referer 검증: 요청의 출처(Referer)를 확인하여, 신뢰할 수 있는 출처에서 온 요청만 처리합니다.
  • SameSite 쿠키 속성: SameSite 속성을 사용하여, 다른 도메인에서의 요청에는 쿠키가 포함되지 않도록 설정합니다.

요약

  • CORS 설정: 다른 도메인에서 리소스에 접근할 수 있도록 허용하는 설정. 이를 통해 특정 도메인 또는 모든 도메인에서의 요청을 허용할 수 있음.
  • CSRF 공격: 악의적인 사이트가 사용자의 권한으로 요청을 보내도록 유도하는 공격. 이를 방지하기 위해 CSRF 토큰, Referer 검증, SameSite 쿠키 속성을 사용함.
 
 

'네이버 클라우드 캠프' 카테고리의 다른 글

React_{children}, import vs const-require  (0) 2024.05.31
@ElementCollection_임베디드 테이블  (0) 2024.05.31
JPA_엔티티 그래프  (0) 2024.05.28
JPA_값 타입 객체  (0) 2024.05.28
React 입문 -  (0) 2024.05.19