PHP登录页面安全审计
我正在对我的登录逻辑进行安全审计,并试图找出哪个密码检查更安全,以及更好的算法。以下是伪PHP代码中的两种方法: 方法一:PHP登录页面安全审计,php,security,authentication,Php,Security,Authentication,我正在对我的登录逻辑进行安全审计,并试图找出哪个密码检查更安全,以及更好的算法。以下是伪PHP代码中的两种方法: 方法一: $bcrypt = new Bcrypt(); $password_hash = $bcrypt->hash($_POST['password']); $result = mysqli_query_check_login($username, $password_hash); if(mysqli_numb_rows($result) > 0) { //i
$bcrypt = new Bcrypt();
$password_hash = $bcrypt->hash($_POST['password']);
$result = mysqli_query_check_login($username, $password_hash);
if(mysqli_numb_rows($result) > 0) {
//is valid
}
方法二:
$bcrypt = new Bcrypt();
$result = mysqli_query_check_login($username);
//Note $result->password is a bcrypt hash
if($bcrypt->verify($_POST['password'], $result->password)) {
//is valid
}
区别在于方法I
运行bcrypt散列,然后在mysql查询中发送用户名和散列密码Method II
仅通过用户名从mysql获取哈希密码,然后在PHP中比较这两个值
有什么安全区别吗
谢谢。这些实际上是一样的东西。使用这两种方法都不应该有任何安全隐患 这些实际上是同一件事。使用这两种方法都不应该有任何安全隐患
方法II
可能会使获取用户信息和更新类似“登录尝试失败”计数器的内容变得更简单。我所看到的方法I
的大多数实现仅仅依赖于其中user=$login和password=$password
如果密码不匹配,则不选择用户方法II
可能会使获取用户信息和更新类似“登录尝试失败”计数器的内容变得更简单。我所看到的方法I
的大多数实现仅仅依赖于其中user=$login和password=$password
如果密码不匹配,则不选择用户