امنیت همیشه سر لوحه کار هر برنامه نویس است. زمانی که با فریم ورک لاراول کار می کنید نیز باید به این مورد توجه کنید! لذا در این مقاله با پکیج های امنیتی لاراول جهت افزایش امنیت اپلیکیشن های لاراول آشنا می شوید.
لاراول سعی کرده تا بیشتر خطا های برنامه نویس را برطرف کند ، که این خود باعث افزایش امنیت وب سایت لاراولی می شود.
همچنین خود فریم ورک لاراول هر بار آپدیت می شود و نسخه های فیکس شده ایمن تری را بعلاوه امکانات بیشتر نیز ارائه می دهد.
اما با وجود این ها دلیل نمی شود که برنامه نویس بخواهد خطا کند و کد نویسی ایمن را نادیده بگیرد!
پکیج laravel-security شامل هسته اصلی Symfony Security در لاراول است که عمدتا برای چک کردن دسترسی به role ها و object ها به کار می رود.
برای نصب این پکیج کافی است وابستگی (dependency) زیر را به فایل composer.json اضافه کنید و سپس دستور composer update را اجرا کنید.
1 |
"barryvdh/laravel-security": "0.2.x@dev" |
سپس باید این پکیج را به ServiceProvider در مسیر config/app.php معرفی کنید :
1 |
'Barryvdh\Security\SecurityServiceProvider' |
در نهایت می توانید Fasade این پکیج را نیز به لیست فساد های لاراول اضافه کنید :
1 |
'Security' => 'Barryvdh\Security\Facade', |
Laravel Security دارای کلاس های امنیتی CodeIgniter 3 می باشد
برای استفاده از این پکیج باید از PHP 7.1 به بالا استفاده کنید. و برای نصب :
1 |
composer require graham-campbell/security |
سپس باید آن را به Service Provider معرفی کنید :
1 |
GrahamCampbell\Security\SecurityServiceProvider |
و فساد آن را نیز به فساد های لاراول اضافه کنید :
1 |
'Security' => GrahamCampbell\Security\Facades\Security::class, |
برای ادامه کار نیاز به پیکربندی laravel Security دارید . ابتدا تمام asset ها را ایجاد می کنیم :
1 |
php artisan vendor:publish |
حالا فایل config/security.php ساخته می شود که می توانیم تمام پیکربندی های امنیتی را داخل آن انجام دهیم.
یک service provider ساده برای لاراول است برای فراخوانی HTMLPurifier در لاراول می باشد.
با استفاده از کامپوزر (composer) به راحتی می توانید این پکیج را نصب کنید :
1 |
composer require mews/purifier |
برای استفاده از HTMLPurifier Service Provider باید Provider را در زمانی که اپلیکشین لاراول در حال bootstrapping است تعریف کنید.
دیگر نیازی به این کار نیست و به صورت خودکار Service Provider اضافه می شود.
برای پیکربندی این پکیج باید فایل پیکربندی آن را ایجاد کنیم (config/purifier.php) :
1 |
php artisan vendor:publish --provider="Mews\Purifier\PurifierServiceProvider" |
1 |
Purifier::clean(Input::get('inputname')); |
همانطور که می دانید در بحث ایمن سازی باید ورودی های کاربر یا هکر را کنترل کرد.
یکی دیگر از پکیج های امنیتی لاراول ، binput است که ورودی های کاربر را کنترل می کند و element های خطرساز را مانند تگ <script> را فیلتر می کند.
1 |
composer require graham-campbell/binput |
Service Provider این پکیج به طور خودکار اضافه می شود و برای ادامه کار نیاز است فساد آن را نیز معرفی کنیم :
1 |
'Binput' => GrahamCampbell\Binput\Facades\Binput::class, |
متد های 'all'
, 'get'
, 'input'
, 'only'
, 'except'
, و'old'
برای استفاده وجود دارند.
1 2 3 |
// request input data: ['test' => '123', 'foo' => '<script>alert(\'bar\');</script> '] $input = Binput::all(); // ['test' => '123', 'foo' => '[removed]alert(\'bar\');[removed]'] |
با استفاده از از پکیج laravel-password می توانید قدرت رمز عبور های کاربران را کنترل کنید و از رمز عبور های ایمن تری استفاده کنید.
پکیج Secure Headers ،هدر های امنیتی را به درخواست های Http اضافه می کند :
1 |
composer require bepsvpt/secure-headers |
بعد از نصب باید فایل پیکربندی یا config را ایجاد کنیم :
1 |
php artisan vendor:publish --provider=<span class="pl-s"><span class="pl-pds">"</span>Bepsvpt\SecureHeaders\SecureHeadersServiceProvider<span class="pl-pds">"</span></span> |
سپس یک میان افزار ( Middleware ) را در مسیر app/Http/Kernel.php باید تعریف کنیم :
\Bepsvpt\SecureHeaders\SecureHeadersMiddleware::class,