【发布时间】:2018-03-25 03:19:12
【问题描述】:
我正在构建一个聊天机器人,以便在收到订单时自动发送电子邮件。
我希望发件人是公司的电子邮件,它启用了自定义域和 G-Suite。
有什么方法可以安全地做到这一点吗?
如果我使用nodemailer 并使用.env 变量作为发件人密码和电子邮件,它是否足够安全?
因为我怀疑把密码放在别人的服务器上。
【问题讨论】:
-
环境变量通常用于在许多大公司的生产环境中存储机密。有更安全的选择,但最终是关于访问。谁是您将其部署到的盒子上的根?如果不是你,那么这是不安全的。如果任何人都可以访问运行该程序的用户,那么这是不安全的。理想情况下,您部署在您完全控制且只有您有权访问的地方。将机密存储在文件中可能是安全的,但如果您将文件权限弄错,那么盒子上的其他用户可以读取它。
-
@Catalyst 我正在将它部署到 Heroku.. 它安全吗?我刚刚通过 Gmail 发现了
app password。我以前从未使用过它,只知道关于应用程序密码的一两件事,所以我可以在我的应用程序上使用它并且仍然保持安全吗?或者,有什么方法可以通过 API 发送电子邮件(GSuite),所以我不需要告诉密码(只是 api 密钥)? -
您在 Heroku 上可能没问题 - 他们采取措施防止跨用户污染,我怀疑即使是这种情况,任何人都可以专门针对您,我无法进入 GSuite 控制台查看- 但我猜你可以通过 api 令牌发送电子邮件。如果此处提到的控制台中没有任何 API 密钥 - support.google.com/a/answer/60757?hl=en,请查看 npmjs.com/package/googleapis 以通过 gmail api 发送。 developers.google.com/gmail/api/quickstart/nodejs
-
@Catalyst 感谢您的回答。无论如何,我在 npmjs 文档以及快速入门文档中都找不到有关发送电子邮件(Gmail)的任何信息。似乎是关于身份验证、谷歌驱动器等(我找不到关于发送电子邮件的信息)
-
很抱歉没有更直接地指出来自-developers.google.com/gmail/api/v1/reference/users/messages/…的JS示例
标签: node.js email security environment-variables nodemailer