Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-conte.../plugins/wordfenc.../lib
File: wfActivityReport.php
$shortSiteURL = preg_replace('/^https?:\/\//i', '', site_url());
[500] Fix | Delete
[501] Fix | Delete
$content = $this->toEmailView()->__toString();
[502] Fix | Delete
[503] Fix | Delete
$success = true;
[504] Fix | Delete
if (is_string($email_addresses)) { $email_addresses = explode(',', $email_addresses); }
[505] Fix | Delete
foreach ($email_addresses as $email) {
[506] Fix | Delete
$uniqueContent = str_replace('<!-- ##UNSUBSCRIBE## -->', wp_kses(sprintf(/* translators: URL to the WordPress admin panel. */ __('No longer an administrator for this site? <a href="%s" target="_blank">Click here</a> to stop receiving security alerts.', 'wordfence'), wfUtils::getSiteBaseURL() . '?_wfsf=removeAlertEmail&jwt=' . wfUtils::generateJWT(array('email' => $email))), array('a'=>array('href'=>array(), 'target'=>array()))), $content);
[507] Fix | Delete
if (!wp_mail($email, sprintf(/* translators: 1. Site URL. 2. Localized date. */ __('Wordfence activity for %1$s on %2$s', 'wordfence'), date_i18n(get_option('date_format')), $shortSiteURL), $uniqueContent, 'Content-Type: text/html')) {
[508] Fix | Delete
$success = false;
[509] Fix | Delete
}
[510] Fix | Delete
}
[511] Fix | Delete
[512] Fix | Delete
return $success;
[513] Fix | Delete
}
[514] Fix | Delete
[515] Fix | Delete
/**
[516] Fix | Delete
* @return string
[517] Fix | Delete
* @throws wfViewNotFoundException
[518] Fix | Delete
*/
[519] Fix | Delete
public function render() {
[520] Fix | Delete
return $this->toView()
[521] Fix | Delete
->render();
[522] Fix | Delete
}
[523] Fix | Delete
[524] Fix | Delete
/**
[525] Fix | Delete
* @return string
[526] Fix | Delete
*/
[527] Fix | Delete
public function __toString() {
[528] Fix | Delete
return $this->toView()
[529] Fix | Delete
->__toString();
[530] Fix | Delete
}
[531] Fix | Delete
[532] Fix | Delete
/**
[533] Fix | Delete
* @return int
[534] Fix | Delete
*/
[535] Fix | Delete
public function getLimit() {
[536] Fix | Delete
return $this->limit;
[537] Fix | Delete
}
[538] Fix | Delete
[539] Fix | Delete
/**
[540] Fix | Delete
* @param int $limit
[541] Fix | Delete
*/
[542] Fix | Delete
public function setLimit($limit) {
[543] Fix | Delete
$this->limit = $limit;
[544] Fix | Delete
}
[545] Fix | Delete
}
[546] Fix | Delete
[547] Fix | Delete
class wfRecentFirewallActivity {
[548] Fix | Delete
private $activity = array();
[549] Fix | Delete
[550] Fix | Delete
private $max_fetch = 2000;
[551] Fix | Delete
private $time_range = 604800;
[552] Fix | Delete
[553] Fix | Delete
public function __construct($max_fetch = null, $time_range = null) {
[554] Fix | Delete
if ($max_fetch !== null) {
[555] Fix | Delete
$this->max_fetch = $max_fetch;
[556] Fix | Delete
}
[557] Fix | Delete
[558] Fix | Delete
if ($time_range !== null) {
[559] Fix | Delete
$this->time_range = $time_range;
[560] Fix | Delete
}
[561] Fix | Delete
}
[562] Fix | Delete
[563] Fix | Delete
public function run() {
[564] Fix | Delete
global $wpdb;
[565] Fix | Delete
[566] Fix | Delete
$table_wfHits = wfDB::networkTable('wfHits');
[567] Fix | Delete
$results = $wpdb->get_results($wpdb->prepare(<<<SQL
[568] Fix | Delete
SELECT attackLogTime, IP, URL, UA, actionDescription, actionData
[569] Fix | Delete
FROM {$table_wfHits}
[570] Fix | Delete
WHERE action = 'blocked:waf' AND attackLogTime > (UNIX_TIMESTAMP() - %d)
[571] Fix | Delete
ORDER BY attackLogTime DESC
[572] Fix | Delete
LIMIT %d
[573] Fix | Delete
SQL
[574] Fix | Delete
, $this->time_range, $this->max_fetch));
[575] Fix | Delete
if ($results) {
[576] Fix | Delete
foreach ($results as &$row) {
[577] Fix | Delete
$actionData = json_decode($row->actionData, true);
[578] Fix | Delete
if (!is_array($actionData) || !isset($actionData['paramKey']) || !isset($actionData['paramValue'])) {
[579] Fix | Delete
continue;
[580] Fix | Delete
}
[581] Fix | Delete
[582] Fix | Delete
if (isset($actionData['failedRules']) && $actionData['failedRules'] == 'blocked') {
[583] Fix | Delete
$row->longDescription = __("Blocked because the IP is blocklisted", 'wordfence');
[584] Fix | Delete
}
[585] Fix | Delete
else {
[586] Fix | Delete
$row->longDescription = sprintf(__("Blocked for %s", 'wordfence'), $row->actionDescription);
[587] Fix | Delete
}
[588] Fix | Delete
[589] Fix | Delete
$paramKey = base64_decode($actionData['paramKey']);
[590] Fix | Delete
$paramValue = base64_decode($actionData['paramValue']);
[591] Fix | Delete
if (strlen($paramValue) > 100) {
[592] Fix | Delete
$paramValue = substr($paramValue, 0, 100) . '...';
[593] Fix | Delete
}
[594] Fix | Delete
[595] Fix | Delete
if (preg_match('/([a-z0-9_]+\.[a-z0-9_]+)(?:\[(.+?)\](.*))?/i', $paramKey, $matches)) {
[596] Fix | Delete
switch ($matches[1]) {
[597] Fix | Delete
case 'request.queryString':
[598] Fix | Delete
$row->longDescription = sprintf(__('Blocked for %1$s in query string: %2$s = %3$s', 'wordfence'), $row->actionDescription, $matches[2], $paramValue);
[599] Fix | Delete
break;
[600] Fix | Delete
case 'request.body':
[601] Fix | Delete
$row->longDescription = sprintf(__('Blocked for %1$s in POST body: %2$s = %3$s', 'wordfence'), $row->actionDescription, $matches[2], $paramValue);
[602] Fix | Delete
break;
[603] Fix | Delete
case 'request.cookie':
[604] Fix | Delete
$row->longDescription = sprintf(__('Blocked for %1$s in cookie: %2$s = %3$s', 'wordfence'), $row->actionDescription, $matches[2], $paramValue);
[605] Fix | Delete
break;
[606] Fix | Delete
case 'request.fileNames':
[607] Fix | Delete
$row->longDescription = sprintf(__('Blocked for %1$s in file: %2$s = %3$s', 'wordfence'), $row->actionDescription, $matches[2], $paramValue);
[608] Fix | Delete
break;
[609] Fix | Delete
}
[610] Fix | Delete
}
[611] Fix | Delete
}
[612] Fix | Delete
}
[613] Fix | Delete
[614] Fix | Delete
$this->activity = $results;
[615] Fix | Delete
}
[616] Fix | Delete
[617] Fix | Delete
public function mostRecentActivity($limit, &$remainder = null) {
[618] Fix | Delete
if ($remainder !== null) {
[619] Fix | Delete
$remainder = count($this->activity) - $limit;
[620] Fix | Delete
}
[621] Fix | Delete
return array_slice($this->activity, 0, $limit);
[622] Fix | Delete
}
[623] Fix | Delete
}
[624] Fix | Delete
[625] Fix | Delete
class wfRecentlyModifiedFiles extends wfDirectoryIterator {
[626] Fix | Delete
[627] Fix | Delete
/**
[628] Fix | Delete
* @var int
[629] Fix | Delete
*/
[630] Fix | Delete
private $time_range = 604800;
[631] Fix | Delete
[632] Fix | Delete
/**
[633] Fix | Delete
* @var array
[634] Fix | Delete
*/
[635] Fix | Delete
private $files = array();
[636] Fix | Delete
private $excluded_directories;
[637] Fix | Delete
[638] Fix | Delete
/**
[639] Fix | Delete
* @param string $directory
[640] Fix | Delete
* @param int $max_files_per_directory
[641] Fix | Delete
* @param int $max_iterations
[642] Fix | Delete
* @param int $time_range
[643] Fix | Delete
*/
[644] Fix | Delete
public function __construct($directory = ABSPATH, $max_files_per_directory = 20000, $max_iterations = 250000, $time_range = 604800) {
[645] Fix | Delete
parent::__construct($directory, $max_files_per_directory, $max_iterations);
[646] Fix | Delete
$this->time_range = $time_range;
[647] Fix | Delete
$excluded_directories = explode("\n", wfUtils::cleanupOneEntryPerLine(wfConfig::get('email_summary_excluded_directories', '')));
[648] Fix | Delete
$this->excluded_directories = array();
[649] Fix | Delete
foreach ($excluded_directories as $index => $path) {
[650] Fix | Delete
if (($dir = realpath(ABSPATH . $path)) !== false) {
[651] Fix | Delete
$this->excluded_directories[$dir] = 1;
[652] Fix | Delete
}
[653] Fix | Delete
}
[654] Fix | Delete
}
[655] Fix | Delete
[656] Fix | Delete
/**
[657] Fix | Delete
* @param $dir
[658] Fix | Delete
* @return bool
[659] Fix | Delete
*/
[660] Fix | Delete
protected function scan($dir) {
[661] Fix | Delete
if (!array_key_exists(realpath($dir), $this->excluded_directories)) {
[662] Fix | Delete
return parent::scan($dir);
[663] Fix | Delete
}
[664] Fix | Delete
return true;
[665] Fix | Delete
}
[666] Fix | Delete
[667] Fix | Delete
[668] Fix | Delete
/**
[669] Fix | Delete
* @param string $file
[670] Fix | Delete
*/
[671] Fix | Delete
public function file($file) {
[672] Fix | Delete
$mtime = filemtime($file);
[673] Fix | Delete
if (time() - $mtime < $this->time_range) {
[674] Fix | Delete
$this->files[] = array($file, $mtime);
[675] Fix | Delete
}
[676] Fix | Delete
}
[677] Fix | Delete
[678] Fix | Delete
/**
[679] Fix | Delete
* @param int $limit
[680] Fix | Delete
* @return array
[681] Fix | Delete
*/
[682] Fix | Delete
public function mostRecentFiles($limit = 300) {
[683] Fix | Delete
usort($this->files, array(
[684] Fix | Delete
$this,
[685] Fix | Delete
'_sortMostRecentFiles',
[686] Fix | Delete
));
[687] Fix | Delete
return array_slice($this->files, 0, $limit);
[688] Fix | Delete
}
[689] Fix | Delete
[690] Fix | Delete
/**
[691] Fix | Delete
* Sort in descending order.
[692] Fix | Delete
*
[693] Fix | Delete
* @param $a
[694] Fix | Delete
* @param $b
[695] Fix | Delete
* @return int
[696] Fix | Delete
*/
[697] Fix | Delete
private function _sortMostRecentFiles($a, $b) {
[698] Fix | Delete
if ($a[1] > $b[1]) {
[699] Fix | Delete
return -1;
[700] Fix | Delete
}
[701] Fix | Delete
if ($a[1] < $b[1]) {
[702] Fix | Delete
return 1;
[703] Fix | Delete
}
[704] Fix | Delete
return 0;
[705] Fix | Delete
}
[706] Fix | Delete
[707] Fix | Delete
/**
[708] Fix | Delete
* @return mixed
[709] Fix | Delete
*/
[710] Fix | Delete
public function getFiles() {
[711] Fix | Delete
return $this->files;
[712] Fix | Delete
}
[713] Fix | Delete
}
[714] Fix | Delete
[715] Fix | Delete
[716] Fix | Delete
class wfActivityReportView extends wfView {
[717] Fix | Delete
[718] Fix | Delete
/**
[719] Fix | Delete
* @param $file
[720] Fix | Delete
* @return string
[721] Fix | Delete
*/
[722] Fix | Delete
public function displayFile($file) {
[723] Fix | Delete
$realPath = realpath($file);
[724] Fix | Delete
if (stripos($realPath, ABSPATH) === 0) {
[725] Fix | Delete
return substr($realPath, strlen(ABSPATH));
[726] Fix | Delete
}
[727] Fix | Delete
return $realPath;
[728] Fix | Delete
}
[729] Fix | Delete
[730] Fix | Delete
/**
[731] Fix | Delete
* @param null $unix_time
[732] Fix | Delete
* @return string
[733] Fix | Delete
*/
[734] Fix | Delete
public function modTime($unix_time = null) {
[735] Fix | Delete
if ($unix_time === null) {
[736] Fix | Delete
$unix_time = time();
[737] Fix | Delete
}
[738] Fix | Delete
return wfUtils::formatLocalTime('F j, Y g:ia', $unix_time);
[739] Fix | Delete
}
[740] Fix | Delete
[741] Fix | Delete
public function attackTime($unix_time = null) {
[742] Fix | Delete
if ($unix_time === null) {
[743] Fix | Delete
$unix_time = time();
[744] Fix | Delete
}
[745] Fix | Delete
return wfUtils::formatLocalTime('F j, Y', $unix_time) . "<br>" . wfUtils::formatLocalTime('g:ia', $unix_time);
[746] Fix | Delete
}
[747] Fix | Delete
[748] Fix | Delete
public function displayIP($binaryIP) {
[749] Fix | Delete
$readableIP = wfUtils::inet_ntop($binaryIP);
[750] Fix | Delete
$country = wfUtils::countryCode2Name(wfUtils::IP2Country($readableIP));
[751] Fix | Delete
return "{$readableIP} (" . ($country ? $country : __('Unknown', 'wordfence')) . ")";
[752] Fix | Delete
}
[753] Fix | Delete
}
[754] Fix | Delete
}
[755] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function