Javascript 垃圾邮件发送者绕过我的简单反垃圾邮件措施,在我的联系表上给出了错误的答案

Javascript 垃圾邮件发送者绕过我的简单反垃圾邮件措施,在我的联系表上给出了错误的答案,javascript,spam-prevention,formmail,Javascript,Spam Prevention,Formmail,我在我的网站上有一个带有3个字段的联系表(电子邮件、评论和垃圾邮件预防)。电子邮件和评论字段可以工作。垃圾邮件字段可以在线工作并阻止人们(它显示消息:“你没有通过垃圾邮件测试”),但我仍然收到回答错误的电子邮件 垃圾邮件问题是“这个气球是什么颜色的”(带有一张蓝色气球的图片) 任何帮助都将不胜感激 <script type="text/javascript"> function hgsubmit() { if (/^\S+@[a-z0-9_.-]+\.[a-z]{2,6}$/i.te

我在我的网站上有一个带有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>

函数hgsubmit()
{
如果(/^\S++[a-z0-9.-]+\[a-z]{2,6}$/i.test(document.hgmailer.email.value)==false)警报(“需要有效的电子邮件地址”);
否则(/\S+/.test(document.hgmailer.comment.value)==false)警报(“需要您的电子邮件内容”);
否则如果(/blue | blue/.test(document.hgmailer.spam.value)==false)警报(“您未通过垃圾邮件测试”);
否则{
document.hgmailer.submit();
警报('谢谢!\n您的电子邮件已发送');
}
}

如果这很重要,我会使用。

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


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

总是相同的颜色吗?很容易绕过它;)你说它管用,但它不管用?你还收到电子邮件是什么意思?这是javascript,垃圾邮件机器人可能没有运行JS。如果我有更好的编码技能,我会轮换问题,但我已经花了好几个小时才做到这一点。问题是他们甚至不回答“蓝色”,他们只是键入他们的垃圾邮件url或其他内容。@remyabel当我在网站上填写表格时,垃圾邮件表格会阻止我发送电子邮件,但它不会阻止垃圾邮件发送者,因为我收到的电子邮件的答案不是“蓝色”或“蓝色”。垃圾邮件发送者只是将他们的url或其他答案放在字段中。谢谢你。你的思维方式让我想到,我可以通过Thunderbird(邮件应用程序)过滤电子邮件,删除不包含“蓝色”一词的电子邮件。