laravel8 防止XSS攻击 预防处理方案

1.新建中间件

php artisan make:middleware XSS

2.在中间件中添加以下内容

public function handle(Request $request, Closure $next)
    {
        $userInput = $request->all();
        array_walk_recursive($userInput, function (&$userInput) {
            $userInput = strip_tags($userInput);
        });
        $request->merge($userInput);
        return $next($request);
    }

3.在Kemel中注册此中间件到路由中间件

'xss' => \App\Http\Middleware\XSS::class

4.在路由中应用即可


Route::group(['middleware'=>'XSS', function() {

}]);
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 6
Summer

strip_tags 只是将 html 标签去除,防不了 xss 。

你可以试下这段代码:

<<a>script>alert('ciao');<</a>/script>

或者也可以试下用这个 工具

防止 xss 可以在页面输出时用 htmlspecialchars() ,如果需要输出 HTML ,则使用 github.com/ezyang/htmlpurifier

2年前 评论
amateur (楼主) 2年前
JerryBool 2年前
月光 2年前
Summer

strip_tags 只是将 html 标签去除,防不了 xss 。

你可以试下这段代码:

<<a>script>alert('ciao');<</a>/script>

或者也可以试下用这个 工具

防止 xss 可以在页面输出时用 htmlspecialchars() ,如果需要输出 HTML ,则使用 github.com/ezyang/htmlpurifier

2年前 评论
amateur (楼主) 2年前
JerryBool 2年前
月光 2年前
巴啦啦

在我印象中,laravel 已经做好了这些处理。如果没记错的话。 如果你觉得防住了,有没有一种可能不是你的代码防住了,而是laravel本身的代码给你防住了。

2年前 评论
MArtian 2年前

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