قبل إضافة مزيد من إعادة الكتابة إلى جالب بلغة 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، على عنوان الوجهة ونموذج الأصل في المتصفح دون الحاجة إلى طبقة الجلب وإعادة النشر هذه. لاختبار موقع عام منفصل، توفّر قائمة الوكلاء المجانية نقاط نهاية مرشحة؛ طابِق البروتوكول في إعدادات المتصفح.

مقالات ذات صلة