HSTS چیست؟
HSTS یک هدر واکنشی است که به یک مرورگر اطلاع می دهد که وب سایت های فعال شده فقط از طریق HTTPS قابل دسترسی هستند. این امر مرورگر شما را مجبور می کند تا فقط به نسخه HTTPS وب سایت و منابع موجود در آن دسترسی داشته باشد. توجه داشته باشید که ممکن است با اینکه شما ssl را برای سایت فعال نموده باشید و ریدایرکت ۳۰۱ به https را نیز تنظیم نموده باشید باز هم سایت همچنان با نسخه http دردسترس باشد.
با فعال کردن HSTS ، حملات پروتکل SSL و ربودن کوکی ، دو آسیب پذیری که در وب سایت های دارای SSL ممکن است رخ دهد، متوقف می شود. علاوه بر ایمن تر کردن وب سایت ، HSTS باعث بارگذاری سریعتر سایت نیز می شود.
آیا HSTS کاملاً ایمن است؟
متأسفانه ، اولین باری که به وب سایت دسترسی پیدا می کنید ، با HSTS محافظت نمی شوید. اگر وب سایت یک هدر HSTS به اتصال HTTP اضافه کند ، آن هدر نادیده گرفته می شود. این امر به این دلیل است که یک مهاجم می تواند در حین حمله man-in-the-middle ، می تواند هدرها را حذف یا اضافه کند. به هدر HSTS قابل اعتماد نیست مگر اینکه از طریق HTTPS تحویل داده شود.
همچنین باید بدانید که هر بار مرورگر شما سرصفحه را بازخوانی می کند حداکثر سن HSTS ریست می شود و همچنین حداکثر مقدار آن دو سال است. این بدان معنی است که تا زمانی که بیش از دو سال از بازدیدهای شما نگذرد ، محافظت از آن دائمی است. اگر به مدت دو سال به وب سایت مراجعه نکنید ، با آن به عنوان یک سایت جدید برخورد می شود. در عین حال ، اگر شما از هدر HSTS با max-age برابر با ۰ استفاده کنید ، مرورگر در کانکشن بعدی سایت شما را به عنوان مورد جدید در نظر خواهد گرفت (که این کار می تواند برای آزمایش مفید باشد)
می توانید از یک روش محافظت اضافی به نام لیست پیش بارگذاری HSTS استفاده کنید. پروژه Chromium لیستی از وب سایت هایی که از HSTS استفاده می کنند را نگه می دارد و این لیست با مرورگرهای دیگر به اشتراک گذاشته می شود. اگر شما وب سایت خود را به لیست preload اضافه کنید ، ابتدا مرورگر لیست داخلی را بررسی می کند و بنابراین وب سایت شما هرگز توسط HTTP در دسترس نخواهد بود ( حتی در اولین تلاش برای اتصال به HTTP ) این روش جزئی از استاندارد HSTS نیست ، اما توسط همه مرورگرهای اصلی (Chrome ، Firefox ، Safari ، Opera، IE11 و Edge) استفاده می شود.
تنها روشی که در حال حاضر شناخته شده است که می تواند برای دور زدن HSTS مورد استفاده قرار گیرد ، حمله NTP-based attack است که تحت شرایطی، فقط یک بار می توان سایت را با http بارگذاری نمود.
فعال سازی HSTS چگونه از حمله SSL Stripping جلوگیری می کند؟
فعال سازی SSL Stripping مرورگر را الزام می کند که نسخه ای امن از یک وب سایت را بارگذاری کند و هر گونه ریدایرکت و دیگر فراخوانی ها برای باز کردن یک اتصال HTTP را نادیده می گیرد. بدین ترتیب آسیب پذیری ریدایرکشن که با کدهای 301 و 302 پدید می آمد، بسته می شود.
با این حال HSTS نیز نکات منفی دارد و آن این است که مرورگر کاربر باید هدر HSTS را دست کم یک بار پیش از آن که بتواند در بازدیدهای بعدی از آن استفاده کند دیده باشد. این بدان معنی است که دست کم یک بار باید فرایند گذار از HTTP > HTTPS را طی کرده باشید و بدین ترتیب نخستین باری که از یک وب سایت با HTTPS بازدید می کنید، همچنان در معرض آسیب پذیری هستید.
برای رفع این اشکال کروم فهرستی از وب سایت هایی که HSTS را فعال سازی کرده اند از پیش بارگذاری می کند. کاربران می توانند در صورتی که برخی معیارها را داشته باشند، خودشان وب سایت هایی که HSTS روی آن ها فعال شده است را در این فهرست از پیش بارگذاری شده وارد کنند:

فایرفاکس، اپرا، سافاری و اینترنت اکسپلورر نیز فهرست HSTS از پیش بارگذاری شده خاص خود را دارند؛ اما فهرست آن ها بر مبنای فهرست کروم در وب سایت hstspreload.org است.
چگونه HSTS را روی وب سایت خود فعال کنیم؟
برای فعال سازی HSTS روی وب سایت، ابتدا باید یک گواهی SSL معتبر داشته باشید. اگر HSTS را بدون داشتن یک چنین گواهی فعال کنید، سایت شما از معرض بازدید کاربران خارج می شود، بنابراین باید پیش از ادامه مراحل، اطمینان حاصل کنید که وب سایت شما و همه زیردامنه های آن روی HTTPS کار می کنند.
فعال سازی HSTS کار کاملاً ساده ای است. کافی است یک هدر به فایل htaccess. وب سایت خود اضافه کنید. هدری که باید اضافه شود چنین است:
|
1 |
Strict-Transport-Security: max-age=31536000; includeSubDomains |
بدین ترتیب یک کوکی دسترسی max-age اضافه می شود که شامل وب سایت شما و همه زیردامنه های آن است. زمانی که مرورگر به وب سایت شما دسترسی می یابد، تا یک سال قادر نخواهد بود که به نسخه HTTP وب سایت شما دسترسی داشته باشد. باید اطمینان حاصل کنید که همه زیردامنه های روی این دامنه در گواهی SSL ذکر شده اند و دارای HTTPS فعال هستند. اگر این نکته را فراموش کنید، زیردامنه های آن پس از ذخیره کردن فایل htaccess. از دسترسی خارج می شوند.
وب سایت هایی که گزینه includeSubDomains را از هدر فوق حذف می کنند، بازدیدکنندگان را در معرض افشای حریم خصوصی کاربرانشان قرار می دهند، چون زیردامنه ها در معرض دستکاری کوکی ها خواهند بود. با فعال سازی includeSubDomains، این حمله های مرتبط با کوکی دیگر ممکن نخواهند بود.
نکته: پیش از اضافه کردن مقدار یک سال برای max-age، کل وب سایت خود را ابتدا با استفاده از یک مقدار پنج دقیقه ای به صورت max-age=300 تست کنید.
گوگل حتی پیشنهاد می کند که وب سایت و عملکرد (ترافیک) آن را پیش از پیاده سازی max-age دو ساله، با مقدارهای یک هفته ای و یک ماهه تست کنید.
|
1 2 3 4 5 |
Five minutes: Strict-Transport-Security: max-age=300; includeSubDomains
One week: Strict-Transport-Security: max-age=604800; includeSubDomains
One month: Strict-Transport-Security: max-age=2592000; includeSubDomains |
ایجاد فهرست پیش بارگذاری شده HSTS
اکنون شما با HSTS و دلیل اهمیت آن برای وب سایتتان آشنا شده اید. برای این که بازدیدکنندگان شما از نظر محیط آنلاین در امنیت بمانند، HSTS یک گزینه مهم محسوب می شود.
برای این که صلاحیت ورود به فهرست سایت های پیش بارگذاری شده HSTS که مرورگر کروم و دیگر مرورگرها مورد استفاده قرار می دهند را کسب کنید، باید وب سایت شما الزامات زیر را داشته باشد:
- یک گواهی SSL معتبر را عرضه کند.
- اگر روی پورت 80 ترافیک دریافت می کنید، HTTP را روی همان هاست به HTTPS ریدایرکت کند.
- همه زیردامنه ها روی HTTPS عرضه شوند. به خصوص در صورتی که یک رکورد DNS برای زیردامنه ای مانند www.subdomain داشته باشید، باید از HTTPS برای آن زیردامنه استفاده کرده باشید.
- یک هدر HSTS را روی دامنه اصلی برای درخواست HTTPS زیر عرضه کنید:
- max-age باید دست کم 31536000 ثانیه (1 سال) باشد.
- شامل دایرکتیو includeSubDomains باشد.
- دایرکتیو از پیش بارگذاری شده باید تعیین شده باشد.
- اگر یک ریدایرکت اضافی از سایت HTTPS عرضه می کنید، این ریدایرکت باید همچنان هدر HSTS را داشته باشد (علاوه بر صفحه ای که به آن ریدایرکت می شود).
اگر می خواهید وب سایت خود را به فهرست از پیش بارگذاری شده HSTS اضافه کنید، باید اطمینان حاصل کنید که تگ preload لازم را اضافه کرده اید. گزینه preload اعلام می کند که شما می خواهید وب سایتتان به فهرست پیش بارگذاری شده HSTS کروم اضافه شود. هدر پاسخ در فایل htaccess. باید مانند زیر باشد:
|
1 |
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload |
ما توصیه می کنیم که وب سایت خود را به hstspreload.org اضافه کنید. الزامات مورد اشاره فوق کاملاً ساده هستند و به حفاظت از بازدیدکنندگان وب سایت کمک می کنند و به طور بالقوه موجب بهبود رتبه وب سایت شما در موتورهای جستجو می شوند.
مایکروسافت اج Microsoft Edge چیست و چه کاربردی دارد؟










































