بای پس سیاست امنیت محتوا در لاراول: خطرات و کاهش

در چشم انداز توسعه وب امروز ، امنیت مهم است. یکی از ویژگی های مهم امنیتی ، سیاست امنیت محتوا (CSP) است که برای جلوگیری از اجرای محتوای مخرب در وب سایت شما طراحی شده است. با این حال ، غلط های نادرست یا نظارت می تواند منجر به گذرگاه های CSP شود ، به خصوص در چارچوب هایی مانند لاراول. این مقاله به چگونگی وقوع گذرگاه های CSP در برنامه های Laravel می پردازد و اقدامات عملی را برای کاهش این آسیب پذیری ها ارائه می دهد.
درک سیاست امنیت محتوا (CSP)
CSP یک استاندارد امنیتی است که برای جلوگیری از اسکریپت های متقابل سایت (XSS) ، ClickJacking و سایر حملات تزریق کد معرفی شده است. این امکان را برای توسعه دهندگان وب فراهم می کند تا منابعی را که یک عامل کاربر مجاز به بارگیری برای یک صفحه معین است ، کنترل کنند. CSP با تعریف یک لیست سفید از منابع محتوای مورد اعتماد ، خطر اجرای محتوای مخرب را کاهش می دهد.
تکنیک های متداول بای پس CSP در لاراول
در حالی که CSP یک اقدام امنیتی قوی است ، برخی از شیوه ها می توانند سهواً اثربخشی آن را تضعیف کنند:
1. بهره برداری از نقطه پایانی JSONP
JSONP (JSON With Padding) روشی است که برای درخواست داده از سرور ساکن در یک دامنه متفاوت استفاده می شود. با این حال ، اگر به درستی اداره نشود ، می توان از نقاط پایانی JSONP برای دور زدن CSP استفاده کرد. مهاجمان می توانند اسکریپت های مخرب را از طریق این نقاط پایانی تزریق کنند ، به خصوص اگر در آن گنجانده شده باشند script-src
دستورالعمل CSP شما.
مثال:
Content-Security-Policy: script-src 'self' https://trusted.cdn.com https://vulnerable.jsonp.endpoint.com;
اگر https://vulnerable.jsonp.endpoint.com
به خطر افتاده است یا به محتوای تولید شده توسط کاربر اجازه می دهد ، یک مهاجم می تواند اسکریپت های مخرب را که CSP شما اجازه می دهد تزریق کند.
2 .. غلط تنظیم شده script-src
راهنما
اجازه دادن به منابع اسکریپت ناامن یا استفاده از کارتهای وحشی در خود script-src
دستورالعمل می تواند درها را برای مهاجمان باز کند. به عنوان مثال ، استفاده 'unsafe-inline'
اجازه اجرای اسکریپت های درون خطی را می دهد ، که می تواند یک خطر امنیتی قابل توجهی باشد.
مثال:
Content-Security-Policy: script-src 'self' 'unsafe-inline';
این پیکربندی به هر اسکریپت درون خطی اجازه می دهد تا حملات XSS را به طور بالقوه فعال کند.
اجرای CSP در لاراول
برای اجرای مؤثر CSP در لاراول ، مراحل زیر را در نظر بگیرید:
1. از میانه نرم افزار برای هدرهای CSP استفاده کنید
Laravel به ایجاد میان افزار اجازه می دهد تا هدرهای HTTP را اصلاح کند. با ایجاد یک میان افزار ، می توانید هدرهای CSP را برای پاسخ های برنامه خود تنظیم کنید.
مثال میان افزار:
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
class ContentSecurityPolicy
{
public function handle(Request $request, Closure $next)
{
$response = $next($request);
$response->headers->set('Content-Security-Policy', "default-src 'self'; script-src 'self' https://trusted.cdn.com; object-src 'none'; frame-ancestors 'none';");
return $response;
}
}
این میان افزار را در خود ثبت کنید Kernel.php
برای استفاده از آن در سطح جهانی یا در مسیرهای خاص.
ترتیب بسته های موجود را اهرم کنید
بسته Spatie/Laravel-CSP روشی ساده برای مدیریت CSP در برنامه های LARAVEL فراهم می کند. این امکان را برای تعریف سیاست ها فراهم می کند و افزودن هدر را به صورت یکپارچه کنترل می کند.
نصب:
composer require spatie/laravel-csp
تعریف یک سیاست:
namespace App\Csp;
use Spatie\Csp\Directive;
use Spatie\Csp\Policies\Policy;
class AppPolicy extends Policy
{
public function configure()
{
$this
->addDirective(Directive::DEFAULT_SRC, 'self')
->addDirective(Directive::SCRIPT_SRC, ['self', 'https://trusted.cdn.com'])
->addDirective(Directive::OBJECT_SRC, 'none')
->addDirective(Directive::FRAME_ANCESTORS, 'none');
}
}
ثبت سیاست را در AppServiceProvider
:
use Spatie\Csp\Csp;
use App\Csp\AppPolicy;
public function boot()
{
Csp::setPolicy(AppPolicy::class);
}
استراتژی های کاهش
برای جلوگیری از بای پس CSP در برنامه LARAVEL خود ، به بهترین روشهای زیر رعایت کنید:
1. از استفاده خودداری کنید 'unsafe-inline'
وت 'unsafe-eval'
این دستورالعمل ها اجازه اجرای اسکریپت های درون خطی و eval()
توابع ، که می تواند توسط مهاجمان مورد سوء استفاده قرار گیرد. درعوض ، از اسکریپت های خارجی استفاده کنید و اطمینان حاصل کنید که آنها از منابع قابل اعتماد هستند.
2. محدود کردن script-src
به حوزه های قابل اعتماد
فقط دامنه هایی را که به آن اعتماد دارید مشخص کنید script-src
بخشنامه از استفاده از کارتهای وحشی یا از جمله دامنه هایی که میزبان محتوای تولید شده توسط کاربر هستند ، خودداری کنید.
3. به طور مرتب خط مشی های CSP را ممیزی و به روز کنید
با تکامل برنامه شما ، اطمینان حاصل کنید که خط مشی های CSP شما به روز شده است تا منعکس کننده هرگونه تغییر در بارگیری منابع باشد. ممیزی های منظم می توانند به شناسایی و اصلاح نقاط ضعف بالقوه کمک کنند.
استفاده از ابزارهای امنیتی رایگان
ارزیابی های منظم امنیتی بسیار مهم است. از ابزارهای رایگان مانند اسکنر آسیب پذیری وب سایت برای اسکن برنامه LARAVE برای آسیب پذیری های احتمالی ، از جمله سوء استفاده های نادرست CSP استفاده کنید.
استفاده مثال:
- به آنالایزر آسیب پذیری وب سایت مراجعه کنید.
- آدرس اینترنتی و آدرس ایمیل خود را وارد کنید.
- برای دریافت گزارش جامع امنیتی ، اسکن را شروع کنید.
تصویر رابط اسکنر آسیب پذیری وب سایت.
پس از اسکن ، گزارش ارزیابی دقیق آسیب پذیری را دریافت خواهید کرد آسیب پذیری وب سایت را بررسی کنید، که شامل توصیه هایی در مورد امنیت برنامه وب شما است.
تصویر گزارش ارزیابی آسیب پذیری تولید شده توسط ابزار.
پایان
خط مشی امنیت محتوا یک مکانیسم امنیتی اساسی برای برنامه های وب است. با درک چگونگی وقوع بای پس CSP در لاراول و اجرای بهترین شیوه ها ، می توانید اطمینان حاصل کنید که از برنامه شما در برابر حملات مخرب بهتر محافظت می شود. به طور مرتب از تنظیمات CSP خود حسابرسی کنید و از ابزارهای امنیتی رایگان استفاده کنید تا از آسیب پذیری های احتمالی جلو بمانید.
برای راهنمایی های بیشتر در مورد امنیت وب ، به وبلاگ ما در وبلاگ Pentest Testing Corp مراجعه کنید.