私は現在、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_tokenを取得できますuser.remember_token
か? 一度remember_tokenを取得したら、以前にログインしたことをシミュレートするだけでよいので、パスワードと電子メールの組み合わせは必要ありませんか? もう少し経験のある人がこれに光を当てることができますか?
ありがとう!