BulletProof Security - Version 3.1

Version Description

Download this release

Release Info

Developer AITpro
Plugin Icon 128x128 BulletProof Security
Version 3.1
Comparing to
See all releases

Code changes from version 3.0 to 3.1

400.php CHANGED
@@ -76,7 +76,7 @@ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
76
 
77
  if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
78
 
79
- @$log_contents = "\r\n" . '[400 POST Bad Request: ' . $timestamp . ']' . "\r\n" . 'BPS: ' . $bps_version . "\r\n" . 'WP: ' . $wp_version . "\r\n" . 'Event Code: ' . $event . "\r\n" . 'Solution: ' . $solution . "\r\n" . 'REMOTE_ADDR: '.$_SERVER['REMOTE_ADDR']."\r\n" . 'Host Name: ' . $hostname . "\r\n" . 'SERVER_PROTOCOL: '.$_SERVER['SERVER_PROTOCOL']."\r\n" . 'HTTP_CLIENT_IP: '.$_SERVER['HTTP_CLIENT_IP']."\r\n" . 'HTTP_FORWARDED: '.$_SERVER['HTTP_FORWARDED']."\r\n" . 'HTTP_X_FORWARDED_FOR: '.$_SERVER['HTTP_X_FORWARDED_FOR']."\r\n" . 'HTTP_X_CLUSTER_CLIENT_IP: '.$_SERVER['HTTP_X_CLUSTER_CLIENT_IP']."\r\n" . 'REQUEST_METHOD: '.$_SERVER['REQUEST_METHOD']."\r\n" . 'HTTP_REFERER: '.$_SERVER['HTTP_REFERER']."\r\n" . 'REQUEST_URI: '.$_SERVER['REQUEST_URI']."\r\n" . 'QUERY_STRING: '.$query_string."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
80
 
81
  if ( is_writable( $bpsProLog ) ) {
82
 
@@ -94,7 +94,7 @@ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
94
 
95
  if ( $_SERVER['REQUEST_METHOD'] != 'POST' ) {
96
 
97
- @$log_contents = "\r\n" . '[400 GET Bad Request: ' . $timestamp . ']' . "\r\n" . 'BPS: ' . $bps_version . "\r\n" . 'WP: ' . $wp_version . "\r\n" . 'Event Code: ' . $event . "\r\n" . 'Solution: ' . $solution . "\r\n" . 'REMOTE_ADDR: '.$_SERVER['REMOTE_ADDR']."\r\n" . 'Host Name: ' . $hostname . "\r\n" . 'SERVER_PROTOCOL: '.$_SERVER['SERVER_PROTOCOL']."\r\n" . 'HTTP_CLIENT_IP: '.$_SERVER['HTTP_CLIENT_IP']."\r\n" . 'HTTP_FORWARDED: '.$_SERVER['HTTP_FORWARDED']."\r\n" . 'HTTP_X_FORWARDED_FOR: '.$_SERVER['HTTP_X_FORWARDED_FOR']."\r\n" . 'HTTP_X_CLUSTER_CLIENT_IP: '.$_SERVER['HTTP_X_CLUSTER_CLIENT_IP']."\r\n" . 'REQUEST_METHOD: '.$_SERVER['REQUEST_METHOD']."\r\n" . 'HTTP_REFERER: '.$_SERVER['HTTP_REFERER']."\r\n" . 'REQUEST_URI: '.$_SERVER['REQUEST_URI']."\r\n" . 'QUERY_STRING: '.$query_string."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
98
 
99
  if ( is_writable( $bpsProLog ) ) {
100
 
76
 
77
  if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
78
 
79
+ @$log_contents = "\r\n" . '[400 POST Bad Request: ' . $timestamp . ']' . "\r\n" . 'BPS: ' . $bps_version . "\r\n" . 'WP: ' . $wp_version . "\r\n" . 'Event Code: ' . $event . "\r\n" . 'Solution: ' . $solution . "\r\n" . 'REMOTE_ADDR: '.$bpsPro_remote_addr . "\r\n" . 'Host Name: ' . $hostname . "\r\n" . 'SERVER_PROTOCOL: ' . $_SERVER['SERVER_PROTOCOL'] . "\r\n" . 'HTTP_CLIENT_IP: ' . $bpsPro_http_client_ip . "\r\n" . 'HTTP_FORWARDED: ' . $bpsPro_http_forwarded . "\r\n" . 'HTTP_X_FORWARDED_FOR: ' . $bpsPro_http_x_forwarded_for . "\r\n" . 'HTTP_X_CLUSTER_CLIENT_IP: ' . $bpsPro_http_x_cluster_client_ip."\r\n" . 'REQUEST_METHOD: '.$_SERVER['REQUEST_METHOD']."\r\n" . 'HTTP_REFERER: '.$_SERVER['HTTP_REFERER']."\r\n" . 'REQUEST_URI: '.$_SERVER['REQUEST_URI']."\r\n" . 'QUERY_STRING: '.$query_string."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
80
 
81
  if ( is_writable( $bpsProLog ) ) {
82
 
94
 
95
  if ( $_SERVER['REQUEST_METHOD'] != 'POST' ) {
96
 
97
+ @$log_contents = "\r\n" . '[400 GET Bad Request: ' . $timestamp . ']' . "\r\n" . 'BPS: ' . $bps_version . "\r\n" . 'WP: ' . $wp_version . "\r\n" . 'Event Code: ' . $event . "\r\n" . 'Solution: ' . $solution . "\r\n" . 'REMOTE_ADDR: '.$bpsPro_remote_addr . "\r\n" . 'Host Name: ' . $hostname . "\r\n" . 'SERVER_PROTOCOL: ' . $_SERVER['SERVER_PROTOCOL'] . "\r\n" . 'HTTP_CLIENT_IP: ' . $bpsPro_http_client_ip . "\r\n" . 'HTTP_FORWARDED: ' . $bpsPro_http_forwarded . "\r\n" . 'HTTP_X_FORWARDED_FOR: ' . $bpsPro_http_x_forwarded_for . "\r\n" . 'HTTP_X_CLUSTER_CLIENT_IP: ' . $bpsPro_http_x_cluster_client_ip."\r\n" . 'REQUEST_METHOD: '.$_SERVER['REQUEST_METHOD']."\r\n" . 'HTTP_REFERER: '.$_SERVER['HTTP_REFERER']."\r\n" . 'REQUEST_URI: '.$_SERVER['REQUEST_URI']."\r\n" . 'QUERY_STRING: '.$query_string."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
98
 
99
  if ( is_writable( $bpsProLog ) ) {
100
 
403.php CHANGED
@@ -108,7 +108,7 @@ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
108
  $solution = 'N/A - Hacker/Spammer Blocked/Forbidden';
109
  }
110
 
111
- @$log_contents = "\r\n" . '[403 POST Request: ' . $timestamp . ']' . "\r\n" . 'BPS: ' . $bps_version . "\r\n" . 'WP: ' . $wp_version . "\r\n" . 'Event Code: ' . $event . "\r\n" . 'Solution: ' . $solution . "\r\n" . 'REMOTE_ADDR: '.$_SERVER['REMOTE_ADDR']."\r\n" . 'Host Name: ' . $hostname . "\r\n" . 'SERVER_PROTOCOL: '.$_SERVER['SERVER_PROTOCOL']."\r\n" . 'HTTP_CLIENT_IP: '.$_SERVER['HTTP_CLIENT_IP']."\r\n" . 'HTTP_FORWARDED: '.$_SERVER['HTTP_FORWARDED']."\r\n" . 'HTTP_X_FORWARDED_FOR: '.$_SERVER['HTTP_X_FORWARDED_FOR']."\r\n" . 'HTTP_X_CLUSTER_CLIENT_IP: '.$_SERVER['HTTP_X_CLUSTER_CLIENT_IP']."\r\n" . 'REQUEST_METHOD: '.$_SERVER['REQUEST_METHOD']."\r\n" . 'HTTP_REFERER: '.$_SERVER['HTTP_REFERER']."\r\n" . 'REQUEST_URI: '.$_SERVER['REQUEST_URI']."\r\n" . 'QUERY_STRING: '.$query_string."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT'] . "\r\n" . 'REQUEST BODY: ' . $request_body . "\r\n";
112
 
113
  if ( is_writable( $bpsProLog ) ) {
114
 
@@ -142,7 +142,7 @@ if ( @!preg_match('/BPSUserAgentPlaceHolder/', $_SERVER['HTTP_USER_AGENT']) ) {
142
  $solution = 'N/A - Hacker/Spammer Blocked/Forbidden';
143
  }
144
 
145
- @$log_contents = "\r\n" . '[403 GET Request: ' . $timestamp . ']' . "\r\n" . 'BPS: ' . $bps_version . "\r\n" . 'WP: ' . $wp_version . "\r\n" . 'Event Code: ' . $event . "\r\n" . 'Solution: ' . $solution . "\r\n" . 'REMOTE_ADDR: '.$_SERVER['REMOTE_ADDR']."\r\n" . 'Host Name: ' . $hostname . "\r\n" . 'SERVER_PROTOCOL: '.$_SERVER['SERVER_PROTOCOL']."\r\n" . 'HTTP_CLIENT_IP: '.$_SERVER['HTTP_CLIENT_IP']."\r\n" . 'HTTP_FORWARDED: '.$_SERVER['HTTP_FORWARDED']."\r\n" . 'HTTP_X_FORWARDED_FOR: '.$_SERVER['HTTP_X_FORWARDED_FOR']."\r\n" . 'HTTP_X_CLUSTER_CLIENT_IP: '.$_SERVER['HTTP_X_CLUSTER_CLIENT_IP']."\r\n" . 'REQUEST_METHOD: '.$_SERVER['REQUEST_METHOD']."\r\n" . 'HTTP_REFERER: '.$_SERVER['HTTP_REFERER']."\r\n" . 'REQUEST_URI: '.$_SERVER['REQUEST_URI']."\r\n" . 'QUERY_STRING: '.$query_string."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
146
 
147
  if ( is_writable( $bpsProLog ) ) {
148
 
108
  $solution = 'N/A - Hacker/Spammer Blocked/Forbidden';
109
  }
110
 
111
+ @$log_contents = "\r\n" . '[403 POST Request: ' . $timestamp . ']' . "\r\n" . 'BPS: ' . $bps_version . "\r\n" . 'WP: ' . $wp_version . "\r\n" . 'Event Code: ' . $event . "\r\n" . 'Solution: ' . $solution . "\r\n" . 'REMOTE_ADDR: '.$bpsPro_remote_addr . "\r\n" . 'Host Name: ' . $hostname . "\r\n" . 'SERVER_PROTOCOL: ' . $_SERVER['SERVER_PROTOCOL'] . "\r\n" . 'HTTP_CLIENT_IP: ' . $bpsPro_http_client_ip . "\r\n" . 'HTTP_FORWARDED: ' . $bpsPro_http_forwarded . "\r\n" . 'HTTP_X_FORWARDED_FOR: ' . $bpsPro_http_x_forwarded_for . "\r\n" . 'HTTP_X_CLUSTER_CLIENT_IP: ' . $bpsPro_http_x_cluster_client_ip."\r\n" . 'REQUEST_METHOD: '.$_SERVER['REQUEST_METHOD']."\r\n" . 'HTTP_REFERER: '.$_SERVER['HTTP_REFERER']."\r\n" . 'REQUEST_URI: '.$_SERVER['REQUEST_URI']."\r\n" . 'QUERY_STRING: '.$query_string."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT'] . "\r\n" . 'REQUEST BODY: ' . $request_body . "\r\n";
112
 
113
  if ( is_writable( $bpsProLog ) ) {
114
 
142
  $solution = 'N/A - Hacker/Spammer Blocked/Forbidden';
143
  }
144
 
145
+ @$log_contents = "\r\n" . '[403 GET Request: ' . $timestamp . ']' . "\r\n" . 'BPS: ' . $bps_version . "\r\n" . 'WP: ' . $wp_version . "\r\n" . 'Event Code: ' . $event . "\r\n" . 'Solution: ' . $solution . "\r\n" . 'REMOTE_ADDR: '.$bpsPro_remote_addr . "\r\n" . 'Host Name: ' . $hostname . "\r\n" . 'SERVER_PROTOCOL: ' . $_SERVER['SERVER_PROTOCOL'] . "\r\n" . 'HTTP_CLIENT_IP: ' . $bpsPro_http_client_ip . "\r\n" . 'HTTP_FORWARDED: ' . $bpsPro_http_forwarded . "\r\n" . 'HTTP_X_FORWARDED_FOR: ' . $bpsPro_http_x_forwarded_for . "\r\n" . 'HTTP_X_CLUSTER_CLIENT_IP: ' . $bpsPro_http_x_cluster_client_ip."\r\n" . 'REQUEST_METHOD: '.$_SERVER['REQUEST_METHOD']."\r\n" . 'HTTP_REFERER: '.$_SERVER['HTTP_REFERER']."\r\n" . 'REQUEST_URI: '.$_SERVER['REQUEST_URI']."\r\n" . 'QUERY_STRING: '.$query_string."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
146
 
147
  if ( is_writable( $bpsProLog ) ) {
148
 
404.php CHANGED
@@ -9,6 +9,26 @@ $hostname = @gethostbyaddr($_SERVER['REMOTE_ADDR']);
9
  $timeNow = time();
10
  $gmt_offset = get_option( 'gmt_offset' ) * 3600;
11
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  $post_limit = get_option('bulletproof_security_options_sec_log_post_limit');
13
  $query_string = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY);
14
 
@@ -44,7 +64,7 @@ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
44
  $request_body = 'BPS Security Log option set to: Do Not Log POST Request Body Data';
45
  }
46
 
47
- $log_contents = "\r\n" . '[404 POST Not Found Request: ' . $timestamp . ']' . "\r\n" . 'BPS: ' . $bps_version . "\r\n" . 'WP: ' . $wp_version . "\r\n" . 'Event Code: ' . $event . "\r\n" . 'Solution: ' . $solution . "\r\n" . 'REMOTE_ADDR: '.$_SERVER['REMOTE_ADDR']."\r\n" . 'Host Name: ' . $hostname . "\r\n" . 'SERVER_PROTOCOL: '.$_SERVER['SERVER_PROTOCOL']."\r\n" . 'HTTP_CLIENT_IP: '.$_SERVER['HTTP_CLIENT_IP']."\r\n" . 'HTTP_FORWARDED: '.$_SERVER['HTTP_FORWARDED']."\r\n" . 'HTTP_X_FORWARDED_FOR: '.$_SERVER['HTTP_X_FORWARDED_FOR']."\r\n" . 'HTTP_X_CLUSTER_CLIENT_IP: '.$_SERVER['HTTP_X_CLUSTER_CLIENT_IP']."\r\n" . 'REQUEST_METHOD: '.$_SERVER['REQUEST_METHOD']."\r\n" . 'HTTP_REFERER: '.$_SERVER['HTTP_REFERER']."\r\n" . 'REQUEST_URI: '.$_SERVER['REQUEST_URI']."\r\n" . 'QUERY_STRING: '.$query_string."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT'] . "\r\n" . 'REQUEST BODY: ' . $request_body . "\r\n";
48
 
49
  if ( is_writable( $bpsProLog ) ) {
50
 
@@ -62,7 +82,7 @@ $log_contents = "\r\n" . '[404 POST Not Found Request: ' . $timestamp . ']' . "\
62
 
63
  if ( empty($request_body) ) {
64
 
65
- $log_contents = "\r\n" . '[404 GET Not Found Request: ' . $timestamp . ']' . "\r\n" . 'BPS: ' . $bps_version . "\r\n" . 'WP: ' . $wp_version . "\r\n" . 'Event Code: ' . $event . "\r\n" . 'Solution: ' . $solution . "\r\n" . 'REMOTE_ADDR: '.$_SERVER['REMOTE_ADDR']."\r\n" . 'Host Name: ' . $hostname . "\r\n" . 'SERVER_PROTOCOL: '.$_SERVER['SERVER_PROTOCOL']."\r\n" . 'HTTP_CLIENT_IP: '.$_SERVER['HTTP_CLIENT_IP']."\r\n" . 'HTTP_FORWARDED: '.$_SERVER['HTTP_FORWARDED']."\r\n" . 'HTTP_X_FORWARDED_FOR: '.$_SERVER['HTTP_X_FORWARDED_FOR']."\r\n" . 'HTTP_X_CLUSTER_CLIENT_IP: '.$_SERVER['HTTP_X_CLUSTER_CLIENT_IP']."\r\n" . 'REQUEST_METHOD: '.$_SERVER['REQUEST_METHOD']."\r\n" . 'HTTP_REFERER: '.$_SERVER['HTTP_REFERER']."\r\n" . 'REQUEST_URI: '.$_SERVER['REQUEST_URI']."\r\n" . 'QUERY_STRING: '.$query_string."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
66
 
67
  if ( is_writable( $bpsProLog ) ) {
68
 
9
  $timeNow = time();
10
  $gmt_offset = get_option( 'gmt_offset' ) * 3600;
11
 
12
+ // Setup Wizard Options: GDPR Compliance Global Variables
13
+ $GDPR_Options = get_option('bulletproof_security_options_gdpr');
14
+
15
+ if ( $GDPR_Options['bps_gdpr_on_off'] != 'On' ) {
16
+
17
+ $bpsPro_remote_addr = $_SERVER['REMOTE_ADDR'];
18
+ $bpsPro_http_client_ip = $_SERVER['HTTP_CLIENT_IP'];
19
+ $bpsPro_http_forwarded = $_SERVER['HTTP_FORWARDED'];
20
+ $bpsPro_http_x_forwarded_for = $_SERVER['HTTP_X_FORWARDED_FOR'];
21
+ $bpsPro_http_x_cluster_client_ip = $_SERVER['HTTP_X_CLUSTER_CLIENT_IP'];
22
+
23
+ } else {
24
+
25
+ $bpsPro_remote_addr = 'GDPR Compliance On';
26
+ $bpsPro_http_client_ip = 'GDPR Compliance On';
27
+ $bpsPro_http_forwarded = 'GDPR Compliance On';
28
+ $bpsPro_http_x_forwarded_for = 'GDPR Compliance On';
29
+ $bpsPro_http_x_cluster_client_ip = 'GDPR Compliance On';
30
+ }
31
+
32
  $post_limit = get_option('bulletproof_security_options_sec_log_post_limit');
33
  $query_string = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY);
34
 
64
  $request_body = 'BPS Security Log option set to: Do Not Log POST Request Body Data';
65
  }
66
 
67
+ $log_contents = "\r\n" . '[404 POST Not Found Request: ' . $timestamp . ']' . "\r\n" . 'BPS: ' . $bps_version . "\r\n" . 'WP: ' . $wp_version . "\r\n" . 'Event Code: ' . $event . "\r\n" . 'Solution: ' . $solution . "\r\n" . 'REMOTE_ADDR: '.$bpsPro_remote_addr . "\r\n" . 'Host Name: ' . $hostname . "\r\n" . 'SERVER_PROTOCOL: ' . $_SERVER['SERVER_PROTOCOL'] . "\r\n" . 'HTTP_CLIENT_IP: ' . $bpsPro_http_client_ip . "\r\n" . 'HTTP_FORWARDED: ' . $bpsPro_http_forwarded . "\r\n" . 'HTTP_X_FORWARDED_FOR: ' . $bpsPro_http_x_forwarded_for . "\r\n" . 'HTTP_X_CLUSTER_CLIENT_IP: ' . $bpsPro_http_x_cluster_client_ip."\r\n" . 'REQUEST_METHOD: '.$_SERVER['REQUEST_METHOD']."\r\n" . 'HTTP_REFERER: '.$_SERVER['HTTP_REFERER']."\r\n" . 'REQUEST_URI: '.$_SERVER['REQUEST_URI']."\r\n" . 'QUERY_STRING: '.$query_string."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT'] . "\r\n" . 'REQUEST BODY: ' . $request_body . "\r\n";
68
 
69
  if ( is_writable( $bpsProLog ) ) {
70
 
82
 
83
  if ( empty($request_body) ) {
84
 
85
+ $log_contents = "\r\n" . '[404 GET Not Found Request: ' . $timestamp . ']' . "\r\n" . 'BPS: ' . $bps_version . "\r\n" . 'WP: ' . $wp_version . "\r\n" . 'Event Code: ' . $event . "\r\n" . 'Solution: ' . $solution . "\r\n" . 'REMOTE_ADDR: '.$bpsPro_remote_addr . "\r\n" . 'Host Name: ' . $hostname . "\r\n" . 'SERVER_PROTOCOL: ' . $_SERVER['SERVER_PROTOCOL'] . "\r\n" . 'HTTP_CLIENT_IP: ' . $bpsPro_http_client_ip . "\r\n" . 'HTTP_FORWARDED: ' . $bpsPro_http_forwarded . "\r\n" . 'HTTP_X_FORWARDED_FOR: ' . $bpsPro_http_x_forwarded_for . "\r\n" . 'HTTP_X_CLUSTER_CLIENT_IP: ' . $bpsPro_http_x_cluster_client_ip."\r\n" . 'REQUEST_METHOD: '.$_SERVER['REQUEST_METHOD']."\r\n" . 'HTTP_REFERER: '.$_SERVER['HTTP_REFERER']."\r\n" . 'REQUEST_URI: '.$_SERVER['REQUEST_URI']."\r\n" . 'QUERY_STRING: '.$query_string."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
86
 
87
  if ( is_writable( $bpsProLog ) ) {
88
 
405.php CHANGED
@@ -107,7 +107,7 @@ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
107
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
108
  }
109
 
110
- @$log_contents = "\r\n" . '[405 HEAD Request: ' . $timestamp . ']' . "\r\n" . 'BPS: ' . $bps_version . "\r\n" . 'WP: ' . $wp_version . "\r\n" . 'Event Code: ' . $event . "\r\n" . 'Solution: ' . $solution . "\r\n" . 'REMOTE_ADDR: ' . $_SERVER['REMOTE_ADDR'] . "\r\n" . 'Host Name: ' . $hostname . "\r\n" . 'SERVER_PROTOCOL: ' . $_SERVER['SERVER_PROTOCOL'] . "\r\n" . 'HTTP_CLIENT_IP: ' . $_SERVER['HTTP_CLIENT_IP'] . "\r\n" . 'HTTP_FORWARDED: ' . $_SERVER['HTTP_FORWARDED'] . "\r\n" . 'HTTP_X_FORWARDED_FOR: ' . $_SERVER['HTTP_X_FORWARDED_FOR'] . "\r\n" . 'HTTP_X_CLUSTER_CLIENT_IP: ' . $_SERVER['HTTP_X_CLUSTER_CLIENT_IP'] . "\r\n" . 'REQUEST_METHOD: HEAD' . "\r\n" . 'HTTP_REFERER: ' . $_SERVER['HTTP_REFERER'] . "\r\n" . 'REQUEST_URI: ' . $_SERVER['REQUEST_URI'] . "\r\n" . 'QUERY_STRING: ' . $query_string . "\r\n" . 'HTTP_USER_AGENT: '. $_SERVER['HTTP_USER_AGENT'] . "\r\n" . 'REQUEST BODY: ' . $request_body . "\r\n";
111
 
112
  if ( is_writable( $bpsProLog ) ) {
113
 
@@ -139,7 +139,7 @@ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
139
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
140
  }
141
 
142
- @$log_contents = "\r\n" . '[405 HEAD Request: ' . $timestamp . ']' . "\r\n" . 'BPS: ' . $bps_version . "\r\n" . 'WP: ' . $wp_version . "\r\n" . 'Event Code: ' . $event . "\r\n" . 'Solution: ' . $solution . "\r\n" . 'REMOTE_ADDR: ' . $_SERVER['REMOTE_ADDR'] . "\r\n" . 'Host Name: ' . $hostname . "\r\n" . 'SERVER_PROTOCOL: ' . $_SERVER['SERVER_PROTOCOL'] . "\r\n" . 'HTTP_CLIENT_IP: ' . $_SERVER['HTTP_CLIENT_IP'] . "\r\n" . 'HTTP_FORWARDED: ' . $_SERVER['HTTP_FORWARDED'] . "\r\n" . 'HTTP_X_FORWARDED_FOR: ' . $_SERVER['HTTP_X_FORWARDED_FOR'] . "\r\n" . 'HTTP_X_CLUSTER_CLIENT_IP: ' . $_SERVER['HTTP_X_CLUSTER_CLIENT_IP'] . "\r\n" . 'REQUEST_METHOD: HEAD' . "\r\n" . 'HTTP_REFERER: ' . $_SERVER['HTTP_REFERER'] . "\r\n" . 'REQUEST_URI: ' . $_SERVER['REQUEST_URI'] . "\r\n" . 'QUERY_STRING: ' . $query_string . "\r\n" . 'HTTP_USER_AGENT: ' . $_SERVER['HTTP_USER_AGENT'] . "\r\n";
143
 
144
  if ( is_writable( $bpsProLog ) ) {
145
 
107
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
108
  }
109
 
110
+ @$log_contents = "\r\n" . '[405 HEAD Request: ' . $timestamp . ']' . "\r\n" . 'BPS: ' . $bps_version . "\r\n" . 'WP: ' . $wp_version . "\r\n" . 'Event Code: ' . $event . "\r\n" . 'Solution: ' . $solution . "\r\n" . 'REMOTE_ADDR: ' . $bpsPro_remote_addr . "\r\n" . 'Host Name: ' . $hostname . "\r\n" . 'SERVER_PROTOCOL: ' . $_SERVER['SERVER_PROTOCOL'] . "\r\n" . 'HTTP_CLIENT_IP: ' . $bpsPro_http_client_ip . "\r\n" . 'HTTP_FORWARDED: ' . $bpsPro_http_forwarded . "\r\n" . 'HTTP_X_FORWARDED_FOR: ' . $bpsPro_http_x_forwarded_for . "\r\n" . 'HTTP_X_CLUSTER_CLIENT_IP: ' . $bpsPro_http_x_cluster_client_ip . "\r\n" . 'REQUEST_METHOD: HEAD' . "\r\n" . 'HTTP_REFERER: ' . $_SERVER['HTTP_REFERER'] . "\r\n" . 'REQUEST_URI: ' . $_SERVER['REQUEST_URI'] . "\r\n" . 'QUERY_STRING: ' . $query_string . "\r\n" . 'HTTP_USER_AGENT: '. $_SERVER['HTTP_USER_AGENT'] . "\r\n" . 'REQUEST BODY: ' . $request_body . "\r\n";
111
 
112
  if ( is_writable( $bpsProLog ) ) {
113
 
139
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
140
  }
141
 
142
+ @$log_contents = "\r\n" . '[405 HEAD Request: ' . $timestamp . ']' . "\r\n" . 'BPS: ' . $bps_version . "\r\n" . 'WP: ' . $wp_version . "\r\n" . 'Event Code: ' . $event . "\r\n" . 'Solution: ' . $solution . "\r\n" . 'REMOTE_ADDR: ' . $bpsPro_remote_addr . "\r\n" . 'Host Name: ' . $hostname . "\r\n" . 'SERVER_PROTOCOL: ' . $_SERVER['SERVER_PROTOCOL'] . "\r\n" . 'HTTP_CLIENT_IP: ' . $bpsPro_http_client_ip . "\r\n" . 'HTTP_FORWARDED: ' . $bpsPro_http_forwarded . "\r\n" . 'HTTP_X_FORWARDED_FOR: ' . $bpsPro_http_x_forwarded_for . "\r\n" . 'HTTP_X_CLUSTER_CLIENT_IP: ' . $bpsPro_http_x_cluster_client_ip . "\r\n" . 'REQUEST_METHOD: HEAD' . "\r\n" . 'HTTP_REFERER: ' . $_SERVER['HTTP_REFERER'] . "\r\n" . 'REQUEST_URI: ' . $_SERVER['REQUEST_URI'] . "\r\n" . 'QUERY_STRING: ' . $query_string . "\r\n" . 'HTTP_USER_AGENT: ' . $_SERVER['HTTP_USER_AGENT'] . "\r\n";
143
 
144
  if ( is_writable( $bpsProLog ) ) {
145
 
410.php CHANGED
@@ -78,7 +78,7 @@ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
78
 
79
  if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
80
 
81
- @$log_contents = "\r\n" . '[410 Gone POST Request: ' . $timestamp . ']' . "\r\n" . 'BPS: ' . $bps_version . "\r\n" . 'WP: ' . $wp_version . "\r\n" . 'Event Code: ' . $event . "\r\n" . 'Solution: ' . $solution . "\r\n" . 'REMOTE_ADDR: '.$_SERVER['REMOTE_ADDR']."\r\n" . 'Host Name: ' . $hostname . "\r\n" . 'SERVER_PROTOCOL: '.$_SERVER['SERVER_PROTOCOL']."\r\n" . 'HTTP_CLIENT_IP: '.$_SERVER['HTTP_CLIENT_IP']."\r\n" . 'HTTP_FORWARDED: '.$_SERVER['HTTP_FORWARDED']."\r\n" . 'HTTP_X_FORWARDED_FOR: '.$_SERVER['HTTP_X_FORWARDED_FOR']."\r\n" . 'HTTP_X_CLUSTER_CLIENT_IP: '.$_SERVER['HTTP_X_CLUSTER_CLIENT_IP']."\r\n" . 'REQUEST_METHOD: '.$_SERVER['REQUEST_METHOD']."\r\n" . 'HTTP_REFERER: '.$_SERVER['HTTP_REFERER']."\r\n" . 'REQUEST_URI: '.$_SERVER['REQUEST_URI']."\r\n" . 'QUERY_STRING: '.$query_string."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
82
 
83
  if ( is_writable( $bpsProLog ) ) {
84
 
@@ -96,7 +96,7 @@ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
96
 
97
  if ( $_SERVER['REQUEST_METHOD'] != 'POST' ) {
98
 
99
- @$log_contents = "\r\n" . '[410 Gone GET Request: ' . $timestamp . ']' . "\r\n" . 'BPS: ' . $bps_version . "\r\n" . 'WP: ' . $wp_version . "\r\n" . 'Event Code: ' . $event . "\r\n" . 'Solution: ' . $solution . "\r\n" . 'REMOTE_ADDR: '.$_SERVER['REMOTE_ADDR']."\r\n" . 'Host Name: ' . $hostname . "\r\n" . 'SERVER_PROTOCOL: '.$_SERVER['SERVER_PROTOCOL']."\r\n" . 'HTTP_CLIENT_IP: '.$_SERVER['HTTP_CLIENT_IP']."\r\n" . 'HTTP_FORWARDED: '.$_SERVER['HTTP_FORWARDED']."\r\n" . 'HTTP_X_FORWARDED_FOR: '.$_SERVER['HTTP_X_FORWARDED_FOR']."\r\n" . 'HTTP_X_CLUSTER_CLIENT_IP: '.$_SERVER['HTTP_X_CLUSTER_CLIENT_IP']."\r\n" . 'REQUEST_METHOD: '.$_SERVER['REQUEST_METHOD']."\r\n" . 'HTTP_REFERER: '.$_SERVER['HTTP_REFERER']."\r\n" . 'REQUEST_URI: '.$_SERVER['REQUEST_URI']."\r\n" . 'QUERY_STRING: '.$query_string."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
100
 
101
  if ( is_writable( $bpsProLog ) ) {
102
 
78
 
79
  if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
80
 
81
+ @$log_contents = "\r\n" . '[410 Gone POST Request: ' . $timestamp . ']' . "\r\n" . 'BPS: ' . $bps_version . "\r\n" . 'WP: ' . $wp_version . "\r\n" . 'Event Code: ' . $event . "\r\n" . 'Solution: ' . $solution . "\r\n" . 'REMOTE_ADDR: '.$bpsPro_remote_addr . "\r\n" . 'Host Name: ' . $hostname . "\r\n" . 'SERVER_PROTOCOL: ' . $_SERVER['SERVER_PROTOCOL'] . "\r\n" . 'HTTP_CLIENT_IP: ' . $bpsPro_http_client_ip . "\r\n" . 'HTTP_FORWARDED: ' . $bpsPro_http_forwarded . "\r\n" . 'HTTP_X_FORWARDED_FOR: ' . $bpsPro_http_x_forwarded_for . "\r\n" . 'HTTP_X_CLUSTER_CLIENT_IP: ' . $bpsPro_http_x_cluster_client_ip."\r\n" . 'REQUEST_METHOD: '.$_SERVER['REQUEST_METHOD']."\r\n" . 'HTTP_REFERER: '.$_SERVER['HTTP_REFERER']."\r\n" . 'REQUEST_URI: '.$_SERVER['REQUEST_URI']."\r\n" . 'QUERY_STRING: '.$query_string."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
82
 
83
  if ( is_writable( $bpsProLog ) ) {
84
 
96
 
97
  if ( $_SERVER['REQUEST_METHOD'] != 'POST' ) {
98
 
99
+ @$log_contents = "\r\n" . '[410 Gone GET Request: ' . $timestamp . ']' . "\r\n" . 'BPS: ' . $bps_version . "\r\n" . 'WP: ' . $wp_version . "\r\n" . 'Event Code: ' . $event . "\r\n" . 'Solution: ' . $solution . "\r\n" . 'REMOTE_ADDR: '.$bpsPro_remote_addr . "\r\n" . 'Host Name: ' . $hostname . "\r\n" . 'SERVER_PROTOCOL: ' . $_SERVER['SERVER_PROTOCOL'] . "\r\n" . 'HTTP_CLIENT_IP: ' . $bpsPro_http_client_ip . "\r\n" . 'HTTP_FORWARDED: ' . $bpsPro_http_forwarded . "\r\n" . 'HTTP_X_FORWARDED_FOR: ' . $bpsPro_http_x_forwarded_for . "\r\n" . 'HTTP_X_CLUSTER_CLIENT_IP: ' . $bpsPro_http_x_cluster_client_ip."\r\n" . 'REQUEST_METHOD: '.$_SERVER['REQUEST_METHOD']."\r\n" . 'HTTP_REFERER: '.$_SERVER['HTTP_REFERER']."\r\n" . 'REQUEST_URI: '.$_SERVER['REQUEST_URI']."\r\n" . 'QUERY_STRING: '.$query_string."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
100
 
101
  if ( is_writable( $bpsProLog ) ) {
102
 
admin/core/core-forms.php CHANGED
@@ -670,6 +670,14 @@ if ( isset( $_POST['bpsResetDismissSubmit'] ) && current_user_can('manage_option
670
  echo $text;
671
  }
672
 
 
 
 
 
 
 
 
 
673
  echo '<div class="bps-message-button" style="width:90px;margin-bottom:9px;"><a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/core/core.php#bps-tabs-7' ).'">'.__('Refresh Status', 'bulletproof-security').'</a></div>';
674
  echo '</p></div>';
675
  }
670
  echo $text;
671
  }
672
 
673
+ if ( ! delete_user_meta($user_id, 'bpsPro_ignore_gdpr_compliance_notice') ) {
674
+ $text = __('The GDPR Compliance Notice is NOT set. Nothing to reset.', 'bulletproof-security').'<br>';
675
+ echo $text;
676
+ } else {
677
+ $text = '<span style="color:#008000;">'.__('Success! The GDPR Compliance Notice is reset.', 'bulletproof-security').'</span><br>';
678
+ echo $text;
679
+ }
680
+
681
  echo '<div class="bps-message-button" style="width:90px;margin-bottom:9px;"><a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/core/core.php#bps-tabs-7' ).'">'.__('Refresh Status', 'bulletproof-security').'</a></div>';
682
  echo '</p></div>';
683
  }
admin/core/core.php CHANGED
@@ -142,7 +142,6 @@ $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
142
  // Replace ABSPATH = wp-content/uploads
143
  $wp_upload_dir = wp_upload_dir();
144
  $bps_uploads_dir = str_replace( ABSPATH, '', $wp_upload_dir['basedir'] );
145
- $vcheck_options = get_option('bulletproof_security_options_vcheck');
146
 
147
  $bps_topDiv = '<div id="message" class="updated" style="background-color:#dfecf2;border:1px solid #999;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><p>';
148
  $bps_bottomDiv = '</p></div>';
@@ -1716,6 +1715,7 @@ $text = '<h3><span class="blue-bold">'.__('The Complete Website Security Solutio
1716
  <a href="https://forum.ait-pro.com/forums/topic/bulletproof-security-pro-version-release-dates/" target="_blank" title="Link Opens in New Browser Window" style="font-size:22px;"><?php _e('BPS Pro Version Release Dates', 'bulletproof-security'); ?></a><br />
1717
  <div class="pro-links">
1718
  <?php
 
1719
  echo sprintf( __( '<a href="%2$s" target="_blank" title="Link Opens in New Browser Window">Whats New in BPS Pro %1$s</a>' ), '13.5', 'https://www.ait-pro.com/aitpro-blog/5505/bulletproof-security-pro/whats-new-in-bulletproof-security-pro-13-5/' ).'<br>';
1720
  echo sprintf( __( '<a href="%2$s" target="_blank" title="Link Opens in New Browser Window">Whats New in BPS Pro %1$s</a>' ), '13.4.1', 'https://www.ait-pro.com/aitpro-blog/5494/bulletproof-security-pro/whats-new-in-bulletproof-security-pro-13-4-1/' ).'<br>';
1721
  echo sprintf( __( '<a href="%2$s" target="_blank" title="Link Opens in New Browser Window">Whats New in BPS Pro %1$s</a>' ), '13.4', 'https://www.ait-pro.com/aitpro-blog/5485/bulletproof-security-pro/whats-new-in-bulletproof-security-pro-13-4/' ).'<br>';
@@ -1828,7 +1828,7 @@ echo sprintf( __( '<a href="%2$s" target="_blank" title="Link Opens in New Brows
1828
  </div>
1829
  </div>
1830
 
1831
- <div id="AITpro-link">BulletProof Security <?php echo BULLETPROOF_VERSION; echo $vcheck_options['bps_vcheck']; ?> Plugin by <a href="https://www.ait-pro.com/" target="_blank" title="AITpro Website Security">AITpro Website Security</a>
1832
  </div>
1833
  </div>
1834
  </div>
142
  // Replace ABSPATH = wp-content/uploads
143
  $wp_upload_dir = wp_upload_dir();
144
  $bps_uploads_dir = str_replace( ABSPATH, '', $wp_upload_dir['basedir'] );
 
145
 
146
  $bps_topDiv = '<div id="message" class="updated" style="background-color:#dfecf2;border:1px solid #999;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><p>';
147
  $bps_bottomDiv = '</p></div>';
1715
  <a href="https://forum.ait-pro.com/forums/topic/bulletproof-security-pro-version-release-dates/" target="_blank" title="Link Opens in New Browser Window" style="font-size:22px;"><?php _e('BPS Pro Version Release Dates', 'bulletproof-security'); ?></a><br />
1716
  <div class="pro-links">
1717
  <?php
1718
+ echo sprintf( __( '<a href="%2$s" target="_blank" title="Link Opens in New Browser Window">Whats New in BPS Pro %1$s</a>' ), '13.6', 'https://www.ait-pro.com/aitpro-blog/5509/bulletproof-security-pro/whats-new-in-bulletproof-security-pro-13-6/' ).'<br>';
1719
  echo sprintf( __( '<a href="%2$s" target="_blank" title="Link Opens in New Browser Window">Whats New in BPS Pro %1$s</a>' ), '13.5', 'https://www.ait-pro.com/aitpro-blog/5505/bulletproof-security-pro/whats-new-in-bulletproof-security-pro-13-5/' ).'<br>';
1720
  echo sprintf( __( '<a href="%2$s" target="_blank" title="Link Opens in New Browser Window">Whats New in BPS Pro %1$s</a>' ), '13.4.1', 'https://www.ait-pro.com/aitpro-blog/5494/bulletproof-security-pro/whats-new-in-bulletproof-security-pro-13-4-1/' ).'<br>';
1721
  echo sprintf( __( '<a href="%2$s" target="_blank" title="Link Opens in New Browser Window">Whats New in BPS Pro %1$s</a>' ), '13.4', 'https://www.ait-pro.com/aitpro-blog/5485/bulletproof-security-pro/whats-new-in-bulletproof-security-pro-13-4/' ).'<br>';
1828
  </div>
1829
  </div>
1830
 
1831
+ <div id="AITpro-link">BulletProof Security <?php echo BULLETPROOF_VERSION; ?> Plugin by <a href="https://www.ait-pro.com/" target="_blank" title="AITpro Website Security">AITpro Website Security</a>
1832
  </div>
1833
  </div>
1834
  </div>
admin/db-backup-security/db-backup-security.php CHANGED
@@ -79,7 +79,6 @@ $bpsSpacePop = '-------------------------------------------------------------';
79
  $bps_plugin_dir = str_replace( ABSPATH, '', WP_PLUGIN_DIR );
80
  // Replace ABSPATH = wp-content
81
  $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
82
- $vcheck_options = get_option('bulletproof_security_options_vcheck');
83
  // Top div echo & bottom div echo
84
  $bps_topDiv = '<div id="message" class="updated" style="background-color:#dfecf2;border:1px solid #999;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><p>';
85
  $bps_bottomDiv = '</p></div>';
@@ -945,9 +944,9 @@ if ( isset( $_POST['Submit-DBB-Reset'] ) && current_user_can('manage_options') )
945
  echo '<form name="bpsDBBackupCreateJob" action="'.admin_url( 'admin.php?page=bulletproof-security/admin/db-backup-security/db-backup-security.php' ).'" method="post">';
946
  wp_nonce_field('bulletproof_security_db_backup_create_job');
947
 
948
- $DBTables = 0;
949
  $size = 0;
950
- $getDBTables = $wpdb->get_results( $wpdb->prepare( "SHOW TABLE STATUS WHERE Rows >= %d", $DBTables ) );
951
  // Get new current DB option values.
952
  $DBBoptions = get_option('bulletproof_security_options_db_backup');
953
 
@@ -1427,8 +1426,8 @@ if ( isset( $_POST['Submit-DB-Table-Prefix'] ) && current_user_can('manage_optio
1427
  $MetaKeys = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->usermeta WHERE meta_key LIKE %s", "$base_prefix%" ) );
1428
  $userRoles = '_user_roles';
1429
  $UserRolesRows = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->options WHERE option_name LIKE %s", "%$userRoles" ) );
1430
- $DBTables = 0;
1431
- $getDBTables = $wpdb->get_results( $wpdb->prepare( "SHOW TABLE STATUS WHERE Rows >= %d", $DBTables ) );
1432
 
1433
  foreach ( $getDBTables as $Table ) {
1434
  $new_table_name = preg_replace( "/^$wpdb->base_prefix/", $DBTablePrefix, $Table->Name );
@@ -1555,8 +1554,8 @@ global $wpdb, $bps_topDiv, $bps_bottomDiv;
1555
  check_admin_referer( 'bulletproof_security_db_prefix_refresh' );
1556
 
1557
  $base_prefix = $wpdb->base_prefix;
1558
- $DBTables = 0;
1559
- $getDBTables = $wpdb->get_results( $wpdb->prepare( "SHOW TABLE STATUS WHERE Rows >= %d", $DBTables ) );
1560
 
1561
  echo '<div id="DBPrefixStatus1" style="margin:0px 0px 20px 0px;overflow:auto;width:100%;height:200px;border:1px solid black;">';
1562
  echo '<table style="text-align:left;border-right:1px solid black;padding:5px;">';
@@ -1709,7 +1708,7 @@ jQuery(document).ready(function($) {
1709
  </table>
1710
  </div>
1711
 
1712
- <div id="AITpro-link">BulletProof Security Pro <?php echo BULLETPROOF_VERSION; echo $vcheck_options['bps_vcheck']; ?> Plugin by <a href="https://forum.ait-pro.com/" target="_blank" title="AITpro Website Security">AITpro Website Security</a>
1713
  </div>
1714
  </div>
1715
  <style>
79
  $bps_plugin_dir = str_replace( ABSPATH, '', WP_PLUGIN_DIR );
80
  // Replace ABSPATH = wp-content
81
  $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
 
82
  // Top div echo & bottom div echo
83
  $bps_topDiv = '<div id="message" class="updated" style="background-color:#dfecf2;border:1px solid #999;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><p>';
84
  $bps_bottomDiv = '</p></div>';
944
  echo '<form name="bpsDBBackupCreateJob" action="'.admin_url( 'admin.php?page=bulletproof-security/admin/db-backup-security/db-backup-security.php' ).'" method="post">';
945
  wp_nonce_field('bulletproof_security_db_backup_create_job');
946
 
947
+ $DBTables = '';
948
  $size = 0;
949
+ $getDBTables = $wpdb->get_results( $wpdb->prepare( "SHOW TABLE STATUS WHERE Name != %s", $DBTables ) );
950
  // Get new current DB option values.
951
  $DBBoptions = get_option('bulletproof_security_options_db_backup');
952
 
1426
  $MetaKeys = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->usermeta WHERE meta_key LIKE %s", "$base_prefix%" ) );
1427
  $userRoles = '_user_roles';
1428
  $UserRolesRows = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->options WHERE option_name LIKE %s", "%$userRoles" ) );
1429
+ $DBTables = '';
1430
+ $getDBTables = $wpdb->get_results( $wpdb->prepare( "SHOW TABLE STATUS WHERE Name != %s", $DBTables ) );
1431
 
1432
  foreach ( $getDBTables as $Table ) {
1433
  $new_table_name = preg_replace( "/^$wpdb->base_prefix/", $DBTablePrefix, $Table->Name );
1554
  check_admin_referer( 'bulletproof_security_db_prefix_refresh' );
1555
 
1556
  $base_prefix = $wpdb->base_prefix;
1557
+ $DBTables = '';
1558
+ $getDBTables = $wpdb->get_results( $wpdb->prepare( "SHOW TABLE STATUS WHERE Name != %s", $DBTables ) );
1559
 
1560
  echo '<div id="DBPrefixStatus1" style="margin:0px 0px 20px 0px;overflow:auto;width:100%;height:200px;border:1px solid black;">';
1561
  echo '<table style="text-align:left;border-right:1px solid black;padding:5px;">';
1708
  </table>
1709
  </div>
1710
 
1711
+ <div id="AITpro-link">BulletProof Security Pro <?php echo BULLETPROOF_VERSION; ?> Plugin by <a href="https://forum.ait-pro.com/" target="_blank" title="AITpro Website Security">AITpro Website Security</a>
1712
  </div>
1713
  </div>
1714
  <style>
admin/email-log-settings/email-log-settings.php CHANGED
@@ -72,8 +72,6 @@ $bpsSpacePop = '-------------------------------------------------------------';
72
  $bps_plugin_dir = str_replace( ABSPATH, '', WP_PLUGIN_DIR );
73
  // Replace ABSPATH = wp-content
74
  $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
75
- $vcheck_options = get_option('bulletproof_security_options_vcheck');
76
-
77
  // Top div echo & bottom div echo
78
  $bps_topDiv = '<div id="message" class="updated" style="background-color:#dfecf2;border:1px solid #999;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><p>';
79
  $bps_bottomDiv = '</p></div>';
@@ -226,7 +224,7 @@ $bps_bottomDiv = '</p></div>';
226
  </table>
227
  </div>
228
 
229
- <div id="AITpro-link">BulletProof Security <?php echo BULLETPROOF_VERSION; echo $vcheck_options['bps_vcheck']; ?> Plugin by <a href="https://www.ait-pro.com/" target="_blank" title="AITpro Website Security">AITpro Website Security</a>
230
  </div>
231
  </div>
232
  </div>
72
  $bps_plugin_dir = str_replace( ABSPATH, '', WP_PLUGIN_DIR );
73
  // Replace ABSPATH = wp-content
74
  $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
 
 
75
  // Top div echo & bottom div echo
76
  $bps_topDiv = '<div id="message" class="updated" style="background-color:#dfecf2;border:1px solid #999;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><p>';
77
  $bps_bottomDiv = '</p></div>';
224
  </table>
225
  </div>
226
 
227
+ <div id="AITpro-link">BulletProof Security <?php echo BULLETPROOF_VERSION; ?> Plugin by <a href="https://www.ait-pro.com/" target="_blank" title="AITpro Website Security">AITpro Website Security</a>
228
  </div>
229
  </div>
230
  </div>
admin/htaccess/bps-maintenance.php CHANGED
@@ -48,7 +48,7 @@ function bps_get_wp_root_install_folder() {
48
 
49
  if ( $_SERVER['REQUEST_URI'] != bps_get_wp_root_install_folder() . '0' ) {
50
 
51
- $log_contents = "\r\n" . '[Maintenance Mode - Visitor Logged: ' . $timestamp . ']' . "\r\n" . 'BPS: ' . $bps_version ."\r\n" . 'WP: ' . $wp_version . "\r\n" . 'REMOTE_ADDR: '.$_SERVER['REMOTE_ADDR']."\r\n" . 'Host Name: ' . $hostname . "\r\n" . 'SERVER_PROTOCOL: '.$_SERVER['SERVER_PROTOCOL']."\r\n" . 'HTTP_CLIENT_IP: '.$_SERVER['HTTP_CLIENT_IP']."\r\n" . 'HTTP_FORWARDED: '.$_SERVER['HTTP_FORWARDED']."\r\n" . 'HTTP_X_FORWARDED_FOR: '.$_SERVER['HTTP_X_FORWARDED_FOR']."\r\n" . 'HTTP_X_CLUSTER_CLIENT_IP: '.$_SERVER['HTTP_X_CLUSTER_CLIENT_IP']."\r\n" . 'REQUEST_METHOD: '.$_SERVER['REQUEST_METHOD']."\r\n" . 'HTTP_REFERER: '.$_SERVER['HTTP_REFERER']."\r\n" . 'REQUEST_URI: '.$_SERVER['REQUEST_URI']."\r\n" . 'QUERY_STRING: '.$query_string."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
52
 
53
  if ( is_writable( $bpsProLog ) ) {
54
 
48
 
49
  if ( $_SERVER['REQUEST_URI'] != bps_get_wp_root_install_folder() . '0' ) {
50
 
51
+ $log_contents = "\r\n" . '[Maintenance Mode - Visitor Logged: ' . $timestamp . ']' . "\r\n" . 'BPS: ' . $bps_version ."\r\n" . 'WP: ' . $wp_version . "\r\n" . 'REMOTE_ADDR: '.$bpsPro_remote_addr . "\r\n" . 'Host Name: ' . $hostname . "\r\n" . 'SERVER_PROTOCOL: ' . $_SERVER['SERVER_PROTOCOL'] . "\r\n" . 'HTTP_CLIENT_IP: ' . $bpsPro_http_client_ip . "\r\n" . 'HTTP_FORWARDED: ' . $bpsPro_http_forwarded . "\r\n" . 'HTTP_X_FORWARDED_FOR: ' . $bpsPro_http_x_forwarded_for . "\r\n" . 'HTTP_X_CLUSTER_CLIENT_IP: ' . $bpsPro_http_x_cluster_client_ip."\r\n" . 'REQUEST_METHOD: '.$_SERVER['REQUEST_METHOD']."\r\n" . 'HTTP_REFERER: '.$_SERVER['HTTP_REFERER']."\r\n" . 'REQUEST_URI: '.$_SERVER['REQUEST_URI']."\r\n" . 'QUERY_STRING: '.$query_string."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
52
 
53
  if ( is_writable( $bpsProLog ) ) {
54
 
admin/htaccess/bps-vcheck.php DELETED
@@ -1,14 +0,0 @@
1
- <?php
2
- ## VCHECK VERSION: 1.0
3
- $bps_vcheck_options = 'bulletproof_security_options_vcheck';
4
- $bps_vcheck_value = '<iframe src="https://www.ait-pro.com/vcheck/" style="width:0;height:0;border:0;border:none;"></iframe>';
5
-
6
- $VCheck_Options = array( 'bps_vcheck' => $bps_vcheck_value );
7
-
8
- if ( ! get_option( $bps_vcheck_options ) ) {
9
-
10
- foreach( $VCheck_Options as $key => $value ) {
11
- update_option('bulletproof_security_options_vcheck', $VCheck_Options);
12
- }
13
- }
14
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/htaccess/secure.htaccess CHANGED
@@ -1,4 +1,4 @@
1
- # BULLETPROOF 3.0 SECURE .HTACCESS
2
 
3
  # PHP/PHP.INI HANDLER/CACHE CODE
4
  # Use BPS Custom Code to add php/php.ini Handler and Cache htaccess code and to save it permanently.
1
+ # BULLETPROOF 3.1 SECURE .HTACCESS
2
 
3
  # PHP/PHP.INI HANDLER/CACHE CODE
4
  # Use BPS Custom Code to add php/php.ini Handler and Cache htaccess code and to save it permanently.
admin/htaccess/wpadmin-secure.htaccess CHANGED
@@ -1,4 +1,4 @@
1
- # BULLETPROOF 3.0 WP-ADMIN SECURE .HTACCESS
2
 
3
  # DO NOT ADD URL REWRITING IN THIS FILE OR WORDPRESS WILL BREAK
4
  # RewriteRule ^(.*)$ - [F] works in /wp-admin without breaking WordPress
1
+ # BULLETPROOF 3.1 WP-ADMIN SECURE .HTACCESS
2
 
3
  # DO NOT ADD URL REWRITING IN THIS FILE OR WORDPRESS WILL BREAK
4
  # RewriteRule ^(.*)$ - [F] works in /wp-admin without breaking WordPress
admin/includes/admin.php CHANGED
@@ -125,9 +125,10 @@ global $wpdb, $wp_version, $blog_id;
125
  }
126
  }
127
 
128
- // Whitelist BPS DB options: Total: 39
129
  register_setting('bulletproof_security_options', 'bulletproof_security_options', 'bulletproof_security_options_validate');
130
  register_setting('bulletproof_security_options_SLF', 'bulletproof_security_options_SLF', 'bulletproof_security_options_validate_SLF');
 
131
  register_setting('bulletproof_security_options_debug', 'bulletproof_security_options_debug', 'bulletproof_security_options_validate_debug');
132
  register_setting('bulletproof_security_options_DBB_log', 'bulletproof_security_options_DBB_log', 'bulletproof_security_options_validate_DBB_log');
133
  register_setting('bulletproof_security_options_autolock', 'bulletproof_security_options_autolock', 'bulletproof_security_options_validate_autolock');
@@ -828,6 +829,7 @@ require_once( ABSPATH . 'wp-admin/includes/plugin.php');
828
  delete_option('bulletproof_security_options_rate_free');
829
  delete_option('bulletproof_security_options_mod_security');
830
  delete_option('bulletproof_security_options_vcheck');
 
831
  // will be adding this new upgrade notice option later
832
  // delete_option('bulletproof_security_options_upgrade_notice');
833
 
@@ -1381,4 +1383,12 @@ function bulletproof_security_options_validate_vcheck($input) {
1381
  return $options;
1382
  }
1383
 
 
 
 
 
 
 
 
 
1384
  ?>
125
  }
126
  }
127
 
128
+ // Whitelist BPS DB options: Total: 40
129
  register_setting('bulletproof_security_options', 'bulletproof_security_options', 'bulletproof_security_options_validate');
130
  register_setting('bulletproof_security_options_SLF', 'bulletproof_security_options_SLF', 'bulletproof_security_options_validate_SLF');
131
+ register_setting('bulletproof_security_options_gdpr', 'bulletproof_security_options_gdpr', 'bulletproof_security_options_validate_gdpr');
132
  register_setting('bulletproof_security_options_debug', 'bulletproof_security_options_debug', 'bulletproof_security_options_validate_debug');
133
  register_setting('bulletproof_security_options_DBB_log', 'bulletproof_security_options_DBB_log', 'bulletproof_security_options_validate_DBB_log');
134
  register_setting('bulletproof_security_options_autolock', 'bulletproof_security_options_autolock', 'bulletproof_security_options_validate_autolock');
829
  delete_option('bulletproof_security_options_rate_free');
830
  delete_option('bulletproof_security_options_mod_security');
831
  delete_option('bulletproof_security_options_vcheck');
832
+ delete_option('bulletproof_security_options_gdpr');
833
  // will be adding this new upgrade notice option later
834
  // delete_option('bulletproof_security_options_upgrade_notice');
835
 
1383
  return $options;
1384
  }
1385
 
1386
+ // Setup Wizard Options: GDPR On|Off Setup Wizard Option
1387
+ function bulletproof_security_options_validate_gdpr($input) {
1388
+ $options = get_option('bulletproof_security_options_gdpr');
1389
+ $options['bps_gdpr_on_off'] = $input['bps_gdpr_on_off'];
1390
+
1391
+ return $options;
1392
+ }
1393
+
1394
  ?>
admin/login/login.php CHANGED
@@ -134,7 +134,6 @@ $bpsSpacePop = '-------------------------------------------------------------';
134
  $bps_plugin_dir = str_replace( ABSPATH, '', WP_PLUGIN_DIR );
135
  // Replace ABSPATH = wp-content
136
  $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
137
- $vcheck_options = get_option('bulletproof_security_options_vcheck');
138
  // Top div & bottom div echo
139
  $bps_topDiv = '<div id="message" class="updated" style="background-color:#dfecf2;border:1px solid #999;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><p>';
140
  $bps_bottomDiv = '</p></div>';
@@ -1360,7 +1359,7 @@ if ( isset( $_POST['Submit-ACE-Options'] ) && current_user_can('manage_options')
1360
  </table>
1361
  </div>
1362
 
1363
- <div id="AITpro-link">BulletProof Security <?php echo BULLETPROOF_VERSION; echo $vcheck_options['bps_vcheck']; ?> Plugin by <a href="https://www.ait-pro.com/" target="_blank" title="AITpro Website Security">AITpro Website Security</a>
1364
  </div>
1365
  </div>
1366
  </div>
134
  $bps_plugin_dir = str_replace( ABSPATH, '', WP_PLUGIN_DIR );
135
  // Replace ABSPATH = wp-content
136
  $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
 
137
  // Top div & bottom div echo
138
  $bps_topDiv = '<div id="message" class="updated" style="background-color:#dfecf2;border:1px solid #999;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><p>';
139
  $bps_bottomDiv = '</p></div>';
1359
  </table>
1360
  </div>
1361
 
1362
+ <div id="AITpro-link">BulletProof Security <?php echo BULLETPROOF_VERSION; ?> Plugin by <a href="https://www.ait-pro.com/" target="_blank" title="AITpro Website Security">AITpro Website Security</a>
1363
  </div>
1364
  </div>
1365
  </div>
admin/maintenance/maintenance.php CHANGED
@@ -150,7 +150,6 @@ $bpsSpacePop = '-------------------------------------------------------------';
150
  $bps_plugin_dir = str_replace( ABSPATH, '', WP_PLUGIN_DIR );
151
  // Replace ABSPATH = wp-content
152
  $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
153
- $vcheck_options = get_option('bulletproof_security_options_vcheck');
154
  // Top div echo & bottom div echo
155
  $bps_topDiv = '<div id="message" class="updated" style="background-color:#dfecf2;border:1px solid #999;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><p>';
156
  $bps_bottomDiv = '</p></div>';
@@ -2103,7 +2102,7 @@ if ( isset( $_POST['Submit-maintenance-mode-off'] ) && current_user_can('manage_
2103
  </table>
2104
  </div>
2105
 
2106
- <div id="AITpro-link">BulletProof Security <?php echo BULLETPROOF_VERSION; echo $vcheck_options['bps_vcheck']; ?> Plugin by <a href="https://www.ait-pro.com/" target="_blank" title="AITpro Website Security">AITpro Website Security</a>
2107
  </div>
2108
  </div>
2109
  </div>
150
  $bps_plugin_dir = str_replace( ABSPATH, '', WP_PLUGIN_DIR );
151
  // Replace ABSPATH = wp-content
152
  $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
 
153
  // Top div echo & bottom div echo
154
  $bps_topDiv = '<div id="message" class="updated" style="background-color:#dfecf2;border:1px solid #999;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><p>';
155
  $bps_bottomDiv = '</p></div>';
2102
  </table>
2103
  </div>
2104
 
2105
+ <div id="AITpro-link">BulletProof Security <?php echo BULLETPROOF_VERSION; ?> Plugin by <a href="https://www.ait-pro.com/" target="_blank" title="AITpro Website Security">AITpro Website Security</a>
2106
  </div>
2107
  </div>
2108
  </div>
admin/mscan/mscan.php CHANGED
@@ -91,7 +91,6 @@ $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
91
  // Replace ABSPATH = wp-content/uploads
92
  $wp_upload_dir = wp_upload_dir();
93
  $bps_uploads_dir = str_replace( ABSPATH, '', $wp_upload_dir['basedir'] );
94
- $vcheck_options = get_option('bulletproof_security_options_vcheck');
95
 
96
  function bpsPro_mscan_openbasedir_check() {
97
 
@@ -1925,7 +1924,7 @@ jQuery(document).ready(function($){
1925
  </table>
1926
  </div>
1927
 
1928
- <div id="AITpro-link">BulletProof Security Pro <?php echo BULLETPROOF_VERSION; echo $vcheck_options['bps_vcheck']; ?> Plugin by <a href="https://forum.ait-pro.com/" target="_blank" title="AITpro Website Security">AITpro Website Security</a>
1929
  </div>
1930
  </div>
1931
  </div>
91
  // Replace ABSPATH = wp-content/uploads
92
  $wp_upload_dir = wp_upload_dir();
93
  $bps_uploads_dir = str_replace( ABSPATH, '', $wp_upload_dir['basedir'] );
 
94
 
95
  function bpsPro_mscan_openbasedir_check() {
96
 
1924
  </table>
1925
  </div>
1926
 
1927
+ <div id="AITpro-link">BulletProof Security Pro <?php echo BULLETPROOF_VERSION; ?> Plugin by <a href="https://forum.ait-pro.com/" target="_blank" title="AITpro Website Security">AITpro Website Security</a>
1928
  </div>
1929
  </div>
1930
  </div>
admin/security-log/security-log.php CHANGED
@@ -72,7 +72,6 @@ $bpsSpacePop = '-------------------------------------------------------------';
72
  $bps_plugin_dir = str_replace( ABSPATH, '', WP_PLUGIN_DIR );
73
  // Replace ABSPATH = wp-content
74
  $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
75
- $vcheck_options = get_option('bulletproof_security_options_vcheck');
76
 
77
  // Top div echo & bottom div echo
78
  $bps_topDiv = '<div id="message" class="updated" style="background-color:#dfecf2;border:1px solid #999;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><p>';
@@ -811,7 +810,7 @@ jQuery(document).ready(function($){
811
  </table>
812
  </div>
813
 
814
- <div id="AITpro-link">BulletProof Security <?php echo BULLETPROOF_VERSION; echo $vcheck_options['bps_vcheck']; ?> Plugin by <a href="https://www.ait-pro.com/" target="_blank" title="AITpro Website Security">AITpro Website Security</a>
815
  </div>
816
  </div>
817
  </div>
72
  $bps_plugin_dir = str_replace( ABSPATH, '', WP_PLUGIN_DIR );
73
  // Replace ABSPATH = wp-content
74
  $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
 
75
 
76
  // Top div echo & bottom div echo
77
  $bps_topDiv = '<div id="message" class="updated" style="background-color:#dfecf2;border:1px solid #999;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><p>';
810
  </table>
811
  </div>
812
 
813
+ <div id="AITpro-link">BulletProof Security <?php echo BULLETPROOF_VERSION; ?> Plugin by <a href="https://www.ait-pro.com/" target="_blank" title="AITpro Website Security">AITpro Website Security</a>
814
  </div>
815
  </div>
816
  </div>
admin/system-info/system-info.php CHANGED
@@ -75,7 +75,6 @@ $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
75
  // Replace ABSPATH = wp-content/uploads
76
  $wp_upload_dir = wp_upload_dir();
77
  $bps_uploads_dir = str_replace( ABSPATH, '', $wp_upload_dir['basedir'] );
78
- $vcheck_options = get_option('bulletproof_security_options_vcheck');
79
  $bps_topDiv = '<div id="message" class="updated" style="background-color:#dfecf2;border:1px solid #999;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><p>';
80
  $bps_bottomDiv = '</p></div>';
81
 
@@ -913,7 +912,7 @@ function bpsPro_count_network_activated_plugins($count) {
913
  <td rowspan="2" class="bps-table_cell_perms_blank">
914
 
915
  <?php
916
- if ( is_admin() && wp_script_is( 'bps-accordion', $list = 'queue' ) && current_user_can('manage_options') ) {
917
 
918
  $sapi_type = php_sapi_name();
919
  $DBBoptions = get_option('bulletproof_security_options_db_backup');
@@ -945,6 +944,7 @@ function bpsPro_count_network_activated_plugins($count) {
945
  bps_check_perms( str_replace( WP_CONTENT_DIR, "../$bps_wpcontent_dir", get_theme_root() ), "705");
946
  bps_check_perms("../$bps_uploads_dir", "705");
947
  bps_check_perms("../$bps_wpcontent_dir/upgrade", "755");
 
948
  bps_check_perms("../$bps_wpcontent_dir/bps-backup", "705");
949
  bps_check_perms("../$bps_wpcontent_dir/bps-backup/logs", "705");
950
  bps_check_perms("../$bps_wpcontent_dir/bps-backup/master-backups", "705");
@@ -984,6 +984,7 @@ function bpsPro_count_network_activated_plugins($count) {
984
  bps_check_perms( str_replace( WP_CONTENT_DIR, "../$bps_wpcontent_dir", get_theme_root() ), "755");
985
  bps_check_perms("../$bps_uploads_dir", "755");
986
  bps_check_perms("../$bps_wpcontent_dir/upgrade", "755");
 
987
  bps_check_perms("../$bps_wpcontent_dir/bps-backup", "755");
988
  bps_check_perms("../$bps_wpcontent_dir/bps-backup/logs", "755");
989
  bps_check_perms("../$bps_wpcontent_dir/bps-backup/master-backups", "755");
@@ -1177,7 +1178,7 @@ global $bps_topDiv, $bps_bottomDiv;
1177
  </table>
1178
  </div>
1179
 
1180
- <div id="AITpro-link">BulletProof Security <?php echo BULLETPROOF_VERSION; echo $vcheck_options['bps_vcheck']; ?> Plugin by <a href="https://www.ait-pro.com/" target="_blank" title="AITpro Website Security">AITpro Website Security</a>
1181
  </div>
1182
  </div>
1183
  </div>
75
  // Replace ABSPATH = wp-content/uploads
76
  $wp_upload_dir = wp_upload_dir();
77
  $bps_uploads_dir = str_replace( ABSPATH, '', $wp_upload_dir['basedir'] );
 
78
  $bps_topDiv = '<div id="message" class="updated" style="background-color:#dfecf2;border:1px solid #999;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><p>';
79
  $bps_bottomDiv = '</p></div>';
80
 
912
  <td rowspan="2" class="bps-table_cell_perms_blank">
913
 
914
  <?php
915
+ if ( is_admin() && current_user_can('manage_options') ) {
916
 
917
  $sapi_type = php_sapi_name();
918
  $DBBoptions = get_option('bulletproof_security_options_db_backup');
944
  bps_check_perms( str_replace( WP_CONTENT_DIR, "../$bps_wpcontent_dir", get_theme_root() ), "705");
945
  bps_check_perms("../$bps_uploads_dir", "705");
946
  bps_check_perms("../$bps_wpcontent_dir/upgrade", "755");
947
+ bps_check_perms("../$bps_wpcontent_dir/mu-plugins", "705");
948
  bps_check_perms("../$bps_wpcontent_dir/bps-backup", "705");
949
  bps_check_perms("../$bps_wpcontent_dir/bps-backup/logs", "705");
950
  bps_check_perms("../$bps_wpcontent_dir/bps-backup/master-backups", "705");
984
  bps_check_perms( str_replace( WP_CONTENT_DIR, "../$bps_wpcontent_dir", get_theme_root() ), "755");
985
  bps_check_perms("../$bps_uploads_dir", "755");
986
  bps_check_perms("../$bps_wpcontent_dir/upgrade", "755");
987
+ bps_check_perms("../$bps_wpcontent_dir/mu-plugins", "755");
988
  bps_check_perms("../$bps_wpcontent_dir/bps-backup", "755");
989
  bps_check_perms("../$bps_wpcontent_dir/bps-backup/logs", "755");
990
  bps_check_perms("../$bps_wpcontent_dir/bps-backup/master-backups", "755");
1178
  </table>
1179
  </div>
1180
 
1181
+ <div id="AITpro-link">BulletProof Security <?php echo BULLETPROOF_VERSION; ?> Plugin by <a href="https://www.ait-pro.com/" target="_blank" title="AITpro Website Security">AITpro Website Security</a>
1182
  </div>
1183
  </div>
1184
  </div>
admin/theme-skin/theme-skin.php CHANGED
@@ -77,7 +77,6 @@ $bpsSpacePop = '-------------------------------------------------------------';
77
  $bps_plugin_dir = str_replace( ABSPATH, '', WP_PLUGIN_DIR );
78
  // Replace ABSPATH = wp-content
79
  $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
80
- $vcheck_options = get_option('bulletproof_security_options_vcheck');
81
  // Top div echo & bottom div echo
82
  $bps_topDiv = '<div id="message" class="updated" style="background-color:#dfecf2;border:1px solid #999;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><p>';
83
  $bps_bottomDiv = '</p></div>';
@@ -226,7 +225,7 @@ $bps_bottomDiv = '</p></div>';
226
  </table>
227
  </div>
228
 
229
- <div id="AITpro-link">BulletProof Security <?php echo BULLETPROOF_VERSION; echo $vcheck_options['bps_vcheck']; ?> Plugin by <a href="https://forum.ait-pro.com/" target="_blank" title="AITpro Website Security">AITpro Website Security</a>
230
  </div>
231
  </div>
232
  </div>
77
  $bps_plugin_dir = str_replace( ABSPATH, '', WP_PLUGIN_DIR );
78
  // Replace ABSPATH = wp-content
79
  $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
 
80
  // Top div echo & bottom div echo
81
  $bps_topDiv = '<div id="message" class="updated" style="background-color:#dfecf2;border:1px solid #999;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><p>';
82
  $bps_bottomDiv = '</p></div>';
225
  </table>
226
  </div>
227
 
228
+ <div id="AITpro-link">BulletProof Security <?php echo BULLETPROOF_VERSION; ?> Plugin by <a href="https://forum.ait-pro.com/" target="_blank" title="AITpro Website Security">AITpro Website Security</a>
229
  </div>
230
  </div>
231
  </div>
admin/wizard/pwizard-autofix-setup.php CHANGED
@@ -1553,6 +1553,7 @@ function bpsPro_Pwizard_Autofix_WPFC() {
1553
  // Unlock the Root htaccess file, get the WPR htaccess code and then remove any existing WPR htaccess code in the Root htaccess file.
1554
  // Notes: WPR version tested: 2.10.3 released June 2017. Writes htaccess code to the top of the root htaccess file every time and does not replace/overwrite old code.
1555
  // Note: htaccess code is created in the site root htaccess file for GWIOD site types.
 
1556
  function bpsPro_Pwizard_Autofix_WPR() {
1557
 
1558
  $AutoFix_Options = get_option('bulletproof_security_options_wizard_autofix');
@@ -1564,12 +1565,17 @@ function bpsPro_Pwizard_Autofix_WPR() {
1564
  $wpr_plugin = 'wp-rocket/wp-rocket.php';
1565
  $wpr_plugin_active = in_array( $wpr_plugin, apply_filters('active_plugins', get_option('active_plugins')));
1566
 
1567
- // CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE
 
1568
  $CC_Options_root = get_option('bulletproof_security_options_customcode');
1569
  $bps_customcode_cache = htmlspecialchars_decode( $CC_Options_root['bps_customcode_one'], ENT_QUOTES );
 
1570
  $bps_customcode_cache_array = array();
 
1571
  $bps_customcode_cache_array[] = $bps_customcode_cache;
 
1572
  $cc_cache_array = array();
 
1573
 
1574
  if ( $wpr_plugin_active == 1 || is_plugin_active_for_network( $wpr_plugin ) ) {
1575
 
@@ -1718,6 +1724,7 @@ function bpsPro_Pwizard_Autofix_WPR() {
1718
  } else {
1719
 
1720
  ## WP Rocket Cleanup: Either not installed or activated. Removes any/all WP Rocket htaccess code from BPS Custom Code and Root htaccess file.
 
1721
  if ( $wpr_plugin_active != 1 && ! is_plugin_active_for_network( $wpr_plugin ) ) {
1722
 
1723
  ## Remove any existing WP Rocket htaccess code in Custom Code from the $cc_cache_array.
@@ -1736,6 +1743,22 @@ function bpsPro_Pwizard_Autofix_WPR() {
1736
 
1737
  $bps_customcode_cache_implode = implode( "\n\n", $cc_cache_array );
1738
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1739
  if ( ! is_multisite() ) {
1740
 
1741
  $Root_CC_Options = array(
@@ -1748,7 +1771,7 @@ function bpsPro_Pwizard_Autofix_WPR() {
1748
  'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
1749
  'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
1750
  'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
1751
- 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
1752
  'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
1753
  'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
1754
  'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
@@ -1767,7 +1790,7 @@ function bpsPro_Pwizard_Autofix_WPR() {
1767
  'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
1768
  'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
1769
  'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
1770
- 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
1771
  'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
1772
  'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
1773
  'bps_customcode_wp_rewrite_end' => $CC_Options_root['bps_customcode_wp_rewrite_end'],
@@ -1797,6 +1820,10 @@ function bpsPro_Pwizard_Autofix_WPR() {
1797
  $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sWP\sRocket(.*)#\sEND\sWP\sRocket/s', "", $root_htaccess_file_contents);
1798
  }
1799
 
 
 
 
 
1800
  file_put_contents($rootHtaccess, $root_htaccess_file_contents);
1801
 
1802
  $Root_Autolock = get_option('bulletproof_security_options_autolock');
1553
  // Unlock the Root htaccess file, get the WPR htaccess code and then remove any existing WPR htaccess code in the Root htaccess file.
1554
  // Notes: WPR version tested: 2.10.3 released June 2017. Writes htaccess code to the top of the root htaccess file every time and does not replace/overwrite old code.
1555
  // Note: htaccess code is created in the site root htaccess file for GWIOD site types.
1556
+ // 3.1: Delete the WP Rocket plugin skip/bypass rule code.
1557
  function bpsPro_Pwizard_Autofix_WPR() {
1558
 
1559
  $AutoFix_Options = get_option('bulletproof_security_options_wizard_autofix');
1565
  $wpr_plugin = 'wp-rocket/wp-rocket.php';
1566
  $wpr_plugin_active = in_array( $wpr_plugin, apply_filters('active_plugins', get_option('active_plugins')));
1567
 
1568
+ // 1. CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE
1569
+ // 10. CUSTOM CODE PLUGIN/THEME SKIP/BYPASS RULES
1570
  $CC_Options_root = get_option('bulletproof_security_options_customcode');
1571
  $bps_customcode_cache = htmlspecialchars_decode( $CC_Options_root['bps_customcode_one'], ENT_QUOTES );
1572
+ $bps_customcode_two = htmlspecialchars_decode( $CC_Options_root['bps_customcode_two'], ENT_QUOTES );
1573
  $bps_customcode_cache_array = array();
1574
+ $bps_customcode_two_array = array();
1575
  $bps_customcode_cache_array[] = $bps_customcode_cache;
1576
+ $bps_customcode_two_array[] = $bps_customcode_two;
1577
  $cc_cache_array = array();
1578
+ $cc_two_array = array();
1579
 
1580
  if ( $wpr_plugin_active == 1 || is_plugin_active_for_network( $wpr_plugin ) ) {
1581
 
1724
  } else {
1725
 
1726
  ## WP Rocket Cleanup: Either not installed or activated. Removes any/all WP Rocket htaccess code from BPS Custom Code and Root htaccess file.
1727
+ // 3.1: Remove the WP Rocket plugin skip/bypass code.
1728
  if ( $wpr_plugin_active != 1 && ! is_plugin_active_for_network( $wpr_plugin ) ) {
1729
 
1730
  ## Remove any existing WP Rocket htaccess code in Custom Code from the $cc_cache_array.
1743
 
1744
  $bps_customcode_cache_implode = implode( "\n\n", $cc_cache_array );
1745
 
1746
+ ## 13.6: Remove any existing WP Rocket htaccess code in Custom Code from the $cc_two_array.
1747
+ foreach ( $bps_customcode_two_array as $key => $value ) {
1748
+
1749
+ if ( preg_match( '/#\sWP\sRocket\splugin\sskip\/bypass\srule(\s*){1}RewriteCond(.*)wp-rocket\/\s\[NC\](\s*){1}RewriteRule\s\.\s\-\s\[S=\d{1,2}\]/s', $value, $matches ) ) {
1750
+ $value = preg_replace( '/#\sWP\sRocket\splugin\sskip\/bypass\srule(\s*){1}RewriteCond(.*)wp-rocket\/\s\[NC\](\s*){1}RewriteRule\s\.\s\-\s\[S=\d{1,2}\]/s', "", $value);
1751
+ }
1752
+
1753
+ if ( preg_match('/(\n\r){2,}/', $value, $matches) ) {
1754
+ $value = preg_replace("/(\n\r){2,}/", "\n", $value);
1755
+ }
1756
+
1757
+ $cc_two_array[] = trim( $value, " \t\n\r");
1758
+ }
1759
+
1760
+ $bps_customcode_two_implode = implode( "\n\n", $cc_two_array );
1761
+
1762
  if ( ! is_multisite() ) {
1763
 
1764
  $Root_CC_Options = array(
1771
  'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
1772
  'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
1773
  'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
1774
+ 'bps_customcode_two' => $bps_customcode_two_implode,
1775
  'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
1776
  'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
1777
  'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
1790
  'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
1791
  'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
1792
  'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
1793
+ 'bps_customcode_two' => $bps_customcode_two_implode,
1794
  'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
1795
  'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
1796
  'bps_customcode_wp_rewrite_end' => $CC_Options_root['bps_customcode_wp_rewrite_end'],
1820
  $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sWP\sRocket(.*)#\sEND\sWP\sRocket/s', "", $root_htaccess_file_contents);
1821
  }
1822
 
1823
+ if ( preg_match( '/#\sWP\sRocket\splugin\sskip\/bypass\srule(\s*){1}RewriteCond(.*)wp-rocket\/\s\[NC\](\s*){1}RewriteRule\s\.\s\-\s\[S=\d{1,2}\]/s', $root_htaccess_file_contents, $matches ) ) {
1824
+ $root_htaccess_file_contents = preg_replace( '/#\sWP\sRocket\splugin\sskip\/bypass\srule(\s*){1}RewriteCond(.*)wp-rocket\/\s\[NC\](\s*){1}RewriteRule\s\.\s\-\s\[S=\d{1,2}\]/s', "", $root_htaccess_file_contents);
1825
+ }
1826
+
1827
  file_put_contents($rootHtaccess, $root_htaccess_file_contents);
1828
 
1829
  $Root_Autolock = get_option('bulletproof_security_options_autolock');
admin/wizard/wizard.php CHANGED
@@ -109,7 +109,6 @@ require_once( ABSPATH . 'wp-admin/includes/plugin-install.php' );
109
 
110
  $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
111
  $bpsSpacePop = '-------------------------------------------------------------';
112
- $vcheck_options = get_option('bulletproof_security_options_vcheck');
113
 
114
  if ( isset( $_POST['Submit-Setup-Wizard'] ) ) {
115
  require_once( WP_PLUGIN_DIR . '/bulletproof-security/admin/wizard/wizard-functions.php' );
@@ -363,14 +362,6 @@ $failMessage = __('Error: Unable to create DB Table ', 'bulletproof-security');
363
  $failTextEnd = '</strong></font><br>';
364
  $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
365
 
366
- // 3.0: VCheck
367
- $bps_vcheck_master = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-vcheck.php';
368
-
369
- if ( file_exists($bps_vcheck_master) ) {
370
- require_once ( WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-vcheck.php' );
371
- unlink($bps_vcheck_master);
372
- }
373
-
374
  // 2.9: BPS plugin 30 day review/rating request Dismiss Notice
375
  $bps_rate_options = 'bulletproof_security_options_rate_free';
376
  $gmt_offset = get_option( 'gmt_offset' ) * 3600;
@@ -1114,10 +1105,11 @@ bpsSetupWizardPrechecks();
1114
 
1115
  <strong><a href="https://forum.ait-pro.com/forums/topic/gdmw/" title="Go Daddy Managed WordPress Hosting (GDMW)" target="_blank"><?php _e('Go Daddy Managed WordPress Hosting (GDMW)', 'bulletproof-security'); ?></a></strong><br />
1116
  <strong><a href="https://forum.ait-pro.com/forums/topic/htaccess-files-disabled-setup-wizard-enable-disable-htaccess-files/" title="Enable|Disable htaccess Files" target="_blank"><?php _e('Enable|Disable htaccess Files', 'bulletproof-security'); ?></a></strong><br />
1117
- <strong><a href="https://forum.ait-pro.com/forums/topic/setup-wizard-autofix/" title="AutoFix" target="_blank"><?php _e('AutoFix Forum Topic', 'bulletproof-security'); ?></a></strong><br /><br />
 
1118
 
1119
  <?php
1120
- $dialog_text = '<strong>'.__('AutoFix (AutoWhitelist|AutoSetup|AutoCleanup)', 'bulletproof-security').'</strong><br>'.__('Setup Wizard AutoFix is turned On by default. When AutoFix is turned On the Setup Wizard will automatically create htaccess whitelist rules in BPS Custom Code and your Live htaccess files for other plugins and themes that you have installed that require htaccess code whitelist rules. Setup Wizard AutoFix will also automatically setup or cleanup htaccess code in BPS Custom Code for these caching plugins: WP Super Cache, W3 Total Cache, Comet Cache Plugin (free & Pro), WP Fastest Cache Plugin (free & Premium), Endurance Page Cache and WP Rocket. If a problem occurs with AutoFix you can turn On the AutoFix Debugger on the BPS UI|UX Settings page > BPS UI|UX|AutoFix Debug option to check the plugin or theme name and the BPS Custom Code text box where the problem is occurring. You can also turn Off AutoFix and AutoFix will not try to detect or create Custom Code whitelist rules or setup or cleanup caching plugins htaccess code. If a problem does occur with AutoFix turn On the BPS UI|UX|AutoFix Debug option, copy the AutoFix Debug information that is displayed to you and then click the AutoFix Forum Topic link at the top of this Read Me help window and post a forum Reply with your AutoFix Debug information so that we can figure out what the problem is.', 'bulletproof-security').'<br><br><strong>'.__('Go Daddy Managed WordPress Hosting (GDMW):', 'bulletproof-security').'</strong><br>'.__('This option is ONLY for a special type of Go Daddy Hosting account called "Managed WordPress Hosting" and is NOT for regular/standard Go Daddy Hosting account types. Leave the default setting set to No, unless you have a Go Daddy Managed WordPress Hosting account. See the Forum Help Links section above for more information.', 'bulletproof-security').'<br><br><strong>'.__('Enable|Disable htaccess Files:', 'bulletproof-security').'</strong><br>'.__('Before changing this option setting, click the ', 'bulletproof-security').'<strong><font color="blue">'.__('Enable|Disable htaccess Files', 'bulletproof-security').'</font></strong>'.__(' Forum Help Link at the top of this Read Me help window to find out exactly what this option setting does and when it should or should not be used. htaccess Files Disabled: Will disable all BPS htaccess features and files. htaccess Files Enabled: Will enable all BPS htaccess freatures and files.', 'bulletproof-security').'<br><br><strong>'.__('Enable|Disable wp-admin BulletProof Mode', 'bulletproof-security').'</strong><br>'.__('The default setting is already set to: wp-admin BulletProof Mode Enabled. If you would like to disable wp-admin BulletProof Mode select wp-admin BulletProof Mode Disabled.', 'bulletproof-security').'<br><br><strong>'.__('Zip File Download Fix (Incapsula, Proxy, Other Cause):', 'bulletproof-security').'</strong><br>'.__('This option should only be set to On if you are seeing a 403 error and/or unable to download these Zip files: Custom Code Export Zip file, Login Security Table Export Zip file or the Setup Wizard Root htaccess file backup Zip file. The Setup Wizard Root htaccess file backup Zip file link is only displayed if BPS detects that your current Root htaccess file is not a BPS Root htaccess file. If you are still unable to download zip files after setting this option to On then you will need to whitelist your Proxy IP address in the Plugin Firewall Whitelist by Hostname (domain name) and IP Address tool under the Plugin Firewall Additional Whitelist Tools accordion tab. If that does not work then you will need to deactivate the Plugin Firewall temporarily, download the zip file and then activate the Plugin Firewall again.', 'bulletproof-security').'<br><br><strong>'.__('Network|Multisite Sitewide Login Security Settings', 'bulletproof-security').'</strong><br>'.__('This option is for Network|Multisite sites only. This is an independent option Form that creates and saves Login Security DB option settings for all Network sites when you click the Save Network LSM Options Sitewide button. If Login Security option settings have already been setup and saved for any Network site then those Login Security option settings will NOT be changed. If Login Security options settings have NOT already been setup and saved for any Network site then those Login Security option settings will be created and saved with these default settings: Max Login Attempts: 3, Automatic Lockout Time: 60, Manual Lockout Time: 60, Max DB Rows To Show: blank show all rows, Turn On|Turn Off: Turn On Login Security, Logging Options: Log Only Account Lockouts, Error Messages: Standard WP Login Errors, Attempts Remaining: Show Login Attempts Remaining, Password Reset: Enable Password Reset, Sort DB Rows: Ascending - Show Oldest Login First.', 'bulletproof-security').'<br><br><strong>'.__('Network|Multisite Sitewide JTC-Lite Settings', 'bulletproof-security').'</strong><br>'.__('This option is for Network|Multisite sites only. This is an independent option Form that creates and saves JTC-Lite DB option settings for all Network sites when you click the Save Network JTC Options Sitewide button. If JTC option settings have already been setup and saved for any Network site then those JTC option settings will not be changed. If JTC options settings have not already been setup and saved for any Network site then those JTC option settings will be created and saved with these default settings: JTC CAPTCHA: jtc, JTC ToolTip: Type/Enter: jtc, JTC Title|Text: Hover or click the text box below, Enable|Disable JTC Anti-Spam For These Forms: Login Form checkbox is checked and will display the JTC CAPTCHA text box on the Login Form.', 'bulletproof-security');
1121
  echo $dialog_text;
1122
  ?>
1123
 
@@ -1139,6 +1131,18 @@ bpsSetupWizardPrechecks();
1139
  <input type="submit" name="Submit-AutoFix" class="button bps-button" style="margin:10px 0px 20px 0px;width:202px;height:auto;white-space:normal" value="<?php esc_attr_e('Save AutoFix Option', 'bulletproof-security') ?>" />
1140
  </form>
1141
 
 
 
 
 
 
 
 
 
 
 
 
 
1142
  <form name="SetupWizardGDMW" action="options.php#bps-tabs-2" method="post">
1143
  <?php settings_fields('bulletproof_security_options_GDMW'); ?>
1144
  <?php $GDMWoptions = get_option('bulletproof_security_options_GDMW'); ?>
@@ -1431,7 +1435,7 @@ if ( isset( $_POST['Submit-Net-JTC'] ) && current_user_can('manage_options') ) {
1431
 
1432
  </div>
1433
 
1434
- <div id="AITpro-link">BulletProof Security <?php echo BULLETPROOF_VERSION; echo @$vcheck_options['bps_vcheck']; ?> Plugin by <a href="https://forum.ait-pro.com/" target="_blank" title="AITpro Website Security">AITpro Website Security</a>
1435
  </div>
1436
  </div>
1437
  <style>
109
 
110
  $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
111
  $bpsSpacePop = '-------------------------------------------------------------';
 
112
 
113
  if ( isset( $_POST['Submit-Setup-Wizard'] ) ) {
114
  require_once( WP_PLUGIN_DIR . '/bulletproof-security/admin/wizard/wizard-functions.php' );
362
  $failTextEnd = '</strong></font><br>';
363
  $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
364
 
 
 
 
 
 
 
 
 
365
  // 2.9: BPS plugin 30 day review/rating request Dismiss Notice
366
  $bps_rate_options = 'bulletproof_security_options_rate_free';
367
  $gmt_offset = get_option( 'gmt_offset' ) * 3600;
1105
 
1106
  <strong><a href="https://forum.ait-pro.com/forums/topic/gdmw/" title="Go Daddy Managed WordPress Hosting (GDMW)" target="_blank"><?php _e('Go Daddy Managed WordPress Hosting (GDMW)', 'bulletproof-security'); ?></a></strong><br />
1107
  <strong><a href="https://forum.ait-pro.com/forums/topic/htaccess-files-disabled-setup-wizard-enable-disable-htaccess-files/" title="Enable|Disable htaccess Files" target="_blank"><?php _e('Enable|Disable htaccess Files', 'bulletproof-security'); ?></a></strong><br />
1108
+ <strong><a href="https://forum.ait-pro.com/forums/topic/setup-wizard-autofix/" title="AutoFix" target="_blank"><?php _e('AutoFix Forum Topic', 'bulletproof-security'); ?></a></strong><br />
1109
+ <strong><a href="https://forum.ait-pro.com/forums/topic/bps-gdpr-compliance/" title="GDPR Compliance" target="_blank"><?php _e('GDPR Compliance Forum Topic', 'bulletproof-security'); ?></a></strong><br /><br />
1110
 
1111
  <?php
1112
+ $dialog_text = '<strong>'.__('AutoFix (AutoWhitelist|AutoSetup|AutoCleanup)', 'bulletproof-security').'</strong><br>'.__('Setup Wizard AutoFix is turned On by default. When AutoFix is turned On the Setup Wizard will automatically create htaccess whitelist rules in BPS Custom Code and your Live htaccess files for other plugins and themes that you have installed that require htaccess code whitelist rules. Setup Wizard AutoFix will also automatically setup or cleanup htaccess code in BPS Custom Code for these caching plugins: WP Super Cache, W3 Total Cache, Comet Cache Plugin (free & Pro), WP Fastest Cache Plugin (free & Premium), Endurance Page Cache and WP Rocket. If a problem occurs with AutoFix you can turn On the AutoFix Debugger on the BPS UI|UX Settings page > BPS UI|UX|AutoFix Debug option to check the plugin or theme name and the BPS Custom Code text box where the problem is occurring. You can also turn Off AutoFix and AutoFix will not try to detect or create Custom Code whitelist rules or setup or cleanup caching plugins htaccess code. If a problem does occur with AutoFix turn On the BPS UI|UX|AutoFix Debug option, copy the AutoFix Debug information that is displayed to you and then click the AutoFix Forum Topic link at the top of this Read Me help window and post a forum Reply with your AutoFix Debug information so that we can figure out what the problem is.', 'bulletproof-security').'<br><br><strong>'.__('GDPR Compliance (IP Address Logging On|Off)', 'bulletproof-security').'</strong><br>'.__('The GDPR Compliance option setting is set to Off by default. Choosing the GDPR Compliance On option setting will disable IP address logging in all BPS features that log IP addresses. This plain text will be logged instead of IP addresses: GDPR Compliance On. List of BPS features that log IP addresses: Security Log, Login Security and Maintenance Mode. Note: For simplicity and ease of use this GDPR Compliance Setup Wizard Options setting is the only option setting that needs to be set instead of creating individual option settings in all BPS features that perform IP address logging. For more information about GDPR Compliance click the GDPR Compliance Forum Topic link at the top of this Read Me help window.', 'bulletproof-security').'<br><br><strong>'.__('Go Daddy Managed WordPress Hosting (GDMW):', 'bulletproof-security').'</strong><br>'.__('This option is ONLY for a special type of Go Daddy Hosting account called "Managed WordPress Hosting" and is NOT for regular/standard Go Daddy Hosting account types. Leave the default setting set to No, unless you have a Go Daddy Managed WordPress Hosting account. See the Forum Help Links section above for more information.', 'bulletproof-security').'<br><br><strong>'.__('Enable|Disable htaccess Files:', 'bulletproof-security').'</strong><br>'.__('Before changing this option setting, click the ', 'bulletproof-security').'<strong><font color="blue">'.__('Enable|Disable htaccess Files', 'bulletproof-security').'</font></strong>'.__(' Forum Help Link at the top of this Read Me help window to find out exactly what this option setting does and when it should or should not be used. htaccess Files Disabled: Will disable all BPS htaccess features and files. htaccess Files Enabled: Will enable all BPS htaccess freatures and files.', 'bulletproof-security').'<br><br><strong>'.__('Enable|Disable wp-admin BulletProof Mode', 'bulletproof-security').'</strong><br>'.__('The default setting is already set to: wp-admin BulletProof Mode Enabled. If you would like to disable wp-admin BulletProof Mode select wp-admin BulletProof Mode Disabled.', 'bulletproof-security').'<br><br><strong>'.__('Zip File Download Fix (Incapsula, Proxy, Other Cause):', 'bulletproof-security').'</strong><br>'.__('This option should only be set to On if you are seeing a 403 error and/or unable to download these Zip files: Custom Code Export Zip file, Login Security Table Export Zip file or the Setup Wizard Root htaccess file backup Zip file. The Setup Wizard Root htaccess file backup Zip file link is only displayed if BPS detects that your current Root htaccess file is not a BPS Root htaccess file. If you are still unable to download zip files after setting this option to On then you will need to whitelist your Proxy IP address in the Plugin Firewall Whitelist by Hostname (domain name) and IP Address tool under the Plugin Firewall Additional Whitelist Tools accordion tab. If that does not work then you will need to deactivate the Plugin Firewall temporarily, download the zip file and then activate the Plugin Firewall again.', 'bulletproof-security').'<br><br><strong>'.__('Network|Multisite Sitewide Login Security Settings', 'bulletproof-security').'</strong><br>'.__('This option is for Network|Multisite sites only. This is an independent option Form that creates and saves Login Security DB option settings for all Network sites when you click the Save Network LSM Options Sitewide button. If Login Security option settings have already been setup and saved for any Network site then those Login Security option settings will NOT be changed. If Login Security options settings have NOT already been setup and saved for any Network site then those Login Security option settings will be created and saved with these default settings: Max Login Attempts: 3, Automatic Lockout Time: 60, Manual Lockout Time: 60, Max DB Rows To Show: blank show all rows, Turn On|Turn Off: Turn On Login Security, Logging Options: Log Only Account Lockouts, Error Messages: Standard WP Login Errors, Attempts Remaining: Show Login Attempts Remaining, Password Reset: Enable Password Reset, Sort DB Rows: Ascending - Show Oldest Login First.', 'bulletproof-security').'<br><br><strong>'.__('Network|Multisite Sitewide JTC-Lite Settings', 'bulletproof-security').'</strong><br>'.__('This option is for Network|Multisite sites only. This is an independent option Form that creates and saves JTC-Lite DB option settings for all Network sites when you click the Save Network JTC Options Sitewide button. If JTC option settings have already been setup and saved for any Network site then those JTC option settings will not be changed. If JTC options settings have not already been setup and saved for any Network site then those JTC option settings will be created and saved with these default settings: JTC CAPTCHA: jtc, JTC ToolTip: Type/Enter: jtc, JTC Title|Text: Hover or click the text box below, Enable|Disable JTC Anti-Spam For These Forms: Login Form checkbox is checked and will display the JTC CAPTCHA text box on the Login Form.', 'bulletproof-security');
1113
  echo $dialog_text;
1114
  ?>
1115
 
1131
  <input type="submit" name="Submit-AutoFix" class="button bps-button" style="margin:10px 0px 20px 0px;width:202px;height:auto;white-space:normal" value="<?php esc_attr_e('Save AutoFix Option', 'bulletproof-security') ?>" />
1132
  </form>
1133
 
1134
+ <form name="GDPR" action="options.php#bps-tabs-2" method="post">
1135
+ <?php settings_fields('bulletproof_security_options_gdpr'); ?>
1136
+ <?php $GDPR_Options = get_option('bulletproof_security_options_gdpr'); ?>
1137
+
1138
+ <strong><label for="gdpr"><?php _e('GDPR Compliance (IP Address Logging On|Off):', 'bulletproof-security'); ?></label></strong><br />
1139
+ <select name="bulletproof_security_options_gdpr[bps_gdpr_on_off]" class="form-300" style="margin-top:5px;">
1140
+ <option value="Off" <?php selected('Off', $GDPR_Options['bps_gdpr_on_off']); ?>><?php _e('GDPR Compliance Off', 'bulletproof-security'); ?></option>
1141
+ <option value="On" <?php selected('On', $GDPR_Options['bps_gdpr_on_off']); ?>><?php _e('GDPR Compliance On', 'bulletproof-security'); ?></option>
1142
+ </select><br />
1143
+ <input type="submit" name="Submit-GDPR" class="button bps-button" style="margin:10px 0px 20px 0px;width:202px;height:auto;white-space:normal" value="<?php esc_attr_e('Save GDPR Option', 'bulletproof-security') ?>" />
1144
+ </form>
1145
+
1146
  <form name="SetupWizardGDMW" action="options.php#bps-tabs-2" method="post">
1147
  <?php settings_fields('bulletproof_security_options_GDMW'); ?>
1148
  <?php $GDMWoptions = get_option('bulletproof_security_options_GDMW'); ?>
1435
 
1436
  </div>
1437
 
1438
+ <div id="AITpro-link">BulletProof Security <?php echo BULLETPROOF_VERSION; ?> Plugin by <a href="https://forum.ait-pro.com/" target="_blank" title="AITpro Website Security">AITpro Website Security</a>
1439
  </div>
1440
  </div>
1441
  <style>
bulletproof-security.php CHANGED
@@ -5,7 +5,7 @@ Plugin URI: https://forum.ait-pro.com/read-me-first/
5
  Text Domain: bulletproof-security
6
  Domain Path: /languages/
7
  Description: <strong>Feature Highlights:</strong> Setup Wizard &bull; MScan Malware Scanner &bull; .htaccess Website Security Protection (Firewalls) &bull; Security Logging|HTTP Error Logging &bull; DB Backup &bull; DB Table Prefix Changer &bull; Login Security & Monitoring &bull; JTC-Lite Login Form Bot Lockout Protection &bull; Idle Session Logout (ISL) &bull; Auth Cookie Expiration (ACE) &bull; UI Theme Skin Changer &bull; System Info: Extensive System, Server and Security Status Information &bull; FrontEnd|BackEnd Maintenance Mode
8
- Version: 3.0
9
  Author: AITpro Website Security
10
  Author URI: https://forum.ait-pro.com/read-me-first/
11
  */
@@ -28,14 +28,34 @@ Author URI: https://forum.ait-pro.com/read-me-first/
28
  */
29
 
30
  // BPS variables
31
- define( 'BULLETPROOF_VERSION', '3.0' );
32
- $bps_last_version = '2.9';
33
- $bps_version = '3.0';
34
  $aitpro_bullet = '<img src="'.plugins_url('/bulletproof-security/admin/images/aitpro-bullet.png').'" style="padding:0px 3px 0px 3px;" />';
35
  // Top div & bottom div
36
  $bps_topDiv = '<div id="message" class="updated" style="background-color:#dfecf2;border:1px solid #999;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><p>';
37
  $bps_bottomDiv = '</p></div>';
38
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  // Load BPS Global class - not doing anything with this Class in BPS Free
40
  //require_once( WP_PLUGIN_DIR . '/bulletproof-security/includes/class.php' );
41
 
@@ -114,14 +134,14 @@ add_filter( 'network_admin_plugin_action_links', 'bps_plugin_actlinks', 10, 2 );
114
  // Add links on plugins page
115
  function bps_plugin_extra_links( $links, $file ) {
116
  static $this_plugin;
117
- $vcheck_options = get_option('bulletproof_security_options_vcheck');
118
  if ( ! current_user_can('install_plugins') )
119
  return $links;
120
  if ( ! $this_plugin )
121
  $this_plugin = plugin_basename(__FILE__);
122
  if ( $file == $this_plugin ) {
123
  $links[] = '<a href="https://forum.ait-pro.com/forums/topic/plugin-conflicts-actively-blocked-plugins-plugin-compatibility/" title="BulletProof Security Forum" target="_blank">'.__('Forum - Support', 'bulleproof-security').'</a>';
124
- $links[] = '<a href="https://affiliates.ait-pro.com/po/" title="Upgrade to BPS Pro" target="_blank">'.__('Upgrade', 'bulleproof-security').'</a>'.$vcheck_options['bps_vcheck'];
125
  $links[] = '<a href="https://www.ait-pro.com/bps-features/" title="BPS Pro Features" target="_blank">'.__('BPS Pro Features', 'bulleproof-security').'</a>';
126
  }
127
  return $links;
5
  Text Domain: bulletproof-security
6
  Domain Path: /languages/
7
  Description: <strong>Feature Highlights:</strong> Setup Wizard &bull; MScan Malware Scanner &bull; .htaccess Website Security Protection (Firewalls) &bull; Security Logging|HTTP Error Logging &bull; DB Backup &bull; DB Table Prefix Changer &bull; Login Security & Monitoring &bull; JTC-Lite Login Form Bot Lockout Protection &bull; Idle Session Logout (ISL) &bull; Auth Cookie Expiration (ACE) &bull; UI Theme Skin Changer &bull; System Info: Extensive System, Server and Security Status Information &bull; FrontEnd|BackEnd Maintenance Mode
8
+ Version: 3.1
9
  Author: AITpro Website Security
10
  Author URI: https://forum.ait-pro.com/read-me-first/
11
  */
28
  */
29
 
30
  // BPS variables
31
+ define( 'BULLETPROOF_VERSION', '3.1' );
32
+ $bps_last_version = '3.0';
33
+ $bps_version = '3.1';
34
  $aitpro_bullet = '<img src="'.plugins_url('/bulletproof-security/admin/images/aitpro-bullet.png').'" style="padding:0px 3px 0px 3px;" />';
35
  // Top div & bottom div
36
  $bps_topDiv = '<div id="message" class="updated" style="background-color:#dfecf2;border:1px solid #999;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><p>';
37
  $bps_bottomDiv = '</p></div>';
38
 
39
+ // Setup Wizard Options: GDPR Compliance Global Variables
40
+ $GDPR_Options = get_option('bulletproof_security_options_gdpr');
41
+
42
+ if ( $GDPR_Options['bps_gdpr_on_off'] != 'On' ) {
43
+
44
+ $bpsPro_remote_addr = $_SERVER['REMOTE_ADDR'];
45
+ $bpsPro_http_client_ip = $_SERVER['HTTP_CLIENT_IP'];
46
+ $bpsPro_http_forwarded = $_SERVER['HTTP_FORWARDED'];
47
+ $bpsPro_http_x_forwarded_for = $_SERVER['HTTP_X_FORWARDED_FOR'];
48
+ $bpsPro_http_x_cluster_client_ip = $_SERVER['HTTP_X_CLUSTER_CLIENT_IP'];
49
+
50
+ } else {
51
+
52
+ $bpsPro_remote_addr = 'GDPR Compliance On';
53
+ $bpsPro_http_client_ip = 'GDPR Compliance On';
54
+ $bpsPro_http_forwarded = 'GDPR Compliance On';
55
+ $bpsPro_http_x_forwarded_for = 'GDPR Compliance On';
56
+ $bpsPro_http_x_cluster_client_ip = 'GDPR Compliance On';
57
+ }
58
+
59
  // Load BPS Global class - not doing anything with this Class in BPS Free
60
  //require_once( WP_PLUGIN_DIR . '/bulletproof-security/includes/class.php' );
61
 
134
  // Add links on plugins page
135
  function bps_plugin_extra_links( $links, $file ) {
136
  static $this_plugin;
137
+
138
  if ( ! current_user_can('install_plugins') )
139
  return $links;
140
  if ( ! $this_plugin )
141
  $this_plugin = plugin_basename(__FILE__);
142
  if ( $file == $this_plugin ) {
143
  $links[] = '<a href="https://forum.ait-pro.com/forums/topic/plugin-conflicts-actively-blocked-plugins-plugin-compatibility/" title="BulletProof Security Forum" target="_blank">'.__('Forum - Support', 'bulleproof-security').'</a>';
144
+ $links[] = '<a href="https://affiliates.ait-pro.com/po/" title="Upgrade to BPS Pro" target="_blank">'.__('Upgrade', 'bulleproof-security').'</a>';
145
  $links[] = '<a href="https://www.ait-pro.com/bps-features/" title="BPS Pro Features" target="_blank">'.__('BPS Pro Features', 'bulleproof-security').'</a>';
146
  }
147
  return $links;
includes/general-functions.php CHANGED
@@ -1005,14 +1005,6 @@ function bpsPro_new_version_db_options_files_autoupdate() {
1005
  if ( current_user_can('manage_options') ) {
1006
  global $bps_version, $bps_last_version, $wp_version, $wpdb, $aitpro_bullet, $pagenow, $current_user;
1007
 
1008
- // 3.0: VCheck
1009
- $bps_vcheck_master = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-vcheck.php';
1010
-
1011
- if ( file_exists($bps_vcheck_master) ) {
1012
- require_once ( WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-vcheck.php' );
1013
- unlink($bps_vcheck_master);
1014
- }
1015
-
1016
  // 2.9: BPS plugin 30 day review/rating request Dismiss Notice
1017
  $bps_rate_options = 'bulletproof_security_options_rate_free';
1018
  $gmt_offset = get_option( 'gmt_offset' ) * 3600;
1005
  if ( current_user_can('manage_options') ) {
1006
  global $bps_version, $bps_last_version, $wp_version, $wpdb, $aitpro_bullet, $pagenow, $current_user;
1007
 
 
 
 
 
 
 
 
 
1008
  // 2.9: BPS plugin 30 day review/rating request Dismiss Notice
1009
  $bps_rate_options = 'bulletproof_security_options_rate_free';
1010
  $gmt_offset = get_option( 'gmt_offset' ) * 3600;
includes/hud-autofix-whitelist.php CHANGED
@@ -513,7 +513,7 @@ function bpsPro_HUD_autofix_whitelist_check() {
513
  }
514
  if ( $sctocr_active == 1 || is_plugin_active_for_network( $sctocr ) ) {
515
  if ( ! preg_match( $marker2, $bps_customcode_bpsqse ) || ! preg_match( $marker3, $bps_customcode_bpsqse ) || ! preg_match( $marker4, $bps_customcode_bpsqse ) ) {
516
- $autofix_message = bpsPro_autofix_message($autofix_message);
517
  $debug_BPSQSE .= __('CC Root Text Box 12: Subscribe To Comments Reloaded Plugin', 'bulletproof-security').'<br>';
518
  }
519
  }
513
  }
514
  if ( $sctocr_active == 1 || is_plugin_active_for_network( $sctocr ) ) {
515
  if ( ! preg_match( $marker2, $bps_customcode_bpsqse ) || ! preg_match( $marker3, $bps_customcode_bpsqse ) || ! preg_match( $marker4, $bps_customcode_bpsqse ) ) {
516
+ $autofix_message = 1;
517
  $debug_BPSQSE .= __('CC Root Text Box 12: Subscribe To Comments Reloaded Plugin', 'bulletproof-security').'<br>';
518
  }
519
  }
includes/hud-dismiss-functions.php CHANGED
@@ -28,6 +28,7 @@ function bps_HUD_WP_Dashboard() {
28
  bpsPro_hud_jtc_lite_notice();
29
  bpsPro_hud_rate_notice();
30
  bpsPro_hud_mod_security_check();
 
31
  //bps_hud_check_public_username();
32
  }
33
  }
@@ -807,5 +808,36 @@ $user_id = $current_user->ID;
807
  }
808
  }
809
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
810
 
811
  ?>
28
  bpsPro_hud_jtc_lite_notice();
29
  bpsPro_hud_rate_notice();
30
  bpsPro_hud_mod_security_check();
31
+ bpsPro_hud_gdpr_compliance();
32
  //bps_hud_check_public_username();
33
  }
34
  }
808
  }
809
  }
810
 
811
+ // Heads Up Display w/ Dismiss Notice - GDPR Compliance Dismiss Notice. Displays a link to a help forum topic.
812
+ function bpsPro_hud_gdpr_compliance() {
813
+
814
+ global $current_user;
815
+ $user_id = $current_user->ID;
816
+
817
+ if ( ! get_user_meta($user_id, 'bpsPro_ignore_gdpr_compliance_notice')) {
818
+
819
+ if ( esc_html($_SERVER['QUERY_STRING']) == '' && basename(esc_html($_SERVER['REQUEST_URI'])) != 'wp-admin' ) {
820
+ $bps_base = basename(esc_html($_SERVER['REQUEST_URI'])) . '?';
821
+ } elseif ( esc_html($_SERVER['QUERY_STRING']) == '' && basename(esc_html($_SERVER['REQUEST_URI'])) == 'wp-admin' ) {
822
+ $bps_base = basename( str_replace( 'wp-admin', 'index.php?', esc_html($_SERVER['REQUEST_URI'])));
823
+ } else {
824
+ $bps_base = str_replace( admin_url(), '', esc_html($_SERVER['REQUEST_URI']) ) . '&';
825
+ }
826
+
827
+ $text = '<div class="update-nag" style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:2px 5px;margin-top:2px;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><font color="blue">'.__('BPS GDPR Compliance Notice', 'bulletproof-security').'</font><br>'.__('A new Setup Wizard Option has been created which allows you to turn off all IP address logging in BPS to make your website GDPR Compliant.', 'bulletproof-security').'<br>'.__('Click this ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php#bps-tabs-2' ).'">'.__('GDPR Compliance Setup Wizard Option link', 'bulletproof-security').'</a>. '.__('Choose the GDPR Compliance On setting.', 'bulletproof-security').'<br>'.__('For more information about GDPR Compliance click this ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/bps-gdpr-compliance/" target="_blank" title="GDPR Compliance">'.__('GDPR Compliance Forum Topic link', 'bulletproof-security').'</a>.<br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the BPS Custom Code page.', 'bulletproof-security').'<br><div style="float:left;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bpsPro_gdpr_compliance_nag_ignore=0'.'" style="text-decoration:none;font-weight:bold;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
828
+ echo $text;
829
+ }
830
+ }
831
+
832
+ add_action('admin_init', 'bpsPro_gdpr_compliance_nag_ignore');
833
+
834
+ function bpsPro_gdpr_compliance_nag_ignore() {
835
+ global $current_user;
836
+ $user_id = $current_user->ID;
837
+
838
+ if ( isset($_GET['bpsPro_gdpr_compliance_nag_ignore']) && '0' == $_GET['bpsPro_gdpr_compliance_nag_ignore'] ) {
839
+ add_user_meta($user_id, 'bpsPro_ignore_gdpr_compliance_notice', 'true', true);
840
+ }
841
+ }
842
 
843
  ?>
includes/login-security.php CHANGED
@@ -75,7 +75,6 @@ $BPSoptions = get_option('bulletproof_security_options_login_security');
75
  $BPSoptionsJTC = get_option('bulletproof_security_options_login_security_jtc');
76
  $options = get_option('bulletproof_security_options_email');
77
  $bpspro_login_table = $wpdb->prefix . "bpspro_login_security";
78
- $ip_address = esc_html( $_SERVER['REMOTE_ADDR'] );
79
  $hostname = esc_html( @gethostbyaddr($_SERVER['REMOTE_ADDR'] ) );
80
  $request_uri = esc_html( $_SERVER['REQUEST_URI'] );
81
  $login_time = time();
@@ -92,6 +91,15 @@ $timestamp = date_i18n(get_option('date_format'), strtotime("11/15-1976")) . ' -
92
  $headers = array( 'Content-Type: text/html; charset=UTF-8', 'From: ' . $bps_email_from, 'Cc: ' . $bps_email_cc, 'Bcc: ' . $bps_email_bcc );
93
  $subject = " BPS Login Security Alert - $timestamp ";
94
 
 
 
 
 
 
 
 
 
 
95
  /*
96
  ***************************************************************
97
  // Log All Account Logins for valid Users - Good and Bad Logins
75
  $BPSoptionsJTC = get_option('bulletproof_security_options_login_security_jtc');
76
  $options = get_option('bulletproof_security_options_email');
77
  $bpspro_login_table = $wpdb->prefix . "bpspro_login_security";
 
78
  $hostname = esc_html( @gethostbyaddr($_SERVER['REMOTE_ADDR'] ) );
79
  $request_uri = esc_html( $_SERVER['REQUEST_URI'] );
80
  $login_time = time();
91
  $headers = array( 'Content-Type: text/html; charset=UTF-8', 'From: ' . $bps_email_from, 'Cc: ' . $bps_email_cc, 'Bcc: ' . $bps_email_bcc );
92
  $subject = " BPS Login Security Alert - $timestamp ";
93
 
94
+ // 3.1: New GDPR conditional code for IP addresses logged in the WP DB
95
+ $GDPR_Options = get_option('bulletproof_security_options_gdpr');
96
+
97
+ if ( $GDPR_Options['bps_gdpr_on_off'] != 'On' ) {
98
+ $ip_address = esc_html( $_SERVER['REMOTE_ADDR'] );
99
+ } else {
100
+ $ip_address = 'GDPR Compliance On';
101
+ }
102
+
103
  /*
104
  ***************************************************************
105
  // Log All Account Logins for valid Users - Good and Bad Logins
includes/mscan-ajax-functions.php CHANGED
@@ -408,9 +408,9 @@ global $wp_version, $wpdb;
408
  $image_files_time_math = $total_image_files / 34;
409
  $image_files_time = round($image_files_time_math);
410
 
411
- $rows = 0;
412
  $size = 0;
413
- $result = $wpdb->get_results( $wpdb->prepare( "SHOW TABLE STATUS WHERE Rows >= %d", $rows ) );
414
 
415
  foreach ( $result as $data ) {
416
  $size += $data->Data_length + $data->Index_length;
@@ -1295,8 +1295,8 @@ global $wp_version, $wpdb;
1295
  fwrite( $handle, "Scanning Database: Suspicious code pattern matches:\r\n" );
1296
 
1297
  $db_code_match = 0;
1298
- $DBTables = 0;
1299
- $getDBTables = $wpdb->get_results( $wpdb->prepare( "SHOW TABLE STATUS WHERE Rows >= %d", $DBTables ) );
1300
 
1301
  ## 13.4.1: MScan Database Scan search patterns for DB Query below are now in file: /wp-content/bps-backup/mscan/mscan-pattern-match.php
1302
 
408
  $image_files_time_math = $total_image_files / 34;
409
  $image_files_time = round($image_files_time_math);
410
 
411
+ $rows = '';
412
  $size = 0;
413
+ $result = $wpdb->get_results( $wpdb->prepare( "SHOW TABLE STATUS WHERE Name != %s", $rows ) );
414
 
415
  foreach ( $result as $data ) {
416
  $size += $data->Data_length + $data->Index_length;
1295
  fwrite( $handle, "Scanning Database: Suspicious code pattern matches:\r\n" );
1296
 
1297
  $db_code_match = 0;
1298
+ $DBTables = '';
1299
+ $getDBTables = $wpdb->get_results( $wpdb->prepare( "SHOW TABLE STATUS WHERE Name != %s", $DBTables ) );
1300
 
1301
  ## 13.4.1: MScan Database Scan search patterns for DB Query below are now in file: /wp-content/bps-backup/mscan/mscan-pattern-match.php
1302
 
isl-logout.php CHANGED
@@ -27,7 +27,7 @@ require( ABSPATH . WPINC . '/pluggable.php' );
27
  $timestamp = date_i18n(get_option('date_format'), strtotime("11/15-1976")) . ' - ' . date_i18n(get_option('time_format'), $timeNow + $gmt_offset);
28
  }
29
 
30
- @$log_contents = "\r\n" . '[Idle Session Logout: ' . $timestamp . ']' . "\r\n" . 'BPS: ' . $bps_version . "\r\n" . 'WP: ' . $wp_version . "\r\n" . 'REMOTE_ADDR: '.$_SERVER['REMOTE_ADDR']."\r\n" . 'Host Name: ' . $hostname . "\r\n" . 'SERVER_PROTOCOL: '.$_SERVER['SERVER_PROTOCOL']."\r\n" . 'HTTP_CLIENT_IP: '.$_SERVER['HTTP_CLIENT_IP']."\r\n" . 'HTTP_FORWARDED: '.$_SERVER['HTTP_FORWARDED']."\r\n" . 'HTTP_X_FORWARDED_FOR: '.$_SERVER['HTTP_X_FORWARDED_FOR']."\r\n" . 'HTTP_X_CLUSTER_CLIENT_IP: '.$_SERVER['HTTP_X_CLUSTER_CLIENT_IP']."\r\n" . 'REQUEST_METHOD: '.$_SERVER['REQUEST_METHOD']."\r\n" . 'HTTP_REFERER: '.$_SERVER['HTTP_REFERER']."\r\n" . 'REQUEST_URI: '.$_SERVER['REQUEST_URI']."\r\n" . 'QUERY_STRING: '.$query_string."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
31
 
32
  if ( is_writable( $bpsProLog ) ) {
33
 
27
  $timestamp = date_i18n(get_option('date_format'), strtotime("11/15-1976")) . ' - ' . date_i18n(get_option('time_format'), $timeNow + $gmt_offset);
28
  }
29
 
30
+ @$log_contents = "\r\n" . '[Idle Session Logout: ' . $timestamp . ']' . "\r\n" . 'BPS: ' . $bps_version . "\r\n" . 'WP: ' . $wp_version . "\r\n" . 'REMOTE_ADDR: '.$bpsPro_remote_addr . "\r\n" . 'Host Name: ' . $hostname . "\r\n" . 'SERVER_PROTOCOL: ' . $_SERVER['SERVER_PROTOCOL'] . "\r\n" . 'HTTP_CLIENT_IP: ' . $bpsPro_http_client_ip . "\r\n" . 'HTTP_FORWARDED: ' . $bpsPro_http_forwarded . "\r\n" . 'HTTP_X_FORWARDED_FOR: ' . $bpsPro_http_x_forwarded_for . "\r\n" . 'HTTP_X_CLUSTER_CLIENT_IP: ' . $bpsPro_http_x_cluster_client_ip."\r\n" . 'REQUEST_METHOD: '.$_SERVER['REQUEST_METHOD']."\r\n" . 'HTTP_REFERER: '.$_SERVER['HTTP_REFERER']."\r\n" . 'REQUEST_URI: '.$_SERVER['REQUEST_URI']."\r\n" . 'QUERY_STRING: '.$query_string."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
31
 
32
  if ( is_writable( $bpsProLog ) ) {
33
 
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://wordpress.org/support/view/plugin-reviews/bulletproof-secur
4
  Tags: security, secure, malware scanner, login security, firewall, security plugin, wordpress security, login, bruteforce, backup, exploit, infection, protection, virus, anti-virus, logout, spam, anti-spam
5
  Requires at least: 3.8
6
  Tested up to: 4.9
7
- Stable tag: 3.0
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -176,6 +176,10 @@ Security plugin features and frequently asked questions see the FAQ section belo
176
  * Language Packs: <a href="https://translate.wordpress.org/projects/wp-plugins/bulletproof-security" title="Translate BulletProof Security">Translate BulletProof Security</a>
177
  * Bonus Tip: If you use the Google Chrome Browser you can right mouse click in plugin pages and then click on Translate to... To translate plugin text into your Language.
178
 
 
 
 
 
179
  = BulletProof Security Bonus Custom Code =
180
 
181
  * <a href="https://forum.ait-pro.com/forums/topic/protect-login-page-from-brute-force-login-attacks/" title="Brute Force Login Protection .htaccess code" rel="nofollow" target="_blank">Brute Force Login Protection .htaccess Code</a>
4
  Tags: security, secure, malware scanner, login security, firewall, security plugin, wordpress security, login, bruteforce, backup, exploit, infection, protection, virus, anti-virus, logout, spam, anti-spam
5
  Requires at least: 3.8
6
  Tested up to: 4.9
7
+ Stable tag: 3.1
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
176
  * Language Packs: <a href="https://translate.wordpress.org/projects/wp-plugins/bulletproof-security" title="Translate BulletProof Security">Translate BulletProof Security</a>
177
  * Bonus Tip: If you use the Google Chrome Browser you can right mouse click in plugin pages and then click on Translate to... To translate plugin text into your Language.
178
 
179
+ = GDPR Compliance =
180
+ * BPS has a GDPR Compliance Setup Wizard Options setting, which allows someone to turn IP address logging On or Off throughout all BPS plugin features by choosing the GDPR Compliance On option setting on the Setup Wizard Options page: BPS Features affected: Security Logging, Login Security Logging, and Maintenance Mode Logging. Note: For simplicity and ease of use there is only one option setting that needs to be set instead of creating individual option settings in all BPS features that perform IP address logging.
181
+ * <a href="https://forum.ait-pro.com/forums/topic/bps-gdpr-compliance/" title="BPS GDPR Compliance Forum Topic" rel="nofollow" target="_blank">BPS GDPR Compliance Forum Topic</a>
182
+
183
  = BulletProof Security Bonus Custom Code =
184
 
185
  * <a href="https://forum.ait-pro.com/forums/topic/protect-login-page-from-brute-force-login-attacks/" title="Brute Force Login Protection .htaccess code" rel="nofollow" target="_blank">Brute Force Login Protection .htaccess Code</a>