gpt4 book ai didi

node.js - NodeJS 表单垃圾邮件预防

转载 作者:行者123 更新时间:2023-12-03 20:54:06 26 4
gpt4 key购买 nike

有什么方法可以防止表单上的垃圾邮件?我有一个站点并且用 python(请求库)发送了超过 500 个垃圾请求,有没有办法防止这种情况发生?顺便说一下,人们可以更改他们的用户代理并使用代理发送垃圾邮件。有没有我可以使用的小技巧或任何 npm 包(找不到任何对我有用的东西)。

这是我的帖子路线,我删除了查询。

app.post('/:id', function(req, res){
if(req.method == 'POST') {
var id = req.params.id;
if(isNaN(id) == false) {
db.query('SELECT * FROM users WHERE id = "'+id+'"', function(loggerErr, logger) {
if(!loggerErr) {
db.query(, function(logErr, logRes) {
if(!logErr) {
res.redirect('/');
} else {
throw logErr
}
})
}
})
} else {
db.query(, function(logErr, logRes) {
if(!logErr) {
res.redirect('/');
} else {
throw logErr
}
})
}
}
});

最佳答案

只有 500 个垃圾帖子?不错。许多网站获得数以万计。这是一个大麻烦。网络蠕虫....

很难在服务器代码中停止这些帖子。

减慢垃圾邮件发布速度的最佳方法是加入 CAPTCHA (“我不是机器人”)进入您在网页上的发布表单。

Google 提供他们的 reCAPTCHA服务。这有利于谷歌的标准理由:它收集来自每个使用它的站点的数据,并列出知名垃圾邮件发送者的列表以供拒绝。

还有其他方法。一种是要求所有 POST 用户首先使用电子邮件和密码注册,然后通过回复您发送给他们的电子邮件要求他们完成注册。但这比对 post() 的快速修复更重要路线。

编辑 在开发过程中,您知道您和您的测试人员为其浏览器使用的 IP 地址。所以做这样的事情,使用你自己的 IP 地址,而不是这个例子中的那些。

const ipWhitelist = ['10.11.12.13', '10.12.14.16', '192.168.123.124']
...

然后在你的顶部 post()方法做到这一点。
if (!ipWhitelist.includes(req.connection.remoteAddress)) 
throw new Error('ip not in whitelist, begone cybercreep!)

但很明显,你需要在发布前把它拿出来。

关于node.js - NodeJS 表单垃圾邮件预防,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61500108/

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