Jump to content

验证码

From mediawiki.org
This page is a translated version of the page CAPTCHA and the translation is 100% complete.

验证码(CAPTCHA,“Completely Automated Public Turing test to tell Computers and Humans Apart”的缩写)通过ConfirmEdit 拓展在Wikimedia的wiki中被应用,作为一种表面上的阻止垃圾骚扰和制止垃圾骚扰者的方式。 在绝大多数wiki中,用户在创建新账户、新页面或在页面中添加外部链接时会遇到验证码。

在pt.wiki上,2008-2013年间,验证码还“临时”出現在未注册用户和新用户的每次编辑中,据称是为了减少破坏行为(见讨论bugzilla:41745)。

目前的验证码执行机制存在一些问题。

  • 它们只有英文版(bugzilla:5309):无论它们是怎麼创造出來的,验证码所使用的词语都应是用户的语言。 非英语人士中数量不详的新用户和编辑者從此失去了。
  • 它们违反了无障碍原则(bugzilla:4845)。
  • 它们不能有效防止机器人发送垃圾邮件。

未来可能实施的替代方案

图像验证码

图像验证码无需输入文本,对移动端和国际化的相关问题上有帮助。 一些基于图像的创意:

  • 找出不同的图像(查看原型)。 同一类别(如人們)的几张图像与不同类别(如猫)的一张图像混合显示。 人类应该能够分辨出哪一个是不同的。 请注意,在这种情况下,问题始终是同一個(找出不同的图像),然而所使用的类别卻不会向用户公开。
  • 找出所有同类的图像(查看原型)。 两个或更多类别的图像会被呈现在一起。 明确要求用户找到所有某個类型的图像(例如,所有戴眼镜的人的图像)。
  • 标签图像(查看原型)。 用户会看到包含一些标记元素的图像,并有选择正确标记的选项(例如,這是鸟吗?這是飞机吗?)。

这里的难点在于如何以不被垃圾邮件机器人利用的方式创建图像和验证数据。 你需要很大一组验证码(理想情况下数十万个),否则攻击者可以很容易穷举你的验证码数据库。 如果你使用公共图像存储库(如共享資源)或公开的数据来源(如共享資源的分类),存在这样的可能,攻击者可以将验证码和图片来源一一对应并发现破解验证码的方法。

使用蜜罐替代验证码

避免验证码本地化问题的一种简单方式就是不再使用它,并将其替换为蜜罐

一个本土的reCAPTCHA复制品

编写一个版本的reCAPTCHA,使用已经过MediaWiki的ProofreadPage扩展处理過的Wikisource文档图像:WikiCAPTCHA. 换句话说,验证码可以向ProofreadPage提供数据,以增强其OCR处理能力。 您可以在既有代码的基础上进行开发。 值得注意的是,「reCAPTCHA 没有为其文字验证码算法背后的技术持有任何具体专利(至少他们在网站上没有讨论过,在美国专利商标局网站上也找不到」,根據一位博客作者 [1])。

在2012年维基媒体国际会议上的演讲Wikicaptcha:维基文庫的类似ReCAPTCHA的解决方案中也进行了讨论。

这种方法的优势在于,我们可以将目前浪费在验证码上的潜在劳动力转化为维基媒体项目(维基文庫)的紅利;而且我们可以从有限的数据集开始。 事实上,我们可以用reCaptcha的方式创建某种引导数据集,然后向人们展示已知和未知解决方案的混合验证码,并使用已知验证码进行验证,使用未知验证码生成更多数据。 但这并不容易,如果您希望验证码系统最终能有任何实际用途,就应该在项目中重点关注这一点。

无障碍环境

当前验证码的无障碍环境非常糟糕。 如果用户视力受损或使用屏幕阅读器,他们几乎完全无法使用基于文本的验证码。 少數一些较大的维基站点通过志愿者管理的账户申请系统来解决这个问题。 图像验证码等替代方案仍然违反无障碍原则(bugzilla:4845),可以考虑音频验证码等替代方案,但其本身仍然无法为聋盲人提供无障碍服务。

参见