安全的node.js restful API

时间:2014-05-03 20:20:30

标签: javascript node.js security rest express

我想确保一个宁静的Api,我想尽可能保持简单,并且无国籍。

存储,生成和验证api密钥的最佳方法是什么?我正在考虑使用node-uuid生成密钥,将它们存储在redis中,然后使用passport-apikeys对它们进行身份验证。

这会有用吗?或者是否有另一种我缺少的最佳解决方案。

我一直在阅读这篇文章很多,但很多资源都缺少实际的实现,比如post

1 个答案:

答案 0 :(得分:2)

你的解决方案对我来说听起来不错,但恐怕不够安全。我建议您使用密钥签署请求,以便保护您的API免遭篡改。因此,您需要为将要使用您的API的用户生成密钥对,例如access idaccess key。 HTTP请求将包含两个部分,一个是access id,另一个是通过access key计算整个请求内容的签名。但是access key永远不应该通过HTTP传递。因此,在服务器端,您可以通过Redis中存储的access key检查HTTP请求的签名。

您可以使用Node.js加密模块。 http://nodejs.org/api/crypto.html#crypto_class_hmac

希望这有点帮助。