Navigácia PHP webového proxy: relatívne URL, cookies a pôvody
Naplánujte URL zdrojov, navigáciu, cookies a hranice pôvodu, keď meníte sťahovanie v PHP na webové proxy pre prehliadač.
Skôr než pridáte ďalšie prepisovanie do sťahovača v PHP, vyberte, kam má ísť nasledujúci zdroj. Dokument stiahnutý z https://destination.example/catalog/ a vrátený na https://viewer.example/browse?url=... môže obsahovať:
<img src="photo.jpg">
<a href="details/42">Details</a>Prehliadač tieto odkazy rieši pomocou dokumentu, ktorý dostal v prehliadači. To, že PHP stiahlo pôvodné bajty, nenastoluje vzdialenú základňu.
Prvok base môže nasmerovať relatívne URL na cieľ, ale tieto požiadavky potom môžu ísť priamo z prehliadača na cieľ. Aby každá požiadavka išla cez PHP, treba namiesto toho proxy URL a širší model smerovania:
| Zdroj alebo akcia | Požadované spracovanie |
|---|---|
| Odkazy a obrázky | Vyriešte ich voči vzdialenému dokumentu a vytvorte zamýšľanú trasu |
| Importy a zdroje CSS | Použite vzdialenú základňu štýlu |
| Formuláre | Zachovajte metódu a odoslané údaje |
| Presmerovania | Udržte navigáciu v povolenom modeli |
| Požiadavky vytvorené skriptom | Ošetrite URL, ktoré v pôvodnom HTML nie sú |
Niekoľko náhrad regulárnymi výrazmi nemôže sľúbiť všeobecnú kompatibilitu s webmi plnými skriptov. Pre známy verejný dokument môže stačiť vypnúť navigáciu, povoliť priame odkazy alebo viesť podporovanú podmnožinu späť cez prehliadač. Zachovajte skutočné typy médií namiesto toho, aby ste každú odpoveď považovali za HTML.
Vracanie nedôveryhodného značkovania z vašej domény mu tiež dáva pôvod prehliadača diváka, nie identitu stiahnutého webu. Izolujte tieto dokumenty od stránok účtu a správy. Definujte vzdialené cookies pre každého návštevníka, povolené preposielané hlavičky a ciele presmerovania; spoločná sklenica cookies môže zmiešať vzdialené prihlásenia.
Zaväzte sa k tejto hranici podpory skôr, než ponúknete reláciu prehliadania. Pri bežnom prehliadaní cez iný výstup zachováva natívne proxy rozhranie prehliadača, napríklad nastavenia HTTP/SOCKS vo Firefoxe, cieľovú URL a model pôvodu prehliadača bez potreby tejto vrstvy sťahovania a opätovného zverejnenia. Pre samostatný test verejného webu zoznam bezplatných proxy poskytuje kandidátske koncové body; zlaďte protokol v nastaveniach prehliadača.