PATH:
var
/
www
/
clients
/
client1
/
web1
/
web
/
wp-content
/
plugins
/
wordfence
/
lib
<?php class wfDashboard { const SCAN_SUCCESS = 1; const SCAN_FAILED = 0; const SCAN_NEVER_RAN = -1; const SCAN_WARNINGS = 2; const FEATURE_ENABLED = 1; const FEATURE_DISABLED = 0; const FEATURE_PREMIUM = -1; public $scanLastCompletion; public $scanLastStatusMessage; public $scanLastStatus; public $notifications = array(); public $features = array(); public $lastGenerated; public $tdfCommunity; public $tdfPremium; public $ips24h; public $ips7d; public $ips30d; public $loginsSuccess; public $loginsFail; public $localBlocks; public $networkBlock24h; public $networkBlock7d; public $networkBlock30d; public $countriesLocal; public $countriesNetwork; public $wordfenceCentralConnected; public $wordfenceCentralConnectTime; public $wordfenceCentralConnectEmail; public $wordfenceCentralDisconnected; public $wordfenceCentralDisconnectTime; public $wordfenceCentralDisconnectEmail; public static function processDashboardResponse($data) { if (isset($data['notifications'])) { foreach ($data['notifications'] as $n) { if (!isset($n['id']) || !isset($n['priority']) || !isset($n['html'])) { continue; } new wfNotification($n['id'], $n['priority'], $n['html'], (isset($n['category']) ? $n['category'] : null)); } unset($data['notifications']); } if (isset($data['revoked'])) { foreach ($data['revoked'] as $r) { if (!isset($r['id'])) { continue; } $notification = wfNotification::getNotificationForID($r['id']); if ($notification !== null) { $notification->markAsRead(); } } unset($data['revoked']); } wfConfig::set_ser('dashboardData', $data, false, wfConfig::DONT_AUTOLOAD); } public function __construct() { // Scan values $lastScanCompleted = wfConfig::get('lastScanCompleted'); if ($lastScanCompleted === false || empty($lastScanCompleted)) { $this->scanLastStatus = self::SCAN_NEVER_RAN; } else if ($lastScanCompleted == 'ok') { $this->scanLastStatus = self::SCAN_SUCCESS; $i = new wfIssues(); $this->scanLastCompletion = (int) wfScanner::shared()->lastScanTime(); $issueCount = $i->getIssueCount(); if ($issueCount) { $this->scanLastStatus = self::SCAN_WARNINGS; $this->scanLastStatusMessage = "{$issueCount} issue" . ($issueCount == 1 ? ' found' : 's found'); } } else { $this->scanLastStatus = self::SCAN_FAILED; $n = wfNotification::getNotificationForCategory('wfplugin_scan', false); if ($n !== null) { $this->scanLastStatusMessage = $n->html; } else { $this->scanLastStatusMessage = esc_html(substr($lastScanCompleted, 0, 100) . (strlen($lastScanCompleted) > 100 ? '...' : '')); } } // Notifications $this->notifications = wfNotification::notifications(); // Features $countryBlocking = self::FEATURE_PREMIUM; if (wfConfig::get('isPaid')) { $countryBlocking = self::FEATURE_DISABLED; $countryList = wfConfig::get('cbl_countries'); if (!empty($countryList) && (wfConfig::get('cbl_loggedInBlocked', false) || wfConfig::get('cbl_loginFormBlocked', false) || wfConfig::get('cbl_restOfSiteBlocked', false))) { $countryBlocking = self::FEATURE_ENABLED; } } $this->features = array(); //Deprecated $data = wfConfig::get_ser('dashboardData'); $lastChecked = wfConfig::get('lastDashboardCheck', 0); if ((!is_array($data) || (isset($data['generated']) && $data['generated'] + 3600 < time())) && $lastChecked + 3600 < time()) { $wp_version = wfUtils::getWPVersion(); $apiKey = wfConfig::get('apiKey'); $api = new wfAPI($apiKey, $wp_version); wfConfig::set('lastDashboardCheck', time()); try { $json = $api->getStaticURL('/stats.json'); $data = @json_decode($json, true); if ($json && is_array($data)) { self::processDashboardResponse($data); } } catch (Exception $e) { //Do nothing } } // Last Generated if (is_array($data) && isset($data['generated'])) { $this->lastGenerated = $data['generated']; } // TDF if (is_array($data) && isset($data['tdf']) && isset($data['tdf']['community'])) { $this->tdfCommunity = (int) $data['tdf']['community']; $this->tdfPremium = (int) $data['tdf']['premium']; } // Top IPs Blocked $activityReport = new wfActivityReport(); $this->ips24h = (array) $activityReport->getTopIPsBlocked(100, 1); foreach ($this->ips24h as &$r24h) { $r24h = (array) $r24h; if (empty($r24h['countryName'])) { $r24h['countryName'] = 'Unknown'; } } $this->ips7d = (array) $activityReport->getTopIPsBlocked(100, 7); foreach ($this->ips7d as &$r7d) { $r7d = (array) $r7d; if (empty($r7d['countryName'])) { $r7d['countryName'] = 'Unknown'; } } $this->ips30d = (array) $activityReport->getTopIPsBlocked(100, 30); foreach ($this->ips30d as &$r30d) { $r30d = (array) $r30d; if (empty($r30d['countryName'])) { $r30d['countryName'] = 'Unknown'; } } // Recent Logins $logins = wordfence::getLog()->getHits('logins', 'loginLogout', 0, 200); $this->loginsSuccess = array(); $this->loginsFail = array(); foreach ($logins as $l) { if ($l['fail']) { $this->loginsFail[] = array('t' => $l['ctime'], 'name' => $l['username'], 'ip' => $l['IP']); } else if ($l['action'] != 'logout') { $this->loginsSuccess[] = array('t' => $l['ctime'], 'name' => $l['username'], 'ip' => $l['IP']); } } // Local Attack Data $this->localBlocks = array(); $this->localBlocks[] = array('title' => __('Complex', 'wordfence'), 'type' => wfActivityReport::BLOCK_TYPE_COMPLEX, '24h' => (int) $activityReport->getBlockedCount(1, wfActivityReport::BLOCK_TYPE_COMPLEX), '7d' => (int) $activityReport->getBlockedCount(7, wfActivityReport::BLOCK_TYPE_COMPLEX), '30d' => (int) $activityReport->getBlockedCount(30, wfActivityReport::BLOCK_TYPE_COMPLEX), ); $this->localBlocks[] = array('title' => __('Brute Force', 'wordfence'), 'type' => wfActivityReport::BLOCK_TYPE_BRUTE_FORCE, '24h' => (int) $activityReport->getBlockedCount(1, wfActivityReport::BLOCK_TYPE_BRUTE_FORCE), '7d' => (int) $activityReport->getBlockedCount(7, wfActivityReport::BLOCK_TYPE_BRUTE_FORCE), '30d' => (int) $activityReport->getBlockedCount(30, wfActivityReport::BLOCK_TYPE_BRUTE_FORCE), ); $this->localBlocks[] = array('title' => __('Blocklist', 'wordfence'), 'type' => wfActivityReport::BLOCK_TYPE_BLACKLIST, '24h' => (int) $activityReport->getBlockedCount(1, wfActivityReport::BLOCK_TYPE_BLACKLIST), '7d' => (int) $activityReport->getBlockedCount(7, wfActivityReport::BLOCK_TYPE_BLACKLIST), '30d' => (int) $activityReport->getBlockedCount(30, wfActivityReport::BLOCK_TYPE_BLACKLIST), ); // Network Attack Data if (is_array($data) && isset($data['attackdata']) && isset($data['attackdata']['24h'])) { $this->networkBlock24h = $data['attackdata']['24h']; $this->networkBlock7d = $data['attackdata']['7d']; $this->networkBlock30d = $data['attackdata']['30d']; } // Blocked Countries $this->countriesLocal = (array) $activityReport->getTopCountriesBlocked(10, 7); foreach ($this->countriesLocal as &$rLocal) { $rLocal = (array) $rLocal; if (empty($rLocal['countryName'])) { $rLocal['countryName'] = 'Unknown'; } } if (is_array($data) && isset($data['countries']) && isset($data['countries']['7d'])) { $networkCountries = array(); foreach ($data['countries']['7d'] as $rNetwork) { $countryCode = $rNetwork['cd']; $countryName = $activityReport->getCountryNameByCode($countryCode); if (empty($countryName)) { $countryName = 'Unknown'; } $totalBlockCount = $rNetwork['ct']; $networkCountries[] = array('countryCode' => $countryCode, 'countryName' => $countryName, 'totalBlockCount' => $totalBlockCount); } $this->countriesNetwork = $networkCountries; } // Wordfence Central $this->wordfenceCentralConnected = wfCentral::_isConnected(); // This value is cached. $this->wordfenceCentralConnectTime = wfConfig::get('wordfenceCentralConnectTime'); $this->wordfenceCentralConnectEmail = wfConfig::get('wordfenceCentralConnectEmail'); $this->wordfenceCentralDisconnected = wfConfig::get('wordfenceCentralDisconnected'); $this->wordfenceCentralDisconnectTime = wfConfig::get('wordfenceCentralDisconnectTime'); $this->wordfenceCentralDisconnectEmail = wfConfig::get('wordfenceCentralDisconnectEmail'); } }
[-] menu_support.php
[edit]
[-] wfBinaryList.php
[edit]
[-] sysinfo.php
[edit]
[-] menu_scanner.php
[edit]
[-] wfViewResult.php
[edit]
[-] wfScanMonitor.php
[edit]
[-] wfScanEngine.php
[edit]
[-] WFLSPHP52Compatability.php
[edit]
[-] .htaccess
[edit]
[-] wfSupportController.php
[edit]
[-] wfConfig.php
[edit]
[-] menu_firewall_waf.php
[edit]
[-] menu_dashboard_options.php
[edit]
[-] wfScan.php
[edit]
[-] wfUtils.php
[edit]
[-] wfDashboard.php
[edit]
[-] wordfenceScanner.php
[edit]
[+]
Diff
[-] menu_tools_whois.php
[edit]
[-] wfIpLocator.php
[edit]
[-] wfUnlockMsg.php
[edit]
[-] menu_wordfence_central.php
[edit]
[-] wfDirectoryIterator.php
[edit]
[-] wfHelperString.php
[edit]
[-] wfDB.php
[edit]
[-] live_activity.php
[edit]
[-] wfCrawl.php
[edit]
[-] email_genericAlert.php
[edit]
[-] IPTrafList.php
[edit]
[-] wfBrowscap.php
[edit]
[-] geoip.mmdb
[edit]
[-] wfAlerts.php
[edit]
[-] wfWebsite.php
[edit]
[-] noc1.key
[edit]
[-] wfCurlInterceptor.php
[edit]
[-] wordfenceHash.php
[edit]
[-] wfDateLocalization.php
[edit]
[-] menu_tools_importExport.php
[edit]
[-] wfScanEntrypoint.php
[edit]
[-] wfView.php
[edit]
[-] menu_tools.php
[edit]
[-] wfJWT.php
[edit]
[-] wfCache.php
[edit]
[-] menu_tools_livetraffic.php
[edit]
[-] wfCrypt.php
[edit]
[-] wfScanFile.php
[edit]
[-] wfAdminNoticeQueue.php
[edit]
[-] wfInaccessibleDirectoryException.php
[edit]
[-] wfVersionCheckController.php
[edit]
[-] wfRESTAPI.php
[edit]
[-] wfDeactivationOption.php
[edit]
[-] menu_tools_diagnostic.php
[edit]
[-] flags.php
[edit]
[-] email_newIssues.php
[edit]
[-] wfBrowscapCache.php
[edit]
[-] wfModuleController.php
[edit]
[-] wfLicense.php
[edit]
[-] wfIpLocation.php
[edit]
[-] wfCredentialsController.php
[edit]
[+]
rest-api
[-] wordfenceClass.php
[edit]
[-] wf503.php
[edit]
[+]
audit-log
[-] wfNotification.php
[edit]
[-] wfLog.php
[edit]
[-] wfActivityReport.php
[edit]
[-] wfScanFileProperties.php
[edit]
[-] wfHelperBin.php
[edit]
[-] wfAPI.php
[edit]
[-] viewFullActivityLog.php
[edit]
[-] wfLockedOut.php
[edit]
[-] wfScanPath.php
[edit]
[-] sodium_compat_fast.php
[edit]
[-] wfIssues.php
[edit]
[-] wordfenceConstants.php
[edit]
[-] menu_firewall_waf_options.php
[edit]
[-] wfI18n.php
[edit]
[-] menu_scanner_options.php
[edit]
[-] IPTraf.php
[edit]
[-] wfAuditLog.php
[edit]
[-] wfCommonPasswords.php
[edit]
[-] wfOnboardingController.php
[edit]
[-] wfInvalidPathException.php
[edit]
[-] email_unsubscribeRequest.php
[edit]
[-] wordfenceURLHoover.php
[edit]
[-] diffResult.php
[edit]
[-] menu_firewall_blocking_options.php
[edit]
[-] menu_scanner_credentials.php
[edit]
[-] wfFileUtils.php
[edit]
[-] wfPersistenceController.php
[edit]
[-] wfVersionSupport.php
[edit]
[-] Diff.php
[edit]
[+]
..
[-] wfMD5BloomFilter.php
[edit]
[-] wfUpdateCheck.php
[edit]
[-] wfDiagnostic.php
[edit]
[-] menu_install.php
[edit]
[-] wfCentralAPI.php
[edit]
[-] menu_options.php
[edit]
[-] wfSchema.php
[edit]
[-] menu_dashboard.php
[edit]
[-] compat.php
[edit]
[-] menu_firewall_blocking.php
[edit]
[-] wfIPWhitelist.php
[edit]
[-] wfBulkCountries.php
[edit]
[-] menu_tools_auditlog.php
[edit]
[-] email_unlockRequest.php
[edit]
[-] menu_firewall.php
[edit]
[-] wfScanFileListItem.php
[edit]
[-] wfImportExportController.php
[edit]
[-] menu_tools_twoFactor.php
[edit]
[+]
dashboard
[-] wfScanFileLink.php
[edit]
[-] wfStyle.php
[edit]