用 hashcash 打击垃圾邮件
2007-03-29 12:40:11 来源:WEB开发网保护 Wiki
Wiki 有时会遭遇到与垃圾邮件十分类似的破坏,bashcash 在非电子邮件上下文中似乎是一个不错的解决方案。由于 Wiki 通常开放给任何人进行编辑,所以 Wiki 社区的灾难之一是 Wiki-crawling 破坏程序,它们向 Wiki 站点添加一些无关的商业链接。
我帮助维护的一个 Wiki 最近不断遭到恶意破坏,迫使我们做出了有些不受欢迎的回应,要求所有张贴者拥有一个用户帐号。这些帐号都是在一视同仁的基础上给出的,并根据自动使用电子邮件发送的质询来返回一个证明已经收到随机密钥的消息。不过,要求使用这样的帐号从根本上说与 Wiki 精神是相违背的。
添加 hashcash 质询并不能防止对 Wiki 站点的自动破坏,但是它可以使破坏行为变得更慢。如果破坏一个站点需要的时间是很多秒,而不是一秒的一小部分,那么检索 Wiki 找出无用信息就不那么引人注目了。实际上,我认为在这种应用中,使用大于 20-比特的传输率是一个好主意。也许 24 比特或 28 比特是合理的负荷(已经登录的用户仍然可以避开它)。
您可能会认为,在接受 Wiki 编辑时,普通的时间延迟会有类似效果,不过这种思维方式中有一个漏洞。破坏者可以并行化其破坏行为 —— 例如,如果每个站点添加了 5 秒的延迟,那个破坏者可以利用这 5 秒钟的时间来开始对其列表上的其他 Wiki 进行修改。通过要求保证有效 CPU 的利用率,比如使用 bashcash,破坏者再也不能并行地进行破坏。
Wiki 质询可以是交互式的,也可以是非交互式的。站点在将用户引导到实际的编辑屏幕之前,可以直接将用户引导到一个质询屏幕。可以生成一个随机资源来作为这个保护屏幕的质询。
不过,更好的方法是使这项要求具有非交互性。例如,在一个已有的 Wiki 系统中,可以使用与下方所示类似的 URL 来编辑某个资源:
更多精彩
赞助商链接