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 協議》,轉載必須註明作者和本文連結