A-A+

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

2020年01月18日 我爱编程 暂无评论

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. use Closure;
  3. use Illuminate\Http\Request;
  4. class XSS
  5. {
  6.     public function handle(Request $request, Closure $next)
  7.     {
  8.         $input = $request->all();
  9.         array_walk_recursive($inputfunction(&$input) {
  10.             $input = strip_tags($input);
  11.         });
  12.         $request->merge($input);
  13.         return $next($request);
  14.     }
  15. }

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

Kernel.php

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

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

routes.php

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

给我留言

Copyright © 四季博客 保留所有权利.   Theme  Ality

用户登录