我是个 rails 新手,问一个有关 rails 开发多用户下的安全问题。
我做了一个多用户发文章的系统,当然是学习开发 rails 用。 可是今天发现了一个安全问题,请高手指点一二。
比如我是用 A,发了一个帖子 id 为 1.我可以修改这个帖子 post 数据的地址可能是/post/1
可是如果我用 chrome 浏览器,把 form 里的/post/1 修改为/post/2。就发现 id 为 2 的帖子被修改了。
这明显是一个安全问题。请教各位大大是如何处理的。
这是一个权限管理问题,可以研究下 devise 与 cancancan 的工作。
devise
cancancan
这无可厚非啊,难道你要细力度控制到 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 很多不一样的地方,稍微不留神,就是个安全问题。原先还以为就添加个多人注册就完事了,看来都要限定一下为当前用户。