Shield Security for WordPress - Version 13.0.4

Version Description

Download this release

Release Info

Developer paultgoodchild
Plugin Icon 128x128 Shield Security for WordPress
Version 13.0.4
Comparing to
See all releases

Code changes from version 13.0.3 to 13.0.4

cl.json CHANGED
@@ -123,6 +123,12 @@
123
  "title": "Add a class to Google Authenticator QR image.",
124
  "description": [],
125
  "patch": "13.0.3"
 
 
 
 
 
 
126
  }
127
  ]
128
  },
123
  "title": "Add a class to Google Authenticator QR image.",
124
  "description": [],
125
  "patch": "13.0.3"
126
+ },
127
+ {
128
+ "type": "fixed",
129
+ "title": "Error with MainWP loading in certain cases.",
130
+ "description": [],
131
+ "patch": "13.0.4"
132
  }
133
  ]
134
  },
icwp-wpsf.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Shield Security
4
  * Plugin URI: https://shsec.io/2f
5
  * Description: Powerful, Easy-To-Use #1 Rated WordPress Security System
6
- * Version: 13.0.3
7
  * Text Domain: wp-simple-firewall
8
  * Domain Path: /languages
9
  * Author: Shield Security
3
  * Plugin Name: Shield Security
4
  * Plugin URI: https://shsec.io/2f
5
  * Description: Powerful, Easy-To-Use #1 Rated WordPress Security System
6
+ * Version: 13.0.4
7
  * Text Domain: wp-simple-firewall
8
  * Domain Path: /languages
9
  * Author: Shield Security
plugin-spec.php CHANGED
@@ -1,8 +1,8 @@
1
  {
2
  "properties": {
3
- "version": "13.0.3",
4
- "release_timestamp": 1640079100,
5
- "build": "202112.2101",
6
  "slug_parent": "icwp",
7
  "slug_plugin": "wpsf",
8
  "human_name": "Shield Security",
1
  {
2
  "properties": {
3
+ "version": "13.0.4",
4
+ "release_timestamp": 1640169200,
5
+ "build": "202112.2201",
6
  "slug_parent": "icwp",
7
  "slug_plugin": "wpsf",
8
  "human_name": "Shield Security",
plugin.json CHANGED
@@ -1,8 +1,8 @@
1
  {
2
  "properties": {
3
- "version": "13.0.3",
4
- "release_timestamp": 1640079100,
5
- "build": "202112.2101",
6
  "slug_parent": "icwp",
7
  "slug_plugin": "wpsf",
8
  "human_name": "Shield Security",
1
  {
2
  "properties": {
3
+ "version": "13.0.4",
4
+ "release_timestamp": 1640169200,
5
+ "build": "202112.2201",
6
  "slug_parent": "icwp",
7
  "slug_plugin": "wpsf",
8
  "human_name": "Shield Security",
readme.txt CHANGED
@@ -8,7 +8,7 @@ Requires at least: 3.7
8
  Requires PHP: 7.0
9
  Recommended PHP: 7.4
10
  Tested up to: 5.8
11
- Stable tag: 13.0.3
12
 
13
  No-Nonsense Security Hardening that protects WordPress against hackers, malicious bots, and spammers (no captchas!). Now with exclusive ShieldNET Technology.
14
 
8
  Requires PHP: 7.0
9
  Recommended PHP: 7.4
10
  Tested up to: 5.8
11
+ Stable tag: 13.0.4
12
 
13
  No-Nonsense Security Hardening that protects WordPress against hackers, malicious bots, and spammers (no captchas!). Now with exclusive ShieldNET Technology.
14
 
src/lib/src/Databases/Base/Select.php CHANGED
@@ -208,8 +208,8 @@ class Select extends BaseQuery {
208
  else {
209
  $mData = $this->querySelect();
210
  if ( $this->isResultsAsVo() ) {
211
- foreach ( $mData as $nKey => $oAudit ) {
212
- $mData[ $nKey ] = $this->getDbH()->getVo()->applyFromArray( $oAudit );
213
  }
214
  }
215
  }
208
  else {
209
  $mData = $this->querySelect();
210
  if ( $this->isResultsAsVo() ) {
211
+ foreach ( $mData as $nKey => $res ) {
212
+ $mData[ $nKey ] = $this->getDbH()->getVo()->applyFromArray( $res );
213
  }
214
  }
215
  }
src/lib/src/Modules/Data/Lib/GeoIP/Lookup.php CHANGED
@@ -54,7 +54,7 @@ class Lookup {
54
  ] );
55
  }
56
 
57
- $geoData = $ipRecord->geo ?? [];
58
  }
59
  catch ( \Exception $e ) {
60
  $geoData = [];
54
  ] );
55
  }
56
 
57
+ $geoData = is_array( $ipRecord->geo ) ? $ipRecord->geo : [];
58
  }
59
  catch ( \Exception $e ) {
60
  $geoData = [];
src/lib/src/Modules/HackGuard/Lib/FileLocker/Ops/ReadOriginalFileContent.php CHANGED
@@ -41,7 +41,8 @@ class ReadOriginalFileContent extends BaseOps {
41
  $cacheKey = 'file-content-'.$lock->id;
42
  $content = wp_cache_get( $cacheKey, $this->getCon()->prefix( 'filelocker' ) );
43
  if ( $content === false ) {
44
- $VO = ( new OpenSslEncryptVo() )->applyFromArray( json_decode( $lock->content, true ) );
 
45
  $content = ( new DecryptFile() )
46
  ->setMod( $this->getMod() )
47
  ->retrieve( $VO, $lock->public_key_id );
41
  $cacheKey = 'file-content-'.$lock->id;
42
  $content = wp_cache_get( $cacheKey, $this->getCon()->prefix( 'filelocker' ) );
43
  if ( $content === false ) {
44
+ $decoded = json_decode( $lock->content, true );
45
+ $VO = ( new OpenSslEncryptVo() )->applyFromArray( is_array( $decoded ) ? $decoded : [] );
46
  $content = ( new DecryptFile() )
47
  ->setMod( $this->getMod() )
48
  ->retrieve( $VO, $lock->public_key_id );
src/lib/src/Modules/HackGuard/Scan/Queue/QueueItemVO.php CHANGED
@@ -23,10 +23,14 @@ class QueueItemVO extends DynPropertiesClass {
23
  case 'qitem_id':
24
  $value = (int)$value;
25
  break;
 
 
 
 
 
26
  default:
27
  break;
28
  }
29
  return $value;
30
  }
31
-
32
  }
23
  case 'qitem_id':
24
  $value = (int)$value;
25
  break;
26
+ case 'meta':
27
+ if ( !is_array( $value ) ) {
28
+ $value = [];
29
+ }
30
+ break;
31
  default:
32
  break;
33
  }
34
  return $value;
35
  }
 
36
  }
src/lib/src/Modules/HackGuard/Scan/Queue/QueueItems.php CHANGED
@@ -4,7 +4,6 @@ namespace FernleafSystems\Wordpress\Plugin\Shield\Modules\HackGuard\Scan\Queue;
4
 
5
  use FernleafSystems\Wordpress\Plugin\Shield\Modules\HackGuard\ModCon;
6
  use FernleafSystems\Wordpress\Plugin\Shield\Modules\HackGuard\Scan\Exceptions\NoQueueItems;
7
- use FernleafSystems\Wordpress\Plugin\Shield\Modules\HackGuard\Scan\Queue\QueueItemVO;
8
  use FernleafSystems\Wordpress\Plugin\Shield\Modules\ModConsumer;
9
  use FernleafSystems\Wordpress\Services\Services;
10
 
@@ -38,7 +37,7 @@ class QueueItems {
38
  foreach ( [ 'items', 'meta' ] as $key ) {
39
  $result[ $key ] = json_decode( base64_decode( $result[ $key ] ), true );
40
  }
41
- return ( new QueueItemVO() )->applyFromArray( $result );
42
  }
43
 
44
  public function hasNextItem() :bool {
4
 
5
  use FernleafSystems\Wordpress\Plugin\Shield\Modules\HackGuard\ModCon;
6
  use FernleafSystems\Wordpress\Plugin\Shield\Modules\HackGuard\Scan\Exceptions\NoQueueItems;
 
7
  use FernleafSystems\Wordpress\Plugin\Shield\Modules\ModConsumer;
8
  use FernleafSystems\Wordpress\Services\Services;
9
 
37
  foreach ( [ 'items', 'meta' ] as $key ) {
38
  $result[ $key ] = json_decode( base64_decode( $result[ $key ] ), true );
39
  }
40
+ return ( new QueueItemVO() )->applyFromArray( is_array( $result ) ? $result : [] );
41
  }
42
 
43
  public function hasNextItem() :bool {
src/lib/src/Modules/HackGuard/Scan/Results/ScanResultVO.php CHANGED
@@ -25,7 +25,6 @@ use FernleafSystems\Wordpress\Plugin\Core\Databases\Base\Record;
25
  class ScanResultVO extends Record {
26
 
27
  /**
28
- * @param string $key
29
  * @return mixed
30
  */
31
  public function __get( string $key ) {
25
  class ScanResultVO extends Record {
26
 
27
  /**
 
28
  * @return mixed
29
  */
30
  public function __get( string $key ) {
src/lib/src/Modules/Integrations/Lib/MainWP/Common/SyncMetaVO.php CHANGED
@@ -5,8 +5,6 @@ namespace FernleafSystems\Wordpress\Plugin\Shield\Modules\Integrations\Lib\MainW
5
  use FernleafSystems\Utilities\Data\Adapter\DynProperties;
6
 
7
  /**
8
- * Class SyncVO - property should align with Sync Meta
9
- * @package FernleafSystems\Wordpress\Plugin\Shield\Modules\Integrations\Lib\MainWP\Common
10
  * @property bool $is_pro
11
  * @property bool $is_mainwp_on
12
  * @property int $installed_at
5
  use FernleafSystems\Utilities\Data\Adapter\DynProperties;
6
 
7
  /**
 
 
8
  * @property bool $is_pro
9
  * @property bool $is_mainwp_on
10
  * @property int $installed_at
src/lib/src/Modules/Integrations/Lib/MainWP/Common/SyncVO.php CHANGED
@@ -15,16 +15,16 @@ class SyncVO extends DynPropertiesClass {
15
  */
16
  public function __get( string $key ) {
17
 
18
- $mValue = parent::__get( $key );
19
 
20
  switch ( $key ) {
21
  case 'meta':
22
- $mValue = ( new SyncMetaVO() )->applyFromArray( $mValue );
23
  break;
24
  default:
25
  break;
26
  }
27
 
28
- return $mValue;
29
  }
30
  }
15
  */
16
  public function __get( string $key ) {
17
 
18
+ $value = parent::__get( $key );
19
 
20
  switch ( $key ) {
21
  case 'meta':
22
+ $value = ( new SyncMetaVO() )->applyFromArray( is_array( $value ) ? $value : [] );
23
  break;
24
  default:
25
  break;
26
  }
27
 
28
+ return $value;
29
  }
30
  }
src/lib/src/Modules/Integrations/Lib/MainWP/Server/Data/ClientPluginStatus.php CHANGED
@@ -26,7 +26,6 @@ class ClientPluginStatus {
26
 
27
  /**
28
  * TODO: Consider things like global disabled / forceoff
29
- * @return array
30
  */
31
  public function detect() :array {
32
  $sync = LoadShieldSyncData::Load( $this->getMwpSite() );
26
 
27
  /**
28
  * TODO: Consider things like global disabled / forceoff
 
29
  */
30
  public function detect() :array {
31
  $sync = LoadShieldSyncData::Load( $this->getMwpSite() );
src/lib/src/Modules/Integrations/Lib/MainWP/Server/Data/LoadShieldSyncData.php CHANGED
@@ -5,7 +5,8 @@ namespace FernleafSystems\Wordpress\Plugin\Shield\Modules\Integrations\Lib\MainW
5
  use FernleafSystems\Wordpress\Plugin\Shield\Controller\Controller;
6
  use FernleafSystems\Wordpress\Plugin\Shield\Modules\Integrations\Lib\MainWP\Common\{
7
  MWPSiteVO,
8
- SyncVO};
 
9
  use MainWP\Dashboard\MainWP_DB;
10
 
11
  class LoadShieldSyncData {
@@ -18,6 +19,7 @@ class LoadShieldSyncData {
18
  if ( empty( $data ) ) {
19
  $data = '[]';
20
  }
21
- return ( new SyncVO() )->applyFromArray( json_decode( $data, true ) );
 
22
  }
23
  }
5
  use FernleafSystems\Wordpress\Plugin\Shield\Controller\Controller;
6
  use FernleafSystems\Wordpress\Plugin\Shield\Modules\Integrations\Lib\MainWP\Common\{
7
  MWPSiteVO,
8
+ SyncVO
9
+ };
10
  use MainWP\Dashboard\MainWP_DB;
11
 
12
  class LoadShieldSyncData {
19
  if ( empty( $data ) ) {
20
  $data = '[]';
21
  }
22
+ $decoded = json_decode( $data, true );
23
+ return ( new SyncVO() )->applyFromArray( is_array( $decoded ) ? $decoded : [] );
24
  }
25
  }
src/lib/vendor/composer/autoload_classmap.php CHANGED
@@ -225,7 +225,6 @@ return array(
225
  'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\AuditTrail\\Upgrade' => $baseDir . '/src/Modules/AuditTrail/Upgrade.php',
226
  'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\AuditTrail\\WpCli' => $baseDir . '/src/Modules/AuditTrail/WpCli.php',
227
  'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\AuditTrail\\WpCli\\Display' => $baseDir . '/src/Modules/AuditTrail/WpCli/Display.php',
228
- 'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\Autoupdates\\AjaxHandler' => $baseDir . '/src/Modules/Autoupdates/AjaxHandler.php',
229
  'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\Autoupdates\\Insights\\OverviewCards' => $baseDir . '/src/Modules/Autoupdates/Insights/OverviewCards.php',
230
  'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\Autoupdates\\ModCon' => $baseDir . '/src/Modules/Autoupdates/ModCon.php',
231
  'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\Autoupdates\\Options' => $baseDir . '/src/Modules/Autoupdates/Options.php',
225
  'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\AuditTrail\\Upgrade' => $baseDir . '/src/Modules/AuditTrail/Upgrade.php',
226
  'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\AuditTrail\\WpCli' => $baseDir . '/src/Modules/AuditTrail/WpCli.php',
227
  'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\AuditTrail\\WpCli\\Display' => $baseDir . '/src/Modules/AuditTrail/WpCli/Display.php',
 
228
  'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\Autoupdates\\Insights\\OverviewCards' => $baseDir . '/src/Modules/Autoupdates/Insights/OverviewCards.php',
229
  'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\Autoupdates\\ModCon' => $baseDir . '/src/Modules/Autoupdates/ModCon.php',
230
  'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\Autoupdates\\Options' => $baseDir . '/src/Modules/Autoupdates/Options.php',
src/lib/vendor/composer/autoload_static.php CHANGED
@@ -411,7 +411,6 @@ class ComposerStaticInit4fc2c6daaffaf40b64b79b6d26830171
411
  'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\AuditTrail\\Upgrade' => __DIR__ . '/../..' . '/src/Modules/AuditTrail/Upgrade.php',
412
  'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\AuditTrail\\WpCli' => __DIR__ . '/../..' . '/src/Modules/AuditTrail/WpCli.php',
413
  'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\AuditTrail\\WpCli\\Display' => __DIR__ . '/../..' . '/src/Modules/AuditTrail/WpCli/Display.php',
414
- 'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\Autoupdates\\AjaxHandler' => __DIR__ . '/../..' . '/src/Modules/Autoupdates/AjaxHandler.php',
415
  'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\Autoupdates\\Insights\\OverviewCards' => __DIR__ . '/../..' . '/src/Modules/Autoupdates/Insights/OverviewCards.php',
416
  'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\Autoupdates\\ModCon' => __DIR__ . '/../..' . '/src/Modules/Autoupdates/ModCon.php',
417
  'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\Autoupdates\\Options' => __DIR__ . '/../..' . '/src/Modules/Autoupdates/Options.php',
411
  'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\AuditTrail\\Upgrade' => __DIR__ . '/../..' . '/src/Modules/AuditTrail/Upgrade.php',
412
  'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\AuditTrail\\WpCli' => __DIR__ . '/../..' . '/src/Modules/AuditTrail/WpCli.php',
413
  'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\AuditTrail\\WpCli\\Display' => __DIR__ . '/../..' . '/src/Modules/AuditTrail/WpCli/Display.php',
 
414
  'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\Autoupdates\\Insights\\OverviewCards' => __DIR__ . '/../..' . '/src/Modules/Autoupdates/Insights/OverviewCards.php',
415
  'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\Autoupdates\\ModCon' => __DIR__ . '/../..' . '/src/Modules/Autoupdates/ModCon.php',
416
  'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\Autoupdates\\Options' => __DIR__ . '/../..' . '/src/Modules/Autoupdates/Options.php',