我真的很掙扎,應該如何隱藏我的鑰匙。我應該在哪裏存儲我的Node.js應用程序的密鑰?
我需要隱藏的兩個密鑰是secrets.crypto和secrets.jwt ...我計劃使用Elastic Beanstalk在AWS上託管我的應用程序。
此外,我不知道在哪裏放置我的密鑰以訪問Dynamodb和S3存儲桶等內容。
exports.generateToken = (type, user) => {
if (!_.isString(type)) {
return undefined;
}
try {
//Turn the json object of the current user's id and the type of token into a string
var stringData = JSON.stringify({
_id: user._id,
type: type
});
//Take the json string and encrypt it with a secret then turn it back into a string
var encryptedData = cryptojs.AES.encrypt(stringData, secrets.crypto).toString();
//Take the encryptedData and turn it into a token with a secret
var token = jwt.sign({
token: encryptedData
}, secrets.jwt);
return token;
} catch(e) {
return undefined;
}
};
這也是一種「安全方式」 – ConnorB
eb setenv調用將通過SSL連接將密鑰名稱和值發送到AWS API,因此它是設置值的安全方式。我相信您也可以通過AWS Web控制檯執行相同的操作。只要您限制訪問您的AWS賬戶,它就是「安全」的。如果您希望獲得更多有關這些值的安全性,可以使用AWS Key Management Service(KMS)進行研究。您將不得不在構建應用程序時使用該服務,因爲它與Elastic Beanstalk沒有緊密集成。 –