繁体   English   中英

我应该如何在Cookie中存储用户的LDAP密码?

[英]How should I store a user's LDAP password in a cookie?

所以我有这种黑匣子身份验证方法,它是从帐户人员那里传给我的,基本上等于ldap_bind($connection, $username, $password) 但是,当然,我希望我的用户能够一次登录30天。

幼稚但不安全的处理方式是将用户名和密码存储在纯文本cookie中,然后在每次用户访问时使用我的黑盒进行验证。

通常有效但不因我的黑匣子而行的方式是将用户密码存储在数据库中(或将其存储为散列的?),然后将散列的版本存储在cookie中,然后比较这些值。 这在这里不起作用,因为我的黑匣子要求输入实际密码,而不是哈希密码。

我目前的想法是某种加密(与散列相反)。 但是由于这显然是一个普遍的问题,我想我最好先问一下周围是否有更好的解决方案,或者如果没有,您对加密/解密方法的建议是什么。

这不会真正回答您的问题, 但是您不应存储用户密码,甚至不进行加密。

如果确实需要这样做,并且用户知道您正在这样做。 然后将密码存储在应用程序的数据库中(当然是加密的),然后向用户发送带有哈希的Cookie。 当用户想要登录时,将哈希与您存储的哈希进行比较,然后才将未加密的密码发送到ldap。 切勿将密码(甚至未加密)发送到用户的计算机。

同样,这是一个非常糟糕的做法。 如果ldap不允许您存储会话/密码,则可能有充分的理由。

当用户登录时,给他们一个随机生成的“会话cookie”(严格来说不是会话cookie,因为它的持续时间长于浏览会话)并存储以下元组:

user_id | cookie_id

然后将cookie_id连接起来,将user_id与您的用户表一起加入,然后退出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM