لماذا يظهر المحتوى المختلط
- روابط
http://ثابتة متبقية من قبل الانتقال إلى HTTPS. ترميز قديم، أو محتوى من نظام إدارة المحتوى، أو قاعدة بيانات لروابط أصول مخزَّنة كُتبت عندما كان الموقع يعمل على HTTP العادي ولم تُحدَّث قط. - عناصر مضمَّنة وأدوات من جهات خارجية لا تزال تُقدَّم عبر HTTP. شبكة إعلانات، أو أداة تعليقات، أو مقتطف تحليلات قديم لم ينتقل توصيله الخاص إلى HTTPS.
- روابط CDN أو مضيف أصول تم إغفالها أثناء ترحيل البروتوكول. انتقل النطاق الرئيسي إلى HTTPS، لكن نطاقًا فرعيًا أو مضيف أصول خارجي يُقدّم الصور أو الخطوط لم يُحدَّث في نفس الوقت.
- محتوى من المستخدمين يحتوي روابط HTTP ملصقة. يقدّم مستخدم محتوى (منشور منتدى، مراجعة منتج، حقل في نظام إدارة المحتوى) يحتوي رابط صورة أو تضمين بصيغة
http://يُعرض كما هو.
كيفية تحديد كل حالة
تكتشف Scanverra المحتوى المختلط عبر تحميل صفحتك في متصفح حقيقي والتقاط نشاط الشبكة الفعلي لها - يقوم كل من اختبار المتصفح وفحص الأمان بتنبيهك لأي طلب يبدأ بـ http:// بينما الصفحة نفسها تُقدَّم عبر HTTPS. ولأن الفحص يعتمد على طلبات شبكة حقيقية مُلتقطة بدلًا من فحص ثابت لمصدر HTML، فإنه يكتشف الموارد التي يحمّلها JavaScript ديناميكيًا بعد عرض الصفحة، وليس فقط تلك الثابتة مباشرة في الترميز.
كيفية الإصلاح
1. استبدل روابط http:// الثابتة بـ https://
1<img src="http://cdn.example.com/testimonial-1.jpg" alt="Customer headshot" />1<img src="https://cdn.example.com/testimonial-1.jpg" alt="Customer headshot" />2. أضف upgrade-insecure-requests كخط دفاع احتياطي
يخبر توجيه CSP هذا المتصفح بإعادة كتابة أي طلبات http:// متبقية تلقائيًا إلى https:// قبل إرسالها، ليلتقط الروابط التي فاتتك - رغم أنه يعمل فقط إذا كان المورد متاحًا فعليًا عبر HTTPS على ذلك المضيف:
1Content-Security-Policy: upgrade-insecure-requests3. دقّق العناصر المضمَّنة من جهات خارجية تحديدًا
السكريبتات والأدوات من جهات خارجية هي المصدر الأكثر شيوعًا للمحتوى المختلط الذي لا تتحكم فيه مباشرة - تحقق من وثائق كل منها بحثًا عن رابط تضمين HTTPS، وأزل أي منها لا يوفّر ذلك.
4. عقّم أو أعد كتابة البروتوكول في المحتوى المُقدَّم من المستخدمين
إذا كان بإمكان المستخدمين تقديم محتوى يحتوي روابط، أعد كتابة http:// إلى https:// وقت العرض (أو ارفض التقديم) بدلًا من عرض أي بروتوكول تم لصقه.
كيف تكتشف Scanverra هذه المشكلة
يلتقط كل من اختبار المتصفح وفحص الأمان في Scanverra طلبات الشبكة الفعلية لصفحتك في متصفح حي، وينبّهانك لأي طلب يبدأ بـ http:// على صفحة تُقدَّم عبر HTTPS - وهو فحص حقيقي وقت التشغيل مقابل حركة مرور فعلية، وليس بحثًا نصيًا في مصدرك.