Навігацыя вэб-проксі на PHP: адносныя URL, кукі і крыніцы
Плануйце URL рэсурсаў, навігацыю, кукі і межы крыніц, ператвараючы загрузку на PHP у вэб-проксі для браўзера.
Перш чым дадаваць яшчэ больш перапісвання ў загрузчык на PHP, выберыце, куды павінен ісці наступны рэсурс. Дакумент, загружаны з https://destination.example/catalog/ і вернуты на https://viewer.example/browse?url=..., можа змяшчаць:
<img src="photo.jpg">
<a href="details/42">Details</a>Браўзер развязвае гэтыя спасылкі з дапамогай дакумента, які ён атрымаў у праглядальніку. Тое, што PHP загрузіў зыходныя байты, не ўсталёўвае аддаленую базу.
Элемент base можа накіроўваць адносныя URL на прызначэнне, але гэтыя запыты могуць потым ісці напрост з браўзера да прызначэння. Каб замест гэтага праводзіць кожны запыт праз PHP, патрэбныя проксі-URL і шырэйшая мадэль маршрутызацыі:
| Рэсурс або дзеянне | Неабходная апрацоўка |
|---|---|
| Спасылкі і выявы | Развяжыце адносна аддаленага дакумента і стварыце патрэбны маршрут |
| Імпарт CSS і рэсурсы | Выкарыстоўвайце аддаленую базу табліцы стыляў |
| Формы | Захавайце метад і адпраўленыя даныя |
| Перанакіраванні | Трымайце навігацыю ў межах дазволенай мадэлі |
| Запыты, створаныя скрыптам | Апрацоўвайце URL, адсутныя ў зыходным HTML |
Некалькі замен рэгулярнымі выразамі не могуць гарантаваць агульную сумяшчальнасць з сайтамі, насычанымі скрыптамі. Для вядомага публічнага дакумента можа быць дастаткова адключыць навігацыю, дазволіць прамыя спасылкі або накіраваць падтрыманую частку праз праглядальнік. Захоўвайце фактычныя тыпы медыя, а не трактуйце кожны адказ як HTML.
Вяртанне недаверанай разметкі з вашага дамена таксама дае ёй крыніцу браўзера праглядальніка, а не ідэнтычнасць загружанага сайта. Ізалюйце гэтыя дакументы ад старонак уліковага запісу і адміністратара. Вызначце аддаленыя кукі для кожнага наведвальніка, дазволеныя загалоўкі для перадачы і мэты перанакіравання; агульная банка кукі можа змяшаць аддаленыя ўваходы.
Замацуйце гэтую мяжу падтрымкі, перш чым прапаноўваць сеанс прагляду. Для звычайнага прагляду праз іншы выхад уласны інтэрфейс проксі браўзера, напрыклад налады HTTP/SOCKS у Firefox, захоўвае URL прызначэння і мадэль крыніцы браўзера без неабходнасці гэтага пласта загрузкі і перапублікацыі. Для асобнага тэсту публічнага сайта спіс бясплатных проксі дае кандыдатаў у канчатковыя пункты; суаднясіце пратакол у наладах браўзера.