😀 Jerry/면접 질문

[1분 면접] 포워드 프록시와 리버스 프록시의 차이점

Jerry_K 2025. 2. 26. 11:57

📌 면접 답변

포워드 프록시 (Forward Proxy)

  • 네트워크 사용자 보호 또는 접근 제어에 사용
  • 주로 클라이언트 측에 위치하여, 사용자가 인터넷 접근할 때 중개자 역할
  • 핵심 기능은 익명성 제공, 캐싱, 보안 강화(불법 콘텐츠 접근 차단)

예시로 회사 내부 네트워크에서 직원이 외부 웹사이트 접속하려 할 때, 포워드 프록시 서버를 통해 전달

→ 여기에서 사용자의 실제 IP 주소는 숨겨지고, 프록시 서버의 IP 주소가 대신 사용 

 

 

리버스 프록시 (Reverse Proxy

  • 서버 보호로드 밸런싱 수행에 사용
  • 서버 측에 위치하여 외부에서 들어오는 클라이언트 요청을 내부 서버로 전달하는 역할
  • 핵심 기능은 로드 밸렁싱으로 서버 트래픽 분산 및 고가용성 유지
  • 외부에서 직접 백엔드 서버에 접근하지 못하게 함
    • DDOS 공격이나 해킹 시도로부터 서버 보호 
  • SSL/TSL 암호화를 리버스 프록시에서 처리하여 백엔드 서버 부담을 줄이고, 중앙에서 인증서 관리 가능
    • 내부의 서버들이 각각의 SSL 인증서를 관리하지 않아도 됨
  • 정적 콘텐츠 캐싱하여 응답속도 향상 

 


📌 나의 답변

프록시는 클라이언트와 서버 통신에서 중계 다리 역할을 한다. 

클라이언트에서 서버로 보내는 과정에 있는 프록시를 포워드프록시 

서버에서 클라이언트로 보내낸 과정에 있는 프록시를 리버스 프록시라고 한다. 

 

프록시로 인해,  클라이언트의 보안을 강화시킬 수 있다.  


📌 내용 보충

이전에 CORS 정책에 대해 면접 포스팅을 한 적이 있었는데,

프록시로도 CORS 문제를 우회할 수 있다. 

 

https://summerr.tistory.com/84 (이 그림이 딱 적절하다.)

 

웹 애플리케이션이 직접적으로 리소스에 요청하는 대신 , 프록시 서버에 요청을 보낸다.

그리고 프록시 서버가 요청을 전달하고 응답을 보낸다. 
이렇게 할 경우 프록시에서 요청이 보내진 것처럼 보인다.

 

브라우저는 클라이언트의 요청과 요청받은 응답을 비교하고 문제없이 CORS 에러를 피할 수 있다.

 

이렇게 프록시를 사용하면 클라이언트는 하나의 출처(Origin)에서

API 요청하는 것처럼 보이기 때문에 CORS 설정을 간소화 할 수있다.

 

만일 이렇게 하지 않을 경우 API 마다 Access-Control-Allow-Oring을 개별 관리해야해서 복잡해진다. 

 

 

 

그러면 여기서 또 다시 CSRF 의 문제가 발생 할 수도 있다...

CORS의 본 목적은 허용되지 않는 다른 출처의 요청을 제한하는 것 인데,

공격자도 프록시에 요청을 보내면 자신의 출처를 숨길 수 있다. 

 

 

이럴경우, 아래와 같은 방법으로 어느정도 CSRF 공격을 막을 수 있다.

CSRF 토큰을 생성하여 클라이언트에게 전달하거나,

쿠키 설정을 통해 SameSite 옵션 (같은 도메인)에서만 전송되도록 제한을 하거나., 

Origin 또는 Referer 헤더를 확인하여 신뢰할 수 있는 출처인지 검증하거나,

Content-Type에서 application/json 등을 요청하면 CSRF 공격이 어려워진다. 

 


 

 

 

CORS(교차 출처 리소스 공유) | 토스페이먼츠 개발자센터

CORS를 번역하면 “교차 출처 리소스 공유”에요. ‘두 출처가 서로 다르다’는 뜻인데요. CORS를 설정한다는 건 ‘출처가 다른 서버 간의 리소스 공유’를 허용한다는 거죠.

docs.tosspayments.com

CORS와 프록시 관련해서는 토스에서 만든 자료가 좋으니 참고하자 ! 

 

 

 

매일메일 - 기술 면접 질문 구독 서비스

기술 면접 질문을 매일매일 메일로 보내드릴게요!

www.maeil-mail.kr

매일 메일의 면접 질문 정리