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

اقرأ الطلب، لا شريط العنوان

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

مجرد تسمية المورد ملفًا مُضمَّنًا لا تجعل استبداله غير ضار.

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

اعرف أي الموارد تُحظر وأيها تُرقّى

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

يفسّر هذا الفرق التقارير المربكة. الصفحة التي يُحظر فيها نص برمجي تفقد ميزة بالكامل، بينما تبدو الصفحة التي رُقّيت صورة فيها سليمة وقد غيّرت طلبها بهدوء. تحمل الفئات الموثّقة استثناءات أيضًا، فلا تفترض أن كل URL من نوع معين سيُرقّى بنجاح. اقرأ ما تقوله وحدة التحكم عن الطلب المحدد بدلًا من الاستنتاج من امتداد الملف.

حظر عنصر واجهة ليس دليلًا على أن النفق فشل. إنه دليل على أن المتصفح أدى عمله.

أصلح المرجع من مصدره

بالنسبة لمالك الموقع، ينتمي الإصلاح إلى الموضع الذي كُتب فيه URL غير الآمن: قالب، أو ورقة أنماط، أو نص برمجي يجمع URLات، أو مكوّن طرف ثالث. تغيير عنوان الصفحة الظاهر يترك كل ذلك دون مساس. ابحث في المصدر عن المضيف وأصلح كل مرجع بدلًا من المرجع الوحيد الذي صادف أن سمّته وحدة التحكم.

ثم تأكد من أن المورد يُقدَّم فعلًا عبر HTTPS بهوية صالحة، لأن تبديل المخطط لا يستطيع أن يخلق خدمة لم تُنشر هناك قط.

grep -rn "http://assets.example" ./templates
curl -sSI https://assets.example/widget.js | head -n 1

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

أعد اختبار الصفحة كما يلمسها المستخدمون

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

لا يزال للنفق وظيفته الخاصة، وهي الوصول إلى الشبكة لا سلامة الصفحة.

بعد أن يغادر المرور نقطة نهاية النفق، لا يكون أي طلب HTTP متبقٍّ قد كسب شيئًا من الناقل. أصلح مسار المورد وأبقِ إنفاذ المتصفح في مكانه. إن معاملة طبقة نقل إضافية كإصلاح لاعتمادية غير آمنة هي الطريقة التي ينتهي بها الفريق إلى نص برمجي لمكتب المساعدة يعطّل الضابط الذي كان يعمل بشكل صحيح.

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