【问题标题】:Spammers are bypassing my simple anti-spam measures with the wrong answer on my contact form垃圾邮件发送者绕过我的简单反垃圾邮件措施,而我的联系表上的答案错误
【发布时间】:2013-11-01 22:45:25
【问题描述】:

我的网站上有一个包含 3 个字段(电子邮件、评论和垃圾邮件预防)的联系表。电子邮件和评论字段有效。垃圾邮件字段在线工作并阻止人们(它显示消息:“您未通过垃圾邮件测试”)但我仍然收到错误答案的电子邮件。

垃圾邮件问题是“这个气球是什么颜色的”(带有蓝色气球的图片)。

任何帮助将不胜感激。

<script type="text/javascript">
function hgsubmit()
{
if (/^\S+@[a-z0-9_.-]+\.[a-z]{2,6}$/i.test(document.hgmailer.email.value) == false) alert ("A valid email address is required.");
else if (/\S+/.test(document.hgmailer.comment.value) == false) alert ("Your email content is needed.");
else if (/blue|Blue/.test(document.hgmailer.spam.value) == false) alert ("You failed the spam test.");
else {
   document.hgmailer.submit();
   alert ('Thank you!\nYour email is sent.');
   }
}
</script>

如果这很重要,我正在使用FormMail

【问题讨论】:

  • 总是相同的颜色?很容易绕过它;)
  • 你说它有效..但它没有?你是什​​么意思你仍然收到电子邮件?
  • 这是 javascript,垃圾邮件机器人可能没有运行 js
  • 如果我有更好的编码技能,我会轮换问题,但我花了几个小时才走到这一步。问题是他们甚至不回答“蓝色”,他们只是输入垃圾邮件网址或其他内容。
  • @remyabel 当我在我的网站上填写表单时,垃圾邮件表单会阻止我发送电子邮件,但它不会阻止垃圾邮件发送者,因为我收到的电子邮件的答案不是“蓝色”或“蓝色的”。垃圾邮件发送者只是将他们的网址或其他答案放在该字段中。

标签: javascript spam-prevention formmail


【解决方案1】:

垃圾邮件机器人不会在页面中运行脚本,它们只会抓取 HTML 代码以获得可以发布数据的表单,因此您无法保护自己免受使用 Javascript 的攻击。

为了防止这些,您需要服务器端的代码可以根据表单中的内容拒绝请求。您可以使用 Javascript 将特定信息放入字段中,如果在到达服务器时缺少这些信息,您就知道它不是由浏览器发布的。

【讨论】:

  • 谢谢古法。你的想法让我想到我可以通过删除不包含“蓝色”一词的电子邮件来过滤通过 Thunderbird(邮件应用程序)的电子邮件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-18
  • 2011-12-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多