示例#1
0
/**
 * Gather information from the server, database engine, and PHP interpreter.
 *
 * @return array A list of pseudo-variables and values that will replace them in the HTML template.
 */
function sucuriscan_server_info()
{
    global $wpdb;
    $params = array('ServerInfo.Variables' => '');
    $info_vars = array('Plugin_version' => SUCURISCAN_VERSION, 'Plugin_checksum' => SUCURISCAN_PLUGIN_CHECKSUM, 'Last_filesystem_scan' => SucuriScanFSScanner::get_filesystem_runtime(true), 'Datetime_and_Timezone' => '', 'Operating_system' => sprintf('%s (%d Bit)', PHP_OS, PHP_INT_SIZE * 8), 'Server' => 'Unknown', 'Developer_mode' => 'OFF', 'Memory_usage' => 'N/A', 'MySQL_version' => '0.0', 'SQL_mode' => 'Not set', 'PHP_version' => PHP_VERSION);
    $info_vars['Datetime_and_Timezone'] = sprintf('%s (GMT %s)', SucuriScan::current_datetime(), get_option('gmt_offset'));
    if (defined('WP_DEBUG') && WP_DEBUG) {
        $info_vars['Developer_mode'] = 'ON';
    }
    if (function_exists('memory_get_usage')) {
        $info_vars['Memory_usage'] = round(memory_get_usage() / 1024 / 1024, 2) . ' MB';
    }
    if (isset($_SERVER['SERVER_SOFTWARE'])) {
        $info_vars['Server'] = $_SERVER['SERVER_SOFTWARE'];
    }
    if ($wpdb) {
        $info_vars['MySQL_version'] = $wpdb->get_var('SELECT VERSION() AS version');
        $mysql_info = $wpdb->get_results('SHOW VARIABLES LIKE "sql_mode"');
        if (is_array($mysql_info) && !empty($mysql_info[0]->Value)) {
            $info_vars['SQL_mode'] = $mysql_info[0]->Value;
        }
    }
    $field_names = array('safe_mode', 'expose_php', 'allow_url_fopen', 'memory_limit', 'upload_max_filesize', 'post_max_size', 'max_execution_time', 'max_input_time');
    foreach ($field_names as $php_flag) {
        $php_flag_value = SucuriScan::ini_get($php_flag);
        $php_flag_name = 'PHP_' . $php_flag;
        $info_vars[$php_flag_name] = $php_flag_value ? $php_flag_value : 'N/A';
    }
    $counter = 0;
    foreach ($info_vars as $var_name => $var_value) {
        $css_class = $counter % 2 === 0 ? '' : 'alternate';
        $var_name = str_replace('_', " ", $var_name);
        $params['ServerInfo.Variables'] .= SucuriScanTemplate::getSnippet('infosys-serverinfo', array('ServerInfo.CssClass' => $css_class, 'ServerInfo.Title' => $var_name, 'ServerInfo.Value' => $var_value));
        $counter += 1;
    }
    return SucuriScanTemplate::getSection('infosys-serverinfo', $params);
}
示例#2
0
 public static function page()
 {
     $output = array();
     $output['BlockedUsers.List'] = '';
     $output['BlockedUsers.NoItemsVisibility'] = 'visible';
     if (SucuriScanInterface::check_nonce()) {
         $unblockUsers = SucuriScanRequest::post(':unblock_user', '_array');
         if (is_array($unblockUsers) && !empty($unblockUsers)) {
             self::unblock($unblockUsers);
             SucuriScanInterface::info('Selected user accounts were unblocked');
         }
     }
     $cache = new SucuriScanCache('blockedusers', false);
     $blocked = $cache->getAll();
     if (is_array($blocked) && !empty($blocked)) {
         $counter = 0;
         foreach ($blocked as $data) {
             $css_class = $counter % 2 === 0 ? '' : 'alternate';
             $output['BlockedUsers.List'] .= SucuriScanTemplate::getSnippet('lastlogins-blockedusers', array('BlockedUsers.CssClass' => $css_class, 'BlockedUsers.Username' => $data->username, 'BlockedUsers.BlockedAt' => self::datetime($data->blocked_at), 'BlockedUsers.FirstAttempt' => self::datetime($data->first_attempt), 'BlockedUsers.LastAttempt' => self::datetime($data->last_attempt)));
             $counter++;
         }
         if ($counter > 0) {
             $output['BlockedUsers.NoItemsVisibility'] = 'hidden';
         }
     }
     return SucuriScanTemplate::getSection('lastlogins-blockedusers', $output);
 }