如何在我的网站上进行安全登录?

时间:2014-08-31 10:51:18

标签: php cookies mysqli

美好的一天。我正在写一个社交网络,我需要制作一个非常受保护的身份验证表单。我决定通过ajax发布数据并将登录信息保存到cookie中。但是登录可以很容易地用黑客的cookie写。然后我想起了用户哈希,每当用户登录并在DB中写入然后进行比较时,就可以从PHP生成用户哈希。但必须同时允许在不同设备中登录。如何制作安全的身份验证?

1 个答案:

答案 0 :(得分:0)

如果您想要安全登录,则必须考虑 https

我会使用PHP超级全局$_SESSION来存储您的会话状态,用户电子邮件等。

示例在PHP中使用PDO

function login($email, $password)
{
    $stmt = $pdo->prepare("SELECT password FROM users WHERE email = ? LIMIT 1");
    $stmt->execute(array($email));
    $pw = $stmt->fetchColumn();
    if(password_verify($password, $pw)) {  //password is correct
        $_SESSION['logged_in'] = true;
        $_SESSION['email'] = $email;
        return true;
    } else return false;
}

您应该定义使用预准备语句,因为您接受可能有危险的用户输入。不要忘记 password_hash password_verify 功能,以便安全地加密密码。将加密的密码存储在数据库中,并检查加密的用户输入是否与加密的密码相匹配。不要使用md5,这不安全。

点击此链接,详细了解 $_SESSION

结论

  • 使用$_SESSION s
  • password_hashpassword_verify代替md5
  • 在查询数据库时使用预准备语句

希望这有点帮助。