درباره HSTS بیشتر بدانید، امروزه فعالسازی SSL روی وبسایتها و مشاهده آن قفل سبز رنگ در مرورگر وب، امری ضروری محسوب میشود. با این وجود موارد دیگری نیز به جز این وجود دارند که باید انجام داد. HSTS که اختصار «عبارت امنیت انتقال صریح برای HTTP» یا (HTTP Strict Transport Security) است یکی از این موارد محسوب میشود.
اگر روی سایت خود از https استفاده میکنید، بهتر است برای افزایش امنیت و افزایش سرعت سایت خود حتما HSTS را فعال کنید. HSTS به معنای HTTP Strict Transport Security هست که به شما اجازه میدهد با حملات man-in-the-middle را مقابله کنید. شاید کمی سخت شد.
HTTPS چیست؟
پروتکل امن انتقال ابرمتن (HTTPS) نسخه امنی از پروتکل HTTP محسوب میشود. در این پروتکل رمزنگاری با استفاده از پروتکل SSL صورت میگیرد و با گواهیهای SSL نیز تأیید میشود. زمانی که به یک وبسایت HTTPS متصل میشوید، اطلاعاتی که بین وبسایت و کاربر مبادله میشوند، رمزنگاری شدهاند.
این رمزنگاری به حفاظت از کاربر در برابر سرقت دادهها از طریق حملههای مرد میانی (MITM) کمک میکند. این لایه اضافی امنیتی همچنین موجب بهبود اندکی در اعتبار وبسایت شما میشود. در واقع اضافه کردن گواهی SSL کار بسیار آسانی است و بسیاری از شرکتهای میزبانی وب به طور پیشفرض این امکان را به طور رایگان به سایتهای خود اضافه کردهاند. با این وجود HTTPS همچنان برخی اشکالاتی دارد که HSTS آنها را رفع میکند.
HSTS چیست؟
HSTS هدر پاسخی است که به یک مرورگر اطلاع میدهد که وبسایتهای فعال شده تنها میتوانند از طریق HTTPS مورد دسترسی قرار گیرند. این مسئله مرورگر را الزام میکند که تنها به نسخه HTTPS وبسایت و همه منابع روی آن دسترسی یابد.
زمانی که HTTPS را روی وبسایت خود نصب و راهاندازی میکنید، ممکن است حتی اطلاع نداشته باشید که نسخه غیر امن HTTP نیز همچنان در دسترس است. این واقعیت حتی در صورتی که با استفاده از کد 301 اقدام به ریدایرکت دائمی بکنید نیز ممکن است وجود داشته باشد.
با این که سیاست HSTS مدتی است که ارائه شده است؛ اما تا سال 2016 از سوی گوگل به طور رسمی اعلام نشده بود. شاید به همین علت است که تاکنون چیزی در مورد آن نشنیدهاید.
فعالسازی HSTS باعث توقف حملههای پروتکل SSL و هایجک کردن کوکیها میشود که دو مورد از آسیبپذیریهای وبسایتهای دارای SSL محسوب میشوند. همچنین HSTS علاوه بر اینکه باعث میشود وبسایت شما امنتر شود؛ موجب میشود که سایت سریعتر بارگذاری شود و یک مرحله در روال بارگذاری وبسایت کاهش یابد.
رفع و احتمالات خطای 500 در وردپرس
SSL Stripping چیست؟
با این که HTTPS بهبود عظیمی در مقایسه با HTTP محسوب میشود؛ اما همچنان در برابر هک شدن آسیبپذیر است. حمله SSL Stripping در هجومهای MITM برای وبسایتهایی که از ریدایرکشن برای ارسال کاربران از نسخه HTTP به HTTPS وبسایت استفاده میکنند کاملاً متداول است.
ریدایرکت کد 301 (دائمی) و 302 (موقت) اساساً به صورت زیر هستند:
- کاربر آدرس google.com را در نوار آدرس مرورگر خود وارد میکند.
- مرورگر در ابتدا سایت http://google.com را به طور پیشفرض بارگذاری میکند.
- وبسایت google.com با ریدایرکت دائمی 301 به https://google.com هدایت میشود.
- مرورگر این ریدایرکت را میبیند و به جای سایت قبلی وبسایت https://google.com را بارگذاری میکند.
در حمله SSL stripping، هکر میتواند از زمان بین مرحله 3 و 4 برای مسدودسازی درخواست ریدایرکت و متوقف کردن بارگذاری نسخه امن وبسایت مرور استفاده کند. سپس شما به یک نسخه ناامن از وبسایت دسترسی مییابید و هر دادهای که ارسال کنید به سرقت خواهد رفت.
هکر همچنین میتواند شما را به نسخهای جعلی از وبسایتی که میخواهید دسترسی بیابید، هدایت کند و همه دادههایی که در آن وبسایت به ظاهر امن وارد میکنید را به سرقت ببرد.
گوگل مراحلی را در مرورگر کروم خود پیادهسازی کرده است که برخی از انواع ریدایرکشن را متوقف میسازد. با این وجود، فعالسازی HSTS چیزی است که پس از این باید به صوت پیشفرض در همه وبسایتها صورت بگیرد.
فعال کردن HSTS در وردپرس
برای فعالسازی HSTS در وردپرس باید یک هدر جدید در درخواستهای سمت سرور برای مرورگر کاربر ارسال شود. برای اینکار کافیست بسته به وب سرور سایت خود از این ۲ روش استفاده کنید.
آموزش بررسی فیلتر بودن دامنه قبل از ثبت
فعالسازی در وب سرور آپاچی و لایت اسپید
برای فعالسازی HSTS در وب سرور آپاچی و لایت اسپید، کافیست وارد فایل منیجر هاست خود شوید. فایل منیجر هاست در سی پنل و دایرکت ادمین با نام FileManager در دسترس است. بعد از ورود به فایل منیجر، وارد پوشه public_html شوید. سپس فایل .htaccess را ویرایش کرده و کد زیر را در این فایل قرار دهید:
<IfModule mod_headers.c> Header set Strict-Transport-Security "max-age=31536000;preload" env=HTTPS </IfModule>
سپس این فایل را ذخیره کنید. حالا مشاهده میکنید که سایت شما بهصورت خودکار از http به https ریدایرکت میشود. حتی قبل از اینکه درخواست به وب سرور ارسال شود. راستی! اگر میخواهید تمام ساب دامینهای شما از https استفاده کنند، حتما این کد را جایگزین کد بالا کنید:
<IfModule mod_headers.c> Header set Strict-Transport-Security "max-age=31536000;includeSubDomains;preload" env=HTTPS </IfModule>
فعال کردن HSTS در وب سرور NGINX
اگر شما از وب سرور انجین ایکس استفاده میکنید، نحوه انجام کار کمی متفاوت هست. تقریبا ۱ درصد سایتهای ایرانی از NGINX استفاده میکنند، پس به احتمال زیاد شما باید از روش قبلی استفاده کنید. اما در هر صورت اگر سرور مجازی یا اختصاصی دارید و وب سرور شما NGINX هست، کافیست فایل nginx.conf را در وب سرور خود پیدا کنید، سپس کد زیر را در Virtual Server مخصوص سایت خود اضافه کنید:
add_header Strict-Transport-Security "max-age=63072000;";
به همین راحتی! حالا وب سرور NGINX خود را ریستارت کرده و از HSTS در سایت خود لذت ببرید.
چطور مطمئن باشیم HSTS فعال است
برای اطمینان از فعال بودن HSTS روی سایت شما، کافیست وارد سایت https://gf.dev/hsts-test شوید.سپس سایت خود را وارد کرده و گزینه تست را کلیک کنید. این سایت وضعیت فعال بودن HSTS روی سایت شما را بررسی خواهد کرد.