HEX
Server: nginx/1.18.0
System: Linux iZj6c1ieg2jrpk1z5tzi19Z 6.3.9-1.el7.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jun 21 22:18:40 EDT 2023 x86_64
User: www (1001)
PHP: 8.2.4
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/www.cytocare.cn/wp-content/plugins/friendly-captcha/includes/settings.php
<?php

/* In this file the settings for FriendlyCaptcha are registered */

if (is_admin()) {
    add_action('admin_init', 'frcaptcha_settings_init');
    add_action('update_option_' . FriendlyCaptcha_Plugin::$option_sitekey_name, 'frcaptcha_settings_validate');
    add_action('update_option_' . FriendlyCaptcha_Plugin::$option_api_key_name, 'frcaptcha_settings_validate');

    function frcaptcha_settings_init()
    {
        register_setting(
            FriendlyCaptcha_Plugin::$option_group,
            FriendlyCaptcha_Plugin::$option_sitekey_name
        );
        register_setting(
            FriendlyCaptcha_Plugin::$option_group,
            FriendlyCaptcha_Plugin::$option_api_key_name
        );
        register_setting(
            FriendlyCaptcha_Plugin::$option_group,
            FriendlyCaptcha_Plugin::$option_skip_style_injection_name
        );
        register_setting(
            FriendlyCaptcha_Plugin::$option_group,
            FriendlyCaptcha_Plugin::$option_enable_mutation_observer_name
        );
        register_setting(
            FriendlyCaptcha_Plugin::$option_group,
            FriendlyCaptcha_Plugin::$option_enable_v2_name
        );

        foreach (FriendlyCaptcha_Plugin::$integrations as $integration) {
            register_setting(
                FriendlyCaptcha_Plugin::$option_group,
                FriendlyCaptcha_Plugin::$instance->get_integration_option_name($integration['slug'])
            );
        }

        /*Widget settings */
        register_setting(
            FriendlyCaptcha_Plugin::$option_group,
            FriendlyCaptcha_Plugin::$option_widget_language_name
        );
        register_setting(
            FriendlyCaptcha_Plugin::$option_group,
            FriendlyCaptcha_Plugin::$option_widget_dark_theme_active_name
        );

        /*Endpoints*/
        register_setting(
            FriendlyCaptcha_Plugin::$option_group,
            FriendlyCaptcha_Plugin::$option_eu_puzzle_endpoint_active_name
        );
        register_setting(
            FriendlyCaptcha_Plugin::$option_group,
            FriendlyCaptcha_Plugin::$option_global_puzzle_endpoint_active_name
        );

        /* General section */

        // Section
        add_settings_section(
            'frcaptcha_general_settings_section',
            'Account Configuration',
            'frcaptcha_general_section_callback',
            'friendly_captcha_admin'
        );

        add_settings_section(
            'frcaptcha_save_settings_section',
            '',
            'frcaptcha_save_section_callback',
            'friendly_captcha_admin'
        );

        add_settings_field(
            'frcaptcha_settings_sitekey_field',
            'Sitekey',
            'frcaptcha_settings_field_callback',
            'friendly_captcha_admin',
            'frcaptcha_general_settings_section',
            array(
                "option_name" => FriendlyCaptcha_Plugin::$option_sitekey_name,
                "description" => "Paste your application's sitekey value.<br>Don't have an application yet? Create one <a href=\"https://app.friendlycaptcha.com/dashboard/\" target=\"_blank\">here</a>.",
                "type" => "text"
            )
        );

        add_settings_field(
            'frcaptcha_settings_api_key_field',
            'API Key',
            'frcaptcha_settings_field_callback',
            'friendly_captcha_admin',
            'frcaptcha_general_settings_section',
            array(
                "option_name" => FriendlyCaptcha_Plugin::$option_api_key_name,
                "description" => "Create a new API key in the <a href=\"https://app.friendlycaptcha.com/dashboard/\" target=\"_blank\">account panel</a> and paste the value here. Keep this one secret!",
                "type" => "password"
            )
        );

        /* Integrations section */

        // Section
        add_settings_section(
            'frcaptcha_integrations_settings_section',
            'Integrations',
            'frcaptcha_integrations_section_callback',
            'friendly_captcha_admin'
        );

        $show_all_integrations = isset($_GET['frcaptcha-all-integrations']);

        foreach (FriendlyCaptcha_Plugin::$integrations as $integration) {
            // Only show integrations for plugins that are installed unless the user wants to see all integrations
            if (!$show_all_integrations && array_key_exists('plugins', $integration)) {
                $plugins = $integration['plugins'];

                $active = false;
                foreach ($plugins as $plugin) {
                    if (is_plugin_active($plugin)) {
                        $active = true;
                        break;
                    }
                }

                if (!$active) {
                    continue;
                }
            }

            add_settings_field(
                'frcaptcha_settings_' . $integration['slug'] . '_integration_field',
                $integration['name'],
                'frcaptcha_settings_field_callback',
                'friendly_captcha_admin',
                'frcaptcha_integrations_settings_section',
                array(
                    "option_name" => FriendlyCaptcha_Plugin::$instance->get_integration_option_name($integration['slug']),
                    "description" => $integration['settings_description'],
                    "type" => "checkbox"
                )
            );
        }

        /* Widget settings section */

        // Section
        add_settings_section(
            'frcaptcha_widget_settings_section',
            'Widget Settings',
            'frcaptcha_widget_section_callback',
            'friendly_captcha_admin'
        );

        if (!FriendlyCaptcha_Plugin::$instance->get_enable_v2()) {
            add_settings_field(
                'frcaptcha_settings_widget_language_field',
                'Widget Language',
                'frcaptcha_widget_language_field_callback',
                'friendly_captcha_admin',
                'frcaptcha_widget_settings_section',
                array(
                    "option_name" => FriendlyCaptcha_Plugin::$option_widget_language_name,
                    "description" => "Set the language for the widget. Need another language? <a href=\"https://docs.friendlycaptcha.com/#/widget_api?id=data-lang-attribute\">Help us translate</a>.",
                )
            );
        }

        add_settings_field(
            'frcaptcha_settings_widget_theme_field',
            'Dark theme',
            'frcaptcha_settings_field_callback',
            'friendly_captcha_admin',
            'frcaptcha_widget_settings_section',
            array(
                "option_name" => FriendlyCaptcha_Plugin::$option_widget_dark_theme_active_name,
                "description" => "Enable a dark theme for Friendly Captcha widgets.",
                "type" => "checkbox"
            )
        );

        if (!FriendlyCaptcha_Plugin::$instance->get_enable_v2()) {
            add_settings_field(
                'frcaptcha_settings_skip_style_injection_field',
                'Disable Style Injection',
                'frcaptcha_settings_field_callback',
                'friendly_captcha_admin',
                'frcaptcha_widget_settings_section',
                array(
                    "option_name" => FriendlyCaptcha_Plugin::$option_skip_style_injection_name,
                    "description" => "Don't load the CSS-Styles for the widget. Use this if you want to style the widget yourself.",
                    "type" => "checkbox"
                )
            );
        }

        add_settings_field(
            'frcaptcha_settings_mutation_observer',
            'Dynamically Initialize',
            'frcaptcha_settings_field_callback',
            'friendly_captcha_admin',
            'frcaptcha_widget_settings_section',
            array(
                "option_name" => FriendlyCaptcha_Plugin::$option_enable_mutation_observer_name,
                "description" => "Make Friendly Captcha look for new widgets that are dynamically added to the page.<br>Enable this when you are using Friendly Captcha in a popup or a multi-step form.",
                "type" => "checkbox"
            )
        );

        add_settings_field(
            'frcaptcha_settings_enable_v2',
            'Use Friendly Captcha v2',
            'frcaptcha_settings_field_callback',
            'friendly_captcha_admin',
            'frcaptcha_widget_settings_section',
            array(
                "option_name" => FriendlyCaptcha_Plugin::$option_enable_v2_name,
                "description" => " Friendly Captcha v2 is the newest version with improved security and a better user experience.<br>You first need to enable v2 for your application in the Friendly Captcha dashboard.",
                "type" => "checkbox"
            )
        );


        /* Endpoint section */

        // Section
        add_settings_section(
            'frcaptcha_endpoint_settings_section',
            'Endpoint Settings (optional)',
            'frcaptcha_endpoint_section_callback',
            'friendly_captcha_admin'
        );

        add_settings_field(
            'frcaptcha_settings_global_endpoint_field',
            '🌍 Global Endpoint',
            'frcaptcha_settings_field_callback',
            'friendly_captcha_admin',
            'frcaptcha_endpoint_settings_section',
            array(
                "option_name" => FriendlyCaptcha_Plugin::$option_global_puzzle_endpoint_active_name,
                "description" => "Enable the default global puzzle service.",
                "type" => "checkbox"
            )
        );

        add_settings_field(
            'frcaptcha_settings_eu_endpoint_field',
            '🇪🇺 Dedicated EU Endpoint',
            'frcaptcha_settings_field_callback',
            'friendly_captcha_admin',
            'frcaptcha_endpoint_settings_section',
            array(
                "option_name" => FriendlyCaptcha_Plugin::$option_eu_puzzle_endpoint_active_name,
                "description" => "Enable the dedicated EU endpoint service, see the <a href=\"https://docs.friendlycaptcha.com/#/eu_endpoint\">documentation</a> for more details.",
                "type" => "checkbox"
            )
        );
    }

    $settings_validated = false;
    function frcaptcha_settings_validate()
    {
        // Deduplicate validation when multiple fields are changed
        global $settings_validated;
        if ($settings_validated) {
            $settings_validated = true;
            return;
        }

        $sitekey = get_option(FriendlyCaptcha_Plugin::$option_sitekey_name);
        $api_key = get_option(FriendlyCaptcha_Plugin::$option_api_key_name);

        $verification = frcaptcha_verify_auth_info($sitekey, $api_key);

        if (!$verification['success']) {
            add_settings_error(FriendlyCaptcha_Plugin::$option_api_key_name, 'config_invalid', $verification['message'], 'error');
        }
    }
}