إصلاح المحتوى المختلط

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

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

العثور على المحتوى المختلط من خلال زيارة موقعك الإلكتروني

عند زيارة صفحة HTTPS في Google Chrome، ينبّهك المتصفّح إلى المحتوى المختلط على شكل أخطاء وتحذيرات في وحدة تحكّم JavaScript.

في مقالة ما هو المحتوى المختلط؟، يمكنك الاطّلاع على عدد من الأمثلة ومعرفة كيفية الإبلاغ عن المشاكل في "أدوات مطوّري البرامج في Chrome".

سيؤدي مثال المحتوى المختلط السلبي إلى ظهور التحذيرات التالية. إذا تمكّن المتصفّح من العثور على المحتوى في عنوان URL يبدأ بـ https، فسيتم تلقائيًا ترقيته، ثم ستظهر رسالة.

"أدوات مطوّري البرامج في Chrome" تعرض التحذيرات التي تظهر عند رصد محتوى مختلط وترقيته

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

أدوات مطوّري البرامج في Chrome" تعرض التحذيرات التي تظهر عند حظر المحتوى المختلَط النشط

إذا ظهرت لك تحذيرات مشابهة لعناوين URL التي تبدأ بـ http:// على موقعك الإلكتروني، عليك حلّها في مصدر موقعك الإلكتروني. من المفيد إنشاء قائمة بعناوين URL هذه، بالإضافة إلى الصفحة التي عثرت عليها فيها، لاستخدامها عند حلّها.

العثور على المحتوى المختلط في موقعك الإلكتروني

يمكنك البحث عن المحتوى المختلط مباشرةً في رمز المصدر. ابحث عن http:// في المصدر وابحث عن العلامات التي تتضمّن سمات عنوان URL لبروتوكول HTTP. يُرجى العِلم أنّ استخدام http:// في السمة href لعلامات الربط (<a>) لا يمثّل غالبًا مشكلة محتوى مختلط، مع بعض الاستثناءات البارزة التي سنناقشها لاحقًا.

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

حلّ مشكلة المحتوى المختلط

بعد العثور على المحتوى المختلط في مصدر موقعك الإلكتروني، يمكنك اتّباع الخطوات التالية لحلّه.

إذا ظهرت لك رسالة في وحدة التحكّم تشير إلى أنّه تم تلقائيًا ترقية طلب مصدر من HTTP إلى HTTPS، يمكنك بأمان تغيير عنوان URL الذي يبدأ بـ http:// للمصدر في الرمز إلى https://. يمكنك أيضًا التحقّق ممّا إذا كان المصدر متاحًا بشكل آمن عن طريق تغيير http:// إلى https:// في شريط عنوان URL للمتصفّح ومحاولة فتح عنوان URL في علامة تبويب المتصفّح.

إذا لم يكن المصدر متاحًا من خلال https://، عليك مراعاة أحد الخيارات التالية:

  • تضمين المصدر من مضيف مختلف، إذا كان متاحًا
  • تنزيل المحتوى واستضافته على موقعك الإلكتروني مباشرةً، إذا كان مسموحًا لك قانونًا بذلك
  • استبعاد المصدر من موقعك الإلكتروني نهائيًا

بعد حلّ المشكلة، اعرض الصفحة التي عثرت فيها على الخطأ في الأصل وتأكَّد من أنّه لم يعُد يظهر.

الانتباه إلى الاستخدام غير العادي للعلامات

يُرجى الانتباه إلى الاستخدام غير العادي للعلامات على موقعك الإلكتروني. على سبيل المثال، لا تؤدي عناوين URL لعلامات الربط (<a>) إلى ظهور أخطاء في المحتوى المختلط، لأنّها تجعل المتصفّح ينتقل إلى صفحة جديدة. هذا يعني أنّه ليس عليك عادةً حلّ هذه الأخطاء. ومع ذلك، تلغي بعض النصوص البرمجية لمعرض الصور وظيفة علامة <a> tag وتحمّل مصدر HTTP الذي تحدّده سمة href في عرض lightbox على الصفحة، ما يؤدي إلى حدوث مشكلة في المحتوى المختلط.

التعامل مع المحتوى المختلط على نطاق واسع

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

سياسة أمان المحتوى

سياسة أمان المحتوى (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 للمصدر الفرعي الذي انتهك السياسة. إذا ضبطت نقطة نهاية إعداد التقارير لتسجيل هذه التقارير، يمكنك تتبُّع المحتوى المختلط على موقعك الإلكتروني بدون زيارة كل صفحة بنفسك.

هناك تحذيران بشأن ذلك:

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

يتضمّن دليل سياسة أمان المحتوى مزيدًا من المعلومات ونقطة نهاية مثال.

بدائل لإعداد التقارير باستخدام سياسة أمان المحتوى

إذا كانت منصة مثل Blogger تستضيف موقعك الإلكتروني، قد لا تتمكّن من تعديل العناوين وإضافة سياسة أمان المحتوى. بدلاً من ذلك، يمكن أن يكون استخدام زاحف مواقع إلكترونية بديلاً مناسبًا للعثور على المشاكل في موقعك الإلكتروني، مثل HTTPSChecker أو Mixed Content Scan.

ترقية الطلبات غير الآمنة

Browser Support

  • Chrome: 44.
  • Edge: 17.
  • Firefox: 48.
  • Safari: 10.1.

Source

بدأت المتصفّحات بترقية الطلبات غير الآمنة وحظرها. يمكنك استخدام توجيهات سياسة أمان المحتوى لفرض الترقية التلقائية لهذه المواد أو حظرها.

يطلب توجيه upgrade-insecure-requests في سياسة أمان المحتوى من المتصفّح ترقية عناوين URL غير الآمنة قبل إجراء طلبات الشبكة.

على سبيل المثال، إذا كانت الصفحة تحتوي على علامة صورة تتضمّن عنوان URL لبروتوكول HTTP، مثل <img src="https://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>، ما يضمن حماية الصفحة بأكملها.