Version Description
- Current Release = Released: 15th October, 2018 - Release Notes
Download this release
Release Info
Developer | paultgoodchild |
Plugin | Shield Security for WordPress |
Version | 6.10.1 |
Comparing to | |
See all releases |
Code changes from version 6.10.0 to 6.10.1
- icwp-wpsf.php +1 -1
- plugin-spec.php +2 -2
- readme.txt +3 -2
- src/common/icwp-serviceproviders.php +22 -14
icwp-wpsf.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: Shield Security
|
4 |
* Plugin URI: https://icwp.io/2f
|
5 |
* Description: Powerful, Easy-To-Use #1 Rated WordPress Security System
|
6 |
-
* Version: 6.10.
|
7 |
* Text Domain: wp-simple-firewall
|
8 |
* Domain Path: /languages/
|
9 |
* Author: One Dollar Plugin
|
3 |
* Plugin Name: Shield Security
|
4 |
* Plugin URI: https://icwp.io/2f
|
5 |
* Description: Powerful, Easy-To-Use #1 Rated WordPress Security System
|
6 |
+
* Version: 6.10.1
|
7 |
* Text Domain: wp-simple-firewall
|
8 |
* Domain Path: /languages/
|
9 |
* Author: One Dollar Plugin
|
plugin-spec.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
{
|
2 |
"properties": {
|
3 |
-
"version": "6.10.
|
4 |
-
"release_timestamp":
|
5 |
"slug_parent": "icwp",
|
6 |
"slug_plugin": "wpsf",
|
7 |
"human_name": "Shield",
|
1 |
{
|
2 |
"properties": {
|
3 |
+
"version": "6.10.1",
|
4 |
+
"release_timestamp": 1539689800,
|
5 |
"slug_parent": "icwp",
|
6 |
"slug_plugin": "wpsf",
|
7 |
"human_name": "Shield",
|
readme.txt
CHANGED
@@ -8,7 +8,7 @@ Requires at least: 3.5.0
|
|
8 |
Requires PHP: 5.2.4
|
9 |
Recommended PHP: 5.4
|
10 |
Tested up to: 4.9
|
11 |
-
Stable tag: 6.10.
|
12 |
|
13 |
Complete All-In-One Protection for your WordPress sites, that makes Security Easy for Everyone - it doesn't have to be hard anymore.
|
14 |
|
@@ -354,12 +354,13 @@ You will always be able to use Shield Security and its free features in-full.
|
|
354 |
|
355 |
[Go Pro for just $1/month](https://icwp.io/aa).
|
356 |
|
357 |
-
= 6.10.
|
358 |
*Released: 15th October, 2018* - [Release Notes](https://icwp.io/dg)
|
359 |
|
360 |
= 6.10 - Series =
|
361 |
*Released: 15th October, 2018* - [Release Notes](https://icwp.io/dg)
|
362 |
|
|
|
363 |
* **(v.0)** NEW: [**PRO**] 2FA Login Backup Codes - all users can create a backup login code in-case their MFA factors are temporarily unavailable.
|
364 |
* **(v.0)** NEW: [**PRO**] White Label - you can now specify custom image for 2FA login screen.
|
365 |
* **(v.0)** ADDED: [**PRO**] Custom Exclusion Rules for Traffic Watcher so you can exclude certain User Agents and request paths.
|
8 |
Requires PHP: 5.2.4
|
9 |
Recommended PHP: 5.4
|
10 |
Tested up to: 4.9
|
11 |
+
Stable tag: 6.10.1
|
12 |
|
13 |
Complete All-In-One Protection for your WordPress sites, that makes Security Easy for Everyone - it doesn't have to be hard anymore.
|
14 |
|
354 |
|
355 |
[Go Pro for just $1/month](https://icwp.io/aa).
|
356 |
|
357 |
+
= 6.10.1 - Current Release =
|
358 |
*Released: 15th October, 2018* - [Release Notes](https://icwp.io/dg)
|
359 |
|
360 |
= 6.10 - Series =
|
361 |
*Released: 15th October, 2018* - [Release Notes](https://icwp.io/dg)
|
362 |
|
363 |
+
* **(v.1)** FIXED: Googlebot PHP error notice.
|
364 |
* **(v.0)** NEW: [**PRO**] 2FA Login Backup Codes - all users can create a backup login code in-case their MFA factors are temporarily unavailable.
|
365 |
* **(v.0)** NEW: [**PRO**] White Label - you can now specify custom image for 2FA login screen.
|
366 |
* **(v.0)** ADDED: [**PRO**] Custom Exclusion Rules for Traffic Watcher so you can exclude certain User Agents and request paths.
|
src/common/icwp-serviceproviders.php
CHANGED
@@ -33,13 +33,15 @@ class ICWP_WPSF_ServiceProviders extends ICWP_WPSF_Foundation {
|
|
33 |
*/
|
34 |
public function getIps_CloudFlare() {
|
35 |
$oWp = $this->loadWp();
|
36 |
-
|
|
|
|
|
37 |
if ( empty( $aIps ) ) {
|
38 |
$aIps = array(
|
39 |
4 => $this->downloadServiceIps_Cloudflare( 4 ),
|
40 |
6 => $this->downloadServiceIps_Cloudflare( 6 )
|
41 |
);
|
42 |
-
$oWp->setTransient( $
|
43 |
}
|
44 |
return $aIps;
|
45 |
}
|
@@ -72,13 +74,15 @@ class ICWP_WPSF_ServiceProviders extends ICWP_WPSF_Foundation {
|
|
72 |
*/
|
73 |
public function getIps_Pingdom() {
|
74 |
$oWp = $this->loadWp();
|
75 |
-
|
|
|
|
|
76 |
if ( empty( $aIps ) ) {
|
77 |
$aIps = array(
|
78 |
4 => $this->downloadServiceIps_Pingdom( 4 ),
|
79 |
6 => $this->downloadServiceIps_Pingdom( 6 )
|
80 |
);
|
81 |
-
$oWp->setTransient( $
|
82 |
}
|
83 |
return $aIps;
|
84 |
}
|
@@ -88,10 +92,12 @@ class ICWP_WPSF_ServiceProviders extends ICWP_WPSF_Foundation {
|
|
88 |
*/
|
89 |
public function getIps_Statuscake() {
|
90 |
$oWp = $this->loadWp();
|
91 |
-
|
|
|
|
|
92 |
if ( empty( $aIps ) || !is_array( $aIps ) ) {
|
93 |
$aIps = $this->downloadServiceIps_StatusCake();
|
94 |
-
$oWp->setTransient( $
|
95 |
}
|
96 |
return $aIps;
|
97 |
}
|
@@ -101,13 +107,15 @@ class ICWP_WPSF_ServiceProviders extends ICWP_WPSF_Foundation {
|
|
101 |
*/
|
102 |
public function getIps_UptimeRobot() {
|
103 |
$oWp = $this->loadWp();
|
104 |
-
|
|
|
|
|
105 |
if ( empty( $aIps ) ) {
|
106 |
$aIps = array(
|
107 |
4 => $this->downloadServiceIps_UptimeRobot( 4 ),
|
108 |
6 => $this->downloadServiceIps_UptimeRobot( 6 )
|
109 |
);
|
110 |
-
$oWp->setTransient( $
|
111 |
}
|
112 |
return $aIps;
|
113 |
}
|
@@ -128,7 +136,7 @@ class ICWP_WPSF_ServiceProviders extends ICWP_WPSF_Foundation {
|
|
128 |
|
129 |
if ( !in_array( $sIp, $aIps ) && $this->verifyIp_AppleBot( $sIp, $sUserAgent ) ) {
|
130 |
$aIps[] = $sIp;
|
131 |
-
$
|
132 |
}
|
133 |
|
134 |
return in_array( $sIp, $aIps );
|
@@ -150,7 +158,7 @@ class ICWP_WPSF_ServiceProviders extends ICWP_WPSF_Foundation {
|
|
150 |
|
151 |
if ( !in_array( $sIp, $aIps ) && $this->verifyIp_BaiduBot( $sIp, $sUserAgent ) ) {
|
152 |
$aIps[] = $sIp;
|
153 |
-
$
|
154 |
}
|
155 |
|
156 |
return in_array( $sIp, $aIps );
|
@@ -172,7 +180,7 @@ class ICWP_WPSF_ServiceProviders extends ICWP_WPSF_Foundation {
|
|
172 |
|
173 |
if ( !in_array( $sIp, $aIps ) && $this->verifyIp_BingBot( $sIp, $sUserAgent ) ) {
|
174 |
$aIps[] = $sIp;
|
175 |
-
$
|
176 |
}
|
177 |
|
178 |
return in_array( $sIp, $aIps );
|
@@ -230,7 +238,7 @@ class ICWP_WPSF_ServiceProviders extends ICWP_WPSF_Foundation {
|
|
230 |
|
231 |
if ( !in_array( $sIp, $aIps ) && $this->verifyIp_GoogleBot( $sIp, $sUserAgent ) ) {
|
232 |
$aIps[] = $sIp;
|
233 |
-
$
|
234 |
}
|
235 |
|
236 |
return in_array( $sIp, $aIps );
|
@@ -295,7 +303,7 @@ class ICWP_WPSF_ServiceProviders extends ICWP_WPSF_Foundation {
|
|
295 |
|
296 |
if ( !in_array( $sIp, $aIps ) && $this->verifyIp_YandexBot( $sIp, $sUserAgent ) ) {
|
297 |
$aIps[] = $sIp;
|
298 |
-
$
|
299 |
}
|
300 |
|
301 |
return in_array( $sIp, $aIps );
|
@@ -318,7 +326,7 @@ class ICWP_WPSF_ServiceProviders extends ICWP_WPSF_Foundation {
|
|
318 |
|
319 |
if ( !in_array( $sIp, $aIps ) && $this->verifyIp_YahooBot( $sIp, $sUserAgent ) ) {
|
320 |
$aIps[] = $sIp;
|
321 |
-
$
|
322 |
}
|
323 |
|
324 |
return in_array( $sIp, $aIps );
|
33 |
*/
|
34 |
public function getIps_CloudFlare() {
|
35 |
$oWp = $this->loadWp();
|
36 |
+
|
37 |
+
$sStoreKey = $this->prefix( 'serviceips_cloudflare' );
|
38 |
+
$aIps = $oWp->getTransient( $sStoreKey );
|
39 |
if ( empty( $aIps ) ) {
|
40 |
$aIps = array(
|
41 |
4 => $this->downloadServiceIps_Cloudflare( 4 ),
|
42 |
6 => $this->downloadServiceIps_Cloudflare( 6 )
|
43 |
);
|
44 |
+
$oWp->setTransient( $sStoreKey, $aIps, WEEK_IN_SECONDS*4 );
|
45 |
}
|
46 |
return $aIps;
|
47 |
}
|
74 |
*/
|
75 |
public function getIps_Pingdom() {
|
76 |
$oWp = $this->loadWp();
|
77 |
+
|
78 |
+
$sStoreKey = $this->prefix( 'serviceips_pingdom' );
|
79 |
+
$aIps = $oWp->getTransient( $sStoreKey );
|
80 |
if ( empty( $aIps ) ) {
|
81 |
$aIps = array(
|
82 |
4 => $this->downloadServiceIps_Pingdom( 4 ),
|
83 |
6 => $this->downloadServiceIps_Pingdom( 6 )
|
84 |
);
|
85 |
+
$oWp->setTransient( $sStoreKey, $aIps, WEEK_IN_SECONDS*4 );
|
86 |
}
|
87 |
return $aIps;
|
88 |
}
|
92 |
*/
|
93 |
public function getIps_Statuscake() {
|
94 |
$oWp = $this->loadWp();
|
95 |
+
|
96 |
+
$sStoreKey = $this->prefix( 'serviceips_statuscake' );
|
97 |
+
$aIps = $oWp->getTransient( $sStoreKey );
|
98 |
if ( empty( $aIps ) || !is_array( $aIps ) ) {
|
99 |
$aIps = $this->downloadServiceIps_StatusCake();
|
100 |
+
$oWp->setTransient( $sStoreKey, $aIps, WEEK_IN_SECONDS*4 );
|
101 |
}
|
102 |
return $aIps;
|
103 |
}
|
107 |
*/
|
108 |
public function getIps_UptimeRobot() {
|
109 |
$oWp = $this->loadWp();
|
110 |
+
|
111 |
+
$sStoreKey = $this->prefix( 'serviceips_uptimerobot' );
|
112 |
+
$aIps = $oWp->getTransient( $sStoreKey );
|
113 |
if ( empty( $aIps ) ) {
|
114 |
$aIps = array(
|
115 |
4 => $this->downloadServiceIps_UptimeRobot( 4 ),
|
116 |
6 => $this->downloadServiceIps_UptimeRobot( 6 )
|
117 |
);
|
118 |
+
$oWp->setTransient( $sStoreKey, $aIps, WEEK_IN_SECONDS*4 );
|
119 |
}
|
120 |
return $aIps;
|
121 |
}
|
136 |
|
137 |
if ( !in_array( $sIp, $aIps ) && $this->verifyIp_AppleBot( $sIp, $sUserAgent ) ) {
|
138 |
$aIps[] = $sIp;
|
139 |
+
$oWp->setTransient( $sStoreKey, $aIps, WEEK_IN_SECONDS*4 );
|
140 |
}
|
141 |
|
142 |
return in_array( $sIp, $aIps );
|
158 |
|
159 |
if ( !in_array( $sIp, $aIps ) && $this->verifyIp_BaiduBot( $sIp, $sUserAgent ) ) {
|
160 |
$aIps[] = $sIp;
|
161 |
+
$oWp->setTransient( $sStoreKey, $aIps, WEEK_IN_SECONDS*4 );
|
162 |
}
|
163 |
|
164 |
return in_array( $sIp, $aIps );
|
180 |
|
181 |
if ( !in_array( $sIp, $aIps ) && $this->verifyIp_BingBot( $sIp, $sUserAgent ) ) {
|
182 |
$aIps[] = $sIp;
|
183 |
+
$oWp->setTransient( $sStoreKey, $aIps, WEEK_IN_SECONDS*4 );
|
184 |
}
|
185 |
|
186 |
return in_array( $sIp, $aIps );
|
238 |
|
239 |
if ( !in_array( $sIp, $aIps ) && $this->verifyIp_GoogleBot( $sIp, $sUserAgent ) ) {
|
240 |
$aIps[] = $sIp;
|
241 |
+
$oWp->setTransient( $sStoreKey, $aIps, WEEK_IN_SECONDS*4 );
|
242 |
}
|
243 |
|
244 |
return in_array( $sIp, $aIps );
|
303 |
|
304 |
if ( !in_array( $sIp, $aIps ) && $this->verifyIp_YandexBot( $sIp, $sUserAgent ) ) {
|
305 |
$aIps[] = $sIp;
|
306 |
+
$oWp->setTransient( $sStoreKey, $aIps, WEEK_IN_SECONDS*4 );
|
307 |
}
|
308 |
|
309 |
return in_array( $sIp, $aIps );
|
326 |
|
327 |
if ( !in_array( $sIp, $aIps ) && $this->verifyIp_YahooBot( $sIp, $sUserAgent ) ) {
|
328 |
$aIps[] = $sIp;
|
329 |
+
$oWp->setTransient( $sStoreKey, $aIps, WEEK_IN_SECONDS*4 );
|
330 |
}
|
331 |
|
332 |
return in_array( $sIp, $aIps );
|