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 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 6
Summer

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

你可以试下这段代码:

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

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

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

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

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

你可以试下这段代码:

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

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

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

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

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

2年前 评论
MArtian 2年前

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