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