2012-10-31 39 views
0

我正在尋找安全的用戶認證到我的網站的最佳方式。php:使用cookie /用戶認證

我正在考慮以下解決方案:

第一次登錄:要求登錄數據 - >生成散列碼,包括IP地址,密碼和cookie的到期日期 - >存儲該哈希碼數據庫,而且到一個cookie 。

next login:檢查cookie,在我的用戶數據庫中查找hashcode。

那會是最安全的方式嗎?或者使用cookie會出現問題? 謝謝

+0

您是試圖更換PHP會話還是試圖實現「記住我」功能? –

+0

他嘗試添加身份驗證功能。 –

回答

1

通常,您會希望在瀏覽器中存儲一個cookie,指向數據庫中的某個記錄,表示他是已知的用戶。您需要確保的一件事是該Cookie ID是全球唯一的。所以,是的,對各種獨特屬性使用散列(或md5或sha1)很可能就足夠了。將unique放在數據庫中的該列上也是一個好主意。

另一個想法是在用戶表中爲cookieid設置一個列,在創建條目時確保該條目的唯一性。那麼每次用戶登錄時都要使用它。如果你想清理Cookies,如果你真的擔心安全問題,你可以每隔一段時間爲每個用戶使用後端腳本更改該列的所有值。

will there be problems using cookies?

除了新的HTML5功能是無法兼容所有瀏覽器,餅乾真的保存登錄信息的唯一途徑。去你使用的一個大網站,易趣,亞馬遜,wellfargo。擦除所有的Cookie和私人數據,然後去那裏登錄。然後查看你的cookies。他們在那裏放什麼?如果這對那些傢伙來說足夠好,那對你來說可能已經足夠了。

1

最好和最簡單的方法是使用php會話。

<?php 
session_start(); 
$_SESSION["user"] = "foo"; 
$_SESSION["ip"] = "123.132.123.132"; 
?> 
+0

不錯,但會話將過期,直到下次登錄或? – Fuxi

+0

會話只是指向存儲在服務器端的一組保存的鍵/值對的唯一Cookie。無論如何,會話都依賴於Cookie。它們也在瀏覽會話結束時終止。 – Landon

+0

當然。憑證保存在數據庫中,當用戶輸入他的用戶名和密碼時,會生成一個新的會話。 –