gpt4 book ai didi

security - 当散列不适用时将密码存储在数据库中

转载 作者:行者123 更新时间:2023-12-03 06:31:11 25 4
gpt4 key购买 nike

Stack Overflow 上有很多关于如何存储用户密码的问题,当然一般建议是对密码进行哈希处理并比较哈希值。

但是,假设您正在构建一个收缩包装 Intranet 应用程序(例如 SharePoint),人们可以将其部署在自己的环境中。假设它需要用户名/密码组合才能通过 HTTP 访问外部服务(不支持依赖 API key 或联合安全性的解决方案)。

在这种情况下,我们无法对密码进行哈希处理,因为我们需要将原始密码传递给我们调用的 Web 服务。加密将是第二好的解决方案,但是我们将使用什么作为加密 key 呢?如果攻击破坏了数据库,他们可能首先可以访问用于加密数据的任何 key ?

如果您确实需要获取所存储密码的纯文本版本,您将如何以最安全的方式解决该问题?

最佳答案

这实际上是一个非常有趣的问题。我也来参加。

存储时应加密。不管你怎么看,它都比以纯文本形式存储要好。假设攻击者发现 SQL 注入(inject)广告转储数据库,但他仍然不持有加密 key 。另一方面,如果他能够访问服务器,他可能也会找到加密 key 。

为了改进它,您可以将加密 key 存储在服务器配置中。假设您使用的是 Apache,则可以使用 SetEnv .

在我的环境中,Apache 启动时需要输入加密 key ,然后将其存储为 en 环境变量,因此该 key 实际上并未存储在我的服务器上的任何位置。

没有办法,除非你要求用户输入 key 来解密密码,否则你将100%安全。

关于security - 当散列不适用时将密码存储在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8674182/

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