在给定流程的每一步检查用户访问级别是否是一种好习惯?

时间:2017-10-03 13:06:08

标签: laravel security

我有一个laravel webapp,我检查用户是否可以执行某些操作或访问某些信息,而不仅仅是在登录期间。例如,当他们希望查看他们的资产时,我检查他们的UAC,在他们点击它们之后我再次检查,即使编辑,删除按钮不可见,代码中仍然有一个检查。这种模式在整个webapp中继续存在。这有点矫枉过正吗,这会让我的网络应用程序在整个地方看得太乱了吗?

2 个答案:

答案 0 :(得分:2)

是的,确实如此。每次在执行特权操作之前检查访问权限时,您都会冒险入侵者可能找到绕过早期检查的方法,并以某种方式触发该操作而不实际具有适当的访问权限它。一些额外的支票是一个很小的代价,以保证稳健和安心。

特别是,对于客户端发出的每个新请求,您应始终重新检查服务器上的权限,因为you should never trust user input,以及客户端发送到服务器的所有可能是在用户的控制下。例如,即使您禁用"编辑"或"删除"客户端界面中的按钮,阻止恶意(或甚至好奇的)用户重新启用它们的原因,例如通过他们的浏览器开发人员工具,甚至只是欺骗按钮会触发的实际编辑/删除请求?

如果您很幸运,所有缺少服务器端权限检查都会让某些用户see a bunch of deleted garbage.如果您不那么幸运,可能会在您的网站上授予他们完全的管理员权限

答案 1 :(得分:0)

这确实是一种很好的做法,中间件可以帮助您更轻松地实现这一目标。

Check the Laravel documentation for more information