限制登录,
是否有必要将非现有用户的失败尝试插入数据库? 如果没有采取任何行动,当有人猜测数据库中现有的用户名是否存在限制而不是现有用户名时,这是不是存在安全隐患?
如果有必要,在风险较低时如何处理删除?
//If the username does not exist do the below:
<?php
$stmt= $conn->prepare('SELECT * from failed_logins WHERE name="'.$_SESSION["Name"].'"');
$stmt->bindParam(1, $name);
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
while($row = $stmt->fetch()) {
$attempted = $row['attempted'];
}
$atime = strtotime($attempted);
$current = time();
if(($current-$atime) > 1500) {
$del= $conn->query("DELETE FROM failed_logins WHERE name = '".$_SESSION['Name']."'");
$del->execute();
}
?>
答案 0 :(得分:0)
从安全角度来看,您应该绝对限制每个用户的失败登录尝试次数。如果您不这样做,那么您是否认真地将您的网站暴露给brute-force attacks。例如,在3次登录尝试失败后,根据用户的IP地址将用户锁定24小时。
我不会删除任何与登录尝试失败相关的数据,例如,为了进行取证调查,您可能会每6个月定期执行一次。