NodeJS表单防垃圾邮件

iyfjxgzm  于 2023-01-30  发布在  Node.js
关注(0)|答案(1)|浏览(157)

有没有一种方法可以防止垃圾邮件的形式?我有一个网站和垃圾邮件超过500个请求与python(请求库),有没有一种方法可以防止这一点?人们可以改变他们的用户代理和使用代理的垃圾邮件的方式。有没有一个小技术,我可以使用或任何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
                }
            })
        }
    }
});
fslejnso

fslejnso1#

只有500封垃圾邮件?不错。很多网站都有好几万封。这是个大麻烦。
在服务器代码中阻止这些帖子是相当困难的。
减缓垃圾邮件的最好方法是在你的网页上添加一个CAPTCHA(“我不是机器人”)。
Google提供reCAPTCHA服务,这符合Google的标准理由:它从每个使用它的站点收集数据,并列出要拒绝的著名垃圾邮件发送者的列表。
还有其他方法。一种是要求所有发帖的用户先注册电子邮件和密码,然后要求他们回复你发给他们的电子邮件,完成注册。但这比快速解决post()路线要重要得多。

EDIT在开发过程中,你知道你和你的测试人员在浏览器上使用的IP地址,所以你可以这样做,使用你自己的IP地址,而不是这个例子中的地址。

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

然后在post()方法的顶部执行此操作。

if (!ipAllowlist.includes(req.connection.remoteAddress)) 
   throw new Error('ip not in allowlist, begone cybercreep!)

但你得在释放前把这个拿出来。

相关问题