2017-03-09 3 views
-2

저는 현재 Sinatra에 대한 이해를 얻으려고하고 있으며, 레일 용 장치와 같은 최신 인증 젬이 없다는 것을 알았습니다. 필자 만의 인증 시스템을 만들기로 결정했다. 나의 질문은, 사용자를 안전하게하기 위해 취해야 할 가장 중요한 예방 조치는 무엇인가? 암호를 해시 형식으로 저장할 필요가 있습니다. 그 외에는 무엇이 있을까요? 저는 보안 전문가가 아니라는 점을 명심하십시오. 그렇지 않은 경우이 질문을 제기하지 않겠습니다.인증을 위해 필요한 것

+1

에 대한

을 하이재킹에주의 bcrypt 보석과 암호를 암호화합니다. http://security.stackexchange.com/questions/tagged/authentication에서 모든 것을 읽으시겠습니까? xd – ndn

+0

"[ask]"와 "mcve"와 함께 링크 된 페이지를 읽으십시오. 자신의 인증 시스템을 작성하는 것은 중류로 뛰어 들기위한 것이 아닙니다. 기존 프로젝트의 일부로 작업하여 작업을 개선하고 작업 내용을 확인한 다음 작업자가 작업을 계속 수행 할 것인지 고려하는 것이 좋습니다. 다른 [se] 사이트가 좋을지라도이 질문을 할 수있는 곳이 아닙니다. –

답변

0

봅니다

세션이 조금 광범위하고 SO에 따라서 부적당 예를

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를 강탈하면 공격자가 피해자의 이름으로 웹 응용 프로그램을 사용할 수 있습니다. http://guides.rubyonrails.org/security.html#session-hijacking –

+0

[so]에 대한 질문은 너무 광범위합니다. https://meta.stackoverflow.com/questions/256328/vote-to-close-unclear-questions-immediately-after-commenting 및 https://meta.stackoverflow.com/questions/260263/how-long-should- 우리는 포스터가 끝날 때까지 질문을 명확히하기 위해 응답 할 때 도움이 될 수 있습니다. –

관련 문제