OttoLi 的胡言乱语

  • 账户
    • 登录
    • 注册
    • 个人中心
head

为 WordPress 添加 reCAPTCHA 人机验证

2020年11月28日 7257点热度 2人点赞 4条评论

最近快被洋鬼子的垃圾评论轰炸到自闭了,每天都要上线清理垃圾评论,之前我使用 IP 封禁、关键词过滤等手段感觉都不太好使,索性还是加上人机验证吧,虽然会稍微有点影响用户使用,但应该能在很大程度上规避垃圾评论了

写篇博文记录一下安装过程,以免之后忘了,顺便水一篇文章

什么是reCAPTCHA

你应该在很多地方见过这个验证按钮,它需要你向电脑证明“我是人类”

只需单击验证的 reCAPTCHA
需要进行识别验证的 reCAPTCHA

有的时候你只需要点击按钮就可以通过验证,而有时候他需要你进行各种各样的图像识别验证

Wikipedia - reCAPTCHA

reCAPTCHA项目是由卡内基梅隆大学所发展的系统,主要目的是利用CAPTCHA技术来帮助典籍数字化的进行,这个项目将由书本扫描下来无法准确的被光学文字识别技术识别的文字显示在CAPTCHA问题中,让人类在回答CAPTCHA问题时用人脑加以识别。reCAPTCHA正数字化《纽约时报》(New York Times)的扫描存档,目前已经完成20年份的资料,并希望在2010年完成110年份的资料。2009年9月17日,Google宣布收购reCAPTCHA。

申请reCAPTCHA密钥

打开 http://www.google.com/recaptcha/admin 注册新网站

一般选择 reCAPTCHA 第 2 版、“进行人机身份验证”复选框 就可以

在之后的页面会展示你申请到的一组密钥,先记下来,等会要用

安装 WordPress 插件 reCaptcha by BestWebSoft

在 WordPress 管理后台搜索安装插件 reCaptcha by BestWebSoft

安装启用后,进入插件设置页面,在 Authentication 填入刚刚获取到的一组密钥

reCaptcha Version 选择 Version 2 (与刚刚申请的版本一致)

Enable reCaptcha for 中选择需要使用 reCAPTCHA 的表单

最后保存设置就可以了

大陆使用优化

由于在国内连不上 google.com,刚刚设置好的 reCAPTCHA 对很多大陆用户来说是不生效的,我们需要把插件中所有默认指向 google.com 的链接都替换为 recaptcha.net,因为这个域名是谷歌在中国设的服务器

在 WordPress 管理后台打开 插件编辑器,选择插件 reCaptcha by BestWebSoft,编辑文件 google-captcha/google-captcha.php

  1. 查找所有 google.com,替换为 recaptcha.net
  2. 查找 google\.com,替换为 recaptcha\.net
  3. 将685行、691行的 ' . $use_globally . ' 替换为 recaptcha.net

替换前:

    $api_url = sprintf( 'https://www.' . $use_globally . '/recaptcha/api.js?%srender=explicit', $callback );
        break;
        case (
                isset( $gglcptch_options['recaptcha_version'] ) &&
                'v3' == $gglcptch_options['recaptcha_version']
        ) :
    $api_url = sprintf( 'https://www.' . $use_globally . '/recaptcha/api.js?render=%s', $gglcptch_options['public_key'] );

替换后:

    $api_url = sprintf( 'https://www.recaptcha.net/recaptcha/api.js?%srender=explicit', $callback );
        break;
        case (
                isset( $gglcptch_options['recaptcha_version'] ) &&
                'v3' == $gglcptch_options['recaptcha_version']
        ) :
    $api_url = sprintf( 'https://www.recaptcha.net/recaptcha/api.js?render=%s', $gglcptch_options['public_key'] );

Kratos 主题似乎和 reCaptcha by BestWebSoft 这插件不是很兼容,评论区的 reCAPTCHA 验证弹不出来,目前只有登陆界面生效了。

所以暂时先把评论区设为仅登陆可评论了,大家见谅

替换 recaptcha.net 的方法参考文章 https://www.cheshirex.com/2362.html

本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2023年11月21日

OttoLi

涧户寂无人,纷纷开且落
——辛夷坞

打赏 点赞
< 上一篇
下一篇 >

文章评论

  • ding

    请教一下博主,你的博客评论 和注册 是如何用邮件提醒的呢 !是插件吗 !请教有相关教程吗?谢谢

    2021年12月5日
    登录以回复
    • OttoLi

      @ding WordPress默认就支持邮件提醒,但没有配置smtp的设置选项,你安装一个smtp插件配置一下发件邮箱就行了

      2021年12月5日
      登录以回复
  • ding

    谢谢 ! 你的主题是自己优化的吗? 和作者的不太一样,作者的主题反应好慢 ,后台都比前台快。

    2021年12月5日
    登录以回复
    • OttoLi

      @ding 我确实改了一些代码,但是大部分都是外观上的。性能上应该没啥区别吧。卡的话可以检查一下是不是哪些js、css文件走的cdn慢,可以换到本地或者更快的cdn

      2021年12月5日
      登录以回复
  • 您需要 登录 之后才可以评论

    OttoLi

    涧户寂无人,纷纷开且落
    ——辛夷坞

    最新 热点 随机
    最新 热点 随机
    精粤 h610i 主板 BIOS 启动画面 logo 修改自定义 Office/Visio/Project 安装与激活教程 - 适用于各种版本/正版/非正版 CentOS 安装运行 Hentai@Home 教程 自搭建全平台私有密码库 bitwarden & Vaultwarden 如何在不移动本地文件的情况下用 OneDrive 客户端将文件上传至 OneDrive —— 利用 mklink 软链接上传文件 Linux 如何使用密钥对连接 SSH 并关闭密码连接
    [下载]那些超级有用的美术技法教程书[资源]攻壳机动队系列蓝光收藏指南Netch-可替代 SSTap 的开源游戏加速器2021 甲骨文云 Oracle Always Free 永久免费 VPS 服务器 | 介绍/注册/申请/部署/连接/注意事项APlayer & MetingJS 音乐播放器使用指南WordPress 建站日志
    阿里云同账号迁移服务器教程 自搭建全平台私有密码库 bitwarden & Vaultwarden Linux 如何使用密钥对连接 SSH 并关闭密码连接 用 VS Code 配置 C/C++ 开发环境 2021 甲骨文云 Oracle Always Free 永久免费 VPS 服务器 | 介绍/注册/申请/部署/连接/注意事项 WordPress 建站日志
    标签聚合
    ssr CentOS 资源 Linux 动漫 游戏 日期与时间 甲骨文 免费 教程 Ubuntu VPS Windows 绘画 ssh 白嫖 oracle Wordpress Office 建站
    关于本站

    Otto 不知道该说些什么,于是写了这么一行字……

    目录 隐藏
    1. 什么是reCAPTCHA
    2. 申请reCAPTCHA密钥
    3. 安装 WordPress 插件 reCaptcha by BestWebSoft
    4. 大陆使用优化

    COPYRIGHT © 2022 OttoLi. ALL RIGHTS RESERVED.SITEMAP

    THEME KRATOS 豫ICP备20004659号 萌ICP备20210150号

    腾讯云  LiteServer  Google Analytics  CloudFlare