当前位置:首页 > CMS教程 > 其它CMS > 列表

如何在laravel 5中创建用于XSS防御的中间件?

发布:smiling 来源: PHP粉丝网  添加日期:2020-01-16 10:43:07 浏览: 评论:0 

XSS(跨站点脚本)防御可以说是在站点中必须使用的,如果不使用XSS防御,那么你的站点就极其不安全。XSS过滤器可以从输入值中删除html标记,所以为了安全起见,删除html标记非常重要。在laravel 5.2中,可以通过在项目中使用中间件概念来实现。

下面我就给大家介绍如何在laravel应用程序中创建XSS过滤中间件。

首先启动以下命令并创建中间件:

创建中间件:

php artisan make:middleware XSS

现在,你可以在app/Http/Middleware/XSS.php中看到新文件,并将下面的代码放入你的XSS.php文件中。

XSS.php

  1. namespace App\Http\Middleware; 
  2.  
  3. use Closure; 
  4.  
  5. use Illuminate\Http\Request; 
  6.  
  7. class XSS 
  8.  
  9. { 
  10.  
  11.     public function handle(Request $request, Closure $next) 
  12.  
  13.     { 
  14.  
  15.         $input = $request->all(); 
  16.  
  17.         array_walk_recursive($input, function(&$input) { 
  18.  
  19.             $input = strip_tags($input); 
  20. //phpfensi.com 
  21.         }); 
  22.  
  23.         $request->merge($input); 
  24.  
  25.         return $next($request); 
  26.  
  27.     } 
  28.  
  29. } 

最后,必须在app/Http/Kernel.php文件中注册中间件。并在$routeMiddleware数组中添加以下行。

Kernel.php

  1. class Kernel extends HttpKernel 
  2.  
  3. { 
  4.  
  5.     .... 
  6.  
  7.     protected $routeMiddleware = [ 
  8.  
  9.         'auth' => \App\Http\Middleware\Authenticate::class, 
  10.  
  11.         .... 
  12.  
  13.         'XSS' => \App\Http\Middleware\XSS::class, 
  14.  
  15.     ]; 
  16.  
  17. } 

现在你可以在你的routing .php文件中使用XSS中间件了,在下面routing .php文件中你可以这样做:

routes.php

  1. Route::group(['middleware' => ['XSS']], function () { 
  2.  
  3.   Route::get('customVali', 'CustomValDemoController@customVali'); 
  4.  
  5.   Route::post('customValiPost', 'CustomValDemoController@customValiPost'); 
  6.  
  7. }); 

Tags: laravel

分享到: