Version Description
- Fixed issue with scan scheduling that caused a loop
- Fixed issue that caused version constant to not be included in scans
Download this release
Release Info
Developer | mmaunder |
Plugin | Wordfence Security – Firewall & Malware Scan |
Version | 2.1.2 |
Comparing to | |
See all releases |
Code changes from version 2.1.1 to 2.1.2
- lib/wfConfig.php +0 -3
- lib/wordfenceClass.php +5 -5
- readme.txt +5 -1
- wfscan.php +2 -0
- wordfence.php +9 -8
lib/wfConfig.php
CHANGED
@@ -372,10 +372,8 @@ class wfConfig {
|
|
372 |
$dbh = self::getDB()->getDBH();
|
373 |
$exists = self::getDB()->querySingle("select name from " . self::table() . " where name='%s'", $key);
|
374 |
if($exists){
|
375 |
-
wordfence::status(4, 'info', "set_ser() updating key $key with value to be serialized that has type: " . gettype($val));
|
376 |
$res = mysql_query("update " . self::table() . " set val='" . mysql_real_escape_string(serialize($val)) . "' where name='" . mysql_real_escape_string($key) . "'", $dbh);
|
377 |
} else {
|
378 |
-
wordfence::status(4, 'info', "set_ser() inserting key $key with value to be serialized that has type: " . gettype($val));
|
379 |
$res = mysql_query("insert IGNORE into " . self::table() . " (name, val) values ('" . mysql_real_escape_string($key) . "', '" . mysql_real_escape_string(serialize($val)) . "')", $dbh);
|
380 |
}
|
381 |
$err = mysql_error();
|
@@ -422,7 +420,6 @@ class wfConfig {
|
|
422 |
|
423 |
if(mysql_num_rows($res) > 0){
|
424 |
$row = mysql_fetch_row($res);
|
425 |
-
wordfence::status(4, 'info', "get_ser() Unserializing key $key with data length " . strlen($row[0]));
|
426 |
return unserialize($row[0]);
|
427 |
}
|
428 |
return $default;
|
372 |
$dbh = self::getDB()->getDBH();
|
373 |
$exists = self::getDB()->querySingle("select name from " . self::table() . " where name='%s'", $key);
|
374 |
if($exists){
|
|
|
375 |
$res = mysql_query("update " . self::table() . " set val='" . mysql_real_escape_string(serialize($val)) . "' where name='" . mysql_real_escape_string($key) . "'", $dbh);
|
376 |
} else {
|
|
|
377 |
$res = mysql_query("insert IGNORE into " . self::table() . " (name, val) values ('" . mysql_real_escape_string($key) . "', '" . mysql_real_escape_string(serialize($val)) . "')", $dbh);
|
378 |
}
|
379 |
$err = mysql_error();
|
420 |
|
421 |
if(mysql_num_rows($res) > 0){
|
422 |
$row = mysql_fetch_row($res);
|
|
|
423 |
return unserialize($row[0]);
|
424 |
}
|
425 |
return $default;
|
lib/wordfenceClass.php
CHANGED
@@ -163,8 +163,8 @@ class wordfence {
|
|
163 |
}
|
164 |
wp_clear_scheduled_hook('wordfence_daily_cron');
|
165 |
wp_clear_scheduled_hook('wordfence_hourly_cron');
|
166 |
-
wp_schedule_event(
|
167 |
-
wp_schedule_event(
|
168 |
$db = new wfDB();
|
169 |
|
170 |
//Upgrading from 1.5.6 or earlier needs:
|
@@ -1248,7 +1248,7 @@ class wordfence {
|
|
1248 |
public static function scheduleNextScan($force = false){
|
1249 |
if(wfConfig::get('scheduledScansEnabled')){
|
1250 |
$nextScan = wp_next_scheduled('wordfence_scheduled_scan');
|
1251 |
-
if((! $force) && $nextScan && $nextScan -
|
1252 |
//scan is already scheduled for the future
|
1253 |
return;
|
1254 |
}
|
@@ -1258,11 +1258,11 @@ class wordfence {
|
|
1258 |
return $result['errorMsg'];
|
1259 |
}
|
1260 |
$secsToGo = 3600 * 6; //In case we can't contact the API, schedule next scan 6 hours from now.
|
1261 |
-
if(is_array($result) && $result['secsToGo'] >
|
1262 |
$secsToGo = $result['secsToGo'];
|
1263 |
}
|
1264 |
wp_clear_scheduled_hook('wordfence_scheduled_scan');
|
1265 |
-
wp_schedule_single_event(
|
1266 |
} else {
|
1267 |
wp_clear_scheduled_hook('wordfence_scheduled_scan');
|
1268 |
}
|
163 |
}
|
164 |
wp_clear_scheduled_hook('wordfence_daily_cron');
|
165 |
wp_clear_scheduled_hook('wordfence_hourly_cron');
|
166 |
+
wp_schedule_event(time(), 'daily', 'wordfence_daily_cron');
|
167 |
+
wp_schedule_event(time(), 'hourly', 'wordfence_hourly_cron');
|
168 |
$db = new wfDB();
|
169 |
|
170 |
//Upgrading from 1.5.6 or earlier needs:
|
1248 |
public static function scheduleNextScan($force = false){
|
1249 |
if(wfConfig::get('scheduledScansEnabled')){
|
1250 |
$nextScan = wp_next_scheduled('wordfence_scheduled_scan');
|
1251 |
+
if((! $force) && $nextScan && $nextScan - time() > 0){
|
1252 |
//scan is already scheduled for the future
|
1253 |
return;
|
1254 |
}
|
1258 |
return $result['errorMsg'];
|
1259 |
}
|
1260 |
$secsToGo = 3600 * 6; //In case we can't contact the API, schedule next scan 6 hours from now.
|
1261 |
+
if(is_array($result) && $result['secsToGo'] > 1800){
|
1262 |
$secsToGo = $result['secsToGo'];
|
1263 |
}
|
1264 |
wp_clear_scheduled_hook('wordfence_scheduled_scan');
|
1265 |
+
wp_schedule_single_event(time() + $secsToGo, 'wordfence_scheduled_scan');
|
1266 |
} else {
|
1267 |
wp_clear_scheduled_hook('wordfence_scheduled_scan');
|
1268 |
}
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: mmaunder
|
|
3 |
Tags: wordpress, security, wordpress security, security plugin, secure, anti-virus, malware, firewall, antivirus, virus, google safe browsing, phishing, scrapers, hacking, wordfence, securty, secrity, secure
|
4 |
Requires at least: 3.3.1
|
5 |
Tested up to: 3.3.2
|
6 |
-
Stable tag: 2.1.
|
7 |
|
8 |
Wordfence Security is a free enterprise class security plugin that includes a firewall, virus scanning, real-time traffic with geolocation and more.
|
9 |
|
@@ -152,6 +152,10 @@ or a theme, because often these have been updated to fix a security hole.
|
|
152 |
5. If you're technically minded, this is the under-the-hood view of Wordfence options where you can fine-tune your security settings.
|
153 |
|
154 |
== Changelog ==
|
|
|
|
|
|
|
|
|
155 |
= 2.1.1 =
|
156 |
* Added ability to permanently block IP's
|
157 |
* Added ability to manually block IP's
|
3 |
Tags: wordpress, security, wordpress security, security plugin, secure, anti-virus, malware, firewall, antivirus, virus, google safe browsing, phishing, scrapers, hacking, wordfence, securty, secrity, secure
|
4 |
Requires at least: 3.3.1
|
5 |
Tested up to: 3.3.2
|
6 |
+
Stable tag: 2.1.2
|
7 |
|
8 |
Wordfence Security is a free enterprise class security plugin that includes a firewall, virus scanning, real-time traffic with geolocation and more.
|
9 |
|
152 |
5. If you're technically minded, this is the under-the-hood view of Wordfence options where you can fine-tune your security settings.
|
153 |
|
154 |
== Changelog ==
|
155 |
+
= 2.1.2 =
|
156 |
+
* Fixed issue with scan scheduling that caused a loop
|
157 |
+
* Fixed issue that caused version constant to not be included in scans
|
158 |
+
|
159 |
= 2.1.1 =
|
160 |
* Added ability to permanently block IP's
|
161 |
* Added ability to manually block IP's
|
wfscan.php
CHANGED
@@ -1,5 +1,6 @@
|
|
1 |
<?php
|
2 |
/* Don't remove this line. WFSOURCEVISIBLE */
|
|
|
3 |
ignore_user_abort(true);
|
4 |
$wordfence_wp_version = false;
|
5 |
if ( !defined('ABSPATH') ) {
|
@@ -16,6 +17,7 @@ if ( !defined('ABSPATH') ) {
|
|
16 |
require_once('../../../wp-includes/version.php');
|
17 |
}
|
18 |
}
|
|
|
19 |
require_once('lib/wordfenceConstants.php');
|
20 |
require_once('lib/wfScanEngine.php');
|
21 |
|
1 |
<?php
|
2 |
/* Don't remove this line. WFSOURCEVISIBLE */
|
3 |
+
define('WORDFENCE_SCAN_MODE', true); //So that we can include wordfence.php and get the version constant
|
4 |
ignore_user_abort(true);
|
5 |
$wordfence_wp_version = false;
|
6 |
if ( !defined('ABSPATH') ) {
|
17 |
require_once('../../../wp-includes/version.php');
|
18 |
}
|
19 |
}
|
20 |
+
require_once('wordfence.php');
|
21 |
require_once('lib/wordfenceConstants.php');
|
22 |
require_once('lib/wfScanEngine.php');
|
23 |
|
wordfence.php
CHANGED
@@ -4,16 +4,17 @@ Plugin Name: Wordfence Security
|
|
4 |
Plugin URI: http://wordfence.com/
|
5 |
Description: Wordfence Security - Anti-virus and Firewall security plugin for WordPress
|
6 |
Author: Mark Maunder
|
7 |
-
Version: 2.1.
|
8 |
Author URI: http://wordfence.com/
|
9 |
*/
|
10 |
-
define('WORDFENCE_VERSION', '2.1.
|
11 |
-
|
12 |
-
require_once('lib/wordfenceConstants.php');
|
13 |
-
require_once('lib/wordfenceClass.php');
|
14 |
-
register_activation_hook(WP_PLUGIN_DIR . '/wordfence/wordfence.php', 'wordfence::installPlugin');
|
15 |
-
register_deactivation_hook(WP_PLUGIN_DIR . '/wordfence/wordfence.php', 'wordfence::uninstallPlugin');
|
16 |
-
wordfence::install_actions();
|
17 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
|
19 |
?>
|
4 |
Plugin URI: http://wordfence.com/
|
5 |
Description: Wordfence Security - Anti-virus and Firewall security plugin for WordPress
|
6 |
Author: Mark Maunder
|
7 |
+
Version: 2.1.2
|
8 |
Author URI: http://wordfence.com/
|
9 |
*/
|
10 |
+
define('WORDFENCE_VERSION', '2.1.2');
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
12 |
+
if(! defined('WORDFENCE_SCAN_MODE')){
|
13 |
+
require_once('lib/wordfenceConstants.php');
|
14 |
+
require_once('lib/wordfenceClass.php');
|
15 |
+
register_activation_hook(WP_PLUGIN_DIR . '/wordfence/wordfence.php', 'wordfence::installPlugin');
|
16 |
+
register_deactivation_hook(WP_PLUGIN_DIR . '/wordfence/wordfence.php', 'wordfence::uninstallPlugin');
|
17 |
+
wordfence::install_actions();
|
18 |
+
}
|
19 |
|
20 |
?>
|