我有一堆在我的网站上只有一个名字和电子邮件字段的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>这是它现在存在的形式之一。有什么想法吗?
发布于 2011-08-06 12:28:22
我会使用javascript动态创建表单。这应该可以防止简单的机器人发布你的表单。尽管这种解决方案有缺点,比如您的用户必须启用javascript。
发布于 2011-08-06 12:20:19
使用像reCAPTCHA这样的验证码系统(由谷歌提供)或某种特殊的“只有人类才能回答”类型的东西,比如“今天是几号?”
他们也为你提供了非常好的PHP插件和示例。它很简单,就像这样使用它:
require_once('recaptchalib.php');
$publickey = "public_key";
echo recaptcha_get_html($publickey);你可以尝试一些“蜜罐”技术(用户无法填写的字段,通常是因为是隐藏的,但机器人通常会真的填写的字段),但这些天机器人正在学习通过检测你是否设置了字段蜜罐字段隐藏,这两种方式。CSS和Javscript,所以这不能保证所有的机器人都会被停止。
发布于 2011-08-06 12:21:55
实际上,我会在type=中添加几个“蜜罐”字段作为“隐藏”,例如"last_name","first_name",因为垃圾邮件机器人通常会填充这些字段。然后,在服务器端,检查这两个字段是否已填写;如果已填写,则记录跟踪尝试并停止处理数据。验证码对一些人也有帮助,尽管现在没有那么多了。
https://stackoverflow.com/questions/6964702
复制相似问题