Current Path: > home > transcarter > public_html > wp-content > > plugins > wordfence > > lib
Operation : Linux host59.registrar-servers.com 4.18.0-513.18.1.lve.2.el8.x86_64 #1 SMP Sat Mar 30 15:36:11 UTC 2024 x86_64 Software : Apache Server IP : 198.54.126.42 | Your IP: 216.73.216.135 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
Diff | Directory | - | - | |
audit-log | Directory | - | - | |
dashboard | Directory | - | - | |
rest-api | Directory | - | - | |
.htaccess | File | 354 bytes | July 17 2025 21:05:48. | |
Diff.php | File | 5762 bytes | July 17 2025 21:05:47. | |
GeoLite2-Country.mmdb | File | 7825225 bytes | July 17 2025 21:05:48. | |
IPTraf.php | File | 1195 bytes | July 17 2025 21:05:48. | |
IPTrafList.php | File | 3054 bytes | July 17 2025 21:05:48. | |
WFLSPHP52Compatability.php | File | 1303 bytes | July 17 2025 21:05:48. | |
compat.php | File | 425 bytes | July 17 2025 21:05:47. | |
diffResult.php | File | 2874 bytes | July 17 2025 21:05:47. | |
email_genericAlert.php | File | 1422 bytes | July 17 2025 21:05:47. | |
email_newIssues.php | File | 9035 bytes | July 17 2025 21:05:47. | |
email_unlockRequest.php | File | 2397 bytes | July 17 2025 21:05:47. | |
email_unsubscribeRequest.php | File | 1077 bytes | July 17 2025 21:05:47. | |
flags.php | File | 6779 bytes | July 17 2025 21:05:47. | |
live_activity.php | File | 580 bytes | July 17 2025 21:05:48. | |
menu_dashboard.php | File | 28671 bytes | July 17 2025 21:05:48. | |
menu_dashboard_options.php | File | 15577 bytes | July 17 2025 21:05:48. | |
menu_firewall.php | File | 2167 bytes | July 17 2025 21:05:48. | |
menu_firewall_blocking.php | File | 10495 bytes | July 17 2025 21:05:48. | |
menu_firewall_blocking_options.php | File | 4737 bytes | July 17 2025 21:05:48. | |
menu_firewall_waf.php | File | 20443 bytes | July 17 2025 21:05:48. | |
menu_firewall_waf_options.php | File | 11357 bytes | July 17 2025 21:05:48. | |
menu_install.php | File | 1767 bytes | July 17 2025 21:05:48. | |
menu_options.php | File | 25291 bytes | July 17 2025 21:05:48. | |
menu_scanner.php | File | 22047 bytes | July 17 2025 21:05:48. | |
menu_scanner_credentials.php | File | 2838 bytes | July 17 2025 21:05:48. | |
menu_scanner_options.php | File | 8615 bytes | July 17 2025 21:05:48. | |
menu_support.php | File | 18243 bytes | July 17 2025 21:05:48. | |
menu_tools.php | File | 1528 bytes | July 17 2025 21:05:48. | |
menu_tools_auditlog.php | File | 16829 bytes | July 17 2025 21:05:48. | |
menu_tools_diagnostic.php | File | 50536 bytes | July 17 2025 21:05:48. | |
menu_tools_importExport.php | File | 1310 bytes | July 17 2025 21:05:48. | |
menu_tools_livetraffic.php | File | 40381 bytes | July 17 2025 21:05:48. | |
menu_tools_twoFactor.php | File | 20070 bytes | July 17 2025 21:05:48. | |
menu_tools_whois.php | File | 4722 bytes | July 17 2025 21:05:48. | |
menu_wordfence_central.php | File | 9889 bytes | July 17 2025 21:05:48. | |
noc1.key | File | 1683 bytes | July 17 2025 21:05:48. | |
sodium_compat_fast.php | File | 185 bytes | July 17 2025 21:05:48. | |
sysinfo.php | File | 1501 bytes | July 17 2025 21:05:48. | |
viewFullActivityLog.php | File | 1501 bytes | July 17 2025 21:05:48. | |
wf503.php | File | 9860 bytes | July 17 2025 21:05:48. | |
wfAPI.php | File | 10338 bytes | July 17 2025 21:05:48. | |
wfActivityReport.php | File | 20945 bytes | July 17 2025 21:05:48. | |
wfAdminNoticeQueue.php | File | 5323 bytes | July 17 2025 21:05:48. | |
wfAlerts.php | File | 7549 bytes | July 17 2025 21:05:48. | |
wfArray.php | File | 1816 bytes | July 17 2025 21:05:48. | |
wfAuditLog.php | File | 48265 bytes | July 17 2025 21:05:48. | |
wfBrowscap.php | File | 3996 bytes | July 17 2025 21:05:48. | |
wfBrowscapCache.php | File | 262994 bytes | July 17 2025 21:05:48. | |
wfBulkCountries.php | File | 10002 bytes | July 17 2025 21:05:48. | |
wfCache.php | File | 6166 bytes | July 17 2025 21:05:48. | |
wfCentralAPI.php | File | 26419 bytes | July 17 2025 21:05:48. | |
wfConfig.php | File | 125427 bytes | July 17 2025 21:05:48. | |
wfCrawl.php | File | 6722 bytes | July 17 2025 21:05:48. | |
wfCredentialsController.php | File | 5284 bytes | July 17 2025 21:05:48. | |
wfCrypt.php | File | 4146 bytes | July 17 2025 21:05:48. | |
wfCurlInterceptor.php | File | 1047 bytes | July 17 2025 21:05:48. | |
wfDB.php | File | 11764 bytes | July 17 2025 21:05:48. | |
wfDashboard.php | File | 8399 bytes | July 17 2025 21:05:48. | |
wfDateLocalization.php | File | 360582 bytes | July 17 2025 21:05:48. | |
wfDeactivationOption.php | File | 2184 bytes | July 17 2025 21:05:48. | |
wfDiagnostic.php | File | 68476 bytes | July 17 2025 21:05:48. | |
wfDict.php | File | 738 bytes | July 17 2025 21:05:48. | |
wfDirectoryIterator.php | File | 1937 bytes | July 17 2025 21:05:48. | |
wfFileUtils.php | File | 2784 bytes | July 17 2025 21:05:48. | |
wfHelperBin.php | File | 2015 bytes | July 17 2025 21:05:48. | |
wfHelperString.php | File | 2180 bytes | July 17 2025 21:05:48. | |
wfIPWhitelist.php | File | 1596 bytes | July 17 2025 21:05:48. | |
wfImportExportController.php | File | 3306 bytes | July 17 2025 21:05:48. | |
wfInaccessibleDirectoryException.php | File | 303 bytes | July 17 2025 21:05:48. | |
wfInvalidPathException.php | File | 266 bytes | July 17 2025 21:05:48. | |
wfIpLocation.php | File | 1768 bytes | July 17 2025 21:05:48. | |
wfIpLocator.php | File | 2810 bytes | July 17 2025 21:05:48. | |
wfIssues.php | File | 28582 bytes | July 17 2025 21:05:48. | |
wfJWT.php | File | 5455 bytes | July 17 2025 21:05:48. | |
wfLicense.php | File | 10682 bytes | July 17 2025 21:05:48. | |
wfLockedOut.php | File | 9959 bytes | July 17 2025 21:05:48. | |
wfLog.php | File | 58480 bytes | July 17 2025 21:05:48. | |
wfMD5BloomFilter.php | File | 5327 bytes | July 17 2025 21:05:48. | |
wfModuleController.php | File | 754 bytes | July 17 2025 21:05:48. | |
wfNotification.php | File | 6564 bytes | July 17 2025 21:05:48. | |
wfOnboardingController.php | File | 9443 bytes | July 17 2025 21:05:48. | |
wfPersistenceController.php | File | 819 bytes | July 17 2025 21:05:48. | |
wfRESTAPI.php | File | 377 bytes | July 17 2025 21:05:48. | |
wfScan.php | File | 16300 bytes | July 17 2025 21:05:48. | |
wfScanEngine.php | File | 136810 bytes | July 17 2025 21:05:48. | |
wfScanEntrypoint.php | File | 1070 bytes | July 17 2025 21:05:48. | |
wfScanFile.php | File | 1037 bytes | July 17 2025 21:05:48. | |
wfScanFileLink.php | File | 403 bytes | July 17 2025 21:05:48. | |
wfScanFileListItem.php | File | 408 bytes | July 17 2025 21:05:48. | |
wfScanFileProperties.php | File | 1095 bytes | July 17 2025 21:05:48. | |
wfScanMonitor.php | File | 4152 bytes | July 17 2025 21:05:48. | |
wfScanPath.php | File | 1817 bytes | July 17 2025 21:05:48. | |
wfSchema.php | File | 11175 bytes | July 17 2025 21:05:48. | |
wfStyle.php | File | 1244 bytes | July 17 2025 21:05:48. | |
wfSupportController.php | File | 24758 bytes | July 17 2025 21:05:48. | |
wfUnlockMsg.php | File | 1163 bytes | July 17 2025 21:05:48. | |
wfUpdateCheck.php | File | 27888 bytes | July 17 2025 21:05:48. | |
wfUtils.php | File | 127089 bytes | July 17 2025 21:05:48. | |
wfVersionCheckController.php | File | 19729 bytes | July 17 2025 21:05:48. | |
wfVersionSupport.php | File | 535 bytes | July 17 2025 21:05:48. | |
wfView.php | File | 2269 bytes | July 17 2025 21:05:48. | |
wfViewResult.php | File | 1455 bytes | July 17 2025 21:05:48. | |
wfWebsite.php | File | 1792 bytes | July 17 2025 21:05:48. | |
wordfenceClass.php | File | 447131 bytes | July 17 2025 21:05:48. | |
wordfenceConstants.php | File | 3650 bytes | July 17 2025 21:05:48. | |
wordfenceHash.php | File | 43726 bytes | July 17 2025 21:05:48. | |
wordfenceScanner.php | File | 31200 bytes | July 17 2025 21:05:48. | |
wordfenceURLHoover.php | File | 18804 bytes | July 17 2025 21:05:48. |
<?php class wfVersionCheckController { const VERSION_COMPATIBLE = 'compatible'; const VERSION_DEPRECATED = 'deprecated'; const VERSION_UNSUPPORTED = 'unsupported'; const OPENSSL_DEV = 0; //Betas are 1-14 const OPENSSL_RELEASE = 15; public static function shared() { static $_shared = false; if ($_shared === false) { $_shared = new wfVersionCheckController(); } return $_shared; } /** * Returns whether or not all version checks are successful. If any check returns a value other than VERSION_COMPATIBLE, this returns false. * * @return bool */ public function checkVersions() { return ($this->checkPHPVersion() == self::VERSION_COMPATIBLE) && ($this->checkOpenSSLVersion() == self::VERSION_COMPATIBLE) && ($this->checkWordPressVersion() == self::VERSION_COMPATIBLE); } /** * Does the same thing as checkVersions but also triggers display of the corresponding warnings. * * @return bool */ public function checkVersionsAndWarn() { require(dirname(__FILE__) . '/wfVersionSupport.php'); /** * @var string $wfPHPDeprecatingVersion * @var string $wfPHPMinimumVersion * @var string $wfOpenSSLDeprecatingVersion * @var string $wfOpenSSLMinimumVersion * @var string $wfWordPressDeprecatingVersion * @var string $wfWordPressMinimumVersion */ //PHP $php = $this->checkPHPVersion(); if ($php == self::VERSION_DEPRECATED) { $this->_alertEmail( 'phpVersionCheckDeprecationEmail_' . $wfPHPDeprecatingVersion, __('PHP version too old', 'wordfence'), sprintf( /* translators: 1. PHP version. 2. PHP version. */ __('Your site is using a PHP version (%1$s) that will no longer be supported by Wordfence in an upcoming release and needs to be updated. We recommend using the newest version of PHP available but will currently support PHP versions as old as %2$s. Version checks are run regularly, so if you have successfully updated, you can dismiss this notice or check that the update has taken effect later.', 'wordfence'), phpversion(), $wfPHPDeprecatingVersion ) . ' ' . sprintf(__('Learn More: %s', 'wordfence'), wfSupportController::esc_supportURL(wfSupportController::ITEM_VERSION_PHP)) ); $this->_adminNotice( 'phpVersionCheckDeprecationNotice_' . $wfPHPDeprecatingVersion, 'phpVersionCheck', wp_kses(sprintf( /* translators: 1. PHP version. 2. PHP version. */ __('<strong>WARNING: </strong> Your site is using a PHP version (%1$s) that will no longer be supported by Wordfence in an upcoming release and needs to be updated. We recommend using the newest version of PHP available but will currently support PHP versions as old as %2$s. Version checks are run regularly, so if you have successfully updated, you can dismiss this notice or check that the update has taken effect later.', 'wordfence'), phpversion(), $wfPHPDeprecatingVersion ), array('a'=>array('href'=>array(), 'target'=>array(), 'rel'=>array()))) . ' <a href="' . wfSupportController::esc_supportURL(wfSupportController::ITEM_VERSION_PHP) . '" target="_blank" rel="noopener noreferrer">' . esc_html__('Learn More', 'wordfence') . '<span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>' ); } else if ($php == self::VERSION_UNSUPPORTED) { $this->_alertEmail( 'phpVersionCheckUnsupportedEmail_' . $wfPHPMinimumVersion, __('PHP version too old', 'wordfence'), sprintf( /* translators: 1. PHP version. 2. PHP version. */ __('Your site is using a PHP version (%1$s) that is no longer supported by Wordfence and needs to be updated. We recommend using the newest version of PHP available but will currently support PHP versions as old as %2$s. Version checks are run regularly, so if you have successfully updated, you can dismiss this notice or check that the update has taken effect later.', 'wordfence'), phpversion(), $wfPHPDeprecatingVersion ) . ' ' . sprintf(/* translators: Support URL. */ __('Learn More: %s', 'wordfence'), wfSupportController::esc_supportURL(wfSupportController::ITEM_VERSION_PHP)) ); $this->_adminNotice( 'phpVersionCheckUnsupportedNotice_' . $wfPHPMinimumVersion, 'phpVersionCheck', wp_kses(sprintf( /* translators: 1. PHP version. 2. PHP version. */ __('<strong>WARNING: </strong> Your site is using a PHP version (%1$s) that is no longer supported by Wordfence and needs to be updated. We recommend using the newest version of PHP available but will currently support PHP versions as old as %2$s. Version checks are run regularly, so if you have successfully updated, you can dismiss this notice or check that the update has taken effect later.', 'wordfence'), phpversion(), $wfPHPDeprecatingVersion ), array('a'=>array('href'=>array(), 'target'=>array(), 'rel'=>array()))) . ' <a href="' . wfSupportController::esc_supportURL(wfSupportController::ITEM_VERSION_PHP) . '" target="_blank" rel="noopener noreferrer">' . esc_html__('Learn More', 'wordfence') . '<span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>' ); } else { wfAdminNoticeQueue::removeAdminNotice(false, 'phpVersionCheck'); } if (wfAdminNoticeQueue::hasNotice('phpVersionCheck')) { return false; } //OpenSSL wfAdminNoticeQueue::removeAdminNotice(false, 'opensslVersionCheck'); /*$openssl = $this->checkOpenSSLVersion(); if ($openssl == self::VERSION_DEPRECATED) { $this->_alertEmail( 'opensslVersionCheckDeprecationEmail_' . $wfOpenSSLDeprecatingVersion, __('OpenSSL version too old', 'wordfence'), sprintf(__('Your site is using an OpenSSL version (%s) that will no longer be supported by Wordfence in an upcoming release and needs to be updated. We recommend using the newest version of OpenSSL but will currently support OpenSSL versions as old as %s. Version checks are run regularly, so if you have successfully updated, you can dismiss this notice or check that the update has taken effect later.', 'wordfence'), self::openssl_make_text_version(), $wfOpenSSLDeprecatingVersion) . ' ' . sprintf(__('Learn More: %s', 'wordfence'), wfSupportController::esc_supportURL(wfSupportController::ITEM_VERSION_OPENSSL)) ); $this->_adminNotice( 'opensslVersionCheckDeprecationNotice_' . $wfOpenSSLDeprecatingVersion, 'opensslVersionCheck', sprintf(__('<strong>WARNING: </strong> Your site is using an OpenSSL version (%s) that will no longer be supported by Wordfence in an upcoming release and needs to be updated. We recommend using the newest version of OpenSSL but will currently support OpenSSL versions as old as %s. Version checks are run regularly, so if you have successfully updated, you can dismiss this notice or check that the update has taken effect later.', 'wordfence'), self::openssl_make_text_version(), $wfOpenSSLDeprecatingVersion) . ' <a href="' . wfSupportController::esc_supportURL(wfSupportController::ITEM_VERSION_OPENSSL) . '" target="_blank" rel="noopener noreferrer">' . __('Learn More', 'wordfence') . '<span class="screen-reader-text"> (<?php esc_html_e('opens in new tab', 'wordfence') ?>)</span></a>' ); return false; } else if ($openssl == self::VERSION_UNSUPPORTED) { $this->_alertEmail( 'opensslVersionCheckUnsupportedEmail_' . $wfOpenSSLMinimumVersion, __('OpenSSL version too old', 'wordfence'), sprintf(__('Your site is using an OpenSSL version (%s) that is no longer supported by Wordfence and needs to be updated. We recommend using the newest version of OpenSSL but will currently support OpenSSL versions as old as %s. Version checks are run regularly, so if you have successfully updated, you can dismiss this notice or check that the update has taken effect later.', 'wordfence'), self::openssl_make_text_version(), $wfOpenSSLDeprecatingVersion) . ' ' . sprintf(__('Learn More: %s', 'wordfence'), wfSupportController::esc_supportURL(wfSupportController::ITEM_VERSION_OPENSSL)) ); $this->_adminNotice( 'opensslVersionCheckUnsupportedNotice_' . $wfOpenSSLMinimumVersion, 'opensslVersionCheck', sprintf(__('<strong>WARNING: </strong> Your site is using an OpenSSL version (%s) that is no longer supported by Wordfence and needs to be updated. We recommend using the newest version of OpenSSL but will currently support OpenSSL versions as old as %s. Version checks are run regularly, so if you have successfully updated, you can dismiss this notice or check that the update has taken effect later.', 'wordfence'), self::openssl_make_text_version(), $wfOpenSSLDeprecatingVersion) . ' <a href="' . wfSupportController::esc_supportURL(wfSupportController::ITEM_VERSION_OPENSSL) . '" target="_blank" rel="noopener noreferrer">' . __('Learn More', 'wordfence') . '<span class="screen-reader-text"> (<?php esc_html_e('opens in new tab', 'wordfence') ?>)</span></a>' ); return false; } else { wfAdminNoticeQueue::removeAdminNotice(false, 'opensslVersionCheck'); } if (wfAdminNoticeQueue::hasNotice('opensslVersionCheck')) { return false; }*/ //WordPress $wordpress = $this->checkWordPressVersion(); if ($wordpress == self::VERSION_DEPRECATED) { require(ABSPATH . 'wp-includes/version.php'); /** @var string $wp_version */ $this->_alertEmail( 'wordpressVersionCheckDeprecationEmail_' . $wfWordPressDeprecatingVersion, __('WordPress version too old', 'wordfence'), sprintf( /* translators: 1. WordPress version. 2. WordPress version. */ __('Your site is using a WordPress version (%1$s) that will no longer be supported by Wordfence in an upcoming release and needs to be updated. We recommend using the newest version of WordPress but will currently support WordPress versions as old as %2$s. Version checks are run regularly, so if you have successfully updated, you can dismiss this notice or check that the update has taken effect later.', 'wordfence'), $wp_version, $wfWordPressDeprecatingVersion ) . ' ' . sprintf(__('Learn More: %s', 'wordfence'), wfSupportController::esc_supportURL(wfSupportController::ITEM_VERSION_WORDPRESS)) ); $this->_adminNotice( 'wordpressVersionCheckDeprecationNotice_' . $wfWordPressDeprecatingVersion, 'wordpressVersionCheck', wp_kses(sprintf( /* translators: 1. WordPress version. 2. WordPress version. */ __('<strong>WARNING: </strong> Your site is using a WordPress version (%1$s) that will no longer be supported by Wordfence in an upcoming release and needs to be updated. We recommend using the newest version of WordPress but will currently support WordPress versions as old as %2$s. Version checks are run regularly, so if you have successfully updated, you can dismiss this notice or check that the update has taken effect later.', 'wordfence'), $wp_version, $wfWordPressDeprecatingVersion ), array('a'=>array('href'=>array(), 'target'=>array(), 'rel'=>array()))) . ' <a href="' . wfSupportController::esc_supportURL(wfSupportController::ITEM_VERSION_WORDPRESS) . '" target="_blank" rel="noopener noreferrer">' . esc_html__('Learn More', 'wordfence') . '<span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>' ); } else if ($wordpress == self::VERSION_UNSUPPORTED) { require(ABSPATH . 'wp-includes/version.php'); /** @var string $wp_version */ $this->_alertEmail( 'wordpressVersionCheckUnsupportedEmail_' . $wfWordPressMinimumVersion, __('WordPress version too old', 'wordfence'), sprintf( /* translators: 1. WordPress version. 2. WordPress version. */ __('Your site is using a WordPress version (%1$s) that is no longer supported by Wordfence and needs to be updated. We recommend using the newest version of WordPress but will currently support WordPress versions as old as %2$s. Version checks are run regularly, so if you have successfully updated, you can dismiss this notice or check that the update has taken effect later.', 'wordfence'), $wp_version, $wfWordPressDeprecatingVersion) . ' ' . sprintf(__('Learn More: %s', 'wordfence'), wfSupportController::esc_supportURL(wfSupportController::ITEM_VERSION_WORDPRESS)) ); $this->_adminNotice( 'wordpressVersionCheckUnsupportedNotice_' . $wfWordPressMinimumVersion, 'wordpressVersionCheck', wp_kses(sprintf( /* translators: 1. WordPress version. 2. WordPress version. */ __('<strong>WARNING: </strong> Your site is using a WordPress version (%1$s) that is no longer supported by Wordfence and needs to be updated. We recommend using the newest version of WordPress but will currently support WordPress versions as old as %2$s. Version checks are run regularly, so if you have successfully updated, you can dismiss this notice or check that the update has taken effect later.', 'wordfence'), $wp_version, $wfWordPressDeprecatingVersion), array('a'=>array('href'=>array(), 'target'=>array(), 'rel'=>array()))) . ' <a href="' . wfSupportController::esc_supportURL(wfSupportController::ITEM_VERSION_WORDPRESS) . '" target="_blank" rel="noopener noreferrer">' . esc_html__('Learn More', 'wordfence') . '<span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>' ); } else { wfAdminNoticeQueue::removeAdminNotice(false, 'wordpressVersionCheck'); } if (wfAdminNoticeQueue::hasNotice('wordpressVersionCheck')) { return false; } return true; } private function _alertEmail($checkKey, $title, $body) { if (!wfConfig::get($checkKey)) { wordfence::alert($title, $body, wfUtils::getIP()); wfConfig::set($checkKey, true); } } private function _adminNotice($checkKey, $noticeKey, $message) { if (!wfConfig::get($checkKey)) { wfAdminNoticeQueue::addAdminNotice(wfAdminNotice::SEVERITY_CRITICAL, $message, $noticeKey); wfConfig::set($checkKey, true); } } /** * Returns whether or not the PHP version meets our minimum requirement or is a version being deprecated. * * @return string One of the VERSION_ constants. */ public function checkPHPVersion() { require(dirname(__FILE__) . '/wfVersionSupport.php'); /** * @var string $wfPHPDeprecatingVersion * @var string $wfPHPMinimumVersion */ if (version_compare(phpversion(), $wfPHPDeprecatingVersion, '>=')) { return self::VERSION_COMPATIBLE; } if ($wfPHPDeprecatingVersion != $wfPHPMinimumVersion && version_compare(phpversion(), $wfPHPMinimumVersion, '>=')) { return self::VERSION_DEPRECATED; } return self::VERSION_UNSUPPORTED; } /** * Returns whether or not the OpenSSL version meets our minimum requirement or is a version being deprecated. * * @return string One of the VERSION_ constants. */ public function checkOpenSSLVersion() { require(dirname(__FILE__) . '/wfVersionSupport.php'); /** * @var string $wfOpenSSLDeprecatingVersion * @var string $wfOpenSSLMinimumVersion */ if (self::openssl_version_compare($wfOpenSSLDeprecatingVersion) <= 0) { return self::VERSION_COMPATIBLE; } if ($wfOpenSSLDeprecatingVersion != $wfOpenSSLMinimumVersion && self::openssl_version_compare($wfOpenSSLMinimumVersion) <= 0) { return self::VERSION_DEPRECATED; } return self::VERSION_UNSUPPORTED; } /** * Returns whether or not the WordPress version meets our minimum requirement or is a version being deprecated. * * @return string One of the VERSION_ constants. */ public function checkWordPressVersion() { require(ABSPATH . 'wp-includes/version.php'); /** @var string $wp_version */ require(dirname(__FILE__) . '/wfVersionSupport.php'); /** * @var string $wfWordPressDeprecatingVersion * @var string $wfWordPressMinimumVersion */ if (version_compare($wp_version, $wfWordPressDeprecatingVersion, '>=')) { return self::VERSION_COMPATIBLE; } if ($wfWordPressDeprecatingVersion != $wfWordPressMinimumVersion && version_compare($wp_version, $wfWordPressMinimumVersion, '>=')) { return self::VERSION_DEPRECATED; } return self::VERSION_UNSUPPORTED; } /** * Utility Functions */ /** * Returns whether or not the OpenSSL version is before, after, or equal to the equivalent text version string. * * @param string $compareVersion * @param int $openSSLVersion A version number in the format OpenSSL uses. * @param bool $allowDevBeta If true, dev and beta versions of $compareVersion are treated as equivalent to release versions despite having a lower version number. * @return bool|int Returns -1 if $compareVersion is earlier, 0 if equal, 1 if later, and false if not a valid version string. */ public static function openssl_version_compare($compareVersion, $openSSLVersion = OPENSSL_VERSION_NUMBER, $allowDevBeta = true) { if (preg_match('/^(\d+)\.(\d+)\.(\d+)([a-z]*)((?:-dev|-beta\d\d?)?)/i', $compareVersion, $matches)) { $primary = 0; $major = 0; $minor = 0; $fixLetterIndexes = 0; $patch = self::OPENSSL_RELEASE; if (isset($matches[1])) { $primary = (int) $matches[1]; } if (isset($matches[2])) { $major = (int) $matches[2]; } if (isset($matches[3])) { $minor = (int) $matches[3]; } if (isset($matches[4]) && !empty($matches[4])) { $letters = str_split($matches[4]); foreach ($letters as $l) { $fixLetterIndexes += strpos('abcdefghijklmnopqrstuvwxyz', strtolower($l)) + 1; } } if (isset($matches[5]) && !empty($matches[5])) { if (preg_match('/^-beta(\d+)$/i', $matches[5], $betaMatches)) { $patch = (int) $betaMatches[1]; } else { $patch = self::OPENSSL_DEV; } } $compareOpenSSLVersion = self::openssl_make_number_version($primary, $major, $minor, $fixLetterIndexes, $patch); if ($allowDevBeta) { $compareOpenSSLVersion = $compareOpenSSLVersion >> 4; $openSSLVersion = $openSSLVersion >> 4; } if ($compareOpenSSLVersion < $openSSLVersion) { return -1; } else if ($compareOpenSSLVersion == $openSSLVersion) { return 0; } return 1; } return false; } /** * Builds a number that can be compared to OPENSSL_VERSION_NUMBER from the parameters given. This is a modified * version of the macro in the OpenSSL source. * * @param int $primary The '1' in 1.0.2g. * @param int $major The '0' in 1.0.2g. * @param int $minor The '2' in 1.0.2g. * @param int $fixLetterIndexes The 'g' in 1.0.2g. This can potentially be multiple letters, in which case, all of the indexes are added. * @param int $patch * @return int */ public static function openssl_make_number_version($primary, $major, $minor, $fixLetterIndexes = 0, $patch = 0) { return ((($primary & 0xff) << 28) + (($major & 0xff) << 20) + (($minor & 0xff) << 12) + (($fixLetterIndexes & 0xff) << 4) + $patch); } /** * Builds a text version of the OpenSSL version from a number-formatted one. * * @param int $number * @return string */ public static function openssl_make_text_version($number = OPENSSL_VERSION_NUMBER) { $primary = (($number >> 28) & 0xff); $major = (($number >> 20) & 0xff); $minor = (($number >> 12) & 0xff); $fix = (($number >> 4) & 0xff); $patch = ($number & 0xf); //0 is dev, 1-14 are betas, 15 is release $alphabet = str_split('abcdefghijklmnopqrstuvwxyz'); $fixLetters = ''; while ($fix > 26) { $fixLetters .= 'z'; $fix -= 26; } if (array_key_exists($fix - 1, $alphabet)) { $fixLetters .= $alphabet[$fix - 1]; } $version = "{$primary}.{$major}.{$minor}{$fixLetters}"; if ($patch == self::OPENSSL_DEV) { $version .= '-dev'; } else if ($patch == self::OPENSSL_RELEASE) { //Do nothing } else { $version .= '-beta' . $patch; } return $version; } }
SILENT KILLER Tool