The request client is not a secure context and the resource is in more-private address space

주성민·2022년 12월 12일
1
post-thumbnail

CORS(Cross-Origin Resource Sharing

웹 개발을 진행하면 한번쯤 만나게 되는 이슈이다.

직역하면 교차 출처 리소스 공유인데 URL들은 여러 개의 구성 요소로 이루어져 있는데 예를 들어
https://www.jerry-platform.dev:8084/member?page=1#content
라는 임의의 URL이 있다면

  • protocol: https://
  • host: www.jerry-platform.dev:8084
  • path: /member
  • query String: ?page=1
  • fragment: #content

로 나누어 구분 가능하다.

여기서 protocolhost같은 출처인지를 구분하게 되는데 이에 대한 다른 출처의 리소스 공유에 대한 허용/비허용 정책이 CORS 이다.

SpringBootCORS 허용

WebMvcConfigurer를 implements한 다음 addCorsMappings를 오버라이드 해서 CORS관련 URL패턴을 정의하면 된다.

The request client is not a secure context and the resource is in more-private address space

위 CORS에 대한 허용을 했음에도 오류가 발생하며 정상적으로 값을 가져오지 못했는데 해당 오류는 origin 보다 더 낮은 수준의 네트워크로 요청을 보내는 경우 발생한다고 한다.

네트워크 수준은 다음과 같이 나뉘어 진다고 한다.

  • Local Address: 127.0.0.1, localhost 등 로컬 IP 주소
  • Private Address: 사설망 주소. 공유기에서 각 기기마다 부여되는 IP 주소
  • Public Address: 어느 인터넷 환경에서도 접속이 가능한 공인 IP 주소

나의 경우에는 Public 수준의 origin에서 private 수준의 origin으로 요청을 보내기 때문에 발생하고 있었다.

조금 찾아보면 브라우저단에서 해결가능한 방법이 있으나 해당 방법은 임시 방편일 뿐이고, 보안상 막아놓은 이유가 있듯 같은 수준의 네트워크로 맞춰주는 것이 근본적인 해결 방법이 될 것 같다.

profile
Java Dev

0개의 댓글