【问题标题】:How to send password with confirmation email (PHP)如何通过确认电子邮件发送密码(PHP)
【发布时间】:2017-02-15 05:57:26
【问题描述】:

首先,我意识到这是一种非常糟糕的做法-但是,我看到过这样做的网站,我想知道。

是否可以将密码与注册详细信息一起发送,并且仍然将密码存储为哈希?

因此,基本上,用户在注册后会收到一封确认电子邮件,以及他们的用户名和密码,以供参考。当网站这样做时,他们会将密码存储为哈希还是明文?

密码以明文形式存储在电子邮件中——但是,它是简单地以明文形式存储在服务器中,还是在电子邮件发送后经过哈希处理?

这似乎是一个奇怪的问题,但由于我看到很多网站都在这样做,所以我想知道——我最初的假设是错误的吗?那么,这种做法实际上是一种不好的做法,还是安全的呢? (我认为没有其他原因有这么多网站会这样做)

【问题讨论】:

  • 一些服务仍然在电子邮件中以纯文本形式发送密码,并将它们存储在 db 中的哈希中。不好的做法,但很容易做到。
  • “首先,我意识到这是一种非常糟糕的做法” - 你是对的,为什么要这样做?
  • 1) 生成密码。 2)散列它,将其存储在数据库中。 3) 通过电子邮件发送明文密码,因为您刚刚生成了它,所以您仍然在记忆中。 – 有什么问题?
  • 老实说,这个问题太宽泛了,我需要写的内容不适合在这里发表评论。这样做时,如果我确实写了一个答案,请坚持为它投票。但是,简而言之,我可以用一些伪代码轻松回答这个问题;就在您存储(安全)散列之前,为密码设置的变量可以包含在电子邮件中,然后作为散列存储在 db 中。 $pass=$_POST['pass']; echo $pass; ... $pass 然后使用password_hash() 保存到数据库;我能在这里做的最好的;-)
  • @Fred-ii- 您能否复制/粘贴该评论作为答案?我会接受 - 这是迄今为止最好的答案,看看这个问题得到的反馈,我认为这将是我能得到的最好答案

标签: php email login passwords


【解决方案1】:

“@Fred-ii- 你能复制/粘贴该评论作为答案吗?我 – Zack105”

根据要求:

“但是,它是简单地以明文形式存储在服务器中,还是在发送电子邮件后进行哈希处理?”

我们不知道如何使用每项服务以及它们的实际用途。有些可能将密码存储为纯文本,有些可能会散列。有些人可能会使用锁和钥匙将纯文本密码存储在不同的位置,有些人可能会这样做并散列;它可以是任何东西。

如果您要启动自己的服务或用于用户注册网站,请将密码存储为散列而不是纯文本。你问的场景太多了。我希望我们已经为您提供了足够的开始。

如果您对此一无所知,还有一件事是准备好的语句,如果您想获得用户输入并且有助于防止可能的 SQL 注入,则应使用这些语句。

参考资料:


来自deceze 的评论,来自(现已删除的)答案:

我引用:

“最佳实践是让用户选择他们自己的密码,并且在任何时候都不要以明文形式存储或发送密码。密码是必须单独存在于用户头脑中的秘密(或安全密码管理器) ). 用户帐户的安全性取决于密码的保密性。密码以明文形式暴露的越多,帐户的安全性就越低。 – deceze

【讨论】:

    【解决方案2】:

    不要。就是这么简单。这样做的网站是出于懒惰。他们不希望支持电话询问密码,或者技术文盲强迫 IT 这样做。密码应该永远以明文形式通过网络发送。人们很愚蠢,会重复使用密码等。如果您担心人们已经忘记了密码,请在该电子邮件中向他们发送指向您的密码重置页面的链接。

    【讨论】:

    • 没有真正回答这个问题,但这是唯一明智的答案。
    • 我认为您并没有真正阅读过这个问题.....我不想使用它,我只是想看看它是否有效。显然,它没有,但我要求提供技术解释,而不是有人告诉我它不起作用。我明确表示我不想那样。
    • @Zack105 它确实有效,但永远不应该这样做。您写了“无论如何要发送密码和注册详细信息,并且仍然将密码存储为哈希?”没有提及你的意图。这就像“我如何做到这一点?”如果所有的为什么都说不,那么如何是无关紧要的。
    • 我确实提到了我的意图 - 我明确表示我不想使用它,只想澄清这种做法的安全性。
    • 在哪里?我所能看到的只是你最初认识到这是一种不好的做法,然后询问这是否是一个不正确的假设。
    猜你喜欢
    • 2014-05-23
    • 2015-06-10
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 2016-07-14
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    相关资源
    最近更新 更多