Navigacija PHP web proxyja: relativni URL-ovi, kolačići i porijekla
Planirajte URL-ove resursa, navigaciju, kolačiće i granice porijekla kada pretvarate PHP dohvat u web proxy za preglednik.
Prije nego dodate još prepisivanja u PHP dohvatnik, odaberite kamo treba ići sljedeći resurs. Dokument dohvaćen s https://destination.example/catalog/ i vraćen na https://viewer.example/browse?url=... može sadržavati:
<img src="photo.jpg">
<a href="details/42">Details</a>Preglednik rješava te reference pomoću dokumenta koji je primio u pregledniku. To što je PHP dohvatio izvorne bajtove ne uspostavlja udaljenu bazu.
Element base može usmjeriti relativne URL-ove na odredište, ali ti zahtjevi tada mogu ići izravno iz preglednika na odredište. Zadržavanje svakog zahtjeva kroz PHP umjesto toga zahtijeva proxy URL-ove i širi model usmjeravanja:
| Resurs ili radnja | Potrebno rukovanje |
|---|---|
| Veze i slike | Riješite ih prema udaljenom dokumentu i proizvedite predviđenu rutu |
| CSS uvozi i resursi | Koristite udaljenu bazu stilskog lista |
| Obrasci | Sačuvajte metodu i poslane podatke |
| Preusmjeravanja | Držite navigaciju unutar dopuštenog modela |
| Zahtjevi koje stvara skripta | Rukujte URL-ovima kojih nema u izvornom HTML-u |
Nekoliko zamjena regularnim izrazima ne može obećati opću kompatibilnost sa stranicama bogatim skriptama. Za poznati javni dokument može biti dovoljno onemogućiti navigaciju, dopustiti izravne veze ili usmjeriti podržani podskup natrag kroz preglednik. Sačuvajte stvarne vrste medija umjesto da svaki odgovor tretirate kao HTML.
Vraćanje nepouzdanog označavanja s vaše domene također mu daje porijeklo preglednika posjetitelja, a ne identitet dohvaćene stranice. Izolirajte te dokumente od stranica računa i administracije. Definirajte udaljene kolačiće po posjetitelju, dopuštena proslijeđena zaglavlja i odredišta preusmjeravanja; zajednička posuda za kolačiće može pomiješati udaljene prijave.
Obvežite se na tu granicu podrške prije nego što ponudite sesiju pregledavanja. Za obično pregledavanje kroz drugi izlaz, izvorno proxy sučelje preglednika, poput Firefoxovih HTTP/SOCKS postavki, čuva odredišni URL i model porijekla preglednika bez potrebe za ovim slojem dohvata i ponovne objave. Za zaseban test javne stranice popis besplatnih proxyja daje kandidate za završne točke; uskladite protokol u postavkama preglednika.