gpt4 book ai didi

php - 安全地将用户凭据存储在数据库中,用于 PHP Web 应用程序

转载 作者:搜寻专家 更新时间:2023-10-31 21:17:45 24 4
gpt4 key购买 nike

我构建了一个 Web 应用程序,现在需要存储用户凭据以访问另一个系统。 (尽管我很想这样做,但不幸的是我在这件事上别无选择。)

我的 Web 应用程序通过 LDAP 与 Windows 域 Controller 交互以验证用户帐户。因此,当用户登录到我的应用程序时,应用程序会检查 LDAP 以确保他们是有效用户并且密码正确。一旦通过身份验证,用户的杂项数据将从 MySQL 数据库加载。

现在,我需要以某种方式在这个数据库中存储这个其他系统的用户名和密码,我正在探索最安全的方法来做到这一点。

我考虑过的一种方法是使用用户的域密码(由 LDAP 验证)作为加密 key 来加密此其他系统的凭据。这样,如果有人确实以某种方式获得了数据库,它就没有多大用处,因为每条记录都将使用不同的(希望无论如何) key 加密,并且该 key 不会出现在 Web 应用程序本身的任何地方。这种方法的问题在于,当用户更改密码时,为其他系统保存的凭据将不再有效。然后我将不得不再次提示输入其他系统凭据。我不反对这样做,前提是没有其他方法。

有什么想法吗?感谢您的宝贵时间。

编辑:我刚刚想到的另一件事是基于为 LDAP 公开的一些其他数据进行加密。 objectGUID 是一个看起来很有前途的值(也可能对域中的任何人都不安全),我假设它是帐户的 GUID。我可能会使用这个加密 key 。域用户或其他人是否容易找到它?

编辑#2:我发现任何域用户都可以通过 LDAP 轻松查找 GUID,因此我决定停止使用该方法。除非有其他建议,否则我可能必须根据用户密码进行加密。

最佳答案

您可能想看看这个其他系统是否支持任何执行“单点登录”的标准方法。这样你就不必重新发明 wheel .

关于php - 安全地将用户凭据存储在数据库中,用于 PHP Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4899876/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com