web-dev-qa-db-fra.com

comment fonctionne le proxy http?

J'ai cherché sur le Web quelque chose à propos de http-proxy. J'ai lu des articles wiki sur le serveur proxy. Mais je ne comprends toujours pas comment fonctionne le proxy http, stupide moi.

Voici mon hypothèse sur le fonctionnement du proxy http: Si je définit le proxy http sur un spécifique, dites Proxy_A, puis lorsque je démarre le chrome/IE, tapez une URL spécifique, dites URL_A, le chrome/IE envoie-t-il la demande directement à Proxy_A, puis le Proxy_A envoie la demande au vrai serveur d'URL_A?

53
Alcott

Un proxy HTTP parle le protocole HTTP, il est spécialement conçu pour les connexions HTTP mais peut également être utilisé pour d'autres protocoles (ce qui est déjà un peu standard)

Le navigateur (CLIENT) envoie GET http://SERVER/path HTTP/1.1 au PROXY
Maintenant, le mandataire transmettra la demande réelle au SERVEUR.
Le SERVEUR ne verra le PROXY que comme connexion et répondra au PROXY comme à un CLIENT.
Le PROCURATEUR reçoit la réponse et la renvoie au CLIENT.

C'est un processus transparent et presque comme communiquer directement avec un serveur, il ne s'agit donc que d'un minuscule surcoût pour le navigateur pour implémenter un proxy HTTP.
Il existe des en-têtes supplémentaires qui peuvent être envoyés pour identifier le client, révéler qu'il utilise un proxy.
Les mandataires modifient/ajoutent parfois du contenu dans le flux de données à diverses fins.
Certains mandataires, par exemple, incluent votre adresse IP réelle dans un EN-TÊTE HTTP spécial qui peut être enregistré côté serveur ou intercepté dans leurs scripts.

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

Mise à jour:
Lié à l'utilisation de procurations comme fonction de sécurité/confidentialité
Comme vous pouvez le voir dans l'ascii ci-dessus, il n'y a pas de communication directe entre le CLIENT et le SERVEUR. Les deux parties parlent simplement au mandataire entre elles.
Dans les mondes modernes, le CLIENT est souvent un navigateur et le SERVEUR est souvent un serveur Web (Apache par exemple).

Dans un tel environnement, les utilisateurs font souvent confiance au PROXY pour être sécurisé et ne pas divulguer leur identité.
Cependant, il existe de nombreuses façons possibles de ruiner ce modèle de sécurité en raison de cadres logiciels complexes fonctionnant sur le navigateur.
Par exemple, Flash ou Java sont un exemple parfait de la façon dont une connexion proxy peut être rompue, Flash et Java les deux peuvent ne pas se soucier les paramètres proxy de leur application parente (navigateur).
Un autre exemple est les requêtes DNS qui peuvent atteindre le serveur de noms de destination sans PROXY en fonction du PROXY et des paramètres de l'application.
Un autre exemple serait les cookies ou la méta-empreinte de votre navigateur (résolution, temps de réponse, user-agent, etc.) qui pourraient tous deux vous identifier si le serveur Web vous connaît déjà par le passé (ou vous retrouve sans proxy) .

Et à la fin, le proxy lui-même doit être approuvé car il peut lire toutes les données qui le traversent et en plus, il pourrait même être en mesure de briser votre sécurité SSL (lire l'homme au milieu)

Où obtenir des procurations
Les procurations peuvent être achetées en tant que service, numérisées ou simplement gérées par vous-même.

Proxy publics
Ce sont les procurations les plus utilisées et le terme usuel "public" est assez trompeur.
Le meilleur terme serait "procurations ouvertes". Si vous exécutez un serveur proxy sans pare-feu ni authentification, n'importe qui dans le monde peut le trouver et en abuser.
La grande majorité des entreprises qui vendent des proxys recherchent simplement ces proxys sur Internet ou utilisent des ordinateurs Windows piratés (botnets) et les vendent pour la plupart des activités illégales/spam.
La plupart des pays modernes peuvent voir l'utilisation d'un proxy ouvert sans autorisation comme un abus, c'est une chose très courante mais peut en fait entraîner des peines de prison.
Il est possible de rechercher des proxys en recherchant sur Internet des ports ouverts, un programme gratuit typique serait https://nmap.org
À titre de mise en garde: une numérisation à plus grande échelle aura presque certainement pour effet de bannir votre connexion Internet par votre FAI.

Procurations payées
Nous avons ici 4 types de procurations:
1) Proxy publics (ouverts) payants
Fondamentalement, ces vendeurs vendent ou revendent d'énormes listes de procurations qui sont régulièrement mises à jour pour supprimer les morts.
Les procurations sont utilisées à grande échelle et sont généralement mises sur liste noire sur la plupart des sites, y compris Google.
Ces procurations supplémentaires sont généralement très instables et très lentes.
La grande majorité de ces proxys abusent simplement de serveurs mal configurés. C'est un "marché" très compétitif, Google en donnera de nombreux exemples.

2) Proxy mandatés piratés (botnet)
Il s'agit d'abus d'ordinateurs, principalement des objets Internet ou des ordinateurs de bureau Windows en tant qu'hôtes proxy. Les attaquants les utilisent à grande échelle à diverses fins illégales.
Les vendeurs les appellent généralement "mandataires résidentiels" pour cacher leur nature illégale.
L'utilisation d'un tel proxy est sans aucun doute illégale et l'utilisateur abusé peut facilement enregistrer "votre" IP si vous vous y connectez, y compris la possibilité de détourner votre connexion à la destination.
Selon la source, ces adresses IP ne sont pas sur liste noire, donc la "qualité" est bien meilleure que les procurations publiques.

3) Proxy partagés payés
Ce sont des mandataires de centre de données, généralement légaux et potentiels avec une liaison montante rapide.
Étant donné qu'il y a tellement de spam de commerce électronique sur ces adresses IP, elles sont massivement abusées et se trouvent généralement dans les listes noires.
Une utilisation typique serait le contournement des restrictions de craigslist ou des restrictions géographiques.

4) Proxy privés/dédiés payants
"privé" signifie dédié. Si l'opérateur est professionnel, cela signifie que votre proxy n'est pas partagé entre d'autres personnes.
Ceux-ci sont souvent utilisés pour une activité plus professionnelle et légale, en particulier lorsque la propriété intellectuelle proxy est louée pour une période plus longue.
Un opérateur bien connu serait https://us-proxies.com

Propres procurations
L'exécution d'un propre proxy est également possible, il existe différents projets open-source disponibles.
Le serveur proxy le plus utilisé est https://squid-cache.org

71
John

Pour ajouter à la grande réponse de John ci-dessus, une étape importante est la prise de contact initiale CONNECT entre PROXY et CLIENT. Depuis le Websocket RFC

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

Il s'agit de la même demande qu'un CLIENT utilise pour ouvrir un tunnel SSL, qui utilise essentiellement un proxy

14
trik