此代码段的漏洞是什么?

时间:2019-06-03 06:06:47

标签: php mysql

$stmt = $con->prepare("SELECT * FROM login WHERE username =? AND password = ? ")

$stmt->bind_param("ss", $username, $password)

$stmt->execute();

1 个答案:

答案 0 :(得分:3)

您的代码段中应该没有漏洞,至少从SQL注入的角度来看应该没有漏洞。但是,我看到另一个问题,这似乎是您正在将明文密码存储到login表中。相反,请考虑遵循以下更安全的模式:首先用盐对用户密码进行哈希处理,然后将该哈希值存储在表中。然后,当用户登录时,您将再次对输入的密码进行哈希处理,以与login表中存储的密码进行比较。这样可以避免恶意者意外访问每个用户密码的风险。