يمكن أن تكون البروتوكولات النصية العادية، مثل HTTP، عرضة لهجمات التنصّت، حيث يتمكّن المهاجم من قراءة المحتوى المنقول. يمكن لبروتوكول أمان طبقة النقل (TLS) تشفير الزيارات، ما يصعّب على المهاجمين استخدام هذه البيانات في حال تمكّنوا من الحصول عليها.
ومع ذلك، يمكن للمهاجمين التحايل على بروتوكول أمان طبقة النقل (TLS) من خلال فرض استخدام بروتوكول HTTP بنص عادي على الاتصالات المشفّرة. لحلّ هذه المشكلة، يمكنك استخدام عنوان الاستجابة الأمان المشدَّد لنقل البيانات باستخدام بروتوكول HTTP (HSTS). تفرض HSTS على متصفّح المستخدم زيارة موقع إلكتروني باستخدام TLS، ولا تسمح له بالرجوع إلى HTTP بنص عادي لمدة زمنية محدّدة.
أسباب تعذُّر عملية التدقيق في Lighthouse
يشير التدقيق إلى المشاكل التالية في عنوان HSTS:
- في حال عدم العثور على عنوان HSTS على الإطلاق
- في حال عدم توفّر أحد التوجيهات المقترَحة (
max-ageوincludeSubDomainsوpreload) - إذا كانت مدة التوجيه
max-ageأقل من عام واحد (31536000 ثانية). - إذا حدث خطأ في البنية عند تحليل العنوان، مثل توجيه غير معروف.
ضبط سياسة HSTS قوية
تبدو إعدادات عنوان HSTS المثالية على النحو التالي:
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
- يحدّد التوجيه
max-ageمقدار الوقت الذي يتم فيه إجبار متصفّح المستخدم على زيارة موقع إلكتروني باستخدام TLS فقط (بالثواني). بعد انقضاء الوقت، يمكن للمستخدمين الوصول إلى الموقع الإلكتروني باستخدام بروتوكول HTTP العادي مرة أخرى إذا لم يقدّم الموقع الإلكتروني عنوان HSTS (أو عمليات إعادة توجيه مؤقتة من HTTP إلى HTTPS). - يؤدي ضبط التوجيه
includeSubDomainsإلى فرض الرأس على أي نطاقات فرعية من عنوان URL للصفحة التي أرسلت الرأس في البداية. على سبيل المثال، إذا أرسلتgoogle.comعنوان HSTS يتضمّن التوجيه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