PHP webproxy navigáció: relatív URL-ek, sütik és origók
Tervezze meg az erőforrás-URL-eket, a navigációt, a sütiket és az origóhatárokat, amikor a PHP-s letöltést böngésző felé forduló webproxyvá alakítja.
Mielőtt további átírást adna egy PHP letöltőhöz, válassza ki, hová kerüljön a következő erőforrás. A https://destination.example/catalog/ címről lekért és a https://viewer.example/browse?url=... címen visszaadott dokumentum tartalmazhatja:
<img src="photo.jpg">
<a href="details/42">Details</a>A böngésző ezeket a hivatkozásokat a nézegetőben kapott dokumentummal oldja fel. Az, hogy a PHP lekérte az eredeti bájtokat, nem alapozza meg a távoli bázist.
Egy base elem a célra irányíthatja a relatív URL-eket, de ezek a kérések aztán közvetlenül a böngészőtől a cél felé mehetnek. Ha minden kérést a PHP-n keresztül szeretne tartani, helyette proxy URL-ekre és szélesebb útvonalmodellre van szükség:
| Erőforrás vagy művelet | Szükséges kezelés |
|---|---|
| Hivatkozások és képek | Oldja fel a távoli dokumentumhoz képest, és állítsa elő a szándékolt útvonalat |
| CSS-importok és erőforrások | Használja a stíluslap távoli bázisát |
| Űrlapok | Őrizze meg a metódust és az elküldött adatokat |
| Átirányítások | Tartsa a navigációt az engedélyezett modellen belül |
| Szkript által létrehozott kérések | Kezelje az eredeti HTML-ből hiányzó URL-eket |
Néhány reguláris kifejezéses helyettesítés nem ígérhet általános kompatibilitást a szkriptben gazdag oldalakkal. Egy ismert nyilvános dokumentumnál elég lehet a navigáció kikapcsolása, a közvetlen hivatkozások engedélyezése vagy egy támogatott részhalmaz átirányítása a nézegetőn. Őrizze meg a tényleges médiatípusokat, ahelyett hogy minden választ HTML-ként kezelne.
Ha megbízhatatlan jelölést ad ki a domainjéről, az a nézegető böngésző-origóját kapja, nem a lekért oldal identitását. Különítse el ezeket a dokumentumokat a fiók- és adminoldalaktól. Határozzon meg látogatónkénti távoli sütiket, engedélyezett továbbított fejléceket és átirányítási célokat; a megosztott sütisüveg összekeverheti a távoli bejelentkezéseket.
Kötelezze el magát ehhez a támogatási határhoz, mielőtt böngészési munkamenetet kínál. A más kijáraton át történő szokásos böngészéshez a böngésző saját proxyfelülete, például a Firefox HTTP/SOCKS beállításai, megőrzi a böngésző cél-URL-jét és origómodelljét anélkül, hogy szükség lenne erre a letöltő és újraközzétevő rétegre. Egy külön nyilvános oldal teszteléséhez az ingyenes proxyk listája jelölt végpontokat kínál; egyeztesse a protokollt a böngésző beállításaiban.