为什么JSON Web Tokens(JWT)应该使用环境变量进行签名?

时间:2015-11-11 02:30:12

标签: json node.js jwt

在各种教程中,我发现他们都说“JWT应该由环境变量签名而不是硬编码到应用程序中”。从安全角度来看,如果黑客能够访问我的Node.js应用程序的源代码,我假设他们也可以在服务器系统上看到环境变量?从Node中调用环境变量与硬编码应用程序的源代码相比,它本身更安全吗?

2 个答案:

答案 0 :(得分:2)

环境变量只能在正在运行的系统上使用。但是,您的源代码可能位于开发系统上的版本控制存储库(Github,Bitbucket等)中,可能位于许多备份位置等。

基本上,环境变量在一个地方,您的源代码可能是多个。

答案 1 :(得分:2)

这有几个原因。

1)JWT的签名密钥对于每个环境应该是不同的(例如,您不希望您的开发人员知道您的生产签名密钥)。最简单的方法是使用环境变量。

2)你应该从代码库中抽象出秘密的东西。所以这意味着配置文件或环境变量。

3)如果某人确实能够访问您的来源,他们至少不会获得该王国的钥匙。

4)关注点分离。