我有一个用laravel 5.6编写的Web应用程序,已经在服务器上(我有一个私有应用程序),但是经常有些用户交换,并从另一位用户那里获得控制权,例如有时连续1分钟,出于安全原因,这是一个很大的麻烦,他们可以查看甚至可以更改其他用户的数据。
该用户基于laravel的身份验证文档,此处为https://laravel.com/docs/5.6/authentication
根据角色,这是我的中间件(用户)的代码 我经常遇到这个问题
if (Auth::check() && Auth::user()->role->rol == 'User') {
return $next($request);
}
elseif (Auth::check() && Auth::user()->role->rol == 'Admin'){
return redirect()->route('user.dashboard');
}
elseif (Auth::check() && Auth::user()->role->rol == 'Afiliado') {
return redirect()->route('user.dashboard');
}
else{
return redirect()->route('login');
}
答案 0 :(得分:0)
我将在不久前解决我自己的问题。 当两个用户在短时间段(1-5秒)之间向服务器发送请求时。 第二个用户将标识为第一个。 这是由“微缓存”引起的,因为默认情况下已在主机服务器上启用了此功能。 一种解决方案是在您不想存储在缓存中的每个请求上添加此标头
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">
但是,由于我们希望对所有请求都禁用,因此最好的解决方案是与您的服务器房东联系,以在配置文件中禁用它。