Comment puis-je écrire une simple PHP proxy transparent?
J'ai besoin de faire un script de proxy qui peut accéder à une page cachée derrière un écran de connexion. Je n'ai pas besoin de proxy pour "simuler" la connexion, au lieu de la page de connexion HTML doit être affiché à l'utilisateur normalement, et tous les cookies et HTTP GET/POST que les données transitent via le serveur proxy pour le serveur, de sorte que la connexion doit être authentique.
Je ne veux pas le login/mot de passe, j'ai seulement besoin d'avoir accès au code source HTML des pages générées après de la connexion.
Quelqu'un ici sait comment cela peut être accompli? Est-il facile?
Si non, où dois-je commencer?* (Je suis actuellement à l'aide de PHP)*
OriginalL'auteur Robinicks | 2009-07-07
Vous devez vous connecter pour publier un commentaire.
Ce que vous êtes en train de parler d'accéder à des pages dont vous avez besoin pour vous authentifier.
Voici quelques choses qui doivent être fixés:
Le point clé est que vous ne pouvez pas accéder sans avoir à s'authentifier à vous en premier.
Comme pour les langues, c'est assez faisable en PHP. Et comme les tags sur la question suggèrent, vous utilisez les bons outils pour faire ce travail, déjà.
Une chose que je voudrais savoir c'est, pourquoi êtes-vous de l'appeler un "proxy"? voulez-vous servir le contenu à d'autres utilisateurs?
EDIT: [mise à jour après le commentaire]
Dans ce cas, utilisez phproxy. Il fait ce que vous voulez, avec une foule d'autres caractéristiques.
Oh. réponse de mise à jour.
OriginalL'auteur jrharshath
Votre script PHP demande l'URL que vous souhaitez, et de réécrire tous les liens et de la forme des actions à pointent vers votre script php. Lors de la réception de demandes pour le script, qui ont un paramètre de l'URL, vers l'avant que vers le serveur distant et répétez.
Vous ne serez pas en mesure de rattraper toutes les JavaScript demandes, (sauf si vous avez mis en œuvre une partie de JavaScript de votre "proxy")
Par exemple: types d'Utilisateurs http://example.com/login.php dans votre formulaire de procuration.
envoyer à l'utilisateur de http://yoursite.com/proxy.php?url=http://example.com/login.php
assurez-vous de la fonction urlencode le paramètre "http://example.com/login.php"
Dans http://yoursite.com/proxy.php, vous faites une requête HTTP à http://example.com/login.php
Noter que /quelques-smart-regex-ici/je est en fait une expression regex vous devriez écrire à analyser les liens, et autres.
L'exemple que nous venons de procurations le Corps HTTP, vous pouvez proxy les en-Têtes HTTP. Vous pouvez utiliser fsockopen() ou PHP fonctions flux en PHP5+ (stream_socket_client (), etc.)
Très vrai! ^^ L'utilisation de curl ou fsockopen au lieu de file_get_contents. Ou désinfecter l' $url;
Merci pour la fixation, -1 --> +1
OriginalL'auteur bucabay
Vous pouvez vérifier http://code.google.com/p/php-transparent-proxy/ , je l'ai fait parce que je me posais exactement la même question et j'ai décidé d'en faire un. Il est sous licence BSD, alors amusez-vous 🙂
OriginalL'auteur Évelyne Lachance
Je voudrais recommander à l'aide de Curl (bibliothèque php que vous pourriez avoir besoin de l'activer dans votre php.ini)
Il est utilisé pour manipuler à distance des sites web, le traitement des cookies et tous http paramètres dont vous avez besoin.
Vous devrez écrire votre proxy basé sur le web, les pages que vous êtes en train de frapper, mais il va faire le travail.
OriginalL'auteur Rodolphe