0

我的网站上有一堆只有姓名和电子邮件字段的 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>

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

4

3 回答 3

2

使用诸如reCAPTCHA(由 Google 提供)之类的验证码系统或某种特殊的“只有人类可以回答”类型的东西,例如“今天是什么日子?”

他们还为您提供了非常好的 PHP 插件和示例。这很简单,只需像这样使用它:

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

您可以尝试一些“蜜罐”技术(用户无法填写的字段,通常是因为被隐藏,但机器人通常会填写的字段),但机器人现在正在学习通过检测您是否'已经将蜜罐字段的字段设置为隐藏,两者都通过。CSS 和 JavaScript,因此这不能保证所有机器人都会停止。

于 2011-08-06T04:20:19.060 回答
2

我实际上会在 type="hidden" 中添加几个“蜜罐”字段,例如“last_name”、“first_name”,因为垃圾邮件机器人通常会填写这些字段。然后,在服务器端,检查这两个字段是否字段已填写;如果是这样,请记录跟踪尝试并停止处理数据。验证码也可以帮助一些人,尽管这些天没有那么多。

于 2011-08-06T04:21:55.147 回答
1

我会使用 javascript 动态创建表单。这应该可以防止简单的机器人发布您的表单。尽管此解决方案有缺点,例如您的用户必须启用 javascript。

于 2011-08-06T04:28:22.020 回答