您知道哪些机制可以防止您的网站被匿名垃圾邮件发送者滥用。
例如,假设我有一个人们可以投票的网站。但我不希望有人一直向顶部发送垃圾邮件。所以我发现(a)创建一个帐户,只允许投票一次,(b)验证码以减少垃圾邮件。您还知道哪些其他方法以及它们的效果如何?
您知道哪些机制可以防止您的网站被匿名垃圾邮件发送者滥用。
例如,假设我有一个人们可以投票的网站。但我不希望有人一直向顶部发送垃圾邮件。所以我发现(a)创建一个帐户,只允许投票一次,(b)验证码以减少垃圾邮件。您还知道哪些其他方法以及它们的效果如何?
来自xkcd
我注意到的一件大事是,无论你做什么,你都希望你的系统是独一无二的。您希望攻击者必须为您的特定站点量身定制他们的自动化程序,而不是仅仅向它扔一个几乎可以在任何地方工作的预先存在的脚本。它甚至不必是加密安全的;它只需要使您的网站与常规网站有所不同。
这并不意味着您不能或不应该使用诸如预先构建的验证码小部件之类的东西。绝对要使用其中之一作为凝视点!这只是意味着您必须在某个地方对其进行自定义,以便发生超出规范的额外事情,并且会破坏通常可以击败它的任何预先存在的脚本。
如果您的网站变得足够大,以至于您有攻击者专门针对它,那么您的简单小定制可能不再适用,您可能需要做一些更特别的事情并考虑真正的密码学等等。但这是一个“好”的问题。
我是“隐藏领域”验证码的粉丝。我不记得我在哪里读到它,但想法是这样的:
style="display:none"
在周围的 div 或表格行上)唯一失败的情况是用户的浏览器不处理 CSS(或者他们将其关闭),这种情况非常罕见。
收取选票,就像他们在一些电视“才艺”节目中所做的那样,然后一路向银行发送垃圾邮件!
说真的,这是一个非常棘手的问题,总有一天(也许很快,如果你听 Ray Kurzweil 的话),计算机将进行测试以筛选出人类。我添加到列表中的答案有明显的缺点,但只是为了列举:适度(让人类进行测试)和基于 IP 的跟踪(限制来自主机的投票数量)。
stackoverflow 有一些功能可以帮助解决这个问题;我认为您可以采取的最有用的一个步骤是禁用匿名用户和新帐户的投票能力。这样,没有人可以注册数百个帐户并使用他们的一票来压倒其他用户。我会说在一段时间内要求一些职位或会员资格都是不错的选择。
有人会说你可以允许每个 IP 地址投一票来帮助解决这个问题,但我玩过很多游戏,其中拥有近乎无限数量的代理的恶意用户违反了基于 IP 地址的安全性。这是一种威慑,但精明的用户会很容易地绕过它。
这是人类计算的研究领域。
这里有 Luis von Ahn 的精彩视频:http: //video.google.com/videoplay ?docid=-8246463980976635143
在最佳非基于图像的验证码的答案中有一些想法?问你是否还没有看过。
我通常将两者结合使用:匿名用户可以自由浏览所有内容,但如果他想投票,则必须注册。
在注册过程中,根据情况,我使用 optin thru mail(完成注册并确认至少邮箱存在)和/或验证码。
从那时起,您可以决定用户是否可以多次投票,或任何其他规则。
顺便说一句,我不喜欢基于 IP 的限制:在很多情况下,大型组织的网络对其所有用户使用的 IP 很少,因此阻止可以投票的用户的风险很高。