我有一个(我认为并不少见)场景:
我的 PHP 应用程序查询 LDAP 服务器来处理身份验证。LDAP 服务器只接受经过身份验证的访问,因此第一个 ldap_bind() 调用实际上用作身份验证机制并检索登录用户的基本信息。
到目前为止,一切都很好。但是当我想使用 LDAP 服务来执行其他查询(例如登录用户或其他用户的额外信息)时,我必须再次通过 LDAP 身份验证。
我不想将用户的密码存储在会话中,因为它可能会泄漏,但我也不能让用户在每次请求时进行身份验证,以便为 LDAP 服务器提供凭据。
所以我想到了以下解决方案:
- 将 LDAP 连接句柄存储在会话中,因此我不必每次都提供凭据。这是行不通的,因为句柄是一种资源,不能为会话存储而序列化。
- 将密码存储在会话中,但已加密。加密种子可以从一些易失的变量中派生出来,例如会话 ID 的散列,这样它就不会存储在变量中并且永远不会泄漏。
<Your idea here>
有什么想法吗?
谢谢
通用汽车