【发布时间】:2021-04-28 20:52:42
【问题描述】:
我在 IBM Cloud Function 中获得了一些 Node.js 代码。我已将其作为 Web 操作启用,并通过 Watson Assistant 的 webhook 调用该函数。
将我的 API 密钥和其他密码作为可读文本保存在 IBM Cloud Function 中是否安全?或者我应该如何参考密钥和密码?
这里有两个摘录作为例子:
function main(params) {
if (params.actionJoke == 'joke') {
const optionsDad = {
method: "GET",
uri: "https://dad-jokes.p.rapidapi.com/random/joke",
json: true,
"resolveWithFullResponse": true,
"headers": {
"x-rapidapi-host": "dad-jokes.p.rapidapi.com",
"x-rapidapi-key": "myapiCODEgoesHERE",
"useQueryString": true
}
在第一个示例中,我可以使用params.apiKey 代替文字键。我在左侧菜单“参数”中定义了参数。但我不知道这在安全性方面是好是坏?
但是,对于我的第二个示例,此方法不起作用。或者至少我不知道如何在语义上正确地做到这一点。
let smtpConfig = {
host: 'mail.myz.net',
port: 122,
secure: false, // use TLS
auth: {
user: 'mymail@xyz.com',
pass: 'mypassword'
}
【问题讨论】:
-
这些选项都不是很好;从理论上讲,您应该能够将您的代码检查到版本控制系统中,而不必担心泄露机密。此外,您应该能够在不接触代码的情况下更改您的秘密。他们应该提供一种设置节点环境变量的方法,然后您可以使用
process.env.ENVIRONMENT_VARIABLE_NAME访问它们。 -
@Nick 谢谢!也许更了解 IBM 云功能的人可以帮助我提供一些文档或资源,特别是针对这个平台 - 我想需要一个好的方法。或者您知道任何可以帮助我为 cloud fn 设置版本控制的链接吗?
标签: node.js security ibm-cloud ibm-cloud-functions