إنّ إتاحة بروتوكول HTTPS لموقعك الإلكتروني خطوة مهمة لحماية موقعك ومستخدميه من الهجمات، ولكن المحتوى المختلط يمكن أن يجعل هذه الحماية بلا فائدة. ستحظر المتصفّحات المحتوى المختلط غير الآمن بشكل متزايد، كما هو موضّح في مقالة ما هو المحتوى المختلط؟
في هذا الدليل، سنعرض أساليب وأدوات لإصلاح المشاكل الحالية المتعلقة بالمحتوى المختلط وتجنُّب حدوث مشاكل جديدة.
العثور على المحتوى المختلط من خلال زيارة موقعك الإلكتروني
عند الانتقال إلى صفحة HTTPS في Google Chrome، يُعلمك المتصفّح بالمحتوى المختلط على شكل أخطاء وتحذيرات في وحدة تحكّم JavaScript.
في مقالة ما هو المحتوى المختلط؟، يمكنك الاطّلاع على عدد من الأمثلة ومعرفة كيفية الإبلاغ عن المشاكل في "أدوات مطوّري البرامج في Chrome".
سيؤدي مثال المحتوى المختلط غير النشط إلى ظهور التحذيرات التالية.
إذا كان بإمكان المتصفّح العثور على المحتوى في عنوان URL يبدأ بـ https، سيتم ترقيته تلقائيًا، ثم ستظهر رسالة.
يتم حظر المحتوى المختلط النشط ويتم عرض تحذير.
إذا ظهرت لك تحذيرات مشابهة لعناوين URL http:// على موقعك الإلكتروني، عليك إصلاحها في مصدر موقعك الإلكتروني.
من المفيد إعداد قائمة بعناوين URL هذه، بالإضافة إلى الصفحة التي عثرت عليها فيها، لاستخدامها عند إصلاحها.
العثور على محتوى مختلط في موقعك الإلكتروني
يمكنك البحث عن المحتوى المختلط مباشرةً في رمز المصدر.
ابحث عن http:// في المصدر وابحث عن العلامات التي تتضمّن سمات عناوين URL لبروتوكول HTTP.
يُرجى العِلم أنّ تضمين http:// في السمة href الخاصة بعلامات الروابط الثابتة (<a>) لا يشكّل غالبًا مشكلة محتوى مختلط، مع بعض الاستثناءات الجديرة بالذكر التي سنناقشها لاحقًا.
إذا كان موقعك الإلكتروني منشورًا باستخدام نظام إدارة محتوى، من المحتمل أن يتم إدراج روابط تؤدي إلى عناوين URL غير آمنة عند نشر الصفحات. على سبيل المثال، يمكن تضمين الصور باستخدام عنوان URL كامل بدلاً من مسار نسبي. عليك العثور على هذه الأخطاء وإصلاحها ضمن محتوى نظام إدارة المحتوى.
حلّ مشكلة المحتوى المختلط
بعد العثور على محتوى مختلط في مصدر موقعك الإلكتروني، يمكنك اتّباع الخطوات التالية لحلّ المشكلة.
إذا تلقّيت رسالة في وحدة التحكّم تفيد بأنّه تمت ترقية طلب مصدر تلقائيًا من HTTP إلى HTTPS، يمكنك بأمان تغيير عنوان URL الخاص بالمصدر في الرمز من http:// إلى https://.
يمكنك أيضًا التحقّق مما إذا كان أحد الموارد متاحًا بشكل آمن من خلال تغيير http:// إلى https:// في شريط عنوان URL للمتصفّح
ومحاولة فتح عنوان URL في علامة تبويب المتصفّح.
إذا لم يكن المرجع متاحًا من خلال https://، عليك مراعاة أحد الخيارات التالية:
- ضمِّن المرجع من مضيف مختلف، إذا كان متاحًا.
- تنزيل المحتوى واستضافته على موقعك الإلكتروني مباشرةً، إذا كان مسموحًا لك بذلك قانونيًا
- استبعاد المرجع من موقعك الإلكتروني تمامًا
بعد حلّ المشكلة، اعرض الصفحة التي ظهر فيها الخطأ في الأصل وتأكَّد من أنّه لم يعُد يظهر.
الحذر من الاستخدام غير العادي للعلامات
احذر من استخدام العلامات غير العادية على موقعك الإلكتروني.
على سبيل المثال، لا تؤدي عناوين URL الخاصة بعلامة الرابط الثابت (<a>) إلى حدوث أخطاء في المحتوى المختلط،
لأنّها تتسبب في انتقال المتصفح إلى صفحة جديدة.
وهذا يعني أنّها لا تحتاج عادةً إلى إصلاح.
ومع ذلك، تتجاوز بعض النصوص البرمجية لمعرض الصور وظيفة علامة <a>
وتحمّل مورد HTTP المحدّد بواسطة السمة href في عرض "المربع المنبثق" على الصفحة،
ما يؤدي إلى حدوث مشكلة في المحتوى المختلط.
التعامل مع المحتوى المختلط على نطاق واسع
تعمل الخطوات اليدوية المذكورة أعلاه بشكل جيد مع المواقع الإلكترونية الأصغر حجمًا، ولكن بالنسبة إلى المواقع الإلكترونية الكبيرة أو المواقع التي تضم العديد من فِرق التطوير المنفصلة، قد يكون من الصعب تتبُّع كل المحتوى الذي يتم تحميله. للمساعدة في هذه المهمة، يمكنك استخدام سياسة أمان المحتوى لتوجيه المتصفّح بإعلامك بشأن المحتوى المختلط والتأكّد من أنّ صفحاتك لا تحمّل أبدًا موارد غير آمنة بشكل غير متوقّع.
سياسة أمان المحتوى
سياسة أمان المحتوى (CSP) هي ميزة متعدّدة الأغراض في المتصفّح يمكنك استخدامها لإدارة المحتوى المختلط على نطاق واسع. يمكن استخدام آلية إعداد التقارير في CSP لتتبُّع المحتوى المختلط على موقعك الإلكتروني، وتوفير سياسات التنفيذ لحماية المستخدمين من خلال ترقية المحتوى المختلط أو حظره.
يمكنك تفعيل هذه الميزات لصفحة معيّنة من خلال تضمين العنوان Content-Security-Policy أو Content-Security-Policy-Report-Only في الردّ الذي يرسله الخادم.
بالإضافة إلى ذلك، يمكنك ضبط Content-Security-Policy
(وليس Content-Security-Policy-Report-Only) باستخدام العلامة <meta> في القسم <head> من صفحتك.
العثور على محتوى مختلط باستخدام سياسة أمان المحتوى
يمكنك استخدام سياسة أمان المحتوى لجمع تقارير عن المحتوى المختلط على موقعك الإلكتروني.
لتفعيل هذه الميزة، اضبط التوجيه Content-Security-Policy-Report-Only من خلال إضافته كعنوان استجابة لموقعك الإلكتروني.
عنوان الاستجابة:
Content-Security-Policy-Report-Only: default-src https: 'unsafe-inline' 'unsafe-eval'; report-uri https://example.com/reportingEndpoint
عندما يزور مستخدم صفحة على موقعك الإلكتروني، يرسل المتصفّح تقارير منسَّقة بتنسيق JSON بشأن أي شيء يخالف سياسة أمان المحتوى إلى https://example.com/reportingEndpoint.
في هذه الحالة، يتم إرسال تقرير في كل مرة يتم فيها تحميل مورد فرعي عبر HTTP.
تتضمّن هذه التقارير عنوان URL للصفحة التي حدثت فيها مخالفة السياسة وعنوان URL للمورد الفرعي الذي خالف السياسة.
إذا ضبطت نقطة نهاية إعداد التقارير لتسجيل هذه التقارير، يمكنك تتبُّع المحتوى المختلط على موقعك الإلكتروني بدون الحاجة إلى الانتقال إلى كل صفحة بنفسك.
هناك نوعان من التنبيهات:
- على المستخدمين زيارة صفحتك في متصفّح يتوافق مع عنوان CSP. وينطبق ذلك على معظم المتصفّحات الحديثة.
- لا تتلقّى تقارير إلا عن الصفحات التي زارها المستخدمون. لذلك، إذا كانت لديك صفحات لا تجذب الكثير من الزيارات، قد يستغرق الأمر بعض الوقت قبل أن تتلقّى تقارير عن موقعك الإلكتروني بالكامل.
يتضمّن دليل سياسة أمان المحتوى مزيدًا من المعلومات ونقطة نهاية نموذجية.
بدائل للإبلاغ باستخدام CSP
إذا كانت منصة مثل Blogger تستضيف موقعك الإلكتروني، قد لا تتمكّن من تعديل العناوين وإضافة سياسة أمان المحتوى. بدلاً من ذلك، يمكنك استخدام برنامج زحف إلى المواقع الإلكترونية للعثور على المشاكل في موقعك الإلكتروني، مثل HTTPSChecker أو Mixed Content Scan.
ترقية الطلبات غير الآمنة
بدأت المتصفّحات في ترقية الطلبات غير الآمنة وحظرها. يمكنك استخدام توجيهات CSP لفرض الترقية التلقائية أو الحظر التلقائي لمواد العرض هذه.
يوجّه توجيه upgrade-insecure-requests في سياسة أمان المحتوى المتصفّح إلى ترقية عناوين URL غير الآمنة قبل تقديم طلبات الشبكة.
على سبيل المثال، إذا كانت الصفحة تحتوي على علامة صورة تتضمّن عنوان URL يستخدم HTTP مثل
<img src="http://example.com/image.jpg">
بدلاً من ذلك، يرسل المتصفّح طلبًا آمنًا للحصول على
https://example.com/image.jpg، ما يجنّب المستخدمين المحتوى المختلط.
يمكنك تفعيل هذا السلوك إما عن طريق إرسال عنوان Content-Security-Policy مع هذه التوجيه:
Content-Security-Policy: upgrade-insecure-requests
أو من خلال تضمين التوجيه نفسه بشكل مضمّن في قسم <head> من المستند باستخدام عنصر <meta>:
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
وكما هو الحال مع الترقية التلقائية في المتصفّح، إذا لم يكن المصدر متاحًا عبر HTTPS، سيتعذّر تنفيذ الطلب الذي تمت ترقيته ولن يتم تحميل المصدر.
يساعد ذلك في الحفاظ على أمان صفحتك. سيتجاوز التوجيه upgrade-insecure-requests الترقية التلقائية للمتصفّح،
محاولاً ترقية الطلبات التي لا يرقّيها المتصفّح حاليًا.
ينتقل الأمر upgrade-insecure-requests إلى مستندات <iframe>، ما يضمن حماية الصفحة بأكملها.