Avant d'ajouter davantage de réécriture à un récupérateur PHP, choisissez où doit aller la ressource suivante. Un document récupéré depuis https://destination.example/catalog/ et renvoyé à https://viewer.example/browse?url=... peut contenir :

<img src="photo.jpg">
<a href="details/42">Details</a>

Le navigateur résout ces références avec le document qu'il a reçu dans la visionneuse. Le fait que PHP ait récupéré les octets d'origine n'établit pas la base distante.

Un élément base peut diriger les URL relatives vers la destination, mais ces requêtes peuvent alors aller directement du navigateur à la destination. Pour faire passer chaque requête par PHP, il faut plutôt des URL de proxy et un modèle de routage plus large :

Ressource ou actionTraitement requis
Liens et imagesRésolvez-les par rapport au document distant et produisez la route voulue
Imports et ressources CSSUtilisez la base distante de la feuille de style
FormulairesConservez la méthode et les données soumises
RedirectionsGardez la navigation dans le modèle autorisé
Requêtes créées par scriptGérez les URL absentes du HTML d'origine

Quelques remplacements par expression régulière ne peuvent pas promettre une compatibilité générale avec les sites riches en scripts. Pour un document public connu, il peut suffire de désactiver la navigation, d'autoriser les liens directs ou de router un sous-ensemble pris en charge via la visionneuse. Conservez les types de média réels au lieu de traiter chaque réponse comme du HTML.

Renvoyer du balisage non fiable depuis votre domaine lui donne aussi l'origine navigateur de la visionneuse, et non l'identité du site récupéré. Isolez ces documents des pages de compte et d'administration. Définissez des cookies distants par visiteur, les en-têtes de transfert autorisés et les destinations de redirection ; un pot de cookies partagé peut mélanger des connexions distantes.

Engagez-vous sur cette limite de prise en charge avant de proposer une session de navigation. Pour une navigation ordinaire via une autre sortie, l'interface proxy native du navigateur, comme les réglages HTTP/SOCKS de Firefox, préserve l'URL de destination et le modèle d'origine du navigateur sans exiger cette couche de récupération et de republication. Pour un test distinct de site public, la liste de proxys gratuits fournit des points de terminaison candidats ; faites correspondre le protocole dans les réglages du navigateur.

Articles similaires