Cet article a deux buts principaux : vous permettre de bénéficier d’un peu plus d’anonymat et accéder à des contenus normalement réservés à d’autres pays.
Malheureusement (et bien entendu) cette technique ne fonctionne pas pour tout.
L’idée est de simuler la navigation via un proxy en modifiant les headers HTTP de votre requête. Comme on travaille au niveau application on ne pourra bien sûr pas trafiquer toutes les entêtes, mais disons que d’en modifier la plupart peut suffire.
Les proxy
Nous allons travailler sur trois header principalement : via, x-forwarded-for et client-ip. Ces headers sont normalement envoyés par les proxys pour renseigner sur la réelle provenance des visiteurs qui utilisent le proxy.
|
Sans proxy |
transparent |
anonyme |
high anonymity |
| REMOTE_ADDR |
votre IP |
IP du proxy |
IP du proxy |
IP du proxy |
| HTTP_VIA |
n/a |
n/a |
IP du proxy |
n/a |
| HTTP_CLIENT_IP |
n/a |
n/a |
n/a |
n/a |
| HTTP_X_FORWARDED_FOR |
n/a |
votre IP |
votre IP |
n/a |
La mention «IP du proxy» n’est pas tout à fait vraie : certains serveurs proxy envoient, à la place, une signature (uniquement sur le header HTTP_VIA) alors que d’autres font transiter les paquets par d’autres serveurs plus plus d’anonymat.
Sur ce tableau on se rend compte que le header HTTP_CLIENT_IP n’est pas utilisé par les proxys. Pourtant, certains webmasters l’utilisent dans leur configuration et en évaluent la valeur pour essayer d’obtenir la vraie IP du visiteur.
L’idéal serait donc de modifier le header REMOTE_ADDR. Mais comme les choses ne sont jamais idéales, j’ai une mauvaise nouvelle : c’est le seul que nous ne pourrons pas modifier pour la simple et bonne raison que ce header est défini par la couche physique du modèle OSI. Les trois autres headers, par contre, sont envoyés par la couche application dudit modèle.
La bonne nouvelle, c’est que l’on peut, du coup, les modifier via une simple extension firefox : Modify Headers !
La marche à suivre
Après avoir téléchargé et installé l’extension, vous allez ajouter un par un, les trois headers qui nous intéressent dans la fenêtre qui s’ouvrira en cliquant sur Outils>Modify Headers.
Votre configuration devra ensuite ressembler à l’image ci-dessous.

Attention : notez bien que les paramètres à modifier sont X-FORWARDED-FOR, CLIENT-IP et VIA et pas HTTP_X_FORWARDED_FOR, HTTP_CLIENT_IP et HTTP_VIA.
Vous pouvez ensuite faire en sorte que cette modification soit valide tout le temps, même si la fenêtre Modify Headers est fermée. Pour cela cliquez sur le bouton Configuration, puis cochez la case Always on.
Les conséquences
A moins que le site que vous ne visitiez un site dont le webmaster ne se base que sur le paramètre $_SERVER['REMOTE_ADDR'] – ce qui existe, mais n’est pas la majorité, l’IP relevée sera celle que vous aurez spécifié vous même.
Ainsi pour voir un contenu normalement réservé aux Etats-Unis comme les épisodes de South Park Studios ou les vidéos de NBC par exemple, il vous suffit de choisir une adresse IP Américaine (66.11.***.*** par exemple).
Certains sites ne sont pas très heureux de la modification du header HTTP_CLIENT_IP avec en tête search.twitter.com. Pour le faire refonctionner rien de plus simple : désactiver ledit header.
Petite référence à Hadopi ?
Il suffit d’utiliser l’IP de quelqu’un d’autre pour se faire passer pour lui. Par respect, et pour éviter de faire accuser à tort des innocents je surf en général sous l’IP 0.0.0.0 mais il est assez facile de se faire passer pour un dignitaire du ministère de la culture par exemple. Il suffit pour cela de relever l’IP qui revient la plus fréquemment sur les éditions de l’article Hadopi sur Wikipedia (private joke inside).
Pour réellement spoofer une adresse IP (la faire passer en REMOTE_ADDR) c’est un brin plus compliqué, mais cela reste possible. Nul doute que des applications permettront bientôt de le faire en un clic… Honnêtement si j’avais les connaissances suffisantes, je l’aurais fait depuis l’annonce même de la loi Hadopi !