본문 바로가기
junior developer :)/TIL

프록시 서버 (Proxy server)_CORS 에러

by ㅁ윤슬ㅁ 2022. 12. 8.
728x90
반응형

전에 COPCORS 에 대한 공부를 한 적이 있었다.
SOP 동일 출처 정책으로, 사용자의 정보가 타 사이트로 넘어가지 않게 하기 위해 사용하는 보안 방식이다.
서로 다른 URI 와의 상호작용을 요청한다면 CORS 에러를 발견할 수 있을 것이다.
이를 해결할 수 있는 방식으로 고안된 CORS교차 출처 리소스로 추가 HTTP 헤더를 사용하여 다른 URI에서의 원하는 API나 정보에 접근할 수 있는 권한을 부여하도록 브라우저에 알려줘 SOP로 인해 제한된 보안을 해제 할 수 있다.

SOP와 CORS에 대한 자세한 내용은 아래 링크에서 확인 할 수 있다.
Web Sever(SOP 와 CORS)

이는 사용자와 서버가 바로 소통하는 모습을 그리고 있지만 CORS 방식을 사용하지 않고도 가운데에 중계인 (proxy server)를 넣어 CORS 정책을 우회할 수 있다. 

프록시 서버

프록시 서버는 서버를 통해 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 응용프로그램을 말한다.

프록시를 적용하기 전에는

1. frontEnd에서 브라우저로 요청
2. 브라우저가 백엔드로 접근 권한 리소스 요청
3. 백엔드에서 브라우저로 접근 권환 확인 요청에 대해 응답
4. 브라우저가 응답 파기 여부 결정(CORS error) or 출처가 같다면 frontEnd쪽으로 응답 전달

이렇게 4단계에 거쳐 응답에 대한 흐름이 진행되지만

프록시 적용 후에는

1. frontEnd에서 브라우저를 통해 요청을 보낼 때, proxy를 통해 백엔드 서버로 요청을 우회하여 보내게 된다.
2. 백엔드 서버는 응답을 frontEnd로 보내고 frontEnd는 받은 응답을 브라우저에 바로 전달한다.

이렇게 되면 출처가 같아져 응답을 받을 수 있다.

프록시 서버를 사용하는 이유

1. 개인정보 보호 
프록시 서버를 사용하지 않고 타 사이트의 서버에 요청을 하게 되면 사용자의 IP주소가 노출이 될 수 있다.
하지만 프록시 서버를 사용한다면 사용자의 IP가 아닌 프록시 서버의 IP가 노출이 되기 때문에 많은 정보를 알아낼 수 있는 IP주소를 보호할 수 있다.

프록시 서버를 여러대 연결시켜 클라이언트의 IP주소를 숨기는 기술을 Proxy Chaining이라고 한다.

2. 속도 향상 (캐시 이용)
프록시 서버가 웹 페이지를 가져올 때 자신의 데이터베이스에 최근 데이터를 저장해 놓는다.
그렇기 때문에 이미 저장된 캐시에 웹 페이지가 있다면 바로 클라이언트에 전송함으로써 속도를 향상 시킬 수 있다 

3. 로그 기록 관리
서버에게 개인정보가 보호되지만, 프록시 서버에는 클라이언트의 기록이 남아있기 때문에 연결된 클라이언트의 정보를 제어할 수 있다.
회사에서 관리자가 프록시 서버를 열어 직원들이 어떤 사이트에 접속했는지 확인하거나 방문할 수 있는 웹 사이트를 제한하는 것 등이 프록시 서버로 가능하다.

 

프록시와 비슷한 개념으로 VPN도 있다. VPN도 추가학습하여 블로깅해봐야겠다.


출처

https://nordvpn.com/ko/blog/proxy-versus-vpn/

https://digiconfactory.tistory.com/entry/%ED%94%84%EB%A1%9D%EC%8B%9C-%EC%84%9C%EB%B2%84-Proxy-Server-%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

728x90
반응형