از یک سیاست HSTS قوی استفاده کنید

پروتکل‌های متن ساده، مانند HTTP، می‌توانند در برابر حملات استراق سمع آسیب‌پذیر باشند، که در آن یک مهاجم قادر به خواندن محتوای منتقل شده است. امنیت لایه انتقال (TLS) می‌تواند ترافیک را رمزگذاری کند و در صورت ضبط، استفاده از این داده‌ها را برای مهاجمان به طور قابل توجهی دشوارتر کند.

با این حال، مهاجمان می‌توانند با مجبور کردن اتصالات رمزگذاری شده به استفاده از HTTP ساده، TLS را دور بزنند. برای رفع این مشکل، می‌توانید از هدر پاسخ HTTP Strict Transport Security (HSTS) استفاده کنید. HSTS مرورگر کاربر را مجبور می‌کند تا از وب‌سایتی با استفاده از TLS بازدید کند و اجازه نمی‌دهد که برای مدت زمان مشخصی به HTTP ساده بازگردد.

Browser Support

  • کروم: ۴.
  • لبه: ۱۲.
  • فایرفاکس: ۴.
  • سافاری: ۷.

Source

چگونه حسابرسی لایت‌هاوس شکست می‌خورد؟

هشدار گزارش Lighthouse مبنی بر اینکه هیچ هدر پاسخ HSTS یافت نشد.

این ممیزی، مشکلات زیر را در هدر HSTS نشان می‌دهد:

  • اگر اصلاً هیچ هدر HSTS پیدا نشد.
  • اگر یکی از دستورالعمل‌های توصیه‌شده وجود ندارد ( max-age ، includeSubDomains ، preload )
  • اگر مدت زمان دستورالعمل max-age کمتر از یک سال (31536000 ثانیه) باشد.
  • اگر هنگام تجزیه هدر، خطای نحوی وجود داشته باشد، مانند یک دستورالعمل ناشناخته.

پیکربندی یک سیاست HSTS قوی

پیکربندی بهینه هدر HSTS به شرح زیر است:

Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
  • دستورالعمل max-age مدت زمانی را که مرورگر کاربر مجبور است فقط با استفاده از TLS از یک وب‌سایت بازدید کند (بر حسب ثانیه) مشخص می‌کند. پس از گذشت زمان، اگر هیچ هدر HSTS توسط وب‌سایت ارائه نشده باشد (یا ریدایرکت‌های موقت از HTTP به HTTPS)، کاربران می‌توانند دوباره با HTTP ساده به سایت دسترسی پیدا کنند.
  • تنظیم دستورالعمل includeSubDomains هدر را روی هر زیردامنه از URL صفحه که هدر را در ابتدا ارسال می‌کند، اعمال می‌کند. برای مثال، داشتن یک هدر HSTS ارسال شده توسط google.com که شامل دستورالعمل includeSubDomains است، هدر HSTS را روی mail.google.com اعمال می‌کند.
  • تنظیم دستورالعمل preload و ارسال دامنه به سرویس preload HSTS، دامنه را در فایل‌های باینری مرورگری که از لیست HSTS از پیش بارگذاری شده استفاده می‌کنند، کامپایل می‌کند. این موضوع علاوه بر گوگل کروم، در مورد موارد دیگری نیز صادق است.

هنگام راه‌اندازی هدر HSTS خطراتی وجود دارد. هر ویژگی که به اتصال HTTP رمزگذاری نشده نیاز داشته باشد، عملاً برای مدت زمان تعیین شده در دستورالعمل max-age از کار می‌افتد. در صورت اعمال دستورالعمل preload ، این زمان می‌تواند حتی بیشتر هم باشد.

برای کاهش خطرات مرتبط با راه‌اندازی، یک رویکرد مرحله‌ای توصیه می‌شود:

  1. با یک max-age کوچک شروع کنید و فقط includeSubDomains اضافه کنید (بدون preload ):

    max-age=3600; includeSubDomains
    
  2. پس از یک دوره استراحت (مثلاً یک هفته) بدون گزارش مشکل، max-age را افزایش دهید. برای مثال:

    max-age=604800; includeSubDomains
    
  3. اگر این مرحله اولیه برای مدت زمان طولانی (مانند سه ماه) موفقیت‌آمیز باشد، وب‌سایت و زیردامنه‌های آن باید به لیست پیش‌بارگذاری HSTS اضافه شوند و دستورالعمل preload نیز باید اضافه شود.

    max-age=63072000; includeSubDomains; preload