XSS(跨站點腳本)防御可以說是在站點中必須使用的,如果不使用XSS防御,那么你的站點就極其不安全。XSS過濾器可以從輸入值中刪除html標記,所以為了安全起見,刪除html標記非常重要。在laravel 5.2中,可以通過在項目中使用中間件概念來實現。
下面我就給大家介紹如何在laravel應用程序中創建XSS過濾中間件。
首先啟動以下命令并創建中間件:
創建中間件:
php artisan make:middleware XSS
現在,你可以在app/Http/Middleware/XSS.php中看到新文件,并將下面的代碼放入你的XSS.php文件中。
XSS.php
- namespace App/Http/Middleware;
- use Closure;
- use Illuminate/Http/Request;
- class XSS
- {
- public function handle(Request $request, Closure $next)
- {
- $input = $request->all();
- array_walk_recursive($input, function(&$input) {
- $input = strip_tags($input);
- //Vevb.com
- });
- $request->merge($input);
- return $next($request);
- }
- }
最后,必須在app/Http/Kernel.php文件中注冊中間件。并在$routeMiddleware數組中添加以下行。
Kernel.php
- class Kernel extends HttpKernel
- {
- ....
- protected $routeMiddleware = [
- 'auth' => /App/Http/Middleware/Authenticate::class,
- ....
- 'XSS' => /App/Http/Middleware/XSS::class,
- ];
- }
現在你可以在你的routing .php文件中使用XSS中間件了,在下面routing .php文件中你可以這樣做:
routes.php
- Route::group(['middleware' => ['XSS']], function () {
- Route::get('customVali', 'CustomValDemoController@customVali');
- Route::post('customValiPost', 'CustomValDemoController@customValiPost');
- });
新聞熱點
疑難解答