Help us learn about your current experience with the documentation. Take the survey.

reCAPTCHA

  • Tier: 免费版、高级版、旗舰版
  • Offering: GitLab 自托管版、GitLab 专属版

GitLab 利用 reCAPTCHA 来防范垃圾邮件和滥用行为。GitLab 在注册页面上显示 CAPTCHA 表单, 以确认是真实用户而非机器人正在尝试创建账户。

配置

要使用 reCAPTCHA,首先需要创建站点密钥和私钥。

  1. 访问 Google reCAPTCHA 页面
  2. 要获取 reCAPTCHA v2 密钥,填写表单并选择 提交
  3. 以管理员身份登录您的 GitLab 服务器。
  4. 在左侧边栏底部,选择 Admin
  5. 选择 设置 > 报告
  6. 展开 垃圾邮件和机器人防护
  7. 在 reCAPTCHA 字段中,输入您在上一步中获得的密钥。
  8. 选中 启用 reCAPTCHA 复选框。
  9. 要为密码登录启用 reCAPTCHA,请选中 为登录启用 reCAPTCHA 复选框。
  10. 选择 保存更改
  11. 要绕过垃圾邮件检查并触发返回 recaptcha_html 的响应:
    1. 打开 app/services/spam/spam_verdict_service.rb
    2. #execute 方法的第一行更改为 return CONDITIONAL_ALLOW

请确保您正在查看的是公开项目中的 issuable。如果您正在处理 issue,该 issue 是公开的。

使用 HTTP 头为用户登录启用 reCAPTCHA

您可以通过 用户界面 或设置 X-GitLab-Show-Login-Captcha HTTP 头 来为用户密码登录启用 reCAPTCHA。 例如,在 NGINX 中,可以通过 proxy_set_header 配置变量来实现:

proxy_set_header X-GitLab-Show-Login-Captcha 1;

对于 Linux 包安装实例,在 /etc/gitlab/gitlab.rb 中配置:

nginx['proxy_set_headers'] = { 'X-GitLab-Show-Login-Captcha' => '1' }