谷歌验证 reCAPTCHA可保护您免受垃圾邮件和其他类型的自动滥用。借助 Contact Form 7 的 reCAPTCHA 集成模块,您可以阻止垃圾邮件机器人提交的滥用表单。reCAPTCHA API 的新版本是 v3。Contact Form 7 5.1 及更高版本使用此 reCAPTCHA v3 API。reCAPTCHA v3 在后台运行,因此用户无需阅读图像中的模糊文本,甚至无需勾选“我不是机器人”复选框。
注意: reCAPTCHA v3 的 API 密钥与 v2 的密钥不同;v2 的密钥不适用于 v3 API。您需要再次注册您的网站以获取 v3 的新密钥。
如果您使用的是旧版本的 Contact Form 7,并且正在寻找有关 v2 API 的 reCAPTCHA 模块的信息,请参阅reCAPTCHA (v2)。
注册网站
要开始使用 reCAPTCHA,您首先需要注册 WordPress 网站。reCAPTCHA 是 Google 的服务,因此您需要一个 Google 帐户才能使用它。使用该帐户登录 Google,然后转到reCAPTCHA 管理控制台(https://www.google.com/recaptcha/admin/create)。您将看到一个简单的注册表单,如下所示:
![开始使用 reCAPTCHA](https://tkwlkj.com/wp-content/uploads/2024/07/contact-form-7-google-recaptcha-7.jpg)
从类型选项中选择reCAPTCHA v3,然后在域字段中输入网站的域。
注册网站后,您将获得该网站的站点密钥和密钥。
接下来,转到 WordPress 管理屏幕并打开 Contact > 集成菜单页面。您将在那里看到一个名为reCAPTCHA的框。单击框中的“设置集成” 。它将显示输入字段“站点密钥”和
“密钥”。将您在上一步中收到的两个密钥复制粘贴到字段中,然后单击“保存更改”。
![Contact Form 7集成reCAPTCHA v3](https://tkwlkj.com/wp-content/uploads/2024/07/contact-form-7-google-recaptcha-2.jpg)
就是这样。现在您的Contact Form 7 表单使用 reCAPTCHA 的分数来验证表单提交是来自人类还是来自垃圾邮件机器人。(不需要在表单中添加任何标签,会自动在每一个Form 7表单中显示reCAPTCHA)
reCAPTCHA v3 不需要 CAPTCHA 小部件(reCAPTCHA v2 中使用的“我不是机器人”复选框)即可工作,因此[recaptcha]
不再需要表单标签。如果[recaptcha]
在表单模板中发现表单标签,Contact Form 7 5.1 或更高版本会忽略它们并将其替换为空字符串。
常见问答
CAPTCHA 没有显示,是不是坏了?
reCAPTCHA v3 在后台运行,不需要 CAPTCHA 小部件即可运行。如果 reCAPTCHA v3 在您网站的前端正常运行,则每个页面的右下角应该会出现一个小的 reCAPTCHA 徽章。
![reCAPTCHA v3](https://tkwlkj.com/wp-content/uploads/2024/07/reCAPTCHA-v3.png)
同样,由于 reCAPTCHA v3 中不再需要该按钮,reCAPTCHA小部件的表单标签生成器按钮( [recaptcha]
) 不会出现在“表单”选项卡面板中。如果[recaptcha]
在表单模板中使用了标签,它们将被忽略并自动替换为空字符串,因此无需手动删除标签。
reCAPTCHA 徽章让我很烦,我可以隐藏它吗?
根据 reCAPTCHA 的官方常见问题解答, Google 允许您隐藏 reCAPTCHA 徽章。要隐藏徽章,请在 CSS 样式表的某个位置添加此样式规则:
.grecaptcha-badge { visibility: hidden; }
相反,您必须在网站用户显眼的位置添加指向 Google隐私政策和服务条款页面的文本链接。
reCAPTCHA 的脚本文件在每个页面上都会加载,我可以停止它吗?
这并非不可能,但绝不建议这样做。这样做会阻止 reCAPTCHA 准确工作。以下文章解释了 reCAPTCHA 脚本在每个页面上加载的原因:
在什么情况下 reCAPTCHA 会判定表单提交是垃圾邮件?
reCAPTCHA 会给出一个分数,告诉您互动的可疑程度。Contact Form 7 会将该分数与某个阈值进行比较,当分数低于阈值时,机器人会将提交的内容视为垃圾邮件。
reCAPTCHA 的分数阈值是多少,我可以更改阈值吗?
阈值的默认值为 0.50。您可以使用wpcf7_recaptcha_threshold
过滤器钩子更改它,如下例所示:
add_filter( 'wpcf7_recaptcha_threshold',
function( $threshold ) {
$threshold = 0.3; // decrease threshold to 0.3
return $threshold;
},
10, 1
);
不过,不要急于这么做,应该先了解并分析当前的情况。
有没有关于 reCAPTCHA 在我的网站上运行的统计数据?
reCAPTCHA 的管理控制台提供了一些有用的统计数据。另外,如果您使用 Flamingo 插件,您可以检查每个表单提交的实际 reCAPTCHA 分数。
我已经激活了 reCAPTCHA,但仍然通过联系表单收到垃圾邮件,这是为什么?
reCAPTCHA 和其他 CAPTCHA 解决方案旨在有效阻止垃圾邮件机器人,但对其他类型的垃圾邮件却束手无策。人类垃圾邮件发送者可以轻松绕过该程序。
为了防范不同类型的垃圾邮件活动,Contact Form 7 提供了多个垃圾邮件防护模块。建议您一起使用两个或更多模块。
我想使用 reCAPTCHA v2,而不是 v3,可以吗?
Contact Form 7 5.1 及更高版本仅支持 reCAPTCHA v3。我建议使用 v3,但是,如果您坚持使用 reCAPTCHA v2,则需要为 Contact Form 7 安装附加插件。
IQComputing为 Contact Form 7创建的插件ReCaptcha v2允许您使用 reCAPTCHA v2 代替 v3。此插件经过精心设计,能够与 Contact Form 7 协同工作而不会产生冲突。
reCAPTCHA 是否符合 GDPR?
由于我不是律师,所以我无法回答这个问题。我从未见过任何法律先例认为 reCAPTCHA 违反了 GDPR。如果您知道任何此类先例,请告诉我。
reCAPTCHA 不起作用,并且联系表单总是显示橙色边框响应。
首先找出橙色边框响应的真正原因。橙色边框表示垃圾邮件保护模块正在检测垃圾邮件活动,但 reCAPTCHA 并不是 Contact Form 7 提供的垃圾邮件保护模块。
请参阅常见问题解答 >为什么我收到带有橙色边框的错误消息?
如果确认 reCAPTCHA 是原因,则找出出现此类误报的原因。Flamingo 插件的垃圾邮件记录功能将提供有用的线索。
“垃圾邮件日志:reCAPTCHA 响应令牌为空。”这是什么意思?
您可能会在Flamingo 插件的“入站消息”屏幕中看到此消息。这意味着 reCAPTCHA 模块已确定此消息是垃圾邮件,因为响应令牌(通常应具有值)为空。
空的 reCAPTCHA 令牌可能由多种不同的原因造成。其中一个常见原因是 reCAPTCHA 的脚本文件未加载,或出现故障。在大多数情况下,这是由于网站使用的主题设计不当造成的。
如果这种情况不经常发生,并且带有此日志的消息显然是垃圾邮件,则您不必太在意。似乎有些垃圾邮件发送者使用自定义 HTTP 客户端工具来提交垃圾邮件,与通常的浏览器不同,此类工具似乎会忽略脚本。此类尝试已被正确阻止。
我可以使用“www.recaptcha.net”吗?【中国地区适用】
是的你可以。
对于居住在无法访问默认 www.google.com 服务器的地区用户,reCAPTCHA 提供了www.recaptcha.net服务器作为替代方案。
要在您的网站上使用 www.recaptcha.net,请将以下 PHP 代码行添加到主题的 functions.php 文件中或适当的位置:
add_filter( 'wpcf7_use_recaptcha_net', '__return_true' );
![](https://tkwlkj.com/wp-content/uploads/2024/07/contact-form-7-google-recaptcha-8.jpg)
reCAPTCHA 可以在全球范围内使用吗?
可以。当“www.google.com”无法访问时,请在您的代码中使用“www.recaptcha.net”。
- 首先,将 <script src=”https://www.google.com/recaptcha/api.js”></script> 替换为 <script src=”https://www.recaptcha.net/recaptcha/api.js”></script>
- 之后,对您网站上使用“www.google.com/recaptcha/”的任何其他位置应用相同的规则。