Php 如何创建仅限密码的登录表单?
尝试重新配置一个最初需要用户名和密码才能登录的登录,而只是接受一个密码才能登录——原因我不打算详细说明。尝试登录时,我不断收到默认错误“无效密码”。这只是一个概念,所以请忽略任何安全漏洞等,只是试图获得访问仅使用密码 助教Php 如何创建仅限密码的登录表单?,php,hash,passwords,Php,Hash,Passwords,尝试重新配置一个最初需要用户名和密码才能登录的登录,而只是接受一个密码才能登录——原因我不打算详细说明。尝试登录时,我不断收到默认错误“无效密码”。这只是一个概念,所以请忽略任何安全漏洞等,只是试图获得访问仅使用密码 助教 检查两个用户是否使用相同的密码。。。($count>1)密码是否仍将链接到用户?脚本中是否有session\u start()?此外,您无法通过密码选择任何内容,因为您试图将纯文本密码(可读)与哈希值进行比较,其中password='$password'将永远不会为真,因为您
检查两个用户是否使用相同的密码。。。($count>1)密码是否仍将链接到用户?脚本中是否有session\u start()
?此外,您无法通过密码选择任何内容,因为您试图将纯文本密码(可读)与哈希值进行比较,其中password='$password'
将永远不会为真,因为您的数据库中有哈希密码,用户正在发送纯文本。“这只是一个概念,因此请忽略任何安全漏洞等。”首先编写安全代码。除其他事项外,在这种特殊情况下,不可能以不安全的方式编写它-您不能对像密码\u散列那样的bcrypt散列执行选择位置
,因为散列每次都会更改。这里的“我懒得安全地写”意味着写两次。即使在相同的密码中,密码哈希也是唯一的。那个数据库查询不起作用。您最好使用用户名或电子邮件进行查询,然后对传递的密码和检索数据库密码执行密码验证(..)。
<?php
require_once 'dbconnect.php';
if (isset($_SESSION['userSession'])!="") {
header("Location: home.php");
exit;
}
if (isset($_POST['btn-login'])) {
$password = strip_tags($_POST['password']);
$password = $DBcon->real_escape_string($password);
$query = $DBcon->query("SELECT user_id, password FROM tbl_users WHERE password='$password'");
$row=$query->fetch_array();
$count = $query->num_rows;
if (password_verify($password, $row['password']) && $count==1) {
$_SESSION['userSession'] = $row['user_id'];
header("Location: home.php");
} else {
$msg = "<div class='alert alert-danger'>
<span class='glyphicon glyphicon-info-sign'></span>
Invalid Password !
</div>";
}
$DBcon->close();
}