| Server IP : 192.241.186.36 / Your IP : 216.73.216.164 Web Server : Apache/2.4.29 (Ubuntu) System : Linux webserver7 4.15.0-194-generic #205-Ubuntu SMP Fri Sep 16 19:49:27 UTC 2022 x86_64 User : root ( 0) PHP Version : 7.4.32 Disable Function : 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_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/adsonicdigital/wp-content/plugins/wordfence/lib/ |
Upload File : |
<?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($res, true));
}
}
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($res, true)));
}
}
catch (Exception $e) {
return array('err' => sprintf(/* translators: Error message. */ __("An error occurred: %s", 'wordfence'), $e->getMessage()));
}
}
}