首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >发送安全临时密码

问发送安全临时密码
EN

Stack Overflow用户
提问于 2011-10-21 19:32:21
回答 2查看 939关注 0票数 1

我正在创建一个忘记密码的页面,并将通过电子邮件向用户发送一个临时密码,这样他们就可以登录并重置密码。

创建密码时应该考虑什么,最好的方法是什么。

我的想法是这样的:$temporarypassword = sha1($_SERVER['REMOTE_ADDR'])

试图仅允许他们从他们请求临时密码的ip地址登录。最好的方法是什么?

到目前为止的代码:

代码语言:javascript
复制
      if(strpos($_SERVER['HTTP_REFERER'],'domain.com') && ($_POST['forgotpasstoken'] == sha1($_SESSION['token'].'forgotpassword'))){
        if(isset($_POST['forgotemail']) && !empty($_POST['forgotemail'])){
            $email = mysql_escape_string(trim($_POST['forgotemail']));

            if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE){
                echo '<div class="error">Please enter a valid email address.</div>';
            } else {
                $sql = "SELECT email FROM users WHERE email = '$email' LIMIT 1";
                            $res = mysql_query($sql) or die(mysql_error());
                                if (mysql_num_rows($res) > 0) {

                                    //If email/user exists
            $temporarypassword = sha1($_SERVER['REMOTE_ADDR'])  
                //EMAIL PASSWORD HERE           

        echo '<div class="success">A temporary recovery password has been emailed to you.</div>';
                                    //If email/user exits
                                } else {
                                    echo '<div class="error">This email is not registered.</div>';
                        }
            }

        } else {
        echo '<div class="error">Please enter an email address.</div>'; 
        }

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-21 19:36:49

只使用一个随机字符串:用户很可能尝试从iPhone登录,但失败,请求新密码,并且仅当他在家里的PC上时才打开链接。is不同,设备不同,一切都不同。

票数 2
EN

Stack Overflow用户

发布于 2011-10-22 05:21:03

如果你正在通过电子邮件发送密码,就没有办法让它完全安全。电子邮件以纯文本传输。就像alf说的,用户可以从不同的IP地址重置密码,而不是从他们请求密码的IP地址。

一种选择是创建一个随机字符串,然后在密码重置页面上显示一半(在进行重置请求之后),并在电子邮件中显示一半字符串。然后要求用户在表单中输入这两个部分,然后让他们选择新密码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7848785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档