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 akciaPožadované spracovanie
Odkazy a obrázkyVyriešte ich voči vzdialenému dokumentu a vytvorte zamýšľanú trasu
Importy a zdroje CSSPoužite vzdialenú základňu štýlu
FormuláreZachovajte metódu a odoslané údaje
PresmerovaniaUdržte navigáciu v povolenom modeli
Požiadavky vytvorené skriptomOš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.

Súvisiace články