【问题标题】:Password only authentication in PHP/mySQLPHP/mySQL 中的仅密码身份验证
【发布时间】:2017-03-26 21:37:02
【问题描述】:

是否可以在 PHP/mySQL 中对用户进行身份验证而不要求他们只输入他们的用户名和密码?

我在 Dreamweaver 中创建了一个登录验证,它检查用户名和 mySQL 中的密码,效果很好!但是,我的老板不希望用户必须输入他们的姓名。他只是希望他们必须输入他们的唯一代码,然后在成功页面上显示他们的名字。

我想也许我可以简单地隐藏用户名输入框并让它自己填充...可以用记录集来完成吗?

如果有人可以告诉我,我将非常感激,谢谢:)

【问题讨论】:

  • 可能,是的。好主意,不。
  • 是的,有可能。
  • 如果两个用户的密码相同怎么办?
  • 我不认为这是典型意义上的密码,它更像是一个令牌。这些代币通常是生成的,因此不存在两个账户拥有相同代币的风险。为了安全起见,令牌必须足够长,因此无法猜测,并且必须确保传输安全(例如使用 TLS)。
  • 哇,谢谢大家。无需担心安全问题,因为这是一个简单的感谢页面,感谢同意向慈善机构捐款的人 :) 每个人都会有一个唯一的代码。是的,马丁同意了。我确实搜索了促销代码身份验证,但是失败了。

标签: php mysql forms authentication passwords


【解决方案1】:

身份验证的最佳做法是在要登录时至少记住两件事。当服务器向您显示包含用户名和密码的登录挑战时,可能的黑客需要找出两个数据字符串。但是,当您只使用密码时,您很容易侵入应用程序。但您也可以使用基于令牌的身份验证。问问你的老板他最喜欢什么。用户可以通过他的手机或其他已经登录的设备创建自己的令牌。因此,您必须登录一次才能创建用于登录 Intranet/网站的令牌。

当您只想使用密码时,请确保您可以在数据库中找到它。因为某些加密算法无法逆转。因此,您不能“取消”散列密码以进行检查。

当您使用基于令牌的身份验证时,您可以创建一个用户登录的应用程序。每隔 x 分钟(大约 5 或 10 分钟),令牌就会过期,他需要创建另一个令牌。每次他创建另一个代码时,您都可以将其添加到数据库中以将其与用户/用户帐户相关联。

当您只使用密码进行身份验证时,用户 a) 很容易被黑客入侵,因为这是黑客唯一需要知道的事情。如果运气不好,两个用户可以使用相同的密码。同样使用此解决方案,如果没有纯文本密码或不安全的可逆密码加密来检查密码是否正确并与用户相关,您几乎无法做到这一点。

但要回答你的问题。

是的,这是可能的。

不,这不安全
不,这不是最佳实践

【讨论】:

  • 谢谢科恩。不要求输入用户名的原因是为了让用户的过程更轻松、更无缝。我现在在想,如果我使用基于令牌的身份验证,那么它会给用户带来更多麻烦。
  • 用户名不被视为机密,也不被视为第二个安全因素。密码用password_hash进行hash并用password_verify校验,密码不能明文保存或加密,必须不可恢复。
  • 至于基于威胁模型评估的安全性。
猜你喜欢
  • 1970-01-01
  • 2020-02-28
  • 2019-08-26
  • 1970-01-01
  • 1970-01-01
  • 2011-05-08
  • 2012-07-29
  • 1970-01-01
  • 2014-04-29
相关资源
最近更新 更多