【发布时间】:2013-07-23 14:37:02
【问题描述】:
我正在构建一个应用程序,我需要为其存储用户的登录凭据以用于 3 方服务。与第 3 方服务的通信是通过 https GET 请求完成的。
据我所见,查看this one 之类的帖子,对于执行此操作的最佳做法没有明确的答案,而且该帖子中讨论的具体方法至少都有一些不足之处。
p>所以我的一个想法是,也许可以通过“预加密”第 3 方请求的查询字符串并将加密数据存储在我的数据库中来代替存储用户的数据来解决这个问题直接凭据。通过这种方式,我可以以加密形式存储凭据,但不必担心密钥被泄露,因为它由第 3 方持有,而不是我。如果我的数据库被入侵,入侵者将不会得到比通过数据包嗅探获得的更多的东西。
我似乎找不到任何人这样做的任何例子,所以我想就社区是否认为这是一种合理的方法提供反馈。除此之外,关于如何做到这一点的一点帮助会很棒。我正在 node.js/express 中构建我的应用程序,目前我只是使用 https 模块来处理与第 3 方的通信,但显然我必须在较低级别进行此操作接近。
基本流程是:
- 执行与 https.request 相同的操作,以建立与第 3 方的 ssl/tls 连接并加密包含用户凭据的查询字符串
- 不要将加密数据实际发送给第 3 方,而是将其存储在我的数据库中
- 稍后,用存储的数据“重建”https连接并发送给第3方,处理响应,获胜
【问题讨论】:
标签: https credentials