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

Php 如何在我的网站上进行安全登录?,php,cookies,mysqli,Php,Cookies,Mysqli,你好。我正在写一个社交网络,我需要制作一个非常受保护的auth表单。我决定通过ajax发布数据,并将登录保存到cookies中。但登录可以很容易地写在黑客的cookies中。然后我想起了用户散列,每当用户登录并写入数据库并进行比较时,可以从PHP生成散列。但必须允许在不同的设备上同时登录。如何进行安全身份验证?如果您想要安全登录,必须考虑 我会使用PHP超级全局$\u会话来存储会话状态、用户电子邮件等 示例在PHP中使用: 您应该明确使用预先准备好的语句,因为您接受的用户输入可能很危险。而且不要

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

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

我会使用PHP超级全局
$\u会话
来存储会话状态、用户电子邮件等

示例在PHP中使用:

您应该明确使用预先准备好的语句,因为您接受的用户输入可能很危险。而且不要忘记功能,因此密码是安全加密的。将加密密码存储在数据库中,并检查加密用户输入是否与加密密码匹配。不要使用,这不安全

按照此链接了解有关的更多信息

结论
  • 使用
    $\u会话
    s
  • password\u hash
    password\u verify
    而不是
    md5
  • 查询数据库时使用准备好的语句
希望这有点帮助

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;
}