阻止机器人填写Aweber表格

时间:2011-08-06 04:11:44

标签: php javascript html aweber

我的网站上有一堆名称和电子邮件字段的Aweber表单。这些表格正在获得大量的垃圾邮件注册。有没有办法阻止这些机器人填写表格?

<form method='post' action='http://www.aweber.com/scripts/addlead.pl'>
  <div style='display:none;'>
    <input type='hidden' name='meta_web_form_id' value='-----' />
    <input type='hidden' name='meta_split_id' value='' />
    <input type='hidden' name='listname' value='-----' />
    <input type='hidden' name='redirect' value='-----' />

    <input type='hidden' name='meta_adtracking' value='-----' />
    <input type='hidden' name='meta_message' value='1' />
    <input type='hidden' name='meta_required' value='name,email' />
  </div>

  <ul class='vMenuForm'>
    <li class='lname'>Name(<span class='red'>*</span>):</li>
    <li class='name'><input type='text' name='name' value=''/></li>
    <li class='lemail'>Email(<span class='red'>*</span>):</li>
    <li class='email'><input type='text' name='email' value=''/></li>
    <li class='submit'><input class='button' type='submit' name='submit' value=''/></li>
  </ul>
  <div style='display: none;'><img src='http://forms.aweber.com/form/displays.htm?id=HKwMHMzMTCyM' alt='' /></div>
</form>

这是现在存在的形式之一。有什么想法吗?

3 个答案:

答案 0 :(得分:2)

使用像reCAPTCHA(谷歌)这样的验证码系统或某种特殊的“只有人类可以回答”类型的东西,比如“今天是星期几?”

他们也有非常好的PHP插件和示例。它非常简单,只需使用它:

require_once('recaptchalib.php');
$publickey = "public_key";
echo recaptcha_get_html($publickey);

您可以尝试一些“蜜罐”技术(用户无法填写的字段,通常因为隐藏,但机器人通常会填写的字段),但机器人正在学习通过检测来对抗它们如果您将蜜罐字段设置为隐藏的字段,则均为via。 CSS和Javscript,所以这不能保证所有机器人都会被停止。

答案 1 :(得分:2)

我实际上会将几个“honeypot”字段设置为type =“hidden”,例如“last_name”,“first_name”,因为垃圾邮件机器人通常会填充这些字段。然后,服务器端,请查看如果填写了这两个字段;如果是,请记录跟踪尝试并停止处理数据。 Captchas也帮助了一些,但这些日子并不多。

答案 2 :(得分:1)

我会使用javascript动态创建表单。这应该让简单的机器人不会发布您的表单。虽然此解决方案有缺点,例如您的用户必须启用javascript。