Før du legger til mer omskriving i en PHP-henter, velg hvor den neste ressursen skal gå. Et dokument hentet fra https://destination.example/catalog/ og returnert på https://viewer.example/browse?url=... kan inneholde:

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

Nettleseren løser disse referansene med dokumentet den fikk i viseren. At PHP hentet de opprinnelige bytene, etablerer ikke den eksterne basen.

Et base-element kan peke relative URL-er mot destinasjonen, men disse forespørslene kan deretter gå direkte fra nettleseren til destinasjonen. For å holde hver forespørsel gjennom PHP trengs i stedet proxy-URL-er og en bredere rutingsmodell:

Ressurs eller handlingNødvendig håndtering
Lenker og bilderLøs dem mot det eksterne dokumentet og produser den tiltenkte ruten
CSS-import og -ressurserBruk stilarkets eksterne base
SkjemaerBevar metode og innsendte data
OmdirigeringerHold navigasjonen innenfor den tillatte modellen
Forespørsler laget av skriptHåndter URL-er som mangler i den opprinnelige HTML-en

Noen få erstatninger med regulære uttrykk kan ikke love generell kompatibilitet med skripttunge nettsteder. For et kjent offentlig dokument kan det være nok å slå av navigasjon, tillate direkte lenker eller rute et støttet delsett tilbake gjennom viseren. Bevar faktiske medietyper i stedet for å behandle hver respons som HTML.

Å returnere upålitelig markup fra domenet ditt gir det også viserens nettleseropphav, ikke identiteten til nettstedet som ble hentet. Isoler disse dokumentene fra konto- og administrasjonssider. Definer eksterne informasjonskapsler per besøkende, tillatte videresendte headere og omdirigeringsmål; en delt kakekrukke kan blande eksterne innlogginger.

Forplikt deg til den støttegrensen før du tilbyr en nettleserøkt. For vanlig surfing gjennom en annen utgang bevarer nettleserens eget proxygrensesnitt, som Firefox' HTTP/SOCKS-innstillinger, nettleserens mål-URL og opphavsmodell uten å kreve dette hent-og-gjenutgi-laget. For en separat offentlig nettstedstest leverer listen over gratis proxyer kandidatendepunkter; match protokollen i nettleserinnstillingene.

Relaterte artikler