当前位置

Drupal中使用Google Recaptcha V3屏蔽垃圾

James Qi 在 2022年8月18日 - 14:46 提交

互联网上的垃圾制造者层出不穷,总在设法搞些破坏,我们2019年开始在Drupal网站启用Google_Recaptcha屏蔽垃圾,起到一定作用,但也还是有漏网之鱼,通过Drupal的“联系我们”表单发送垃圾邮件或者在留言的地方发布垃圾广告。

更有甚者还发来垃圾邮件,推荐他们的反屏蔽手段:

XEvil-最好的验证码求解工具,具有无限数量的解决方案,没有线程数限制和最高精度!
XEvil5.0支持超过12.000类型的图像验证码,包括ReCaptcha,Google
captcha,Yandex captcha,Microsoft captcha,Steam
captcha,SolveMedia,ReCaptcha-2和(是的!!!)ReCaptcha-3了。

1.) 灵活: 您可以调整非标准验证码的逻辑
2.) 简单:
只需启动XEvil,按1按钮-它将自动接受来自您的应用程序或脚本的验证码
3.) 快:
0,01对于简单的验证码秒,关于20..40秒的ReCaptcha-2,约5。..8秒的ReCaptcha-3

您可以将XEvil与任何SEO/SMM软件,密码检查器的任何解析器,任何分析应用程序或任何自定义脚本一起使用:
   XEvil支持大多数知名的反验证码服务 API: 2Captcha, RuCaptcha,
AntiGate (Anti-Captcha), DeathByCaptcha, etc.

有兴趣吗? 只需在YouTube"XEvil"中搜索即可获取更多信息

我们去reCAPTCHA的官方网站看了各个版本推出的时间:

  • reCAPTCHA v2:2014
  • reCAPTCHA v3:2018
  • reCAPTCHA Enterprise:2020

显然我们用的v2很过时了,最近和同事一起研究升级到使用v3,本来想一步到位用企业版,但没有找到合适的Drupal插件,而Drupal已经有一个现成的reCAPTCHA v3插件

经过同事的研究和试用,Drupal 7现在需要用开发版才行,这里下载:7.x-1.x-dev

进入sites/all/modules目录下,wget https://ftp.drupal.org/files/projects/recaptcha_v3-7.x-1.x-dev.zip,unzip recaptcha_v3-7.x-1.x-dev.zip解压以后模块文件放置在 recaptcha_v3 目录下,然后在“模块”菜单中开启:

进入配置之前需要在Google reCAPTCHA官方网站注册获取Key:

获取到的Key填写到Drupal中的验证码配置界面:

这其中要创建一个名为recaptcha的action,当v3侦测到用户的得分低于0.5的时候,给出备用的办法(上图是选择的 recaptcha v2)让用户继续来验证。

最后把这个命名为recaptcha的动作选为默认的验证码:

为了让国内的用户使用验证码不被屏蔽,还需要修改sites/all/modules/recaptcha_v3/recaptcha_v3.module 这个文件,替换域名:

        array(
          'type' => 'external',
          //jamesqi 2022-8-17//'data' => url('https://www.google.com/recaptcha/api.js',
          'data' => url('https://www.recaptcha.net/recaptcha/api.js',
            array(
              'query' => array(
                'render' => variable_get('recaptcha_v3_site_key', ''),
              ),
              'absolute' => TRUE,
            )
          ),
          'scope' => 'header',
          'group' => JS_LIBRARY,
        ),

一般来说这样就可以使用了,如果遇到还不能使用,有可能是网站使用了jquery等其他js代码以及采用了Cloudflare的Rocket Loader等js延迟加载的办法,导致验证码的js代码出现的顺序晚了,可以考虑人工修改让验证码js在页面中出现得更早。

如果是系列网站都需要开启这个v3,可以使用drush命令,同事也已经尝试出来了:

# Google recaptcha-v3

drush en -y recaptcha_v3 #开启该模块

drush vset recaptcha_v3_site_key "6LdE...lCDr"
drush vset recaptcha_v3_secret_key "6LdE...2C3d"
drush vset recaptcha_v3_verify_hostname 1

drush sql-query "INSERT INTO recaptcha_v3_actions (id,action,challenge) VALUES ('recaptcha','submit','recaptcha/reCAPTCHA');" #默认score是5

drush vset captcha_default_challenge "recaptcha_v3/recaptcha" #设置默认的验证方式为v3
drush vset captcha_add_captcha_description 0 #Add a description to the CAPTCHA 将验证码之前的一段描述取消

这样设置后自己试一试匿名留言等功能,看是否可以通过验证码。

以后就可以在Google reCAPTCHA后台观察数据和效果了:

 

添加新评论

Plain text

  • 不允许使用HTML标签。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。