什麼是創建安全用戶身份驗證功能的最佳方式?下面是一個php函數的核心,它接受用戶名和密碼並根據數據庫進行檢查。最安全的php用戶身份驗證功能
我特別感興趣的是查詢及其返回值。是否使用'else if($ query1)'驗證和設置會話變量的最佳方式?另外,最好爲會話變量設置什麼值?電子郵件地址,用戶名,布爾變量,主鍵索引等?
$query1 = mysql_fetch_array(mysql_query("SELECT primaryKey
FROM loginInfo
WHERE email = md5('$email')
AND password = md5(CONCAT('$password',salt))
LIMIT 1"));
if (!$query1)
return false;
else if ($query1) {
$_SESSION['userNumber'] = $query1[primaryKey];
return true;
}
else
return false;
sha1是目前在PHP中SHA家族中唯一的散列函數嗎? – Tableking 2010-11-20 05:23:34
否。請參閱['hash()'](http://php.net/manual/en/function.hash.php)和['hash_algos()'](http://us.php.net/ manual/en/function.hash-algos.php)函數。如果您的數據庫不支持您選擇的相同散列函數,則可能需要將值提取到PHP腳本中,然後再運行另一個查詢......所以請仔細選擇。在我看來,SHA1目前非常安全。 – cdhowie 2010-11-20 06:30:07