我目前正在学习http://ruby.railstutorial.org/chapters/上的 Rails 教程
在第 7-8 章的某个地方,我在部署到 Heroku 时遇到了一个错误(不幸的是我忘记了这个错误),但我发现在线解决方案是让 remember_token 变量在用户模型中可访问。我不确定该解决方案是否合法,但它有效,所以我继续本教程没有问题。
remember_token 是一个变量,定义如下:
self.remember_token = SecureRandom.urlsafe_base64
换句话说,它是一个随机的字符串,所以它本身是非常安全的。即没有人能猜到。
它与 cookie 一起使用,以确定是否有人以前登录过:
def sign_in(user)
cookies.permanent[:remember_token] = user.remember_token
self.current_user = user
end
def signed_in?
!current_user.nil?
end
def current_user
@current_user ||= User.find_by_remember_token(cookies[:remember_token])
end
但是我的用户模型具有以下内容:
attr_accessible :email, :name, :password, :password_confirmation, :remember_token
...而且我想知道这个 remember_token 作为可访问属性是否会是一个安全漏洞。理论上有人可以使用客户端命令行并使用类似的东西获取remember_tokenuser.remember_token
吗?一旦他们拥有了remember_token,他们就不能只是模拟以前登录的状态,因此不需要密码/电子邮件组合吗?请有更多经验的人对此有所了解吗?
谢谢!