Scanverra

كيفية إصلاح تحذيرات المحتوى المختلط

يحدث المحتوى المختلط (Mixed Content) عندما تُحمّل صفحة تُقدَّم عبر HTTPS ولو موردًا واحدًا - سكريبت أو صورة أو ورقة أنماط أو iframe - عبر HTTP العادي بدلًا من ذلك. هذا الطلب غير المشفَّر الواحد يقوّض ضمان الأمان الذي تقدّمه بقية الصفحة، وتستجيب المتصفحات بحجب المورد، أو كسر أيقونة القفل، أو كليهما.

لماذا يظهر المحتوى المختلط

  • روابط http:// ثابتة متبقية من قبل الانتقال إلى HTTPS. ترميز قديم، أو محتوى من نظام إدارة المحتوى، أو قاعدة بيانات لروابط أصول مخزَّنة كُتبت عندما كان الموقع يعمل على HTTP العادي ولم تُحدَّث قط.
  • عناصر مضمَّنة وأدوات من جهات خارجية لا تزال تُقدَّم عبر HTTP. شبكة إعلانات، أو أداة تعليقات، أو مقتطف تحليلات قديم لم ينتقل توصيله الخاص إلى HTTPS.
  • روابط CDN أو مضيف أصول تم إغفالها أثناء ترحيل البروتوكول. انتقل النطاق الرئيسي إلى HTTPS، لكن نطاقًا فرعيًا أو مضيف أصول خارجي يُقدّم الصور أو الخطوط لم يُحدَّث في نفس الوقت.
  • محتوى من المستخدمين يحتوي روابط HTTP ملصقة. يقدّم مستخدم محتوى (منشور منتدى، مراجعة منتج، حقل في نظام إدارة المحتوى) يحتوي رابط صورة أو تضمين بصيغة http:// يُعرض كما هو.

كيفية تحديد كل حالة

تكتشف Scanverra المحتوى المختلط عبر تحميل صفحتك في متصفح حقيقي والتقاط نشاط الشبكة الفعلي لها - يقوم كل من اختبار المتصفح وفحص الأمان بتنبيهك لأي طلب يبدأ بـ http:// بينما الصفحة نفسها تُقدَّم عبر HTTPS. ولأن الفحص يعتمد على طلبات شبكة حقيقية مُلتقطة بدلًا من فحص ثابت لمصدر HTML، فإنه يكتشف الموارد التي يحمّلها JavaScript ديناميكيًا بعد عرض الصفحة، وليس فقط تلك الثابتة مباشرة في الترميز.

كيفية الإصلاح

1. استبدل روابط http:// الثابتة بـ https://

قبل: رابط صورة ثابت بصيغة http://typescript
1<img src="http://cdn.example.com/testimonial-1.jpg" alt="Customer headshot" />
بعد: يُقدَّم عبر https، أو نسبيًا للبروتوكول إذا كان المضيف يدعم كليهماtypescript
1<img src="https://cdn.example.com/testimonial-1.jpg" alt="Customer headshot" />

2. أضف upgrade-insecure-requests كخط دفاع احتياطي

يخبر توجيه CSP هذا المتصفح بإعادة كتابة أي طلبات http:// متبقية تلقائيًا إلى https:// قبل إرسالها، ليلتقط الروابط التي فاتتك - رغم أنه يعمل فقط إذا كان المورد متاحًا فعليًا عبر HTTPS على ذلك المضيف:

ترقية تلقائية لأي طلب http:// شارد إلى https://typescript
1Content-Security-Policy: upgrade-insecure-requests

3. دقّق العناصر المضمَّنة من جهات خارجية تحديدًا

السكريبتات والأدوات من جهات خارجية هي المصدر الأكثر شيوعًا للمحتوى المختلط الذي لا تتحكم فيه مباشرة - تحقق من وثائق كل منها بحثًا عن رابط تضمين HTTPS، وأزل أي منها لا يوفّر ذلك.

4. عقّم أو أعد كتابة البروتوكول في المحتوى المُقدَّم من المستخدمين

إذا كان بإمكان المستخدمين تقديم محتوى يحتوي روابط، أعد كتابة http:// إلى https:// وقت العرض (أو ارفض التقديم) بدلًا من عرض أي بروتوكول تم لصقه.

كيف تكتشف Scanverra هذه المشكلة

يلتقط كل من اختبار المتصفح وفحص الأمان في Scanverra طلبات الشبكة الفعلية لصفحتك في متصفح حي، وينبّهانك لأي طلب يبدأ بـ http:// على صفحة تُقدَّم عبر HTTPS - وهو فحص حقيقي وقت التشغيل مقابل حركة مرور فعلية، وليس بحثًا نصيًا في مصدرك.

FAQ

Frequently asked questions

لماذا تُخلّ صورة واحدة بصيغة http:// بأمان الصفحة بأكملها، وليس فقط تلك الصورة؟

لأن ذلك الطلب الواحد غير مشفَّر وغير موثَّق، يمكن لمهاجم على نفس الشبكة (واي فاي عام، جهاز توجيه مخترَق) اعتراضه أو تعديله أثناء النقل - وحسب نوعه (سكريبت تحديدًا)، قد يعرّض ذلك بقية الصفحة للخطر رغم أن كل شيء آخر تم تحميله بشكل صحيح عبر HTTPS.

هل يحجب المتصفح المحتوى المختلط تلقائيًا، أم يحذّر فقط؟

يعتمد ذلك على نوع المورد. المحتوى المختلط "النشط" - السكريبتات، أوراق الأنماط، الـ iframes - تحجبه المتصفحات الحديثة كليًا. أما المحتوى المختلط "السلبي" - الصور والفيديو والصوت - فعادة ما يُحمَّل رغم ذلك لكنه يُطلق تحذير قفل مكسور في شريط العنوان، وهو بالضبط نوع إشارة الثقة التي تجعل الزوار يترددون.

كيف تجد Scanverra المحتوى المختلط - هل تفحص HTML الخاص بي بحثًا عن روابط http:// فقط؟

لا، الأمر أقوى من ذلك. تُحمّل Scanverra الصفحة في متصفح حقيقي وتلتقط طلبات الشبكة الفعلية التي تُجريها الصفحة، ثم تنبّهك لأي طلب يبدأ بـ http:// على صفحة تُقدَّم عبر https. وهذا يكتشف الموارد المحمَّلة ديناميكيًا عبر JavaScript، وليس فقط الثابتة في الترميز.

هل يمكنني فقط إضافة upgrade-insecure-requests والتوقف عن القلق بشأن الروابط الفردية؟

يساعد كشبكة أمان - فهو يخبر المتصفح بإعادة كتابة طلبات http:// إلى https:// تلقائيًا قبل إرسالها - لكنه يعمل فقط إذا كان المورد متاحًا فعليًا عبر HTTPS على نفس المضيف. إنه خط دفاع احتياطي جيد، لا بديل عن إصلاح الروابط الثابتة.

Free - no sign-up required

اعثر على تحذيرات المحتوى المختلط لديك

شغّل تدقيق أمان مجاني وشاهد كل طلب http:// لا تزال صفحتك عبر https تقوم به.

Run free audit