我目前正试图掌握Sinatra,我注意到没有最新的身份验证宝石就像设计导轨一样。我决定只创建自己的身份验证系统,问题是,为了确保用户安全,我需要采取哪些最重要的预防措施?我需要以哈希形式存储密码,可能还有盐,但还有什么? 请记住,我不是安全专家,否则不会问这个问题。
答案 0 :(得分:0)
尝试使用 bcrypt gem
加密密码对会话劫持持谨慎态度
例如
post "/signup" do
password_salt = BCrypt::Engine.generate_salt
password_hash = BCrypt::Engine.hash_secret(params[:password], password_salt)
#ideally this would be saved into a database, hash used just for sample
userTable[params[:username]] = {
:salt => password_salt,
:passwordhash => password_hash
}
session[:username] = params[:username]
redirect "/"
end