我的控制器中的所有CRUD操作都是在属于current_user
的资源上完成的,即经过身份验证的用户。 E.g。
@post = current_user.posts.create(title: "My title")
@posts = current_user.posts.where(archived: false)
当我获得授权时,我可以重定向并记录未经授权的请求,但除此之外 - 实施授权系统是否有任何安全优势(例如专家,cancancan等)?
答案 0 :(得分:1)
在这种简单的情况下,没有。
如果您希望记录未经授权的访问权限,可以通过添加覆盖一两个方法并添加Rails.logger.warn 'got the bad guy!'
来轻松完成。
但是,请考虑以下事项:
您的用户群正在请求同时修改帖子。
他们还希望设置某人可以对帖子执行的操作。
他们还希望设置有许多团队的团队,这些团队有很多项目都有很多帖子。
根据您所属的团队,小组和项目,意味着您可以编辑帖子。
如果有人属于公司团队且属于主席小组,他们可以执行任何操作,无论如何。
此时,唯一的解决方案是cancancan
或pundit
等权限系统,对于动态权限,甚至可以将权限设置为数据库表,循环遍历所有权限并生成权限规则。