繁体   English   中英

为什么即使回答正确我也无法查看密码?

[英]why can't i view my password even answer is correct?

我让用户忘记密码的方式是回答安全问题,当密码正确时,它将回显密码。 一切正常,除非我开始单击view password按钮。

我知道不建议发布太多代码,但是我认为您需要查看所有内容才能理解错误所在,因为我也无法弄清楚。 在此先感谢您为我提供帮助的人:)

编辑:所以我将以最安全的方式进行操作,这就是为什么我删除了代码。 我有一个新的,也许是更“解决”的问题。 杰伊爵士问我要张贴它。 这是我的注册页面。

<form method="post" class="form-horizontal" action="signup.php">
     <input type="text" class="form-control" name="username" id="username" placeholder= "username">

     <input type="password" class="form-control" name="password" id="password" placeholder="password">
</from>

我的sign_up.php

if(isset($_POST['submit']))
{

$username = $conn->real_escape_string(trim($_POST['username']));
$password = $conn->real_escape_string(trim($_POST['password']));
$new_password = password_hash($password, PASSWORD_DEFAULT);
$query = "INSERT INTO pending(username, password) VALUES('$username','$new_password')";
}

它在pending的表格中,因为需要管理员确认。 当管理员确认他的请求后,数据将转到users表。 在我的登录名中,不同的页面将根据用户的位置进行重定向,无论该用户是其成员还是批次主席。

在忘记密码后向他人发送密码的逻辑是有缺陷的。

考虑一下:他们忘记了密码。 无需向他们发送相同的密码,因为在此时此刻,他们最初使用的密码没有区别。 无论哪种方式,他们都忘记了。 无论您向他们发送新邮件还是旧邮件,都与请求它的最终用户无关。 “实际上,他们并没有要求新密码,而只是要求以任何/方式/方式登录到您的系统。 密码,没有密码,他们不在乎。 现在就给他们一个选项,使他们不再可以登录。

相反,因为您绝不应该在数据库中存储纯文本密码,所以只需为它们提供一个新密码(pass-phrase *),以便在他们再次登录时输入密码。 密码重置,可以这么说。 然后,如果他们选择这样做,则可以为他们提供成功登录后更改新指定密码的机会。

我知道这可能不会直接帮助您解决当前的问题,但是在开发有关密码检索/忘记密码的新系统时,这是一个很好的逻辑。

*密码短语很容易记住,但是如果正确完成,它也会具有很大的熵。 这是组成短语的自然单词组合。 向用户发送密码(例如B @ 3!&O $$,$ fs @)是荒谬的。 没人记得。 甚至没有十秒钟。 但是,如果您给他们提供一个随机的一次性口令,就像昨天红色友好的猴子踢足球一样 (我只是以为那是一个!),那么这很容易记住。 它具有很大的 ,并且至少可以使用户登录是有利的。然后,可以根据授予访问逻辑的规定,强迫他们更改它。

当然,除了需要令牌的新密码和口令外,还有其他方法,这些方法可以自动登录用户而无需他们输入新的密码/口令。 仅提示他们在重置过程中创建一个新密码 但这是另一种情况,我没有时间了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM