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 协议》,转载必须注明作者和本文链接
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 6
Summer

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

你可以试下这段代码:

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

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

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

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

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

你可以试下这段代码:

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

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

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

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

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

3年前 评论
MArtian 3年前

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