آموزش پیکربندی هدرهای امنیتی در ASP.NET Core
قیمت
آموزش پیکربندی هدرهای امنیتی در ASP.NET Core یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته آموزشی پیکربندی کردن هدر های امنیتی و یا Security Header ها در اپلیکیشن های ASP.NET و ASP.NET Core است که با نام اصلی Configuring Security Headers in ASP.NET and ASP.NET Core Applications از شرکت Pluralsight منتشر شده است.
اضافه کردن هدر سفارشی با استفاده از Attribute ها
اگر یک روش مناسب و قابل استفاده مجدد و یا همان reusable برای افزودن یک هدر سفارشی یکسان به چندین endpoint در Web API یا حتی در سطح controller میخواهیم، میتوانیم یک attribute سفارشی برای رسیدن به این هدف تعریف کنیم. در configuration توصیه شده برای ASP.NET Core برنامه با استفاده از ASP.NET Core Module و Nginx یا Apache میزبانی می شود که سرورهای پروکسی و load balancer ها و سایر تجهیزات شبکه اغلب اطلاعات مربوط به request قبل از رسیدن به برنامه را مبهم می کنند و این عمل به این صور است که وقتی HTTP های request از طریق HTTP پروکسی میشوند، scheme اصلی که همان HTTPS است از بین میرود و باید از یک هدر انتقال داده شود و یا اصطلاحاً forwarded شود سپس از آنجا که یک برنامه درخواستی را از پروکسی دریافت می کند و منبع واقعی آن را در اینترنت یا شبکه شرکتی دریافت نمی کند، آدرس IP مشتری اصلی نیز باید در یک هدر ارسال شود که این اطلاعات ممکن است در پردازش request مهم باشد.
در برخی موارد، ممکن است امکان افزودن هدر های forwarded به request های پروکسی به برنامه وجود نداشته باشد. در واقع اگر پروکسی الزام می کند که external request public به صورت HTTPS ارسال شوند، می توانیم این scheme را قبل از استفاده از هر نوع middleware به صورت دستی تنظیم کنیم:
using Microsoft.AspNetCore.HttpOverrides;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazorPages();
builder.Services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders =
ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
});
var app = builder.Build();
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
app.UseForwardedHeaders();
app.UseHsts();
}
else
{
app.UseDeveloperExceptionPage();
app.UseForwardedHeaders();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseAuthorization();
app.MapRazorPages();
app.Run();

هدر Content-Security-Policy
این هدر کمک می کند که جلو حملات تزریق کد و یا همان code injection از قبیل cross-site scripting و clickjacking و یا جلو mode های ترکیبی HTTPS و HTTP گرفته شود. در صورت لزوم میتوانیم اجرای اسکریپت های درون خطی را در صفحات وب غیرفعال کنیم و باید صریحاً می بایست یک rom را به عنوان یک Custom Source اضافه کنیم که در آن صفحات وب ما مجاز به بارگیری اسکریپت ها و سایر محتواها هستند. اما این پیکربندی تا حد زیادی وابسته به نیازمندی خاص است و در مورد اینکه چه چیزی مجاز و چه چیزی غیر مجاز است نیز دارای انعطاف پذیری می باشد.
چهار کلمه کلیدی اصلی وجود دارد که ما معمولاً هنگام تعریف CSP از آنها استفاده می کنیم.
- ()None: به این معنی است که هیچ چیزی بارگذاری نخواهد شد.
- ()Self: به معنای بارگیری موارد از همان دامنه ای است که در page ارائه شده است، یعنی همان scheme یکسان و host و یا port یکسان.
- ()UnsafeInline: به این معنی است که اجرای اسکریپت ها و یا سبک های درون خطی احتمالاً ناامن را فعال می کند. اما استفاده از آن توصیه نمی شود.
- ()UnsafeEval: به معنی اجرای eval و سایر توابع خطرناک را امکان پذیر می کند. باز هم استفاده از این نیز توصیه نمی شود.
سرفصل مطالب آموزش ویدیویی پیکربندی هدرهای امنیتی در ASP.NET Core
فصل اول: مقدمه این دوره آموزشی
- مقدمه
فصل دوم: چگونه هدرهای امنیتی به محافظت از برنامه شما کمک می کنند
- مقدمه
- وقتی مرورگر غیر ایمن است، چگونه HTTP Header می توانند کمک کنند؟
- اضافه کردن HTTP Header ها به Response ها با استفاده از فیلترها
- استفاده از Middleware برای افزودن HTTP Header ها
- انتشار HTTP Header ها با استفاده از Config و NWebSec
- تعیین هدر های امنیتی مورد نیاز
- جمع بندی
فصل سوم: کنترل کردن مرورگر برای محافظت در برابر حملات Cross Site Scripting (XSS) و Click-Jacking
- مقدمه
- بررسی حملات Cross Site Scripting و یا XSS
- بررسی هدر Content-Security-Policy و یا CSP
- نوشتن یک Content Security Policy
- بررسی حملات Click-Jacking
- کنترل کردن Iframe ها با CSP و هدر x-frame-Options
- بررسی هدر Feature-Policy
- جمع بندی
فصل چهارم: کاهش دادن سطح حمله با X-Content-Type-Options و Subsource Integrity و منتشر نکردن اطلاعات Version
- مقدمه
- غیر فعال کردن MIME Sniffing برای جلوگیری از حملات XSS
- ایمن کردن دسترسی به CDN ها با استفاده از Subresource Integrity Check
- جلوگیری از انتشار اطلاعات URL با استفاده از هدر Referrer-policy
- کنترل کردن هدرهای Version در ASP.NET
- جلوگیری کردن از از کش شدن اطلاعات با استفاده از هدر Cache-Control
- جمع بندی
نقد و بررسیها
هنوز بررسیای ثبت نشده است.