Спам-боты, отправляющие фиктивные данные, используют контактную форму Nodemailer - PullRequest
0 голосов
/ 15 мая 2019

Проблемы со спам-ботами, отправляющими фальшивые данные в мою контактную форму нодмейлера из моего экспресс-приложения, работающего на цифровой океанской капле.

Я попытался настроить скрытое поле формы, которое перенаправляет и предотвращает отправку формы, но, похоже, не работает.

app.post("/products/contactCorporate", function (req, res) {
  let { name, email, message, businessAddress } = req.body;

  //businessAddress is a hidden field on my form
  if (businessAddress.length !== 0) {
    req.flash('success', 'Sorry Bot!');
    res.redirect("/products/contactCorporate");
  } else {
    submitForm();
  }
});

Я хотел бы найти пакет или решение NPM, чтобы проверить электронную почту на сервере перед отправкой формы или каким-то образом обмануть бота. Я бы предпочел не использовать капчу.

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 15 мая 2019

Мне удалось сделать это с помощью пакета NPM email-существование

Существование определяется путем telnetting к серверу MX домена электронной почты и попытке отправить электронное письмо на указанный адрес. MX-серверы возвращают 250, если адрес электронной почты существует, и 550, если его нет.

app.post("/products/contactCorporate", function (req, res) {
  let { name, email, message, businessAddress } = req.body;

  emailExistence.check(email, function (error, response) {
    if (response === false) {
      req.flash('success', 'Sorry, the email seems to be spam!');
      res.redirect("/products/contactCorporate");
    } else {
      submitForm();
    }
  });
});
...