اطمینان از اینکه سایت شما از لحاظ امنیتی دارای تنظیمات درستی هست یا نه، امری بسیار مهم است. به خصوص زمانی که قصد محافظت از یک کسب و کار آنلاین پر بازده در مقابل حملات هکرها را در سر داشته باشید.
روش ها و تکنیک های بسیاری برای ارتقای امنیت یک سایت وجود دارند که می توانید با بکارگیری آنها در کنار هم امنیت سایت خود را تضمین کنید. اگر سایتتان از HTTPS استفاده می کند، پیشنهاد ما به شما پیاده سازی هدر امنیتی HSTS است. در این مطلب به طور مفصل به چیستی، نحوه عملکرد و روش های پیکربندی این تکنولوژی اشاره خواهیم کرد.
HSTS چیست ؟
HSTS مخفف عبارت Http Strict Transport Security یا امنیت سخت گیرانه انتقال HTTP بوده و توسط IETF در سال 2012 معرفی شد. HSTS برای این طراحی شد تا مرورگرها را به برقراری اتصالات ایمن وادار کند (زمانی که سایتی از HTTPS استفاده می کند).
HSTS یک هدر امنیتی است که در آن می توانید اطلاعات وب سرور خود را اضافه کرده و در هدر پاسخ آن را به عنوان Strict transport security منعکس کنید.
HSTS به این دلایل مهم است:
- هر تلاشی از سمت کاربران برای دسترسی به نسخه نا امن یک صفحه (HTTP) به طور خودکار به سمت نسخه امن یعنی HTTPS هدایت خواهد شد.
- بوکمارک های HTTP قبلی، و افرادی که نسخه HTTP صفحات سایت شما را تایپ می کنند، درهای سایت شما را به روی حملات man-in-the-middle باز می کنند؛ اینها حملاتی هستند که مهاجم ارتباطات بین دو طرف را دستکاری کرده و به هدایت کاربران به صفحه دلخواه خود، وانمود می کنند که همان صفحه ای هستند که کاربر به دنبالش بوده است. HSTS از این حملات جلوگیری می کند.
- جلوی برجسته کردن پیام های گواهینامه های نامعتبر را گرفته و از کاربران محافظت می کند.
- از cookie hijacking جلوگیری می کند: این حمله زمانی اتفاق می افتد که شخصی از طریق یک اتصال نا امن یک کوکی سشن را سرقت می کند. کوکی ها می تواند حاوی اطلاعات ارزشمندی مثل اطلاعات کارت های اعتباری، نام و نشان و امثالهم باشند.
پیاده سازی HSTS
برای اعمال HSTS باید آن را روی وب سرور خود فعال کنید، که در پی آن بر روی درخواست های HTTP سایت شما پیاده می شود. عملاً زمانی که یک ریدایرکت از HTTP به HTTPS رخ می دهد، یک ریدایرکت 301 نیز اضافه می شود. گوگل نیز اعلام کرده می توانید از هدرهای HSTS و ریدایرکت 301 در کنار هم استفاده کنید.
سطوح امنیتی و رهنمودهای متعددی وجود دارند که می توانید آنها را در هدر HSTS خود پیاده کنید. در ادامه یکی از پایه ترین قوانینی که از Max-age-directive استفاده می کند، برای شما قرار داده شده است.
این بیانگر مدت زمانی است که وب سرور می بایست تنها از طریق https پاسخ دهد:
-
پیاده سازی HSTS در آپاچی
این کد را به فایل هاست مجازی خود اضافه کنید:
-
پیاده سازی HSTS در NGINX
این کد را به کانفیگ NGINX خود اضافه کنید:
اگر از CDN میزبان کلود استفاده کنید، به راحتی و تنها با یک کلیک می توانید HSTS را برای سایت خود فعال کنید. برای اینکار کافیست وارد ناحیه کاربری خود در میزبان کلود شده و در بخش تنظیمات HTTPS، گزینه HSTS را فعال کنید.
به کمک این قابلیت، مزایای عملکردی بسیازی نصیب سایت شما خواهد شد؛ برای مثال اگر کاربری سایت شما را با HTTP مشاهده کند، به طور خودکار به نسخه HTTPS ریدایرکت خواهد شد.
Preload HSTS
یک اصطلاح دیگر نیز وجود دارد به نام Preload HSTS که از طریق آن سایت یا دامنه شما در یک لیست HSTS های تایید شده قرار گرفته که در اصل در مرورگرها ایجاد می شود. گوگل نیز این لیست را معتبر شناخته و علاوه بر این مرورگرهای کروم، فایرفاکس، Opera، Safary، IE11 و Edge نیز از آن استفاده می کنند. پس هر چه سریعتر سایت خود را به این لیست اضافه کنید.
البته باید این مقدمات را قبل از تاییده نهایی و ثبت در اختیار داشته باشید:
- سرور باید یک گواهینامه SSL/TLS معتبر داشته باشد.
- تمام ترافیک باید به HTTPS ریدایرکت شود.
- HSTS باید در دامنه اصلی اعمال شده باشد.
- تمام ساب دامنه ها باید بر روی HTTPS کار کنند، مخصوصا اگر از www استفاده می شود.
- تاریخ انقضا باید حداقل یک ساله باشد.
- توکن includeSubdomains باید مشخص شده باشد.
- توکن preload نیز باید مشخص شده باشد.
برای اعمال پیش نیازها باید رهنمودهای ساب دامنه ها و preload را به هدر HSTS خود مشابه مثال زیر اضافه کنید:
بازبینی هدر HSTS
سایت هایی وجود دارند که می توانید به کمک آنها از وجود HSTS در سایت خود مطمئن شوید؛ برای مثال می توانید آدرس سایت خود را در ابزار رایگان securityheaders.io وارد کرده و مشاهده کنید که آیا هدر strict-transport-security اعمال شده است یا نه.
پشتیبانی از HSTS در مرورگرها
طبق گزارش Caniuse، پشتیبانی مرورگرها از HSTS در مقیاس جهانی بیش از 80% و در آمریکا بیش از 95% است. پشتیبانی از HSTS در مرورگر IE11 از سال 2015 اضافه شد و امروز تنها مرورگر مدرنی که از آن پشتیبانی نمی کند، Opera Mini است.
تاثیر HSTS بر سئو
پس از اینکه سایت شما تایید شده و در لیست HSTS preload قرار بگیرد، ممکن است از سرچ کنسول یا سایر ابزارهای سئو محور، پیغام های خطا یا هشداری در رابطه با ریدایرکت 307 دریافت کنید؛ این هشدار به این دلیل نمایش داده می شود که هر بار که کاربری قصد ورود به سایت شما از طریق HTTP را داشته باشد، بجای ریدایرکت 301، در مرورگر با ریدایرکت 307 مواجه می شود.
از لحاظ فنی، ریدایرکت 307 فقط برای ریدایرکت های موقت استفاده می شود. اما ریدایرکت 301 برای آدرس هایی استفاده می شود که برای همیشه به آدرس دیگری تبدیل شده اند. پس نباید از ریدایرکت 301 استفاده می شد؟
آیا از لحاظ سئو این موضوع مشکلی ایجاد نمی کند؟
خب در واقع، ریدایرکت 301 در پشت پرده اتفاق می افتد، اما ریدایرکت 307 در سطح مرورگر رخ می دهد نه سطح سرور می توانید برای تست این موضوع از ابزارهایی مثل HTTPSTATUS استفاده کنید که ریدایرکت در سطح سرور را چک می کند؛ سپس می توانید ملاحظه کنید که همچنان ریدایرکت 301 در حال اجراست.
پس جای نگرانی نیست، و هدر HSTS بر سئوی سایت شما لطمه ای وارد نخواهد کرد.
چرا سایت ها باید از HSTS استفاده کنند؟
همانطور که می دانید از لحاظ سئو و از منظر رضایت و اعتماد کاربران سایت، وجود HTTPS برای هر سایتی یک پروتکل ضروری است. اما اجبار استفاده از HTTPS بجای HTTP به هدر امنیتی HSTS احتیاج دارد.
به کمک این هدر HSTS، سرور به مرورگر در حال بازدید اطلاع می دهد که فقط نسخه HTTPS سایت درخواستی قابل ارائه است، و HTTP دیگر در دسترس نیست.
برای جلوگیری از ریدایرکت ها در ابتدای هر بازدید از سایت، مرورگر این اطلاعات را به خاطر سپرده و تا مدت زمان مشخص شده در هدر Response، آن اطلاعات را در خود نگه می دارد.
به عبارت دیگر، جهت ایمن سازی ارتباطات، تنها داشتن https برای سایت کافی نیست؛ برای اطمینان از امنیت همه جانبه، تمام ارتباطات بین کلاینت و سرور می بایست رمزنگاری شوند؛ اما تا قبل از ظهور HSTS، هیچ راهی برای وب سایت ها وجود نداشت تا بتوانند ارتباطات را به رمزنگاری وادار کرده و اعلام کنند که فقط نسخه HTTPS قابل ارائه است.
نحوه عملکرد HSTS
اکثر کاربران متوجه پروتکل URL هایی که در آدرس بار تایپ می کنند نمی شوند؛ پس اگر درخواست مشاهده سایتی مثل www.netsparker.com را داشته باشید، مرورگر به صورت پیش فرض، فرضش را بر پروتکل HTTP گذاشته و یک درخواست به شکل http://www.netsparker.comارسال می کند.
از آنجایی که سایت Netsparker از HSTS استفاده می کند، تمام ارتباطات را به HTTPS وادار می کند؛ پس با یک ریدایرکت 301 به HTTPS هدایت کرده و یک هدر Response حاوی Strict-Transport-Security اضافه می کند تا نشان دهد که این سایت فقط با نسخه https در دسترس است.
این هدر Strict-Transport-Security می تواند مشخص کننده سه دستورالعمل باشد:
- Max-age: این تنها دستور العمل اجباری است که به مرورگر اطلاع می دهد که تا چه مدت باید این اطلاعات را به خاطر بسپارد. این مقدار اغلب در قالب ثانیه ارائه می شود و برای مثال اگر منظور 2 سال یا 1 سال باشد چیزی شبیه به این خواهد بود: 31536000 یا 63072000. اگر max-age مساوی با صفر باشد، مرورگر اطلاعات را پاک کرده و با سایت مثل یک سایت جدید برخورد می کند.
- includesubdomains: این دستور العمل اختیاری بوده و بیانگر این است که https برای تمام ساب دامنه ها نیز لازم است. برای استفاده از بالاترین سطح امنیتی یک ریدایرکت https باید در هدر Strict-Transport-Security خود عبارت includesubdomains را نیز شامل شده و به دامنه اصلی ارجاع دهد. در نتیجه تمام زیر دامنه ها نیز از HSTS بهره می برند.
- Preload: این دستور العمل نیز اختیاری بوده و بیانگر این است که این سایت ملزومات HSTS preloading را رعایت کرده و در لیست preload قرار دارد.
بلافاصله پس از اینکه مرورگر یک پاسخ با هدر Strict-Transport-Security دریافت کند، متوجه می شود که تا زمان اعلام شده باید این سایت را با https به کاربران نشان دهد. اگر ارتباط https ممکن نباشد، برای مثال https به درستی تنظیم نشده باشد یا گواهینامه منقضی شده باشد، مرورگر باید اتصال را خاتمه دهد.
از این به بعد هر زمان که کاربری قصد مشاهده سایت مذکور را داشته باشد، به طور خودکار و بدون توجه به ادرس تایپ شده در ابتدای دامنه، مرورگر درخواست را با https ارسال می کند.
در کنار مسائل امنیتی، این روش زمان بارگذاری را نیز ارتقا می دهد، چراکه دیگر لازم نیست تا هر بار برای پاسخ ریدایرکت سرور صبر کنید.
راهکار میزبان کلود
به کمک سرویس CDN میزبان کلود می توانید به سادگی و تنها با یک کلیک، قابلیت HSTS را برای دامنه خود فعال کنید؛ برای اینکار کافیست پس از اتصال دامنه به CDN میزبان کلود، وارد بخش تنظیمات HTTPS شده و علاوه بر استفاده از ویژگی های امنیتی HTTPS و SSL/TLS ، با فعالسازی یک دکمه، از تمام مزایای HSTS نیز بهره مند شوید.
جمع بندی
با فعال سازی HSTS به سایت خود این قابلیت را اضافه خواهید کرد تا تمام مرورگرها و کاربران را به استفاده از نسخه HTTPS سایت تان وادار کرده و ارتباطات ایمن را رقم زنید. فعال سازی این ویژگی به دامنه، می تواند مزایای بسیاری را برای شما بهمراه داشته باشد، بخصوص از لحاظ عملکردی و البته سئو. در این پست به چیستی، نحوه اجرا و راه های پیاده سازی HSTS برای سایت اشاره شد. امیدواریم این مطلب برای شما مفید واقع شده باشد.
ارائه دهنده خدمات زیرساخت یکپارچه ابری