当前位置: 首页 > 知识库问答 >
问题:

如何在PHP中使用密码验证函数[duplicate]

司徒正信
2023-03-14

我正在用PHP编写一个基本的网站登录脚本(login_config.PHP)。

我的问题是:在用户安全/保护方面,我是否正确地实现了password_verify()函数?

-注意:Post数据是从login.php发送的

代码(LOGIN_CONFIG.PHP):

        <?php                       //POST VARIABLES
    $submit = $_POST['login_submit'];
    $username = $_POST['login_username'];
    $password = $_POST['login_password'];
    $email = $_POST['login_email'];

    require 'password_config.php';
    if(isset($submit)){
    require 'db/connect.php';
    //PASSWORD VERIFYING
    $pass_query = "SELECT password FROM users WHERE email='$email'";
    $queried = mysql_query($pass_query);
    while($row = mysql_fetch_array($queried)){
    $user_pass = $row['password'];
    $veri_password = password_verify($password, $user_pass);
    }
    if(!$veri_password === true){$errors[] = '-Account does not exist ';}

编辑:我知道其他缺陷,请注意最初的问题。

共有1个答案

邢凯歌
2023-03-14

只要$row['password']返回的是由普通密码的password\u hash()创建的对应密码散列,而不是普通密码本身或除此之外的任何其他值,就可以正确使用password\u verify()函数。

请注意,此答案中没有进一步的安全问题。

 类似资料:
  • 问题内容: 我已将密码()的值()加密。但是当我验证时,我得到了错误的结果哈希值。 工作良好 如何增加对MySQL的支持? 问题答案: 你不能 MySQL 函数使用操作系统的函数-如果您的操作系统不支持bcrypt哈希,则MySQL也将不支持它们。 另外,请勿使用MySQL 函数。正如ircmaxell指出的那样,传递给MySQL查询的任何数据都可能最终存储在服务器日志文件中,因此将其用于任何与密

  • 问题内容: 最近,我一直在尝试在互联网上偶然发现的登录脚本上实现自己的安全性。在尝试学习如何制作自己的脚本以为每个用户生成盐的努力之后,我偶然发现了。 据我了解(基于本页的阅读内容),当您使用时,盐已经在行中生成。这是真的? 我的另一个问题是,吃2种盐不是很聪明吗?一个直接在文件中,另一个在数据库中?这样,如果有人破坏了数据库中的盐,您仍然直接在文件中保留了盐吗?我在这里读到,存储盐从来都不是一个

  • 本文向大家介绍php生成验证码函数,包括了php生成验证码函数的使用技巧和注意事项,需要的朋友参考一下 php生成验证码的函数,实用靠谱。先上下生成的验证码的效果图(这里生成的是全数字的验证码的示例效果): 下面是php生成验证码的源码:  该函数的具体使用方法请看如下这个示例(这里是生成全数字的验证码): 以上就是php如何生成验证码的实现函数,希望对大家的学习有所帮助。

  • 我正在尝试使用“新密码”解决方案来满足客户的要求。 我有这样的要求:< br> 1 -新密码必须是8 - 13个字符,< br> 2 -密码必须包含数字,< br> 3 -密码必须包含大小写字母,< br> 4 -密码不得包含用户名,最后< br> 5 -密码之前不得使用。 我不是Javascript方面的专家,我一直在尝试将所有这些要求放在一个脚本中,但我不知道如何解决这个要求的第1,4,5部分

  • 我正在使用JMX远程监控我的服务器。但是,jmx-access和jmx密码存储我不想要的清除密码。 接下来是如何为JConsole的密码文件加密密码,如何使JMX自定义身份验证工作?以及如何创建登录模块?,我编写了一个自定义登录模块。 我的登录模块: 这是我的登录模块配置文件(d:/mysecurity.cfg): 启动服务器时,我使用以下参数: 然而,当我试图用JCsonle连接服务器时,我无法

  • 我用扫描,这是结果: 看起来他们只支持ECDHE,从的输出来看,没有ECDHE密码!所以我的问题是如何使用PHP CURL客户端连接到远程服务器? 这是我的示例PHP代码,它返回false并返回消息: “列表中的未知密码:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128