如何編寫安全用戶名&在PHP中進行密碼驗證?如何在PHP中編寫安全的用戶名和密碼驗證以防止SQL注入?
我使用密碼($ pass)的MD5和用戶名($ name)的字符串,並將這些代碼寫入PHP以進行用戶帳戶驗證。
$post_vars = $_POST;
if (isset($post_vars['name']))
{
$name = $post_vars['name'];
$pass = md5($post_vars['pass']);
$dbConn = db_open();
$sql = "select `password` from `user_table` where `user_name` = '$name' limit 1;";
echo $sql;
$sth = $dbConn->prepare($sql);
$sth->execute();
$row = $sth->fetch();
if ($row !== false)
{
$verify = $row['password'];
if ($pass == $verify)
{
$_SESSION['isLoggedIn'] = true;
header('Location: ' . _DEBUG_URL_);
}
else $iframeURL = _LIB_URL_ . 'accessdenied.htm';
}
else echo 'No results found!';
}
這是查詢被破解通過SQL注入的方法,以及它如何被黑客攻擊?我爲MySQL使用PDO。
"select `password` from `user_table` where `user_name` = '$name' limit 1;"
也可以使用'密碼hashing',而不是'md5'。你也沒有正確使用'準備' –
正如Alive to Die所說,使用密碼散列!你可以谷歌「md5」破解並輕鬆破解md5哈希。 – bedtime21
我想知道這是我的查詢是不安全的或不是如何? –