بی بی سی HSTS را برای وب سایت خود به منظور بهبود امنیت و عملکرد ارائه می کند. معنی آن چیست و HSTS چگونه می تواند به شما کمک کند.
پذیرش HTTPS در سال های اخیر به طور پیوسته در حال افزایش بوده است. بر اساس سالنامه وب 2021 بایگانی HTTP، حدود 91٪ از تمام درخواستها برای دسکتاپ و موبایل از طریق HTTPS ارائه شده است . HTTPS فقط برای ماندن نیست، بلکه یک پیش نیاز ضروری برای استفاده از ویژگی هایی مانند Service Worker و پروتکل های مدرن مانند HTTP/2 و HTTP/3 است.
اخیرا نیل کریگ -معمار فنی ارشد در بیبیسی- توییت کرد که امنیت حمل و نقل سخت HTTP (HSTS) به آرامی برای bbc.com عرضه میشود . دریابید که این برای بیبیسی چه معنایی دارد و چه معنایی میتواند برای شما داشته باشد.
مشکل
سرورهای وب اغلب به درخواست ها در هر دو پورت 80 و 443 گوش می دهند. پورت 80 برای درخواست های HTTP ناامن است، در حالی که 443 برای HTTPS امن است. این میتواند مشکلی ایجاد کند، زیرا وقتی آدرسی را بدون پیشوند پروتکل https://
وارد میکنید در نوار آدرس خود -همانطور که اکثر کاربران تمایل دارند انجام دهند- برخی از مرورگرها به دلایل قدیمی، ترافیک را به نسخه HTTP ناامن یک سایت هدایت میکنند ( اگرچه همیشه اینطور نیست ).
یک راه متداول برای اطمینان از عدم دسترسی کاربران به نسخه ناامن یک وب سایت، قرار دادن تغییر مسیر HTTP به HTTPS برای همه درخواست ها است. این مطمئناً کار می کند، اما زنجیره ای از رویدادهای زیر را آغاز می کند:
- سرور یک درخواست HTTP دریافت می کند.
- سرور یک تغییر مسیر برای رفتن به معادل HTTPS منبع درخواستی صادر می کند.
- سرور باید یک اتصال امن با مرورگر مذاکره کند.
- محتوا طبق معمول بارگیری می شود.
در حالی که تغییر مسیرها به خوبی کار می کنند، می توانند به شکلی اشتباه پیکربندی شوند که همچنان امکان دسترسی به نسخه ناامن یک سایت را فراهم می کند. حتی اگر همه چیز به درستی پیکربندی شده باشد ، باز هم یک مشکل امنیتی وجود دارد و آن این است که کاربر همچنان از طریق HTTP ناامن در مرحله تغییر مسیر متصل می شود، که کاربران را در معرض احتمال حملات خطرناک انسان در وسط قرار می دهد.
HSTS را وارد کنید
HSTS توسط هدر پاسخ HTTP Strict-Transport-Security
برای درخواست های HTTPS دیکته می شود. هنگامی که تنظیم شود، بازدیدهای برگشتی از یک وبسایت یک تغییر مسیر خاص به نام «307 Internal Redirect» را راهاندازی میکند که زمانی است که مرورگر به جای سرور، منطق تغییر مسیر را مدیریت میکند. این از رهگیری درخواست جلوگیری می کند، زیرا هرگز مرورگر را ترک نمی کند، بنابراین ایمن تر است. به عنوان یک امتیاز اضافی، این نوع تغییر مسیر بسیار سریع هستند، بنابراین هرگونه تأخیر قابل توجه در حین پرش HTTP به HTTPS حذف می شود.
از نظر دستوری مشابه دستور max-age
Cache-Control
، یک هدر HSTS یک دستورالعمل max-age
مشخص می کند. این دستورالعمل مقداری در چند ثانیه می گیرد که مشخص می کند این خط مشی برای چه مدت مؤثر است:
Strict-Transport-Security: max-age=3600
در مثال قبل، این خط مشی باید فقط برای یک ساعت اعمال شود.
استقرار HSTS
اشکال اصلی استقرار HSTS این است که آماده نیستید مبدأ خود را کاملاً ایمن تلقی کنید. فرض کنید تعدادی زیردامنه دارید که از آنها به منابع سرویس می دهید، اما شاید همه آنها ایمن نباشند. در این سناریو، یک هدر HSTS می تواند وب سایت شما را خراب کند.
بی بی سی رویکرد درستی را برای استقرار HSTS اتخاذ کرد. همانطور که نیل کریگ در توییت خود اشاره کرد، مقدار اولیه ای که برای bbc.com تعیین شد max-age=10
بود.
این رویکرد به این معنی است که این سیاست در ابتدا فقط برای ده ثانیه مؤثر بود. این مزیت چندانی ندارد، اما ایده این است که فکر کنید آیا ممکن است اصلاً در استفاده از HSTS مشکلاتی وجود داشته باشد یا خیر. با گذشت زمان، می توانید خط مشی را به صورت تدریجی افزایش دهید و ببینید آیا مشکلاتی پیش می آید یا خیر. در زمان نگارش این مقاله، bbc.com یک خطمشی HSTS max-age=86400
را مشخص میکند، و تقریباً مطمئناً با گذشت زمان افزایش خواهد یافت.
مطمئناً نمی خواهید هنگام استقرار HSTS با max-age
طولانی از دروازه خارج شوید. ممکن است در حالی که کاربران با مشکلاتی مواجه می شوند، ناگهان در حال تقلا برای رفع مشکلات هستید. از کوچک شروع کنید و به مرور زمان افزایش دهید! وقتی مطمئن هستید که همه چیز خوب است، می توانید دستورالعمل max-age
خود را برای مدت زمان بسیار طولانی تری تنظیم کنید. توصیه می شود که max-age
به یک یا دو سال تنظیم کنید که به طور کامل از بین رفت.
با فهرست پیشبارگذاری HSTS، ناوبری اولیه ایمنتر و سریعتر دریافت کنید
یک خطمشی HSTS تنها پس از اولین بازدید از یک وبسایت اعمال میشود، بنابراین مزایایی برای اولین بازدید از سایت وجود ندارد. این همچنان به تغییر مسیر ناامن نیاز دارد. با این حال، میتوانید خطمشی HSTS خود را با ارسال وبسایت خود به فهرست پیشبارگذاری HSTS ، که فهرستی کدگذاریشده از وبسایتهایی است که مرورگر میداند کاملاً HTTPS هستند، بارگیری کنید . هنگامی که سایت شما در لیست پیش بارگذاری قرار دارد، اولین بازدید نیز محافظت می شود و تغییر مسیر HTTP به HTTPS آنی خواهد بود.
خودتان آن را امتحان کنید
اگر بیبیسی با آزمایش HSTS احساس راحتی میکند، احتمال زیادی وجود دارد که بتوانید همین کار را برای وبسایت خود انجام دهید. آن را برای وبسایت خود امتحان کنید و – اگر به دنبال افزایش سرعت کار هستید – آن را به لیست پیشبارگذاری HSTS اضافه کنید، زمانی که مطمئن هستید هیچ اشکالی وجود ندارد تا به کاربران خود تجربه ای امنتر و سریعتر ارائه دهد.