Sails.js在哪里存储安全凭据?
我将数据库连接的用户名和密码存储在Sails.js在哪里存储安全凭据?,sails.js,configuration-files,Sails.js,Configuration Files,我将数据库连接的用户名和密码存储在 /config/connections.js 我应该在哪里存储更通用的东西,如AWS凭据 我想象着在某个文件中保存一个如下所示的对象 module.exports.aws = { key:'my key', secret: 'my token', bucket: 'my bucket' } 然后像这样使用它: req.file('image') .upload({ adapter:require('skipper-s3'), ke
/config/connections.js
我应该在哪里存储更通用的东西,如AWS凭据
我想象着在某个文件中保存一个如下所示的对象
module.exports.aws = {
key:'my key',
secret: 'my token',
bucket: 'my bucket'
}
然后像这样使用它:
req.file('image')
.upload({
adapter:require('skipper-s3'),
key:aws.key,
secret:aws.secret,
bucket:aws.bucket,
}, function whenDone(err, uploadedFiles) {
}
永远不要在源代码中存储凭据。使用环境变量:
{
secret: process.env.MY_SECRET
}
看看npm包吧,它很棒,因为它允许您定义一个文件,以便在进行本地测试时从中加载配置,但对于生产,它可以从环境变量中加载配置,而无需任何代码更改 是的,如果您查看AWS EB,AWS也会告诉您这样做。然而,一些系统限制了可以使用的环境变量的数量。这背后的原因是什么?如果我有一个脚本,在运行sails之前在生产环境中设置环境变量,这算是“在源代码中”吗?如果是在源代码控制中,那就是源代码。顺便说一句,这不是特定于sailsjs的,这是公认的最佳实践。我喜欢刚才在node.js源代码中描述安全管理凭据的最佳实践而被否决。