آموزش پیاده سازی HTTPS در اپلیکیشن های ASP.NET Core
آموزش پیاده سازی HTTPS در اپلیکیشن های ASP.NET Core یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی پیاده سازی HTTPS در اپلیکیشن های ASP.NET و ASP.NET Core است که با نام اصلی Implementing HTTPS in ASP.NET and ASP.NET Core از شرکت Pluralsight منتشر شده است.
پیکربندی پروتکل HTTPS با ASP.NET Core
پروتکل HTTPS را میتوانستید با ASP.NET Core قبل از نسخه 1.1 از فریم ورک NET Core. پیکربندی کرد، اما پیکربندی آن کمی دشوار بود. گرچه پیکربندی کردن HTTPS بصورت پیش فرض در NET Core 2.0. وجود ندارد اما پیکربندی کردن آن در این نسخه از 1.1 .NET Core ساده تر است.

هنگامی که یک برنامه وب با ویژوال استودیو ایجاد می کنیم، حق انتخاب این را داریم که برنامه خود را برای HTTPS تنظیم کنیم. وقتی برنامه را با استفاده از CLI ایجاد می کنیم، به طور پیش فرض، برنامه وب برای HTTPS پیکربندی می شود. با استفاده از دستور زیر می توانیم HTTPS را غیرفعال کنیم:
dotnet new mvc--no - https
هنگامی که این برنامه را بر روی IIS Express یا Kestrel اجرا می کنیم، روی دو پورت listen می کند، که یکی از آن ها برای HTTP و دیگری برای HTTPS استفاده می شود.
پروتکل HTTP Strict Transport Security و یاHSTS
وقتی به متد Configure از کلاس Startup نگاه می کنیم، خواهیم دید که چندیدن middleware جدید مورد استفاده قرار گرفته اند تا بتوانید HTTPS را پیکربندی کنید که یکی از این middleware ها HSTS است. به عبارت دیگر پروتکل HTTP Strict Transport Security یا HSTS یک policy مربوط به امنیت وب است که امکان این را می دهد که از وب اپلیکیشن ها در برابر حملاتی از قبیل cookie hijacking و downgrade protocol محافظت کند. پروتکل HSTS به وب سرور اجازه می دهد تا از طریق connection های HTTPS ایمن با مشتری ارتباط برقرار کند، نه پروتکل HTTP ناامن، به عبارتی در وهله اول به رد connection های ناامن کمک می کند.
public void Configure(IApplicationBuilder app, , IHostingEnvironment env) {
......
if (!env.IsDevelopment()) {
...app.UseHsts();....
}......app.UseMvc();
}
استفاده از UseHsts در development environment توصیه نمی شود زیرا هدر HSTS توسط مرورگرها قابل کش کردن است. بر اساس نیاز، ما می توانیم با گزینه های زیر HSTS را پیکربندی کنیم:
- MaxAge: هدر مربوط به MaxAge از Strict-Transport-Security را تنظیم کنید. مقدار پیش فرض آن 30 روز است. این پارامتر از نوع TimeSpan است.
- includeSubDomain: این یک نوع boolean از property است که پارامتر includeSubDomain از هدر Strict-Transport-Security را فعال می کند.
- Preload: برای دریافت یا تنظیم پارامتر Preload از هدر Strict-Transport-Security استفاده می شود. Preload بخشی از property مربوط به RFC HSTS نیست، اما توسط مرورگرها از Preload سایت های HSTS در یک نصب جدید (installation) پشتیبانی می شود.
چه زمانی باید استفاده از HTTPS را در ASP.NET اجباری کنیم؟
فعال کردن HTTPS تنها به معنای فراهم کردن یک مسیر امن برای دسترسی به وبسایت نیست؛ برنامه باید طوری پیکربندی شود که درخواستها از مسیر مورد انتظار عبور کنند. این آموزش تفاوتهای پیادهسازی HTTPS در ASP.NET و ASP.NET Core را بررسی میکند و به پیشنیازهای لازم برای الزام استفاده از این پروتکل میپردازد. در بخشهای عملی، نحوه اعمال تنظیمات در هر دو چارچوب دنبال میشود تا بتوانید ارتباط میان پیکربندی برنامه و رفتار درخواستهای ورودی را بهتر بشناسید. این موضوع بهویژه هنگام انتقال برنامههای قدیمی به نسخههای جدیدتر .NET اهمیت دارد.
الزام HTTPS باید با توجه به معماری میزبانی و نحوه دریافت درخواستها تنظیم شود؛ زیرا رفتار برنامه ممکن است به پیکربندی سرور و زیرساخت نیز وابسته باشد. در این آموزش، الزامات مرتبط با HTTPS در ASP.NET Core و ASP.NET جداگانه بررسی میشوند تا تفاوت رویکردها روشنتر شود. آشنایی با این تنظیمات به شما کمک میکند هنگام توسعه یا نگهداری وباپلیکیشن، فقط به وجود گواهی امنیتی اکتفا نکنید و بررسی کنید که برنامه چگونه به درخواستهای HTTP پاسخ میدهد. در نتیجه، تصمیمگیری درباره تنظیمات امنیتی در محیطهای مختلف با درک فنی دقیقتری انجام میشود.
پیادهسازی HSTS Preloading و تنظیمات امنیتی وبسایت
`HSTS` یا `HTTP Strict Transport Security` سازوکاری است که به مرورگر اعلام میکند برای دسترسی به یک وبسایت، از HTTPS استفاده کند. در این آموزش، علاوه بر آشنایی با مفهوم HSTS، نحوه پیادهسازی آن در ASP.NET Core و ASP.NET بررسی میشود. این موضوع با الزام HTTPS تفاوت دارد؛ زیرا HSTS به سیاستی مربوط است که مرورگر پس از دریافت و پذیرفتن آن برای ارتباطهای بعدی اعمال میکند. شناخت این تفاوت برای توسعهدهندگانی اهمیت دارد که میخواهند رفتار امنیتی وبسایت را از سمت برنامه و مرورگر بهدرستی تنظیم کنند.
بخش دیگری از آموزش به `HSTS Preloading` اختصاص دارد؛ روشی که در آن دامنه میتواند برای گنجاندهشدن در فهرست ازپیشتعریفشده مرورگرها درخواست بدهد. این قابلیت با فعالکردن یک گزینه ساده در برنامه یکسان نیست و پیشنیازها و ملاحظات خاص خود را دارد. آشنایی با پیادهسازی HSTS و مفهوم Preloading کمک میکند هنگام تنظیم سیاستهای امنیتی، اثر انتخابها را بهتر ارزیابی کنید. این مباحث برای افرادی کاربرد دارند که مسئول پیکربندی وبسایتهای ASP.NET هستند و میخواهند نحوه اعمال سیاست HTTPS را در سطح مرورگر نیز در نظر بگیرند.
سرفصل مطالب آموزش ویدیویی پیاده سازی HTTPS در اپلیکیشن های ASP.NET Core
فصل اول: مقدمه این دوره آموزشی
- مقدمه
فصل دوم: آشنایی با HTTPS در ASP.NET
- بررسی HTTPS آموزش عملی: HTTPS در ASP.NET جمع بندی
فصل سوم: استفاده کردن از HTTPS و الزام کردن HTTPS در ASP.NET Core و ASP.NET
- نیاز به HTTPS
- موارد مورد نیاز برای الزام به HTTPS
- آموزش عملی: نیاز به HTTPS در NET
- آموزش عملی: نیاز به HTTPS در NET Core
- جمع بندی
فصل چهارم: پیکربندی HSTS برای وب سایت های ASP.NET Core و ASP.NET
- آشنایی با HSTS
- آموزش عملی: پیاده سازی HSTS در ASP.NET Core
- آموزش عملی: پیاده سازی HSTS در ASP.NET
- انجام عملیات Preloading در HSTS
