我有一個(我想不會這麼少見)場景:PHP:堅持LDAP連接跨請求
我的PHP應用程序查詢LDAP服務器來處理身份驗證。 LDAP服務器只接受認證訪問,所以第一個ldap_bind()調用實際上用作認證機制並檢索登錄用戶的基本信息。
到目前爲止這麼好。但是當我想使用LDAP服務來執行其他查詢時(例如登錄用戶或其他用戶的額外信息),我必須再次通過LDAP身份驗證。
我不要想要在會話中存儲用戶的密碼,因爲它可能會泄漏,但我不能讓用戶在每個請求上進行身份驗證,以便爲LDAP服務器提供憑據。
所以我想到了以下解決方案:
- 商店LDAP連接手柄會議,所以我不必提供憑據每次。這是行不通的,因爲句柄是一個資源,無法序列化爲會話存儲。
- 在會話中存儲密碼,但加密。加密種子可以來自一些易變的變種,例如,會話ID的散列,以便它不會被存儲在var中,並且永遠不會泄漏。
<Your idea here>
有什麼想法?
感謝
克
不幸的是我沒有對LDAP服務器的控制。 對於第一種情況你是對的,但最重要的用途是獲取其他用戶的信息,因此無法緩存。 – 2013-03-14 19:58:39
如果是這樣的話,你是否看過將[RADIUS](http://freeradius.org/)添加到組合中?可能有一些現有的解決方案使用[EAP](http://en.wikipedia.org/wiki/Extensible_Authentication_Protocol),這將緩解您對密碼在應用程序中的安全性的擔憂。 ref:http://freeradius.org/features/eap.html – ficuscr 2013-03-14 20:07:14