إنّ إتاحة استخدام بروتوكول HTTPS لموقعك الإلكتروني هي خطوة مهمة لحماية موقعك الإلكتروني ومستخدميه من الهجمات، ولكن المحتوى المختلط قد يجعل تلك الحماية عديمة الفائدة. ستحظر المتصفحات المحتوى المختلط بشكل متزايد، كما هو موضّح في المقالة ما هو المحتوى المختلط؟
سنشرح في هذا الدليل أساليب وأدوات لإصلاح المشاكل الحالية المتعلّقة بالمحتوى المختلَط. ومنع حدوث أخطاء جديدة.
العثور على محتوى مختلط من خلال زيارة موقعك الإلكتروني
عند زيارة صفحة HTTPS في Google Chrome ينبهك المتصفح بالمحتوى المختلط على شكل أخطاء وتحذيرات في وحدة تحكم JavaScript.
في المقالة ما المقصود بالمحتوى المختلط؟، يمكنك الاطّلاع على عدد من الأمثلة ومعرفة طريقة الإبلاغ عن المشاكل في "أدوات مطوري البرامج في Chrome".
سيُعرض مثال المحتوى المختلَط السلبي التحذيرات التالية.
إذا تمكّن المتصفّح من العثور على المحتوى في عنوان URL https
، ستتم ترقيته تلقائيًا، ثم تعرض رسالة.
يتم حظر المحتوى المختلط النشط ويتم عرض تحذير.
إذا ظهرت لك تحذيرات مثل هذه بشأن http://
عناوين URL على موقعك الإلكتروني،
عليك حلّ المشاكل في مصدر موقعك الإلكتروني
من المفيد عمل قائمة بعناوين 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 مستضافة لموقعك الإلكتروني، قد لا تتمكن من تعديل العناوين وإضافة سياسة أمان محتوى (CSP). بدلاً من ذلك، يمكن استخدام زاحف موقع إلكتروني للعثور على المشاكل في موقعك الإلكتروني نيابةً عنك، مثل HTTPSChecker أو فحص المحتوى المختلط:
ترقية الطلبات غير الآمنة
بدأت المتصفّحات في ترقية الطلبات غير الآمنة وحظرها. يمكنك استخدام توجيهات CSP لفرض ترقية مواد العرض هذه أو حظرها تلقائيًا.
upgrade-insecure-requests
يوجه توجيه CSP إلى المتصفح ترقية عناوين 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>
مستندات،
ضمان حماية الصفحة بأكملها.