近期一个项目在做代码扫描,好多都是服务器层面的,但是也是遇到了代码层面的CSRF的漏洞,搜索了很多相关的知识,最后的解决办法就是不只是使用cookie登录,在登录的时候再加一个token返回给前端,前端在请求所有后台接口的时候都带上token,这样的话能起码防止CSRF的攻击,过代码扫描。
laravel的cookie设置 response 里才可以设置
return response()->json($this->success([
'id' => $admin->id,
'name' => $admin->name,
'account' => $admin->account,
'type' => $admin->type,
'last_login_time' => $admin->last_login_time,
]))->withCookie(Cookie::make('token', $token, 43776));
返回值也要是json格式的,要和前端保持一致。
然后在中间件里面判断一下当前是否存在token并且和存在缓存里的一直,否则的话拦截即可。
搞定!!!
推荐