我一直在调查这几天,并遇到很多SO问题,但我仍然不太确定。内部REST API安全
我正在用Node.js创建一个REST API,它将用于Web应用程序和移动应用程序,该应用程序仅用于应用程序的后端而不用于其他开发人员。
我目前的担心是安全我知道还有其他方式,如OAuth等,但我想知道如果我目前的方法是足够安全的。
“客户端”使用Node中的crypto.createHmac('text', 'secret');
方法创建HMAC-SHA1令牌,该方法包含一个API密钥和一个秘密。秘密内置于代码中,而当用户登录该应用程序时,先前已从数据库中检索到API密钥。客户端然后发送此令牌以及用户ID。
然后,REST服务器检索已发送的用户ID的API密钥,然后使用刚刚检索到的API密钥和秘密创建HMAC-SHA1标记。然后它检查它们是否相同,然后继续处理请求。
我不介意它是否“重新发明轮子”或其他什么,它更多的是体验。如果这种方法不安全,我想知道为什么。
我不确定HMAC步骤甚至是必要的。除非您期望入侵者能够窃听您可能加密的服务器到服务器通信,为什么不将您的共享密钥和API令牌作为消息的一部分发送? –
@AndrewLavers是的,我想知道是否需要hmac,这只是我在研究时看到的几次弹出。只是这个话题非常有见地,而且很难找到真正需要的内容,而不是过度警惕。 – Emobe
@AndrewLavers虽然我很想知道它会被移动应用程序访问,但他们能够读取共享密钥吗? – Emobe