at path:
ROOT
/
wp-content
/
plugins
/
wordfence
/
lib
/
wfCache.php
run:
R
W
Run
Diff
DIR
2026-02-05 01:05:21
R
W
Run
audit-log
DIR
2026-02-05 01:05:21
R
W
Run
dashboard
DIR
2026-02-05 01:05:21
R
W
Run
rest-api
DIR
2026-02-05 01:05:21
R
W
Run
Diff.php
5.63 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
IPTraf.php
1.17 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
IPTrafList.php
2.98 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
WFLSPHP52Compatability.php
1.27 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
compat.php
425 By
2025-12-21 04:19:00
R
W
Run
Delete
Rename
diffResult.php
2.81 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
email_genericAlert.php
1.39 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
email_newIssues.php
8.82 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
email_unlockRequest.php
2.34 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
email_unsubscribeRequest.php
1.05 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
flags.php
6.62 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
geoip.mmdb
9.26 MB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
live_activity.php
580 By
2025-12-21 04:19:00
R
W
Run
Delete
Rename
menu_dashboard.php
28.16 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
menu_dashboard_options.php
15.37 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
menu_firewall.php
2.12 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
menu_firewall_blocking.php
10.25 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
menu_firewall_blocking_options.php
4.63 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
menu_firewall_waf.php
19.96 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
menu_firewall_waf_options.php
11.09 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
menu_install.php
1.73 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
menu_options.php
24.7 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
menu_scanner.php
21.6 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
menu_scanner_credentials.php
2.77 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
menu_scanner_options.php
8.41 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
menu_support.php
17.82 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
menu_tools.php
1.49 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
menu_tools_auditlog.php
16.43 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
menu_tools_diagnostic.php
50.8 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
menu_tools_importExport.php
1.28 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
menu_tools_livetraffic.php
39.43 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
menu_tools_twoFactor.php
19.6 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
menu_tools_whois.php
4.61 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
menu_wordfence_central.php
9.66 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
noc1.key
1.64 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
sodium_compat_fast.php
185 By
2025-12-21 04:19:00
R
W
Run
Delete
Rename
sysinfo.php
1.47 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
viewFullActivityLog.php
1.47 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wf503.php
9.67 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfAPI.php
10.1 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfActivityReport.php
20.55 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfAdminNoticeQueue.php
5.2 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfAlerts.php
8.19 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfAuditLog.php
47.13 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfBinaryList.php
1.02 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfBrowscap.php
3.9 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfBrowscapCache.php
256.83 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfBulkCountries.php
9.77 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfCache.php
6.02 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfCentralAPI.php
25.8 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfCommonPasswords.php
1.25 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfConfig.php
124.66 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfCrawl.php
6.92 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfCredentialsController.php
10.3 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfCrypt.php
4.05 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfCurlInterceptor.php
1.02 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfDB.php
11.49 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfDashboard.php
8.2 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfDateLocalization.php
352.13 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfDeactivationOption.php
2.13 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfDiagnostic.php
67.03 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfDirectoryIterator.php
1.89 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfFileUtils.php
2.72 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfHelperBin.php
1.97 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfHelperString.php
2.13 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfI18n.php
878 By
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfIPWhitelist.php
1.56 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfImportExportController.php
3.23 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfInaccessibleDirectoryException.php
303 By
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfInvalidPathException.php
266 By
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfIpLocation.php
1.8 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfIpLocator.php
2.7 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfIssues.php
27.93 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfJWT.php
5.33 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfLicense.php
10.95 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfLockedOut.php
9.73 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfLog.php
57.38 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfMD5BloomFilter.php
5.2 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfModuleController.php
754 By
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfNotification.php
6.41 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfOnboardingController.php
9.22 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfPersistenceController.php
819 By
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfRESTAPI.php
377 By
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfScan.php
15.92 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfScanEngine.php
128.95 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfScanEntrypoint.php
1.04 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfScanFile.php
1.01 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfScanFileLink.php
403 By
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfScanFileListItem.php
408 By
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfScanFileProperties.php
1.07 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfScanMonitor.php
4.05 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfScanPath.php
1.77 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfSchema.php
11.93 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfStyle.php
1.21 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfSupportController.php
24.18 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfUnlockMsg.php
1.14 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfUpdateCheck.php
27.23 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfUtils.php
128.73 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfVersionCheckController.php
19.27 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfVersionSupport.php
535 By
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfView.php
2.22 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfViewResult.php
1.42 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wfWebsite.php
1.75 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wordfenceClass.php
437.99 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wordfenceConstants.php
3.56 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wordfenceHash.php
42.7 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wordfenceScanner.php
28.09 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
wordfenceURLHoover.php
18.35 KB
2025-12-21 04:19:00
R
W
Run
Delete
Rename
error_log
up
📄
wfCache.php
Save
<?php class wfCache { private static $cacheStats = array(); private static $cacheClearedThisRequest = false; private static $lastRecursiveDeleteError = false; public static function removeCaching() { $cacheType = wfConfig::get('cacheType', false); if ($cacheType === 'disabled') { return; } if ($cacheType == 'falcon') { self::addHtaccessCode('remove'); self::updateBlockedIPs('remove'); } wfConfig::set('cacheType', 'disabled'); $cacheDir = WP_CONTENT_DIR . '/wfcache/'; if (file_exists($cacheDir . '.htaccess')) { unlink($cacheDir . '.htaccess'); } self::clearPageCacheSafe(); } public static function clearPageCacheSafe(){ if(self::$cacheClearedThisRequest){ return; } self::$cacheClearedThisRequest = true; self::clearPageCache(); } public static function clearPageCache(){ //If a clear is in progress this does nothing. self::$cacheStats = array( 'dirsDeleted' => 0, 'filesDeleted' => 0, 'totalData' => 0, 'totalErrors' => 0, 'error' => '', ); $cacheDir = WP_CONTENT_DIR . '/wfcache/'; if (!file_exists($cacheDir)) { return self::$cacheStats; } $cacheClearLock = WP_CONTENT_DIR . '/wfcache/clear.lock'; if(! is_file($cacheClearLock)){ if(! touch($cacheClearLock)){ self::$cacheStats['error'] = "Could not create a lock file $cacheClearLock to clear the cache."; self::$cacheStats['totalErrors']++; return self::$cacheStats; } } $fp = fopen($cacheClearLock, 'w'); if(! $fp){ self::$cacheStats['error'] = "Could not open the lock file $cacheClearLock to clear the cache. Please make sure the directory is writable by your web server."; self::$cacheStats['totalErrors']++; return self::$cacheStats; } if(flock($fp, LOCK_EX | LOCK_NB)){ //non blocking exclusive flock attempt. If we get a lock then it continues and returns true. If we don't lock, then return false, don't block and don't clear the cache. // This logic means that if a cache clear is currently in progress we don't try to clear the cache. // This prevents web server children from being queued up waiting to be able to also clear the cache. self::$lastRecursiveDeleteError = false; self::recursiveDelete(WP_CONTENT_DIR . '/wfcache/'); if(self::$lastRecursiveDeleteError){ self::$cacheStats['error'] = self::$lastRecursiveDeleteError; self::$cacheStats['totalErrors']++; } flock($fp, LOCK_UN); @unlink($cacheClearLock); @rmdir($cacheDir); } fclose($fp); return self::$cacheStats; } private static function recursiveDelete($dir) { $files = array_diff(scandir($dir), array('.','..')); foreach ($files as $file) { if(is_dir($dir . '/' . $file)){ if(! self::recursiveDelete($dir . '/' . $file)){ return false; } } else { if($file == 'clear.lock'){ continue; } //Don't delete our lock file $size = filesize($dir . '/' . $file); if($size){ self::$cacheStats['totalData'] += round($size / 1024); } if(strpos($dir, 'wfcache/') === false){ self::$lastRecursiveDeleteError = "Not deleting file in directory $dir because it appears to be in the wrong path."; self::$cacheStats['totalErrors']++; return false; //Safety check that we're in a subdir of the cache } if(@unlink($dir . '/' . $file)){ self::$cacheStats['filesDeleted']++; } else { self::$lastRecursiveDeleteError = "Could not delete file " . $dir . "/" . $file . " : " . wfUtils::getLastError(); self::$cacheStats['totalErrors']++; return false; } } } if($dir != WP_CONTENT_DIR . '/wfcache/'){ if(strpos($dir, 'wfcache/') === false){ self::$lastRecursiveDeleteError = "Not deleting directory $dir because it appears to be in the wrong path."; self::$cacheStats['totalErrors']++; return false; //Safety check that we're in a subdir of the cache } if(@rmdir($dir)){ self::$cacheStats['dirsDeleted']++; } else { self::$lastRecursiveDeleteError = "Could not delete directory $dir : " . wfUtils::getLastError(); self::$cacheStats['totalErrors']++; return false; } return true; } else { return true; } } public static function addHtaccessCode($action){ if($action != 'remove'){ die("Error: addHtaccessCode must be called with 'remove' as param"); } $htaccessPath = self::getHtaccessPath(); if(! $htaccessPath){ return "Wordfence could not find your .htaccess file."; } $fh = @fopen($htaccessPath, 'r+'); if(! $fh){ $err = error_get_last(); return $err['message']; } flock($fh, LOCK_EX); fseek($fh, 0, SEEK_SET); //start of file clearstatcache(); $contents = fread($fh, filesize($htaccessPath)); if(! $contents){ fclose($fh); return "Could not read from $htaccessPath"; } $contents = preg_replace('/#WFCACHECODE.*WFCACHECODE[\r\s\n\t]*/s', '', $contents); ftruncate($fh, 0); fflush($fh); fseek($fh, 0, SEEK_SET); fwrite($fh, $contents); flock($fh, LOCK_UN); fclose($fh); return false; } /** * @param $action * @return bool|string|void */ public static function updateBlockedIPs($action){ //'add' or 'remove' $htaccessPath = self::getHtaccessPath(); if(! $htaccessPath){ return "Wordfence could not find your .htaccess file."; } if($action == 'remove'){ $fh = @fopen($htaccessPath, 'r+'); if(! $fh){ $err = error_get_last(); return $err['message']; } flock($fh, LOCK_EX); fseek($fh, 0, SEEK_SET); //start of file clearstatcache(); $contents = @fread($fh, filesize($htaccessPath)); if(! $contents){ fclose($fh); return "Could not read from $htaccessPath"; } $contents = preg_replace('/#WFIPBLOCKS.*WFIPBLOCKS[\r\s\n\t]*/s', '', $contents); ftruncate($fh, 0); fflush($fh); fseek($fh, 0, SEEK_SET); @fwrite($fh, $contents); flock($fh, LOCK_UN); fclose($fh); return false; } return false; } public static function getHtaccessPath(){ $homePath = wfUtils::getHomePath(); $htaccessFile = $homePath.'.htaccess'; return $htaccessFile; } public static function doNotCache(){ if(! defined('WFDONOTCACHE')){ define('WFDONOTCACHE', true); } } }