(Proxy web)

Salut la team,

J'avais une question. Pour un petit projet personnel, j'étais en train de réfléchir sur comment créer un proxy web.

Si j'ai bien compris le principe des proxy : ton ordi C fait une requête B sur un serveur A, et celui-ci récupère la requête pour te l'afficher. Du coup la requête B te voit avec l'IP de A, vu que c'est A qui en a fait la demande pour l'afficher sur C.

Donc si j'ai un site hébergé sur une adresse IP 192.168.1.1 (pour exemple hein) et que la tienne c'est 98.120.0.0, et que depuis 192 je charge un site, ce dernier croit donc que ton IP est le 192, et pas le 98. Or quand je fais un "iframe src='monip.org'" sur un serveur hébergé sur 192, URL m'affiche l'IP de mon ordi directement, et pas celui du serveur.

Avez-vous des pistes vers lesquelles je peux me diriger pour comprendre mon problème ?

Poster un commentaire
JackyLaPalourde

Je n'ai pas totalement compris ton problème...

Mais du coup je me pose des questions :
- Pourquoi tu veux tester avec une idéale monip.org au lieu d'aller directement sur le site ?
- Qu'est-ce que tu utilises pour faire ton proxy ?
- As-tu bien configuré côté client l'utilisation du proxy ? Si oui as-tu mis une configuration particulière ? (Uniquement un protocole donné, des IP/URL données, ...)

testme
testme
4 ans

@JackyLaPalourde:
Je me suis mal exprimé. J'ai envie de réussir à coder un serveur proxy pour que si je charge la page depuis cette page web (donc si je tape "monip.org" puis je clique sur "charger") "monip.org" affiche l'IP de la page web, et non mon IP perso (le serveur est hébergé sur du 185.x.x.x et mon IP est 92.x.x.x)

JackyLaPalourde

@testme: Le truc, c'est que un proxy ça n'est pas une page web.
Si tu load une seconde page depuis la première c'est bien ta machine qui va faire la requête et non le serveur.

Un moyen serait donc de faire un curl en PHP sur ta page web et ensuite d'afficher le résultat de ce curl. Ça reste une solution un peu dégueu et tu risques les SSRF.

Après plus bas je vois PHPProxy, je ne connais pas, si ça se trouve c'est une solution viable.

Myosotys
Myosotys
4 ans

C'est super pas compréhensible ce que tu dis.
Ton pc: A
Le proxy: B
Le server: C

En gros sans proxy quand tu fais une requete sur C, il te voie toi directement donc ton ip A.
Si tu passes par un proxy B, ta requête passe par le proxy B avant d'aller sur C et donc C voit l'ip de B.

testme
testme
4 ans

@Myosotys: oui et le but c'est de coder une page web qui fait office de proxy B ! Mais je n'arrive pas à voir comment je pourrais faire ça, ou par où débuter. C'est vrai j'étais vraiment pas clair avec ma question.

Simmstein
Simmstein
4 ans

Tes explications sont incompréhensibles.

Un proxy est un intermédiaire entre un client HTTP et un serveur. Si un proxy est l'intermédiaire d'un client, alors un proxy est lui aussi un client.

Si ton ordinateur est : 192.168.1.1
Si le proxy est : 192.168.1.2
Si le serveur web est : 1.2.3.4

Dans le cas où ton ordinateur fait une requête HTTP (depuis un client web) vers le serveur web, alors le serveur web va identifier la source de la requête HTTP comme étant : 192.168.1.1

Dans le cas où ton ordinateur fait une requête HTTP (depuis un client web) vers le serveur web en passant par le proxy, alors le serveur web va identifier la source de la requête HTTP comme étant : 192.168.1.2

Si le serveur web 1.2.3.4 te retourne un document HTML avec le code HTML pour afficher une iframe, c'est ton client web (ton navigateur) qui va charger la page de l'iframe. Le serveur web ne fera rien de plus que te retourner le code html <iframe ....></iframe>.

testme
testme
4 ans

@Simmstein: Je me reprends du coup :

Mon ordi : IPA
Mon site web : IPB
Le site web : monip.org

Le site web charge monip.org (ou bien infosniper.com, c'est pareil) via l'iframe. Or, dans les deux cas, c'est mon IP perso qui est affiché et non l'adresse IP du serveur qui a chargé la page via le iframe.
A moins que je m'y prends super mal, et justement je cherche des pistes pour pouvoir utiliser mon serveur web distant comme serveur proxy (j'ai envie de coder mon propre proxy in fine).

Simmstein
Simmstein
4 ans

@testme: Si le serveur web IPB te retourne un document HTML avec le code HTML pour afficher une iframe, c'est IPA qui va charger l'iframe, pas IPB.

Une iframe n'est PAS un mécanisme pour faire un proxy.

Geraven
Geraven
4 ans

@Simmstein: J'allais le dire...

MichelMabel

J'ai l'impression que t'as oublié le serveur proxy quelque part.

ton ordi C fait une requete B sur un serveur A à travers un serveur proxy D
Du coup A te voit avec l'ip du serveur proxy D
Ex:
Site hebergé: 192.168.1.1
Serveur Proxy: 192.168.1.2
Client: 10.0.0.1

Le serveur 192.168.1.1 ne voit jamais l'adresse 10.0.0.1, il voit toujours 192.168.1.2.

https://www.commentcamarche.net/contents/610-serveur-proxy-et-reverse-proxy
.

testme
testme
4 ans

Ah bah ouais je me suis carrément mal exprimé. J'ai mal expliqué mon problème.

En fait j'essaye de comprendre comment coder un serveur proxy, je sais que c'est une interface entre toi et le serveur distant pour lequel tu vas faire ta requête pour masquer de là où tu viens.

J'ai déjà un serveur distant où je peux héberger mon site web. L'IP de ce serveur c'est 185.x.x.x, mon IP c'est 92.x.x.x. Le but c'est de charger le site web "monip.org" pour qu'il n'affiche non plus mon IP véritable, mais l'IP du proxy.

Donc sur mon site web, j'ai fait une page php tout con contenant "<ifram src='monip.org'></iframe>" pour que ça soit le serveur web hébergeant le site qui fait la requête à monip.org et pas mon navigateur lui même. Mais quand je vais sur ma page php "monsite.fr/test.php", dans la iframe il y a affiché mon IP perso, et non celle du serveur '/test.php'. Et j'ai pas compris pourquoi..
Je suis vraiment pas clair j'ai l'impression.

Au pire, si quelqu'un a des pistes concrètes sur comment développer son propre proxy web (ou serveur proxy en Java ou autre) que je me renseigne un peu plus..

MichelMabel

@testme: regarde phproxy https://github.com/PHProxy/phproxy

testme
testme
4 ans

@MichelMabel: Merci ! Je vais parcourir les fichiers et regarder comment c'est foutu pour comprendre comment est codé un proxy concrètement.

Cette page est réservée aux ADULTES

Tu es sur le point d'accéder à un site web qui contient du matériel explicite (pornographie).

Tu ne dois accéder à ce site que si tu as au moins 18 ans ou si tu as l'âge légal pour visionner ce type de matériel dans ta juridiction locale, l’âge le plus élevé étant retenu. En outre, tu déclares et garantis que tu ne permettras aucun mineur à d'accéder à ce site ou à ces services.


En accédant à ce site, tu acceptes nos conditions d'utilisation.