【问题标题】:Stop Bots From Filling Aweber Form阻止机器人填写 Aweber 表单
【发布时间】:2011-08-06 04:11:44
【问题描述】:

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

这是目前存在的一种形式。有什么想法吗?

【问题讨论】:

    标签: php javascript html aweber


    【解决方案1】:

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

    【讨论】:

    • 听起来是个好主意.....不过我该怎么做呢?我可以添加这些字段,但我将如何进行服务器端检查?
    • 我的错,我以为你在为前端和服务器端处理编写代码。不确定 Aweber。
    • 有没有办法做到这一点?
    • 我对Aweber一无所知,但如果你能修改服务器端代码,你可以。
    【解决方案2】:

    使用验证码系统,如 reCAPTCHA(由 Google 提供)或某种特殊的“只有人类可以回答”类型的东西,如“今天是星期几?”

    他们还为您提供了非常好的 PHP 插件和示例。很简单,这样用就行了:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 嗯,最简单的解决方案是对原始表单进行 urlencode,然后将字符串作为 urldecode 的参数并写入该字符串。这就是我的意思:&lt;script language="javascript"&gt;document.write(urldecode('.... here your urlencoded form ...'))&lt;/script&gt;
      猜你喜欢
      • 2014-10-22
      • 2022-11-17
      • 1970-01-01
      • 2020-02-09
      • 1970-01-01
      • 2021-10-02
      • 1970-01-01
      • 2021-01-26
      • 2011-10-26
      相关资源
      最近更新 更多