تنقّل الوكيل الويب بلغة PHP: الروابط النسبية وملفات تعريف الارتباط والأصول
خطّط لعناوين الموارد والتنقّل وملفات تعريف الارتباط وحدود الأصل عند تحويل الجلب بلغة PHP إلى وكيل ويب يواجه المتصفح.
قبل إضافة مزيد من إعادة الكتابة إلى جالب بلغة PHP، اختر إلى أين يجب أن يذهب المورد التالي. قد يحتوي مستند جُلب من https://destination.example/catalog/ وأُعيد عند https://viewer.example/browse?url=... على:
<img src="photo.jpg">
<a href="details/42">Details</a>يحلّ المتصفح تلك المراجع باستخدام المستند الذي تلقّاه عند العارض. وكون PHP قد جلب البايتات الأصلية لا يثبت الأصل البعيد.
يمكن لعنصر base أن يوجّه الروابط النسبية إلى الوجهة، لكن تلك الطلبات قد تنتقل بعد ذلك مباشرة من المتصفح إلى الوجهة. أما إبقاء كل طلب عبر PHP فيتطلب عناوين وكيل ونموذج توجيه أوسع:
| المورد أو الإجراء | المعالجة المطلوبة |
|---|---|
| الروابط والصور | حلّها مقابل المستند البعيد وأنتج المسار المقصود |
| استيرادات CSS ومواردها | استخدم الأصل البعيد لورقة الأنماط |
| النماذج | حافظ على الطريقة والبيانات المرسلة |
| إعادة التوجيه | أبقِ التنقّل داخل النموذج المسموح |
| الطلبات التي تنشئها النصوص البرمجية | تعامل مع العناوين الغائبة عن HTML الأصلي |
لا يمكن لبعض عمليات الاستبدال بالتعبيرات النمطية أن تضمن توافقًا عامًا مع المواقع الكثيفة بالنصوص البرمجية. بالنسبة لمستند عام معروف، قد يكفي تعطيل التنقّل أو السماح بالروابط المباشرة أو توجيه مجموعة فرعية مدعومة عبر العارض. حافظ على أنواع الوسائط الفعلية بدلًا من معاملة كل استجابة كأنها HTML.
إن إعادة ترميز غير موثوق من نطاقك تمنحه أيضًا أصل متصفح العارض، لا هوية الموقع المجلوب. اعزل تلك المستندات عن صفحات الحساب والإدارة. حدّد ملفات ارتباط بعيدة لكل زائر، والترويسات المسموح بتمريرها، ووجهات إعادة التوجيه؛ يمكن لوعاء ارتباط مشترك أن يخلط عمليات الدخول البعيدة.
التزم بذلك الحد من الدعم قبل تقديم جلسة تصفح. للتصفح العادي عبر مخرج آخر، تحافظ واجهة الوكيل الأصلية في المتصفح، مثل إعدادات HTTP/SOCKS في Firefox، على عنوان الوجهة ونموذج الأصل في المتصفح دون الحاجة إلى طبقة الجلب وإعادة النشر هذه. لاختبار موقع عام منفصل، توفّر قائمة الوكلاء المجانية نقاط نهاية مرشحة؛ طابِق البروتوكول في إعدادات المتصفح.