如何防止XSS攻击

Wiki的XSS攻击

XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括JavaVBScriptActiveXFlash或者甚至是普通的HTML。攻击成功后,攻击者可能得到更高的权限(如执行一些操作)、私密网页内容、会话cookie等各种内容。

Laravel利用HTML Purifier来预防XSS攻击

Laravel版本5.8
HTML Purifier版本4.14

  1. 安装HTML Purifier
    感谢原作者,原地址:github.com/ezyang/htmlpurifier
    composer require ezyang/htmlpurifier
  2. 新建中间件
    php artisan make:middleware XSS
  3. 添加中间件

如何防止XSS攻击

4.添加规则,具体的规则请阅读htmlpurifier的文档
htmlpurifier.org/
XSS中间件规则的DEMO

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class XSS
{
    //用于处理XSS
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle(Request $request, Closure $next)
    {
        //过滤XSS方法,这里是去除输入的html标签
        $userInput = $request->all();
        $config = \HTMLPurifier_Config::createDefault();
        $config->set('HTML.Allowed', '');
        $purifier = new \HTMLPurifier($config);
        foreach ($userInput as &$value) {
            $value = $purifier->purify($value);
        }
        $request->merge($userInput);
        return $next($request);
    }
}

5.路由添加XSS中间件

如何防止XSS攻击

知道的越多,才发现自己不知道的更多—-爱耍流氓的唐僧。

有问题请留言!

本作品采用《CC 协议》,转载必须注明作者和本文链接
打不死的小强
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!