우주먼지

💡 체크리스트

체크리스트

이번 프로젝트에서는 Spring Security, CSRF 설정을 안하므로, Spring Boot에서의 CSRF 설정방법 등 알아보기

1. 할 일 목록을 관리하는 웹 어플리케이션 개발
2. Tomcat 을 이용한 로컬 환경 수동배포
3. Ngrok을 통한 외부 접근 설정
4. Postman & todobackend 사이트를 이용한 결과 확인

💡 CORS & CSRF

 

Cross-Origin Resource Sharing

  • 어플리케이션 간 출처(Origin)이 다를때 적용되는 Resource ACL(SOP)
  • CORS는 이 ACL의 예외 조항으로, 화이트리스트 방식으로 선택적 접근 권한 허용 가능
  • 즉, SOP에서 다른 Origin에서의 리소스 공유를 막고, CORS로 부분 허용해줌

 

CORS 동작 방식

  • Request Preflight
    • 요청을 보내기 전, 사전요청(Option Method)을 보내 목적지의 리소스에 권한이 있는지 확인
    • 응답 헤더에 Access-Control-Allow-Origin로 보낸 Origin이 돌아오면 실제 요청 전송
    • 요청을 보낸 Origin이 접근 권한이 없으면 CORS 반환
  • Request Simple
    • 특정 조건이 만료되면 Preflight 단계를 생략하고 요청 전송
  • Request Credentialed
    • 요청 헤더에 Credential을 담아서 보냄
    • Origin이 다를경우, 별도의 설정을 안하면 쿠키 전송 X (민감정보이기 때문에)
    • Client & Server 양측의 CORS 설정 필요

 

CORS 설정 (Backend) - Option 1

  • 설정 클래스를 이용한 Global CORS 적용 - (이번 프로젝트에선 사용 X)
  • Annotation을 이용한 컨트롤러 & 메소드 단의 CORS 적용
    • @CrossOrigin
      • Attr - (origins = "https://...")

 

CSRF란 ?

- Cross-Origin(다른 출처) & Cross-Site(다른 사이트)
- 사이트 간 요청 위조 공격
- Spring Security는 CSRF 공격에 대해 Default 차단 되어있음 (CSRF Token 검증)
profile

우주먼지

@o귤o

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그