HSTS چیست و چرا باید از آن استفاده کنیم؟

HSTS مخفف HTTP Strict Transport Security است. این روشی است که  به وب سایت ها اعلام می کنند فقط باید از طریق اتصال ایمن (HTTPS) به آنها دسترسی داشته باشید.

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

HTTP Strict Transport Security به عنوان یک استاندارد امنیت وب در سال 2012 در RFC 6797 تعریف شد. هدف اصلی ایجاد این استاندارد کمک به جلوگیری از حملات man-in-the-middle (MITM) بود که از حذف SSL استفاده می کنند.

SSL stripping روشی است که در آن مهاجم مجبور می شود مرورگر را با استفاده از HTTP به یک سایت متصل کند تا بتواند بسته های ارسالی و دریافتی را بررسی کند و اطلاعات حساس را رهگیری یا تغییر دهد. HSTS همچنین روش خوبی برای محافظت از وب سایت خود در برابر ربوده شدن  کوکی  ها است.

HSTS چگونه کار می کند؟

به طور معمول ، وقتی URL را در مرورگروب خود وارد می کنید ، از قسمت پروتکل صرف نظر می کنید. به عنوان مثال ، شما www.pouyasazan.org را تایپ می کنید ، نه http://www.pouyasazan.org. در چنین حالتی ، مرورگر تصور می کند که شما می خواهید از پروتکل HTTP استفاده کنید و نه پروتکل https بنابراین درخواست HTTP را به آدرس www.pouyasazan.org ارائه می دهد.

در این مرحله ، وب سرور با ریدایرکت http به https (ریدایرکت 301) که به سایت HTTPS اشاره می کند ، پاسخ می دهد. مرورگر اتصال HTTPS بهwww. pouyasazan.org ایجاد می کند. درواقع این زمانی است که HSTS با استفاده از http شروع می شود به کد زیر دقت کنید :

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

سرصفحه Strict-Transport-Security دستورالعمل های خاصی را به مرورگر ارائه می دهد. از این به بعد ، هر اتصال به سایت و زیر دامنه های آن تا  سال آینده  (31536000 ثانیه) فقط با HTTPS امکان پذیر می باشد و اتصال HTTP به هیچ وجه مجاز نیست. اگر مرورگر درخواستی برای بارگیری منبعی با استفاده از HTTP دریافت کرد ، باید به جای آن درخواست HTTPS را امتحان کند. اگر HTTPS در دسترس نباشد ، اتصال باید قطع شود.

بعلاوه ، اگر گواهی معتبر نباشد ، از برقراری ارتباط شما با وب سایت جلوگیری خواهید کرد. معمولاً اگر گواهی معتبر نباشد به هر دلیلی  (منقضی شده ، خود امضا شده ، امضا شده توسط CA ناشناخته و غیره) ، مرورگر هشداری  را نشان می دهد که می توانید دور بزنید. با این حال ، اگر سایت دارای HSTS باشد ، مرورگر به شما اجازه نمی دهد هشدار را دور بزنید و   برای دسترسی به سایت ، باید سایت را از لیست HSTS در مرورگر حذف کنید.

فعال کردن Hsts در هاست های لینوکس:

جهت فعال نمودن hsts در هاست لینوکس لطفا مراحل زیر را دنبال کنید.

  • وارد مسیر public_html هاست خود شوید
  • فایل .htaccess را باز کنید و در صورتی که وجود ندارد این فایل را ایجاد کنید.
  • کد زیر را کپی کرده و سپس درابتدای فایل .htaccess قرار دهید

<IfModule mod_headers.c>

Header set Strict-Transport-Security “max-age=31536000; includeSubDomains; preload” env=HTTPS

</IfModule>

تغییرات خود را در فایل .htaccess ذخیره کنید. HSTS اکنون برای سایت شما فعال است.

فعال کردن hsts در هاست ویندوز :

برای فعال کردن HSTS برای سایت خود با استفاده از فایل  web.config ، این مراحل را دنبال کنید:

1 – وارد پوشه روت سایت خود شوید.

2- فایل web.config سایت خود را باز کنید

3- کد زیر را برای اضافه شدن hsts به سایت خود در این فایل کپی کنید و سپس فایل را ذخیر نمایید.

 

<system.webServer>

    <rewrite>

        <rules>

            <rule name=”Redirect HTTP to HTTPS” stopProcessing=”true”>

                <match url=”(.*)” />

                <conditions>

                    <add input=”{HTTPS}” pattern=”off” />

                </conditions>

                <action type=”Redirect” url=”https://{HTTP_HOST}/{R:1}” redirectType=”Permanent” />

            </rule>

        </rules>

        <outboundRules>

            <rule name=”Add the STS header in HTTPS responses”>

                <match serverVariable=”RESPONSE_Strict_Transport_Security” pattern=”.*” />

                <conditions>

                    <add input=”{HTTPS}” pattern=”on” />

                </conditions>

                <action type=”Rewrite” value=”max-age=31536000″ />

            </rule>

            <rule name=”Remove Server header”>

                <match serverVariable=”RESPONSE_Server” pattern=”.+” />

                <action type=”Rewrite” value=”” />

            </rule>

        </outboundRules>

    </rewrite>

</system.webServer>

HSTS اکنون برای سایت ، دامنه اصلی و سابدامنه های خود فعال است. حال باید سایت خود را به لیست Google Chrome HSTS در https://hstspreload.org/ اضافه کنید.

امیداورم این مقاله در راستای امن کردن گواهینامه امنیت سایت به شما کمک کرده باشد.

مطالب مرتبط

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *