如何防止XSS攻击
Wiki的XSS攻击
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java,VBScript,ActiveX,Flash或者甚至是普通的HTML。攻击成功后,攻击者可能得到更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
Laravel利用HTML Purifier来预防XSS攻击
Laravel版本5.8
HTML Purifier版本4.14
- 安装HTML Purifier
感谢原作者,原地址:github.com/ezyang/htmlpurifiercomposer require ezyang/htmlpurifier
- 新建中间件
php artisan make:middleware 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中间件
知道的越多,才发现自己不知道的更多—-爱耍流氓的唐僧。
有问题请留言!
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: