# 登录和注册页面有验证码解决方案吗？

**URL:** <https://meta.discourse.org/t/are-there-captcha-solutions-for-the-login-and-register-pages/229663>\
**Category:** Support\
**Created:** [2022年六月11日 12:52 UTC](https://meta.discourse.org/t/are-there-captcha-solutions-for-the-login-and-register-pages/229663 "2022-06-11T12:52:02Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![Bitweb\_Core](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bitweb_core/32/263343_2.png) [@Bitweb\_Core](https://meta.discourse.org/u/Bitweb_Core)\
**Post date:** [2022年六月11日 12:52 UTC](https://meta.discourse.org/t/are-there-captcha-solutions-for-the-login-and-register-pages/229663/1 "2022-06-11T12:52:02Z")

</div>

登录和注册页面是否有验证码解决方案？

---

<div class="post-metadata">

**Author:** ![Bitweb\_Core](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bitweb_core/32/263343_2.png) [@Bitweb\_Core](https://meta.discourse.org/u/Bitweb_Core)\
**Post date:** [2022年六月11日 18:02 UTC](https://meta.discourse.org/t/are-there-captcha-solutions-for-the-login-and-register-pages/229663/2 "2022-06-11T18:02:47Z")

</div>

关于用户 API

 ![image](https://global.discourse-cdn.com/meta/original/4X/3/3/4/33438e606ea3e71fec153508586fa8171c7e74e3.png)

我需要更改它，让它转到我的网站？

还有另一个问题，我什么时候可以编辑博客。全局链接放在任何地方

---

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [2022年六月11日 19:52 UTC](https://meta.discourse.org/t/are-there-captcha-solutions-for-the-login-and-register-pages/229663/3 "2022-06-11T19:52:07Z")

</div>

我没见过。我认为这是因为密码长度限制使它们变得不必要。

您遇到过问题吗？

---

<div class="post-metadata">

**Author:** ![Bitweb\_Core](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bitweb_core/32/263343_2.png) [@Bitweb\_Core](https://meta.discourse.org/u/Bitweb_Core)\
**Post date:** [2022年六月11日 20:44 UTC](https://meta.discourse.org/t/are-there-captcha-solutions-for-the-login-and-register-pages/229663/4 "2022-06-11T20:44:47Z")

</div>

什么？ 🙂 阅读问题

1. 我问的是关于验证码的解决方案——无论是谷歌还是其他防止注册垃圾邮件的方案。

2. 接下来我问了关于 API 的问题，我需要在那里放自己的 API 链接吗？还是使用标准的？

3. 问题是关于 blog.official 的，因为它显示在很多地方，我可以编辑它吗？还是只有管理员能看到，用户看不到它会重定向到博客？

---

<div class="post-metadata">

**Author:** ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)\
**Post date:** [2022年六月12日 10:34 UTC](https://meta.discourse.org/t/are-there-captcha-solutions-for-the-login-and-register-pages/229663/5 "2022-06-12T10:34:05Z")

</div>

我也没在注册/创建模态框中看到验证码选项（不过这可能是因为我搜索能力太差 🙂）。如果你担心垃圾信息发送者，可以使用 [Akismet](https://meta.discourse.org/t/discourse-akismet-anti-spam/109337) 插件，并结合内置工具使用？

我不确定你说的第二和第三个问题是什么意思。🙂

---

<div class="post-metadata">

**Author:** ![ClawdiaWolf](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/clawdiawolf/32/262518_2.png) [@ClawdiaWolf](https://meta.discourse.org/u/ClawdiaWolf)\
**Post date:** [2022年六月12日 13:35 UTC](https://meta.discourse.org/t/are-there-captcha-solutions-for-the-login-and-register-pages/229663/6 "2022-06-12T13:35:57Z")

</div>

> [@JammyDodger](#):
>
> 我不确定你对问题2或问题3的意思。🙂

我不确定第3个问题，但我认为我知道@Bitweb\_Core在第2个问题中想问什么。

@Bitweb_Core 除非你想完全禁用用户API密钥或根据信任级别限制它们（我个人不推荐这样做），否则你不需要更改该部分中的任何内容。默认设置允许DiscourseHub移动应用程序与你的实例一起工作。

你唯一需要进行更改的时候是当你或你公司的人员正在开发使用用户API密钥系统的第三方应用程序。

---

<div class="post-metadata">

**Author:** ![Bitweb\_Core](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bitweb_core/32/263343_2.png) [@Bitweb\_Core](https://meta.discourse.org/u/Bitweb_Core)\
**Post date:** [2022年六月12日 20:20 UTC](https://meta.discourse.org/t/are-there-captcha-solutions-for-the-login-and-register-pages/229663/7 "2022-06-12T20:20:58Z")

</div>

问题甚至不在于垃圾邮件，而在于可以自动注册数千个帐户，或者人们可以尝试暴力破解登录页面。  
通常，登录、注册和密码恢复页面应该受到验证码的保护。  
而您建议的解决方案只是在处理症状而不是病因。

我想问一下，为什么默认情况下没有像验证码或“问题-答案”这样的标准功能。

我曾认为，在现代互联网上，验证码的存在是不容置疑的，是合乎逻辑的。

只允许社交登录，创建电子邮件提供商白名单，我认为都不是解决方案。  
为什么要想出像不需要的、无人问津的晦涩服务这样的拐杖，而验证码就是为此而发明的，而其他所有东西都可以作为额外的选项，以防第一道防线被攻破。

我在那里找到了一个解决方案 [GitHub - klaudgrave/discourse-google-recaptcha: Adding Google Recaptcha to sign up form](https://github.com/klaudgrave/discourse-google-recaptcha)  
但由于论坛更新，它似乎已经很长时间没有工作并且不受支持了。

但我找不到关于插件如何正常工作的文档。来修复找到的解决方案或编写自己的解决方案。

以及如何允许用户只使用至少12个字符且包含所有字符集的长密码。  
另外，在注册页面的密码上方添加说明，提醒用户不要在所有网站上使用相同的密码，而是使用唯一的密码。

---

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [2022年六月12日 21:23 UTC](https://meta.discourse.org/t/are-there-captcha-solutions-for-the-login-and-register-pages/229663/8 "2022-06-12T21:23:53Z")

</div>

这里有一些关于验证码的讨论：[Only allow user profiles for TL1 and above? - #24 by codinghorror](https://meta.discourse.org/t/only-allow-user-profiles-for-tl1-and-above/21436/24?u=pfaffman)

看起来没有托管网站需要它，所以你可能也不需要。

原因如下：

> [@codinghorror](#):
>
> （提醒一下，如今大多数垃圾邮件发送者都是100%真人，所以验证码毫无用处

但当然可以通过插件或主题组件来添加。

---

<div class="post-metadata">

**Author:** ![Bitweb\_Core](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bitweb_core/32/263343_2.png) [@Bitweb\_Core](https://meta.discourse.org/u/Bitweb_Core)\
**Post date:** [2022年六月12日 21:46 UTC](https://meta.discourse.org/t/are-there-captcha-solutions-for-the-login-and-register-pages/229663/9 "2022-06-12T21:46:41Z")

</div>

是的，验证码不会改变任何东西，但它可以防止一些试图用简单的浏览器宏创建 100 个账户的年轻黑客。  
并通过发送大量 POST 请求来防止通过恢复密码和登录页面进行的 DDoS 攻击。

Akismet 是更高级别的保护，可以防御像 hrumer 软件和任何人工智能这样的怪物。

来自不良 IP，它已经有一个来自 Cloudflare 的验证码。

但正如我所说，所有这些都需要复杂地使用，验证码可以完成它被创造出来的目的。

例如，即使是 Discord 频道或 TG 频道，当用户加入时，他们会解决一个简单的验证码，然后像 Akismet 这样的反垃圾邮件机器人就开始工作（我知道那里也有第三种解决方案）。

如果垃圾邮件在注册阶段就被拒绝，为什么还要在数据库中充斥着无效的垃圾邮件账户呢？  
几乎 90% 的用户在验证码阶段就被拒绝了。

如果这样想，为什么还要保护论坛呢？你可以每天手动删除垃圾邮件，并从数据库中清除无效账户。

为什么使用复杂密码，而黑客却可以窃取你的数据库。

😄

“为什么要用显微镜敲钉子”

---

<div class="post-metadata">

**Author:** ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)\
**Post date:** [2022年六月12日 21:53 UTC](https://meta.discourse.org/t/are-there-captcha-solutions-for-the-login-and-register-pages/229663/10 "2022-06-12T21:53:57Z")

</div>

> [@Bitweb\_Core](#):
>
> 并防止通过发送大量帖子请求来恢复密码和登录页面。

对此有限制。

---

<div class="post-metadata">

**Author:** ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)\
**Post date:** [2022年六月12日 21:54 UTC](https://meta.discourse.org/t/are-there-captcha-solutions-for-the-login-and-register-pages/229663/11 "2022-06-12T21:54:47Z")

</div>

我也觉得这个很有意思

> [@Protecting against gmail dot trick in Discourse](https://meta.discourse.org/t/gmail-dot-trick/22627/88?u=jammydodger):
>
> I reverted [my change here](https://meta.discourse.org/t/gmail-dot-trick/22627/76) and instead introduced this new awesome default. [https://github.com/discourse/discourse/commit/cbceadf48b60b29fb710586e2b03bde4c5fe0883](https://github.com/discourse/discourse/commit/cbceadf48b60b29fb710586e2b03bde4c5fe0883) This means that if evil.person+77@gmail.com gets blocked we will go ahead and block evilperson@gmail.com instead. Then when e.v.i.l.person@gmail.com tries to sneak in they will be blocked due to canonical matching. This entirely solves the OP here, and is a very clean and safe change all Discourse instances can benefit from. Going …

---

<div class="post-metadata">

**Author:** ![Bitweb\_Core](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bitweb_core/32/263343_2.png) [@Bitweb\_Core](https://meta.discourse.org/u/Bitweb_Core)\
**Post date:** [2022年六月12日 22:18 UTC](https://meta.discourse.org/t/are-there-captcha-solutions-for-the-login-and-register-pages/229663/12 "2022-06-12T22:18:45Z")

</div>

注册页面是否存在速率限制？

例如，某种机器人会用错误的数据大量注册，或者有人随意输入数据而不间断地注册，从而在数据库中创建大量未激活的账户垃圾数据。

我亲眼见过一些服务没有验证码，因此关闭了注册功能，因为这几乎让那些网站或论坛无法使用……

您认为验证码更像是速率限制，而不是垃圾信息防护系统，您只是让他们一遍又一遍地解决验证码，而垃圾信息发送者可能不是人类，因为存在许多验证码解决服务这早已不是秘密，但他们无法解决所有验证码（存在一些即使人类也无法解决的偏执设置），并且存在谷歌隐藏的验证码，需要点击“我不是机器人”。

这一切归根结底是为了避免在非常脆弱的地方给服务器带来不必要的负载。

---

<div class="post-metadata">

**Author:** ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)\
**Post date:** [2022年六月13日 00:59 UTC](https://meta.discourse.org/t/are-there-captcha-solutions-for-the-login-and-register-pages/229663/13 "2022-06-13T00:59:58Z")

</div>

> [@Bitweb\_Core](#):
>
> 是的，验证码不会改变任何东西，但它可以防止一些试图用简单的浏览器宏创建100个账户的青少年黑客。  
> 并且可以通过发送大量POST请求来防止通过恢复密码和登录页面进行DDoS攻击。

不，有按IP地址的速率限制。如果您认为这是可能的，请尝试一下！尽管去吧！

（现在，如果您拥有50,000个IP地址的访问权限，那么是的，那是一个问题，但您也拥有_大量_的资金和时间。您有那么多资金和时间吗？）

话虽如此，我完全支持那些想要双重加倍的“皮带和吊带以及连体衣以及摩托车头盔以及足球护肩”级别的保护的网站的验证码插件，但最近的验证码变得非常非常奇怪。

---

<div class="post-metadata">

**Author:** ![Bitweb\_Core](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bitweb_core/32/263343_2.png) [@Bitweb\_Core](https://meta.discourse.org/u/Bitweb_Core)\
**Post date:** [2022年六月13日 01:42 UTC](https://meta.discourse.org/t/are-there-captcha-solutions-for-the-login-and-register-pages/229663/14 "2022-06-13T01:42:53Z")

</div>

我搜索了注册、密码重置和登录页面的速率限制，但在设置中没有找到 😐 (例如，我想允许每个 IP 只有 5 次尝试，然后等待 xx 时间)

关于自动删除未激活账户，我找到了，但为什么还允许创建它们 🙂

我想通过使用浏览器中的简单宏来阻止创建 100500 个账户。🙂，正如我所说，没有什么能真正防御垃圾邮件发送者 (他们使用 XRumer 或神经网络软件)。但正如我所知，最简单的验证码，如“我不是机器人”，效果最好，因为它会查看用户的操作。

但关于骗子们睡着了还动手发消息的消息让我笑了，也许是一些小孩，但真正的垃圾邮件发送者是批量进行的。

我无法想象一个人坐在那里手动创建数千个账户  
但即便如此——在 10 个验证码之后，他会发疯 😅  
尤其是如果它是一种带有计时器的荒谬的中文验证码 🤣

另一种针对人类垃圾邮件发送者的绝佳保护措施是画布中的浏览器指纹。

---

<div class="post-metadata">

**Author:** ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)\
**Post date:** [2022年七月13日 01:43 UTC](https://meta.discourse.org/t/are-there-captcha-solutions-for-the-login-and-register-pages/229663/15 "2022-07-13T01:43:28Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
