2017-03-09 57 views
-2

我目前正試圖掌握在Sinatra,我注意到有沒有最新的身份驗證像設計的軌道。我決定創建自己的身份驗證系統,我的問題是,爲確保用戶安全,我需要採取哪些最重要的預防措施?我需要以散列形式存儲密碼,可能用鹽,但還有什麼?請記住,我不是安全專家,不會問這個問題,否則。什麼是必要的身份驗證是安全

+1

這有點寬,因而不適合SO謹慎。閱讀http://security.stackexchange.com/questions/tagged/authentication上的所有內容? xd – ndn

+0

請閱讀「[問]」和鏈接頁面,以及「[mcve]」。編寫自己的身份驗證系統不是跳到中途的問題。我建議您將其作爲現有項目的一部分,以改進它並瞭解所需內容,然後考慮您是否真的想要繼續。 SO不是問這個問題的地方,但其他的[se]網站會很好。 –

回答

0

嘗試與bcrypt寶石加密密碼

與會話劫持

例如

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 
+0

請問您能詳細討論會話劫持嗎? – Leo

+0

竊取用戶的會話ID可讓攻擊者以受害者的名義使用該Web應用程序。 http://guides.rubyonrails.org/security.html#session-hijacking –

+0

[so]這個問題太廣泛了。 https://meta.stackoverflow.com/questions/256328/vote-to-close-unclear-questions-immediately-after-commenting and https://meta.stackoverflow.com/questions/260263/how-long-should-我們等待海報來澄清問題之前關閉可能會幫助你回答。 –