Un proxy direct est un serveur proxy qui envoie les demandes d'un client vers des sites web en son nom, de sorte que les sites voient l'adresse IP du proxy au lieu de celle du client. Il est souvent simplement appelé un proxy. Les proxies résidentiels, de datacenter, mobiles et ISP sont tous des proxies directs.

Comment fonctionne un proxy direct

  1. Le client choisit le proxy. La norme HTTP (RFC 9110) définit un proxy comme un agent choisi par le client, généralement par le biais d'une configuration locale telle que les paramètres du navigateur ou du système, un fichier PAC ou le code d'un scraper.
  2. Les requêtes HTTP simples portent l'URL complète. Le client envoie l'adresse complète au proxy, par exemple GET http://www.example.org/pub/WWW/TheProject.html HTTP/1.1, afin que le proxy sache quel serveur contacter.
  3. Les requêtes HTTPS utilisent un tunnel. Le client envoie CONNECT host:443, et le proxy relaye le trafic chiffré comme un relais aveugle sans modifier les messages.
  4. Le proxy renvoie la réponse. Le site web répond au proxy, et le proxy transmet la réponse au client.

À quoi servent les proxies directs

  • Masquer l'adresse IP du client : MDN note que les proxies directs peuvent être anonymes et permettent aux utilisateurs de cacher leur adresse IP. Tor, par exemple, achemine le trafic à travers plusieurs proxies.
  • Web scraping et rotation d'IP : un script peut envoyer chaque session à travers un proxy différent, ce qui est la base de la rotation d'IP.
  • Résultats spécifiques à un emplacement : choisir un proxy dans un pays ou une ville donnée vous permet de voir ce que les utilisateurs y voient, connu sous le nom de géociblage.
  • Accès à Internet pour les réseaux internes : La documentation d'Apache décrit comment donner accès à Internet aux clients internes qui sont autrement restreints par un pare-feu.
  • Mise en cache : un proxy direct peut stocker et réutiliser du contenu pour réduire l'utilisation de la bande passante pour un groupe d'utilisateurs.

Proxies directs explicites vs. transparents

  • Proxy explicite : le client est configuré pour utiliser le proxy et envoie ses demandes directement à celui-ci.
  • Proxy transparent : le client n'est pas configuré du tout. Le réseau intercepte son trafic et l'envoie à travers le proxy. La RFC 9110 appelle cela un proxy d'interception et note qu'il n'est pas choisi par le client.

Proxy direct vs. Proxy inverse

Proxy directProxy inverse
Agit pourLe clientLe serveur
Configuré parL'utilisateur ou l'application clientL'opérateur du site
Configuration du clientRequise (sauf si transparent)Aucune
CacheL'identité du client des serveursL'identité des serveurs des clients

Un proxy inverse fonctionne dans l'autre sens : il reçoit des demandes au nom des propres serveurs du site.

Considérations de sécurité

  • Proxies ouverts : La documentation d'Apache avertit qu'un proxy direct permet aux clients d'atteindre des sites arbitraires via votre serveur et de cacher leur véritable origine, donc seuls les clients autorisés devraient être autorisés à l'utiliser. MDN note qu'il y a probablement des centaines de milliers de proxies directs ouverts sur Internet.
  • Ce que l'opérateur peut voir : le proxy peut lire et modifier le trafic HTTP simple. Le trafic HTTPS dans un tunnel CONNECT reste chiffré à moins que le proxy ne soit configuré pour intercepter le TLS.

Termes associés