gpt4 book ai didi

node.js - 如何存储第三方凭据(无 api、无 OAuth)以供自动重用?

转载 作者:太空宇宙 更新时间:2023-11-04 03:26:55 24 4
gpt4 key购买 nike

我已经阅读了几个 Stack Overflow 线程,但我仍然无法确定什么是适合我的情况的最佳选择。而且是最安全的。

故事是这样的。我的网络应用程序旨在帮助用户自动获得某些第三方网站上可用的一些数据的概述。我需要为每个用户存储一些第三方凭据。大约每天晚上,我的服务器都会代表用户连接到第三方服务并检索所需的数据。

大多数第三方网站都没有实现任何 API 或 OAuth 机制,因此我正在考虑进行一些网络抓取。

我在很多地方读到,将凭据存储在数据库中并不是一个好主意 - 特别是因为我的应用程序需要访问密码(因此必须以我可以轻松重用它的方式对其进行加密)。

所以,我还有两个选择:

  1. 每当我访问(通过网络抓取)第三方服务时,我都会在服务器上存储该服务发出的 Cookie,以供将来重复使用。我将它们加密并保存在数据库中,仅在需要时才解密。问题在于,一段时间后 cookie 可能会被拒绝过期,因此自动过程将不再起作用。
  2. 我将凭据存储在环境变量中。我将使用 Node.js 和 Heroku。这是我在另一个 SO 线程中发现的想法。但我想知道这个想法的安全性。 真的安全吗?除了我之外没有人可以访问它们吗?如果我接触到很多用户怎么办?比如 1000 个用户,有 10 个服务。这是要存储在环境变量中的 10000 个凭据。这似乎不是一个好主意。

我在 Stack Overflow 上发现了两个有趣的问题,但它们并不 100% 适合我的用例。

最佳答案

我添加了另一个答案,因为也许这个答案对你有用。您说您网站的主要目标是概述第三方应用程序。但是,如果您不是每晚更新此概述,而是在用户登录时更新它,该怎么办?它改变了一切,因为您可以使用(您网站的)用户密码作为主密码来加密(使用 AES)所有其他密码。

如果你这样做,你的服务器和客户端之间的通信必须使用 SSL pinning 进行加密,因为攻击者可以执行 MITM,获取主密码和数据库中存储的所有其他密码......(即使在实践中这非常困难,因为你需要破解客户端和服务器)

关于node.js - 如何存储第三方凭据(无 api、无 OAuth)以供自动重用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43474267/

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