当机器人攻击!
除了CAPTCHA,还有哪些stream行的垃圾邮件防范方法?
我已经尝试在“蜜jar”的地方放置一个字段,然后用CSS隐藏它(标记为禁用样式表的人留下空白),但是我发现很多机器人能够很快地通过它。 还有一些技术,比如将字段设置为某个值并用JS改变它们,计算加载时间和提交时间之间的时间,检查引用URL以及其他一百万个事情。 他们都有自己的陷阱,几乎所有你可以期望的是尽可能多的过滤他们,而不是疏远你在这里的人:用户。
但是,如果你确实真的不想让机器人通过你的表单发送东西,那么你会想要在上面放一个validation码 – 我所见过的最好的一个就是照顾大多数情况下都是reCAPTCHA – 但是要感谢印度的CAPTCHA解决scheme市场以及各地垃圾邮件发送者的独创性,这些都始终没有成功。 我会小心使用一些“巧妙”的东西,但是那种“外面的”,因为对于那些至less有点用惯了你的通常的validation码的用户来说,它更像是一个“wtf”。
令人震惊的是,这里几乎所有的回应都包含了某种forms的validation码。 OP想要一些不同的东西,我想也许他想要一些真正有效的东西,甚至可以解决真正的问题。
CAPTCHA 不起作用 ,即使这样做 – 也就是错误的问题 – 人类仍然可以泛滥你的系统,CAPTCHA根据定义不会阻止它(因为它的devise只是为了告诉你是否是人类)而不是那么做得好…)
那么,还有什么其他解决scheme? 那么,这取决于你的系统和你的需求。 例如,如果您只想限制用户填写“联系我”表单的次数,则可以简单地限制每个用户每小时/每天提交的请求数量。 如果你的用户是匿名的,那么你可能需要根据IP地址进行限制,并偶尔将IP列入黑名单(尽pipe这也可以被绕开,并导致其他问题)。
如果您指的是论坛或博客评论(比如这个),那么我使用的越多,我越喜欢这个解决scheme。 authentication用户之间的混合,授权(基于声誉,不可能通过泛滥积累),节stream(你可以每天做多less),偶尔的CAPTCHA,最后社区节制来清理less数人 – 所有的合并提供一个体面的解决scheme。 (我不知道杰夫是否可以提供一些有关垃圾邮件和其他恶意软件实际获得的信息?)
另一个控制考虑(不知道他们是否有这个),是某种forms的IDS / IPS – 如果你能检测和识别垃圾邮件,你可以阻止这种模式。 审核填写需要手动,在这里…
请注意,其中的任何一个都不会阻止垃圾邮件,但会逐渐降低可能性 ,从而降低盈利能力。 这改变了经济方程,并使validation码实际上提供了足够的价值,因为它不再值得垃圾邮件发送者打扰打破或绕过它(感谢其他控制)。
给用户计算的可能性:
什么是3和8的总和?
顺便说一下:刚刚通过微软研究院的一个有趣的方法冲浪:Asirra。
http://research.microsoft.com/asirra/
它显示你几张照片,你必须识别具有给定图案的图片。
尝试Akismet
从可用性的angular度来看,Captchas或任何forms的人性化的问题都是可怕的。 有时他们是必要的,但我更喜欢使用像Akismetfilter杀死垃圾邮件。
Akismet最初是为了阻止WordPress博客上的垃圾评论而build立的,但是API可以被用于其他用途。
更新 :我们已经开始在我们的Rails应用程序Yarp.com上使用ruby库Rakismet 。 到目前为止,它一直在努力阻止垃圾邮件机器人。
一个非常简单的方法,不加载用户只是在加载页面后,禁用提交button一秒。 我在一个持续发送垃圾邮件的公共论坛上使用它,之后就停止了。
内德·巴切尔德(Ned Batchelder)写下了一种将哈希和蜜jar结合在一起的技术,用于一些有效的预防机器人的工作。 没有validation码,只是代码。
这是在与哈希和蜜jar停止垃圾回收 :
我们可以通过让他们难以取得成功的职位,或者让他们无意识地认定自己是机器人来阻止机器人,而不是让机器人停下来。 这消除了人们的负担,并使评论表格没有可见的反垃圾邮件措施。
这项技术是我如何防止此网站上的垃圾邮件。 有用。 这里描述的方法根本不看内容。 它可以通过基于内容的预防(如Akismet)进行增强,但是我发现它本身运行得非常好。
http://chongqed.org/维护活动垃圾邮件来源的黑名单以及在垃圾邮件中公布的URL。; 我发现后者的过滤post在论坛中非常有效。
我观察到的最常见的方向是围绕用户input来解决简单的难题,例如以下是猫的图片。 (显示围绕猫的狗的缩略图的图片)。 或简单的math问题。
有趣的是,我相信军备竞赛也会压倒这些系统。
您可以使用Recaptcha至less使validation码有用。 然后你可以用简单的言语math问题或类似的问题提出问题。 微软的Asirra让你find猫和狗的照片。 需要一个有效的电子邮件地址来激活一个帐户,当他们没有从服务中获得足够的利益时,就会阻止垃圾邮件发送者,但也可能阻止普通用户。
以下是今天的技术不可行,但我不认为这是太遥远。 这也可能是处理论坛垃圾邮件的矫枉过正,但可能对帐号注册有帮助,或者您希望确定与人类打交道的任何情况,他们会准备花几分钟时间完成处理。
有两个用户试图certificate自己是通过networking摄像机互相连接的人,并询问他们所看到的人是否是人类并活着(即不是录音),例如让他们相互镜像对方的动作,或者在一张纸上写点东西。 让所有人都用不同的用户做几次,然后把一些录音放到混音中,他们也必须正确识别。
在论坛上stream行的方法是简单地排队less于10个职位的成员的线程在审查队列。 当然,如果你没有版主,或者这不是一个论坛,这是没有帮助的。 更通用的方法是计算超链接到文本比率。 垃圾邮件通常包含大量的超链接,您可以通过这种方式获得更多的信息。 同样是比较连续职位的内容。 只是不允许连续的post是非常相似的。
当然,任何知道你采取的措施的人都可以绕过他们。 说实话,如果你是一个特定的攻击的目标,你可以做的事情很less。 相反,你应该把重点放在防止更普遍的,非技术性的攻击上。
对于人类主持人来说,如果机器人足够聪明地使用注册账号,它肯定能够帮助我们轻松地find并删除某些IP地址的所有post,或者某些用户的所有post。 同样,在没有进一步pipe理的情况下,轻松阻止IP地址或账户一段时间的选项将减轻人为版主的pipe理负担。
使用cookies让僵尸程序和垃圾邮件发送者相信他们的post实际上是可见的(而只有他们自己才能看到)阻止他们(或者巨魔)改变技术。 让垃圾邮件发送者和巨魔看到其他垃圾邮件和巨魔邮件。
像隐形validation码这样的Javascript评估技术需要浏览器在页面提交之前评估Javascript。 当用户没有使用Javascript时,只需显示传统的CAPTCHAtesting就可以很好地回退。
animationvalidation码“ – 滚动文本 – 仍然很容易被人类识别,但如果你确保没有任何框架提供完整的识别。
多项select题 – 只需要一个______和一个微笑。 这里的想法是,用户将不得不select/理解。
会话variables – 检查你放入会话的variables是否是请求的一部分。 将淹没愚蠢的机器人,只是产生请求,但可能不是像浏览器模拟的机器人。
math问题 – 2 + 5 = – 这又是一个问题,很容易解决,但防止机器人生成响应的能力。
图像网格 – 您创build图像的网格 – select一个特定types的1或2,如动物的3×3网格图片,你必须挑选网格上的所有鸟类。
希望这给你一些新的解决scheme的想法。
朋友有最简单的反垃圾邮件方法,它的工作原理。
他有一个自定义文本框,上面写着“请input数字4”。
他的博客非常stream行,但仍然不够stream行,以至于机器人不知情(尚)。
请记住,使您的解决scheme可以让那些不使用传统浏览器的人访问。 iPhone的人群是不容忽视的,那些有视觉和认知问题的人也不应该被排除在外。
蜜jar是一种有效的方法。 菲尔·哈克给出了一个很好的蜜jar方法 ,原则上可以用于任何论坛/博客等。
您也可以编写一个抓取程序,跟踪垃圾邮件链接并分析其页面,以查看它是否是真正的链接。 最明显的将是与您的内容完全相同的页面,但是您可以挑选其他指标。
适度和黑名单,特别是像这些WordPress的插件 (或任何你使用的,类似的软件可用于大多数平台),将在小批量的环境中工作。 如果你的环境比较低,不要低估这给你带来的好处。 如果你有时间,个人决定什么是合理的内容,什么不是给你最大的垃圾邮件控制的灵活性。
正如其他人所指出的,不要忘记,CAPTCHA不限于从图像中识别文本。 视觉关联,math问题以及通过图像传递的其他非主观问题也是合格的。
Sblam是一个有趣的项目。
不可见的表单字段。 制作一个不显示在屏幕上的表单字段给用户。 使用display:none作为CSS样式,以便它不显示。 为了便于使用,您甚至可以放置隐藏的文本,以便使用屏幕阅读器的用户不会填写。机器人几乎总是填写所有字段,因此您可以阻止填充在不可见字段中的任何post。
根据垃圾邮件发送者IP地址黑名单阻止访问。
蜜jar技术在页面的顶部放置了一个隐形的诱饵forms。 用户看不到并提交正确的表单,机器人提交错误的表单,不做任何事情或禁止他们的IP。
我已经看到了阿斯拉的一些整洁的想法,要求你确定哪些图片是猫。 我相信这个想法刚刚来自KittenAuth 。
使用类似谷歌图像标签的东西,适当select图像,使计算机将无法识别人的能力的主要特点。
用户将被显示一个图像,将不得不键入与之相关的单词。 他们将继续被显示的图像,直到他们已经键入足够的话,同意以前的用户input相同的图像。 一些图像将是新的,而不是被testing的,但被包括来logging与它们相关的词。 根据你的观众,你也可以select只有他们认识的图像。
据说Mollom擅长阻止垃圾邮件。 个人(免费)和专业版本都可用。
我知道有些人提到ASIRRA,但是如果你去所有采用我的图像链接,它会说,如果它的链接页面上的猫或狗。 所以对于一个机器人来说,应该比较容易的去到所有的采用链接。 所以这只是该项目的时间问题。
只是validation电子邮件地址,让谷歌/雅虎等担心
你可以得到一些设备ID软件41有一些防欺诈软件,可以检测到用于访问您的网站的硬件。 我相信他们用它来抓骗子,但可以用来阻止机器人。 一旦你确定了一个机器人正在使用的设备,你可以阻止该设备。 最后一次检查它甚至可以通过他的电话networking(不是你的地理IP!)追踪你的路线,所以甚至可以阻止邮政编码,如果你想。
它通过如此昂贵的昂贵。 一个更好的更便宜的解决scheme,是一个less一点的大哥。