2
attr_accessible :email, :password, :password_confirmation

如果没有,您能否举例说明在删除 attr_accessible 时防止“未定义”错误的方法。

4

2 回答 2

2

如果你是安全偏执狂,你可以这样做是定义方法密码:

def password
  self.password
end

这样密码就不能手动设置了。

但是你不应该担心它,因为许多像 devise 这样的登录 gem 需要 attr_accessible 中的密码。

于 2013-04-12T22:40:31.417 回答
2

这是安全的。Attr_accessible 仅对控制应用程序逻辑的属性是危险的。例如,如果您有一个标志,上面写着“是的,我已经检查过这个用户是管理员”,并且它可以由用户设置,因为它是 attr_accessible,那么它就是一个漏洞。

由于密码是由用户提供的一条信息,因此使其可由同一用户设置并不会改变任何内容。

于 2013-04-13T05:55:38.020 回答