如何在我的网站上安全地存储用于第三方服务的密码

How to securely store a password used for 3rd party service on my website

我有一个使用 nodeJS 后端创建的网站,但我目前遇到了安全问题。

为了让我的网站正常运行,我需要使用需要用户名、密码和安全代码的第 3 方服务登录。我必须能够全天多次自动登录多个帐户,我的网站才能正常运行。我没有存储任何用户信息,这是我自己的帐户信息。

显然,将所有内容以纯文本形式存储在我的 类 中是个坏主意,那么存储我的登录信息的最佳方式是什么?拥有一个只能通过内部数据在本地访问的数据库是一个不错的选择吗?正如我之前所说,它必须能够自动登录,所以我不确定对其进行哈希处理是否可行,因为无论如何代码都必须对其进行解密,所以如果我的代码被公开,这真的很重要吗?

在此先感谢您的帮助。

存储密码可能不是一个好主意,因为即使你加密了它, 加密密钥仍在服务器中的某个位置。 您是否检查过第 3 方服务是否以 oauth 或等效方式提供身份验证流程?

你基本上是在问“我如何在后端存储秘密?”。

在本地,您可以使用一个 .env 文件,该文件未提交版本控制,用于存储您的秘密(即“USERNAME=JBallin”)。

然后您将使用类似 dotenv 的方法将这些值提取到环境变量中并在您的后端使用它们。

在生产中,您会将这些环境变量存储在服务器上(说明取决于部署环境)。

有一项新技术 - 密码强化加密 (PHE) 协议 - 一种强大且革命性的加密技术,可提供更强大和更现代的安全性,保护用户数据并降低与弱密码相关的安全风险。

Virgil PureKit allows 开发人员与 Virgil PHE 服务交互,以保护数据库中的用户密码和敏感个人身份信息(PII 数据)免受 offline/online 攻击并使被盗 passwords/data 无用如果您的数据库遭到破坏。 Virgil 和攻击者都不知道用户的 passwords/data.

我为您提供了 link,您可以在其中找到以下语言的代码片段:Go、PHP、C#、Java