р№mTџџџџ€ёmTџџџџPёmTџџџџ‚ˆёmTџџџџƒРёmTџџџџ„јёmTџџџџ…0ђmTџџџџ†hђmTџџџџ‡ ђmTџџџџˆиђmTџџџџ‰ѓmTџџџџŠHѓmTџџџџ‹€ѓmTџџџџŒИѓmTџџџџ№ѓmTџџџџŽ(єmTџџџџ`єmTџџџџ˜єmTџџџџ‘аєmTџџџџ’ѕmTџџџџ“@ѕmTџџџџ”xѕmTџџџџ•АѕmTџџџџ–шѕmTџџџџ— іmTџџџџ˜XіmTџџџџ™іmTџџџџšШіmTџџџџ›їmTџџџџœ8їmTџџџџpїmTџџџџžЈїmTџџџџŸрїmTџџџџ јmTџџџџЁPјmTџџџџЂˆјmTџџџџЃРјmTџџџџЄјјmTџџџџЅ0љmTџџџџІhљmTџџџџЇ љmTџџџџЈиљmTџџџџЉњmTџџџџЊHњmTџџџџЋ€њmTџџџџЌИњmTџџџџ­№њmTџџџџЎ(ћmTџџџџЏ`ћmTџџџџА˜ћmTџџџџБаћmTџџџџВќmTџџџџГ@ќmTџџџџДxќmTџџџџЕАќmTџџџџЖшќmTџџџџЗ §mTџџџџИX§mTџџџџЙ§mTџџџџКШ§mTџџџџЛўmTџџџџМ8ўmTџџџџНpўmTџџџџОЈўmTџџџџПрўmTџџџџРџmTџџџџСPџmTџџџџТˆџmTџџџџУРџmTџџџџФpmTџџџџХ8pmTџџџџЦppmTџџџџЧЈpmTџџџџШрpmTџџџџЩqmTџџџџЪPqmTџџџџЫˆqmTџџџџЬРqmTџџџџЭјqmTџџџџЮ0rmTџџџџЯhrmTџџџџа rmTџџџџбиrmTџџџџвsmTџџџџгHsmTџџџџд€smTџџџџеИsmTџџџџж№smTџџџџз(tmTџџџџи`tmTџџџџй˜tmTџџџџкаtmTџџџџлumTџџџџм@umTџџџџнxumTџџџџоАumTџџџџпшumTџџџџр vmTџџџџсXvmTџџџџтvmTџџџџуШvmTџџџџфwmTџџџџх8wmTџџџџцpwmTџџџџчЈwmTџџџџшрwmTџџџџщxmTџџџџъPxmTџџџџыˆxmTџџџџьРxmTџџџџэјxmTџџџџю0ymTџџџџяhymTџџџџ№ ymTџџџџёиymTџџџџђzmTџџџџѓHzmTџџџџє€zmTџџџџѕИzmTџџџџі№zmTџџџџї({mTџџџџј`{mTџџџџљ˜{mTџџџџња{mTџџџџћ|mTџџџџќ@|mTџџџџ§x|mTџџџџўА|mTџџџџџш|mTџџџџ }mTџџџџX}mTџџџџ}mTџџџџШ}mTџџџџ~mTџџџџ8~mTџџџџp~mTџџџџЈ~mTџџџџр~mTџџџџ mTџџџџ PmTџџџџ ˆmTџџџџ РmTџџџџ mTџџџџ8mTџџџџpmTџџџџЈmTџџџџрmTџџџџmTџџџџPmTџџџџˆmTџџџџРmTџџџџјmTџџџџ0mTџџџџhmTџџџџ mTџџџџиmTџџџџmTџџџџHmTџџџџ€mTџџџџИmTџџџџ№mTџџџџ (mTџџџџ!`mTџџџџ"˜mTџџџџ#аmTџџџџ$mTџџџџ%@mTџџџџ&xmTџџџџ'АmTџџџџ(шmTџџџџ) mTџџџџ*XmTџџџџ+mTџџџџ,ШmTџџџџ-mTџџџџ.8mTџџџџ/pmTџџџџ0ЈmTџџџџ1рmTџџџџ2mTџџџџ3PmTџџџџ4ˆmTџџџџ5РmTџџџџ6јmTџџџџ70 mTџџџџ8h mTџџџџ9  mTџџџџ:и mTџџџџ; mTџџџџ<H mTџџџџ=€ mTџџџџ>И mTџџџџ?№ mTџџџџ@( mTџџџџA` mTџџџџB˜ mTџџџџCа mTџџџџD mTџџџџE@ mTџџџџFx mTџџџџGА mTџџџџHш mTџџџџI$detail, ); } public function connectToSelf($ipVersion = null) { $adminAJAX = admin_url('admin-ajax.php?action=wordfence_testAjax'); $result = wp_remote_post($adminAJAX, array( 'timeout' => 10, //Must be less than max execution time or more than 2 HTTP children will be occupied by scan 'blocking' => true, //Non-blocking seems to block anyway, so we use blocking 'headers' => array() )); if ((!is_wp_error($result)) && $result['response']['code'] == 200 && strpos($result['body'], "WFSCANTESTOK") !== false) { $host = parse_url($adminAJAX, PHP_URL_HOST); if ($host !== null) { $ips = wfUtils::resolveDomainName($host, $ipVersion); if (!empty($ips)) { $ips = implode(', ', $ips); return array('test' => true, 'message' => sprintf('OK - %s', $ips)); } } return true; } $detail = ''; if (is_wp_error($result)) { $message = __('wp_remote_post() test back to this server failed! Response was: ', 'wordfence') . $result->get_error_message(); $messageTextOnly = __('wp_remote_post() test back to this server failed! Response was: ', 'wordfence') . $result->get_error_message(); } else { $message = __('wp_remote_post() test back to this server failed! Response was: ', 'wordfence') . '
' . $result['response']['code'] . ' ' . $result['response']['message'] . '

'; $messageTextOnly = __('wp_remote_post() test back to this server failed! Response was: ', 'wordfence') . "\n" . $result['response']['code'] . ' ' . $result['response']['message'] . "\n\n"; if ($this->_detectBlockedByCloudflare($result)) { $message .= __('Cloudflare appears to be blocking your site from connecting to itself.', 'wordfence') . '
' . sprintf(' ', wfSupportController::esc_supportURL(wfSupportController::ITEM_DIAGNOSTICS_CLOUDFLARE_BLOCK)) . __('Get help with Cloudflare compatibility', 'wordfence') . '

'; $messageTextOnly .= __('Cloudflare appears to be blocking your site from connecting to itself.', 'wordfence') . "\n" . __('Get help with Cloudflare compatibility', 'wordfence') . ': ' . wfSupportController::esc_supportURL(wfSupportController::ITEM_DIAGNOSTICS_CLOUDFLARE_BLOCK) . "\n\n"; } $message .= __('This additional info may help you diagnose the issue. The response headers we received were:', 'wordfence') . '

'; $messageTextOnly .= __('This additional info may help you diagnose the issue. The response headers we received were:', 'wordfence') . "\n\n"; if (isset($result['http_response']) && is_object($result['http_response']) && method_exists($result['http_response'], 'get_response_object') && is_object($result['http_response']->get_response_object()) && property_exists($result['http_response']->get_response_object(), 'raw')) { $detail = str_replace("\r\n", "\n", $result['http_response']->get_response_object()->raw); } } $message = wp_kses($message, array('a' => array('href' => array(), 'target' => array(), 'rel' => array()), 'span' => array('class' => array()), 'em' => array(), 'code' => array(), 'br' => array())); return array( 'test' => false, 'message' => array('escaped' => $message, 'textonly' => $messageTextOnly), 'detail' => $detail, ); } public function connectToSelfIpv6() { if (wfUtils::isCurlSupported()) { $interceptor = new wfCurlInterceptor(); $interceptor->setOption(CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V6); try { $instance = $this; $result = $interceptor->intercept(function() use ($instance) { return $instance->connectToSelf(6); }); if ($result !== true && !$result['test']) { $handle = $interceptor->getHandle(); $errorNumber = curl_errno($handle); if ($errorNumber === 6 /* COULDNT_RESOLVE_HOST */) { $detail = sprintf(/* translators: error message from failed request */ __('This likely indicates that the server either does not support IPv6 or does not have an IPv6 address assigned or associated with the domain. Original error message: %s', 'wordfence'), is_array($result['message']) ? $result['message']['escaped'] : $result['message']); $detail = wp_kses($detail, array('a' => array('href' => array(), 'target' => array(), 'rel' => array()), 'span' => array('class' => array()), 'em' => array(), 'code' => array(), 'br' => array())); $detailTextOnly = sprintf(/* translators: error message from failed request */ __('This likely indicates that the server either does not support IPv6 or does not have an IPv6 address assigned or associated with the domain. Original error message: %s', 'wordfence'), is_array($result['message']) ? $result['message']['textonly'] : strip_tags($result['message'])); return array( 'test' => false, 'infoOnly' => true, 'message' => __('IPv6 DNS resolution failed', 'wordfence'), 'detail' => array('escaped' => $detail, 'textonly' => $detailTextOnly), ); } } return $result; } catch (wfCurlInterceptionFailedException $e) { return array( 'test' => false, 'message' => __('This diagnostic is unavailable as cURL appears to be supported, but was not used by WordPress for this request', 'wordfence') ); } } return array( 'test' => false, 'message' => __('This diagnostic requires cURL', 'wordfence') ); } /** * Looks for markers in $result that indicate it was challenged/blocked by Cloudflare. * * @param $result * @return bool */ private function _detectBlockedByCloudflare($result) { $headers = $result['headers']; if (isset($headers['cf-mitigated']) && strtolower($headers['cf-mitigated']) == 'challenge' /* managed challenge */) { //$headers is an instance of Requests_Utility_CaseInsensitiveDictionary return true; } $body = $result['body']; $search = array( '/cdn-cgi/styles/challenges.css', //managed challenge '/cdn-cgi/challenge-platform', //managed challenge '/cdn-cgi/styles/cf.errors.css', //block 'cf-error-details', //block 'Cloudflare Ray ID', //block ); foreach ($search as $s) { if (stripos($body, $s) !== false) { return true; } } return false; } public function serverIP() { $serverIPs = wfUtils::serverIPs(); return array( 'test' => true, 'infoOnly' => true, 'message' => implode(',', $serverIPs), ); } public function howGetIPs() { $howGet = wfConfig::get('howGetIPs', false); if ($howGet) { if (empty($_SERVER[$howGet])) { return array( 'test' => false, 'message' => sprintf(/* translators: PHP super global key. */ __('We cannot read $_SERVER[%s]', 'wordfence'), $howGet), ); } return array( 'test' => true, 'message' => $howGet, ); } foreach (array('HTTP_CF_CONNECTING_IP', 'HTTP_X_REAL_IP', 'HTTP_X_FORWARDED_FOR') as $test) { if (!empty($_SERVER[$test])) { return array( 'test' => false, 'message' => __('Should be: ', 'wordfence') . $test ); } } return array( 'test' => true, 'message' => 'REMOTE_ADDR', ); } public function serverTime() { return array( 'test' => true, 'infoOnly' => true, 'message' => date('Y-m-d H:i:s', time()) . ' UTC', ); } public function wfTime() { try { $api = new wfAPI(wfConfig::get('apiKey'), wfUtils::getWPVersion()); $response = $api->call('timestamp'); if (!is_array($response) || !isset($response['timestamp'])) { throw new Exception('Unexpected payload returned'); } } catch (Exception $e) { return array( 'test' => true, 'infoOnly' => true, 'message' => '-', ); } return array( 'test' => true, 'infoOnly' => true, 'message' => date('Y-m-d H:i:s', $response['timestamp']) . ' UTC', ); } public function wfTimeOffset() { $delta = wfUtils::normalizedTime() - time(); return array( 'test' => true, 'infoOnly' => true, 'message' => ($delta < 0 ? '-' : '+') . ' ' . wfUtils::makeDuration(abs($delta), true), ); } public function ntpTimeOffset() { if (class_exists('WFLSPHP52Compatability')) { $time = WFLSPHP52Compatability::ntp_time(); if ($time === false) { return array( 'test' => true, 'infoOnly' => true, 'message' => __('Blocked', 'wordfence'), ); } $delta = $time - time(); return array( 'test' => true, 'infoOnly' => true, 'message' => ($delta < 0 ? '-' : '+') . ' ' . wfUtils::makeDuration(abs($delta), true), ); } return array( 'test' => true, 'infoOnly' => true, 'message' => '-', ); } public function ntpStatus() { $maxFailures = \WordfenceLS\Controller_Time::FAILURE_LIMIT; $cronDisabled = \WordfenceLS\Controller_Settings::shared()->is_ntp_cron_disabled($failureCount); if ($cronDisabled) { $constant = \WordfenceLS\Controller_Settings::shared()->is_ntp_disabled_via_constant(); $status = __('Disabled ', 'wordfence'); if ($constant) { $status .= __('(WORDFENCE_LS_DISABLE_NTP)', 'wordfence'); } else if ($failureCount > 0) { $status .= __('(failures exceeded limit)', 'wordfence'); } else { $status .= __('(settings)', 'wordfence'); } } else { $status = __('Enabled', 'wordfence'); if ($failureCount > 0) { $remainingAttempts = $maxFailures - $failureCount; $status .= sprintf(__(' (%d of %d attempts remaining)', 'wordfence'), $remainingAttempts, $maxFailures); } } return array( 'test' => true, 'infoOnly' => true, 'message' => $status ); } public function timeSourceInUse() { if (class_exists('WFLSPHP52Compatability')) { $time = WFLSPHP52Compatability::ntp_time(); if (WFLSPHP52Compatability::using_ntp_time()) { return array( 'test' => true, 'infoOnly' => true, 'message' => __('NTP', 'wordfence'), ); } else if (WFLSPHP52Compatability::using_wf_time()) { return array( 'test' => true, 'infoOnly' => true, 'message' => __('Wordfence Network', 'wordfence'), ); } return array( 'test' => true, 'infoOnly' => true, 'message' => __('Server Time', 'wordfence'), ); } return array( 'test' => true, 'infoOnly' => true, 'message' => '-', ); } public function wpTimeZone() { $tz = get_option('timezone_string'); if (empty($tz)) { $offset = get_option('gmt_offset'); $tz = 'UTC' . ($offset >= 0 ? '+' . $offset : $offset); } return array( 'test' => true, 'infoOnly' => true, 'message' => $tz, ); } public static function getWordpressValues() { require(ABSPATH . 'wp-includes/version.php'); $postRevisions = (defined('WP_POST_REVISIONS') ? WP_POST_REVISIONS : true); return array( 'WordPress Version' => array('description' => '', 'value' => $wp_version), 'Multisite' => array('description' => __('Return value of is_multisite()', 'wordfence'), 'value' => is_multisite() ? __('Yes', 'wordfence') : __('No', 'wordfence')), 'ABSPATH' => __('WordPress base path', 'wordfence'), 'WP_DEBUG' => array('description' => __('WordPress debug mode', 'wordfence'), 'value' => (defined('WP_DEBUG') && WP_DEBUG ? __('On', 'wordfence') : __('Off', 'wordfence'))), 'WP_DEBUG_LOG' => array('description' => __('WordPress error logging override', 'wordfence'), 'value' => defined('WP_DEBUG_LOG') ? (WP_DEBUG_LOG ? 'Enabled' : 'Disabled') : __('(not set)', 'wordfence')), 'WP_DEBUG_DISPLAY' => array('description' => __('WordPress error display override', 'wordfence'), 'value' => defined('WP_DEBUG_DISPLAY') ? (WP_DEBUG_DISPLAY ? 'Enabled' : 'Disabled') : __('(not set)', 'wordfence')), 'SCRIPT_DEBUG' => array('description' => __('WordPress script debug mode', 'wordfence'), 'value' => (defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? __('On', 'wordfence') : __('Off', 'wordfence'))), 'SAVEQUERIES' => array('description' => __('WordPress query debug mode', 'wordfence'), 'value' => (defined('SAVEQUERIES') && SAVEQUERIES ? __('On', 'wordfence') : __('Off', 'wordfence'))), 'DB_CHARSET' => __('Database character set', 'wordfence'), 'DB_COLLATE' => __('Database collation', 'wordfence'), 'WP_SITEURL' => __('Explicitly set site URL', 'wordfence'), 'WP_HOME' => __('Explicitly set blog URL', 'wordfence'), 'WP_CONTENT_DIR' => array('description' => __('"wp-content" folder is in default location', 'wordfence'), 'value' => (realpath(WP_CONTENT_DIR) === realpath(ABSPATH . 'wp-content') ? __('Yes', 'wordfence') : sprintf(/* translators: WordPress content directory. */ __('No: %s', 'wordfence'), WP_CONTENT_DIR))), 'WP_CONTENT_URL' => __('URL to the "wp-content" folder', 'wordfence'), 'WP_PLUGIN_DIR' => array('description' => __('"plugins" folder is in default location', 'wordfence'), 'value' => (realpath(WP_PLUGIN_DIR) === realpath(ABSPATH . 'wp-content/plugins') ? __('Yes', 'wordfence') : sprintf(/* translators: WordPress plugins directory. */ __('No: %s', 'wordfence'), WP_PLUGIN_DIR))), 'WP_LANG_DIR' => array('description' => __('"languages" folder is in default location', 'wordfence'), 'value' => (realpath(WP_LANG_DIR) === realpath(ABSPATH . 'wp-content/languages') ? __('Yes', 'wordfence') : sprintf(/* translators: WordPress languages directory. */ __('No: %s', 'wordfence'), WP_LANG_DIR))), 'WPLANG' => __('Language choice', 'wordfence'), 'UPLOADS' => __('Custom upload folder location', 'wordfence'), 'TEMPLATEPATH' => array('description' => __('Theme template folder override', 'wordfence'), 'value' => (defined('TEMPLATEPATH') && realpath(get_template_directory()) !== realpath(TEMPLATEPATH) ? sprintf(/* translators: WordPress theme template directory. */ __('Overridden: %s', 'wordfence'), TEMPLATEPATH) : __('(not set)', 'wordfence'))), 'STYLESHEETPATH' џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРЇЇkTџџџџ 9ЋŽГа€р„ƒkTЈЇkTџџџџ9ЋŽГа€р‰ƒkT(get_stylesheet_directory()) !== realpath(STYLESHEETPATH) ? sprintf(/* translators: WordPress theme stylesheet directory. */ __('Overridden: %s', 'wordfence'), STYLESHEETPATH) : __('(not set)'џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@ЈЇkTџџџџ 9ЋŽГа€р„ƒkT€ЈЇkTџџџџ9ЋŽГа€р‰ƒkTVISIONS' => array('description' => __('Post revisions saved by WordPress', 'wordfence'), 'value' => is_numeric($postRevisions) ? $postRevisions : ($postRevisions ? __('Unlimited', 'џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРЈЇkTџџџџ 9ЋŽГа€р„ƒkTЉЇkTџџџџ9ЋŽГа€р‰ƒkTOKIEPATH' => __('WordPress cookie path', 'wordfence'), 'SITECOOKIEPATH' => __('WordPress site cookie path', 'wordfence'), 'ADMIN_COOKIE_PATH' =џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@ЉЇkTџџџџ 9ЋŽГа€р„ƒkT€ЉЇkTџџџџ9ЋŽГа€р‰ƒkTfence'), 'NOBLOGREDIRECT' => __('URL redirected to if the visitor tries to access a nonexistent blog', 'wordfence'), 'CONCATENATE_SCRIPTS' => array('description' =џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРЉЇkTџџџџ 9ЋŽГа€р„ƒkTЊЇkTџџџџ9ЋŽГа€р‰ƒkT 'wordfence') : __('No', 'wordfence'))), 'WP_MEMORY_LIMIT' => __('WordPress memory limit', 'wordfence'), 'WP_MAX_MEMORY_LIMIT' => __('Administrative memory limit', џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@ЊЇkTџџџџ 9ЋŽГа€р„ƒkT€ЊЇkTџџџџ9ЋŽГа€р‰ƒkTed('WP_CACHE') && WP_CACHE ? __('Enabled', 'wordfence') : __('Disabled', 'wordfence'))), 'CUSTOM_USER_TABLE' => array('description' => __('Custom "users" table', 'wordfence'), 'vџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРЊЇkTџџџџ 9ЋŽГа€р„ƒkTЋЇkTџџџџ9ЋŽГа€р‰ƒkTTOM_USER_TABLE) : __('(not set)', 'wordfence'))), 'CUSTOM_USER_META_TABLE' => array('description' => __('Custom "usermeta" table', 'wordfence'), 'value' => (defined('CUSTOM_USER_META_џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@ЋЇkTџџџџ 9ЋŽГа€р„ƒkT€ЋЇkTџџџџ9ЋŽГа€р‰ƒkT'(not set)', 'wordfence'))), 'FS_CHMOD_DIR' => array('description' => __('Overridden permissions for a new folder', 'wordfence'), 'value' => defined('FS_CHMOD_DIR') ? decoctџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРЋЇkTџџџџ 9ЋŽГа€р„ƒkTЌЇkTџџџџ9ЋŽГа€р‰ƒkTssions for a new file', 'wordfence'), 'value' => defined('FS_CHMOD_FILE') ? decoct(FS_CHMOD_FILE) : __('(not set)', 'wordfence')), 'ALTERNATE_WP_CRON' => array('description' => _џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@ЌЇkTџџџџ 9ЋŽГа€р„ƒkT€ЌЇkTџџџџ9ЋŽГа€р‰ƒkT: __('Disabled', 'wordfence'))), 'DISABLE_WP_CRON' => array('description' => __('WP cron status', 'wordfence'), 'value' => (defined('DISABLE_WP_CRON') && DISABLE_WP_CRON ? __('џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРЌЇkTџџџџ 9ЋŽГа€р„ƒkT­ЇkTџџџџ9ЋŽГа€р‰ƒkTequency lock', 'wordfence'), 'EMPTY_TRASH_DAYS' => array('description' => __('Interval the trash is automatically emptied at in days', 'wordfence'), 'value' => (EMPTY_TRASH_DAYSџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@­ЇkTџџџџ 9ЋŽГа€р„ƒkT€­ЇkTџџџџ9ЋŽГа€р‰ƒkTdatabase repair', 'wordfence'), 'value' => (defined('WP_ALLOW_REPAIR') && WP_ALLOW_REPAIR ? __('Enabled', 'wordfence') : __('Disabled', 'wordfence'))), 'DO_NOT_UPGRADE_GLOBAL_TABLES' => arrџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџР­ЇkTџџџџ 9ЋŽГа€р„ƒkTЎЇkTџџџџ9ЋŽГа€р‰ƒkTOT_UPGRADE_GLOBAL_TABLES ? __('Yes', 'wordfence') : __('No', 'wordfence'))), 'DISALLOW_FILE_EDIT' => array('description' => __('Disallow plugin/theme editing', 'wordfence'), 'valuџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@ЎЇkTџџџџ 9ЋŽГа€р„ƒkT€ЎЇkTџџџџ9ЋŽГа€р‰ƒkT_MODS' => array('description' => __('Disallow plugin/theme update and installation', 'wordfence'), 'value' => (defined('DISALLOW_FILE_MODS') && DISALLOW_FILE_MODS ? __('Yes', 'wordfeџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРЎЇkTџџџџ 9ЋŽГа€р„ƒkTЏЇkTџџџџ9ЋŽГа€р‰ƒkToring the original', 'wordfence'), 'value' => (defined('IMAGE_EDIT_OVERWRITE') && IMAGE_EDIT_OVERWRITE ? __('Yes', 'wordfence') : __('No', 'wordfence'))), 'FORCE_SSL_ADMIN' => џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@ЏЇkTџџџџ 9ЋŽГа€р„ƒkT€ЏЇkTџџџџ9ЋŽГа€р‰ƒkTSL_ADMIN ? __('Yes', 'wordfence') : __('No', 'wordfence'))), 'WP_HTTP_BLOCK_EXTERNAL' => array('description' => __('Block external URL requests', 'wordfence'), 'value' => (defined('WPџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРЏЇkTџџџџ 9ЋŽГа€р„ƒkTАЇkTџџџџ9ЋŽГа€р‰ƒkT => __('Allowlisted hosts', 'wordfence'), 'WP_AUTO_UPDATE_CORE' => array('description' => __('Automatic WP Core updates', 'wordfence'), 'value' => defined('WP_AUTO_UPDATE_CORџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@АЇkTџџџџ 9ЋŽГа€р„ƒkT€АЇkTџџџџ9ЋŽГа€р‰ƒkTUPDATE_CORE) : __('Default', 'wordfence')), 'WP_PROXY_HOST' => array('description' => __('Hostname for a proxy server', 'wordfence'), 'value' => defined('WP_PROXY_HOST') ? WPџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРАЇkTџџџџ 9ЋŽГа€р„ƒkTБЇkTџџџџ9ЋŽГа€р‰ƒkTrver', 'wordfence'), 'value' => defined('WP_PROXY_PORT') ? WP_PROXY_PORT : __('(not set)', 'wordfence')), 'MULTISITE' => array('description' => __('Multisite enabled', 'woџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@БЇkTџџџџ 9ЋŽГа€р„ƒkT€БЇkTџџџџ9ЋŽГа€р‰ƒkTdfence')), 'WP_ALLOW_MULTISITE' => array('description' => __('Multisite/network ability enabled', 'wordfence'), 'value' => (defined('WP_ALLOW_MULTISITE') && WP_ALLOW_MULTISITE ? _џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРБЇkTџџџџ 9ЋŽГа€р„ƒkTВЇkTџџџџ9ЋŽГа€р‰ƒkTwill load the /wp-content/sunrise.php file', 'wordfence'), 'value' => defined('SUNRISE') ? __('Yes', 'wordfence') : __('(not set)', 'wordfence')), 'SUBDOMAIN_INSTALL' => array('descripџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@ВЇkTџџџџ 9ЋŽГа€р„ƒkT€ВЇkTџџџџ9ЋŽГа€р‰ƒkTMAIN_INSTALL ? __('Yes', 'wordfence') : __('No', 'wordfence')) : __('(not set)', 'wordfence')), 'VHOST' => array('description' => __('Multisite enabled, Older subdomain installationџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРВЇkTџџџџ 9ЋŽГа€р„ƒkTГЇkTџџџџ9ЋŽГа€р‰ƒkT(not set)', 'wordfence')), 'DOMAIN_CURRENT_SITE' => __('Defines the multisite domain for the current site', 'wordfence'), 'PATH_CURRENT_SITE' => __('Defines the multisite path fџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@ГЇkTџџџџ 9ЋŽГа€р„ƒkT€ГЇkTџџџџ9ЋŽГа€р‰ƒkT, 'wordfence'), 'WP_DISABLE_FATAL_ERROR_HANDLER' => array('description' => __('Disable the fatal error handler', 'wordfence'), 'value' => (defined('WP_DISABLE_FATAL_ERROR_HANDLER') && WP_DIџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРГЇkTџџџџ 9ЋŽГа€р„ƒkTДЇkTџџџџ9ЋŽГа€р‰ƒkTion' => __('Disables automatic updates', 'wordfence'), 'value' => (defined('AUTOMATIC_UPDATER_DISABLED') ? (AUTOMATIC_UPDATER_DISABLED ? __('Automatic updates disabled', 'wordfence') : __('Autџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@ДЇkTџџџџ 9ЋŽГа€р„ƒkT€ДЇkTџџџџ9ЋŽГа€р‰ƒkTџІkTЈџІkTљ`џІkT џІkT„љTрЇkTјЇkT€ЇkTєkTEТа№х7lTј…єkT(†єkT@jв•вџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРДЇkTџџџџ 9ЋŽГа€р„ƒkTЕЇkTџџџџ9ЋŽГа€р‰ƒkTрЇkTЇkT…љ_@Tp гг ЇkT@T€†kTг@TˆŒkTг@њрЌШkTг€гTxЇkTˆ ЇkT`€ЇkTџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@ЕЇkTџџџџ 9ЋŽГа€р„ƒkT€ЕЇkTџџџџ9ЋŽГа€р‰ƒkTPѕ#mTјЇkTдћ8ЇkTРЇkT№ЇkT@T@TXkTд@T`дђkTдд˜ЇkTдhѕ#mT€ЇkT@TРи…kTд@ћp џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРЕЇkTџџџџ 9ЋŽГа€р„ƒkTЖЇkTџџџџ9ЋŽГа€р‰ƒkTXЇkT ЇkTHЇkTћ@TШŒkTдд@ЇkTpЇkTдЇkT0ЇkTИЇkTдаЇkTиЇkTдPЇkTEвеЈ|‹kTРЇkTџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@ЖЇkTџџџџ 9ЋŽГа€р„ƒkT€ЖЇkTџџџџ9ЋŽГа€р‰ƒkTшЇkTЇkTH4ЇkT7ЇkTX9ЇkT ;ЇkT@ћjз•зT№ЇkT€ћЇkT@TРаkTзˆзћ@ЇрGКkTћџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРЖЇkTџџџџ 9ЋŽГа€р„ƒkTЗЇkTџџџџ9ЋŽГа€р‰ƒkTрЇkTћћиАЇkT№ЇkTи ЇkTEзйРаkTPЇkT€ЇkT@Tjл•лTЇkTџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@ЗЇkTџџџџ 9ЋŽГа€р„ƒkT€ЗЇkTџџџџ9ЋŽГа€р‰ƒkTќ(ЇkT@ќ0їНkTм@T˜-МkTммhЇkT€мT€ЇkTќ@TїЦkTмPЇkTЇkTмРЇkTEлнџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРЗЇkTџџџџ 9ЋŽГа€р„ƒkTИЇkTџџџџ9ЋŽГа€р‰ƒkTШАПkTпˆпќ€ќ+ˆЇkTg„пT8ЇkTаЇkT@ЇkTАЇkT@\h&МkTр@&МkTрр ЇkT€рTџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@ИЇkTџџџџ 9ЋŽГа€р„ƒkT€ИЇkTџџџџ9ЋŽГа€р‰ƒkTрЋЗkTс@TРЯkTс€са ЇkT№жŽkT@T јTсИ ЇkTш ЇkT@TрбkTсс0 ЇkT@§ ^ЩkTс сH ЇkTџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРИЇkTџџџџ 9ЋŽГа€р„ƒkTЙЇkTџџџџ9ЋŽГа€р‰ƒkTтш ЇkTт€ѕ#mTа ЇkTтГ ЇkT˜ ЇkTX ЇkT0 ЇkT@ш=ѓkTт@р`kTттp ЇkTт˜ѕ#mTX ЇkT@T Ћ’kTџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@ЙЇkTџџџџ 9ЋŽГа€р„ƒkT€ЙЇkTџџџџ9ЋŽГа€р‰ƒkTтШ ЇkTј ЇkTт@ ЇkTА ЇkTт( ЇkTсˆ ЇkT  ЇkT…сT€ ЇkT€ T˜ ЇkT@) *ѓkTх@ ‰ŽkTххџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРЙЇkTџџџџ 9ЋŽГа€р„ƒkTКЇkTџџџџ9ЋŽГа€р‰ƒkT@ ЮkTх€х€ ЇkTШ ЇkT@y@XBОkTххh ЇkT˜ ЇkTхр ЇkTP ЇkTх ЇkTрx ЇkTˆ ЇkT…рџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@КЇkTџџџџ 9ЋŽГа€р„ƒkT€КЇkTџџџџ9ЋŽГа€р‰ƒkT №НkTщ щШѕ#mTИЇkTщрѕ#mTщTшЇkTˆЇkTјЇkThЇkT@TиюПkTъъ0ЇkT@РNКkTъ ъјѕ#mTџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРКЇkTџџџџ 9ЋŽГа€р„ƒkTЛЇkTџџџџ9ЋŽГа€р‰ƒkT@і#mT@THCМkTььЇkT@TpУХkTь ьXі#mT8ЇkTьpі#mTщTшЇkTˆЇkTјЇkThЇkTјѕІkTџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@ЛЇkTџџџџ 9ЋŽГа€р„ƒkT€ЛЇkTџџџџ9ЋŽГа€р‰ƒkTюЇkTЇkT@ƒяяXЇkT@ƒ џяя€ЇkT„яTˆЇkT0ЇkTЈЇkT„ƒ@T07ѓkT№@ џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРЛЇkTџџџџ 9ЋŽГа€р„ƒkTМЇkTџџџџ9ЋŽГа€р‰ƒkTXЇkTрУloT„„@T JМkTёё ЇkTёИЇkT@рckTё@@&КkTё@рюЄkTё€ёЇkTџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@МЇkTџџџџ 9ЋŽГа€р„ƒkT€МЇkTџџџџ9ЋŽГа€р‰ƒkT “kTё@ џёёаЇkT€ё…шЇkTшЇkTёИЇkTјЇkTёрЇkTˆЇkTёШЇkT@ЇkT№`ЇkTџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРМЇkTџџџџ 9ЋŽГа€р„ƒkTНЇkTџџџџ9ЋŽГа€р‰ƒkTTшЇkTјЇkT(ЇkTѓИЇkTјЇkTѓ(ЇkT„ѓ8ЇkTаЇkT@T JМkTєє€ЇkTє˜ЇkTџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@НЇkTџџџџ 9ЋŽГа€р„ƒkT€НЇkTџџџџ9ЋŽГа€р‰ƒkT`D‰kTєєиЇkTЇkT€єPЇkTЇkTXЇkTT@T`ДŠkTє@ џєєАЇkT€є'ШЇkTШЇkTˆЇkTџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРНЇkTџџџџ 9ЋŽГа€р„ƒkTОЇkTџџџџ9ЋŽГа€р‰ƒkTˆˆ'ѓhЇkTяpЇkT˜ЇkTЈЇkT@T€МkTј@ˆ JМkTјј№ЇkT€ј(ЇkTјЇkTЇkTџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@ОЇkTџџџџ 9ЋŽГа€р„ƒkT€ОЇkTџџџџ9ЋŽГа€р‰ƒkT@T`2ЙkTљ@'divp•9lTљ€љTиЇkT*@‰РjКkTљРЇkT№ЇkT@*@ШkTљљ8ЇkT@€:КkTљ љџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРОЇkTџџџџ 9ЋŽГа€р„ƒkTПЇkTџџџџ9ЋŽГа€р‰ƒkTњњ№ЇkTњˆі#mTиЇkTњ‰ЇkT ЇkTpЇkT8ЇkT@TјL‰kTњ@+`H“kTњњxЇkTњ і#mT`ЇkT@Tџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@ПЇkTџџџџ 9ЋŽГа€р„ƒkT€ПЇkTџџџџ9ЋŽГа€р‰ƒkTњњ0ЇkTњаЇkTЇkTњXЇkTИЇkTњ0ЇkTљЇkTЈЇkT…љT˜ЇkT/АЇkT@T@T@вХkT§@TџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРПЇkTџџџџ 9ЋŽГа€р„ƒkT@ЇkTџџџџ9ЋŽГа€р‰ƒkT@0Ј†kT§@Tр‚kT§€§0˜ЇkTјЇkTˆЇkTИЇkT@/ JМkT§§рЇkT§€ЇkTАЇkT§ЇkThЇkT§џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@@ЇkTџџџџ 9ЋŽГа€р„ƒkT€@ЇkTџџџџ9ЋŽГа€р‰ƒkT`ЇkTЇkTˆ4T@к@aНkTрЇkTјЇkTEпШАПkTЇkTЇkT@Tj•џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџР@ЇkTџџџџ 9ЋŽГа€р„ƒkTAЇkTџџџџ9ЋŽГа€р‰ƒkTh$ЇkT'ЇkTp'ЇkTр-ЇkT@THшђkT@7 ИŠkT8ЇkT€TPЇkT`ОўT88 ЇkT`ЇkTЇkT„џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@AЇkTџџџџ 9ЋŽГа€р„ƒkT€AЇkTџџџџ9ЋŽГа€р‰ƒkT:шЇkT ЇkT@TАчЈkT` ЇkT@T`\ŒkT x ЇkTˆ ЇkT H ЇkT  ЇkT„T "ЇkT?а ЇkT@TџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРAЇkTџџџџ 9ЋŽГа€р„ƒkTBЇkTџџџџ9ЋŽГа€р‰ƒkT8@TќПkT@8р‡kT !ЇkTші#mTˆ!ЇkT@TыОkT@T`DКkT@TатЈkT€@"ЇkTџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ@BЇkTџџџџ 9ЋŽГа€р„ƒkT€BЇkTџџџџ9ЋŽГа€р‰ƒkTа ЇkT…TА"ЇkT (ЇkTА+ЇkT@ў@TРjКkT @T |‡kT  #ЇkT ї#mTј"ЇkT T8#ЇkT($ЇkTBH#ЇkTџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџРBЇkTџџџџ 9ЋŽГа€р„ƒkTCЇkTџџџџ9ЋŽГа€р‰ƒkT ЏцkT  https://ibes.co.tz/post-sitemap.xml 2026-02-19T14:27:50+00:00 https://ibes.co.tz/page-sitemap.xml 2026-11-04T09:33:17+00:00 https://ibes.co.tz/ae_global_templates-sitemap.xml 2023-10-30T14:23:54+00:00 https://ibes.co.tz/tribe_events-sitemap.xml 2026-01-28T12:40:35+00:00 https://ibes.co.tz/category-sitemap.xml 2026-02-19T14:27:50+00:00 https://ibes.co.tz/post_tag-sitemap.xml 2026-01-28T12:40:35+00:00 https://ibes.co.tz/author-sitemap.xml 2024-07-11T08:37:23+00:00