当机器人攻击!
除了验证码以外,还有哪些流行的垃圾邮件预防方法?
解决方案
像这种Invisible Captcha系统这样的Javascript评估技术要求浏览器在接受页面提交之前先评估Javascript。当用户仅显示常规的验证码测试而未启用Javascript时,它会很好地回退。
使用户可以计算:
3和8的总和是多少?
顺便说一句:只是被Microsoft Research的一种有趣方法:Asirra所吸引。
http://research.microsoft.com/asirra/
它显示了几张图片,我们必须识别具有给定主题的图片。
我观察到的最常见的问题是围绕用户输入来解决简单的难题,例如以下是猫的照片。 (显示围绕猫的狗的缩略图的图片)。或者简单的数学问题。
虽然有趣,但我确信军备竞赛也将使这些系统不堪重负。
看不见的表单字段。制作一个不向用户显示在屏幕上的表单字段。使用display:none作为CSS样式,这样它就不会显示出来。出于可访问性的考虑,我们甚至可以放置隐藏文本,以使使用屏幕阅读器的人知道不填写该文本。Bot几乎总是填写所有字段,因此我们可以阻止任何填写不可见字段的帖子。
我尝试过在" honeypots"中放置一个字段,然后用CSS将其隐藏(对于禁用了样式表的任何人,将其标记为" leave blank"),但是我发现许多机器人都可以很快地克服它。还有一些技术,例如将字段设置为某个值并使用JS进行更改,计算加载时间和提交时间之间的时间,检查引荐来源网址,以及上百万种其他操作。他们都有自己的陷阱,几乎所有我们所希望的就是与他们尽可能多地进行过滤,同时又不疏远用户:用户。
归根结底,尽管如此,如果我们确实真的不想让机器人通过表单发送内容,我们将希望在上面放一个CAPTCHA,这是我所见过的最好的解决方案,主要用于一切都是reCAPTCHA,但要感谢印度的验证码解决方案市场以及遍布世界各地的垃圾邮件发送者的独创性,而这些垃圾邮件发送者并非总是成功。我会提防使用"令人发指"但有点"麻烦"的东西,因为对于那些至少习惯于我们通常的验证码的用户来说,它更像是" wtf"。
我们可以使用Recaptcha至少使验证码有用。然后,我们可以通过简单的口头数学问题或者类似问题提出问题。微软的Asirra使我们可以找到猫和狗的照片。如果垃圾邮件发送者无法从该服务中获得足够的利益,但是需要有效的电子邮件地址来激活该帐户,则可以阻止垃圾邮件发送者,但也可能阻止普通用户。
根据垃圾邮件发送者IP地址黑名单阻止访问。
蜜罐技术在页面顶部放置了一个不可见的诱饵形式。用户看不到它并提交正确的表单,机器人则提交了错误的表单,该表单不执行任何操作或者禁止其IP。
蜜罐是一种有效的方法。菲尔·哈克(Phil Haack)提供了一种很好的蜜罐方法,原则上可用于任何论坛/博客/等。
我们还可以编写一个跟踪垃圾邮件链接的爬虫,并分析其页面以查看它是否为真实链接。最明显的是带有我们内容的精确副本的页面,但是我们可以选择其他指示符。
审核和列入黑名单,尤其是对于像WordPress这样的插件(或者我们正在使用的插件,大多数平台都可以使用类似的软件),将在小批量环境中工作。如果环境是低容量环境,请不要小看这给我们带来的好处。如果有时间,我们可以自己决定什么是合理的内容,什么不是合理的内容,从而使我们在控制垃圾邮件方面拥有最大的灵活性。
正如其他人所指出的,不要忘记,验证码不限于图像中的文本识别。通过图像传达的视觉联想,数学问题和其他非主观问题也有资格。
动画验证码的滚动文本仍然很容易被人类识别,但是如果我们确保没有任何框架提供完全可识别的内容。
选择题问题只需要一个______和一个微笑。这里的想法是用户必须选择/理解。
会话变量,检查我们放入会话中的变量是否是请求的一部分。将挫败仅生成请求的笨拙的机器人,但可能不会挫败像浏览器一样建模的僵尸程序。
数学问题2 + 5 =这再次是要问一个易于解决但会阻止机器人产生响应的问题。
图像网格创建图像网格时,请选择1或者2种特定类型的图像,例如3x3的动物网格图片,并且必须挑选出网格上的所有鸟类。
希望这会给我们一些有关新解决方案的想法。
http://chongqed.org/维护有效垃圾邮件源的黑名单以及在垃圾邮件中宣传的URL。我发现为后者过滤帖子在论坛中非常有效。
朋友拥有最简单的反垃圾邮件方法,并且有效。
他有一个自定义文本框,上面写着"请输入数字4"。
他的博客颇受欢迎,但仍不足以使漫游器弄清楚(至今)。
一种非常简单的方法,不会对用户造成任何负担,只是在页面加载后禁用提交按钮一秒钟。我在一个公共论坛上使用了该论坛,该论坛上有连续不断的垃圾邮件发布,此后便停止了它们。
令人震惊的是,但是这里几乎所有回应都包含某种形式的验证码。 OP希望有一些不同的东西,我想也许他想要一些切实可行的东西,甚至可以解决真正的问题。
CAPTCHA不起作用,即使它执行了错误的问题,人类仍然可以淹没系统,并且从定义上讲,CAPTCHA不会阻止它(因为它的设计只是为了告诉我们我们是否是人类,否则它会做得很好...)
那么,还有哪些其他解决方案?好吧,这取决于...系统和需求。
例如,如果我们要做的只是限制用户可以填写"与我联系"表格的次数,则可以简单地限制每个用户每小时/每天/任何时间可以提交多少个请求。如果用户是匿名用户,则可能需要根据IP地址进行限制,并偶尔将IP地址列入黑名单(尽管也可以绕开该IP地址并导致其他问题)。
如果我们指的是论坛或者博客评论(例如此评论),那么我使用它越多,我就越喜欢该解决方案。经过身份验证的用户,授权(基于声誉,不太可能通过洪水累积),限制(一天可以完成多少个任务),偶尔的验证码以及最终由社区审核来清理所有通过的少数人之间的混合提供一个体面的解决方案。 (我想知道杰夫能否提供一些有关垃圾邮件和其他不良邮件实际通过多少信息的信息吗??)
要考虑的另一个控件(不知道他们是否在这里拥有)是某种形式的IDS / IPS,如果我们可以检测和识别垃圾邮件,则可以阻止THAT模式。审核需要手动填写,在这里...
请注意,其中任何一种都不能阻止垃圾邮件,但是会逐渐降低可能性,从而降低获利能力。这改变了经济方程式,并使得验证码实际上提供了足够的价值,因为垃圾邮件发送者不再为破坏它而烦恼或者变通(由于其他控制措施)而不再值得它。
请记住,使那些不使用常规浏览器的用户可以访问解决方案。 iPhone人群不容忽视,有视力和认知问题的人也不应该被排除在外。
尝试Akismet
从可用性的角度来看,验证码或者任何形式的人为问题都是可怕的。有时它们是必要的,但我更喜欢使用Akismet这样的过滤器来消除垃圾邮件。
Akismet最初旨在阻止WordPress博客上的垃圾邮件评论,但该API可以适应其他用途。
更新:我们已经开始在Rails应用程序Yarp.com上使用红宝石库Rakismet。到目前为止,阻止垃圾邮件机器人一直很有效。
我已经看到了一些类似Asira的简洁主意,这些主意要求我们确定哪些图片是猫。我相信这个想法源于KittenAuth。
我们可能会获得一些设备ID软件41拥有一些防欺诈软件,可以检测用于访问我们站点的硬件。我相信他们会用它来捕获欺诈者,但可以用来阻止机器人。一旦确定了机器人正在使用的设备,我们就可以阻止该设备。上次检查时,它甚至可以追踪通过电话网络(而不是Geo-IP !!)的路由,因此如果我们愿意,甚至可以阻止邮政编码。
通过这样的道具其昂贵。一个更好,更便宜的解决方案,但是却没有那么大的兄弟了。
使用类似谷歌图片贴标用适当地选择图像,使得计算机将无法识别它的主要特征是人的可能。
将向用户显示图像,并且必须键入与图像相关联的单词。他们将一直显示图像,直到他们键入足够的单词以与以前的用户为同一图像键入的单词一致为止。有些图像可能是新的图像,没有经过测试,但其中包含的图像用来记录与它们相关的单词。根据听众,我们还可以选择只有他们才能识别的图像。
在当今的技术中,以下是不可行的,但我认为这并不太遥远。这对于处理论坛垃圾邮件也可能是矫kill过正,但对于注册帐户或者在我们想确定自己与人打交道的任何情况下可能会很有用,他们会准备好花几分钟来完成过程。
有2位用户试图通过网络摄像头证明自己是人类,并且通过例如让对方反映自己的运动来询问他们所看到的人是否是人类和生活(即不是录音),或者在一张纸上写一些东西。让每个人与不同的用户进行几次此操作,并将一些录音混入他们还必须正确识别的混音中。
在论坛上流行的方法是在审核队列中仅对成员帖子少于10个的线程进行排队。当然,如果我们没有主持人或者不是论坛,这将无济于事。一种更通用的方法是计算超链接与文本的比率。通常,垃圾邮件中包含大量的超链接,我们可以通过这种方式获得很多东西。同样,比较连续帖子的内容。只是不允许极端相似的连续帖子。
当然,任何了解我们所采取措施的人都将能够解决这些问题。老实说,如果我们是特定攻击的目标,那么我们将无能为力。相反,我们应该集中精力防止更一般的,非熟练的攻击。
内德·巴切德尔(Ned Batchelder)提出了一种将哈希与蜜罐相结合的技术,以实现某些邪恶有效的僵尸防护。没有验证码,只有代码。
这是在阻止带有哈希值和蜜罐的花洒:
Rather than stopping bots by having people identify themselves, we can stop the bots by making it difficult for them to make a successful post, or by having them inadvertently identify themselves as bots. This removes the burden from people, and leaves the comment form free of visible anti-spam measures. This technique is how I prevent spambots on this site. It works. The method described here doesn't look at the content at all. It can be augmented with content-based prevention such as Akismet, but I find it works very well all by itself.
据说Mollom擅长阻止垃圾邮件。提供个人(免费)和专业版本。
我知道有人提到过ASIRRA,但是如果我们转到所有"领养我"图片链接,它将在该链接页面上说是猫还是狗。因此,对于机器人而言,仅访问所有被采用链接应该相对容易。因此,该项目只是时间问题。
只需验证电子邮件地址,然后让google / yahoo等为它担心
Sblam是一个有趣的项目。
对于人类主持人来说,如果该漫游器足够智能以使用注册帐户,则能够轻松找到并删除某个IP上的所有帖子或者某个用户的所有帖子肯定会有所帮助。同样,无需进一步管理即可轻松阻止IP地址或者帐户一段时间的选项将减轻人工主持人的管理负担。
使用cookie来使机器人和垃圾邮件发送者相信他们的帖子实际上是可见的(只有他们自己看到),从而阻止了他们(或者巨魔)更改技术。让垃圾邮件发送者和巨魔查看其他垃圾邮件和巨魔消息。