Nabigasyon ng PHP web proxy: mga relatibong URL, cookie at pinagmulan
Planuhin ang mga URL ng resource, nabigasyon, cookie at hangganan ng pinagmulan kapag ginagawang web proxy para sa browser ang pagkuha gamit ang PHP.
Bago magdagdag ng higit pang muling pagsulat sa isang tagakuha ng PHP, piliin kung saan dapat pumunta ang susunod na resource. Ang dokumentong nakuha mula sa https://destination.example/catalog/ at ibinalik sa https://viewer.example/browse?url=... ay maaaring maglaman ng:
<img src="photo.jpg">
<a href="details/42">Details</a>Nilulutas ng browser ang mga sangguniang iyon gamit ang dokumentong natanggap nito sa viewer. Ang pagkuha ng PHP ng orihinal na bytes ay hindi nagtatatag ng malayong base.
Maaaring ituro ng elementong base ang mga relatibong URL sa destinasyon, ngunit ang mga kahilingang iyon ay maaaring dumiretso mula sa browser patungo sa destinasyon. Upang mapanatili ang bawat kahilingan sa PHP, kailangan sa halip ang mga URL ng proxy at mas malawak na modelo ng ruta:
| Resource o aksyon | Kinakailangang paghawak |
|---|---|
| Mga link at larawan | Lutasin ayon sa malayong dokumento at buuin ang nilalayong ruta |
| Mga import at resource ng CSS | Gamitin ang malayong base ng stylesheet |
| Mga form | Panatilihin ang metodo at ipinadalang data |
| Mga redirect | Panatilihin ang nabigasyon sa loob ng pinapayagang modelo |
| Mga kahilingang nilikha ng script | Pangasiwaan ang mga URL na wala sa orihinal na HTML |
Ang ilang pagpapalit ng regular na expression ay hindi makapangangako ng pangkalahatang pagtutugma sa mga site na mabigat sa script. Para sa isang kilalang pampublikong dokumento, maaaring sapat na i-disable ang nabigasyon, payagan ang direktang link o i-ruta ang isang sinusuportahang subset sa pamamagitan ng viewer. Panatilihin ang tunay na mga uri ng media sa halip na ituring ang bawat tugon na HTML.
Ang pagbabalik ng hindi pinagkakatiwalaang markup mula sa iyong domain ay nagbibigay din dito ng browser origin ng viewer, hindi ang pagkakakilanlan ng site na nakuha. Ihiwalay ang mga dokumentong iyon mula sa mga pahina ng account at admin. Tukuyin ang malalayong cookie bawat bisita, mga pinapayagang forward header at mga destinasyon ng redirect; ang pinagsasaluhang cookie jar ay maaaring maghalo ng malalayong pag-login.
Magtakda sa hangganang iyon ng suporta bago mag-alok ng sesyon ng pag-browse. Para sa ordinaryong pag-browse sa ibang labasan, pinapanatili ng sariling proxy interface ng browser, gaya ng mga setting ng HTTP/SOCKS ng Firefox, ang target na URL at modelo ng origin ng browser nang hindi kailangan ang layer na kumuha-at-muling-publish. Para sa hiwalay na pagsubok ng pampublikong site, nagbibigay ang listahan ng libreng proxy ng mga kandidatong endpoint; itugma ang protocol sa mga setting ng browser.