我对PHP或Web安全等内容不是很了解,但我强烈怀疑公司正在使用的某些软件生成的代码是不安全的。
以下是我担心的一些片段:
第一个问题:
$sql = "SELECT password, fullname FROM ".$mysql_table."
WHERE username = '".mysqli_real_escape_string($db,$_POST['username'])."'";
在PHP中,检索给定用户名的密码并进行比较,是否不好,还是更好的做法是在查询本身中使用密码,类似于这样:
... WHERE username = $username AND password = $hashed_password
第二个问题:
$crypt_pass = md5($_POST['password']);
if ($crypt_pass == $data['password'])
{
//LOGIN SUCCESS
}
如果只使用MD5哈希而不使用盐,是否足够安全?
第三个问题:
setcookie('username', $_POST['username'], time() + 3600*24*30);
setcookie('password', $_POST['password'], time() + 3600*24*30);
在cookie中存储明文用户名和密码是否是一个好主意?
这段代码是否存在安全隐患,如果有,应该采取什么措施?