تقييد إعادة كتابة محتوى البروكسي باستخدام no-transform وHTTPS
استخدم no-transform لتحديد سياسة محتوى HTTP، وHTTPS لحماية اتصال المتصفح من تعديل الصفحة أثناء النقل.
يمكن للبروكسي الذي يعيد التحويل أن يغيّر الاستجابة في طريقها إلى المتصفح: إعادة ضغط صورة، أو إعادة كتابة الترميز، أو إدراج JavaScript مساند. والصفحة التي تعمل على شبكة واحدة ثم تتلقى ترميزًا غير مألوف على شبكة أخرى قد تكون تواجه سلوك هذا الوسيط.
بالنسبة إلى موقع تديره، توفّر HTTP توجيهًا صريحًا للاستجابة:
Cache-Control: no-transform
يشترط RFC 9111 على الوسيط الذي يتلقى توجيه الاستجابة هذا أن يترك المحتوى دون تحويل، سواء كان ذلك الوسيط ينفّذ ذاكرة تخزين مؤقت أم لا. وهذا يتصل بإعادة ضغط الصور وحقن الترميز، وليس فقط بما إذا كان الكائن سيُخزَّن.
أبقِه مع سياسة التخزين المؤقت القائمة
إذا كانت الاستجابة تحتوي بالفعل على توجيهات تخزين مؤقت، فأضف الشرط عن قصد بدلًا من التخلي عن بقية السياسة. على سبيل المثال، قد يكون لأصل قابل للتخزين المؤقت علنًا:
Cache-Control: public, max-age=3600, no-transform
يحافظ هذا المثال على سياسة حداثة مدتها ساعة واحدة مع منع تحويل المحتوى. لا يستلزم no-transform توجيه no-store، ولا يعطّل معالجة النقل العادية. اضبطه على الاستجابات التي يهم محتواها الأصلي، بما في ذلك استجابات الصور المنفصلة حيث يكون ذلك مناسبًا.
يعمل التوجيه من خلال امتثال الوسيط. وهو لا يمنع من الناحية التشفيرية جهاز شبكة من تجاهل التعليمات.
احمِ النقل أيضًا
يمنح HTTPS المتصفح اتصالًا فيه مصادقة وحماية للسلامة مع نظيره في TLS. والبروكسي العادي لحامل الاتصال الذي يمرّر حركة مشفّرة لا يستطيع إدراج سكربت في ذلك الاتصال المحمي بصمت. أبقِ التحقق من الشهادة قائمًا؛ أما بروكسي الفحص الموثوق محليًا الذي ينهي TLS فهو ترتيب مختلف.
قدّم الصفحة ومواردها التابعة عبر HTTPS. أعد توجيه زوار HTTP إلى HTTPS، وفكّر في HSTS لنشر يمكنه دعمه باستمرار. إعادة التوجيه وحدها تبدأ بتبادل HTTP غير محمي للزائر الذي استخدم عنوان HTTP؛ وسياسة HSTS تعلّمها سابقًا أو محمّلة مسبقًا تغيّر هذا الاختيار الأولي.
قد يقلّل حظر سكربت محقون من آثاره المرئية، لكن الاستجابة قد تحتوي بالفعل على HTML متغيّر أو عناوين صور معاد كتابتها. واستبدال اسم دالة قديم واحد، أو إضافة تعليق غير معتاد، أو ربط عنوان حقن تاريخي لا يثبت سلامة المحتوى للوسيط التالي.
عند التحقيق في تقرير، قارن الاستجابة المستلمة بالمحتوى المقصود من الأصل وحدّد أين ينتهي TLS. وهذه الأدلة أنفع من التعامل مع كل سكربت غير مألوف كخطأ في كود تطبيق الموقع نفسه.