نحوه استفاده از هدرهای امنیتی در ASP.NET Core MVC 5

[ad_1]

ASP.NET Core MVC 5 یک چارچوب سبک سبک ، منبع باز و کاملاً تست شده است که بر روی محیط زمان اجرا ASP.NET Core 5 ساخته شده و براساس معماری مدل کنترل کننده نمایش (MVC) ساخته شده است. چارچوب ASP.NET Core MVC 5 بخشی از جدید .NET 5 ، ترکیبی از قابلیت های .NET Core ، MVC و Web API ها است.

عناوین امنیتی تکنیکی است که می تواند برای بهبود امنیت یک برنامه وب استفاده شود. روش های مختلفی وجود دارد که می توانید هدرهای امنیتی را در برنامه ASP.NET Core MVC خود تنظیم کنید. در این مقاله ، در صورت لزوم ، این روشها با مثالهای کد مورد بحث قرار می گیرد.

برای کار با مثالهای کد ارائه شده در این مقاله ، باید Visual Studio 2019 را روی سیستم خود نصب کنید. اگر هنوز کپی ندارید ، می توانید Visual Studio 2019 را از اینجا بارگیری کنید.

یک پروژه ASP.NET Core MVC 5 در Visual Studio 2019 ایجاد کنید

ابتدا ، بیایید یک پروژه ASP.NET Core در Visual Studio 2019 ایجاد کنیم. پس از این مراحل ، باید یک پروژه جدید ASP.NET Core 5 در Visual Studio 2019 ایجاد کنید.

  1. Visual Studio IDE را شروع کنید.
  2. روی “ایجاد یک پروژه جدید” کلیک کنید.
  3. در پنجره “ایجاد پروژه جدید” ، “ASP.NET Core Web App (Model-View-Controller)” را از لیست الگوهای نمایش داده شده انتخاب کنید.
  4. روی Next کلیک کنید.
  5. در پنجره “پیکربندی پروژه جدید خود” ، نام و موقعیت پروژه جدید را مشخص کنید.
  6. به صورت اختیاری ، بسته به تنظیمات برگزیده ، کادر تأیید “محل قرار دادن راه حل و پروژه در همان فهرست”
  7. روی Next کلیک کنید.
  8. در پنجره “اطلاعات بیشتر” که در زیر نشان داده شده است .NET 5.0 را به عنوان قاب هدف از لیست کشویی در بالا انتخاب کنید. “نوع تأیید اعتبار” را به صورت None (پیش فرض) بگذارید.
  9. اطمینان حاصل کنید که کادرهای تأیید “Enable Docker” ، “Configure for HTTPS” و “Enable Razor runtime compilation” علامت گذاری شده اند ، زیرا در اینجا از هیچ یک از این ویژگی ها استفاده نخواهیم کرد.
  10. روی ایجاد کلیک کنید.

یک پروژه جدید ASP.NET Core MVC 5 ایجاد می شود. ما در بخشهای بعدی این مقاله از این پروژه استفاده خواهیم کرد.

سرصفحه ها را در میان افزار ASP.NET Core 5 مشخص کنید

از مwareلفه های Middleware برای بررسی ، مسیریابی یا اصلاح پیام های درخواست و پاسخ که از طریق خط لوله عبور می کنند استفاده می شود. برای تعیین سرصفحه ها در میان افزار ، می توانید یک کلاس میان افزار جدید ایجاد کنید یا از روش پیکربندی مربوط به کلاس Startup استفاده کنید ، همانطور که در قطعه کد زیر نشان داده شده است.

app.Use(async (context, next) =>
{
    context.Response.Headers.Add("Header-Key", "Header-Value");
    await next();
});

وقتی برنامه را شروع می کنید ، عنوان جدیدی با نام مشخص شده به همه پاسخ ها اضافه می شود.

سرصفحه ها را در web.config در ASP.NET Core 5 مشخص کنید

هنگام کار با ASP.NET Core یا ASP.NET Core MVC 5 ، دیگر نیازی به پرونده web.config ندارید. با این حال ، اگر میزبان برنامه خود در IIS هستید ، استفاده از فایل web.config کاملاً معتبر است. قطعه کد زیر نشان می دهد که چگونه می توانید هدرهای سفارشی را به پرونده web.config اضافه کنید.



 
   
     
       
     

   

 

وقتی برنامه فوق را شروع کردید و نقطه انتهایی GET را با استفاده از پستچی مشاهده کردید ، باید عنوان جدیدی را که در تصویر نمایش داده شده است مشاهده کنید (شکل 1) در زیر.

هدرهای هسته aspnet IDG

شکل 1.

سربرگ های امنیتی در ASP.NET Core MVC 5

می توانید مقادیر خاص هدر HTTP را تنظیم کنید تا امنیت برنامه های وب توسعه یافته در ASP.NET Core MVC 5 بهبود یابد. این هدرهای امنیتی ، اگر به درستی استفاده شوند ، می توانند به محافظت از یک برنامه کمک کنند.

در زیر لیستی از برخی از عناوین متداول استفاده می شود.

امنیت حمل و نقل دقیق HTTP (HSTS)

برای جلوگیری از سرویس دهی صفحات وب از طریق HTTP ساده – باید از سرآیند HTTP Strict-Transport-Security استفاده کنید. مطمئن باشید که صفحات وب فقط از طریق HTTPS منتقل می شوند. لازم به ذکر است که چارچوب ASP.NET Core MVC 5 شامل میان افزار تعبیه شده به نام HSTS است. قطعه کد زیر نشان می دهد که چگونه می توانیم از این میان افزار برای اعمال این محدودیت امنیتی استفاده کنیم.

services.AddHsts(options =>
    {
        options.IncludeSubDomains = true;
        options.MaxAge = TimeSpan.FromDays(365);
    });

گزینه های X-Frame

هدر X-Frame-Options از کادربندی جلوگیری می کند – یعنی. از نمایش صفحه وب شما در صفحه وب دیگری جلوگیری می کند و بنابراین از استفاده وب سایت های دیگر از محتوای شما جلوگیری می کند. گزینه های X-Frame را می توان با استفاده از قسمت زیر کد اضافه کرد.

context.Response.Headers.Add("X-Frame-Options", "DENY");

X-Xss-Protection

هدر X-Xss-Protection باعث می شود مرورگرهای مدرن وقتی حمله اسکریپت را بین سایت ها تشخیص می دهند ، بارگیری صفحه وب را متوقف کنند. قطعه کد زیر نحوه افزودن این سرصفحه را نشان می دهد.

context.Response.Headers.Add("X-Xss-Protection", "1; mode=block");

در قطعه کد قبلی ، مقدار “1” به معنی فعال شده است و حالت “مسدود کردن” مرورگر وب را فرض می کند.

گزینه های X-Content-Type

از سرآیند X-Content-Type-Options استفاده می شود تا نشان دهد که انواع MIME مشخص شده در سرصفحه های نوع محتوا به طور عمدی پیکربندی شده اند و نیازی به تغییر توسط مرورگر ندارند. این سربرگ از بو دادن MIME جلوگیری می کند ، که توسط مهاجمین می تواند انواع غیراجرایی MIME را به موارد اجرایی تبدیل کند.

app.UseXContentTypeOptions();

خط مشی مراجعه

وقتی روی پیوندی که روی وب سایتی مشاهده می کنید کلیک می کنید ، کنترل به سایت پیوند داده شده منتقل می شود. علاوه بر این ، داده های مرجع مانند URL می توانند منتقل شوند. اگر این URL شامل مسیر و رشته درخواست باشد ، ممکن است حریم خصوصی یا امنیت کاربر به خطر بیفتد. همانطور که در قطعه کد زیر نشان داده شده است ، می توانید این رفتار را با استفاده از سرصفحه Referrer-Policy غیرفعال کنید.

context.Response.Headers.Add("Referrer-Policy", "no-referrer");

خط مشی های مجاز دامنه X

این عنوان می تواند برای نشان دادن اینکه آیا محصولات Adobe مجاز به نمایش صفحه وب از دامنه متفاوت از دامنه شما هستند استفاده شود. به عبارت دیگر ، مانند X-Frame-Options بالا ، این هدر از دستکاری در وب سایت ها یا استفاده غیرمجاز از محتوای شما جلوگیری می کند. به عنوان مثال ، اگر از Flash در برنامه خود استفاده می کنید ، می توانید با استفاده از عنوان X-Perm مجاز-Cross-Domain-Policies با استفاده از قطعه کد زیر ، از پرس و جو در سایت های مختلف مشتریان جلوگیری کنید.

context.Response.Headers.Add("X-Permitted-Cross-Domain-Policies", "none");

X-Powered By

هدر X-Powered-By برای شناسایی فناوری سرور مورد استفاده (به عنوان مثال IIS) به پرونده web.config اضافه می شود. اگر از یک فایل web.config استفاده کنید که دارای X-Powered By است ، می توانید این سرآیند را حذف کنید.

خط مشی ویژه

از سربرگ Feature-Policy برای تعریف تمام ویژگی های مورد نیاز برنامه شما استفاده می شود.

context.Response.Headers.Add("Feature-Policy", camera 'none'; geolocation 'none'; microphone 'none'; usb 'none'");

سیاست امنیتی محتوا

خط مشی محافظت از محتوا ، خط مشی امنیتی است که برای کنترل منابعی که یک صفحه وب مجاز به بارگیری است ، استفاده می شود. این یک لایه امنیتی دیگر است که از طریق سربرگ Content-Security-Policy در پاسخ HTTP پیاده سازی می شود. از خط مشی امنیتی محتوا برای شناسایی و کاهش انواع خاصی از حملات مانند اسکریپت در سایت های مختلف و حملات تزریق داده استفاده می شود.

قطعه کد زیر نحوه استفاده از این عنوان را نشان می دهد.

app.Use(async (ctx, next) =>
{
    ctx.Response.Headers.Add("Content-Security-Policy",
    "default-src 'self'; report-uri /idgreport");
    await next();
});

عناوین امنیتی برای امنیت وب سایت ضروری است. می توان از آنها برای محافظت از وب سایت در برابر انواع حملاتی که وب سایت شما با آن روبرو است ، مانند اسکریپت نویسی بین سایت ها ، تزریق کد و کلیک. می توانید تأیید کنید که عناوین امنیتی وب سایت خود را به درستی تنظیم کرده اید در این لینک.

نحوه انجام کارهای بیشتر در ASP.NET Core:

حق چاپ © 2021 ارتباطات IDG ، شرکت

[ad_2]