所以我有這個黑匣子認證方法,從帳戶的人傳給我,基本上相當於ldap_bind($connection, $username, $password)
。但是,當然,我希望我的用戶能夠一次登錄30天。我應該如何將用戶的LDAP密碼存儲在cookie中?
天真但不安全的方式要處理這個問題,是將用戶名和密碼存儲在純文本cookie中,然後每次用戶訪問時使用我的黑盒驗證這些。
通常有效但不會因爲我的黑匣子的方式是將用戶的密碼存儲在數據庫中(或存儲它散列?),並將散列版本存儲在cookie中,然後比較值。這在這裏不起作用,因爲我的黑匣子要求實際密碼,而不是散列密碼。
我目前的想法是某種加密(而不是哈希)。但是,由於這顯然是一個常見問題,我認爲我最好首先問一下,看看是否有更好的解決方案,或者如果不是的話,你會爲加密/解密方法提出什麼建議。
這不太好,因爲我不想保留用戶名/密碼數據庫---這是LDAP的工作。我只想驗證用戶發送給我的用戶名/密碼組合是否經過了LDAP驗證,如果是,請讓他們保持登錄狀態一段時間。 在cookie中加密的密碼是一個巨大的安全問題? – Domenic 2009-11-15 18:50:22
Cookie中令人遺憾加密的密碼是一個很大的安全問題,所以你不應該這樣做。 但是,我想你誤解了我。你不會在你的應用中驗證用戶名和密碼。您將存儲加密密碼+用戶名和密碼+用戶名的散列。發送散列作爲cookie。然後,如果用戶未登錄獲取cookie值,請檢查密碼/用戶名的散列,如果一切正常,則將它們發送到ldap。同樣,如果LDAP不支持自動登錄,那麼您就可以執行所有操作。 (或告訴用戶使用瀏覽器的「保存密碼」..) – 2009-11-16 08:50:11