2013-08-15 5 views
-1

어쩌면 바보 같은 질문 ...,Password_hash 및 Password_verify는 비밀번호도 저장합니까?

하지만 내가 password_hash() 함수를 사용하여 해시 일단 데이터베이스에 암호 (일반 텍스트)를 저장하는 것이 유용 경우 나 자신을 부탁 해요 ...

  • password_verify()는 hashnSalt를 사용하여 전달이 올바른지 확인하기 때문에. 그는 그것을 다시 얻을 수없는 사용자가 자신의 암호를 잊어 버린 경우, "악당"그는 일반 텍스트 암호가없는 DB에 대한 액세스 권한을 획득 한 번

  • 을 (를 bruteforce 그에게 시간을 요구합니다) : 유일한 방법은 새 패스를 다시 만드는 것입니다.

내가 50 분의 50에있어 ...

+3

평문 암호를 저장하는 것이 절대로 합리적이지 않습니다. – mnagel

+0

물론 평문 암호는 저장하지 않습니다. 왜이 질문을합니까? 관련없는 대답은 – MightyPork

답변

2

Do not EVER 어떤 경우에도 일반 텍스트 비밀번호를 저장합니다. 이렇게하면 처음부터 암호 해시의 모든 목적을 무효화합니다.

해커가 사이트에 침입하여 데이터베이스를 도용하는 경우 해커가 bruteforce 또는 테이블을 사용하지 않고도 사용자 암호를 얻는 것은 사실상 불가능합니다. (테이블 위험은 password_hash() 함수에 의해 도입 된 소금에 의해 완화됩니다.)

사이트 소유자/운영자와 마찬가지로 사용자의 암호를 검색 할 수 없어야합니다 (가능한 경우 해커도 그렇게 할 수 있습니다).). 그렇기 때문에 암호를 다시 설정하지 않고 암호를 보내는 웹 사이트는 자격 증명을 안전하게 저장하지 않으므로 즉시 빨간색 깃발이 표시됩니다.

이 문제를 해결하는 올바른 방법은 사용자가 자신의 암호를 잊어 버린 경우 사용자가 새 암호를 만들 수있는 임시 링크를 보내는 것입니다.

+0

그 빠른 답변에 대해 고마워, 나는 당신이 그것을 풀 었는지 의심 스러웠다. – TreeID

0

사용자가 자신의 암호를 잊어 버린 경우, 당신은 자신의 페이지에 대한 링크와 함께 그/그녀의 이메일을 보내 자신의 암호를 변경하라고 요청할 수 있습니다. 또는 사용자에게 새 비밀번호를 설정하여 해당 사용자에게 보낼 수 있습니다.

+0

입니까? –

+0

무슨 뜻인가요? 비밀 번호없이 "그의 페이지로 보내"는 방법! – Javid

+0

암호화 된 링크를 만들 수 있습니다. 사용자가 클릭하면 사용자를 리디렉션하고 세션을 설정합니다. – Soosh

1

먼저 일반 텍스트 비밀번호를 저장하지 마십시오! 아마도 사용자는 두 개 이상의 장소에서 동일한 암호를 사용하고 공격자가 다른 서비스에 로그인 정보를 제공하게됩니다.

작성된 해시 만 표시하고 사용자가 암호를 기억해야하는 경우 새 암호로 재설정해야합니다. 이렇게하는 방법은 선택할 수 있지만 고유 한 임시 링크가있는 이메일을 보내는 것이 가장 좋습니다.

관련 문제