CAPTCHA

极狐GitLab 使用 CAPTCHA 来防止垃圾邮件和滥用。极狐GitLab 在注册页面上显示 CAPTCHA 表单,确认正在尝试创建账户的是真实用户,而不是机器人。

配置

极狐GitLab 目前支持对接以下人机校验服务:

Google reCAPTCHA v2

要使用 Google reCAPTCHA v2,首先要创建一个站点密钥和私钥。

  1. 前往 Google reCAPTCHA 页面
  2. 要获取 reCAPTCHA v2 密钥,请填写表格并选择 提交
  3. 以管理员身份登录您的极狐GitLab 服务器。
  4. 在左侧边栏中,选择 搜索或转到
  5. 选择 管理中心
  6. 在左侧边栏中,选择 设置 > 报告 (admin/application_settings/reporting)。
  7. 展开 垃圾信息及防机器人保护
  8. 在 CAPTCHA 字段中,输入您在前面步骤中获得的密钥。
  9. 选择 启用 CAPTCHA 复选框。
  10. 要为通过密码登录的操作启用 CAPTCHA,请选中 启用 CAPTCHA 进行登录 复选框。
  11. 选择 保存更改
  12. 如果想绕过垃圾信息检查,让响应中直接返回 recaptcha_html,您可以:
    1. 打开 app/services/spam/spam_verdict_service.rb
    2. #execute 方法的第一行更改为 return CONDITIONAL_ALLOW

T-sec 天御

  1. 前往 T-sec 天御页面,参考相关文档,获取 CaptchaAppId 和 AppSecretKey。
  2. 以管理员身份登录您的极狐GitLab 服务器。
  3. 在左侧边栏中,选择 搜索或转到
  4. 选择 管理中心
  5. 在左侧边栏中,选择 设置 > 报告 (admin/application_settings/reporting)。
  6. 展开 垃圾信息及防机器人保护
  7. 选择 启用 CAPTCHA 复选框,不配置密钥。
  8. 要为通过密码登录的操作启用 CAPTCHA,请选中 启用 CAPTCHA 进行登录 复选框。
  9. 选择 保存更改
  10. 打开 Rails 控制台,运行以下命令启用功能标志 tencent_captcha

    Feature.enable(:tencent_captcha)
    
  11. 将前面步骤中获取的 CaptchaAppId 和 AppSecretKey 配置到环境变量:

    TC_CAPTCHA_ID='******'
    TC_CAPTCHA_KEY='******'
    

使用 HTTP header 为用户登录启用 CAPTCHA

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

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

使用极狐GitLab Linux 软件包安装时,您可以通过 /etc/gitlab/gitlab.rb 进行配置:

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