development

http 프록시는 어떻게 작동합니까?

big-blog 2021. 1. 7. 20:38
반응형

http 프록시는 어떻게 작동합니까?


웹에서 http-proxy에 대해 검색했습니다. 프록시 서버에 대한 위키 기사를 읽었습니다. 그러나 나는 여전히 http 프록시가 어떻게 작동하는지 이해하지 못합니다.

http 프록시의 작동 방식에 대한 내 가정은 다음과 같습니다. http-proxy를 특정 Proxy_A로 설정하면 chrome / IE를 시작할 때 특정 URL (예 : URL_A)을 입력하면 chrome / IE가 전송됩니다. Proxy_A에 직접 요청을 보내면 Proxy_A가 URL_A의 실제 서버에 요청을 보냅니다.


HTTP 프록시는 HTTP 프로토콜을 말하며 특히 HTTP 연결 용으로 만들어졌지만 다른 프로토콜에도 악용 될 수 있습니다 (이미 표준입니다).

브라우저 (CLIENT)는 GET http://SERVER/path HTTP/1.1PROXY로 전송 합니다.
이제 PROXY는 실제 요청을 SERVER로 전달합니다.
SERVER는 CLIENT와 마찬가지로 PROXY를 연결로만보고 PROXY에 응답합니다.
PROXY는 응답을 수신하고이를 다시 CLIENT에게 전달합니다.

이는 투명한 프로세스이며 서버와 직접 통신하는 것과 거의 비슷하므로 브라우저가 HTTP 프록시를 구현하는 것은 약간의 오버 헤드 일뿐입니다.
클라이언트를 식별하기 위해 보낼 수있는 몇 가지 추가 헤더가 있으며 그가 프록시를 사용하고 있음을 나타냅니다.
프록시는 다양한 목적으로 데이터 스트림 내에서 콘텐츠를 변경 / 추가하는 경우가 있습니다.
예를 들어 일부 프록시는 서버 측에 기록되거나 스크립트에서 가로 챌 수있는 특수 HTTP HEADER에 실제 IP를 포함합니다.

CLIENT <---> PROXY <---> SERVER

업데이트 :
보안 / 개인 정보 보호 기능으로 프록시 사용
과 관련됨 위의 ASCII에서 볼 수 있듯이 CLIENT와 SERVER 간에는 직접적인 통신이 없습니다. 양 당사자는 그들 사이의 PROXY와 대화합니다.
현대 세계에서 CLIENT는 종종 브라우저이고 SERVER는 종종 웹 서버 (예 : Apache)입니다.

이러한 환경에서 사용자는 종종 PROXY가 안전하고 신원을 유출하지 않는다고 신뢰합니다.
그러나 브라우저에서 실행되는 복잡한 소프트웨어 프레임 워크로 인해이 보안 모델을 망칠 수있는 많은 방법이 있습니다.
예를 들어 Flash 또는 Java 애플릿은 프록시 연결이 끊어지는 완벽한 예입니다. Flash와 Java는 둘 다 부모 응용 프로그램 (브라우저)의 프록시 설정에 크게 신경 쓰지 않을 수 있습니다.
또 다른 예는 PROXY 및 애플리케이션 설정에 따라 프록시없이 대상 네임 서버에 도달 할 수있는 DNS 요청입니다.
또 다른 예로는 쿠키 또는 브라우저 메타 풋 프린트 (해결책, 응답 시간, 사용자 에이전트 등)가 있습니다. 이는 웹 서버가 이미 귀하를 과거로부터 알고있는 경우 (또는 프록시없이 다시 만나는 경우) 귀하를 식별 할 수 있습니다.

그리고 결국 프록시 자체는 그것을 통과하는 모든 데이터를 읽을 수 있고 SSL 보안을 깨뜨릴 수도 있기 때문에 신뢰할 수 있어야합니다.

프록시에서
프록시 를 얻을 수있는 위치는 서비스로 구매하거나 스캔하거나 직접 실행할 수 있습니다.

공용 프록시
가장 자주 사용되는 프록시이며 "공용"이라는 일반적인 용어는 오해의 소지가 있습니다.
더 나은 용어는 "개방형 프록시"입니다. 방화벽이나 인증없이 프록시 서버를 실행하면 전 세계의 누구나 찾아서 남용 할 수 있습니다.
프록시를 판매하는 대부분의 회사는 인터넷에서 이러한 프록시를 검색하거나 해킹 된 Windows 컴퓨터 (봇넷)를 사용하여 대부분 불법 / 스팸 활동에 판매합니다.
대부분의 현대 국가에서는 승인없이 공개 프록시를 남용으로 간주 할 수 있습니다. 이는 매우 흔한 일이지만 실제로는 감옥에 갇힐 수 있습니다.
인터넷에서 열린 포트를 검색하여 프록시를 검색 할 수 있습니다. 일반적인 무료 프로그램은 https://nmap.org입니다.
주의 사항 : 더 큰 규모의 스캔은 ISP에 의해 인터넷 연결을 거의 차단하게됩니다.

유료 프록시
여기에는 4 가지 유형의 프록시가 있습니다.
1) 유료 공개 (공개) 프록시
기본적으로 이러한 판매자는 죽은 프록시를 제거하기 위해 정기적으로 새로 고쳐지는 거대한 프록시 목록을 판매하거나 재판매합니다.
프록시는 대규모로 악용되며 일반적으로 Google을 포함한 대부분의 사이트에서 블랙리스트에 올립니다.
추가로 이러한 프록시는 일반적으로 매우 불안정하고 매우 느립니다.
이러한 프록시의 대부분은 단순히 잘못 구성된 서버를 악용하고 있습니다. 경쟁이 매우 치열한 "시장"이며 Google은 많은 사례를 이끌어 낼 것입니다.

2) 유료 해킹 (봇넷) 프록시
이들은 주로 사물 인터넷 또는 Windows 데스크톱을 프록시 호스트로 사용하는 남용 컴퓨터입니다. 공격자들은 다양한 불법적 인 목적으로이를 대규모로 사용합니다.
판매자는 일반적으로 불법적 인 특성을 숨기기 위해 "주거용 프록시"라고 부릅니다.
이러한 프록시를 사용하는 것은 의심 할 여지없이 불법이며 남용 된 사용자는 대상에 대한 연결을 가로채는 가능성을 포함하여 연결하면 "귀하의"IP를 쉽게 기록 할 수 있습니다.
소스에 따라 이러한 IP는 블랙리스트에 포함되지 않으므로 "품질"이 공개 프록시보다 훨씬 좋습니다.

3) Paid shared proxies
These are datacenter proxies, usually legal and potential with a fast uplink.
Due to the fact that there is so much e-commerce spam going on those IPs are massively abused and usually found in blacklists.
A typical use would be circumvention of craigslist restrictions or geo-restrictions.

4) Paid private/dedicated proxies
"private" means dedicated. If the operator is professional it means your proxy is not shared among other people.
These are often used for more professional and legal activity, especially when the proxy IP is rented for alonger period.
A well known operator would be https://us-proxies.com

Own proxies
Running an own proxy is possible as well, there are various open-source projects available.
The mostly used proxy server is https://squid-cache.org


To add to John's great answer above, one important step is the initial CONNECT handshake between PROXY and CLIENT. From the Websocket RFC

CONNECT example.com:80 HTTP/1.1
Host: example.com

This is the same request that a CLIENT uses to open an SSL tunnel, which essentially uses a proxy

ReferenceURL : https://stackoverflow.com/questions/7155529/how-does-http-proxy-work

반응형