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

يُعدّ استخدام بروتوكول 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> وتحمّل مورد 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.

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

Browser Support

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

Source

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

يوجّه upgrade-insecure-requests توجيه سياسة أمان المحتوى (CSP) المتصفّح إلى ترقية عناوين 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>، مما يضمن حماية الصفحة بأكملها.