CAPTCHA
极狐GitLab 使用 CAPTCHA 来防止垃圾邮件和滥用。极狐GitLab 在注册页面上显示 CAPTCHA 表单,确认正在尝试创建账户的是真实用户,而不是机器人。
配置
极狐GitLab 目前支持对接以下人机校验服务:
Google reCAPTCHA v2
要使用 Google reCAPTCHA v2,首先要创建一个站点密钥和私钥。
- 前往 Google reCAPTCHA 页面。
- 要获取 reCAPTCHA v2 密钥,请填写表格并选择 提交。
- 以管理员身份登录您的极狐GitLab 服务器。
- 在左侧边栏中,选择 搜索或转到。
- 选择 管理中心。
- 在左侧边栏中,选择 设置 > 报告 (
admin/application_settings/reporting
)。 - 展开 垃圾信息及防机器人保护。
- 在 CAPTCHA 字段中,输入您在前面步骤中获得的密钥。
- 选择 启用 CAPTCHA 复选框。
- 要为通过密码登录的操作启用 CAPTCHA,请选中 启用 CAPTCHA 进行登录 复选框。
- 选择 保存更改。
- 如果想绕过垃圾信息检查,让响应中直接返回
recaptcha_html
,您可以:- 打开
app/services/spam/spam_verdict_service.rb
。 - 将
#execute
方法的第一行更改为return CONDITIONAL_ALLOW
。
- 打开
T-sec 天御
- 前往 T-sec 天御页面,参考相关文档,获取 CaptchaAppId 和 AppSecretKey。
- 以管理员身份登录您的极狐GitLab 服务器。
- 在左侧边栏中,选择 搜索或转到。
- 选择 管理中心。
- 在左侧边栏中,选择 设置 > 报告 (
admin/application_settings/reporting
)。 - 展开 垃圾信息及防机器人保护。
- 选择 启用 CAPTCHA 复选框,不配置密钥。
- 要为通过密码登录的操作启用 CAPTCHA,请选中 启用 CAPTCHA 进行登录 复选框。
- 选择 保存更改。
-
打开 Rails 控制台,运行以下命令启用功能标志
tencent_captcha
:Feature.enable(:tencent_captcha)
-
将前面步骤中获取的 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' }