我正在设置一个电子邮件表单,我需要能够检查机器人并悄悄地对它们进行过滤。该站点运行ASP.NET MVC。我想避免使用验证码。有什么想法吗?
发布于 2009-07-12 09:47:16
IIRF可以做blacklisting based on user-agent or IP address (或其他事情)。适用于ASP.NET,PHP,任何东西。在IIS5,6,7上运行。快速,简单,免费。
你可以使用browse the doc here。
发布于 2009-07-12 09:58:21
添加一个新的输入字段,将其标记为“请留空”,使用CSS将其隐藏,如果该字段已填充,则忽略该帖子。如下所示:
<style type='text/css'>
#other_email_label, #other_email {
display: none;
}
</style>
...
<form action='mail'>
<label id='other_email_label' for='other_email'>Please leave blank:</label>
<input type='text' name='other_email' id='other_email'>
...
</form>
因此,人类不会看到该字段(除非他们关闭了CSS,在这种情况下,他们会看到标签并将其留空),但垃圾邮件机器人会填充它。任何与该字段填充的帖子必须来自垃圾邮件机器人。
(摘自我对这个相关问题的回答:"What is a good invisible captcha?")
发布于 2009-07-12 10:22:55
我在表单中看到了一个解决方案,前提是使用JavaScript来计算击键次数( keystrokes ),并计算从page_load到表单提交的距离。然后,它根据该时间和按键/秒的典型期望界限来猜测它是否是机器人,因为机器人(使用浏览器)倾向于在没有笔划的情况下非常快速地转储文本(只需按ctrl-v键)。
只发送POST或GET数据而不加载页面的机器人也会被过滤掉。
我不知道实现的细节,但可能是一个想法。
https://stackoverflow.com/questions/1116481
复制