Навигација 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 и модел порекла прегледача без потребе за овим слојем преузимања и поновне објаве. За засебан тест јавне странице списак бесплатних проксија даје кандидате за крајње тачке; ускладите протокол у поставкама прегледача.