Line 21 | Line 21 |
---|
/** * Possible request methods to verify the token. */
|
/** * Possible request methods to verify the token. */
|
const CURL = 'curl'; const POST = 'post'; const SOCKET = 'socket';
| const CURL = 'curl'; const POST = 'post'; const SOCKET = 'socket';
|
/** * Possible domain names to load the script and verify the token. */
|
/** * Possible domain names to load the script and verify the token. */
|
const GOOGLE = 'google.com'; const RECAPTCHA = 'recaptcha.net';
| const GOOGLE = 'google.com'; const RECAPTCHA = 'recaptcha.net'; const RECAPTCHA_CN = 'recaptcha.google.cn';
/** @var string[] List of supported domains */ static public $supported_domains = [ self::GOOGLE, self::RECAPTCHA, self::RECAPTCHA_CN ];
|
/** @var array CAPTCHA types mapped to their action */ static protected $actions = [
| /** @var array CAPTCHA types mapped to their action */ static protected $actions = [
|
Line 139 | Line 147 |
---|
$language->add_lang('captcha_recaptcha');
|
$language->add_lang('captcha_recaptcha');
|
return ($config->offsetGet('recaptcha_v3_key') ?? false) && ($config->offsetGet('recaptcha_v3_secret') ?? false);
| return ($config->offsetGet('recaptcha_v3_key') ?? false) && ($config->offsetGet('recaptcha_v3_secret') ?? false);
|
}
/**
| }
/**
|
Line 162 | Line 169 |
---|
*/ global $config, $language, $phpbb_log, $request, $template, $user;
|
*/ global $config, $language, $phpbb_log, $request, $template, $user;
|
$module->tpl_name = 'captcha_recaptcha_v3_acp'; $module->page_title = 'ACP_VC_SETTINGS';
| $module->tpl_name = 'captcha_recaptcha_v3_acp'; $module->page_title = 'ACP_VC_SETTINGS'; $recaptcha_v3_method = $request->variable('recaptcha_v3_method', '', true);
|
$form_key = 'acp_captcha'; add_form_key($form_key);
| $form_key = 'acp_captcha'; add_form_key($form_key);
|
Line 173 | Line 181 |
---|
if (!check_form_key($form_key)) { trigger_error($language->lang('FORM_INVALID') . adm_back_link($module->u_action), E_USER_WARNING);
|
if (!check_form_key($form_key)) { trigger_error($language->lang('FORM_INVALID') . adm_back_link($module->u_action), E_USER_WARNING);
|
| }
if (empty($recaptcha_v3_method)) { trigger_error($language->lang('EMPTY_RECAPTCHA_V3_REQUEST_METHOD') . adm_back_link($module->u_action), E_USER_WARNING); }
$recaptcha_domain = $request->variable('recaptcha_v3_domain', '', true); if (in_array($recaptcha_domain, self::$supported_domains)) { $config->set('recaptcha_v3_domain', $recaptcha_domain);
|
}
$config->set('recaptcha_v3_key', $request->variable('recaptcha_v3_key', '', true)); $config->set('recaptcha_v3_secret', $request->variable('recaptcha_v3_secret', '', true));
|
}
$config->set('recaptcha_v3_key', $request->variable('recaptcha_v3_key', '', true)); $config->set('recaptcha_v3_secret', $request->variable('recaptcha_v3_secret', '', true));
|
$config->set('recaptcha_v3_domain', $request->variable('recaptcha_v3_domain', '', true)); $config->set('recaptcha_v3_method', $request->variable('recaptcha_v3_method', '', true));
| $config->set('recaptcha_v3_method', $recaptcha_v3_method);
|
foreach (self::$actions as $action) {
| foreach (self::$actions as $action) {
|
Line 206 | Line 224 |
---|
'RECAPTCHA_V3_SECRET' => $config['recaptcha_v3_secret'] ?? '',
'RECAPTCHA_V3_DOMAIN' => $config['recaptcha_v3_domain'] ?? self::GOOGLE,
|
'RECAPTCHA_V3_SECRET' => $config['recaptcha_v3_secret'] ?? '',
'RECAPTCHA_V3_DOMAIN' => $config['recaptcha_v3_domain'] ?? self::GOOGLE,
|
'RECAPTCHA_V3_DOMAINS' => [self::GOOGLE, self::RECAPTCHA],
| 'RECAPTCHA_V3_DOMAINS' => self::$supported_domains,
|
|
|
'RECAPTCHA_V3_METHOD' => $config['recaptcha_v3_method'] ?? self::POST,
| 'RECAPTCHA_V3_METHOD' => $config['recaptcha_v3_method'] ?? '',
|
'RECAPTCHA_V3_METHODS' => [ self::POST => ini_get('allow_url_fopen') && function_exists('file_get_contents'), self::CURL => extension_loaded('curl') && function_exists('curl_init'),
| 'RECAPTCHA_V3_METHODS' => [ self::POST => ini_get('allow_url_fopen') && function_exists('file_get_contents'), self::CURL => extension_loaded('curl') && function_exists('curl_init'),
|
Line 341 | Line 359 |
---|
if ($result->isSuccess()) { $this->solved = true;
|
if ($result->isSuccess()) { $this->solved = true;
|
| $this->confirm_code = $this->code;
|
return false; }
return $language->lang('RECAPTCHA_INCORRECT');
|
return false; }
return $language->lang('RECAPTCHA_INCORRECT');
|
| }
/** * {@inheritDoc} */ public function get_login_error_attempts(): string { global $language;
$language->add_lang('captcha_recaptcha');
return 'RECAPTCHA_V3_LOGIN_ERROR_ATTEMPTS';
|
} }
| } }
|