我正在使用的后端服务要求我在API头中传递安全令牌。因此,我正在寻找一种安全的方式来使用React.js在前端存储私钥和其他API令牌。
我已经探索了几个选择,
- 将私钥存储在配置文件中并将其包含在捆绑包中。最简单的选择,但非常糟糕,因为它很容易暴露,原因显而易见。
- 拥有一个单独的后端服务,添加所需的头并将请求转发到实际的后端服务。这可能会起作用,但它会增加其他问题,如额外的网络延迟,新服务的安全性
- 有一个代理服务(后端为前端模式)。同样,额外的网络延迟和安全性可能是一个问题。
- 将密钥存储在会话或本地存储中-当用户登录时,在成功认证后从登录API获取私钥,并将其存储在浏览器的会话存储中,并在注销时清除。
我喜欢从安全的后端API获取密钥的选项。这是一个安全的选项吗?有任何风险吗?这里对我来说最好的方法是什么?还有我缺少的其他选项吗?
先谢了。
2条答案
按热度按时间umuewwlo1#
溶液
n3ipq98p2#
我有一个建议。与其将私钥存储为纯文本,不如用密码加密私钥(此密码不存储在任何地方),每当需要检索私钥时,请用户首先输入密码,然后用密码解密私钥,然后用于签署交易或使用它做任何你想做的事情。
此外,我认为使用AWS Secrets Manager(Check here)来存储私钥将是一个强大的选择。使用这种服务将使您从通过网络保护敏感数据的头痛中解脱出来,并且它也没有那么多的网络延迟。
它并不是真的在UI中存储密钥,但我认为它可以很好地与您的用例一起工作。告诉我您对此的见解,我对这个主题也很感兴趣。