这是使用PHP MySQL设置用户访问级别的安全方法吗?

时间:2019-02-19 05:29:00

标签: php pdo

我正在用PHP设置用户访问级别。我编写了一些有效的代码,并将用户重定向到各自的页面,但是我不确定这是一种安全的方法。

EditText

我的用户表中有一个user_type列,其中用户标识他在注册时所用的用户类型,并基于他们在登录时被重定向到各自的页面。 但是,此代码有效,但我认为这不是正确的方法。我需要您的帮助和反馈,以提高代码质量。我也是编程新手,请清楚解释。

1 个答案:

答案 0 :(得分:-1)

安全性是一个巨大的话题,甚至主要网站也遭到了黑客攻击。

话虽如此,我认为您的解决方案并不安全,因为您正在数据库中存储普通密码

此外,您可以在一个查询中完成所有操作。像这样:

$firstname = trim($_POST["firstname"]);
$password  = plain_password_to_hash(trim($_POST["password"])); // Important!

$sql = "SELECT id, user_type FROM users WHERE firstname = :firstname AND password = :password";
$stmt = $conn->prepare($sql);
$stmt->execute(["firstname" => $firstname, "password" => $password]);
$res = $stmt->fetch();

// If $res is empty, the combination of firstname and password wasn't found.

有关密码安全性,请阅读:

  1. https://secure.php.net/manual/en/function.password-hash.php
  2. https://secure.php.net/manual/en/function.password-verify.php