該教程教會你以非常不安全的方式做事。將這種認證數據存儲在cookie中是非常糟糕的,特別是使用諸如「用戶名」和「密碼」這樣高度明顯的名稱。
更好的(也比「教程」教導的更安全)是使用常規的PHP會話。 PHP將負責爲你設置會話cookie,並且你所做的只是將你的認證數據存儲在會話中。任何時候都不會將這些數據發送給用戶,除非您自己做。會話cookie的唯一來源是會話cookie,它是一個隨機垃圾串,「唯一」標識用戶爲PHP。
一旦你得到了部分實現,那麼你把一個小片段,在你所有的登錄要求的頁面的頂部,看起來是這樣的:
<?php
session_start()
if ($_SESSION['loggedin'] !== TRUE) {
header("Location: http://example.com/login.php");
echo 'You must log in first';
exit();
}
?>
<h1>Welcome back, <?php echo $_SESSION['username'] ?></h1>
除非你在運行嚴重錯誤配置的PHP或PHP版本,在遠離石器時代的情況下,遠程用戶無法以某種方式設置「登錄」標誌,而無需先通過代碼。
堅持'$ _SESSION',沒有理由直接與cookie進行交互。 – meagar 2010-10-18 21:13:11