Nawigacja proxy internetowego w PHP: względne adresy URL, pliki cookie i pochodzenie
Zaplanuj adresy URL zasobów, nawigację, pliki cookie i granice pochodzenia, przekształcając pobieranie w PHP w proxy internetowe dla przeglądarki.
Zanim dodasz kolejne przepisywanie do pobieracza w PHP, wybierz, dokąd ma trafić następny zasób. Dokument pobrany z https://destination.example/catalog/ i zwrócony pod https://viewer.example/browse?url=... może zawierać:
<img src="photo.jpg">
<a href="details/42">Details</a>Przeglądarka rozwiązuje te odwołania za pomocą dokumentu otrzymanego w przeglądarce. To, że PHP pobrał oryginalne bajty, nie ustanawia zdalnej bazy.
Element base może kierować względne adresy URL do celu, ale te żądania mogą potem iść bezpośrednio z przeglądarki do celu. Aby utrzymać każde żądanie przez PHP, potrzebne są zamiast tego adresy URL proxy i szerszy model routingu:
| Zasób lub działanie | Wymagana obsługa |
|---|---|
| Linki i obrazy | Rozwiąż je względem zdalnego dokumentu i utwórz zamierzoną trasę |
| Importy i zasoby CSS | Użyj zdalnej bazy arkusza stylów |
| Formularze | Zachowaj metodę i wysłane dane |
| Przekierowania | Utrzymaj nawigację w dozwolonym modelu |
| Żądania tworzone przez skrypty | Obsłuż adresy URL nieobecne w oryginalnym HTML |
Kilka zamian wyrażeniami regularnymi nie może obiecać ogólnej zgodności z witrynami pełnymi skryptów. Dla znanego publicznego dokumentu może wystarczyć wyłączenie nawigacji, zezwolenie na bezpośrednie linki lub skierowanie obsługiwanego podzbioru przez przeglądarkę. Zachowuj rzeczywiste typy mediów, zamiast traktować każdą odpowiedź jako HTML.
Zwracanie niezaufanego znacznika z Twojej domeny daje mu również pochodzenie przeglądarki, a nie tożsamość pobranej witryny. Odizoluj te dokumenty od stron konta i administracji. Zdefiniuj zdalne pliki cookie dla każdego odwiedzającego, dozwolone przekazywane nagłówki i cele przekierowań; wspólny słoik cookie może pomieszać zdalne logowania.
Zobowiąż się do tej granicy wsparcia, zanim zaoferujesz sesję przeglądania. W przypadku zwykłego przeglądania przez inne wyjście natywny interfejs proxy przeglądarki, na przykład ustawienia HTTP/SOCKS Firefoksa, zachowuje docelowy adres URL i model pochodzenia przeglądarki bez potrzeby tej warstwy pobierania i ponownego publikowania. Do osobnego testu publicznej witryny lista darmowych proxy dostarcza kandydatów na punkty końcowe; dopasuj protokół w ustawieniach przeglądarki.