Navigacija spletnega posrednika PHP: relativni URL-ji, piškotki in izvori
Načrtujte URL virov, navigacijo, piškotke in meje izvora, ko pridobivanje s PHP spreminjate v spletnega posrednika za brskalnik.
Preden dodate več prepisovanja v pridobivalnik PHP, izberite, kam naj gre naslednji vir. Dokument, pridobljen z https://destination.example/catalog/ in vrnjen na https://viewer.example/browse?url=..., lahko vsebuje:
<img src="photo.jpg">
<a href="details/42">Details</a>Brskalnik te sklice razreši z dokumentom, ki ga je prejel v pregledovalniku. To, da je PHP pridobil izvorne bajte, ne vzpostavi oddaljene osnove.
Element base lahko usmeri relativne URL-je na cilj, vendar lahko te zahteve nato gredo neposredno iz brskalnika na cilj. Da bi vsako zahtevo zadržali skozi PHP, so namesto tega potrebni proxy URL-ji in širši model usmerjanja:
| Vir ali dejanje | Potrebno ravnanje |
|---|---|
| Povezave in slike | Razrešite jih glede na oddaljeni dokument in ustvarite predvideno pot |
| Uvozi in viri CSS | Uporabite oddaljeno osnovo sloga |
| Obrazci | Ohranite metodo in poslane podatke |
| Preusmeritve | Držite navigacijo znotraj dovoljenega modela |
| Zahteve, ki jih ustvarijo skripti | Obravnavajte URL-je, ki jih v izvirnem HTML ni |
Nekaj zamenjav z regularnimi izrazi ne more obljubiti splošne združljivosti s skriptno bogatimi mesti. Za znan javni dokument lahko zadošča, da onemogočite navigacijo, dovolite neposredne povezave ali usmerite podprto podmnožico nazaj skozi pregledovalnik. Ohranite dejanske vrste medijev, namesto da vsak odgovor obravnavate kot HTML.
Vračanje nezaupljivega označevanja z vaše domene mu da tudi izvor brskalnika pregledovalnika, ne pa identitete pridobljenega mesta. Te dokumente izolirajte od strani računa in upravljanja. Določite oddaljene piškotke za vsakega obiskovalca, dovoljene posredovane glave in cilje preusmeritve; skupni kozarec piškotkov lahko zmeša oddaljene prijave.
Zavežite se k tej meji podpore, preden ponudite sejo brskanja. Pri običajnem brskanju skozi drug izhod ohrani izvorni proxy vmesnik brskalnika, na primer nastavitve HTTP/SOCKS v Firefoxu, ciljni URL in model izvora brskalnika brez potrebe po tej plasti pridobivanja in ponovne objave. Za ločen preizkus javnega mesta seznam brezplačnih proxyjev ponuja kandidatne končne točke; uskladite protokol v nastavitvah brskalnika.