你是人类? (或者如何防止垃圾邮件)

时间:2020-03-05 18:47:08  来源:igfitidea点击:

我们知道哪些机制可以防止匿名垃圾邮件散布者滥用网站。

例如,假设我有一个网站,人们可以在其中投票。但是我不希望有人一直向顶部发送垃圾邮件。因此,我发现(a)创建一个帐户,只允许投票一次,(b)验证码以减少垃圾邮件。我们还知道其他哪些方法?它们的效果如何?

解决方案

回答

从xkcd

回答

stackoverflow有一些功能对此有所帮助;我认为我们可以采取的最有用的步骤是禁用匿名用户和新帐户的投票能力。这样,没有人可以注册数百个帐户并使用他们的一票来压制其他用户。我想在一段时间内要求一些职位或者会员资格都是不错的选择。

有人会说我们可以允许每个IP地址投票一票,以帮助解决此问题,但是我玩了很多游戏,其中几乎无限数量的代理的恶意用户反抗基于IP地址的安全。这是一种威慑力,但是精明的用户可以轻松解决它。

回答

我注意到的一件大事是,无论我们做什么,都希望系统是唯一的。我们希望攻击者必须为特定站点定制其自动化程序,而不是仅向其抛出几乎可以在任何地方使用的预先存在的脚本。它甚至不必是加密安全的。它只需要使网站与常规有所不同。

这并不意味着我们不能或者不应该使用诸如预构建的验证码窗口小部件之类的东西。绝对不要将其中之一用作凝视点!这只是意味着我们必须在某个地方对其进行自定义,以便在正常情况之外发生一些额外的事情,并且会破坏任何通常可能会破坏它的现有脚本。

如果站点足够大,可以让攻击者专门针对它,那么我们简单的小定制可能就不再适用,我们可能会做一些更特殊的事情,并考虑一下真正的加密技术等等。但这就是其中的一个"好"问题。

回答

这是人类计算的研究领域。

这里有Luis von Ahn的精彩视频:
http://video.google.com/videoplay?docid=-8246463980976635143

回答

最佳非基于图像的验证码的答案中有一些想法吗?询问我们是否还没有看到它。

回答

像在电视上的"才华横溢"节目中一样,收取选票费用,然后一路向银行发送垃圾邮件!

严重地,这是一个非常棘手的问题,有一天(也许很快,如果我们听Ray Kurzweil的话),计算机将进行测试以筛选出人类。我要添加到列表中的答案有明显的缺点,但仅出于枚举目的:适度(需要人工进行测试)和基于IP的跟踪(限制来自主机的投票数)。

回答

  • 限制每个时间每个IP地址的投票数
  • 阻止匿名代理。
  • 对于投票:如何在表单中"按会话"对必须返回的值进行改组。 " 1"表示第一项," 2"表示第二项。然后," 77"表示第一个项目," 812"表示第二个项目,...可能是幕后的一些简单数学运算,但是它阻止用户一次又一次地发送相同的HTTP查询。
  • 对我来说非常有效的方法是:使用AJAX表单,而不是简单的HTTP表单。从技术上讲,伪造选票并不复杂,但是我写了一个简单的博客软件,唯一的SPAM保护机制是通过AJAX提交评论,而到目前为止还没有SPAM。

回答

我通常将两者结合使用:匿名用户可以自由浏览所有内容,但是如果他想投票,则必须注册。

在注册过程中,根据情况,我会使用optin通过邮件(以完成注册并确认至少存在邮箱)和/或者CAPTCHA。

从那时起,我们可以决定用户是否可以多次投票,或者通过其他任何规则。

顺便说一句,我不喜欢基于IP的限制:在很多情况下,大型组织的网络为所有用户使用的IP很少,因此阻止可能投票的用户的风险很高。

回答

从量子随机位生成器服务,通过MNeylon

回答

对于CAPTCHA系统,我衷心推荐reCAPTCHA。

通过开发足够智能的系统,传统的计算机生成的验证码将最终被破坏。例如,某人声称以30%的命中率破坏了以前认为不可破坏的Google CAPTCHA。根据定义,reCAPTCHA仅显示光学字符识别无法识别的图像。

同时,用户将致力于通过识别无法自动识别的单词来帮助图书数字化的共同利益。

请参阅此处以获取更多说明并进行尝试。

回答

我是"隐藏字段" CAPTCHA的粉丝。我不记得我在哪里读到的书,但想法是这样的:

  • 正常创建表单
  • 添加一个额外的字段但将其隐藏(即周围div或者表格行上的style =" display:none")
  • 提交后,如果该字段为空白,请执行适当的操作(例如,发送电子邮件);如果字段已填写,则为机器人提交者

出现这种情况的唯一情况是用户的浏览器不处理CSS(或者关闭了CSS),这种情况非常少见。