Version Description
Download this release
Release Info
Developer | paultgoodchild |
Plugin | Shield Security for WordPress |
Version | 16.1.8 |
Comparing to | |
See all releases |
Code changes from version 16.1.6 to 16.1.8
- cl.json +22 -0
- icwp-wpsf.php +1 -1
- languages/wp-simple-firewall-sv_SE.mo +0 -0
- plugin-spec.php +5 -4
- plugin.json +5 -4
- readme.txt +1 -1
- src/lib/src/Modules/HackGuard/Lib/FileLocker/Exceptions/NoFileLockPathsExistException.php +6 -0
- src/lib/src/Modules/HackGuard/Lib/FileLocker/FileLockerController.php +13 -2
- src/lib/src/Modules/HackGuard/Lib/FileLocker/Ops/BuildEncryptedFilePayload.php +7 -1
- src/lib/src/Modules/HackGuard/Lib/FileLocker/Ops/CreateFileLocks.php +8 -1
- src/lib/src/Modules/HackGuard/Lib/Snapshots/Store.php +16 -9
- src/lib/src/Modules/HackGuard/Lib/Snapshots/StoreAction/Base.php +18 -13
- src/lib/src/Modules/HackGuard/Lib/Snapshots/StoreAction/BaseAction.php +1 -5
- src/lib/src/Modules/HackGuard/Lib/Snapshots/StoreAction/MoveHashFiles.php +29 -0
- src/lib/src/Modules/HackGuard/Lib/Snapshots/StoreAction/ScheduleBuildAll.php +5 -5
- src/lib/src/Modules/HackGuard/Strings.php +2 -1
- src/lib/src/Modules/HackGuard/UI.php +9 -0
- src/lib/src/Modules/HackGuard/Upgrade.php +7 -0
- src/lib/src/Modules/IPs/DB/IpRules/CleanIpRules.php +3 -8
- src/lib/src/Modules/Plugin/Debug.php +6 -0
- src/lib/vendor/composer/autoload_classmap.php +2 -0
- src/lib/vendor/composer/autoload_static.php +2 -0
- src/lib/vendor/composer/installed.php +2 -2
- templates/twig/wpadmin_pages/insights/scans/results/section/malware/index.twig +1 -1
- templates/twig/wpadmin_pages/insights/scans/results/section/plugins/plugin_panel.twig +1 -1
- templates/twig/wpadmin_pages/insights/scans/results/section/themes/theme_panel.twig +1 -1
- templates/twig/wpadmin_pages/insights/scans/results/section/wordpress/index.twig +1 -1
cl.json
CHANGED
@@ -127,6 +127,28 @@
|
|
127 |
}
|
128 |
],
|
129 |
"patches": [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
{
|
131 |
"version": "6",
|
132 |
"released_at": 1663240500,
|
127 |
}
|
128 |
],
|
129 |
"patches": [
|
130 |
+
{
|
131 |
+
"version": "8",
|
132 |
+
"released_at": 1664360000,
|
133 |
+
"items": [
|
134 |
+
{
|
135 |
+
"title": "Bug Fix: ensure expired crowdsec IPs are always purged.",
|
136 |
+
"type": "fixed"
|
137 |
+
},
|
138 |
+
{
|
139 |
+
"title": "Optimise the checking and building of file hashes.",
|
140 |
+
"type": "improved"
|
141 |
+
},
|
142 |
+
{
|
143 |
+
"title": "Improvements to requirements checking for the File Locker feature.",
|
144 |
+
"type": "improved"
|
145 |
+
},
|
146 |
+
{
|
147 |
+
"title": "Update Swedish translations file.",
|
148 |
+
"type": "improved"
|
149 |
+
}
|
150 |
+
]
|
151 |
+
},
|
152 |
{
|
153 |
"version": "6",
|
154 |
"released_at": 1663240500,
|
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: 16.1.
|
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: 16.1.8
|
7 |
* Text Domain: wp-simple-firewall
|
8 |
* Domain Path: /languages
|
9 |
* Author: Shield Security
|
languages/wp-simple-firewall-sv_SE.mo
CHANGED
Binary file
|
plugin-spec.php
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
{
|
2 |
"properties": {
|
3 |
-
"version": "16.1.
|
4 |
-
"release_timestamp":
|
5 |
-
"build": "202209.
|
6 |
"slug_parent": "icwp",
|
7 |
"slug_plugin": "wpsf",
|
8 |
"text_domain": "wp-simple-firewall",
|
@@ -403,7 +403,8 @@
|
|
403 |
"version_upgrades": [
|
404 |
"14.1.1",
|
405 |
"14.1.4",
|
406 |
-
"16.1.2"
|
|
|
407 |
],
|
408 |
"action_links": {
|
409 |
"remove": null,
|
1 |
{
|
2 |
"properties": {
|
3 |
+
"version": "16.1.8",
|
4 |
+
"release_timestamp": 1664360000,
|
5 |
+
"build": "202209.2802",
|
6 |
"slug_parent": "icwp",
|
7 |
"slug_plugin": "wpsf",
|
8 |
"text_domain": "wp-simple-firewall",
|
403 |
"version_upgrades": [
|
404 |
"14.1.1",
|
405 |
"14.1.4",
|
406 |
+
"16.1.2",
|
407 |
+
"16.1.7"
|
408 |
],
|
409 |
"action_links": {
|
410 |
"remove": null,
|
plugin.json
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
{
|
2 |
"properties": {
|
3 |
-
"version": "16.1.
|
4 |
-
"release_timestamp":
|
5 |
-
"build": "202209.
|
6 |
"slug_parent": "icwp",
|
7 |
"slug_plugin": "wpsf",
|
8 |
"text_domain": "wp-simple-firewall",
|
@@ -403,7 +403,8 @@
|
|
403 |
"version_upgrades": [
|
404 |
"14.1.1",
|
405 |
"14.1.4",
|
406 |
-
"16.1.2"
|
|
|
407 |
],
|
408 |
"action_links": {
|
409 |
"remove": null,
|
1 |
{
|
2 |
"properties": {
|
3 |
+
"version": "16.1.8",
|
4 |
+
"release_timestamp": 1664360000,
|
5 |
+
"build": "202209.2802",
|
6 |
"slug_parent": "icwp",
|
7 |
"slug_plugin": "wpsf",
|
8 |
"text_domain": "wp-simple-firewall",
|
403 |
"version_upgrades": [
|
404 |
"14.1.1",
|
405 |
"14.1.4",
|
406 |
+
"16.1.2",
|
407 |
+
"16.1.7"
|
408 |
],
|
409 |
"action_links": {
|
410 |
"remove": null,
|
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: 6.0
|
11 |
-
Stable tag: 16.1.
|
12 |
|
13 |
Bad Bots Are Your #1 Security Risk. Stop playing whack-a-mole with malware and vulnerabilities. Discover the advantage of putting real security before marketing.
|
14 |
|
8 |
Requires PHP: 7.0
|
9 |
Recommended PHP: 7.4
|
10 |
Tested up to: 6.0
|
11 |
+
Stable tag: 16.1.8
|
12 |
|
13 |
Bad Bots Are Your #1 Security Risk. Stop playing whack-a-mole with malware and vulnerabilities. Discover the advantage of putting real security before marketing.
|
14 |
|
src/lib/src/Modules/HackGuard/Lib/FileLocker/Exceptions/NoFileLockPathsExistException.php
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php declare( strict_types=1 );
|
2 |
+
|
3 |
+
namespace FernleafSystems\Wordpress\Plugin\Shield\Modules\HackGuard\Lib\FileLocker\Exceptions;
|
4 |
+
|
5 |
+
class NoFileLockPathsExistException extends \Exception {
|
6 |
+
}
|
src/lib/src/Modules/HackGuard/Lib/FileLocker/FileLockerController.php
CHANGED
@@ -26,6 +26,11 @@ class FileLockerController extends Modules\Base\Common\ExecOnceModConsumer {
|
|
26 |
->canHandshake();
|
27 |
}
|
28 |
|
|
|
|
|
|
|
|
|
|
|
29 |
protected function run() {
|
30 |
$con = $this->getCon();
|
31 |
add_action( 'wp_loaded', [ $this, 'runAnalysis' ] );
|
@@ -34,7 +39,7 @@ class FileLockerController extends Modules\Base\Common\ExecOnceModConsumer {
|
|
34 |
}
|
35 |
|
36 |
public function checkLockConfig() {
|
37 |
-
if ( !$this->getCon()->plugin_deactivating && $this->isFileLockerStateChanged() ) {
|
38 |
$this->deleteAllLocks();
|
39 |
$this->setState( [] );
|
40 |
}
|
@@ -170,6 +175,9 @@ class FileLockerController extends Modules\Base\Common\ExecOnceModConsumer {
|
|
170 |
* This ensures our API isn't bombarded by sites that, for some reason, fail to store the lock in the DB.
|
171 |
*/
|
172 |
private function runLocksCreation() {
|
|
|
|
|
|
|
173 |
$now = Services::Request()->ts();
|
174 |
$filesToLock = ( new Ops\GetFileLocksToCreate() )->setMod( $this->getMod() )->run();
|
175 |
|
@@ -178,7 +186,6 @@ class FileLockerController extends Modules\Base\Common\ExecOnceModConsumer {
|
|
178 |
&& $now - $state[ 'last_locks_created_at' ] > 60
|
179 |
&& $now - $state[ 'last_locks_created_failed_at' ] > 600
|
180 |
) {
|
181 |
-
|
182 |
foreach ( $filesToLock as $fileKey ) {
|
183 |
try {
|
184 |
( new Ops\CreateFileLocks() )
|
@@ -188,6 +195,10 @@ class FileLockerController extends Modules\Base\Common\ExecOnceModConsumer {
|
|
188 |
$state[ 'last_locks_created_at' ] = $now;
|
189 |
$state[ 'last_error' ] = '';
|
190 |
}
|
|
|
|
|
|
|
|
|
191 |
catch ( \Exception $e ) {
|
192 |
$state[ 'last_error' ] = $e->getMessage();
|
193 |
$state[ 'last_locks_created_failed_at' ] = $now;
|
26 |
->canHandshake();
|
27 |
}
|
28 |
|
29 |
+
public function canSslEncryption() :bool {
|
30 |
+
$enc = Services::Encrypt();
|
31 |
+
return $enc->isSupportedOpenSslDataEncryption() && $enc->hasCipherAlgo( 'rc4' );
|
32 |
+
}
|
33 |
+
|
34 |
protected function run() {
|
35 |
$con = $this->getCon();
|
36 |
add_action( 'wp_loaded', [ $this, 'runAnalysis' ] );
|
39 |
}
|
40 |
|
41 |
public function checkLockConfig() {
|
42 |
+
if ( ( !$this->getCon()->plugin_deactivating && $this->isFileLockerStateChanged() ) || !$this->canSslEncryption() ) {
|
43 |
$this->deleteAllLocks();
|
44 |
$this->setState( [] );
|
45 |
}
|
175 |
* This ensures our API isn't bombarded by sites that, for some reason, fail to store the lock in the DB.
|
176 |
*/
|
177 |
private function runLocksCreation() {
|
178 |
+
/** @var HackGuard\Options $opts */
|
179 |
+
$opts = $this->getOptions();
|
180 |
+
|
181 |
$now = Services::Request()->ts();
|
182 |
$filesToLock = ( new Ops\GetFileLocksToCreate() )->setMod( $this->getMod() )->run();
|
183 |
|
186 |
&& $now - $state[ 'last_locks_created_at' ] > 60
|
187 |
&& $now - $state[ 'last_locks_created_failed_at' ] > 600
|
188 |
) {
|
|
|
189 |
foreach ( $filesToLock as $fileKey ) {
|
190 |
try {
|
191 |
( new Ops\CreateFileLocks() )
|
195 |
$state[ 'last_locks_created_at' ] = $now;
|
196 |
$state[ 'last_error' ] = '';
|
197 |
}
|
198 |
+
catch ( Exceptions\NoFileLockPathsExistException $e ) {
|
199 |
+
// Remove the key if there are no files on-disk to lock
|
200 |
+
$opts->setOpt( 'file_locker', array_diff( $opts->getFilesToLock(), [ $fileKey ] ) );
|
201 |
+
}
|
202 |
catch ( \Exception $e ) {
|
203 |
$state[ 'last_error' ] = $e->getMessage();
|
204 |
$state[ 'last_locks_created_failed_at' ] = $now;
|
src/lib/src/Modules/HackGuard/Lib/FileLocker/Ops/BuildEncryptedFilePayload.php
CHANGED
@@ -13,7 +13,13 @@ class BuildEncryptedFilePayload extends BaseOps {
|
|
13 |
*/
|
14 |
public function build( $path, $publicKey ) :string {
|
15 |
$srvEnc = Services::Encrypt();
|
16 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
if ( !$payload->success ) {
|
18 |
throw new \Exception( 'File contents could not be encrypted with message: '.$payload->message );
|
19 |
}
|
13 |
*/
|
14 |
public function build( $path, $publicKey ) :string {
|
15 |
$srvEnc = Services::Encrypt();
|
16 |
+
|
17 |
+
// Ensure the contents are never empty,
|
18 |
+
$contents = Services::WpFs()->getFileContent( $path );
|
19 |
+
if ( empty( $contents ) ) {
|
20 |
+
$contents = ' ';
|
21 |
+
}
|
22 |
+
$payload = $srvEnc->sealData( $contents, $publicKey );
|
23 |
if ( !$payload->success ) {
|
24 |
throw new \Exception( 'File contents could not be encrypted with message: '.$payload->message );
|
25 |
}
|
src/lib/src/Modules/HackGuard/Lib/FileLocker/Ops/CreateFileLocks.php
CHANGED
@@ -3,16 +3,23 @@
|
|
3 |
namespace FernleafSystems\Wordpress\Plugin\Shield\Modules\HackGuard\Lib\FileLocker\Ops;
|
4 |
|
5 |
use FernleafSystems\Wordpress\Plugin\Shield\Databases\FileLocker;
|
|
|
6 |
use FernleafSystems\Wordpress\Plugin\Shield\Modules\HackGuard\ModCon;
|
7 |
use FernleafSystems\Wordpress\Services\Services;
|
8 |
|
9 |
class CreateFileLocks extends BaseOps {
|
10 |
|
11 |
/**
|
|
|
12 |
* @throws \Exception
|
13 |
*/
|
14 |
public function create() {
|
15 |
-
|
|
|
|
|
|
|
|
|
|
|
16 |
if ( empty( $this->findLockRecordForFile() ) ) {
|
17 |
$this->processPath( $path );
|
18 |
}
|
3 |
namespace FernleafSystems\Wordpress\Plugin\Shield\Modules\HackGuard\Lib\FileLocker\Ops;
|
4 |
|
5 |
use FernleafSystems\Wordpress\Plugin\Shield\Databases\FileLocker;
|
6 |
+
use FernleafSystems\Wordpress\Plugin\Shield\Modules\HackGuard\Lib\FileLocker\Exceptions\NoFileLockPathsExistException;
|
7 |
use FernleafSystems\Wordpress\Plugin\Shield\Modules\HackGuard\ModCon;
|
8 |
use FernleafSystems\Wordpress\Services\Services;
|
9 |
|
10 |
class CreateFileLocks extends BaseOps {
|
11 |
|
12 |
/**
|
13 |
+
* @throws NoFileLockPathsExistException
|
14 |
* @throws \Exception
|
15 |
*/
|
16 |
public function create() {
|
17 |
+
$possiblePaths = $this->file->getExistingPossiblePaths();
|
18 |
+
if ( empty( $possiblePaths ) ) {
|
19 |
+
throw new NoFileLockPathsExistException();
|
20 |
+
}
|
21 |
+
|
22 |
+
foreach ( $possiblePaths as $path ) {
|
23 |
if ( empty( $this->findLockRecordForFile() ) ) {
|
24 |
$this->processPath( $path );
|
25 |
}
|
src/lib/src/Modules/HackGuard/Lib/Snapshots/Store.php
CHANGED
@@ -32,11 +32,17 @@ class Store {
|
|
32 |
*/
|
33 |
protected $workingDir;
|
34 |
|
|
|
|
|
|
|
|
|
|
|
35 |
/**
|
36 |
* @param WpPluginVo|WpThemeVo $asset
|
37 |
*/
|
38 |
-
public function __construct( $asset ) {
|
39 |
$this->asset = $asset;
|
|
|
40 |
}
|
41 |
|
42 |
/**
|
@@ -58,8 +64,15 @@ class Store {
|
|
58 |
return $this->getBaseSnapPath().'_meta'.'.txt';
|
59 |
}
|
60 |
|
61 |
-
|
62 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
}
|
64 |
|
65 |
public function getWorkingDir() :string {
|
@@ -201,7 +214,6 @@ class Store {
|
|
201 |
}
|
202 |
|
203 |
/**
|
204 |
-
* @return bool
|
205 |
* @throws \Exception
|
206 |
*/
|
207 |
public function saveMeta() :bool {
|
@@ -217,7 +229,6 @@ class Store {
|
|
217 |
}
|
218 |
|
219 |
/**
|
220 |
-
* @return bool
|
221 |
* @throws \Exception
|
222 |
*/
|
223 |
protected function isReady() :bool {
|
@@ -242,7 +253,6 @@ class Store {
|
|
242 |
|
243 |
/**
|
244 |
* We try to capture periods wherein which the plugin may have been deactivated and tracking has paused.
|
245 |
-
* @return bool
|
246 |
*/
|
247 |
private function isSnapStoreRelevant() :bool {
|
248 |
$relevant = true;
|
@@ -258,7 +268,6 @@ class Store {
|
|
258 |
}
|
259 |
|
260 |
/**
|
261 |
-
* @param array $data
|
262 |
* @return $this
|
263 |
*/
|
264 |
public function setSnapData( array $data ) {
|
@@ -267,7 +276,6 @@ class Store {
|
|
267 |
}
|
268 |
|
269 |
/**
|
270 |
-
* @param array $meta
|
271 |
* @return $this
|
272 |
*/
|
273 |
public function setSnapMeta( array $meta ) {
|
@@ -276,7 +284,6 @@ class Store {
|
|
276 |
}
|
277 |
|
278 |
/**
|
279 |
-
* @param string $dir
|
280 |
* @return $this
|
281 |
*/
|
282 |
public function setWorkingDir( string $dir ) {
|
32 |
*/
|
33 |
protected $workingDir;
|
34 |
|
35 |
+
/**
|
36 |
+
* @var bool
|
37 |
+
*/
|
38 |
+
private $includeVersion;
|
39 |
+
|
40 |
/**
|
41 |
* @param WpPluginVo|WpThemeVo $asset
|
42 |
*/
|
43 |
+
public function __construct( $asset, bool $includeVersion = true ) {
|
44 |
$this->asset = $asset;
|
45 |
+
$this->includeVersion = $includeVersion;
|
46 |
}
|
47 |
|
48 |
/**
|
64 |
return $this->getBaseSnapPath().'_meta'.'.txt';
|
65 |
}
|
66 |
|
67 |
+
public function getBaseSnapPath() :string {
|
68 |
+
$path = path_join( $this->getWorkingDir(), path_join( $this->getContext(), $this->getSlug() ) );
|
69 |
+
if ( !empty( $path ) && $this->includeVersion ) {
|
70 |
+
$version = $this->asset->Version;
|
71 |
+
if ( !empty( $version ) ) {
|
72 |
+
$path .= '-'.$version;
|
73 |
+
}
|
74 |
+
}
|
75 |
+
return $path;
|
76 |
}
|
77 |
|
78 |
public function getWorkingDir() :string {
|
214 |
}
|
215 |
|
216 |
/**
|
|
|
217 |
* @throws \Exception
|
218 |
*/
|
219 |
public function saveMeta() :bool {
|
229 |
}
|
230 |
|
231 |
/**
|
|
|
232 |
* @throws \Exception
|
233 |
*/
|
234 |
protected function isReady() :bool {
|
253 |
|
254 |
/**
|
255 |
* We try to capture periods wherein which the plugin may have been deactivated and tracking has paused.
|
|
|
256 |
*/
|
257 |
private function isSnapStoreRelevant() :bool {
|
258 |
$relevant = true;
|
268 |
}
|
269 |
|
270 |
/**
|
|
|
271 |
* @return $this
|
272 |
*/
|
273 |
public function setSnapData( array $data ) {
|
276 |
}
|
277 |
|
278 |
/**
|
|
|
279 |
* @return $this
|
280 |
*/
|
281 |
public function setSnapMeta( array $meta ) {
|
284 |
}
|
285 |
|
286 |
/**
|
|
|
287 |
* @return $this
|
288 |
*/
|
289 |
public function setWorkingDir( string $dir ) {
|
src/lib/src/Modules/HackGuard/Lib/Snapshots/StoreAction/Base.php
CHANGED
@@ -9,27 +9,32 @@ class Base {
|
|
9 |
|
10 |
use ModConsumer;
|
11 |
|
|
|
|
|
12 |
protected function isTempDirAvailable() :bool {
|
13 |
return !empty( $this->getTempDir() );
|
14 |
}
|
15 |
|
16 |
protected function getTempDir() :string {
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
|
|
|
|
|
|
25 |
}
|
26 |
-
$FS->deleteDir( $oldDir );
|
27 |
}
|
|
|
|
|
|
|
|
|
28 |
}
|
29 |
-
|
30 |
-
$dir = $this->generateNewDirName();
|
31 |
-
}
|
32 |
-
return $dir;
|
33 |
}
|
34 |
|
35 |
private function generateNewDirName() :string {
|
9 |
|
10 |
use ModConsumer;
|
11 |
|
12 |
+
private static $tempDir;
|
13 |
+
|
14 |
protected function isTempDirAvailable() :bool {
|
15 |
return !empty( $this->getTempDir() );
|
16 |
}
|
17 |
|
18 |
protected function getTempDir() :string {
|
19 |
+
if ( empty( self::$tempDir ) ) {
|
20 |
+
$FS = Services::WpFs();
|
21 |
+
try {
|
22 |
+
$dir = $this->findTempDir();
|
23 |
+
if ( basename( $dir ) === 'ptguard' ) {
|
24 |
+
$oldDir = $dir;
|
25 |
+
$dir = $this->generateNewDirName();
|
26 |
+
foreach ( [ 'plugins', 'themes' ] as $type ) {
|
27 |
+
$FS->moveDirContents( path_join( $oldDir, $type ), path_join( $dir, $type ) );
|
28 |
+
}
|
29 |
+
$FS->deleteDir( $oldDir );
|
30 |
}
|
|
|
31 |
}
|
32 |
+
catch ( \Exception $e ) {
|
33 |
+
$dir = $this->generateNewDirName();
|
34 |
+
}
|
35 |
+
self::$tempDir = $dir;
|
36 |
}
|
37 |
+
return self::$tempDir;
|
|
|
|
|
|
|
38 |
}
|
39 |
|
40 |
private function generateNewDirName() :string {
|
src/lib/src/Modules/HackGuard/Lib/Snapshots/StoreAction/BaseAction.php
CHANGED
@@ -3,7 +3,6 @@
|
|
3 |
namespace FernleafSystems\Wordpress\Plugin\Shield\Modules\HackGuard\Lib\Snapshots\StoreAction;
|
4 |
|
5 |
use FernleafSystems\Wordpress\Plugin\Shield\Modules\HackGuard\Lib\Snapshots;
|
6 |
-
use FernleafSystems\Wordpress\Plugin\Shield\Modules\HackGuard\ModCon;
|
7 |
use FernleafSystems\Wordpress\Plugin\Shield\Modules\ModConsumer;
|
8 |
use FernleafSystems\Wordpress\Services\Core\VOs\Assets\WpPluginVo;
|
9 |
use FernleafSystems\Wordpress\Services\Core\VOs\Assets\WpThemeVo;
|
@@ -37,9 +36,6 @@ class BaseAction extends Base {
|
|
37 |
* @throws \Exception
|
38 |
*/
|
39 |
protected function getNewStore() :Snapshots\Store {
|
40 |
-
|
41 |
-
$mod = $this->getMod();
|
42 |
-
return ( new Snapshots\Store( $this->getAsset() ) )
|
43 |
-
->setWorkingDir( $this->getTempDir() );
|
44 |
}
|
45 |
}
|
3 |
namespace FernleafSystems\Wordpress\Plugin\Shield\Modules\HackGuard\Lib\Snapshots\StoreAction;
|
4 |
|
5 |
use FernleafSystems\Wordpress\Plugin\Shield\Modules\HackGuard\Lib\Snapshots;
|
|
|
6 |
use FernleafSystems\Wordpress\Plugin\Shield\Modules\ModConsumer;
|
7 |
use FernleafSystems\Wordpress\Services\Core\VOs\Assets\WpPluginVo;
|
8 |
use FernleafSystems\Wordpress\Services\Core\VOs\Assets\WpThemeVo;
|
36 |
* @throws \Exception
|
37 |
*/
|
38 |
protected function getNewStore() :Snapshots\Store {
|
39 |
+
return ( new Snapshots\Store( $this->getAsset(), true ) )->setWorkingDir( $this->getTempDir() );
|
|
|
|
|
|
|
40 |
}
|
41 |
}
|
src/lib/src/Modules/HackGuard/Lib/Snapshots/StoreAction/MoveHashFiles.php
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php declare( strict_types=1 );
|
2 |
+
|
3 |
+
namespace FernleafSystems\Wordpress\Plugin\Shield\Modules\HackGuard\Lib\Snapshots\StoreAction;
|
4 |
+
|
5 |
+
use FernleafSystems\Wordpress\Plugin\Shield\Modules\HackGuard\Lib\Snapshots\FindAssetsToSnap;
|
6 |
+
use FernleafSystems\Wordpress\Plugin\Shield\Modules\HackGuard\Lib\Snapshots\Store;
|
7 |
+
use FernleafSystems\Wordpress\Services\Services;
|
8 |
+
|
9 |
+
class MoveHashFiles extends BaseAction {
|
10 |
+
|
11 |
+
public function run() {
|
12 |
+
$FS = Services::WpFs();
|
13 |
+
if ( $this->isTempDirAvailable() ) {
|
14 |
+
$assets = ( new FindAssetsToSnap() )
|
15 |
+
->setMod( $this->getMod() )
|
16 |
+
->run();
|
17 |
+
foreach ( $assets as $asset ) {
|
18 |
+
$oldStore = ( new Store( $asset, false ) )->setWorkingDir( $this->getTempDir() );
|
19 |
+
$newStore = ( new Store( $asset, true ) )->setWorkingDir( $this->getTempDir() );
|
20 |
+
if ( $FS->isFile( $oldStore->getSnapStorePath() ) ) {
|
21 |
+
$FS->move( $oldStore->getSnapStorePath(), $newStore->getSnapStorePath() );
|
22 |
+
}
|
23 |
+
if ( $FS->isFile( $oldStore->getSnapStoreMetaPath() ) ) {
|
24 |
+
$FS->move( $oldStore->getSnapStoreMetaPath(), $newStore->getSnapStoreMetaPath() );
|
25 |
+
}
|
26 |
+
}
|
27 |
+
}
|
28 |
+
}
|
29 |
+
}
|
src/lib/src/Modules/HackGuard/Lib/Snapshots/StoreAction/ScheduleBuildAll.php
CHANGED
@@ -73,16 +73,16 @@ class ScheduleBuildAll extends Base {
|
|
73 |
|
74 |
function ( $asset ) {
|
75 |
try {
|
76 |
-
|
77 |
->setMod( $this->getMod() )
|
78 |
->setAsset( $asset )
|
79 |
-
->run()
|
80 |
-
|
81 |
}
|
82 |
catch ( \Exception $e ) {
|
83 |
-
$
|
84 |
}
|
85 |
-
return
|
86 |
}
|
87 |
);
|
88 |
}
|
73 |
|
74 |
function ( $asset ) {
|
75 |
try {
|
76 |
+
( new Load() )
|
77 |
->setMod( $this->getMod() )
|
78 |
->setAsset( $asset )
|
79 |
+
->run();
|
80 |
+
$needBuilt = false;
|
81 |
}
|
82 |
catch ( \Exception $e ) {
|
83 |
+
$needBuilt = true;
|
84 |
}
|
85 |
+
return $needBuilt;
|
86 |
}
|
87 |
);
|
88 |
}
|
src/lib/src/Modules/HackGuard/Strings.php
CHANGED
@@ -244,7 +244,8 @@ class Strings extends Base\Strings {
|
|
244 |
__( 'Detects changes to the files, then lets you examine contents and revert as required.', 'wp-simple-firewall' ),
|
245 |
sprintf( '%s: %s', __( 'Note', 'wp-simple-firewall' ), __( 'Web.Config is only available for Windows/IIS.', 'wp-simple-firewall' ) ),
|
246 |
sprintf( '%s: %s', __( 'Important', 'wp-simple-firewall' ), __( 'After saving, it may take up to 60 seconds before a new lock is stored.', 'wp-simple-firewall' ) )
|
247 |
-
.' '.__( "It will be displayed below when it's ready.", 'wp-simple-firewall' )
|
|
|
248 |
];
|
249 |
|
250 |
$locks = ( new LoadFileLocks() )
|
244 |
__( 'Detects changes to the files, then lets you examine contents and revert as required.', 'wp-simple-firewall' ),
|
245 |
sprintf( '%s: %s', __( 'Note', 'wp-simple-firewall' ), __( 'Web.Config is only available for Windows/IIS.', 'wp-simple-firewall' ) ),
|
246 |
sprintf( '%s: %s', __( 'Important', 'wp-simple-firewall' ), __( 'After saving, it may take up to 60 seconds before a new lock is stored.', 'wp-simple-firewall' ) )
|
247 |
+
.' '.__( "It will be displayed below when it's ready.", 'wp-simple-firewall' ),
|
248 |
+
sprintf( '%s: %s', __( 'Important', 'wp-simple-firewall' ), __( "The PHP OpenSSL Extension is required, along with the RC4 Cipher.", 'wp-simple-firewall' ) ),
|
249 |
];
|
250 |
|
251 |
$locks = ( new LoadFileLocks() )
|
src/lib/src/Modules/HackGuard/UI.php
CHANGED
@@ -245,6 +245,15 @@ class UI extends BaseShield\UI {
|
|
245 |
$warnings[] = sprintf( __( 'Not available as your site cannot handshake with ShieldNET API.', 'wp-simple-firewall' ), 'OpenSSL' );
|
246 |
}
|
247 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
248 |
// if ( !Services::Encrypt()->isSupportedOpenSslDataEncryption() ) {
|
249 |
// $warnings[] = sprintf( __( 'Not available because the %s extension is not available.', 'wp-simple-firewall' ), 'OpenSSL' );
|
250 |
// }
|
245 |
$warnings[] = sprintf( __( 'Not available as your site cannot handshake with ShieldNET API.', 'wp-simple-firewall' ), 'OpenSSL' );
|
246 |
}
|
247 |
}
|
248 |
+
|
249 |
+
$enc = Services::Encrypt();
|
250 |
+
if ( !$enc->isSupportedOpenSslDataEncryption() ) {
|
251 |
+
$warnings[] = sprintf( __( "FileLocker can't be used because the PHP %s extension isn't available.", 'wp-simple-firewall' ), 'OpenSSL' );
|
252 |
+
}
|
253 |
+
elseif ( !$enc->hasCipherAlgo( 'rc4' ) ) {
|
254 |
+
$warnings[] = sprintf( __( "FileLocker can't be used because the RC4 encryption cipher isn't available.", 'wp-simple-firewall' ), 'OpenSSL' );
|
255 |
+
}
|
256 |
+
|
257 |
// if ( !Services::Encrypt()->isSupportedOpenSslDataEncryption() ) {
|
258 |
// $warnings[] = sprintf( __( 'Not available because the %s extension is not available.', 'wp-simple-firewall' ), 'OpenSSL' );
|
259 |
// }
|
src/lib/src/Modules/HackGuard/Upgrade.php
CHANGED
@@ -2,6 +2,13 @@
|
|
2 |
|
3 |
namespace FernleafSystems\Wordpress\Plugin\Shield\Modules\HackGuard;
|
4 |
|
|
|
|
|
5 |
class Upgrade extends \FernleafSystems\Wordpress\Plugin\Shield\Modules\Base\Upgrade {
|
6 |
|
|
|
|
|
|
|
|
|
|
|
7 |
}
|
2 |
|
3 |
namespace FernleafSystems\Wordpress\Plugin\Shield\Modules\HackGuard;
|
4 |
|
5 |
+
use FernleafSystems\Wordpress\Plugin\Shield\Modules\HackGuard\Lib\Snapshots\StoreAction\MoveHashFiles;
|
6 |
+
|
7 |
class Upgrade extends \FernleafSystems\Wordpress\Plugin\Shield\Modules\Base\Upgrade {
|
8 |
|
9 |
+
protected function upgrade_1617() {
|
10 |
+
( new MoveHashFiles() )
|
11 |
+
->setMod( $this->getMod() )
|
12 |
+
->run();
|
13 |
+
}
|
14 |
}
|
src/lib/src/Modules/IPs/DB/IpRules/CleanIpRules.php
CHANGED
@@ -53,15 +53,11 @@ class CleanIpRules extends ExecOnceModConsumer {
|
|
53 |
public function expired_Crowdsec() {
|
54 |
/** @var ModCon $mod */
|
55 |
$mod = $this->getMod();
|
56 |
-
|
57 |
-
// Expired CrowdSec
|
58 |
/** @var Ops\Delete $deleter */
|
59 |
$deleter = $mod->getDbH_IPRules()->getQueryDeleter();
|
60 |
-
$deleter
|
61 |
-
|
62 |
-
|
63 |
-
->addWhereOlderThan( Services::Request()->ts(), 'expires_at' )
|
64 |
-
->query();
|
65 |
}
|
66 |
|
67 |
public function duplicates_AutoBlock() {
|
@@ -83,7 +79,6 @@ class CleanIpRules extends ExecOnceModConsumer {
|
|
83 |
}
|
84 |
|
85 |
/**
|
86 |
-
* TODO: update for newer IPRules
|
87 |
* Find all records that reference duplicate IP addresses and delete surplus.
|
88 |
*/
|
89 |
public function duplicates_Crowdsec() {
|
53 |
public function expired_Crowdsec() {
|
54 |
/** @var ModCon $mod */
|
55 |
$mod = $this->getMod();
|
|
|
|
|
56 |
/** @var Ops\Delete $deleter */
|
57 |
$deleter = $mod->getDbH_IPRules()->getQueryDeleter();
|
58 |
+
$deleter->filterByType( Handler::T_CROWDSEC )
|
59 |
+
->addWhereOlderThan( Services::Request()->ts(), 'expires_at' )
|
60 |
+
->query();
|
|
|
|
|
61 |
}
|
62 |
|
63 |
public function duplicates_AutoBlock() {
|
79 |
}
|
80 |
|
81 |
/**
|
|
|
82 |
* Find all records that reference duplicate IP addresses and delete surplus.
|
83 |
*/
|
84 |
public function duplicates_Crowdsec() {
|
src/lib/src/Modules/Plugin/Debug.php
CHANGED
@@ -21,6 +21,12 @@ class Debug extends Modules\Base\Debug {
|
|
21 |
}
|
22 |
|
23 |
private function cleanIPs() {
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
$ip = '150.95.219.153';
|
25 |
$mod = $this->getCon()->getModule_IPs();
|
26 |
|
21 |
}
|
22 |
|
23 |
private function cleanIPs() {
|
24 |
+
|
25 |
+
( new Modules\IPs\DB\IpRules\CleanIpRules() )
|
26 |
+
->setMod( $this->getCon()->getModule_IPs() )
|
27 |
+
->expired_Crowdsec();
|
28 |
+
return;
|
29 |
+
|
30 |
$ip = '150.95.219.153';
|
31 |
$mod = $this->getCon()->getModule_IPs();
|
32 |
|
src/lib/vendor/composer/autoload_classmap.php
CHANGED
@@ -406,6 +406,7 @@ return array(
|
|
406 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\DB\\Scans\\Ops\\Update' => $baseDir . '/src/Modules/HackGuard/DB/Scans/Ops/Update.php',
|
407 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\DB\\Utility\\Clean' => $baseDir . '/src/Modules/HackGuard/DB/Utility/Clean.php',
|
408 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Debug' => $baseDir . '/src/Modules/HackGuard/Debug.php',
|
|
|
409 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\FileLocker\\File' => $baseDir . '/src/Modules/HackGuard/Lib/FileLocker/File.php',
|
410 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\FileLocker\\FileLockerController' => $baseDir . '/src/Modules/HackGuard/Lib/FileLocker/FileLockerController.php',
|
411 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\FileLocker\\Ops\\Accept' => $baseDir . '/src/Modules/HackGuard/Lib/FileLocker/Ops/Accept.php',
|
@@ -460,6 +461,7 @@ return array(
|
|
460 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Snapshots\\StoreAction\\Delete' => $baseDir . '/src/Modules/HackGuard/Lib/Snapshots/StoreAction/Delete.php',
|
461 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Snapshots\\StoreAction\\DeleteAll' => $baseDir . '/src/Modules/HackGuard/Lib/Snapshots/StoreAction/DeleteAll.php',
|
462 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Snapshots\\StoreAction\\Load' => $baseDir . '/src/Modules/HackGuard/Lib/Snapshots/StoreAction/Load.php',
|
|
|
463 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Snapshots\\StoreAction\\ScheduleBuildAll' => $baseDir . '/src/Modules/HackGuard/Lib/Snapshots/StoreAction/ScheduleBuildAll.php',
|
464 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Snapshots\\StoreAction\\TouchAll' => $baseDir . '/src/Modules/HackGuard/Lib/Snapshots/StoreAction/TouchAll.php',
|
465 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Utility\\FileDownloadHandler' => $baseDir . '/src/Modules/HackGuard/Lib/Utility/FileDownloadHandler.php',
|
406 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\DB\\Scans\\Ops\\Update' => $baseDir . '/src/Modules/HackGuard/DB/Scans/Ops/Update.php',
|
407 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\DB\\Utility\\Clean' => $baseDir . '/src/Modules/HackGuard/DB/Utility/Clean.php',
|
408 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Debug' => $baseDir . '/src/Modules/HackGuard/Debug.php',
|
409 |
+
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\FileLocker\\Exceptions\\NoFileLockPathsExistException' => $baseDir . '/src/Modules/HackGuard/Lib/FileLocker/Exceptions/NoFileLockPathsExistException.php',
|
410 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\FileLocker\\File' => $baseDir . '/src/Modules/HackGuard/Lib/FileLocker/File.php',
|
411 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\FileLocker\\FileLockerController' => $baseDir . '/src/Modules/HackGuard/Lib/FileLocker/FileLockerController.php',
|
412 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\FileLocker\\Ops\\Accept' => $baseDir . '/src/Modules/HackGuard/Lib/FileLocker/Ops/Accept.php',
|
461 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Snapshots\\StoreAction\\Delete' => $baseDir . '/src/Modules/HackGuard/Lib/Snapshots/StoreAction/Delete.php',
|
462 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Snapshots\\StoreAction\\DeleteAll' => $baseDir . '/src/Modules/HackGuard/Lib/Snapshots/StoreAction/DeleteAll.php',
|
463 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Snapshots\\StoreAction\\Load' => $baseDir . '/src/Modules/HackGuard/Lib/Snapshots/StoreAction/Load.php',
|
464 |
+
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Snapshots\\StoreAction\\MoveHashFiles' => $baseDir . '/src/Modules/HackGuard/Lib/Snapshots/StoreAction/MoveHashFiles.php',
|
465 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Snapshots\\StoreAction\\ScheduleBuildAll' => $baseDir . '/src/Modules/HackGuard/Lib/Snapshots/StoreAction/ScheduleBuildAll.php',
|
466 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Snapshots\\StoreAction\\TouchAll' => $baseDir . '/src/Modules/HackGuard/Lib/Snapshots/StoreAction/TouchAll.php',
|
467 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Utility\\FileDownloadHandler' => $baseDir . '/src/Modules/HackGuard/Lib/Utility/FileDownloadHandler.php',
|
src/lib/vendor/composer/autoload_static.php
CHANGED
@@ -601,6 +601,7 @@ class ComposerStaticInit4fc2c6daaffaf40b64b79b6d26830171
|
|
601 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\DB\\Scans\\Ops\\Update' => __DIR__ . '/../..' . '/src/Modules/HackGuard/DB/Scans/Ops/Update.php',
|
602 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\DB\\Utility\\Clean' => __DIR__ . '/../..' . '/src/Modules/HackGuard/DB/Utility/Clean.php',
|
603 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Debug' => __DIR__ . '/../..' . '/src/Modules/HackGuard/Debug.php',
|
|
|
604 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\FileLocker\\File' => __DIR__ . '/../..' . '/src/Modules/HackGuard/Lib/FileLocker/File.php',
|
605 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\FileLocker\\FileLockerController' => __DIR__ . '/../..' . '/src/Modules/HackGuard/Lib/FileLocker/FileLockerController.php',
|
606 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\FileLocker\\Ops\\Accept' => __DIR__ . '/../..' . '/src/Modules/HackGuard/Lib/FileLocker/Ops/Accept.php',
|
@@ -655,6 +656,7 @@ class ComposerStaticInit4fc2c6daaffaf40b64b79b6d26830171
|
|
655 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Snapshots\\StoreAction\\Delete' => __DIR__ . '/../..' . '/src/Modules/HackGuard/Lib/Snapshots/StoreAction/Delete.php',
|
656 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Snapshots\\StoreAction\\DeleteAll' => __DIR__ . '/../..' . '/src/Modules/HackGuard/Lib/Snapshots/StoreAction/DeleteAll.php',
|
657 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Snapshots\\StoreAction\\Load' => __DIR__ . '/../..' . '/src/Modules/HackGuard/Lib/Snapshots/StoreAction/Load.php',
|
|
|
658 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Snapshots\\StoreAction\\ScheduleBuildAll' => __DIR__ . '/../..' . '/src/Modules/HackGuard/Lib/Snapshots/StoreAction/ScheduleBuildAll.php',
|
659 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Snapshots\\StoreAction\\TouchAll' => __DIR__ . '/../..' . '/src/Modules/HackGuard/Lib/Snapshots/StoreAction/TouchAll.php',
|
660 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Utility\\FileDownloadHandler' => __DIR__ . '/../..' . '/src/Modules/HackGuard/Lib/Utility/FileDownloadHandler.php',
|
601 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\DB\\Scans\\Ops\\Update' => __DIR__ . '/../..' . '/src/Modules/HackGuard/DB/Scans/Ops/Update.php',
|
602 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\DB\\Utility\\Clean' => __DIR__ . '/../..' . '/src/Modules/HackGuard/DB/Utility/Clean.php',
|
603 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Debug' => __DIR__ . '/../..' . '/src/Modules/HackGuard/Debug.php',
|
604 |
+
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\FileLocker\\Exceptions\\NoFileLockPathsExistException' => __DIR__ . '/../..' . '/src/Modules/HackGuard/Lib/FileLocker/Exceptions/NoFileLockPathsExistException.php',
|
605 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\FileLocker\\File' => __DIR__ . '/../..' . '/src/Modules/HackGuard/Lib/FileLocker/File.php',
|
606 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\FileLocker\\FileLockerController' => __DIR__ . '/../..' . '/src/Modules/HackGuard/Lib/FileLocker/FileLockerController.php',
|
607 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\FileLocker\\Ops\\Accept' => __DIR__ . '/../..' . '/src/Modules/HackGuard/Lib/FileLocker/Ops/Accept.php',
|
656 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Snapshots\\StoreAction\\Delete' => __DIR__ . '/../..' . '/src/Modules/HackGuard/Lib/Snapshots/StoreAction/Delete.php',
|
657 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Snapshots\\StoreAction\\DeleteAll' => __DIR__ . '/../..' . '/src/Modules/HackGuard/Lib/Snapshots/StoreAction/DeleteAll.php',
|
658 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Snapshots\\StoreAction\\Load' => __DIR__ . '/../..' . '/src/Modules/HackGuard/Lib/Snapshots/StoreAction/Load.php',
|
659 |
+
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Snapshots\\StoreAction\\MoveHashFiles' => __DIR__ . '/../..' . '/src/Modules/HackGuard/Lib/Snapshots/StoreAction/MoveHashFiles.php',
|
660 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Snapshots\\StoreAction\\ScheduleBuildAll' => __DIR__ . '/../..' . '/src/Modules/HackGuard/Lib/Snapshots/StoreAction/ScheduleBuildAll.php',
|
661 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Snapshots\\StoreAction\\TouchAll' => __DIR__ . '/../..' . '/src/Modules/HackGuard/Lib/Snapshots/StoreAction/TouchAll.php',
|
662 |
'FernleafSystems\\Wordpress\\Plugin\\Shield\\Modules\\HackGuard\\Lib\\Utility\\FileDownloadHandler' => __DIR__ . '/../..' . '/src/Modules/HackGuard/Lib/Utility/FileDownloadHandler.php',
|
src/lib/vendor/composer/installed.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
'type' => 'library',
|
6 |
'install_path' => __DIR__ . '/../../',
|
7 |
'aliases' => array(),
|
8 |
-
'reference' => '
|
9 |
'name' => 'apto-shield/requirements',
|
10 |
'dev' => true,
|
11 |
),
|
@@ -25,7 +25,7 @@
|
|
25 |
'type' => 'library',
|
26 |
'install_path' => __DIR__ . '/../../',
|
27 |
'aliases' => array(),
|
28 |
-
'reference' => '
|
29 |
'dev_requirement' => false,
|
30 |
),
|
31 |
'christian-riesen/base32' => array(
|
5 |
'type' => 'library',
|
6 |
'install_path' => __DIR__ . '/../../',
|
7 |
'aliases' => array(),
|
8 |
+
'reference' => '0fa37beb913fdb9abce42a6fda3e33d4fa3afa0e',
|
9 |
'name' => 'apto-shield/requirements',
|
10 |
'dev' => true,
|
11 |
),
|
25 |
'type' => 'library',
|
26 |
'install_path' => __DIR__ . '/../../',
|
27 |
'aliases' => array(),
|
28 |
+
'reference' => '0fa37beb913fdb9abce42a6fda3e33d4fa3afa0e',
|
29 |
'dev_requirement' => false,
|
30 |
),
|
31 |
'christian-riesen/base32' => array(
|
templates/twig/wpadmin_pages/insights/scans/results/section/malware/index.twig
CHANGED
@@ -37,7 +37,7 @@
|
|
37 |
</div>
|
38 |
|
39 |
<div class="col-12">
|
40 |
-
<div class="row mt-3">
|
41 |
{% if mal.flags.has_malware %}
|
42 |
<div class="col">
|
43 |
<table id="table_id-malware"
|
37 |
</div>
|
38 |
|
39 |
<div class="col-12">
|
40 |
+
<div class="row mt-3 shield-section-datatable">
|
41 |
{% if mal.flags.has_malware %}
|
42 |
<div class="col">
|
43 |
<table id="table_id-malware"
|
templates/twig/wpadmin_pages/insights/scans/results/section/plugins/plugin_panel.twig
CHANGED
@@ -89,7 +89,7 @@
|
|
89 |
</div>
|
90 |
|
91 |
<div class="col-12">
|
92 |
-
<div class="row mt-3">
|
93 |
<div class="col">
|
94 |
<table id="table_id-{{ plugin.info.slug }}"
|
95 |
class="table table-striped table-bordered" style="width: 100%;"></table>
|
89 |
</div>
|
90 |
|
91 |
<div class="col-12">
|
92 |
+
<div class="row mt-3 shield-section-datatable">
|
93 |
<div class="col">
|
94 |
<table id="table_id-{{ plugin.info.slug }}"
|
95 |
class="table table-striped table-bordered" style="width: 100%;"></table>
|
templates/twig/wpadmin_pages/insights/scans/results/section/themes/theme_panel.twig
CHANGED
@@ -80,7 +80,7 @@
|
|
80 |
</div>
|
81 |
|
82 |
<div class="col-12">
|
83 |
-
<div class="row mt-3">
|
84 |
{% if theme.flags.has_guard_files %}
|
85 |
<div class="col">
|
86 |
<table id="table_id-{{ theme.info.slug }}"
|
80 |
</div>
|
81 |
|
82 |
<div class="col-12">
|
83 |
+
<div class="row mt-3 shield-section-datatable">
|
84 |
{% if theme.flags.has_guard_files %}
|
85 |
<div class="col">
|
86 |
<table id="table_id-{{ theme.info.slug }}"
|
templates/twig/wpadmin_pages/insights/scans/results/section/wordpress/index.twig
CHANGED
@@ -39,7 +39,7 @@
|
|
39 |
</div>
|
40 |
|
41 |
<div class="col-12">
|
42 |
-
<div class="row mt-3">
|
43 |
{% if wp.flags.has_core_files %}
|
44 |
<div class="col">
|
45 |
<table id="table_id-wordpress"
|
39 |
</div>
|
40 |
|
41 |
<div class="col-12">
|
42 |
+
<div class="row mt-3 shield-section-datatable">
|
43 |
{% if wp.flags.has_core_files %}
|
44 |
<div class="col">
|
45 |
<table id="table_id-wordpress"
|