Navigasi proxy web PHP: URL relatif, cookie, dan origin
Rencanakan URL sumber daya, navigasi, cookie, dan batas origin saat mengubah pengambilan dengan PHP menjadi proxy web untuk peramban.
Sebelum menambah lebih banyak penulisan ulang ke pengambil PHP, pilih ke mana sumber daya berikutnya harus pergi. Dokumen yang diambil dari https://destination.example/catalog/ dan dikembalikan di https://viewer.example/browse?url=... dapat berisi:
<img src="photo.jpg">
<a href="details/42">Details</a>Peramban menyelesaikan rujukan itu memakai dokumen yang diterimanya di penampil. Fakta bahwa PHP telah mengambil byte aslinya tidak menetapkan basis jarak jauh.
Elemen base dapat mengarahkan URL relatif ke tujuan, tetapi permintaan itu kemudian dapat langsung pergi dari peramban ke tujuan. Untuk menahan setiap permintaan lewat PHP, diperlukan URL proksi dan model perutean yang lebih luas:
| Sumber daya atau tindakan | Penanganan yang diperlukan |
|---|---|
| Tautan dan gambar | Selesaikan terhadap dokumen jarak jauh dan hasilkan rute yang dimaksud |
| Impor dan sumber daya CSS | Gunakan basis jarak jauh lembar gaya |
| Formulir | Pertahankan metode dan data yang dikirim |
| Pengalihan | Jaga navigasi di dalam model yang diizinkan |
| Permintaan buatan skrip | Tangani URL yang tidak ada di HTML asli |
Beberapa penggantian ekspresi reguler tidak dapat menjanjikan kompatibilitas umum dengan situs berat skrip. Untuk dokumen publik yang dikenal, mungkin cukup menonaktifkan navigasi, mengizinkan tautan langsung, atau merutekan subset yang didukung lewat penampil. Pertahankan jenis media yang sebenarnya alih-alih memperlakukan setiap respons sebagai HTML.
Mengembalikan markup tak tepercaya dari domain Anda juga memberinya origin peramban penampil, bukan identitas situs yang diambil. Isolasi dokumen itu dari halaman akun dan admin. Tetapkan cookie jarak jauh per pengunjung, header yang diizinkan diteruskan, dan tujuan pengalihan; toples cookie bersama dapat mencampur login jarak jauh.
Berpegang pada batas dukungan itu sebelum menawarkan sesi penjelajahan. Untuk penjelajahan biasa lewat jalan keluar lain, antarmuka proksi bawaan peramban, seperti pengaturan HTTP/SOCKS Firefox, mempertahankan URL tujuan dan model origin peramban tanpa memerlukan lapisan ambil-dan-terbitkan-ulang ini. Untuk uji situs publik terpisah, daftar proxy gratis menyediakan titik akhir kandidat; cocokkan protokol di pengaturan peramban.