新手问题 问一个多用户下的 rails 安全问题

yzdel2000 · 2014年08月02日 · 最后由 huacnlee 回复于 2014年08月02日 · 1829 次阅读

我是个 rails 新手,问一个有关 rails 开发多用户下的安全问题。

我做了一个多用户发文章的系统,当然是学习开发 rails 用。 可是今天发现了一个安全问题,请高手指点一二。

比如我是用 A,发了一个帖子 id 为 1.我可以修改这个帖子 post 数据的地址可能是/post/1

可是如果我用 chrome 浏览器,把 form 里的/post/1 修改为/post/2。就发现 id 为 2 的帖子被修改了。

这明显是一个安全问题。请教各位大大是如何处理的。

这是一个权限管理问题,可以研究下 devisecancancan 的工作。

这无可厚非啊,难道你要细力度控制到 id?我的控制是小型应用就到类,例如 User,再细一点到方法,例如 del 和 create 的权限不一样的,特别的 id 单独写,没有遇到过这么细力度的。

简单处理方式

class User
  has_many :posts
end


class PostController
  def edit
    @post = current_user.posts.find(params[:id])
    # 更新代码
  end
end

谢谢,多人 blog 果然跟个人 blog 很多不一样的地方,稍微不留神,就是个安全问题。原先还以为就添加个多人注册就完事了,看来都要限定一下为当前用户。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号