安全认证需要什么

时间:2017-03-09 12:06:33

标签: ruby authentication sinatra

我目前正试图掌握Sinatra,我注意到没有最新的身份验证宝石就像设计导轨一样。我决定只创建自己的身份验证系统,问题是,为了确保用户安全,我需要采取哪些最重要的预防措施?我需要以哈希形式存储密码,可能还有盐,但还有什么? 请记住,我不是安全专家,否则不会问这个问题。

1 个答案:

答案 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