我的控制器中的所有CRUD操作都是在属于current_user (即经过身份验证的用户)的资源上执行的。例如。
@post = current_user.posts.create(title: "My title")
@posts = current_user.posts.where(archived: false)当授权到位时,我可以重定向和记录未经授权的请求,但除此之外--实现授权系统是否有任何安全好处(例如,专家、取消扫描等等)?
发布于 2016-12-08 17:39:37
在这种简单的情况下,不。
如果您希望记录未经授权的访问,可以通过添加一两个方法并添加Rails.logger.warn 'got the bad guy!'轻松完成。
然而,请考虑以下几点:
您的用户组同时请求编辑一个帖子。
他们还想设置一个人可以在一个帖子上执行什么动作。
他们还希望建立团队,其中有许多组,有许多项目,有许多帖子。
基于您所属的团队、组、项目,意味着您可以编辑文章。
如果某人属于公司团队,属于董事长组,他们可以执行任何行动,不管是什么。
在这一点上,唯一的解决方案是像cancancan或pundit这样的权限系统,对于动态权限,甚至可以将权限作为DB表,遍历所有权限并生成围绕权限的规则。
https://stackoverflow.com/questions/41044963
复制相似问题