2012-09-23 99 views
-1

成功登錄後,我想將用戶名存儲在cookie中,如果用戶已在數據庫中標記爲管理員,我希望它同時存儲用戶名和密碼不知何故,我已經讀過,將密碼存儲在cookie中是不安全的,但如何才能做到這一點。這是一個jQuery手機網站。請參閱http://jsfiddle.net/jamesil/4VAJc/這是我迄今爲止所存儲的用戶名和密碼,並使用js。也許這需要在PHP中完成? 目前,如果我想展示一些東西只是給管理員,我包不管它是在這個如果滿足條件,存儲登錄名和密碼

<?php 
$is_admin=(isset($_SESSION) && isset($_SESSION['is_admin_flag']) && $_SESSION['is_admin_flag']=='t'); 
?> 
Some code 
<?php } ?> 

任何反饋是非常讚賞,也爲Im很新的PHP。 乾杯

+0

爲什麼你想在cookie中存儲admin的用戶名和密碼,這是一個危險的事情。 – WatsMyName

+0

我假設爲擴展會話,當然會進入數據庫。 –

+1

你需要什麼來存儲密碼?生成一個隨機數,記住它在一個會話和cookie中。然後比較它以拒絕破解嘗試 – Serge

回答

0

是的,在客戶端存儲密碼是一種非常不安全的做法,你應該在服務器端生成一個令牌。我的意思是使用任何加密算法的唯一標識符,即(md5,sha1,sha256)。在數據庫上

md5($_SESSION['username'] . $_SESSION['password'] . time() . microtime()) 

然後,存儲此令牌,並保存在用戶的cookie此令牌:

例如,創建級​​聯使用的用戶名和密碼信息以及一些隨機信息的令牌。

此令牌證明用戶已通過身份驗證。因此,在那之後,在客戶端,每個請求都應該在http頭文件或任何其他地方發送該令牌,並在後端將它與在db上排序的令牌進行比較。

如果它們匹配,那麼您確定該請求來自正確的人。

另一件事,使令牌在最後一次請求後的一段時間(可能是30分鐘)後過期。