Wordfence 使用 reCAPTCHA V3 防止登录攻击

Wordfence 的 Google reCAPTCHA 功能目前仅适用于默认的 WordPress 登录和注册页面以及默认的 WooCommerce 登录和注册页面。如果涉及到其他的留言表单(例如Contact Form 7)通常都会有对应的集成模块来实现垃圾留言表单的提交。

reCAPTCHA 简介

reCAPTCHA是一项免费的Google服务,通过区分人类用户和自动机器人来保护网站免受垃圾邮件和滥用。使用机器学习和风险分析,它是传统CAPTCHA系统的更版本。图灵测试是一种确定计算机是否可以表现出类人行为的方法。这种行为由reCAPTCHA检查,通常用于防止滥用注册、联系表单或评论部分。

有多种类型的验证码测试可用,从使用真实图像或简单的选框。本文将分享不同类型的测试如何工作以及如何在您的站点上安装此类测试。

Wordfence 简介

Wordfence 是较受欢迎的 WordPress 防火墙和安全扫描程序,可保护全球超过 500 万个网站免受针对 WordPress 的攻击者的攻击。Wordfence Free 包含一个从头开始构建的端点防火墙和恶意软件扫描程序,用于保护 WordPress。Wordfence Free 会在 30 天的延迟后收到由行业先进的 Wordfence 威胁情报团队创建的防火墙规则和恶意软件签名。

Wordfence限速功能

在 Wordfence 启用 reCAPTCHA

在登录和用户注册页面启用 reCAPTCHA

请注意,我们的 Google reCAPTCHA 功能目前仅适用于默认的 WordPress 登录和注册页面以及默认的 WooCommerce 登录和注册页面,因此它可能不适用于由您的主题或其他插件生成的自定义登录和注册页面。启用此功能将向 WordPress 的登录和注册表单添加 CAPTCHA 测试。启用复选框后,您需要输入站点密钥和密钥(如下所示)。目前,您需要按“v3 管理控制台”按钮,而不是“开始”按钮:

https://www.google.com/recaptcha/about

在 Wordfence 启用 reCAPTCHA

注意:要在默认的 WooCommerce 登录和注册页面上使用 CAPTCHA,您还必须启用“WooCommerce 集成”。我们建议在启用此选项后测试您的 WooCommerce 登录表单,以确保不会与修改登录表单的其他插件发生冲突。

reCAPTCHA 中国区域本地化

现在许多网站都使用 Google reCAPTCHA 人机验证,但是国内因访问不了 google.com 导致此验证无法使用。解决的方法很简单,就是将 www.google.com 换成 www.recaptcha.net 就可以了。

reCAPTCHA 官方文档说明:https://developers.google.com/recaptcha/docs/faq?hl=zh-cn

WordPress Wordfence 插件中需要替换的文件 :

  • /wp-content/plugins/wordfence/modules/login-security/classes/controller/wordfencels.php
  • /wp-content/plugins/wordfence/modules/login-security/classes/controller/settings.php
  • /wp-content/plugins/wordfence/modules/login-security/classes/controller/captcha.php
reCAPTCHA 中国区域本地化

怎么运行的

启用此功能后,它会在 WordPress 登录和注册表单上显示 reCAPTCHA 徽标。与旧版 CAPTCHA 实现不同,它不需要用户阅读扭曲的字母、点击路标或点击复选框。相反,Google 会为每个用户计算一个分数。

一个缺点是,你无法看到 Google 给出较低分数的原因。如果 Google 确定用户可能是机器人,则可能会阻止真实用户登录或注册。

标准 WordPress 用户页面上会显示每个用户上次登录尝试的分数。请记住,分数可能是来自尝试登录的用户,也可能是尝试使用其用户名登录的机器人。分数还会汇总在登录安全设置页面上的图表中,包括成功和失败的登录尝试。

reCAPTCHA 服务需要从 Google 加载的脚本并调用其服务器来验证访问者是否是真实的人。

用户将看到的内容

通常,大多数用户在登录和注册页面上只会看到 Google reCAPTCHA 徽标。

如果任何有效用户从 Google reCAPTCHA 获得的分数较低,并在登录时被阻止,他们会看到一条消息,提示“登录需要额外验证”,并要求他们检查电子邮件。他们应该会收到一封电子邮件,其中包含允许他们登录的链接。

如果启用 2FA 的用户在密码字段中一起输入密码和 2FA 代码,他们将自动跳过 CAPTCHA 评分,因为他们已经需要输入有效的 2FA 代码。

如果您的网站启用了注册功能,但用户由于 reCAPTCHA 得分低而被阻止注册,则系统会向他们显示一个表单,要求他们向 WordPress 常规设置中列出的主管理员电子邮件地址发送消息。这是必要的,因为目前还没有用户记录中含有他们的已知电子邮件地址。此表单有速率限制,因此机器人无法发送重复请求。

reCAPTCHA 人类/机器人阈值分数

如果验证码对您的网站来说太严格或太宽松,您可以调整验证码使用的阈值。默认值为 0.5。您可以使用下面描述的分数历史图表查看您网站的典型分数。如果有效用户有时被验证码阻止,您可以根据需要将分数调低至 0.4 或 0.3。如果允许机器人的次数过多,您可以将分数提高到 0.6 或 0.7。

reCAPTCHA 分数历史

此图表汇总了人类和机器人登录尝试的分数。通常,您应该看到分数在高端(用户)和低端(机器人)之间呈峰值。您可以使用这些结果来决定是否需要调整上述阈值。您可以使用下方的“重置分数统计”链接重置图表。

如果 0.0 的分数很常见,并且常规用户会收到验证电子邮件,则可能与另一个插件的 javascript 发生冲突、存在缓存问题或 reCAPTCHA 密钥不正确。

在测试模式下运行 reCAPTCHA

启用此选项后,验证码将在上面的图表中记录分数,但不会阻止机器人或访问者。

这旨在用于短时间(可能是几天或几个小时,取决于您的流量)以决定是否需要将阈值设置为高于或低于默认值 0.5,或检查是否与其他插件或主题发生冲突。由于记住禁用测试模式很重要,因为验证码不会在测试期间阻止机器人,因此此选项添加了一个管理员通知,只能通过禁用测试模式来关闭。

使用 WordPress 过滤器自定义 CAPTCHA 行为

您可以使用主题的 functions.php 文件或自定义插件中的 WordPress 过滤器定制 CAPTCHA 流程的某些方面。

过滤器“wfls_registration_blocked_message”可用于自定义注册被阻止时的消息。您可以编写自定义消息来替换默认消息和管理员联系链接,例如,引导访问者向您发送电子邮件或填写不同的联系表格。您的过滤器应返回您想要向访问者显示的消息。例如,如果您希望人们在被阻止时访问您的 /contact/ 页面:

function my_wfls_registration_blocked_message() {
return '<strong>REGISTRATION BLOCKED</strong>: Registration could not be completed. Please visit our <a href="/contact/">contact page</a> for help.';
}
add_filter('wfls_registration_blocked_message', 'my_wfls_registration_blocked_message');

过滤器“wordfence_ls_require_captcha”可用于在您选择的情况下禁用 CAPTCHA。这可能对包含 REST 端点的插件有用,这些端点的身份验证不需要 CAPTCHA。您的过滤器应在必要时返回 false 以绕过 CAPTCHA 要求,否则在需要 CAPTCHA 时返回 true。

滚动至顶部
扫描微信二维码联系我们 关闭