Før du tilføjer mere omskrivning til en PHP-henter, skal du vælge, hvor den næste ressource skal hen. Et dokument hentet fra https://destination.example/catalog/ og returneret på https://viewer.example/browse?url=... kan indeholde:

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

Browseren opløser disse referencer ved hjælp af det dokument, den modtog i vieweren. At PHP har hentet de oprindelige bytes, etablerer ikke den eksterne base.

Et base-element kan pege relative URL'er mod destinationen, men de anmodninger kan derefter gå direkte fra browseren til destinationen. For i stedet at holde hver anmodning gennem PHP kræves proxy-URL'er og en bredere routingmodel:

Ressource eller handlingPåkrævet håndtering
Links og billederOpløs dem mod det eksterne dokument, og producér den tilsigtede rute
CSS-imports og ressourcerBrug stylesheetets eksterne base
FormularerBevar metode og indsendte data
OmdirigeringerHold navigationen inden for den tilladte model
Anmodninger oprettet af scriptsHåndtér URL'er, der ikke findes i den oprindelige HTML

Et par regulære udtryks-erstatninger kan ikke love generel kompatibilitet med scripttunge websteder. For et kendt offentligt dokument kan det være nok at deaktivere navigation, tillade direkte links eller rute en understøttet delmængde tilbage gennem vieweren. Bevar faktiske medietyper i stedet for at behandle hvert svar som HTML.

At returnere utroværdigt markup fra dit domæne giver det også viewerens browserorigin, ikke det hentede websteds identitet. Isolér disse dokumenter fra konto- og administratorsider. Definer eksterne cookies pr. besøgende, tilladte videresendte headers og omdirigeringsdestinationer; en delt cookiekrukke kan blande eksterne logins.

Forpligt dig til den støttegrænse, før du tilbyder en browsersession. Til almindelig browsing gennem en anden udgang bevarer browserens egen proxygrænseflade, såsom Firefox' HTTP/SOCKS-indstillinger, browserens destinations-URL og origin-model uden at kræve dette hent-og-genudgiv-lag. Til en separat offentlig webstedstest leverer listen over gratis proxyer kandidatendepunkter; match protokollen i browserindstillingerne.

Relaterede artikler