gpt4 book ai didi

javascript - 这种通过 Node 发送电子邮件的方式不安全吗?

转载 作者:行者123 更新时间:2023-12-01 01:43:16 25 4
gpt4 key购买 nike

我知道这个问题可能看起来很愚蠢,但我对后端和安全性还很陌生。在我为客户构建的网站上,我制作了一个表单来向他自己提交电子邮件。不过,为此,我最初使用他的企业电子邮件和密码来执行此操作。我知道这非常不专业,并且在我的脑海中提出了安全问题。有人可以以某种方式访问​​我的入口点 .js 吗?如果是这样,最好使用电子邮件 API,例如 mailgun 和 sendGrid,对吗?

我正在做这样的事情:

//GMAIL
var smtpTransport = nodemailer.createTransport(smtpTransport({
service: 'Gmail',
auth: {
user: '*****',
pass: '*****'
}
}));

app.post("/send", function(req, res) {
var mailOptions = {
from: req.body.from,
to: "######",
subject: 'Client',
text: "----Name of the buyer: " + req.body.name + "\n ----E-mail from buyer: " + req.body.from + "\n ----Message body: " + req.body.body
};
smtpTransport.sendMail(mailOptions, function(error, info) {
if (error) {
return console.log(error);
}
console.log('Sent: ' + info.response);
});
res.redirect("/contact");
});

最佳答案

我在为社区组织的博客上开发简单的联系表单时遇到了同样的情况。我发现它是环境变量的完美用例。

不确定您正在运行什么操作系统,但您可能会考虑从命令行执行类似的操作(作为普通系统用户,而不是 root):

$ export CLIENT_EMAIL='thedude@gmail.com' ; export CLIENT_PASS='secr3t_passw0rd'
$ echo $CLIENT_EMAIL
thedude@gmail.com

假设您使用与设置环境变量相同的用户运行 Node 进程,您可以在 js 代码中访问它们,如下所示 1 :

var smtpTransport = nodemailer.createTransport(smtpTransport({
service: 'Gmail',
auth: {
user: process.env.CLIENT_EMAIL,
pass: process.env.CLIENT_PASS
}
}));

使用这种方法我仍然有点担心安全性,但只要你的机器没有受到某种程度的损害,你就可以了。进程的环境变量仅对运行该进程的用户(euid)可用。 2

希望这有帮助!

关于javascript - 这种通过 Node 发送电子邮件的方式不安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52210548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com