如何保护用于进行REST调用的应用程序的凭据

时间:2019-06-26 14:33:37

标签: node.js rest security

我有一个nodejs应用,可以为用户进行REST调用。 REST调用需要基本身份验证,并且用户无需提供此信息,因为该应用程序将为用户进行调用。

在这种情况下,保护那些api凭据的最佳实践是什么?我绝对不希望凭据在源中为纯文本。我还认为我应该远离将凭证存储在环境变量中。由于该应用程序本身不对凭据进行身份验证,因此我认为我不应该使用oauth或令牌。

如果我想将凭据存储在数据库或类似的东西中,这似乎也很麻烦22,因为那时我还必须确保这些api调用的凭据。

1 个答案:

答案 0 :(得分:0)

在存储凭证的任何地方,您都必须考虑可以使用哪些凭证。不要将它们存储在源代码中是一个好主意,因为开发人员以及有权访问源代码控制的任何人都可以读取凭据。

环境变量可用于此目的,配置文件也可用于此目的。问题仍然在于环境变量,如何设置这些变量?您是在某个地方手动运行export吗?如果没有,可能仍然有一个脚本或配置文件填充其中。谁可以看到这些文件?

在unix系统上运行的程序以其自己的用户名(具有有限的访问权限)运行,并且所有秘密文件都具有文件模式600并不少见。 (例如,只有当前用户才能看到它。)

如果您在类似AWS或竞争对手的产品上运行,则这些系统还具有秘密管理服务,但这可能会或可能不会适得其反,具体取决于您的需求。