يمكن أن تكون بروتوكولات النص العادي، مثل HTTP، عرضة لهجمات التنصت التي يتم فيها تمكّن المهاجم من قراءة المحتوى المنقول. لحسن الحظ، يمكن أن يشفِّر بروتوكول أمان طبقة النقل (TLS) حركة المرور ويصعِّب على المهاجمين استخدام هذه البيانات في حال تم التقاطها.
ومع ذلك، يمكن للمهاجمين التحايل على بروتوكول أمان طبقة النقل (TLS) من خلال فرض استخدام اتصالات مشفَّرة لاستخدام HTTP النصي. لحلّ هذه المشكلة، تمّ تقديم عنوان الاستجابة الأمان المشدَّد لنقل البيانات باستخدام بروتوكول HTTP (HSTS) الذي يفرض على متصفّح المستخدم زيارة موقع إلكتروني باستخدام بروتوكول أمان طبقة النقل فقط وعدم الرجوع إلى بروتوكول HTTP النصي (لمدة زمنية محدّدة).
أسباب تعذُّر إكمال عملية تدقيق Lighthouse
سيُبلغ تقرير التدقيق عن المشاكل التالية في عنوان HSTS:
- إذا لم يتم العثور على عنوان HSTS على الإطلاق
- إذا لم يكن أحد التوجيهات المقترَحة متوفّرًا (
max-age
أوincludedSubDomains
أوpreload
) - إذا كانت مدة توجيه
max-age
أقل من عام واحد (31536000 ثانية). - إذا حدث خطأ في البنية عند تحليل العنوان، مثل توجيه غير معروف
ضبط سياسة HSTS قوية
تظهر إعدادات رأس HSTS المثلى على النحو التالي:
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
- يحدِّد التوجيه
max-age
المدة التي يجب أن يزور فيها متصفّح المستخدم موقعًا إلكترونيًا باستخدام بروتوكول TLS فقط (بالثواني). وبعد ذلك الوقت، سيكون من الممكن الوصول إلى الموقع الإلكتروني باستخدام بروتوكول HTTP العادي مرة أخرى إذا لم يكن هناك عنوان HSTS يوفّره الموقع الإلكتروني (أو إذا كانت عمليات إعادة التوجيه المؤقتة من HTTP إلى HTTPS متوفّرة). - سيؤدي ضبط التوجيه
includeSubDomains
إلى فرض العنوان على أي نطاقات فرعية لعنوان URL للصفحة التي تُرسِل العنوان في البداية. على سبيل المثال، إذا كان هناك عنوان HSTS يرسله google.com يتضمّن التوجيهincludeSubDomains
، سيتم أيضًا فرض عنوان HSTS على mail.google.com. - سيؤدي ضبط التوجيه
preload
وإرسال النطاق إلى خدمة التحميل المُسبَق لآلية HSTS إلى تجميع النطاق في ملفات ثنائية للمتصفّح تستخدِم قائمة HSTS المحمَّلة مُسبقًا (وليس فقط متصفّح Google Chrome).
هناك بعض المخاطر عند طرح رأس HSTS. سيتم إيقاف أي ميزات تتطلّب اتصالاً غير مشفّر عبر بروتوكول HTTP خلال الوقت المحدّد في التوجيه max-age
. وقد يستغرق الأمر وقتًا أطول في حال تطبيق التوجيه preload
.
لتقليل المخاطر المرتبطة بالطرح، ننصحك باتّباع نهج على مراحل:
بدءًا من
max-age
صغير وإضافةincludeSubDomains
فقط (بدونpreload
):max-age=3600; includeSubDomains
بعد مرور فترة انتظار (مثلاً أسبوع) بدون تسجيل أي مشاكل، يمكنك زيادة
max-age
، على سبيل المثال:max-age=604800; includeSubDomains
إذا نجحت هذه المرحلة الأولية لفترة طويلة (مثلاً، ثلاثة أشهر)، يجب إضافة الموقع الإلكتروني والنطاقات الفرعية الخاصة به إلى قائمة التحميل المُسبَق لبروتوكول HSTS وإضافة التوجيه
preload
.max-age=63072000; includeSubDomains; preload