SCP-079-CAPTCHA 说明

SCP-079-CAPTCHA 说明

SCP-079
提供多种形式的入群验证

更详细的说明请见

https://scp-079.org/captcha-manual-zh/


如无特殊情况,本说明将不再更新,我们将在这里对 CAPTCHA 的使用说明进行长期更新: https://scp-079.org/captcha-manual-zh/


简介

提供对新入群用户的验证审核。群组如开启了免验证模式,用户在成功验证一次后,在一段时间内可以自动在多群免验证。并且,验证流程不会在群内呈现,多人进群也不会造成验证码的刷屏,本机器人力求以最简短最不干扰群组内正常交流的方式提醒用户进行验证。点此获取源代码


运作流程

详细介绍机器人的验证流程


提示部分

  1. 当新用户入群时,机器人将禁言用户,同时机器人将回复用户的入群消息,提供两个按钮,左侧按钮为:我需要验证吗,用户点击该按钮,机器人会用弹出窗口的形式回复该用户是否需要验证;右侧按钮为:前往验证,点击按钮会前往专用验证群组。
  2. 在触发验证的原始群组中,用户验证提示消息只保留最后一条,因此即使多名用户短时间入群,群内也只有一条验证提示消息,该条验证提示消息会显示待验证的用户数量,同时,会以多个不可见的字符在消息内 @ 所有待验证的用户,通常情况下每个用户都能再次得到此条消息的通知提示,防止了稍早入群的待验证用户忽视该验证提示消息。


新用户入群时的常规提示


验证部分

需要验证的用户加入专用验证群组中,会触发随机类别的问题——


图片形式的数学加减法运算(提供备选按钮)
图片形式的看图辨物(提供备选按钮)
图片形式的汉字成语验证码
图片形式的汉字验证码(提供备选按钮,文字是与食品有关的名称)
图片形式的数字验证码
图片形式的英文字母验证码


举例:用户随机抽到的图片形式的数学加减法运算


如用户在有限时间内正确回答,即验证通过,用户在最初触发验证的群组中将被解除禁言。同时用户将在几分钟后于专用验证群组中被移除。


验证通过后的提示


如用户回答超时,或在有限时间内根本未加入专用验证群组,将导致验证失败。如用户在专用验证群组中回答超时,该用户将在 10 秒后于专用验证群组中移除。初次超时失败将在原始群组中封禁用户,10 分钟后解封,解封后用户可再次加入原始群组触发验证,如果第二次再次超时失败,将在原始群组中永久封禁该用户。


验证超时后的提示


如用户回答错误,导致验证失败,用户将在 15 秒后在专用验证群组中被移除,错误提示中会留下建议,提醒用户在 10 分钟后可再次加入原始群组中触发验证。回答错误的同时,将在原始群组中封禁用户,10 分钟后解封,解封后用户可再次加入原始群组触发验证。尚未对该类失败的尝试次数做出限制。


验证失败后的提示


无关人员

不需要验证的用户如果加入专用验证群组中,会被机器人踢出。有时用户反复入群,可能不会重复发送入群的服务消息(xxx joined the group),此时机器人将不能够立即踢出这名不需要验证的用户,但机器人会每 10 分钟获取专用验证群组的所有用户,对无关用户进行踢出操作。


开放监督

所有 CAPTCHA 所在群组中的所有管理员,可随意加入专用验证群组中查看机器人运行情况。USER 和 CAPTCHA 将共同保证专用群组中没有任何多余消息。


危机应对

在大量用户短时间内入群(炸群)时,机器人将触发自动静态消息模式,即,对用户入群消息实行立即删除的操作(不保留任何入群消息),验证提示消息仍会发送,但此时并不会回复某条入群消息。


跨机器人合作

与 NOSPAM 合作

CAPTCHA 可以接收来自 NOSPAM 的针对某个用户的验证发起请求。当防广告的机器人 NOSPAM 判断用户应当被封禁时,如果经检查用户加入群组的时间较长,是一名 “老群员”,则将导致 “操作降级”。降级的操作将导致用户的消息被全局删除,但该用户不会被封禁;如果群组中存在 CAPTCHA ,则降级的操作可能不全局删除用户的消息(尽量保持对话的完整性),而是要求用户成功进行一次 CAPTCHA 验证后,方可正常发言。用户验证超时或失败仍旧会被 CAPTCHA 移出群组,10 分钟后解禁。

与 TIP 合作

当群组中有 TIP 机器人,CAPTCHA 会确保用户成功通过验证后,才通知 TIP 进行入群欢迎。


群组设置

下面解释图中所显示的设置按钮(群内发送 /config captcha 获得):


SCP-079-CAPTCHA 的设置界面


协助删除:用户验证失败时,令 USER 协助删除该用户所发所有消息(包括该用户入群消息,同时避免机器人在特殊情况下遗漏在成功禁言前用户所发的其他消息)。


禁言模式:多次验证失败,导致永久惩罚时,选择禁言该用户,而不是封禁该用户。


封禁模式:首次验证失败,选择直接永久封禁该用户,而不在 600 秒后解禁该用户(不给用户再次尝试的机会)。


自动解禁:当某名用户在其他群组验证成功,选择自动解除该用户在您的群组中受到的永久性惩罚。


入群提示:如关闭,机器人将不会发送新用户入群时的验证提示。某些群组可能有这类需求。群组可以在提示关闭后,在置顶消息、群组描述中提供必要说明,并提供 @SCP_079_CAPTCHA 的链接,让用户入群后主动地加入专用群组中进行验证。如群组一定要选择关闭入群提示,我们更推荐管理员在群内发送 /static 命令获取一个永久有效的验证提示消息,该消息同样有两个按钮,群组可在置顶和群组描述中提供该条消息的链接,这样用户即可通过按钮更清楚自己是否需要验证(static 消息只适用于新加入用户有权限查看群组历史消息的情况)。


自动免验证:开启后,用户在某个群组验证通过一段时间后,将不会再次重复地在其他群组触发验证。即使关闭,用户也会在几分钟内不需验证,这是为了保证用户已被从专用验证群组中移除。


仅手动:开启后,新用户入群将不再触发验证流程。无论是否开启,管理员都可以使用 /captcha 命令回复某用户,要求该用户进行一次验证(但机器人判断用户不需重复验证时,不会有反应)。


问与答

有问就有答


Q:为什么不在群内进行验证的全部流程?

A:有时多个用户在短时间内入群,机器人的大量验证码反而会导致刷屏,对群内的正常对话造成很大干扰。而且,这种刷屏问题不符合项目 “最少发言” 的设计原则。


Q:为什么不采取私聊机器人,而是在专用的验证群组中操作?

A:私聊的验证是可行的,但同时带来了透明度问题。私聊导致机器人的验证流程无法可靠地受到监督,而在专用群组中,CAPTCHA 所在群组的所有管理员都可以随意加入,每个用户的验证流程都是对管理员们可见的,这种更直观的表达增加了机器人的透明度。同时,在群组中的直接展示,利于及时发现验证过程中出现的问题和错误。而且,这种私聊过程中的不透明性不符合项目 “操作可查” 的原则。


Q:如果某用户连续加入了多个群组,触发了多个验证请求后,再去通过了验证,会发生什么?

A:如在 “有限时间内” 通过了一次验证,该用户将同时在所有等待验证的群组中被解除限制,均可正常发言。


Q:在上一问题的答案中,机器人是如何计算 “有限时间内”?

A:若连续加入了多个群组,则以最开始加入群组的时间点为起点,240 秒后为终点,在此期间完成验证才视为有效,否则将导致超时。


申请使用或自建

如欲申请使用,请查看申请方法。然而,我们鼓励您通过源代码自行建立此机器人,如搭建过程中有任何疑问请至讨论群 @SCP_079_CHAT 提出。


Report Page