BulletProof Security - Version 2.0

Version Description

Download this release

Release Info

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

Code changes from version 1.1 to 2.0

400.php CHANGED
@@ -63,6 +63,8 @@ $hostname = @gethostbyaddr($_SERVER['REMOTE_ADDR']);
63
  $timeNow = time();
64
  $gmt_offset = get_option( 'gmt_offset' ) * 3600;
65
 
 
 
66
  if ( ! get_option( 'gmt_offset' ) ) {
67
  $timestamp = date("F j, Y g:i a", time() );
68
  } else {
@@ -74,7 +76,7 @@ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
74
 
75
  if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
76
 
77
- @$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: '.$_SERVER['QUERY_STRING']."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
78
 
79
  if ( is_writable( $bpsProLog ) ) {
80
 
@@ -92,7 +94,7 @@ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
92
 
93
  if ( $_SERVER['REQUEST_METHOD'] != 'POST' ) {
94
 
95
- @$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: '.$_SERVER['QUERY_STRING']."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
96
 
97
  if ( is_writable( $bpsProLog ) ) {
98
 
63
  $timeNow = time();
64
  $gmt_offset = get_option( 'gmt_offset' ) * 3600;
65
 
66
+ $query_string = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY);
67
+
68
  if ( ! get_option( 'gmt_offset' ) ) {
69
  $timestamp = date("F j, Y g:i a", time() );
70
  } else {
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
 
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
 
403.php CHANGED
@@ -65,11 +65,18 @@ $timeNow = time();
65
  $gmt_offset = get_option( 'gmt_offset' ) * 3600;
66
 
67
  $post_limit = get_option('bulletproof_security_options_sec_log_post_limit');
 
68
 
69
- if ( $post_limit['bps_security_log_post_limit'] == '1' ) {
70
- $request_body = file_get_contents( 'php://input', NULL, NULL, 0, 500 );
 
71
  } else {
72
- $request_body = file_get_contents( 'php://input', NULL, NULL, 0, 250000 ); // roughly 250KB Max Limit
 
 
 
 
 
73
  }
74
 
75
  if ( ! get_option( 'gmt_offset' ) ) {
@@ -84,6 +91,10 @@ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
84
  // .52.7: Request Body condition added
85
  if ( ! empty($request_body) ) {
86
 
 
 
 
 
87
  if ( preg_match_all('/(.*)\/plugins\/(.*)\.js|(.*)\/plugins\/(.*)\.json|(.*)\/plugins\/(.*)\.php|(.*)\/plugins\/(.*)\.swf/', $_SERVER['REQUEST_URI'], $matches ) ) {
88
  $event = 'PSBR-HPRA';
89
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
@@ -97,7 +108,7 @@ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
97
  $solution = 'N/A - Hacker/Spammer Blocked/Forbidden';
98
  }
99
 
100
- @$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: '.$_SERVER['QUERY_STRING']."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT'] . "\r\n" . 'REQUEST BODY: ' . $request_body . "\r\n";
101
 
102
  if ( is_writable( $bpsProLog ) ) {
103
 
@@ -131,7 +142,7 @@ if ( @!preg_match('/BPSUserAgentPlaceHolder/', $_SERVER['HTTP_USER_AGENT']) ) {
131
  $solution = 'N/A - Hacker/Spammer Blocked/Forbidden';
132
  }
133
 
134
- @$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: '.$_SERVER['QUERY_STRING']."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
135
 
136
  if ( is_writable( $bpsProLog ) ) {
137
 
65
  $gmt_offset = get_option( 'gmt_offset' ) * 3600;
66
 
67
  $post_limit = get_option('bulletproof_security_options_sec_log_post_limit');
68
+ $query_string = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY);
69
 
70
+ if ( $post_limit['bps_security_log_post_none'] == '1' ) {
71
+ $request_body = file_get_contents( 'php://input', NULL, NULL, 0, 5 );
72
+
73
  } else {
74
+
75
+ if ( $post_limit['bps_security_log_post_limit'] == '1' ) {
76
+ $request_body = file_get_contents( 'php://input', NULL, NULL, 0, 500 );
77
+ } else {
78
+ $request_body = file_get_contents( 'php://input', NULL, NULL, 0, 250000 ); // roughly 250KB Max Limit
79
+ }
80
  }
81
 
82
  if ( ! get_option( 'gmt_offset' ) ) {
91
  // .52.7: Request Body condition added
92
  if ( ! empty($request_body) ) {
93
 
94
+ if ( $post_limit['bps_security_log_post_none'] == '1' ) {
95
+ $request_body = 'BPS Security Log option set to: Do Not Log POST Request Body Data';
96
+ }
97
+
98
  if ( preg_match_all('/(.*)\/plugins\/(.*)\.js|(.*)\/plugins\/(.*)\.json|(.*)\/plugins\/(.*)\.php|(.*)\/plugins\/(.*)\.swf/', $_SERVER['REQUEST_URI'], $matches ) ) {
99
  $event = 'PSBR-HPRA';
100
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
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
  $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
 
404.php CHANGED
@@ -10,11 +10,18 @@ $timeNow = time();
10
  $gmt_offset = get_option( 'gmt_offset' ) * 3600;
11
 
12
  $post_limit = get_option('bulletproof_security_options_sec_log_post_limit');
 
13
 
14
- if ( $post_limit['bps_security_log_post_limit'] == '1' ) {
15
- $request_body = file_get_contents( 'php://input', NULL, NULL, 0, 500 );
 
16
  } else {
17
- $request_body = file_get_contents( 'php://input', NULL, NULL, 0, 250000 ); // roughly 250KB Max Limit
 
 
 
 
 
18
  }
19
 
20
  if ( ! get_option( 'gmt_offset' ) ) {
@@ -33,7 +40,11 @@ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
33
  // .52.7: Request Body condition added
34
  if ( ! empty($request_body) ) {
35
 
36
- $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: '.$_SERVER['QUERY_STRING']."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT'] . "\r\n" . 'REQUEST BODY: ' . $request_body . "\r\n";
 
 
 
 
37
 
38
  if ( is_writable( $bpsProLog ) ) {
39
 
@@ -51,7 +62,7 @@ $log_contents = "\r\n" . '[404 POST Not Found Request: ' . $timestamp . ']' . "\
51
 
52
  if ( empty($request_body) ) {
53
 
54
- $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: '.$_SERVER['QUERY_STRING']."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
55
 
56
  if ( is_writable( $bpsProLog ) ) {
57
 
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
 
15
+ if ( $post_limit['bps_security_log_post_none'] == '1' ) {
16
+ $request_body = file_get_contents( 'php://input', NULL, NULL, 0, 5 );
17
+
18
  } else {
19
+
20
+ if ( $post_limit['bps_security_log_post_limit'] == '1' ) {
21
+ $request_body = file_get_contents( 'php://input', NULL, NULL, 0, 500 );
22
+ } else {
23
+ $request_body = file_get_contents( 'php://input', NULL, NULL, 0, 250000 ); // roughly 250KB Max Limit
24
+ }
25
  }
26
 
27
  if ( ! get_option( 'gmt_offset' ) ) {
40
  // .52.7: Request Body condition added
41
  if ( ! empty($request_body) ) {
42
 
43
+ if ( $post_limit['bps_security_log_post_none'] == '1' ) {
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
 
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
 
405.php CHANGED
@@ -67,11 +67,18 @@ $timeNow = time();
67
  $gmt_offset = get_option( 'gmt_offset' ) * 3600;
68
 
69
  $post_limit = get_option('bulletproof_security_options_sec_log_post_limit');
 
70
 
71
- if ( $post_limit['bps_security_log_post_limit'] == '1' ) {
72
- $request_body = file_get_contents( 'php://input', NULL, NULL, 0, 500 );
 
73
  } else {
74
- $request_body = file_get_contents( 'php://input', NULL, NULL, 0, 250000 ); // roughly 250KB Max Limit
 
 
 
 
 
75
  }
76
 
77
  if ( ! get_option( 'gmt_offset' ) ) {
@@ -83,6 +90,10 @@ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
83
  // Note: A HEAD Request should not have a Body, but leaving this code here anyway.
84
  if ( ! empty($request_body) ) {
85
 
 
 
 
 
86
  if ( preg_match_all('/(.*)\/plugins\/(.*)\.js|(.*)\/plugins\/(.*)\.json|(.*)\/plugins\/(.*)\.php|(.*)\/plugins\/(.*)\.swf/', $_SERVER['REQUEST_URI'], $matches ) ) {
87
  $event = 'PSBR-HPRA-HEAD';
88
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
@@ -96,7 +107,7 @@ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
96
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
97
  }
98
 
99
- @$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: ' . $_SERVER['QUERY_STRING'] . "\r\n" . 'HTTP_USER_AGENT: '. $_SERVER['HTTP_USER_AGENT'] . "\r\n" . 'REQUEST BODY: ' . $request_body . "\r\n";
100
 
101
  if ( is_writable( $bpsProLog ) ) {
102
 
@@ -128,7 +139,7 @@ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
128
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
129
  }
130
 
131
- @$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: ' . $_SERVER['QUERY_STRING'] . "\r\n" . 'HTTP_USER_AGENT: ' . $_SERVER['HTTP_USER_AGENT'] . "\r\n";
132
 
133
  if ( is_writable( $bpsProLog ) ) {
134
 
67
  $gmt_offset = get_option( 'gmt_offset' ) * 3600;
68
 
69
  $post_limit = get_option('bulletproof_security_options_sec_log_post_limit');
70
+ $query_string = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY);
71
 
72
+ if ( $post_limit['bps_security_log_post_none'] == '1' ) {
73
+ $request_body = file_get_contents( 'php://input', NULL, NULL, 0, 5 );
74
+
75
  } else {
76
+
77
+ if ( $post_limit['bps_security_log_post_limit'] == '1' ) {
78
+ $request_body = file_get_contents( 'php://input', NULL, NULL, 0, 500 );
79
+ } else {
80
+ $request_body = file_get_contents( 'php://input', NULL, NULL, 0, 250000 ); // roughly 250KB Max Limit
81
+ }
82
  }
83
 
84
  if ( ! get_option( 'gmt_offset' ) ) {
90
  // Note: A HEAD Request should not have a Body, but leaving this code here anyway.
91
  if ( ! empty($request_body) ) {
92
 
93
+ if ( $post_limit['bps_security_log_post_none'] == '1' ) {
94
+ $request_body = 'BPS Security Log option set to: Do Not Log POST Request Body Data';
95
+ }
96
+
97
  if ( preg_match_all('/(.*)\/plugins\/(.*)\.js|(.*)\/plugins\/(.*)\.json|(.*)\/plugins\/(.*)\.php|(.*)\/plugins\/(.*)\.swf/', $_SERVER['REQUEST_URI'], $matches ) ) {
98
  $event = 'PSBR-HPRA-HEAD';
99
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
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
  $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
 
410.php CHANGED
@@ -65,6 +65,8 @@ $hostname = @gethostbyaddr($_SERVER['REMOTE_ADDR']);
65
  $timeNow = time();
66
  $gmt_offset = get_option( 'gmt_offset' ) * 3600;
67
 
 
 
68
  if ( ! get_option( 'gmt_offset' ) ) {
69
  $timestamp = date("F j, Y g:i a", time() );
70
  } else {
@@ -76,7 +78,7 @@ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
76
 
77
  if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
78
 
79
- @$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: '.$_SERVER['QUERY_STRING']."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
80
 
81
  if ( is_writable( $bpsProLog ) ) {
82
 
@@ -94,7 +96,7 @@ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
94
 
95
  if ( $_SERVER['REQUEST_METHOD'] != 'POST' ) {
96
 
97
- @$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: '.$_SERVER['QUERY_STRING']."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
98
 
99
  if ( is_writable( $bpsProLog ) ) {
100
 
65
  $timeNow = time();
66
  $gmt_offset = get_option( 'gmt_offset' ) * 3600;
67
 
68
+ $query_string = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY);
69
+
70
  if ( ! get_option( 'gmt_offset' ) ) {
71
  $timestamp = date("F j, Y g:i a", time() );
72
  } else {
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
 
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
 
admin/core/core-custom-code.php CHANGED
@@ -237,7 +237,7 @@ global $bps_topDiv, $bps_bottomDiv;
237
 
238
  <?php } else { ?>
239
 
240
- <span style="color:#2ea2cc;font-weight:bold;">Example Code: Click the Read Me help button for Custom Code Setup Steps. This example code is a visual reference to show you which root htaccess file code goes in the CUSTOM CODE REQUEST METHODS FILTERED text box. Go to the htaccess File Editor tab page and copy your actual REQUEST METHODS FILTERED root htaccess file code and paste it into the CUSTOM CODE REQUEST METHODS FILTERED text box to the left.</span><pre># REQUEST METHODS FILTERED<br /># If you want to allow HEAD Requests use BPS Custom Code and copy<br /># this entire REQUEST METHODS FILTERED section of code to this BPS Custom Code<br /># text box: CUSTOM CODE REQUEST METHODS FILTERED.<br /># See the CUSTOM CODE REQUEST METHODS FILTERED help text for additional steps.<br />RewriteCond %{REQUEST_METHOD} ^(TRACE|DELETE|TRACK|DEBUG) [NC]<br />RewriteRule ^(.*)$ - [F]<br />RewriteCond %{REQUEST_METHOD} ^(HEAD) [NC]<br />RewriteRule ^(.*)$ <?php echo '/'.$bps_plugin_dir; ?>/bulletproof-security/405.php [L]</pre>
241
 
242
  <?php } ?>
243
 
@@ -272,7 +272,7 @@ global $bps_topDiv, $bps_bottomDiv;
272
 
273
  <tr>
274
  <td class="bps-table_cell_help_custom_code">
275
- <strong><label for="bps-CCode"><?php echo number_format_i18n( 12 ).'. '; _e('CUSTOM CODE WP REWRITE LOOP END: Add WP Rewrite Loop End code here', 'bulletproof-security'); ?> </label></strong><br />
276
  <strong><?php $text = '<font color="#2ea2cc">'.__('This is a Special Custom Code text box that should only be used if the correct WP REWRITE LOOP END code is not being created in your root .htaccess file. See the Read Me help button for more information.', 'bulletproof-security').'</font>'; echo $text; ?></strong><br />
277
  <textarea class="bps-text-area-custom-code" name="bps_customcode_wp_rewrite_end" tabindex="13"><?php echo $CC_Options_root['bps_customcode_wp_rewrite_end']; ?></textarea>
278
 
237
 
238
  <?php } else { ?>
239
 
240
+ <span style="color:#2ea2cc;font-weight:bold;">Example Code: Click the Read Me help button for Custom Code Setup Steps. This example code is a visual reference to show you which root htaccess file code goes in the CUSTOM CODE REQUEST METHODS FILTERED text box. Go to the htaccess File Editor tab page and copy your actual REQUEST METHODS FILTERED root htaccess file code and paste it into the CUSTOM CODE REQUEST METHODS FILTERED text box to the left.</span><pre># REQUEST METHODS FILTERED<br /># If you want to allow HEAD Requests use BPS Custom Code and copy<br /># this entire REQUEST METHODS FILTERED section of code to this BPS Custom Code<br /># text box: CUSTOM CODE REQUEST METHODS FILTERED.<br /># See the CUSTOM CODE REQUEST METHODS FILTERED help text for additional steps.<br />RewriteCond %{REQUEST_METHOD} ^(TRACE|DELETE|TRACK|DEBUG) [NC]<br />RewriteRule ^(.*)$ - [F]<br />RewriteCond %{REQUEST_METHOD} ^(HEAD) [NC]<br />RewriteRule ^(.*)$ <?php echo '/'.$bps_plugin_dir; ?>/bulletproof-security/405.php [R,L]</pre>
241
 
242
  <?php } ?>
243
 
272
 
273
  <tr>
274
  <td class="bps-table_cell_help_custom_code">
275
+ <strong><label for="bps-CCode"><?php echo number_format_i18n( 12 ).'b. '; _e('CUSTOM CODE WP REWRITE LOOP END: Add WP Rewrite Loop End code here', 'bulletproof-security'); ?> </label></strong><br />
276
  <strong><?php $text = '<font color="#2ea2cc">'.__('This is a Special Custom Code text box that should only be used if the correct WP REWRITE LOOP END code is not being created in your root .htaccess file. See the Read Me help button for more information.', 'bulletproof-security').'</font>'; echo $text; ?></strong><br />
277
  <textarea class="bps-text-area-custom-code" name="bps_customcode_wp_rewrite_end" tabindex="13"><?php echo $CC_Options_root['bps_customcode_wp_rewrite_end']; ?></textarea>
278
 
admin/core/core-forms.php CHANGED
@@ -614,30 +614,6 @@ if ( isset( $_POST['bpsResetDismissSubmit'] ) && current_user_can('manage_option
614
  echo $text;
615
  }
616
 
617
- if ( ! delete_user_meta($user_id, 'bps_ignore_BLC_notice') ) {
618
- $text = __('The Broken Link Checker plugin HEAD Request Method filter Dismiss Notice is NOT set. Nothing to reset.', 'bulletproof-security').'<br>';
619
- echo $text;
620
- } else {
621
- $text = '<span style="color:#008000;">'.__('Success! The Broken Link Checker plugin HEAD Request Method filter check is reset.', 'bulletproof-security').'</span><br>';
622
- echo $text;
623
- }
624
-
625
- if ( ! delete_user_meta($user_id, 'bps_ignore_jetpack_notice') ) {
626
- $text = __('The Jetpack XML-RPC Bonus Custom Code & Site Uptime Monitor Notices are NOT set. Nothing to reset.', 'bulletproof-security').'<br>';
627
- echo $text;
628
- } else {
629
- $text = '<span style="color:#008000;">'.__('Success! The Jetpack XML-RPC Bonus Custom Code & Site Uptime Monitor checks are reset.', 'bulletproof-security').'</span><br>';
630
- echo $text;
631
- }
632
-
633
- if ( ! delete_user_meta($user_id, 'bps_ignore_woocommerce_notice') ) {
634
- $text = __('The WooCommerce Notice is NOT set. Nothing to reset.', 'bulletproof-security').'<br>';
635
- echo $text;
636
- } else {
637
- $text = '<span style="color:#008000;">'.__('Success! The WooCommerce Notice is reset.', 'bulletproof-security').'</span><br>';
638
- echo $text;
639
- }
640
-
641
  if ( ! delete_user_meta($user_id, 'bps_ignore_woocommerce_lsm_jtc_notice') ) {
642
  $text = __('The BPS WooCommerce Options Notice: Enable Login Security for WooCommerce is NOT set. Nothing to reset.', 'bulletproof-security').'<br>';
643
  echo $text;
614
  echo $text;
615
  }
616
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
617
  if ( ! delete_user_meta($user_id, 'bps_ignore_woocommerce_lsm_jtc_notice') ) {
618
  $text = __('The BPS WooCommerce Options Notice: Enable Login Security for WooCommerce is NOT set. Nothing to reset.', 'bulletproof-security').'<br>';
619
  echo $text;
admin/core/core-help-text.php CHANGED
@@ -37,6 +37,6 @@ if ( ! current_user_can('manage_options') ) {
37
  }
38
 
39
  /** Custom Code **/
40
- $bps_customcode_content = '<strong>'.__('Reset|Recheck Dismiss Notices:', 'bulletproof-security').'</strong><br>'.__('Clicking this button resets ALL Dismiss Notices such as Bonus Code Dismiss Notices and ALL other Dismiss Notices. If you previously dismissed a Dismiss Notice and want to display it again at a later time click this button.', 'bulletproof-security').'<br><br><strong>'.__('Export Tool', 'bulletproof-security').'</strong><br>'.__('The Custom Code Export tool exports (copies) all of your Root and wp-admin custom htaccess code into the cc-master.zip file, which you can then download to your computer by clicking the Download Zip Export button displayed in the Custom Code Export success message. You can unzip the cc-master.zip file on your computer to extract the cc-master.txt file for editing - see the Import Tool help info below.', 'bulletproof-security').'<br><br><strong>'.__('Import Tool', 'bulletproof-security').'</strong><br>'.__('The Custom Code Import tool imports all of your Root and wp-admin Custom Code from the cc-master.zip file on your computer into the Custom Code text boxes and saves your imported custom htaccess code to your WordPress Database. You can unzip the cc-master.zip file on your computer to extract the cc-master.txt file for editing to add/change any custom htaccess code in the cc-master.txt file. Do NOT delete any of the BEGIN and END placeholder lines of code in the cc-master.txt file. You can add/edit/change any code in-between the BEGIN and END lines of code. After editing the cc-master.txt file you will need to zip the cc-master.txt file in order to be able to import the cc-master.zip file using the Custom Code Import tool. The zip file MUST be named cc-master.zip in order to be able to Import it to BPS Custom Code. Important Note: Use Notepad, Notepad++ or another ASCII text editor to edit the cc-master.txt file. Do NOT use Word or WordPad to edit the cc-master.txt file.', 'bulletproof-security').'<br><br><strong>'.__('Delete Tool', 'bulletproof-security').'</strong><br>'.__('The Custom Code Delete tool deletes all of your Root and wp-admin Custom Code from all of the Custom Code text boxes and your WordPress Database. The Delete tool can be used for troubleshooting possible invalid/bad custom htaccess code issues/problems or simply just to delete all custom htaccess code in all of the Custom Code text boxes.', 'bulletproof-security').'<br><br><strong>'.__('Custom Code General Help Information', 'bulletproof-security').'</strong><br>'.__('ONLY add valid htaccess code into these text areas/text boxes. If you want to add regular text instead of .htaccess code then you will need to add a pound sign # in front of the text to comment it out. If you do not do this then the next time you activate BulletProof Mode for your Root folder or your wp-admin folder your website WILL crash.', 'bulletproof-security').'<br><br>'.__('For Custom Code text boxes the require that you copy the entire section of code that you want to edit and modify you will see this blue help text - ', 'bulletproof-security').'<strong><font color="blue">'.__('"You MUST copy and paste the entire xxxxx section of code from your root .htaccess file into this text box first. You can then edit and modify the code in this text window and save your changes."', 'bulletproof-security').'</font></strong><br><br><strong>'.__('If you do not copy the entire section of code into a text box that requires this then the next time activate BulletProof Mode for your Root folder or your wp-admin folder your website WILL crash.', 'bulletproof-security').'</strong><br><br><strong>'.__('If your website crashes after adding custom code: Use FTP or use your web host control panel file manager and delete the root .htaccess file or the wp-admin file or both files if necessary. Log back into your website and correct/fix the invalid/incorrect custom htaccess code that was added in any of the Custom Code text boxes, save your changes, go to the Security Modes page and click the Activate button for the Root or wp-admin Folder BulletProof Mode or both if necessary.', 'bulletproof-security').'</strong><br><br><strong>'.__('Your Custom Code is saved permanently until you delete it and will not be removed or deleted when you upgrade BPS.','bulletproof-security').'</strong><br><br><strong>'.__('Root htaccess File Custom Code Setup Steps', 'bulletproof-security').'</strong><br>'.__('1. Add your custom code in the appropriate Root Custom Code text box.', 'bulletproof-security').'<br>'.__('2. Click the Save Root Custom Code button to save your Root custom code.', 'bulletproof-security').'<br>'.__('3. Go to the Security Modes page and click the Root Folder BulletProof Mode Activate button.', 'bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE:', 'bulletproof-security').'<br>'.__('Add php/php.ini handler code, cache code and/or Speed Boost Cache Code here', 'bulletproof-security').'</strong><br>'.__('ONLY add valid php/php.ini handler htaccess code and/or cache htaccess code or text commented out with a pound sign #.','bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE TURN OFF YOUR SERVER SIGNATURE:', 'bulletproof-security').'</strong><br>'.__('You MUST copy and paste the entire TURN OFF YOUR SERVER SIGNATURE section of code from your root .htaccess file into this text box first. You can then edit and modify the code in this text window and save your changes.','bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE DO NOT SHOW DIRECTORY LISTING/DIRECTORY INDEX:','bulletproof-security').'</strong><br>'.__('You MUST copy and paste the entire DO NOT SHOW DIRECTORY LISTING and DIRECTORY INDEX sections of code from your root .htaccess file into this text box first. You can then edit and modify the code in this text window and save your changes.','bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE BRUTE FORCE LOGIN PAGE PROTECTION:','bulletproof-security').'</strong><br>'.__('This Custom Code text box is for optional/Bonus code. To get this code see the Forum Help Links at the top of this Read Me help window. CAUTION! This code has a 95%/5% success/fail ratio meaning that this code will not work on 5% of websites. If you see a 403 error when logging out and logging into your website then you cannot use this code on your website and will need to delete this code to correct the 403 error when logging out and logging into your website.','bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE ERROR LOGGING AND TRACKING:','bulletproof-security').'</strong><br>'.__('You MUST copy and paste the entire ERROR LOGGING AND TRACKING section of code from your root .htaccess file into this text box first. You can then edit and modify the code in this text window and save your changes.','bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE DENY ACCESS TO PROTECTED SERVER FILES AND FOLDERS:', 'bulletproof-security').'</strong><br>'.__('You MUST copy and paste the entire DENY ACCESS TO PROTECTED SERVER FILES AND FOLDERS section of code from your root .htaccess file into this text box first. You can then edit and modify the code in this text window and save your changes.', 'bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE WP-ADMIN/INCLUDES: DO NOT add wp-admin .htaccess file code here', 'bulletproof-security').'</strong><br>'.__('Add one pound sign # in this text box to prevent the WP-ADMIN/INCLUDES section of code from being created in your root .htaccess file.','bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE WP REWRITE LOOP START: Add www to non-www/non-www to www code here', 'bulletproof-security').'</strong><br>'.__('You MUST copy and paste the entire WP REWRITE LOOP START section of code from your root .htaccess file into this text box first. You can then edit and modify the code in this text window and save your changes.','bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE REQUEST METHODS FILTERED: Whitelist User Agents and allow HEAD Requests', 'bulletproof-security').'</strong><br>'.__('You MUST copy and paste the entire REQUEST METHODS FILTERED section of code from your root .htaccess file into this text box first. You can then edit and modify the code in this text window and save your changes. If you see this code: ','bulletproof-security').'RewriteRule ^(.*)$ - [R=405,L]'.__('. To Allow HEAD Requests, comment out these 2 lines of code with # signs: ', 'bulletproof-security').'#RewriteCond %{REQUEST_METHOD} ^(HEAD) [NC] and #RewriteRule ^(.*)$ - [R=405,L].'.__(' If you see this code: ','bulletproof-security').'RewriteRule ^(.*)$ /wp-content/plugins/bulletproof-security/405.php [L]'.__('. To Allow HEAD Requests, comment out these 2 lines of code with # signs: ', 'bulletproof-security').'#RewriteCond %{REQUEST_METHOD} ^(HEAD) [NC] and #RewriteRule ^(.*)$ /wp-content/plugins/bulletproof-security/405.php [L].<br><br><strong>'.__('CUSTOM CODE PLUGIN/THEME SKIP/BYPASS RULES:','bulletproof-security').'</strong><br>'.__('ONLY add valid htaccess code or text commented out with a pound sign #. This text area is for plugin fixes that are specific to your website. BPS already has some plugin skip/bypass rules included in the Root htaccess file by default. Adding additional plugin skip/bypass rules for your plugins on your website goes in this text box. There are 12 default skip rules in the standard BPS root htaccess file already. Skip rules MUST be in descending consecutive number order: 15, 14, 13... If you add one plugin skip/bypass rule in this text box it should be skip rule #13. For each additional plugin skip rule that you add the S= skip number is increased by one. Example: if you add 3 plugin skip rules in this text box they would be Skip rules #15, #14 and #13 - RewriteRule . - [S=15] and RewriteRule . - [S=14] and RewriteRule . - [S=13] in descending consecutive order', 'bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE TIMTHUMB FORBID RFI and MISC FILE SKIP/BYPASS RULE:','bulletproof-security').'</strong><br>'.__('You MUST copy and paste the entire TIMTHUMB FORBID RFI section of code from your root .htaccess file into this text box first. You can then edit and modify the code in this text window and save your changes.','bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE BPSQSE BPS QUERY STRING EXPLOITS:','bulletproof-security').'</strong><br>'.__('You MUST copy and paste the entire BPSQSE QUERY STRING EXPLOITS section of code from your root .htaccess file from # BEGIN BPSQSE BPS QUERY STRING EXPLOITS to # END BPSQSE BPS QUERY STRING EXPLOITS into this text box first. You can then edit and modify the code in this text window and save your changes.', 'bulletproof-security').$network_cc_help.'<br><br><strong>'.__('CUSTOM CODE DENY BROWSER ACCESS TO THESE FILES:','bulletproof-security').'</strong><br>'.__('You MUST copy and paste the entire DENY BROWSER ACCESS section of code from your root .htaccess file into this text box first. You can then edit and modify the code in this text window and save your changes.', 'bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE BOTTOM HOTLINKING/FORBID COMMENT SPAMMERS/BLOCK BOTS/BLOCK IP/REDIRECT CODE: Add miscellaneous code here','bulletproof-security').'</strong><br>'.__('This Custom Code text box is for any/all personal custom code that you have created or want to use that is not standard BPS htaccess code. ONLY add valid htaccess code below or text commented out with a pound sign # You can save any miscellaneous custom htaccess code here as long as it is valid htaccess code or if it is just plain text then you will need to comment it out with a pound sign # in front of the text.', 'bulletproof-security').'<br><br><strong>'.__('wp-admin htaccess File Custom Code Steps','bulletproof-security').'</strong><br>'.__('1. Add your custom code in the appropriate wp-admin Custom Code text box.', 'bulletproof-security').'<br>'.__('2. Click the Save wp-admin Custom Code button to save your wp-admin custom code.', 'bulletproof-security').'<br>'.__('3. Go to the Security Modes page and click the wp-admin Folder BulletProof Mode Activate button.', 'bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE BPS WPADMIN DENY ACCESS TO FILES:','bulletproof-security').'<br>'.__('Add additional wp-admin files that you would like to block here','bulletproof-security').'</strong><br>'.__('You MUST copy and paste the entire WPADMIN DENY BROWSER ACCESS TO FILES section of code from your wp-admin .htaccess file into this text box first. You can then edit and modify the code in this text window and save your changes. Add one pound sign # below to prevent the WPADMIN DENY BROWSER ACCESS TO FILES section of code from being created in your wp-admin .htaccess file.', 'bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE WPADMIN TOP:','bulletproof-security').'<br>'.__('Add wp-admin password protection, IP whitelist allow access & miscellaneous custom code here','bulletproof-security').'</strong><br>'.__('ONLY add valid htaccess code below or text commented out with a pound sign # You can save any miscellaneous custom htaccess code here as long as it is valid htaccess code or if it is just plain text then you will need to comment it out with a pound sign # in front of the text.','bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE WPADMIN PLUGIN/FILE SKIP RULES:','bulletproof-security').'<br>'.__('Add wp-admin plugin/file skip rules code here','bulletproof-security').'</strong><br>'.__('ONLY add valid htaccess code below or text commented out with a pound sign #. There is currently one default skip rule [S=1] in the standard BPS wp-admin htaccess file already. Skip rules MUST be in descending consecutive number order: 4, 3, 2... If you add one plugin skip/bypass rule in this text box it will be skip rule #2. For each additional plugin skip rule that you add the S= skip number is increased by one. Example: if you add 3 plugin skip rules in this text box they would be Skip rules #4, #3 and #2 - RewriteRule . - [S=4] and RewriteRule . - [S=3] and RewriteRule . - [S=2] in descending consecutive order.','bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE BPSQSE-check BPS QUERY STRING EXPLOITS AND FILTERS:','bulletproof-security').'<br>'.__('Modify wp-admin Query String Exploit code here','bulletproof-security').'</strong><br>'.__('You MUST copy and paste the entire BPS QUERY STRING EXPLOITS section of code from your wp-admin .htaccess file from # BEGIN BPSQSE-check BPS QUERY STRING EXPLOITS AND FILTERS to # END BPSQSE-check BPS QUERY STRING EXPLOITS AND FILTERS into this text box first. You can then edit and modify the code in this text window and save your changes.','bulletproof-security').'<br><br><strong>'.__('BPS Video Tutorial links can be found in the Help & FAQ pages.','bulletproof-security').'</strong>';
41
 
42
  ?>
37
  }
38
 
39
  /** Custom Code **/
40
+ $bps_customcode_content = '<strong>'.__('Reset|Recheck Dismiss Notices:', 'bulletproof-security').'</strong><br>'.__('Clicking this button resets ALL Dismiss Notices such as Bonus Code Dismiss Notices and ALL other Dismiss Notices. If you previously dismissed a Dismiss Notice and want to display it again at a later time click this button.', 'bulletproof-security').'<br><br><strong>'.__('Export Tool', 'bulletproof-security').'</strong><br>'.__('The Custom Code Export tool exports (copies) all of your Root and wp-admin custom htaccess code into the cc-master.zip file, which you can then download to your computer by clicking the Download Zip Export button displayed in the Custom Code Export success message. You can unzip the cc-master.zip file on your computer to extract the cc-master.txt file for editing - see the Import Tool help info below.', 'bulletproof-security').'<br><br><strong>'.__('Import Tool', 'bulletproof-security').'</strong><br>'.__('The Custom Code Import tool imports all of your Root and wp-admin Custom Code from the cc-master.zip file on your computer into the Custom Code text boxes and saves your imported custom htaccess code to your WordPress Database. You can unzip the cc-master.zip file on your computer to extract the cc-master.txt file for editing to add/change any custom htaccess code in the cc-master.txt file. Do NOT delete any of the BEGIN and END placeholder lines of code in the cc-master.txt file. You can add/edit/change any code in-between the BEGIN and END lines of code. After editing the cc-master.txt file you will need to zip the cc-master.txt file in order to be able to import the cc-master.zip file using the Custom Code Import tool. The zip file MUST be named cc-master.zip in order to be able to Import it to BPS Custom Code. Important Note: Use Notepad, Notepad++ or another ASCII text editor to edit the cc-master.txt file. Do NOT use Word or WordPad to edit the cc-master.txt file.', 'bulletproof-security').'<br><br><strong>'.__('Delete Tool', 'bulletproof-security').'</strong><br>'.__('The Custom Code Delete tool deletes all of your Root and wp-admin Custom Code from all of the Custom Code text boxes and your WordPress Database. The Delete tool can be used for troubleshooting possible invalid/bad custom htaccess code issues/problems or simply just to delete all custom htaccess code in all of the Custom Code text boxes.', 'bulletproof-security').'<br><br><strong>'.__('Custom Code General Help Information', 'bulletproof-security').'</strong><br>'.__('ONLY add valid htaccess code into these text areas/text boxes. If you want to add regular text instead of .htaccess code then you will need to add a pound sign # in front of the text to comment it out. If you do not do this then the next time you activate BulletProof Mode for your Root folder or your wp-admin folder your website WILL crash.', 'bulletproof-security').'<br><br>'.__('For Custom Code text boxes the require that you copy the entire section of code that you want to edit and modify you will see this blue help text - ', 'bulletproof-security').'<strong><font color="blue">'.__('"You MUST copy and paste the entire xxxxx section of code from your root .htaccess file into this text box first. You can then edit and modify the code in this text window and save your changes."', 'bulletproof-security').'</font></strong><br><br><strong>'.__('If you do not copy the entire section of code into a text box that requires this then the next time activate BulletProof Mode for your Root folder or your wp-admin folder your website WILL crash.', 'bulletproof-security').'</strong><br><br><strong>'.__('If your website crashes after adding custom code: Use FTP or use your web host control panel file manager and delete the root .htaccess file or the wp-admin file or both files if necessary. Log back into your website and correct/fix the invalid/incorrect custom htaccess code that was added in any of the Custom Code text boxes, save your changes, go to the Security Modes page and click the Activate button for the Root or wp-admin Folder BulletProof Mode or both if necessary.', 'bulletproof-security').'</strong><br><br><strong>'.__('Your Custom Code is saved permanently until you delete it and will not be removed or deleted when you upgrade BPS.','bulletproof-security').'</strong><br><br><strong>'.__('Root htaccess File Custom Code Setup Steps', 'bulletproof-security').'</strong><br>'.__('1. Add your custom code in the appropriate Root Custom Code text box.', 'bulletproof-security').'<br>'.__('2. Click the Save Root Custom Code button to save your Root custom code.', 'bulletproof-security').'<br>'.__('3. Go to the Security Modes page and click the Root Folder BulletProof Mode Activate button.', 'bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE:', 'bulletproof-security').'<br>'.__('Add php/php.ini handler code, cache code and/or Speed Boost Cache Code here', 'bulletproof-security').'</strong><br>'.__('ONLY add valid php/php.ini handler htaccess code and/or cache htaccess code or text commented out with a pound sign #.','bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE TURN OFF YOUR SERVER SIGNATURE:', 'bulletproof-security').'</strong><br>'.__('You MUST copy and paste the entire TURN OFF YOUR SERVER SIGNATURE section of code from your root .htaccess file into this text box first. You can then edit and modify the code in this text window and save your changes.','bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE DO NOT SHOW DIRECTORY LISTING/DIRECTORY INDEX:','bulletproof-security').'</strong><br>'.__('You MUST copy and paste the entire DO NOT SHOW DIRECTORY LISTING and DIRECTORY INDEX sections of code from your root .htaccess file into this text box first. You can then edit and modify the code in this text window and save your changes.','bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE BRUTE FORCE LOGIN PAGE PROTECTION:','bulletproof-security').'</strong><br>'.__('This Custom Code text box is for optional/Bonus code. To get this code see the Forum Help Links at the top of this Read Me help window. CAUTION! This code has a 95%/5% success/fail ratio meaning that this code will not work on 5% of websites. If you see a 403 error when logging out and logging into your website then you cannot use this code on your website and will need to delete this code to correct the 403 error when logging out and logging into your website.','bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE ERROR LOGGING AND TRACKING:','bulletproof-security').'</strong><br>'.__('You MUST copy and paste the entire ERROR LOGGING AND TRACKING section of code from your root .htaccess file into this text box first. You can then edit and modify the code in this text window and save your changes.','bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE DENY ACCESS TO PROTECTED SERVER FILES AND FOLDERS:', 'bulletproof-security').'</strong><br>'.__('You MUST copy and paste the entire DENY ACCESS TO PROTECTED SERVER FILES AND FOLDERS section of code from your root .htaccess file into this text box first. You can then edit and modify the code in this text window and save your changes.', 'bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE WP-ADMIN/INCLUDES: DO NOT add wp-admin .htaccess file code here', 'bulletproof-security').'</strong><br>'.__('Add one pound sign # in this text box to prevent the WP-ADMIN/INCLUDES section of code from being created in your root .htaccess file.','bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE WP REWRITE LOOP START: Add www to non-www/non-www to www code here', 'bulletproof-security').'</strong><br>'.__('You MUST copy and paste the entire WP REWRITE LOOP START section of code from your root .htaccess file into this text box first. You can then edit and modify the code in this text window and save your changes.','bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE REQUEST METHODS FILTERED: Whitelist User Agents and allow HEAD Requests', 'bulletproof-security').'</strong><br>'.__('You MUST copy and paste the entire REQUEST METHODS FILTERED section of code from your root .htaccess file into this text box first. You can then edit and modify the code in this text window and save your changes. If you see this code: ','bulletproof-security').'RewriteRule ^(.*)$ - [R=405,L]'.__('. To Allow HEAD Requests, comment out these 2 lines of code with # signs: ', 'bulletproof-security').'#RewriteCond %{REQUEST_METHOD} ^(HEAD) [NC] and #RewriteRule ^(.*)$ - [R=405,L].'.__(' If you see this code: ','bulletproof-security').'RewriteRule ^(.*)$ /wp-content/plugins/bulletproof-security/405.php [R,L]'.__('. To Allow HEAD Requests, comment out these 2 lines of code with # signs: ', 'bulletproof-security').'#RewriteCond %{REQUEST_METHOD} ^(HEAD) [NC] and #RewriteRule ^(.*)$ /wp-content/plugins/bulletproof-security/405.php [R,L].<br><br><strong>'.__('CUSTOM CODE PLUGIN/THEME SKIP/BYPASS RULES:','bulletproof-security').'</strong><br>'.__('ONLY add valid htaccess code or text commented out with a pound sign #. This text area is for plugin fixes that are specific to your website. BPS already has some plugin skip/bypass rules included in the Root htaccess file by default. Adding additional plugin skip/bypass rules for your plugins on your website goes in this text box. There are 12 default skip rules in the standard BPS root htaccess file already. Skip rules MUST be in descending consecutive number order: 15, 14, 13... If you add one plugin skip/bypass rule in this text box it should be skip rule #13. For each additional plugin skip rule that you add the S= skip number is increased by one. Example: if you add 3 plugin skip rules in this text box they would be Skip rules #15, #14 and #13 - RewriteRule . - [S=15] and RewriteRule . - [S=14] and RewriteRule . - [S=13] in descending consecutive order', 'bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE TIMTHUMB FORBID RFI and MISC FILE SKIP/BYPASS RULE:','bulletproof-security').'</strong><br>'.__('You MUST copy and paste the entire TIMTHUMB FORBID RFI section of code from your root .htaccess file into this text box first. You can then edit and modify the code in this text window and save your changes.','bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE BPSQSE BPS QUERY STRING EXPLOITS:','bulletproof-security').'</strong><br>'.__('You MUST copy and paste the entire BPSQSE QUERY STRING EXPLOITS section of code from your root .htaccess file from # BEGIN BPSQSE BPS QUERY STRING EXPLOITS to # END BPSQSE BPS QUERY STRING EXPLOITS into this text box first. You can then edit and modify the code in this text window and save your changes.', 'bulletproof-security').$network_cc_help.'<br><br><strong>'.__('CUSTOM CODE DENY BROWSER ACCESS TO THESE FILES:','bulletproof-security').'</strong><br>'.__('You MUST copy and paste the entire DENY BROWSER ACCESS section of code from your root .htaccess file into this text box first. You can then edit and modify the code in this text window and save your changes.', 'bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE BOTTOM HOTLINKING/FORBID COMMENT SPAMMERS/BLOCK BOTS/BLOCK IP/REDIRECT CODE: Add miscellaneous code here','bulletproof-security').'</strong><br>'.__('This Custom Code text box is for any/all personal custom code that you have created or want to use that is not standard BPS htaccess code. ONLY add valid htaccess code below or text commented out with a pound sign # You can save any miscellaneous custom htaccess code here as long as it is valid htaccess code or if it is just plain text then you will need to comment it out with a pound sign # in front of the text.', 'bulletproof-security').'<br><br><strong>'.__('wp-admin htaccess File Custom Code Steps','bulletproof-security').'</strong><br>'.__('1. Add your custom code in the appropriate wp-admin Custom Code text box.', 'bulletproof-security').'<br>'.__('2. Click the Save wp-admin Custom Code button to save your wp-admin custom code.', 'bulletproof-security').'<br>'.__('3. Go to the Security Modes page and click the wp-admin Folder BulletProof Mode Activate button.', 'bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE BPS WPADMIN DENY ACCESS TO FILES:','bulletproof-security').'<br>'.__('Add additional wp-admin files that you would like to block here','bulletproof-security').'</strong><br>'.__('You MUST copy and paste the entire WPADMIN DENY BROWSER ACCESS TO FILES section of code from your wp-admin .htaccess file into this text box first. You can then edit and modify the code in this text window and save your changes. Add one pound sign # below to prevent the WPADMIN DENY BROWSER ACCESS TO FILES section of code from being created in your wp-admin .htaccess file.', 'bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE WPADMIN TOP:','bulletproof-security').'<br>'.__('Add wp-admin password protection, IP whitelist allow access & miscellaneous custom code here','bulletproof-security').'</strong><br>'.__('ONLY add valid htaccess code below or text commented out with a pound sign # You can save any miscellaneous custom htaccess code here as long as it is valid htaccess code or if it is just plain text then you will need to comment it out with a pound sign # in front of the text.','bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE WPADMIN PLUGIN/FILE SKIP RULES:','bulletproof-security').'<br>'.__('Add wp-admin plugin/file skip rules code here','bulletproof-security').'</strong><br>'.__('ONLY add valid htaccess code below or text commented out with a pound sign #. There is currently one default skip rule [S=1] in the standard BPS wp-admin htaccess file already. Skip rules MUST be in descending consecutive number order: 4, 3, 2... If you add one plugin skip/bypass rule in this text box it will be skip rule #2. For each additional plugin skip rule that you add the S= skip number is increased by one. Example: if you add 3 plugin skip rules in this text box they would be Skip rules #4, #3 and #2 - RewriteRule . - [S=4] and RewriteRule . - [S=3] and RewriteRule . - [S=2] in descending consecutive order.','bulletproof-security').'<br><br><strong>'.__('CUSTOM CODE BPSQSE-check BPS QUERY STRING EXPLOITS AND FILTERS:','bulletproof-security').'<br>'.__('Modify wp-admin Query String Exploit code here','bulletproof-security').'</strong><br>'.__('You MUST copy and paste the entire BPS QUERY STRING EXPLOITS section of code from your wp-admin .htaccess file from # BEGIN BPSQSE-check BPS QUERY STRING EXPLOITS AND FILTERS to # END BPSQSE-check BPS QUERY STRING EXPLOITS AND FILTERS into this text box first. You can then edit and modify the code in this text window and save your changes.','bulletproof-security').'<br><br><strong>'.__('BPS Video Tutorial links can be found in the Help & FAQ pages.','bulletproof-security').'</strong>';
41
 
42
  ?>
admin/core/core-htaccess-code.php CHANGED
@@ -239,7 +239,7 @@ $bps_secure_request_methods = "\n# REQUEST METHODS FILTERED
239
  RewriteCond %{REQUEST_METHOD} ^(TRACE|DELETE|TRACK|DEBUG) [NC]
240
  RewriteRule ^(.*)$ - [F]
241
  RewriteCond %{REQUEST_METHOD} ^(HEAD) [NC]
242
- RewriteRule ^(.*)$ " . $bps_get_wp_root_secure . $bps_plugin_dir . "/bulletproof-security/405.php [L]\n\n";
243
  }
244
  }
245
 
@@ -317,7 +317,7 @@ $bps_secure_BPSQSE = "# BEGIN BPSQSE BPS QUERY STRING EXPLOITS
317
  RewriteCond %{HTTP_USER_AGENT} (havij|libwww-perl|wget|python|nikto|curl|scan|java|winhttp|clshttp|loader) [NC,OR]
318
  RewriteCond %{HTTP_USER_AGENT} (%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
319
  RewriteCond %{HTTP_USER_AGENT} (;|<|>|'|".'"'."|\)|\(|%0A|%0D|%22|%27|%28|%3C|%3E|%00).*(libwww-perl|wget|python|nikto|curl|scan|java|winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR]
320
- RewriteCond %{THE_REQUEST} (\?|\*|%2a)+(%20+|\\\\s+|%20+\\\\s+|\\\\s+%20+|\\\\s+%20+\\\\s+)HTTP(:/|/) [NC,OR]
321
  RewriteCond %{THE_REQUEST} etc/passwd [NC,OR]
322
  RewriteCond %{THE_REQUEST} cgi-bin [NC,OR]
323
  RewriteCond %{THE_REQUEST} (%0A|%0D|\\"."\\"."r|\\"."\\"."n) [NC,OR]
@@ -325,17 +325,16 @@ RewriteCond %{REQUEST_URI} owssvr\.dll [NC,OR]
325
  RewriteCond %{HTTP_REFERER} (%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
326
  RewriteCond %{HTTP_REFERER} \.opendirviewer\. [NC,OR]
327
  RewriteCond %{HTTP_REFERER} users\.skynet\.be.* [NC,OR]
328
- RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [NC,OR]
329
  RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [NC,OR]
330
  RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC,OR]
331
  RewriteCond %{QUERY_STRING} \=PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC,OR]
332
  RewriteCond %{QUERY_STRING} (\.\./|%2e%2e%2f|%2e%2e/|\.\.%2f|%2e\.%2f|%2e\./|\.%2e%2f|\.%2e/) [NC,OR]
333
  RewriteCond %{QUERY_STRING} ftp\: [NC,OR]
334
- RewriteCond %{QUERY_STRING} http\: [NC,OR]
335
- RewriteCond %{QUERY_STRING} https\: [NC,OR]
336
  RewriteCond %{QUERY_STRING} \=\|w\| [NC,OR]
337
  RewriteCond %{QUERY_STRING} ^(.*)/self/(.*)$ [NC,OR]
338
- RewriteCond %{QUERY_STRING} ^(.*)cPath=http://(.*)$ [NC,OR]
339
  RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
340
  RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
341
  RewriteCond %{QUERY_STRING} (\<|%3C).*embed.*(\>|%3E) [NC,OR]
239
  RewriteCond %{REQUEST_METHOD} ^(TRACE|DELETE|TRACK|DEBUG) [NC]
240
  RewriteRule ^(.*)$ - [F]
241
  RewriteCond %{REQUEST_METHOD} ^(HEAD) [NC]
242
+ RewriteRule ^(.*)$ " . $bps_get_wp_root_secure . $bps_plugin_dir . "/bulletproof-security/405.php [R,L]\n\n";
243
  }
244
  }
245
 
317
  RewriteCond %{HTTP_USER_AGENT} (havij|libwww-perl|wget|python|nikto|curl|scan|java|winhttp|clshttp|loader) [NC,OR]
318
  RewriteCond %{HTTP_USER_AGENT} (%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
319
  RewriteCond %{HTTP_USER_AGENT} (;|<|>|'|".'"'."|\)|\(|%0A|%0D|%22|%27|%28|%3C|%3E|%00).*(libwww-perl|wget|python|nikto|curl|scan|java|winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR]
320
+ RewriteCond %{THE_REQUEST} (\?|\*|%2a)+(%20+|\\\\s+|%20+\\\\s+|\\\\s+%20+|\\\\s+%20+\\\\s+)(http|https)(:/|/) [NC,OR]
321
  RewriteCond %{THE_REQUEST} etc/passwd [NC,OR]
322
  RewriteCond %{THE_REQUEST} cgi-bin [NC,OR]
323
  RewriteCond %{THE_REQUEST} (%0A|%0D|\\"."\\"."r|\\"."\\"."n) [NC,OR]
325
  RewriteCond %{HTTP_REFERER} (%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
326
  RewriteCond %{HTTP_REFERER} \.opendirviewer\. [NC,OR]
327
  RewriteCond %{HTTP_REFERER} users\.skynet\.be.* [NC,OR]
328
+ RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(http|https):// [NC,OR]
329
  RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [NC,OR]
330
  RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC,OR]
331
  RewriteCond %{QUERY_STRING} \=PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC,OR]
332
  RewriteCond %{QUERY_STRING} (\.\./|%2e%2e%2f|%2e%2e/|\.\.%2f|%2e\.%2f|%2e\./|\.%2e%2f|\.%2e/) [NC,OR]
333
  RewriteCond %{QUERY_STRING} ftp\: [NC,OR]
334
+ RewriteCond %{QUERY_STRING} (http|https)\: [NC,OR]
 
335
  RewriteCond %{QUERY_STRING} \=\|w\| [NC,OR]
336
  RewriteCond %{QUERY_STRING} ^(.*)/self/(.*)$ [NC,OR]
337
+ RewriteCond %{QUERY_STRING} ^(.*)cPath=(http|https)://(.*)$ [NC,OR]
338
  RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
339
  RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
340
  RewriteCond %{QUERY_STRING} (\<|%3C).*embed.*(\>|%3E) [NC,OR]
admin/css/bps-black-ui-theme.css CHANGED
@@ -122,6 +122,16 @@ div#milestone {font-weight:bold;height:20px;background-color:#CCC;border:1px sol
122
  .setup-wizard-inpage-text {font-size:1em;margin-bottom:20px;}
123
  .setup-wizard-blue-small-text {font-size:12px;}
124
  .setup-wizard-checks-text {font-size:12px;}
 
 
 
 
 
 
 
 
 
 
125
  /** Security Log **/
126
  SecurityLogTable {position:relative;top:0px;left:0px;margin:15px 0px 15px -3px;}
127
  #SecLogCounter {float:right;margin:0px 300px 10px 0px;color:black;font-size:12px;}
122
  .setup-wizard-inpage-text {font-size:1em;margin-bottom:20px;}
123
  .setup-wizard-blue-small-text {font-size:12px;}
124
  .setup-wizard-checks-text {font-size:12px;}
125
+ span.arq-tooltip-sw-20 {display:inline-block;position:relative;}
126
+ span.arq-tooltip-sw-20:hover {z-index:10;}
127
+ span.arq-tooltip-sw-20 img:hover {z-index:10;}
128
+ span.arq-tooltip-sw-20 span {display:none;position:absolute;bottom:0;left:0;right:0;}
129
+ span.arq-tooltip-sw-20:hover span {width:700px;height:20px;display:block;position:absolute;top:0px;left:20px;right:0;color:#000;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);}
130
+ span.arq-tooltip-sw-60 {display:inline-block;position:relative;}
131
+ span.arq-tooltip-sw-60:hover {z-index:10;}
132
+ span.arq-tooltip-sw-60 img:hover {z-index:10;}
133
+ span.arq-tooltip-sw-60 span {display:none;position:absolute;bottom:0;left:0;right:0;}
134
+ span.arq-tooltip-sw-60:hover span {width:700px;height:60px;display:block;position:absolute;top:0px;left:20px;right:0;color:#000;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);}
135
  /** Security Log **/
136
  SecurityLogTable {position:relative;top:0px;left:0px;margin:15px 0px 15px -3px;}
137
  #SecLogCounter {float:right;margin:0px 300px 10px 0px;color:black;font-size:12px;}
admin/css/bps-blue-ui-theme-old-wp-versions.css CHANGED
@@ -97,6 +97,16 @@ span.blue-bold {color:#000066;font-weight:bold;font-size:16px;}
97
  /** Setup Wizard page **/
98
  #wizard-steps {background-color:#fff;margin-top:10px;padding:10px;border-top:1px solid black;border-right:1px solid black;border-left:1px solid black;}
99
  #wizard-steps h3 {font-size:14px;}
 
 
 
 
 
 
 
 
 
 
100
  /** Security Log **/
101
  #SecLogCounter {float:right;margin:0px 300px 10px 0px;color:black;font-size:12px;}
102
  #SecLogPostLimit {position:relative;top:0px;left:0px;margin:0px 0px 15px 0px;}
97
  /** Setup Wizard page **/
98
  #wizard-steps {background-color:#fff;margin-top:10px;padding:10px;border-top:1px solid black;border-right:1px solid black;border-left:1px solid black;}
99
  #wizard-steps h3 {font-size:14px;}
100
+ span.arq-tooltip-sw-20 {display:inline-block;position:relative;}
101
+ span.arq-tooltip-sw-20:hover {z-index:10;}
102
+ span.arq-tooltip-sw-20 img:hover {z-index:10;}
103
+ span.arq-tooltip-sw-20 span {display:none;position:absolute;bottom:0;left:0;right:0;}
104
+ span.arq-tooltip-sw-20:hover span {width:700px;height:20px;display:block;position:absolute;top:0px;left:20px;right:0;color:#000;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);}
105
+ span.arq-tooltip-sw-60 {display:inline-block;position:relative;}
106
+ span.arq-tooltip-sw-60:hover {z-index:10;}
107
+ span.arq-tooltip-sw-60 img:hover {z-index:10;}
108
+ span.arq-tooltip-sw-60 span {display:none;position:absolute;bottom:0;left:0;right:0;}
109
+ span.arq-tooltip-sw-60:hover span {width:700px;height:60px;display:block;position:absolute;top:0px;left:20px;right:0;color:#000;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);}
110
  /** Security Log **/
111
  #SecLogCounter {float:right;margin:0px 300px 10px 0px;color:black;font-size:12px;}
112
  #SecLogPostLimit {position:relative;top:0px;left:0px;margin:0px 0px 15px 0px;}
admin/css/bps-blue-ui-theme.css CHANGED
@@ -114,6 +114,16 @@ div#milestone {font-weight:bold;height:20px;background-color:#CCC;border:1px sol
114
  #wizard-steps {background-color:#fff;margin-top:10px;padding:10px;border-top:1px solid black;border-right:1px solid black;border-left:1px solid black;}
115
  #wizard-steps h3 {font-size:14px;}
116
  .setup-wizard-inpage-text {font-size:1.13em;font-weight:bold;margin-bottom:20px;}
 
 
 
 
 
 
 
 
 
 
117
  /** Security Log **/
118
  SecurityLogTable {position:relative;top:0px;left:0px;margin:15px 0px 15px -3px;}
119
  #SecLogCounter {float:right;margin:0px 300px 10px 0px;color:black;font-size:12px;}
114
  #wizard-steps {background-color:#fff;margin-top:10px;padding:10px;border-top:1px solid black;border-right:1px solid black;border-left:1px solid black;}
115
  #wizard-steps h3 {font-size:14px;}
116
  .setup-wizard-inpage-text {font-size:1.13em;font-weight:bold;margin-bottom:20px;}
117
+ span.arq-tooltip-sw-20 {display:inline-block;position:relative;}
118
+ span.arq-tooltip-sw-20:hover {z-index:10;}
119
+ span.arq-tooltip-sw-20 img:hover {z-index:10;}
120
+ span.arq-tooltip-sw-20 span {display:none;position:absolute;bottom:0;left:0;right:0;}
121
+ span.arq-tooltip-sw-20:hover span {width:700px;height:20px;display:block;position:absolute;top:0px;left:20px;right:0;color:#000;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);}
122
+ span.arq-tooltip-sw-60 {display:inline-block;position:relative;}
123
+ span.arq-tooltip-sw-60:hover {z-index:10;}
124
+ span.arq-tooltip-sw-60 img:hover {z-index:10;}
125
+ span.arq-tooltip-sw-60 span {display:none;position:absolute;bottom:0;left:0;right:0;}
126
+ span.arq-tooltip-sw-60:hover span {width:700px;height:60px;display:block;position:absolute;top:0px;left:20px;right:0;color:#000;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);}
127
  /** Security Log **/
128
  SecurityLogTable {position:relative;top:0px;left:0px;margin:15px 0px 15px -3px;}
129
  #SecLogCounter {float:right;margin:0px 300px 10px 0px;color:black;font-size:12px;}
admin/css/bps-grey-ui-theme.css CHANGED
@@ -124,6 +124,16 @@ div#milestone {font-weight:bold;height:20px;background-color:#CCC;border:1px sol
124
  .setup-wizard-inpage-text {font-size:1em;margin-bottom:20px;}
125
  .setup-wizard-blue-small-text {font-size:12px;}
126
  .setup-wizard-checks-text {font-size:12px;}
 
 
 
 
 
 
 
 
 
 
127
  /** Security Log **/
128
  SecurityLogTable {position:relative;top:0px;left:0px;margin:15px 0px 15px -3px;}
129
  #SecLogCounter {float:right;margin:0px 300px 10px 0px;color:black;font-size:12px;}
124
  .setup-wizard-inpage-text {font-size:1em;margin-bottom:20px;}
125
  .setup-wizard-blue-small-text {font-size:12px;}
126
  .setup-wizard-checks-text {font-size:12px;}
127
+ span.arq-tooltip-sw-20 {display:inline-block;position:relative;}
128
+ span.arq-tooltip-sw-20:hover {z-index:10;}
129
+ span.arq-tooltip-sw-20 img:hover {z-index:10;}
130
+ span.arq-tooltip-sw-20 span {display:none;position:absolute;bottom:0;left:0;right:0;}
131
+ span.arq-tooltip-sw-20:hover span {width:700px;height:20px;display:block;position:absolute;top:0px;left:20px;right:0;color:#000;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);}
132
+ span.arq-tooltip-sw-60 {display:inline-block;position:relative;}
133
+ span.arq-tooltip-sw-60:hover {z-index:10;}
134
+ span.arq-tooltip-sw-60 img:hover {z-index:10;}
135
+ span.arq-tooltip-sw-60 span {display:none;position:absolute;bottom:0;left:0;right:0;}
136
+ span.arq-tooltip-sw-60:hover span {width:700px;height:60px;display:block;position:absolute;top:0px;left:20px;right:0;color:#000;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);}
137
  /** Security Log **/
138
  SecurityLogTable {position:relative;top:0px;left:0px;margin:15px 0px 15px -3px;}
139
  #SecLogCounter {float:right;margin:0px 300px 10px 0px;color:black;font-size:12px;}
admin/htaccess/bps-maintenance.php CHANGED
@@ -38,6 +38,7 @@ function bps_get_wp_root_install_folder() {
38
  $hostname = @gethostbyaddr($_SERVER['REMOTE_ADDR']);
39
  $timeNow = time();
40
  $gmt_offset = get_option( 'gmt_offset' ) * 3600;
 
41
 
42
  if ( ! get_option( 'gmt_offset' ) ) {
43
  $timestamp = date("F j, Y g:i a", time() );
@@ -47,7 +48,7 @@ function bps_get_wp_root_install_folder() {
47
 
48
  if ( $_SERVER['REQUEST_URI'] != bps_get_wp_root_install_folder() . '0' ) {
49
 
50
- $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: '.$_SERVER['QUERY_STRING']."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
51
 
52
  if ( is_writable( $bpsProLog ) ) {
53
 
@@ -207,10 +208,11 @@ global $bps_maint_countdown_email, $bps_maint_email_to, $bps_maint_email_from, $
207
  $message = '<p><font color="blue"><strong>The Maintenance Mode Countdown Timer has completed for:</strong></font></p>';
208
  $message .= '<p>Website: '.$site_link.'</p>';
209
 
210
- $mailed = mail( $bps_maint_email_to, $subject, $message, $headers );
211
-
212
- if ( $mailed ) {
213
- // do something else if/when email is sent
 
214
  }
215
  }
216
  }
38
  $hostname = @gethostbyaddr($_SERVER['REMOTE_ADDR']);
39
  $timeNow = time();
40
  $gmt_offset = get_option( 'gmt_offset' ) * 3600;
41
+ $query_string = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY);
42
 
43
  if ( ! get_option( 'gmt_offset' ) ) {
44
  $timestamp = date("F j, Y g:i a", time() );
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
 
208
  $message = '<p><font color="blue"><strong>The Maintenance Mode Countdown Timer has completed for:</strong></font></p>';
209
  $message .= '<p>Website: '.$site_link.'</p>';
210
 
211
+ if ( function_exists('wp_mail') ) {
212
+ $mailed = wp_mail( $bps_maint_email_to, $subject, $message, $headers );
213
+ if ( $mailed ) {
214
+ // do something else if/when email is sent
215
+ }
216
  }
217
  }
218
  }
admin/htaccess/bps-mu-tools.php ADDED
@@ -0,0 +1,300 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ Plugin Name: BPS MU Tools
4
+ Description: <strong>Enable|Disable BPS Plugin AutoUpdates:</strong> Clicking this link enables or disables BPS Plugin automatic updates for the BPS plugin only. <strong>Enable|Disable BPS Folder|Deactivation Checks:</strong> Clicking this link enables or disables checks for whether the /bulletproof-security/ plugin folder has been renamed or deleted. Checks for whether the BPS plugin has been deactivated. Email alerts are sent every 5 minutes when the BPS plugin folder has been renamed or deleted or the BPS plugin has been deactivated. To disable these checks and the email alerts click the Disable BPS Folder|Deactivation Checks link. <strong>Note:</strong> When you click disable links you will then see enable links and vice versa.
5
+ Version: 1.0
6
+ Author: AITpro
7
+ Author URI: https://forum.ait-pro.com/forums/forum/bulletproof-security-free/
8
+ License: GPLv2 or later
9
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
+ */
11
+
12
+ ## IMPORTANT!!!!: error_reporting(0); cannot be used generally in this file or all PHP Error Logging will be broken, but can be used safely within certain conditions.
13
+ ## Important Note: If you would like to add additional customizations to this file it is recommended that you make a copy of this file after you make any customizations.
14
+ ## Most likely additional things will be added/created in this BPS Pro must-use file at a later time.
15
+ ## If you customize this BPS file then you will lose your customizations if/when this file is updated in the future.
16
+ ## 1.0: Added Toggle Action Links and DB options so that BPS MU Tools can be enabled or disabled.
17
+
18
+ ## Uncommenting these filters below and commenting out this BPS filter: add_filter( 'auto_update_plugin', 'bpsPro_autoupdate_bps_plugin', 10, 2 );
19
+ ## will allow ALL plugin and theme automatic updates on your website. At a later time|version this BPS MU plugin file will include options to enable|disable these things.
20
+ /**
21
+ add_filter( 'auto_update_plugin', '__return_true' );
22
+ add_filter( 'auto_update_theme', '__return_true' );
23
+ **/
24
+
25
+ function bpsPro_autoupdate_bps_plugin( $update, $item ) {
26
+
27
+ $MUTools_Options = get_option('bulletproof_security_options_MU_tools_free');
28
+
29
+ if ( @$MUTools_Options['bps_mu_tools_enable_disable_autoupdate'] == 'disable' ) {
30
+ return;
31
+ }
32
+
33
+ // Array of plugin slugs to AutoUpdate
34
+ $plugins = array (
35
+ 'bulletproof-security',
36
+ );
37
+
38
+ // AutoUpdate plugins in the $plugins array
39
+ if ( in_array( $item->slug, $plugins ) ) {
40
+ return true;
41
+ } else {
42
+ // For any/all other plugins that are not in the $plugins array, return the WP $update API response
43
+ return $update;
44
+ }
45
+ }
46
+
47
+ add_filter( 'auto_update_plugin', 'bpsPro_autoupdate_bps_plugin', 10, 2 );
48
+
49
+ // Check if the /bulletproof-security/ plugin folder has been renamed or deleted.
50
+ // Writes a log entry and sends an email alert once every 5 minutes.
51
+ function bpsPro_plugin_folder_check() {
52
+
53
+ $MUTools_Options = get_option('bulletproof_security_options_MU_tools_free');
54
+
55
+ if ( @$MUTools_Options['bps_mu_tools_enable_disable_deactivation'] == 'disable' ) {
56
+ return;
57
+ }
58
+
59
+ if ( time() > $MUTools_Options['bps_mu_tools_timestamp'] ) {
60
+
61
+ if ( ! is_dir( WP_PLUGIN_DIR . '/bulletproof-security' ) ) {
62
+
63
+ global $blog_id;
64
+
65
+ if ( is_multisite() && $blog_id != 1 ) {
66
+ return;
67
+ } else {
68
+
69
+ $bpsProLog = WP_CONTENT_DIR . '/bps-backup/logs/http_error_log.txt';
70
+ $timeNow = time();
71
+ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
72
+ $timestamp = date_i18n(get_option('date_format'), strtotime("11/15-1976")) . ' - ' . date_i18n(get_option('time_format'), $timeNow + $gmt_offset);
73
+
74
+ $log_contents = "\r\n" . '[BPS Plugin Folder Renamed or Deleted: ' . $timestamp . ']' . "\r\n" . 'This Security Log entry is created when the /bulletproof-security/ plugin folder is renamed or deleted. An email alert is also sent to you when the /bulletproof-security/ plugin folder is renamed or deleted.'."\r\n";
75
+
76
+ if ( is_writable( $bpsProLog ) ) {
77
+
78
+ if ( ! $handle = fopen( $bpsProLog, 'a' ) ) {
79
+ exit;
80
+ }
81
+
82
+ if ( fwrite( $handle, $log_contents) === FALSE ) {
83
+ exit;
84
+ }
85
+
86
+ fclose($handle);
87
+ }
88
+
89
+ $EmailOptions = get_option('bulletproof_security_options_email');
90
+ $bps_email_to = $EmailOptions['bps_send_email_to'];
91
+ $bps_email_from = $EmailOptions['bps_send_email_from'];
92
+ $bps_email_cc = $EmailOptions['bps_send_email_cc'];
93
+ $bps_email_bcc = $EmailOptions['bps_send_email_bcc'];
94
+ $justUrl = get_site_url();
95
+ $timestamp = date_i18n(get_option('date_format'), strtotime("11/15-1976")) . ' - ' . date_i18n(get_option('time_format'), $timeNow + $gmt_offset);
96
+
97
+ $headers = 'MIME-Version: 1.0' . "\r\n";
98
+ $headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
99
+ $headers .= "From: " . $bps_email_from . "\r\n";
100
+ $headers .= "Cc: " . $bps_email_cc . "\r\n";
101
+ $headers .= "Bcc: " . $bps_email_bcc . "\r\n";
102
+
103
+ $subject = " BPS Alert: The /bulletproof-security/ plugin folder has been renamed or deleted - $timestamp ";
104
+ $message = '<p>When the /bulletproof-security/ plugin folder is renamed or deleted this email alert will be sent to you every 5 minutes. To stop these email alerts from being sent, go to the WordPress Plugins page, click the Must-Use link, click the BPS MU Tools Disable BPS Folder|Deactivation Checks link.</p>';
105
+ $message .= '<p>Website: '.$justUrl.'</p>';
106
+
107
+ mail( $bps_email_to, $subject, $message, $headers );
108
+
109
+ $MUTools_Option_settings = array(
110
+ 'bps_mu_tools_timestamp' => time() + 300,
111
+ 'bps_mu_tools_enable_disable_autoupdate' => $MUTools_Options['bps_mu_tools_enable_disable_autoupdate'],
112
+ 'bps_mu_tools_enable_disable_deactivation' => $MUTools_Options['bps_mu_tools_enable_disable_deactivation']
113
+ );
114
+
115
+ foreach ( $MUTools_Option_settings as $key => $value ) {
116
+ update_option('bulletproof_security_options_MU_tools_free', $MUTools_Option_settings);
117
+ }
118
+ }
119
+ }
120
+ }
121
+ }
122
+
123
+ bpsPro_plugin_folder_check();
124
+
125
+ // Check if the BPS plugin has been deactivated.
126
+ // Writes a log entry and sends an email alert once every 5 minutes.
127
+ function bpsPro_plugin_deactivation_check() {
128
+
129
+ $MUTools_Options = get_option('bulletproof_security_options_MU_tools_free');
130
+
131
+ if ( @$MUTools_Options['bps_mu_tools_enable_disable_deactivation'] == 'disable' ) {
132
+ return;
133
+ }
134
+
135
+ global $blog_id;
136
+
137
+ if ( is_multisite() && $blog_id != 1 ) {
138
+ return;
139
+ }
140
+
141
+ if ( time() > $MUTools_Options['bps_mu_tools_timestamp'] ) {
142
+
143
+ // The require_once for plugin.php will cause a php warning error: headers already being sent.
144
+ if ( ! function_exists( 'is_plugin_active_for_network' ) ) {
145
+ require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
146
+ }
147
+
148
+ $bps_plugin = 'bulletproof-security/bulletproof-security.php';
149
+ @$bps_plugin_active = in_array( $bps_plugin, apply_filters('active_plugins', get_option('active_plugins') ) );
150
+
151
+ if ( $bps_plugin_active != 1 && ! is_plugin_active_for_network( $bps_plugin ) ) {
152
+
153
+ $bpsProLog = WP_CONTENT_DIR . '/bps-backup/logs/http_error_log.txt';
154
+ $timeNow = time();
155
+ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
156
+ $timestamp = date_i18n(get_option('date_format'), strtotime("11/15-1976")) . ' - ' . date_i18n(get_option('time_format'), $timeNow + $gmt_offset);
157
+
158
+ $log_contents = "\r\n" . '[BPS Plugin Deactivated: ' . $timestamp . ']' . "\r\n" . 'This Security Log entry is created when the BPS plugin is deactivated. An email alert is also sent to you when the BPS plugin is deactivated.'."\r\n";
159
+
160
+ if ( is_writable( $bpsProLog ) ) {
161
+
162
+ if ( ! $handle = fopen( $bpsProLog, 'a' ) ) {
163
+ exit;
164
+ }
165
+
166
+ if ( fwrite( $handle, $log_contents) === FALSE ) {
167
+ exit;
168
+ }
169
+
170
+ fclose($handle);
171
+ }
172
+
173
+ $EmailOptions = get_option('bulletproof_security_options_email');
174
+ $bps_email_to = $EmailOptions['bps_send_email_to'];
175
+ $bps_email_from = $EmailOptions['bps_send_email_from'];
176
+ $bps_email_cc = $EmailOptions['bps_send_email_cc'];
177
+ $bps_email_bcc = $EmailOptions['bps_send_email_bcc'];
178
+ $justUrl = get_site_url();
179
+ $timestamp = date_i18n(get_option('date_format'), strtotime("11/15-1976")) . ' - ' . date_i18n(get_option('time_format'), $timeNow + $gmt_offset);
180
+
181
+ $headers = 'MIME-Version: 1.0' . "\r\n";
182
+ $headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
183
+ $headers .= "From: " . $bps_email_from . "\r\n";
184
+ $headers .= "Cc: " . $bps_email_cc . "\r\n";
185
+ $headers .= "Bcc: " . $bps_email_bcc . "\r\n";
186
+
187
+ $subject = " BPS Pro Alert: The BPS plugin has been deactivated - $timestamp ";
188
+ $message = '<p>The BPS plugin has been deactivated on website: '.$justUrl.'. To stop these email alerts from being sent while BPS is deactivated, go to the WordPress Plugins page, click the Must-Use link, click the BPS MU Tools Disable BPS Folder|Deactivation Checks link. If you just upgraded BPS you can ignore this email alert.</p>';
189
+ $message .= '<p>Note: If you are troubleshooting the BPS plugin then click this BPS Troubleshooting link: https://forum.ait-pro.com/forums/topic/read-me-first-free/#bps-free-general-troubleshooting. The BPS plugin has built-in troubleshooting capability and should not be deactivated for troubleshooting. Deactivating BPS removes the built-in troubleshooting tools/capabilities. You can turn all BPS security features On or Off for troubleshooting to isolate exactly which BPS security feature is causing an issue/problem or to confirm or eliminate BPS as the cause of an issue/problem.</p>';
190
+
191
+ mail( $bps_email_to, $subject, $message, $headers );
192
+
193
+ $MUTools_Option_settings = array(
194
+ 'bps_mu_tools_timestamp' => time() + 300,
195
+ 'bps_mu_tools_enable_disable_autoupdate' => $MUTools_Options['bps_mu_tools_enable_disable_autoupdate'],
196
+ 'bps_mu_tools_enable_disable_deactivation' => $MUTools_Options['bps_mu_tools_enable_disable_deactivation']
197
+ );
198
+
199
+ foreach ( $MUTools_Option_settings as $key => $value ) {
200
+ update_option('bulletproof_security_options_MU_tools_free', $MUTools_Option_settings);
201
+ }
202
+ }
203
+ }
204
+ }
205
+
206
+ bpsPro_plugin_deactivation_check();
207
+
208
+ // Note: you cannot use current_user_can('manage_options') in a must-use plugin.
209
+ function bpsPro_toggle_links() {
210
+
211
+ if ( is_admin() && isset( $_GET['bps_toggle_a'] ) || is_network_admin() && isset( $_GET['bps_toggle_a'] ) || is_admin() && isset( $_GET['bps_toggle_d'] ) || is_network_admin() && isset( $_GET['bps_toggle_d'] ) ) {
212
+
213
+ $MUTools_Options = get_option('bulletproof_security_options_MU_tools_free');
214
+
215
+ if ( ! isset( $_GET['bps_toggle_a'] ) ) {
216
+ $bps_toggle_a = $MUTools_Options['bps_mu_tools_enable_disable_autoupdate'];
217
+ } elseif ( 'enable' == $_GET['bps_toggle_a'] ) {
218
+ $bps_toggle_a = 'enable';
219
+ } elseif ( 'disable' == $_GET['bps_toggle_a'] ) {
220
+ $bps_toggle_a = 'disable';
221
+ }
222
+
223
+ if ( ! isset( $_GET['bps_toggle_d'] ) ) {
224
+ $bps_toggle_d = $MUTools_Options['bps_mu_tools_enable_disable_deactivation'];
225
+ } elseif ( 'enable' == $_GET['bps_toggle_d'] ) {
226
+ $bps_toggle_d = 'enable';
227
+ } elseif ( 'disable' == $_GET['bps_toggle_d'] ) {
228
+ $bps_toggle_d = 'disable';
229
+ }
230
+
231
+ $MUTools_Option_settings = array(
232
+ 'bps_mu_tools_timestamp' => time() + 300,
233
+ 'bps_mu_tools_enable_disable_autoupdate' => $bps_toggle_a,
234
+ 'bps_mu_tools_enable_disable_deactivation' => $bps_toggle_d
235
+ );
236
+
237
+ foreach ( $MUTools_Option_settings as $key => $value ) {
238
+ update_option('bulletproof_security_options_MU_tools_free', $MUTools_Option_settings);
239
+ }
240
+ }
241
+ }
242
+
243
+ bpsPro_toggle_links();
244
+
245
+ function bpsPro_mu_plugin_actlinks( $links, $file ) {
246
+ static $this_plugin;
247
+
248
+ if ( ! $this_plugin )
249
+ $this_plugin = plugin_basename(__FILE__);
250
+ if ( $file == $this_plugin ) {
251
+
252
+ $MUTools_Options = get_option('bulletproof_security_options_MU_tools_free');
253
+
254
+ if ( $MUTools_Options['bps_mu_tools_enable_disable_autoupdate'] == 'enable' ) {
255
+
256
+ if ( is_multisite() ) {
257
+ $links[] = '<a href="'.network_admin_url( 'plugins.php?plugin_status=mustuse&bps_toggle_a=disable' ).'">Disable BPS Plugin AutoUpdates</a>';
258
+ } else {
259
+ $links[] = '<a href="'.admin_url( 'plugins.php?plugin_status=mustuse&bps_toggle_a=disable' ).'">Disable BPS Plugin AutoUpdates</a>';
260
+ }
261
+
262
+ } else {
263
+
264
+ if ( $MUTools_Options['bps_mu_tools_enable_disable_autoupdate'] == 'disable' ) {
265
+
266
+ if ( is_multisite() ) {
267
+ $links[] = '<a href="'.network_admin_url( 'plugins.php?plugin_status=mustuse&bps_toggle_a=enable' ).'">Enable BPS Plugin AutoUpdates</a>';
268
+ } else {
269
+ $links[] = '<a href="'.admin_url( 'plugins.php?plugin_status=mustuse&bps_toggle_a=enable' ).'">Enable BPS Plugin AutoUpdates</a>';
270
+ }
271
+ }
272
+ }
273
+
274
+ if ( $MUTools_Options['bps_mu_tools_enable_disable_deactivation'] == 'enable' ) {
275
+
276
+ if ( is_multisite() ) {
277
+ $links[] = '<br><a href="'.network_admin_url( 'plugins.php?plugin_status=mustuse&bps_toggle_d=disable' ).'">Disable BPS Folder|Deactivation Checks</a>';
278
+ } else {
279
+ $links[] = '<br><a href="'.admin_url( 'plugins.php?plugin_status=mustuse&bps_toggle_d=disable' ).'">Disable BPS Folder|Deactivation Checks</a>';
280
+ }
281
+
282
+ } else {
283
+
284
+ if ( $MUTools_Options['bps_mu_tools_enable_disable_deactivation'] == 'disable' ) {
285
+
286
+ if ( is_multisite() ) {
287
+ $links[] = '<br><a href="'.network_admin_url( 'plugins.php?plugin_status=mustuse&bps_toggle_d=enable' ).'">Enable BPS Folder|Deactivation Checks</a>';
288
+ } else {
289
+ $links[] = '<br><a href="'.admin_url( 'plugins.php?plugin_status=mustuse&bps_toggle_d=enable' ).'">Enable BPS Folder|Deactivation Checks</a>';
290
+ }
291
+ }
292
+ }
293
+ }
294
+ return $links;
295
+ }
296
+
297
+ add_filter( 'plugin_action_links', 'bpsPro_mu_plugin_actlinks', 10, 2 );
298
+ add_filter( 'network_admin_plugin_action_links', 'bpsPro_mu_plugin_actlinks', 10, 2 );
299
+
300
+ ?>
admin/htaccess/bps-plugin-autoupdate.php DELETED
@@ -1,33 +0,0 @@
1
- <?php
2
- ## BPS AutoUpdate Version: 1.0
3
- ## This must-use file is created by the BulletProof Security plugin when you choose to allow Automatic Updates for the BPS plugin.
4
- ## Important Note: If you would like to add additional customizations to this file it is recommended that you copy this file, make your customizations and
5
- ## then rename this file and the function name and upload it to your /wp-content/mu-plugins/ folder. Most likely additional things will be added/created in
6
- ## this BPS must-use file at a later time. So if you customize this BPS file then you will lose your customizations if/when this file is updated in the future.
7
- ##
8
- ## Uncommenting these filters below and commenting out this BPS filter: add_filter( 'auto_update_plugin', 'bpsPro_autoupdate_bps_plugin', 10, 2 );
9
- ## will allow ALL plugin and theme automatic updates on your website.
10
- /**
11
- add_filter( 'auto_update_plugin', '__return_true' );
12
- add_filter( 'auto_update_theme', '__return_true' );
13
- **/
14
-
15
- function bpsPro_autoupdate_bps_plugin( $update, $item ) {
16
-
17
- // Array of plugin slugs to AutoUpdate
18
- $plugins = array (
19
- 'bulletproof-security',
20
- );
21
-
22
- // AutoUpdate plugins in the $plugins array
23
- if ( in_array( $item->slug, $plugins ) ) {
24
- return true;
25
- } else {
26
- // For any/all other plugins that are not in the $plugins array, return the WP $update API response
27
- return $update;
28
- }
29
- }
30
-
31
- add_filter( 'auto_update_plugin', 'bpsPro_autoupdate_bps_plugin', 10, 2 );
32
-
33
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/htaccess/secure.htaccess CHANGED
@@ -1,4 +1,4 @@
1
- # BULLETPROOF 1.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.
@@ -83,7 +83,7 @@ RewriteRule ^index\.php$ - [L]
83
  RewriteCond %{REQUEST_METHOD} ^(TRACE|DELETE|TRACK|DEBUG) [NC]
84
  RewriteRule ^(.*)$ - [F]
85
  RewriteCond %{REQUEST_METHOD} ^(HEAD) [NC]
86
- RewriteRule ^(.*)$ /wp-content/plugins/bulletproof-security/405.php [L]
87
 
88
  # PLUGINS/THEMES AND VARIOUS EXPLOIT FILTER SKIP RULES
89
  # To add plugin/theme skip/bypass rules use BPS Custom Code.
@@ -146,7 +146,7 @@ RewriteRule . - [S=1]
146
  RewriteCond %{HTTP_USER_AGENT} (havij|libwww-perl|wget|python|nikto|curl|scan|java|winhttp|clshttp|loader) [NC,OR]
147
  RewriteCond %{HTTP_USER_AGENT} (%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
148
  RewriteCond %{HTTP_USER_AGENT} (;|<|>|'|"|\)|\(|%0A|%0D|%22|%27|%28|%3C|%3E|%00).*(libwww-perl|wget|python|nikto|curl|scan|java|winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR]
149
- RewriteCond %{THE_REQUEST} (\?|\*|%2a)+(%20+|\\s+|%20+\\s+|\\s+%20+|\\s+%20+\\s+)HTTP(:/|/) [NC,OR]
150
  RewriteCond %{THE_REQUEST} etc/passwd [NC,OR]
151
  RewriteCond %{THE_REQUEST} cgi-bin [NC,OR]
152
  RewriteCond %{THE_REQUEST} (%0A|%0D|\\r|\\n) [NC,OR]
@@ -154,17 +154,16 @@ RewriteCond %{REQUEST_URI} owssvr\.dll [NC,OR]
154
  RewriteCond %{HTTP_REFERER} (%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
155
  RewriteCond %{HTTP_REFERER} \.opendirviewer\. [NC,OR]
156
  RewriteCond %{HTTP_REFERER} users\.skynet\.be.* [NC,OR]
157
- RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [NC,OR]
158
  RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [NC,OR]
159
  RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC,OR]
160
  RewriteCond %{QUERY_STRING} \=PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC,OR]
161
  RewriteCond %{QUERY_STRING} (\.\./|%2e%2e%2f|%2e%2e/|\.\.%2f|%2e\.%2f|%2e\./|\.%2e%2f|\.%2e/) [NC,OR]
162
  RewriteCond %{QUERY_STRING} ftp\: [NC,OR]
163
- RewriteCond %{QUERY_STRING} http\: [NC,OR]
164
- RewriteCond %{QUERY_STRING} https\: [NC,OR]
165
  RewriteCond %{QUERY_STRING} \=\|w\| [NC,OR]
166
  RewriteCond %{QUERY_STRING} ^(.*)/self/(.*)$ [NC,OR]
167
- RewriteCond %{QUERY_STRING} ^(.*)cPath=http://(.*)$ [NC,OR]
168
  RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
169
  RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
170
  RewriteCond %{QUERY_STRING} (\<|%3C).*embed.*(\>|%3E) [NC,OR]
1
+ # BULLETPROOF 2.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.
83
  RewriteCond %{REQUEST_METHOD} ^(TRACE|DELETE|TRACK|DEBUG) [NC]
84
  RewriteRule ^(.*)$ - [F]
85
  RewriteCond %{REQUEST_METHOD} ^(HEAD) [NC]
86
+ RewriteRule ^(.*)$ /wp-content/plugins/bulletproof-security/405.php [R,L]
87
 
88
  # PLUGINS/THEMES AND VARIOUS EXPLOIT FILTER SKIP RULES
89
  # To add plugin/theme skip/bypass rules use BPS Custom Code.
146
  RewriteCond %{HTTP_USER_AGENT} (havij|libwww-perl|wget|python|nikto|curl|scan|java|winhttp|clshttp|loader) [NC,OR]
147
  RewriteCond %{HTTP_USER_AGENT} (%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
148
  RewriteCond %{HTTP_USER_AGENT} (;|<|>|'|"|\)|\(|%0A|%0D|%22|%27|%28|%3C|%3E|%00).*(libwww-perl|wget|python|nikto|curl|scan|java|winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR]
149
+ RewriteCond %{THE_REQUEST} (\?|\*|%2a)+(%20+|\\s+|%20+\\s+|\\s+%20+|\\s+%20+\\s+)(http|https)(:/|/) [NC,OR]
150
  RewriteCond %{THE_REQUEST} etc/passwd [NC,OR]
151
  RewriteCond %{THE_REQUEST} cgi-bin [NC,OR]
152
  RewriteCond %{THE_REQUEST} (%0A|%0D|\\r|\\n) [NC,OR]
154
  RewriteCond %{HTTP_REFERER} (%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
155
  RewriteCond %{HTTP_REFERER} \.opendirviewer\. [NC,OR]
156
  RewriteCond %{HTTP_REFERER} users\.skynet\.be.* [NC,OR]
157
+ RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(http|https):// [NC,OR]
158
  RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [NC,OR]
159
  RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC,OR]
160
  RewriteCond %{QUERY_STRING} \=PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC,OR]
161
  RewriteCond %{QUERY_STRING} (\.\./|%2e%2e%2f|%2e%2e/|\.\.%2f|%2e\.%2f|%2e\./|\.%2e%2f|\.%2e/) [NC,OR]
162
  RewriteCond %{QUERY_STRING} ftp\: [NC,OR]
163
+ RewriteCond %{QUERY_STRING} (http|https)\: [NC,OR]
 
164
  RewriteCond %{QUERY_STRING} \=\|w\| [NC,OR]
165
  RewriteCond %{QUERY_STRING} ^(.*)/self/(.*)$ [NC,OR]
166
+ RewriteCond %{QUERY_STRING} ^(.*)cPath=(http|https)://(.*)$ [NC,OR]
167
  RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
168
  RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
169
  RewriteCond %{QUERY_STRING} (\<|%3C).*embed.*(\>|%3E) [NC,OR]
admin/htaccess/wpadmin-secure.htaccess CHANGED
@@ -1,4 +1,4 @@
1
- # BULLETPROOF 1.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
@@ -62,10 +62,8 @@ Deny from all
62
 
63
  # END OPTIONAL WP-ADMIN ADDITIONAL SECURITY MEASURES
64
 
65
- # REQUEST METHODS FILTERED
66
  RewriteEngine On
67
- RewriteCond %{REQUEST_METHOD} ^(TRACE|DELETE|TRACK|DEBUG) [NC]
68
- RewriteRule ^(.*)$ - [F]
69
 
70
  # BEGIN CUSTOM CODE WPADMIN PLUGIN/FILE SKIP RULES
71
  # To add wp-admin plugin skip/bypass rules use BPS wp-admin Custom Code.
@@ -100,7 +98,7 @@ RewriteRule . - [S=1]
100
  # Use BPS wp-admin Custom Code to modify/edit/change this code and to save it permanently.
101
  RewriteCond %{HTTP_USER_AGENT} (%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
102
  RewriteCond %{HTTP_USER_AGENT} (libwww-perl|wget|python|nikto|curl|scan|java|winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR]
103
- RewriteCond %{THE_REQUEST} (\?|\*|%2a)+(%20+|\\s+|%20+\\s+|\\s+%20+|\\s+%20+\\s+)HTTP(:/|/) [NC,OR]
104
  RewriteCond %{THE_REQUEST} etc/passwd [NC,OR]
105
  RewriteCond %{THE_REQUEST} cgi-bin [NC,OR]
106
  RewriteCond %{THE_REQUEST} (%0A|%0D) [NC,OR]
@@ -108,17 +106,16 @@ RewriteCond %{REQUEST_URI} owssvr\.dll [NC,OR]
108
  RewriteCond %{HTTP_REFERER} (%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
109
  RewriteCond %{HTTP_REFERER} \.opendirviewer\. [NC,OR]
110
  RewriteCond %{HTTP_REFERER} users\.skynet\.be.* [NC,OR]
111
- RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [NC,OR]
112
  RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [NC,OR]
113
  RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC,OR]
114
  RewriteCond %{QUERY_STRING} \=PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC,OR]
115
  RewriteCond %{QUERY_STRING} (\.\./|%2e%2e%2f|%2e%2e/|\.\.%2f|%2e\.%2f|%2e\./|\.%2e%2f|\.%2e/) [NC,OR]
116
  RewriteCond %{QUERY_STRING} ftp\: [NC,OR]
117
- RewriteCond %{QUERY_STRING} http\: [NC,OR]
118
- RewriteCond %{QUERY_STRING} https\: [NC,OR]
119
  RewriteCond %{QUERY_STRING} \=\|w\| [NC,OR]
120
  RewriteCond %{QUERY_STRING} ^(.*)/self/(.*)$ [NC,OR]
121
- RewriteCond %{QUERY_STRING} ^(.*)cPath=http://(.*)$ [NC,OR]
122
  RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
123
  RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
124
  RewriteCond %{QUERY_STRING} (\<|%3C).*iframe.*(\>|%3E) [NC,OR]
1
+ # BULLETPROOF 2.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
62
 
63
  # END OPTIONAL WP-ADMIN ADDITIONAL SECURITY MEASURES
64
 
65
+ # BPS REWRITE ENGINE
66
  RewriteEngine On
 
 
67
 
68
  # BEGIN CUSTOM CODE WPADMIN PLUGIN/FILE SKIP RULES
69
  # To add wp-admin plugin skip/bypass rules use BPS wp-admin Custom Code.
98
  # Use BPS wp-admin Custom Code to modify/edit/change this code and to save it permanently.
99
  RewriteCond %{HTTP_USER_AGENT} (%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
100
  RewriteCond %{HTTP_USER_AGENT} (libwww-perl|wget|python|nikto|curl|scan|java|winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR]
101
+ RewriteCond %{THE_REQUEST} (\?|\*|%2a)+(%20+|\\s+|%20+\\s+|\\s+%20+|\\s+%20+\\s+)(http|https)(:/|/) [NC,OR]
102
  RewriteCond %{THE_REQUEST} etc/passwd [NC,OR]
103
  RewriteCond %{THE_REQUEST} cgi-bin [NC,OR]
104
  RewriteCond %{THE_REQUEST} (%0A|%0D) [NC,OR]
106
  RewriteCond %{HTTP_REFERER} (%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
107
  RewriteCond %{HTTP_REFERER} \.opendirviewer\. [NC,OR]
108
  RewriteCond %{HTTP_REFERER} users\.skynet\.be.* [NC,OR]
109
+ RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(http|https):// [NC,OR]
110
  RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [NC,OR]
111
  RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC,OR]
112
  RewriteCond %{QUERY_STRING} \=PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC,OR]
113
  RewriteCond %{QUERY_STRING} (\.\./|%2e%2e%2f|%2e%2e/|\.\.%2f|%2e\.%2f|%2e\./|\.%2e%2f|\.%2e/) [NC,OR]
114
  RewriteCond %{QUERY_STRING} ftp\: [NC,OR]
115
+ RewriteCond %{QUERY_STRING} (http|https)\: [NC,OR]
 
116
  RewriteCond %{QUERY_STRING} \=\|w\| [NC,OR]
117
  RewriteCond %{QUERY_STRING} ^(.*)/self/(.*)$ [NC,OR]
118
+ RewriteCond %{QUERY_STRING} ^(.*)cPath=(http|https)://(.*)$ [NC,OR]
119
  RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
120
  RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
121
  RewriteCond %{QUERY_STRING} (\<|%3C).*iframe.*(\>|%3E) [NC,OR]
admin/images/question-mark.png ADDED
Binary file
admin/includes/admin.php CHANGED
@@ -102,7 +102,7 @@ global $wpdb, $wp_version, $blog_id;
102
  }
103
  }
104
 
105
- // Whitelist BPS DB options: Total: 31
106
  register_setting('bulletproof_security_options', 'bulletproof_security_options', 'bulletproof_security_options_validate');
107
  register_setting('bulletproof_security_options_SLF', 'bulletproof_security_options_SLF', 'bulletproof_security_options_validate_SLF');
108
  register_setting('bulletproof_security_options_debug', 'bulletproof_security_options_debug', 'bulletproof_security_options_validate_debug');
@@ -119,9 +119,11 @@ register_setting('bulletproof_security_options_apache_modules', 'bulletproof_sec
119
  register_setting('bulletproof_security_options_hidden_plugins', 'bulletproof_security_options_hidden_plugins', 'bulletproof_security_options_validate_hidden_plugins');
120
  register_setting('bulletproof_security_options_setup_wizard_woo', 'bulletproof_security_options_setup_wizard_woo', 'bulletproof_security_options_validate_setup_wizard_woo');
121
  register_setting('bulletproof_security_options_sec_log_post_limit', 'bulletproof_security_options_sec_log_post_limit', 'bulletproof_security_options_validate_sec_log_post_limit');
 
122
  register_setting('bulletproof_security_options_status_display', 'bulletproof_security_options_status_display', 'bulletproof_security_options_validate_status_display');
123
  register_setting('bulletproof_security_options_login_security', 'bulletproof_security_options_login_security', 'bulletproof_security_options_validate_login_security');
124
  register_setting('bulletproof_security_options_htaccess_files', 'bulletproof_security_options_htaccess_files', 'bulletproof_security_options_validate_htaccess_files');
 
125
  register_setting('bulletproof_security_options_idle_session', 'bulletproof_security_options_idle_session', 'bulletproof_security_options_validate_idle_session');
126
  register_setting('bulletproof_security_options_htaccess_res', 'bulletproof_security_options_htaccess_res', 'bulletproof_security_options_validate_htaccess_res');
127
  register_setting('bulletproof_security_options_auth_cookie', 'bulletproof_security_options_auth_cookie', 'bulletproof_security_options_validate_auth_cookie');
@@ -171,6 +173,31 @@ register_setting('bulletproof_security_options_GDMW', 'bulletproof_security_opti
171
  if ( ! file_exists($bpsProDBBLogARQ) ) {
172
  @copy($bpsProDBBLog, $bpsProDBBLogARQ);
173
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
174
  }
175
 
176
  // BPS Menu
@@ -639,85 +666,91 @@ require_once( ABSPATH . 'wp-admin/includes/plugin.php');
639
 
640
  if ( $POPoptions['bps_pop_uninstall'] == 2 ) {
641
 
642
- global $wpdb, $current_user;
643
 
644
- bpsPro_pop_uninstall_bps_backup_folder($source);
645
 
646
- $user_id = $current_user->ID;
647
- $Stable_name = $wpdb->prefix . "bpspro_seclog_ignore";
648
- $Ltable_name = $wpdb->prefix . "bpspro_login_security";
649
- $DBBtable_name = $wpdb->prefix . "bpspro_db_backup";
650
- $RootHtaccess = ABSPATH . '.htaccess';
651
- $RootHtaccessBackup = WP_CONTENT_DIR . '/bps-backup/master-backups/root.htaccess';
652
- $wpadminHtaccess = ABSPATH . 'wp-admin/.htaccess';
653
- $wpadminHtaccessBackup = WP_CONTENT_DIR . '/bps-backup/master-backups/wpadmin.htaccess';
654
 
655
- if ( file_exists($RootHtaccess) ) {
656
- copy($RootHtaccess, $RootHtaccessBackup);
657
- }
658
- if ( file_exists($wpadminHtaccess) ) {
659
- copy($wpadminHtaccess, $wpadminHtaccessBackup);
660
- }
661
 
662
- delete_transient( 'bulletproof-security_info' );
663
 
664
- delete_option('bulletproof_security_options');
665
- delete_option('bulletproof_security_options_customcode');
666
- delete_option('bulletproof_security_options_customcode_WPA');
667
- delete_option('bulletproof_security_options_maint');
668
- delete_option('bulletproof_security_options_maint_mode');
669
- delete_option('bulletproof_security_options_mynotes');
670
- delete_option('bulletproof_security_options_email');
671
- delete_option('bulletproof_security_options_autolock');
672
- delete_option('bulletproof_security_options_login_security');
673
- delete_option('bulletproof_security_options_theme_skin');
674
- delete_option('bulletproof_security_options_db_backup');
675
- delete_option('bulletproof_security_options_DBB_log');
676
- delete_option('bulletproof_security_options_htaccess_res');
677
- delete_option('bulletproof_security_options_net_correction');
678
- delete_option('bulletproof_security_options_spinner');
679
- delete_option('bulletproof_security_options_wpt_nodes');
680
- delete_option('bulletproof_security_options_status_display');
681
- delete_option('bulletproof_security_options_pop_uninstall');
682
- delete_option('bulletproof_security_options_GDMW');
683
- delete_option('bulletproof_security_options_wizard_free');
684
- delete_option('bulletproof_security_options_idle_session');
685
- delete_option('bulletproof_security_options_auth_cookie');
686
- delete_option('bulletproof_security_options_SLF');
687
- delete_option('bulletproof_security_options_scrolltop');
688
- delete_option('bulletproof_security_options_apache_modules');
689
- delete_option('bulletproof_security_options_sec_log_post_limit');
690
- delete_option('bulletproof_security_options_debug');
691
- delete_option('bulletproof_security_options_hidden_plugins');
692
- delete_option('bulletproof_security_options_hpf_cron');
693
- delete_option('bulletproof_security_options_zip_fix');
694
- delete_option('bulletproof_security_options_autoupdate');
695
- delete_option('bulletproof_security_options_setup_wizard_woo');
696
- // will be adding this new upgrade notice option later
697
- // delete_option('bulletproof_security_options_upgrade_notice');
 
 
 
698
 
699
- $wpdb->query("DROP TABLE IF EXISTS $Stable_name");
700
- $wpdb->query("DROP TABLE IF EXISTS $Ltable_name");
701
- $wpdb->query("DROP TABLE IF EXISTS $DBBtable_name");
702
 
703
- delete_user_meta($user_id, 'bps_ignore_iis_notice');
704
- delete_user_meta($user_id, 'bps_ignore_sucuri_notice');
705
- delete_user_meta($user_id, 'bps_ignore_BLC_notice');
706
- delete_user_meta($user_id, 'bps_ignore_PhpiniHandler_notice');
707
- delete_user_meta($user_id, 'bps_ignore_Permalinks_notice');
708
- delete_user_meta($user_id, 'bps_brute_force_login_protection_notice');
709
- delete_user_meta($user_id, 'bps_speed_boost_cache_notice');
710
- delete_user_meta($user_id, 'bps_xmlrpc_ddos_notice');
711
- delete_user_meta($user_id, 'bps_author_enumeration_notice');
712
- delete_user_meta($user_id, 'bps_ignore_wpfirewall2_notice');
713
- delete_user_meta($user_id, 'bps_hud_NetworkActivationAlert_notice');
714
- delete_user_meta($user_id, 'bps_referer_spam_notice');
715
- delete_user_meta($user_id, 'bps_sniff_driveby_notice');
716
- delete_user_meta($user_id, 'bps_iframe_clickjack_notice');
717
- delete_user_meta($user_id, 'bps_bonus_code_dismiss_all_notice');
718
- delete_user_meta($user_id, 'bps_post_request_attack_notice');
719
- delete_user_meta($user_id, 'bps_ignore_jetpack_notice');
720
- delete_user_meta($user_id, 'bps_ignore_woocommerce_notice');
 
 
 
721
 
722
  @unlink($wpadminHtaccess);
723
 
@@ -726,16 +759,33 @@ require_once( ABSPATH . 'wp-admin/includes/plugin.php');
726
  }
727
 
728
  $autoupdate_muplugins_file = WP_CONTENT_DIR . '/mu-plugins/bps-plugin-autoupdate.php';
 
729
 
730
  if ( file_exists($autoupdate_muplugins_file) ) {
731
  unlink($autoupdate_muplugins_file);
732
  }
733
-
 
 
 
734
  } else {
735
 
736
  delete_option( 'bulletproof_security_options' );
737
  delete_option('bulletproof_security_options_wizard_free');
738
  delete_transient( 'bulletproof-security_info' );
 
 
 
 
 
 
 
 
 
 
 
 
 
739
  }
740
  }
741
 
@@ -1021,6 +1071,14 @@ function bulletproof_security_options_validate_setup_wizard_woo($input) {
1021
  return $options;
1022
  }
1023
 
 
 
 
 
 
 
 
 
1024
  // Style/Script Loader Filter (SLF)
1025
  function bulletproof_security_options_validate_SLF($input) {
1026
  $options = get_option('bulletproof_security_options_SLF');
@@ -1042,7 +1100,9 @@ function bulletproof_security_options_validate_apache_modules($input) {
1042
  function bulletproof_security_options_validate_sec_log_post_limit($input) {
1043
  $options = get_option('bulletproof_security_options_sec_log_post_limit');
1044
  $options['bps_security_log_post_limit'] = wp_filter_nohtml_kses($input['bps_security_log_post_limit']);
1045
-
 
 
1046
  return $options;
1047
  }
1048
 
@@ -1099,4 +1159,15 @@ function bulletproof_security_options_validate_zip_fix($input) {
1099
  return $options;
1100
  }
1101
 
 
 
 
 
 
 
 
 
 
 
 
1102
  ?>
102
  }
103
  }
104
 
105
+ // Whitelist BPS DB options: Total: 33
106
  register_setting('bulletproof_security_options', 'bulletproof_security_options', 'bulletproof_security_options_validate');
107
  register_setting('bulletproof_security_options_SLF', 'bulletproof_security_options_SLF', 'bulletproof_security_options_validate_SLF');
108
  register_setting('bulletproof_security_options_debug', 'bulletproof_security_options_debug', 'bulletproof_security_options_validate_debug');
119
  register_setting('bulletproof_security_options_hidden_plugins', 'bulletproof_security_options_hidden_plugins', 'bulletproof_security_options_validate_hidden_plugins');
120
  register_setting('bulletproof_security_options_setup_wizard_woo', 'bulletproof_security_options_setup_wizard_woo', 'bulletproof_security_options_validate_setup_wizard_woo');
121
  register_setting('bulletproof_security_options_sec_log_post_limit', 'bulletproof_security_options_sec_log_post_limit', 'bulletproof_security_options_validate_sec_log_post_limit');
122
+ register_setting('bulletproof_security_options_wizard_autofix', 'bulletproof_security_options_wizard_autofix', 'bulletproof_security_options_validate_wizard_autofix');
123
  register_setting('bulletproof_security_options_status_display', 'bulletproof_security_options_status_display', 'bulletproof_security_options_validate_status_display');
124
  register_setting('bulletproof_security_options_login_security', 'bulletproof_security_options_login_security', 'bulletproof_security_options_validate_login_security');
125
  register_setting('bulletproof_security_options_htaccess_files', 'bulletproof_security_options_htaccess_files', 'bulletproof_security_options_validate_htaccess_files');
126
+ register_setting('bulletproof_security_options_MU_tools_free', 'bulletproof_security_options_MU_tools_free', 'bulletproof_security_options_validate_MU_tools_free');
127
  register_setting('bulletproof_security_options_idle_session', 'bulletproof_security_options_idle_session', 'bulletproof_security_options_validate_idle_session');
128
  register_setting('bulletproof_security_options_htaccess_res', 'bulletproof_security_options_htaccess_res', 'bulletproof_security_options_validate_htaccess_res');
129
  register_setting('bulletproof_security_options_auth_cookie', 'bulletproof_security_options_auth_cookie', 'bulletproof_security_options_validate_auth_cookie');
173
  if ( ! file_exists($bpsProDBBLogARQ) ) {
174
  @copy($bpsProDBBLog, $bpsProDBBLogARQ);
175
  }
176
+
177
+ // Create the /mu-plugins/ Folder
178
+ if ( ! is_dir( WP_CONTENT_DIR . '/mu-plugins' ) ) {
179
+ @mkdir( WP_CONTENT_DIR . '/mu-plugins', 0755, true );
180
+ @chmod( WP_CONTENT_DIR . '/mu-plugins/', 0755 );
181
+ }
182
+
183
+ // Copy the bps-mu-tools.php file to /mu-plugins/.
184
+ $bps_mu_tools_master_file = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-mu-tools.php';
185
+ $bps_mu_tools_muplugins_file = WP_CONTENT_DIR . '/mu-plugins/bps-mu-tools.php';
186
+
187
+ if ( is_dir( WP_CONTENT_DIR . '/mu-plugins' ) && ! file_exists($bps_mu_tools_muplugins_file) ) {
188
+ @copy($bps_mu_tools_master_file, $bps_mu_tools_muplugins_file);
189
+ }
190
+
191
+ $bps_autofix_options = 'bulletproof_security_options_wizard_autofix';
192
+
193
+ $AutoFix_Option_settings = array( 'bps_wizard_autofix' => 'On' );
194
+
195
+ if ( ! get_option( $bps_autofix_options ) ) {
196
+
197
+ foreach( $AutoFix_Option_settings as $key => $value ) {
198
+ update_option('bulletproof_security_options_wizard_autofix', $AutoFix_Option_settings);
199
+ }
200
+ }
201
  }
202
 
203
  // BPS Menu
666
 
667
  if ( $POPoptions['bps_pop_uninstall'] == 2 ) {
668
 
669
+ global $wpdb, $current_user;
670
 
671
+ bpsPro_pop_uninstall_bps_backup_folder($source);
672
 
673
+ $user_id = $current_user->ID;
674
+ $Stable_name = $wpdb->prefix . "bpspro_seclog_ignore";
675
+ $Ltable_name = $wpdb->prefix . "bpspro_login_security";
676
+ $DBBtable_name = $wpdb->prefix . "bpspro_db_backup";
677
+ $RootHtaccess = ABSPATH . '.htaccess';
678
+ $RootHtaccessBackup = WP_CONTENT_DIR . '/bps-backup/master-backups/root.htaccess';
679
+ $wpadminHtaccess = ABSPATH . 'wp-admin/.htaccess';
680
+ $wpadminHtaccessBackup = WP_CONTENT_DIR . '/bps-backup/master-backups/wpadmin.htaccess';
681
 
682
+ if ( file_exists($RootHtaccess) ) {
683
+ copy($RootHtaccess, $RootHtaccessBackup);
684
+ }
685
+ if ( file_exists($wpadminHtaccess) ) {
686
+ copy($wpadminHtaccess, $wpadminHtaccessBackup);
687
+ }
688
 
689
+ delete_transient( 'bulletproof-security_info' );
690
 
691
+ delete_option('bulletproof_security_options');
692
+ delete_option('bulletproof_security_options_customcode');
693
+ delete_option('bulletproof_security_options_customcode_WPA');
694
+ delete_option('bulletproof_security_options_maint');
695
+ delete_option('bulletproof_security_options_maint_mode');
696
+ delete_option('bulletproof_security_options_mynotes');
697
+ delete_option('bulletproof_security_options_email');
698
+ delete_option('bulletproof_security_options_autolock');
699
+ delete_option('bulletproof_security_options_login_security');
700
+ delete_option('bulletproof_security_options_theme_skin');
701
+ delete_option('bulletproof_security_options_db_backup');
702
+ delete_option('bulletproof_security_options_DBB_log');
703
+ delete_option('bulletproof_security_options_htaccess_res');
704
+ delete_option('bulletproof_security_options_net_correction');
705
+ delete_option('bulletproof_security_options_spinner');
706
+ delete_option('bulletproof_security_options_wpt_nodes');
707
+ delete_option('bulletproof_security_options_status_display');
708
+ delete_option('bulletproof_security_options_pop_uninstall');
709
+ delete_option('bulletproof_security_options_GDMW');
710
+ delete_option('bulletproof_security_options_wizard_free');
711
+ delete_option('bulletproof_security_options_idle_session');
712
+ delete_option('bulletproof_security_options_auth_cookie');
713
+ delete_option('bulletproof_security_options_SLF');
714
+ delete_option('bulletproof_security_options_scrolltop');
715
+ delete_option('bulletproof_security_options_apache_modules');
716
+ delete_option('bulletproof_security_options_sec_log_post_limit');
717
+ delete_option('bulletproof_security_options_debug');
718
+ delete_option('bulletproof_security_options_hidden_plugins');
719
+ delete_option('bulletproof_security_options_hpf_cron');
720
+ delete_option('bulletproof_security_options_zip_fix');
721
+ delete_option('bulletproof_security_options_autoupdate');
722
+ delete_option('bulletproof_security_options_setup_wizard_woo');
723
+ delete_option('bulletproof_security_options_MU_tools_free');
724
+ delete_option('bulletproof_security_options_htaccess_files');
725
+ delete_option('bulletproof_security_options_wizard_autofix');
726
+ // will be adding this new upgrade notice option later
727
+ // delete_option('bulletproof_security_options_upgrade_notice');
728
 
729
+ $wpdb->query("DROP TABLE IF EXISTS $Stable_name");
730
+ $wpdb->query("DROP TABLE IF EXISTS $Ltable_name");
731
+ $wpdb->query("DROP TABLE IF EXISTS $DBBtable_name");
732
 
733
+ delete_user_meta($user_id, 'bps_ignore_iis_notice');
734
+ delete_user_meta($user_id, 'bps_ignore_sucuri_notice');
735
+ delete_user_meta($user_id, 'bps_ignore_BLC_notice');
736
+ delete_user_meta($user_id, 'bps_ignore_PhpiniHandler_notice');
737
+ delete_user_meta($user_id, 'bps_ignore_Permalinks_notice');
738
+ delete_user_meta($user_id, 'bps_brute_force_login_protection_notice');
739
+ delete_user_meta($user_id, 'bps_speed_boost_cache_notice');
740
+ delete_user_meta($user_id, 'bps_xmlrpc_ddos_notice');
741
+ delete_user_meta($user_id, 'bps_author_enumeration_notice');
742
+ delete_user_meta($user_id, 'bps_ignore_wpfirewall2_notice');
743
+ delete_user_meta($user_id, 'bps_hud_NetworkActivationAlert_notice');
744
+ delete_user_meta($user_id, 'bps_referer_spam_notice');
745
+ delete_user_meta($user_id, 'bps_sniff_driveby_notice');
746
+ delete_user_meta($user_id, 'bps_iframe_clickjack_notice');
747
+ delete_user_meta($user_id, 'bps_bonus_code_dismiss_all_notice');
748
+ delete_user_meta($user_id, 'bps_post_request_attack_notice');
749
+ delete_user_meta($user_id, 'bps_ignore_jetpack_notice');
750
+ delete_user_meta($user_id, 'bps_ignore_woocommerce_notice');
751
+ delete_user_meta($user_id, 'bps_ignore_woocommerce_lsm_jtc_notice');
752
+ delete_user_meta($user_id, 'bps_ignore_autoupdate_notice');
753
+ delete_user_meta($user_id, 'bpsPro_ignore_EPC_plugin_notice');
754
 
755
  @unlink($wpadminHtaccess);
756
 
759
  }
760
 
761
  $autoupdate_muplugins_file = WP_CONTENT_DIR . '/mu-plugins/bps-plugin-autoupdate.php';
762
+ $bps_mu_tools_muplugins_file = WP_CONTENT_DIR . '/mu-plugins/bps-mu-tools.php';
763
 
764
  if ( file_exists($autoupdate_muplugins_file) ) {
765
  unlink($autoupdate_muplugins_file);
766
  }
767
+ if ( file_exists($bps_mu_tools_muplugins_file) ) {
768
+ unlink($bps_mu_tools_muplugins_file);
769
+ }
770
+
771
  } else {
772
 
773
  delete_option( 'bulletproof_security_options' );
774
  delete_option('bulletproof_security_options_wizard_free');
775
  delete_transient( 'bulletproof-security_info' );
776
+ delete_option('bulletproof_security_options_MU_tools_free');
777
+
778
+ delete_user_meta($user_id, 'bps_ignore_autoupdate_notice');
779
+
780
+ $autoupdate_muplugins_file = WP_CONTENT_DIR . '/mu-plugins/bps-plugin-autoupdate.php';
781
+ $bps_mu_tools_muplugins_file = WP_CONTENT_DIR . '/mu-plugins/bps-mu-tools.php';
782
+
783
+ if ( file_exists($autoupdate_muplugins_file) ) {
784
+ unlink($autoupdate_muplugins_file);
785
+ }
786
+ if ( file_exists($bps_mu_tools_muplugins_file) ) {
787
+ unlink($bps_mu_tools_muplugins_file);
788
+ }
789
  }
790
  }
791
 
1071
  return $options;
1072
  }
1073
 
1074
+ // Setup Wizard AutoFix On/Off: Automatically creates fixes/setups or whitelist rules for any known issues with other plugins.
1075
+ function bulletproof_security_options_validate_wizard_autofix($input) {
1076
+ $options = get_option('bulletproof_security_options_wizard_autofix');
1077
+ $options['bps_wizard_autofix'] = wp_filter_nohtml_kses($input['bps_wizard_autofix']);
1078
+
1079
+ return $options;
1080
+ }
1081
+
1082
  // Style/Script Loader Filter (SLF)
1083
  function bulletproof_security_options_validate_SLF($input) {
1084
  $options = get_option('bulletproof_security_options_SLF');
1100
  function bulletproof_security_options_validate_sec_log_post_limit($input) {
1101
  $options = get_option('bulletproof_security_options_sec_log_post_limit');
1102
  $options['bps_security_log_post_limit'] = wp_filter_nohtml_kses($input['bps_security_log_post_limit']);
1103
+ $options['bps_security_log_post_none'] = wp_filter_nohtml_kses($input['bps_security_log_post_none']);
1104
+ $options['bps_security_log_post_max'] = wp_filter_nohtml_kses($input['bps_security_log_post_max']);
1105
+
1106
  return $options;
1107
  }
1108
 
1159
  return $options;
1160
  }
1161
 
1162
+ // MU Tools: must-use file: bps-mu-tools.php
1163
+ // timestamp to limit log writing and email alerts when the BPS plugin folder is renamed or deleted.
1164
+ function bulletproof_security_options_validate_MU_tools_free($input) {
1165
+ $options = get_option('bulletproof_security_options_MU_tools_free');
1166
+ $options['bps_mu_tools_timestamp'] = wp_filter_nohtml_kses($input['bps_mu_tools_timestamp']);
1167
+ $options['bps_mu_tools_enable_disable_autoupdate'] = wp_filter_nohtml_kses($input['bps_mu_tools_enable_disable_autoupdate']);
1168
+ $options['bps_mu_tools_enable_disable_deactivation'] = wp_filter_nohtml_kses($input['bps_mu_tools_enable_disable_deactivation']);
1169
+
1170
+ return $options;
1171
+ }
1172
+
1173
  ?>
admin/maintenance/maintenance.php CHANGED
@@ -52,6 +52,21 @@ require_once( ABSPATH . 'wp-admin/includes/plugin-install.php' );
52
  echo '</div>';
53
  echo '</div>';
54
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
  ?>
56
 
57
  <h2 class="bps-tab-title">
52
  echo '</div>';
53
  echo '</div>';
54
  }
55
+
56
+ // Oxygen plugin check: The Oxygen plugin breaks BPS MMode.
57
+ function bpsPro_oxygen_plugin_check() {
58
+
59
+ $oxygen = 'oxygen/functions.php';
60
+ $oxygen_active = in_array( $oxygen, apply_filters('active_plugins', get_option('active_plugins')));
61
+
62
+ if ( $oxygen_active == 1 || is_plugin_active_for_network( $oxygen ) ) {
63
+
64
+ $text = '<div style="max-width:85%;background-color:#dfecf2;border:1px solid #999;font-size:1.13em;font-weight:600;padding:5px 5px;margin:0px 0px 10px 0px;-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="#fb0101">'.__('BPS Error: Oxygen Plugin', 'bulletproof-security').'</font><br>'.__('The Oxygen plugin is installed and activated, which prevents BPS MMode from being successfully turned On while the Oxygen plugin is activated.', 'bulletproof-security').'<br>'.__('Click this ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/oxygen-plugin-bps-maintenance-mode-not-working/" target="_blank" title="Link opens in a new Browser window">'.__('Oxygen plugin forum topic link', 'bulletproof-security').'</a>'.__(' for more information about how to make BPS MMode work with the Oxygen plugin.', 'bulletproof-security').'</div>';
65
+ echo $text;
66
+ }
67
+ }
68
+ bpsPro_oxygen_plugin_check();
69
+
70
  ?>
71
 
72
  <h2 class="bps-tab-title">
admin/security-log/security-log.php CHANGED
@@ -251,7 +251,7 @@ if ( isset( $_POST['Submit-Error-Log-On'] ) && current_user_can('manage_options'
251
  <strong><a href="https://forum.ait-pro.com/forums/topic/read-me-first-free/#bps-free-general-troubleshooting" title="BPS Troubleshooting Steps" target="_blank"><?php _e('BPS Troubleshooting Steps', 'bulletproof-security'); ?></a></strong><br />
252
  <strong><a href="https://forum.ait-pro.com/forums/topic/post-request-protection-post-attack-protection-post-request-blocker/" title="POST Request Attack Protection Bonus Custom Code" target="_blank"><?php _e('POST Request Attack Protection', 'bulletproof-security'); ?></a></strong><br /><br />
253
 
254
- <?php $text = '<strong>'.__('Security Log General Information', 'bulletproof-security').'</strong><br>'.__('Your Security Log file is a plain text static file and not a dynamic file or dynamic display to keep your website resource usage at a bare minimum and keep your website performance at a maximum. Log entries are logged in descending order by Date and Time. You can copy, edit and delete this plain text file.', 'bulletproof-security').'<br><br><strong>'.__('NOTE: ', 'bulletproof-security').'</strong>'.__('Email Alerting and Log file options are located in S-Monitor in BPS Pro instead of being on the Login Security page, Security Log & DB Backup Log pages. The Email Alerting & Log File Options Form is identical on the Login Security, Security Log & DB Backup Log pages in BPS free. You can change and save your email alerting and log file options on any of these pages.', 'bulletproof-security').'<strong><br><br>'.__('NOTE: ', 'bulletproof-security').'</strong>'.__('If a particular User Agent|Bot is generating excessive log entries you can add it to Add User Agents|Bots to Ignore|Not Log tool and that User Agent|Bot will no longer be logged. See the Ignoring|Not Logging User Agents|Bots help section.', 'bulletproof-security').'<strong><br><br>'.__('NOTE: ', 'bulletproof-security').'</strong>'.__('BPS logs all 403 errors, but a 403 error may not necessarily be caused by BPS. Use the troubleshooting steps in the BPS Troubleshooting Steps link at the top of this Read Me help window to confirm or eliminate that the 403 error is being caused by BPS.', 'bulletproof-security').'<br><br>'.__('The Security Log logs 400, 403, 405 and 410 HTTP Response Status Codes by default. You can also log 404 HTTP Response Status Codes by opening this BPS 404 Template file - /bulletproof-security/404.php and copying the logging code into your Theme\'s 404 Template file. When you open the BPS Pro 404.php file you will see simple instructions on how to add the 404 logging code to your Theme\'s 404 Template file. The Security Log also logs other events. See the ', 'bulletproof-security').'<strong>'.__('Total # of Security Log Entries by Type', 'bulletproof-security').'</strong>'.__(' help section below for a complete list of BPS Security Log Entry Types.', 'bulletproof-security').'<br><br><strong>'.__('Total # of Security Log Entries by Type', 'bulletproof-security').'</strong><br>'.__('Displays the total number of each type of Security Log Entry in your Security Log file. The Total # of Security Log Entries by Type is also added to each Security Log file when it is zipped and emailed to you and also added directly in the automated Security Log email. Complete list of BPS Security Log Entry Types: 400 POST Bad Request, 400 GET Bad Request, 403 GET Request, 403 POST Request, 404 GET Not Found Request, 404 POST Not Found Request, 405 HEAD Request, 410 Gone POST Request, 410 Gone GET Request, Idle Session Logout, Maintenance Mode - Visitor Logged. BPS has a total of 11 Security Log Entry Types. BPS Pro has a total of 27 Security Log Entry Types.', 'bulletproof-security').'<br><br><strong>'.__('HTTP Response Status Codes', 'bulletproof-security').'</strong><br>'.__('400 Bad Request - The request could not be understood by the server due to malformed syntax.', 'bulletproof-security').'<br><br>'.__('403 Forbidden - The Server understood the request, but is refusing to fulfill it.', 'bulletproof-security').'<br><br>'.__('404 Not Found - The Server has not found anything matching the Request-URI|URL. No indication is given of whether the condition is temporary or permanent.', 'bulletproof-security').'<br><br>'.__('405 Method Not Allowed - The method specified in the Request-Line is not allowed for the resource identified by the Request-URI. The response MUST include an Allow header containing a list of valid methods for the requested resource. BPS blocks HEAD Requests using a 405 ErrorDocument Redirect. The BPS 405 Template has an Allow header field for the GET, POST and PUT HTTP Methods.', 'bulletproof-security').'<br><br>'.__('410 Gone - The requested resource is no longer available at the Server/site and no forwarding address is known. This condition is expected to be considered permanent.', 'bulletproof-security').'<br><br><strong>'.__('Security Log File Size', 'bulletproof-security').'</strong><br>'.__('Displays the size of your Security Log file. 500KB is the optimum recommended log file size setting that you should choose for your log file to be automatically zipped, emailed and replaced with a new blank Security Log file.', 'bulletproof-security').'<br><br><strong>'.__('Security Log Status:', 'bulletproof-security').'</strong><br>'.__('Displays either Logging is Turned On or Logging is Turned Off.', 'bulletproof-security').'<br><br><strong>'.__('Security Log Last Modified Time:', 'bulletproof-security').'</strong><br>'.__('Displays the last time a Security Log entry was logged.', 'bulletproof-security').'<br><br><strong>'.__('Turn Off Logging', 'bulletproof-security').'</strong><br>'.__('Turns Off HTTP 400, 403, 404, 405 & 410 Security Logging.', 'bulletproof-security').'<br><br><strong>'.__('Turn On Logging', 'bulletproof-security').'</strong><br>'.__('Turns On HTTP 400, 403, 404, 405 & 410 Security Logging.', 'bulletproof-security').'<br><br><strong>'.__('Delete Log Button', 'bulletproof-security').'</strong><br>'.__('Clicking the Delete Log button will delete the entire contents of your Security Log File.', 'bulletproof-security').'<br><br><strong>'.__('Limit POST Request Body Data', 'bulletproof-security').'</strong><br>'.__('The maximum Security Log Request Body Data capture/log limit is 250000 maximum characters, which is roughly about 250KB in size. The Limit POST Request Body Data checkbox option limits the maximum number of Request Body Data characters captured/logged in the Request Body logging field to 500 characters, which is roughly 5KB in size. The Limit POST Request Body Data checkbox is checked by default. You can capture/log entire hacking scripts if you uncheck the Limit POST Request Body Data checkbox ', 'bulletproof-security').'<strong>'.__('(See Note below)', 'bulletproof-security').'</strong>'.__(', but that means your log file size could increase dramatically and you could receive more automated Security Log zip file emails. If you are using email security protection on your computer then your zipped Security Log files may be seen as containing a virus (hacker script/code) and they could be automatically deleted by your email protection application on your computer. Your computer security protection software may also see the Security Log file as malicious and block it. If you do not want to capture/log entire hacker scripts/files/code in the Request Body logging field then keep the Limit POST Request Body Data checkbox checked. ', 'bulletproof-security').'<strong>'.__('Note: ', 'bulletproof-security').'</strong>'.__('To capture/log all POST Request Attacks against your website you will need to add the POST Request Attack Protection Bonus Custom Code. A link to that Bonus Custom Code is at the top of this Read Me help window. If you do not want to add the Bonus Custom Code then some, but not all POST Request Attacks will be captured/logged in the Security Log.', 'bulletproof-security').'<br><br><strong>'.__('Ignoring|Not Logging User Agents|Bots - Allowing|Logging User Agents|Bots', 'bulletproof-security').'</strong><br>'.__('Adding or Removing User Agents|Bots adds or removes User Agents|Bots to your Database and also writes new code to the 403.php Security Logging template. The 403.php Security Logging file is where the check occurs whether or not to log or not log a User Agent|Bot. It would be foolish and costly to website performance to have your WordPress database handle the task/function/burden of checking which User Agents|Bots to log or not log. WordPress database queries are the most resource draining function of a WordPress website. The more database queries that are happening at the same time on your website the slower your website will perform and load. For this reason the Security Logging check is done from code in the 403.php Security Logging file.', 'bulletproof-security').'<br><br>'.__('If a particular User Agent|Bot is being logged excessively in your Security Log file you can Ignore|Not Log that particular User Agent|Bot based on the HTTP_USER_AGENT string in your Security Log. Example User Agent strings: Mozilla/5.0 (compatible; 008/0.85; http://www.80legs.com/webcrawler.html) Gecko/2008032620 and facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php). You could enter 008 or 80legs or webcrawler to Ignore|Not Log the 80legs User Agent|Bot. You could enter facebookexternalhit or facebook or externalhit_uatext to Ignore|Not Log the facebook User Agent|Bot.', 'bulletproof-security').'<br><br><strong>'.__('Add User Agents|Bots to Ignore|Not Log', 'bulletproof-security').'</strong><br>'.__('Add the User Agent|Bot names you would like to Ignore|Not Log in your Security Log. These code characters are not allowed to be used: ', 'bulletproof-security').'/ | < > \' "<br><br><strong>'.__('Removing User Agents|Bots to Allow|Log', 'bulletproof-security').'</strong><br>'.__('To search for ALL User Agents|Bots to remove/delete from your database leave the text box blank and click the Remove|Allow button. You will see a Dynamically generated Radio Button Form that will display the User Agents|Bots in the BPS User Agent|Bot database Table, Remove or Do Not Remove Radio buttons and the Timestamp when the User Agent|Bot was added to your DB. Select the Remove Radio buttons for the User Agents|Bots you want to remove/delete from your database and click the Remove button. Removing/deleting User Agents|Bots from your database means that you want to have these User Agents|Bots logged again in your Security Log.', 'bulletproof-security'); echo $text; ?></p>
255
  </div>
256
 
257
  <?php
@@ -518,13 +518,15 @@ $search = '';
518
  </div>
519
 
520
  <div id="SecLogPostLimit">
521
-
522
  <form name="SecLogPostLimit" action="options.php" method="post">
523
  <?php settings_fields('bulletproof_security_options_sec_log_post_limit'); ?>
524
  <?php $SecLogPostLimit = get_option('bulletproof_security_options_sec_log_post_limit'); ?>
525
 
526
- <input type="checkbox" name="bulletproof_security_options_sec_log_post_limit[bps_security_log_post_limit]" value="1" <?php checked( $SecLogPostLimit['bps_security_log_post_limit'], 1 ); ?> /><label><?php _e(' Limit POST Request Body Data', 'bulletproof-security'); ?></label><br />
527
- <input type="submit" name="Submit-Sec-Log-Post-Limit" class="button bps-button" style="margin-top:5px;" value="<?php esc_attr_e('Save Limit POST Request Body Data Option', 'bulletproof-security') ?>" onclick="return confirm('<?php $text = __('Click OK to Proceed or click Cancel.', 'bulletproof-security'); echo $text; ?>')"/>
 
 
 
528
  </form>
529
  </div>
530
 
251
  <strong><a href="https://forum.ait-pro.com/forums/topic/read-me-first-free/#bps-free-general-troubleshooting" title="BPS Troubleshooting Steps" target="_blank"><?php _e('BPS Troubleshooting Steps', 'bulletproof-security'); ?></a></strong><br />
252
  <strong><a href="https://forum.ait-pro.com/forums/topic/post-request-protection-post-attack-protection-post-request-blocker/" title="POST Request Attack Protection Bonus Custom Code" target="_blank"><?php _e('POST Request Attack Protection', 'bulletproof-security'); ?></a></strong><br /><br />
253
 
254
+ <?php $text = '<strong>'.__('Security Log General Information', 'bulletproof-security').'</strong><br>'.__('Your Security Log file is a plain text static file and not a dynamic file or dynamic display to keep your website resource usage at a bare minimum and keep your website performance at a maximum. Log entries are logged in descending order by Date and Time. You can copy, edit and delete this plain text file.', 'bulletproof-security').'<br><br><strong>'.__('NOTE: ', 'bulletproof-security').'</strong>'.__('Email Alerting and Log file options are located in S-Monitor in BPS Pro instead of being on the Login Security page, Security Log & DB Backup Log pages. The Email Alerting & Log File Options Form is identical on the Login Security, Security Log & DB Backup Log pages in BPS free. You can change and save your email alerting and log file options on any of these pages.', 'bulletproof-security').'<strong><br><br>'.__('NOTE: ', 'bulletproof-security').'</strong>'.__('If a particular User Agent|Bot is generating excessive log entries you can add it to Add User Agents|Bots to Ignore|Not Log tool and that User Agent|Bot will no longer be logged. See the Ignoring|Not Logging User Agents|Bots help section.', 'bulletproof-security').'<strong><br><br>'.__('NOTE: ', 'bulletproof-security').'</strong>'.__('BPS logs all 403 errors, but a 403 error may not necessarily be caused by BPS. Use the troubleshooting steps in the BPS Troubleshooting Steps link at the top of this Read Me help window to confirm or eliminate that the 403 error is being caused by BPS.', 'bulletproof-security').'<br><br>'.__('The Security Log logs 400, 403, 405 and 410 HTTP Response Status Codes by default. You can also log 404 HTTP Response Status Codes by opening this BPS 404 Template file - /bulletproof-security/404.php and copying the logging code into your Theme\'s 404 Template file. When you open the BPS Pro 404.php file you will see simple instructions on how to add the 404 logging code to your Theme\'s 404 Template file. The Security Log also logs other events. See the ', 'bulletproof-security').'<strong>'.__('Total # of Security Log Entries by Type', 'bulletproof-security').'</strong>'.__(' help section below for a complete list of BPS Security Log Entry Types.', 'bulletproof-security').'<br><br><strong>'.__('Total # of Security Log Entries by Type', 'bulletproof-security').'</strong><br>'.__('Displays the total number of each type of Security Log Entry in your Security Log file. The Total # of Security Log Entries by Type is also added to each Security Log file when it is zipped and emailed to you and also added directly in the automated Security Log email. Complete list of BPS Security Log Entry Types: 400 POST Bad Request, 400 GET Bad Request, 403 GET Request, 403 POST Request, 404 GET Not Found Request, 404 POST Not Found Request, 405 HEAD Request, 410 Gone POST Request, 410 Gone GET Request, Idle Session Logout, Maintenance Mode - Visitor Logged. BPS has a total of 11 Security Log Entry Types. BPS Pro has a total of 27 Security Log Entry Types.', 'bulletproof-security').'<br><br><strong>'.__('HTTP Response Status Codes', 'bulletproof-security').'</strong><br>'.__('400 Bad Request - The request could not be understood by the server due to malformed syntax.', 'bulletproof-security').'<br><br>'.__('403 Forbidden - The Server understood the request, but is refusing to fulfill it.', 'bulletproof-security').'<br><br>'.__('404 Not Found - The Server has not found anything matching the Request-URI|URL. No indication is given of whether the condition is temporary or permanent.', 'bulletproof-security').'<br><br>'.__('405 Method Not Allowed - The method specified in the Request-Line is not allowed for the resource identified by the Request-URI. The response MUST include an Allow header containing a list of valid methods for the requested resource. BPS blocks HEAD Requests using a 405 ErrorDocument Redirect. The BPS 405 Template has an Allow header field for the GET, POST and PUT HTTP Methods.', 'bulletproof-security').'<br><br>'.__('410 Gone - The requested resource is no longer available at the Server/site and no forwarding address is known. This condition is expected to be considered permanent.', 'bulletproof-security').'<br><br><strong>'.__('Security Log File Size', 'bulletproof-security').'</strong><br>'.__('Displays the size of your Security Log file. 500KB is the optimum recommended log file size setting that you should choose for your log file to be automatically zipped, emailed and replaced with a new blank Security Log file.', 'bulletproof-security').'<br><br><strong>'.__('Security Log Status:', 'bulletproof-security').'</strong><br>'.__('Displays either Logging is Turned On or Logging is Turned Off.', 'bulletproof-security').'<br><br><strong>'.__('Security Log Last Modified Time:', 'bulletproof-security').'</strong><br>'.__('Displays the last time a Security Log entry was logged.', 'bulletproof-security').'<br><br><strong>'.__('Turn Off Logging', 'bulletproof-security').'</strong><br>'.__('Turns Off HTTP 400, 403, 404, 405 & 410 Security Logging.', 'bulletproof-security').'<br><br><strong>'.__('Turn On Logging', 'bulletproof-security').'</strong><br>'.__('Turns On HTTP 400, 403, 404, 405 & 410 Security Logging.', 'bulletproof-security').'<br><br><strong>'.__('Delete Log Button', 'bulletproof-security').'</strong><br>'.__('Clicking the Delete Log button will delete the entire contents of your Security Log File.', 'bulletproof-security').'<br><br><strong>'.__('POST Request Body Data', 'bulletproof-security').'</strong><br>'.__('The POST Request Body Data option settings only affect the REQUEST BODY Security Log field in your Security Log entries when a POST Request is blocked and logged by BPS. To capture/log all POST Request Attacks against your website you will need to add the POST Request Attack Protection Bonus Custom Code. A link to that Bonus Custom Code is at the top of this Read Me help window. If you do not want to add the Bonus Custom Code then some, but not all POST Request Attacks will be captured/logged in the Security Log.', 'bulletproof-security').'<br><br>'.__('The default POST Request Body Data option setting is "Do Not Log POST Request Body Data (0KB)", which means do not capture/log the POST Request data that was sent in the attack. You will see this text in the REQUEST BODY Security Log entry field: "REQUEST BODY: BPS Security Log option set to: Do Not Log POST Request Body Data" instead of the actual POST Request Body data used in the attack on your website. The reason the default setting is set to: "Do Not Log POST Request Body Data (0KB)" is because some web hosts falsely interpret the BPS Security Log text file as malicious since hacker code used to attack your website can be captured/logged in the Security Log text file if you are using the "Log Minimum..." or "Log Maximum..." POST Request Body Data option settings.', 'bulletproof-security').'<br><br>'.__('The "Log Minimum POST Request Body Data (5KB)" option setting will capture/log the first 500 characters or 5KB of hacker code used to attack your website in a POST Request attack and log that hacker code in the REQUEST BODY Security Log entry field. The "Log Maximum POST Request Body Data (250KB)" option setting will capture/log the first 250000 characters or roughly 250KB of hacker code used to attack your website in a POST Request attack and log that hacker code in the REQUEST BODY Security Log entry field. Hacker scripts typically range in size from 20KB to 100KB on average.', 'bulletproof-security').'<br><br><strong>'.__('Important Notes: ', 'bulletproof-security').'</strong>'.__('If you are using email security protection on your computer then your automatically zipped and emailed BPS Security Log files may be seen as containing a virus (hacker script/code) and they could be automatically deleted by your email protection application on your computer. Your computer security protection software may also see the Security Log file as malicious and block it. If your web host falsely sees the BPS Security Log file as a malicious hacker file then you will need to change your POST Request Body Data option setting and use the "Do Not Log POST Request Body Data (0KB)" option setting instead.', 'bulletproof-security').'<br><br><strong>'.__('Ignoring|Not Logging User Agents|Bots - Allowing|Logging User Agents|Bots', 'bulletproof-security').'</strong><br>'.__('Adding or Removing User Agents|Bots adds or removes User Agents|Bots to your Database and also writes new code to the 403.php Security Logging template. The 403.php Security Logging file is where the check occurs whether or not to log or not log a User Agent|Bot. It would be foolish and costly to website performance to have your WordPress database handle the task/function/burden of checking which User Agents|Bots to log or not log. WordPress database queries are the most resource draining function of a WordPress website. The more database queries that are happening at the same time on your website the slower your website will perform and load. For this reason the Security Logging check is done from code in the 403.php Security Logging file.', 'bulletproof-security').'<br><br>'.__('If a particular User Agent|Bot is being logged excessively in your Security Log file you can Ignore|Not Log that particular User Agent|Bot based on the HTTP_USER_AGENT string in your Security Log. Example User Agent strings: Mozilla/5.0 (compatible; 008/0.85; http://www.80legs.com/webcrawler.html) Gecko/2008032620 and facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php). You could enter 008 or 80legs or webcrawler to Ignore|Not Log the 80legs User Agent|Bot. You could enter facebookexternalhit or facebook or externalhit_uatext to Ignore|Not Log the facebook User Agent|Bot.', 'bulletproof-security').'<br><br><strong>'.__('Add User Agents|Bots to Ignore|Not Log', 'bulletproof-security').'</strong><br>'.__('Add the User Agent|Bot names you would like to Ignore|Not Log in your Security Log. These code characters are not allowed to be used: ', 'bulletproof-security').'/ | < > \' "<br><br><strong>'.__('Removing User Agents|Bots to Allow|Log', 'bulletproof-security').'</strong><br>'.__('To search for ALL User Agents|Bots to remove/delete from your database leave the text box blank and click the Remove|Allow button. You will see a Dynamically generated Radio Button Form that will display the User Agents|Bots in the BPS User Agent|Bot database Table, Remove or Do Not Remove Radio buttons and the Timestamp when the User Agent|Bot was added to your DB. Select the Remove Radio buttons for the User Agents|Bots you want to remove/delete from your database and click the Remove button. Removing/deleting User Agents|Bots from your database means that you want to have these User Agents|Bots logged again in your Security Log.', 'bulletproof-security'); echo $text; ?></p>
255
  </div>
256
 
257
  <?php
518
  </div>
519
 
520
  <div id="SecLogPostLimit">
 
521
  <form name="SecLogPostLimit" action="options.php" method="post">
522
  <?php settings_fields('bulletproof_security_options_sec_log_post_limit'); ?>
523
  <?php $SecLogPostLimit = get_option('bulletproof_security_options_sec_log_post_limit'); ?>
524
 
525
+ <strong><label for="SecLogPostLimit"><?php _e('POST Request Body Data', 'bulletproof-security'); ?></label></strong><br />
526
+ <input type="checkbox" name="bulletproof_security_options_sec_log_post_limit[bps_security_log_post_none]" value="1" <?php checked( $SecLogPostLimit['bps_security_log_post_none'], 1 ); ?> /><label><?php _e(' Do Not Log POST Request Body Data (0KB)', 'bulletproof-security'); ?></label><br />
527
+ <input type="checkbox" name="bulletproof_security_options_sec_log_post_limit[bps_security_log_post_limit]" value="1" <?php checked( $SecLogPostLimit['bps_security_log_post_limit'], 1 ); ?> /><label><?php _e(' Log Minimum POST Request Body Data (5KB)', 'bulletproof-security'); ?></label><br />
528
+ <input type="checkbox" name="bulletproof_security_options_sec_log_post_limit[bps_security_log_post_max]" value="1" <?php checked( $SecLogPostLimit['bps_security_log_post_max'], 1 ); ?> /><label><?php _e(' Log Maximum POST Request Body Data (250KB)', 'bulletproof-security'); ?></label><br />
529
+ <input type="submit" name="Submit-Sec-Log-Post-Limit" class="button bps-button" style="margin-top:5px;" value="<?php esc_attr_e('Save POST Request Body Data Option', 'bulletproof-security') ?>" onclick="return confirm('<?php $text = __('Click OK to Proceed or click Cancel.', 'bulletproof-security'); echo $text; ?>')"/>
530
  </form>
531
  </div>
532
 
admin/theme-skin/theme-skin.php CHANGED
@@ -107,7 +107,7 @@ $bps_bottomDiv = '</p></div>';
107
  <h3 style="margin:0px 0px 10px 0px;"><?php _e('UI|UX Settings', 'bulletproof-security'); ?> <button id="bps-open-modal1" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
108
 
109
  <div id="bps-modal-content1" title="<?php _e('UI|UX Settings', 'bulletproof-security'); ?>">
110
- <p><?php $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br><strong>'.__('Select a UI Theme Skin', 'bulletproof-security').'</strong><br>'.__('Select a UI Theme Skin and click the Save Skin button.', 'bulletproof-security').'<br><br><strong>'.__('Notes:', 'bulletproof-security').'</strong><br>- '.__('All elements and CSS properties should automatically be refreshed when you select and save your Theme Skin. If some Theme Skin elements or properties are not displaying correctly, Refresh your Browser.', 'bulletproof-security').'<br><br>- '.__('The Black and Grey UI Theme Skins require WordPress 3.8 or higher. If you have an older version of WordPress (3.7 or below) then ONLY the Blue UI Theme Skin is available.', 'bulletproof-security').'<br><br><strong>'.__('Inpage Status Display', 'bulletproof-security').'</strong><br>'.__('The Inpage Status Display displays the status of BPS features, options and your site security in real-time. The Inpage Status Display automatically turns itself off when a Form is submitted using POST and displays a Reload BPS Status Display button. Automatically turning off the Status Display during Form processing is a performance enhancement|optimization. Clicking the Reload BPS Status Display button reloads|displays the Inpage Status Display.', 'bulletproof-security').'<br><br><strong>'.__('Turn On|Off The Processing Spinner:', 'bulletproof-security').'</strong><br>'.__('The Processing Spinner is displayed during processing of the Forms listed below. The Processing Spinner includes a Cancel button to cancel the Form processing. The Processing Spinner can be turned off if you do not want to see it. If the Processing Spinner is not displaying correctly or at all then either your theme or another plugin is interfering with it. Since the Processing Spinner is just a visual enhancement it is not critical that it is being displayed.', 'bulletproof-security').'<br><br><strong>'.__('Forms That Display The Processing Spinner:', 'bulletproof-security').'</strong><br>'.__('DB Backup Job Processing, DB Table Names & Character Length Table, DB Table Prefix Changer and Setup Wizard.', 'bulletproof-security').'<br><br><strong>'.__('Turn On|Off jQuery ScrollTop Animation:', 'bulletproof-security').'</strong><br>'.__('The jQuery ScrollTop Animation is the scrolling animation that you see after submitting BPS Forms, which automatically scrolls to the top of BPS plugin pages to display success or error messages. The jQuery ScrollTop animation code is conditional based on your Browser User Agent or Rendering Engine. The jQuery ScrollTop animation has been customized for each major Browser individually for best visual animation/appearance. jQuery ScrollTop Animation can be turned On or Off.', 'bulletproof-security').'<br><br><strong>'.__('WP Toolbar Functionality In BPS Plugin Pages:', 'bulletproof-security').'</strong><br>'.__('This option affects the WP Toolbar in BPS plugin pages ONLY and does not affect the WP Toolbar anywhere else on your site. WP Toolbar additional menu items (nodes) added by other plugins and themes can cause problems for BPS when the WP Toolbar is loaded in BPS plugin pages. This option allows you to load only the default WP Toolbar without any additional menu items (nodes) loading/displayed on BPS plugin pages or to load the WP Toolbar with any/all other menu items (nodes) that have been added by other plugins and themes. The default setting is: Load Only The Default WP Toolbar (without loading any additional menu items (nodes) from other plugins or themes). If the BPS Processing Spinner is not working/displaying correctly then set this option to the default setting: Load Only The Default WP Toolbar.', 'bulletproof-security').'<br><br><strong>'.__('Script|Style Loader Filter (SLF) In BPS Plugin Pages:', 'bulletproof-security').'</strong><br>'.__('SLF is set to Off by default. If BPS plugin pages are not displaying visually correct then select the SLF On option setting and click the Save Option button. This option prevents other plugin and theme scripts, which break BPS plugin pages visually, from loading in BPS plugin pages. In some cases turning the SLF option On can cause an even worse problem, which is that BPS plugin pages load extremely slowly. So if you turn On the SLF option and BPS plugin pages are displaying visually correct, but BPS plugin pages are loading extremely slowly then unfortunately turning Off SLF is the lesser of the two problems - BPS plugin pages will not display visually correct.', 'bulletproof-security').'<br><br><strong>'.__('BPS UI|UX Debug:', 'bulletproof-security').'</strong><br>'.__('BPS UI|UX Debug is set to Off by default. Turning On the BPS UI|UX Debug option will display: plugin or theme Scripts that were Dequeued (prevented) from loading in BPS plugin pages, plugin or theme Scripts that were Nulled (prevented) from loading in BPS plugin pages by the Script|Style Loader Filter (SLF) In BPS Plugin Pages option and WP Toolbar nodes|menu items that were Removed in BPS plugin pages by the WP Toolbar Functionality In BPS Plugin Pages option. The Debugger will also display any SLF js or css Scripts that were Not Nulled|Allowed to load in BPS plugin pages.', 'bulletproof-security').'<br><br><strong>'.__('BPS Plugin AutoUpdate:', 'bulletproof-security').'</strong><br>'.__('BPS Plugin AutoUpdate is set to Off by default. Choosing the AutoUpdate On option setting will allow the BPS plugin to automatically update itself when a new BPS plugin version is available. A must-use file is created in the /mu-plugins/ folder when you choose the AutoUpdate On option setting. The must-use file is deleted when you choose the AutoUpdate Off option setting or if you delete the BPS plugin.', 'bulletproof-security'); echo $text; ?></p>
111
  </div>
112
 
113
  <div id="UI-UX-options" style="width:340px;">
@@ -193,7 +193,7 @@ $bps_bottomDiv = '</p></div>';
193
  <?php settings_fields('bulletproof_security_options_debug'); ?>
194
  <?php $Debug_options = get_option('bulletproof_security_options_debug'); ?>
195
 
196
- <label for="UI-UX-label"><?php _e('BPS UI|UX Debug:', 'bulletproof-security'); ?></label><br />
197
  <label for="UI-UX-label" style="color:#2ea2cc;"><?php _e('Click the Read Me help button for information', 'bulletproof-security'); ?></label><br />
198
  <select name="bulletproof_security_options_debug[bps_debug]" class="form-250">
199
  <option value="Off" <?php selected('Off', $Debug_options['bps_debug']); ?>><?php _e('Debug Off', 'bulletproof-security'); ?></option>
@@ -202,79 +202,6 @@ $bps_bottomDiv = '</p></div>';
202
  <input type="submit" name="Submit-Debug" class="button bps-button" style="margin:10px 0px 10px 0px;" value="<?php esc_attr_e('Save Option', 'bulletproof-security') ?>" />
203
  </form>
204
 
205
- <div id="bps-plugin-autoupdate"></div>
206
-
207
- <form name="bps-autoupdate" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/theme-skin/theme-skin.php' ); ?>" method="post">
208
- <?php wp_nonce_field('bulletproof_security_options_autoupdate'); ?>
209
- <?php $AutoUpdate_options = get_option('bulletproof_security_options_autoupdate'); ?>
210
-
211
- <label for="UI-UX-label"><?php _e('BPS Plugin AutoUpdate:', 'bulletproof-security'); ?></label><br />
212
- <label for="UI-UX-label" style="color:#2ea2cc;"><?php _e('Click the Read Me help button for information', 'bulletproof-security'); ?></label><br />
213
- <select name="bulletproof_security_options_autoupdate" class="form-250">
214
- <option value="Off" <?php selected('Off', $AutoUpdate_options['bps_autoupdate']); ?>><?php _e('AutoUpdate Off', 'bulletproof-security'); ?></option>
215
- <option value="On" <?php selected('On', $AutoUpdate_options['bps_autoupdate']); ?>><?php _e('AutoUpdate On', 'bulletproof-security'); ?></option>
216
- </select>
217
- <input type="submit" name="Submit-AutoUpdate" class="button bps-button" style="margin:10px 0px 10px 0px;" value="<?php esc_attr_e('Save Option', 'bulletproof-security') ?>" />
218
- </form>
219
-
220
- </div>
221
-
222
- <?php
223
- // Form: BPS Plugin AutoUpdate
224
- if ( isset( $_POST['Submit-AutoUpdate'] ) && current_user_can('manage_options') ) {
225
- check_admin_referer( 'bulletproof_security_options_autoupdate' );
226
-
227
- $autoupdate_master_file = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-plugin-autoupdate.php';
228
- $autoupdate_muplugins_file = WP_CONTENT_DIR . '/mu-plugins/bps-plugin-autoupdate.php';
229
-
230
- if ( esc_html($_POST['bulletproof_security_options_autoupdate']) == 'On' ) {
231
-
232
- if ( ! is_dir( WP_CONTENT_DIR . '/mu-plugins' ) ) {
233
- mkdir( WP_CONTENT_DIR . '/mu-plugins', 0755, true );
234
- chmod( WP_CONTENT_DIR . '/mu-plugins/', 0755 );
235
- }
236
-
237
- if ( ! copy($autoupdate_master_file, $autoupdate_muplugins_file) ) {
238
-
239
- echo $bps_topDiv;
240
- $text = '<font color="#fb0101"><strong>'.__('Error: Unable to copy the /bulletproof-security/admin/htaccess/bps-plugin-autoupdate.php Master file to: ', 'bulletproof-security').$autoupdate_muplugins_file.__(' BPS Plugin AutoUpdate is not turned On. Check that the /mu-plugins/ folder exists and that the folder permissions allow writing/copying files.', 'bulletproof-security').'</strong></font>';
241
- echo $text;
242
- echo $bps_bottomDiv;
243
-
244
- } else {
245
-
246
- $autoupdate_options = array( 'bps_autoupdate' => 'On' );
247
-
248
- foreach( $autoupdate_options as $key => $value ) {
249
- update_option('bulletproof_security_options_autoupdate', $autoupdate_options);
250
- }
251
-
252
- echo $bps_topDiv;
253
- $text = '<font color="green"><strong>'.__('The BPS Plugin AutoUpdate option is set to On. The BPS Plugin will be automatically updated/upgraded when a new version of BPS is available.', 'bulletproof-security').'</strong></font>';
254
- echo $text;
255
- echo $bps_bottomDiv;
256
- }
257
-
258
- } elseif ( esc_html($_POST['bulletproof_security_options_autoupdate']) == 'Off' ) {
259
-
260
- if ( file_exists($autoupdate_muplugins_file) ) {
261
- unlink($autoupdate_muplugins_file);
262
- }
263
-
264
- $autoupdate_options = array( 'bps_autoupdate' => 'Off' );
265
-
266
- foreach( $autoupdate_options as $key => $value ) {
267
- update_option('bulletproof_security_options_autoupdate', $autoupdate_options);
268
- }
269
-
270
- echo $bps_topDiv;
271
- $text = '<font color="green"><strong>'.__('The BPS Plugin AutoUpdate option is set to Off. The BPS Plugin will not be automatically updated/upgraded when a new version of BPS is available.', 'bulletproof-security').'</strong></font>';
272
- echo $text;
273
- echo $bps_bottomDiv;
274
- }
275
- }
276
- ?>
277
-
278
  </td>
279
  </tr>
280
  <tr>
107
  <h3 style="margin:0px 0px 10px 0px;"><?php _e('UI|UX Settings', 'bulletproof-security'); ?> <button id="bps-open-modal1" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
108
 
109
  <div id="bps-modal-content1" title="<?php _e('UI|UX Settings', 'bulletproof-security'); ?>">
110
+ <p><?php $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br><strong>'.__('Select a UI Theme Skin', 'bulletproof-security').'</strong><br>'.__('Select a UI Theme Skin and click the Save Skin button.', 'bulletproof-security').'<br><br><strong>'.__('Notes:', 'bulletproof-security').'</strong><br>- '.__('All elements and CSS properties should automatically be refreshed when you select and save your Theme Skin. If some Theme Skin elements or properties are not displaying correctly, Refresh your Browser.', 'bulletproof-security').'<br><br>- '.__('The Black and Grey UI Theme Skins require WordPress 3.8 or higher. If you have an older version of WordPress (3.7 or below) then ONLY the Blue UI Theme Skin is available.', 'bulletproof-security').'<br><br><strong>'.__('Inpage Status Display', 'bulletproof-security').'</strong><br>'.__('The Inpage Status Display displays the status of BPS features, options and your site security in real-time. The Inpage Status Display automatically turns itself off when a Form is submitted using POST and displays a Reload BPS Status Display button. Automatically turning off the Status Display during Form processing is a performance enhancement|optimization. Clicking the Reload BPS Status Display button reloads|displays the Inpage Status Display.', 'bulletproof-security').'<br><br><strong>'.__('Turn On|Off The Processing Spinner:', 'bulletproof-security').'</strong><br>'.__('The Processing Spinner is displayed during processing of the Forms listed below. The Processing Spinner includes a Cancel button to cancel the Form processing. The Processing Spinner can be turned off if you do not want to see it. If the Processing Spinner is not displaying correctly or at all then either your theme or another plugin is interfering with it. Since the Processing Spinner is just a visual enhancement it is not critical that it is being displayed.', 'bulletproof-security').'<br><br><strong>'.__('Forms That Display The Processing Spinner:', 'bulletproof-security').'</strong><br>'.__('DB Backup Job Processing, DB Table Names & Character Length Table, DB Table Prefix Changer and Setup Wizard.', 'bulletproof-security').'<br><br><strong>'.__('Turn On|Off jQuery ScrollTop Animation:', 'bulletproof-security').'</strong><br>'.__('The jQuery ScrollTop Animation is the scrolling animation that you see after submitting BPS Forms, which automatically scrolls to the top of BPS plugin pages to display success or error messages. The jQuery ScrollTop animation code is conditional based on your Browser User Agent or Rendering Engine. The jQuery ScrollTop animation has been customized for each major Browser individually for best visual animation/appearance. jQuery ScrollTop Animation can be turned On or Off.', 'bulletproof-security').'<br><br><strong>'.__('WP Toolbar Functionality In BPS Plugin Pages:', 'bulletproof-security').'</strong><br>'.__('This option affects the WP Toolbar in BPS plugin pages ONLY and does not affect the WP Toolbar anywhere else on your site. WP Toolbar additional menu items (nodes) added by other plugins and themes can cause problems for BPS when the WP Toolbar is loaded in BPS plugin pages. This option allows you to load only the default WP Toolbar without any additional menu items (nodes) loading/displayed on BPS plugin pages or to load the WP Toolbar with any/all other menu items (nodes) that have been added by other plugins and themes. The default setting is: Load Only The Default WP Toolbar (without loading any additional menu items (nodes) from other plugins or themes). If the BPS Processing Spinner is not working/displaying correctly then set this option to the default setting: Load Only The Default WP Toolbar.', 'bulletproof-security').'<br><br><strong>'.__('Script|Style Loader Filter (SLF) In BPS Plugin Pages:', 'bulletproof-security').'</strong><br>'.__('SLF is set to Off by default. If BPS plugin pages are not displaying visually correct then select the SLF On option setting and click the Save Option button. This option prevents other plugin and theme scripts, which break BPS plugin pages visually, from loading in BPS plugin pages. In some cases turning the SLF option On can cause an even worse problem, which is that BPS plugin pages load extremely slowly. So if you turn On the SLF option and BPS plugin pages are displaying visually correct, but BPS plugin pages are loading extremely slowly then unfortunately turning Off SLF is the lesser of the two problems - BPS plugin pages will not display visually correct.', 'bulletproof-security').'<br><br><strong>'.__('BPS UI|UX|AutoFix Debug:', 'bulletproof-security').'</strong><br><strong>'.__('BPS UI|UX Debug: ', 'bulletproof-security').'</strong>'.__('BPS UI|UX|AutoFix Debug is set to Off by default. Turning On the BPS UI|UX|AutoFix Debug option will display: plugin or theme Scripts that were Dequeued (prevented) from loading in BPS plugin pages, plugin or theme Scripts that were Nulled (prevented) from loading in BPS plugin pages by the Script|Style Loader Filter (SLF) In BPS Plugin Pages option and WP Toolbar nodes|menu items that were Removed in BPS plugin pages by the WP Toolbar Functionality In BPS Plugin Pages option. The Debugger will also display any SLF js or css Scripts that were Not Nulled|Allowed to load in BPS plugin pages.', 'bulletproof-security').'<br><br><strong>'.__('BPS AutoFix Debug: ', 'bulletproof-security').'</strong>'.__('Turning On the BPS UI|UX|AutoFix Debug option will display: plugin or theme names and the BPS Custom Code text box where plugins or themes should be creating Custom Code whitelist rules. Usage: If the BPS Setup Wizard AutoFix (AutoWhitelist|AutoSetup|AutoCleanup) Notice is still being displayed after running the Pre-Installation Wizard and Setup Wizard then the BPS UI|UX|AutoFix Debug option should be turned On to find the exact plugin or theme and the Custom Code text box where the problem is occurring. Example Debug Displayed message: CC Root Text Box 10: WooCommerce Plugin. This option could also be used generally to see which plugins and themes BPS AutoFix is creating Custom Code whitelist rules for and which Custom Code text boxes the AutoFix whitelist rules will be created in.', 'bulletproof-security'); echo $text; ?></p>
111
  </div>
112
 
113
  <div id="UI-UX-options" style="width:340px;">
193
  <?php settings_fields('bulletproof_security_options_debug'); ?>
194
  <?php $Debug_options = get_option('bulletproof_security_options_debug'); ?>
195
 
196
+ <label for="UI-UX-label"><?php _e('BPS UI|UX|AutoFix Debug:', 'bulletproof-security'); ?></label><br />
197
  <label for="UI-UX-label" style="color:#2ea2cc;"><?php _e('Click the Read Me help button for information', 'bulletproof-security'); ?></label><br />
198
  <select name="bulletproof_security_options_debug[bps_debug]" class="form-250">
199
  <option value="Off" <?php selected('Off', $Debug_options['bps_debug']); ?>><?php _e('Debug Off', 'bulletproof-security'); ?></option>
202
  <input type="submit" name="Submit-Debug" class="button bps-button" style="margin:10px 0px 10px 0px;" value="<?php esc_attr_e('Save Option', 'bulletproof-security') ?>" />
203
  </form>
204
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
205
  </td>
206
  </tr>
207
  <tr>
admin/wizard/pwizard-autofix-setup.php ADDED
@@ -0,0 +1,1815 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Direct calls to this file are Forbidden when core files are not present
3
+ if ( ! current_user_can('manage_options') ) {
4
+ header('Status: 403 Forbidden');
5
+ header('HTTP/1.1 403 Forbidden');
6
+ exit();
7
+ }
8
+
9
+
10
+ ## AutoFix|AutoWhitelist|AutoSetup|AutoCleanup: Automatically creates fixes/setups or whitelist rules for any known issues with other plugins.
11
+ ## List of fixes by plugin and CC text box: https://forum.ait-pro.com/forums/topic/setup-wizard-autofix/.
12
+ /*
13
+ Root Custom Code Text Box:
14
+ 1. CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE:
15
+ */
16
+
17
+ // WPSC setup & cleanup: Creates the WPSC htaccess code in BPS Custom Code & the WPSC code in the wp-config.php file.
18
+ // Unlock the wp-config.php file if it is locked & writes the WPSC wp-config.php code
19
+ // The Setup Wizard will either lock or not lock the wp-config.php file in later processing.
20
+ // Note: htaccess code is created in the site root htaccess file for GWIOD site types.
21
+ function bpsPro_Pwizard_Autofix_WPSC() {
22
+ global $cache_enabled, $super_cache_enabled, $wp_cache_mod_rewrite;
23
+
24
+ $AutoFix_Options = get_option('bulletproof_security_options_wizard_autofix');
25
+
26
+ if ( $AutoFix_Options['bps_wizard_autofix'] == 'Off' ) {
27
+ return;
28
+ }
29
+
30
+ $wpsc_plugin = 'wp-super-cache/wp-cache.php';
31
+ $wpsc_plugin_active = in_array( $wpsc_plugin, apply_filters('active_plugins', get_option('active_plugins')));
32
+
33
+ // CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE
34
+ $CC_Options_root = get_option('bulletproof_security_options_customcode');
35
+ $bps_customcode_cache = htmlspecialchars_decode( $CC_Options_root['bps_customcode_one'], ENT_QUOTES );
36
+ $bps_customcode_cache_array = array();
37
+ $bps_customcode_cache_array[] = $bps_customcode_cache;
38
+ $cc_cache_array = array();
39
+
40
+ if ( $wpsc_plugin_active == 1 || is_plugin_active_for_network( $wpsc_plugin ) ) {
41
+
42
+ if ( ! is_multisite() ) {
43
+ $bpsSiteUrl = get_option('siteurl');
44
+ $bpsHomeUrl = get_option('home');
45
+ } else {
46
+ $bpsSiteUrl = get_site_option('siteurl');
47
+ $bpsHomeUrl = network_site_url();
48
+ }
49
+
50
+ ## GWIOD site type: AutoSetup is not required since htaccess code is written to the site root htaccess file.
51
+ if ( $bpsSiteUrl != $bpsHomeUrl ) {
52
+ $text = '<strong><font color="green">'.__('WP Super Cache (WPSC) Plugin AutoSetup not required: ', 'bulletproof-security').'</font><font color="black"><span class="arq-tooltip-sw-20"><img src="'.plugins_url('/bulletproof-security/admin/images/question-mark.png').'" style="position:relative;top:3px;right:1px;" /><span>'.__('GWIOD site types do not require AutoSetup because WPSC creates htaccess code in the site root htaccess file.', 'bulletproof-security').'</span></span></font></strong><br>';
53
+ echo $text;
54
+ return;
55
+ }
56
+
57
+ if ( function_exists('wsc_mod_rewrite') ) {
58
+
59
+ ## Remove any existing WPSC htaccess code in Custom Code from the $cc_cache_array so that new wpsc htaccess code is created each time.
60
+ ## Remove any existing WPSC placeholder text if it exists. Note: If duplicate wpsc placeholders exists then a problem may occur.
61
+ ## Important Note: If dots are used (.*) then newlines and spaces are ignored when using the /s modifier.
62
+ // preg_match_all() would need to be used to preg_replace duplicate wpsc placeholder text. Wait and see - Do not do that for now.
63
+ // Cleans up extra Newlines, Returns & whitespaces.
64
+ foreach ( $bps_customcode_cache_array as $key => $value ) {
65
+
66
+ if ( preg_match( '/#\sBEGIN\sWPSuperCache(.*)#\sEND\sWPSuperCache/s', $value, $matches ) ) {
67
+ $value = preg_replace( '/#\sBEGIN\sWPSuperCache(.*)#\sEND\sWPSuperCache/s', "", $value);
68
+ }
69
+
70
+ if ( preg_match( '/#\sBEGIN\sWPSuperCache\n\n#\sEND\sWPSuperCache/', $value, $matches ) ) {
71
+ $value = preg_replace( '/#\sBEGIN\sWPSuperCache\n\n#\sEND\sWPSuperCache/', "", $value);
72
+ }
73
+
74
+ if ( preg_match('/(\n\r){2,}/', $value, $matches) ) {
75
+ $value = preg_replace("/(\n\r){2,}/", "\n", $value);
76
+ }
77
+
78
+ $cc_cache_array[] = trim( $value, " \t\n\r");
79
+ }
80
+
81
+ ## WPSC Caching On & Use mod_rewrite to serve cache files option selected.
82
+ if ( $cache_enabled == true && $super_cache_enabled && $wp_cache_mod_rewrite == 1 ) {
83
+
84
+ $wpconfig = ABSPATH . 'wp-config.php';
85
+
86
+ if ( ! file_exists( $wpconfig ) ) {
87
+
88
+ $text = '<strong><font color="#fb0101">'.__('Error: The Pre-Installation Wizard is unable to add the WP Super Cache WP_CACHE code in your wp-config.php file.', 'bulletproof-security').'</font><br>'.__('A wp-config.php file was NOT found in your WordPress website root folder. If you have moved your wp-config.php file to another folder location then you will need to either move the wp-config.php file back to its default WordPress folder location and run the Pre-Installation Wizard again or manually edit your wp-config.php file and add the WP Super Cache WP_CACHE code. Click this link for the steps to manually edit your wp-config.php file: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/manually-editing-the-wordpress-wp-config-php-file/" target="_blank" title="Link opens in a new Browser window">'.__('Manually Edit the WordPress wp-config.php file', 'bulletproof-security').'</a><br>';
89
+ echo $text;
90
+ }
91
+
92
+ if ( file_exists( $wpconfig ) ) {
93
+ $sapi_type = php_sapi_name();
94
+ $wpconfigBackup = WP_CONTENT_DIR . '/bps-backup/autorestore/root-files/wp-config.php';
95
+ $perms_wpconfig = @substr(sprintf('%o', fileperms($wpconfig)), -4); // 0644 / 0404
96
+
97
+ if ( @substr($sapi_type, 0, 6) != 'apache' || @$perms_wpconfig != '0666' || @$perms_wpconfig != '0777' ) { // Windows IIS, XAMPP, etc
98
+ chmod( $wpconfig, 0644 );
99
+ }
100
+ }
101
+
102
+ ## Important: These WPSC functions need to be executed in this order and also executed before any htaccess code stuff.
103
+ // Writes this WPSC wp-config.php file code: define('WP_CACHE', true);
104
+ wp_cache_check_global_config();
105
+ // Writes this WPSC wp-config.php file code: define( 'WPCACHEHOME', '/path/wp-content/plugins/wp-super-cache/' );
106
+ wp_cache_create_advanced_cache();
107
+
108
+ extract( wpsc_get_htaccess_info() );
109
+
110
+ $wpsc_htaccess_cache_code = esc_html( $rules );
111
+ $wpsc_htaccess_cache_code_array = array();
112
+ $wpsc_htaccess_cache_code_array[] = "# BEGIN WPSuperCache\n".$wpsc_htaccess_cache_code."# END WPSuperCache\n";
113
+
114
+ $bps_customcode_cache_merge = array_merge($cc_cache_array, $wpsc_htaccess_cache_code_array);
115
+ $cc_cache_unique = array_unique($bps_customcode_cache_merge);
116
+
117
+ // Needs to be \n\n
118
+ $bps_customcode_cache_implode = implode( "\n\n", $cc_cache_unique );
119
+
120
+ } else {
121
+
122
+ $wpsc_htaccess_cache_code_array = array();
123
+ $wpsc_htaccess_cache_code_array[] = "# BEGIN WPSuperCache\n\n# END WPSuperCache\n";
124
+ $bps_customcode_cache_merge = array_merge($cc_cache_array, $wpsc_htaccess_cache_code_array);
125
+ $cc_cache_unique = array_unique($bps_customcode_cache_merge);
126
+ $bps_customcode_cache_implode = implode( "\n\n", $cc_cache_unique );
127
+ }
128
+
129
+ if ( ! is_multisite() ) {
130
+
131
+ $Root_CC_Options = array(
132
+ 'bps_customcode_one' => $bps_customcode_cache_implode,
133
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
134
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
135
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
136
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
137
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
138
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
139
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
140
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
141
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
142
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
143
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
144
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
145
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
146
+ );
147
+
148
+ } else {
149
+
150
+ $Root_CC_Options = array(
151
+ 'bps_customcode_one' => $bps_customcode_cache_implode,
152
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
153
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
154
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
155
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
156
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
157
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
158
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
159
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
160
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
161
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
162
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
163
+ 'bps_customcode_wp_rewrite_end' => $CC_Options_root['bps_customcode_wp_rewrite_end'],
164
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
165
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
166
+ );
167
+ }
168
+
169
+ foreach( $Root_CC_Options as $key => $value ) {
170
+ update_option('bulletproof_security_options_customcode', $Root_CC_Options);
171
+ }
172
+ } // end if ( function_exists('wsc_mod_rewrite') ) {
173
+
174
+ $text = '<strong><font color="green">'.__('WP Super Cache (WPSC) Plugin AutoSetup Successful: ', 'bulletproof-security').'</font><font color="black"><span class="arq-tooltip-sw-20"><img src="'.plugins_url('/bulletproof-security/admin/images/question-mark.png').'" style="position:relative;top:3px;right:1px;" /><span>'.__('Important Note: If you change any of your WP Super Cache settings at any time, re-run the Setup Wizards again.', 'bulletproof-security').'</span></span></font></strong><br>';
175
+ echo $text;
176
+
177
+ } else {
178
+
179
+ ## WPSC Cleanup: Either not installed or activated. Removes any/all WPSC htaccess code from BPS Custom Code and Root htaccess file.
180
+ if ( $wpsc_plugin_active != 1 && ! is_plugin_active_for_network( $wpsc_plugin ) ) {
181
+
182
+ ## Remove any existing WPSC htaccess code in Custom Code from the $cc_cache_array.
183
+ foreach ( $bps_customcode_cache_array as $key => $value ) {
184
+
185
+ if ( preg_match( '/#\sBEGIN\sWPSuperCache(.*)#\sEND\sWPSuperCache/s', $value, $matches ) ) {
186
+ $value = preg_replace( '/#\sBEGIN\sWPSuperCache(.*)#\sEND\sWPSuperCache/s', "", $value);
187
+ }
188
+
189
+ if ( preg_match( '/#\sBEGIN\sWPSuperCache\n\n#\sEND\sWPSuperCache/', $value, $matches ) ) {
190
+ $value = preg_replace( '/#\sBEGIN\sWPSuperCache\n\n#\sEND\sWPSuperCache/', "", $value);
191
+ }
192
+
193
+ if ( preg_match('/(\n\r){2,}/', $value, $matches) ) {
194
+ $value = preg_replace("/(\n\r){2,}/", "\n", $value);
195
+ }
196
+
197
+ $cc_cache_array[] = trim( $value, " \t\n\r");
198
+ }
199
+
200
+ $bps_customcode_cache_implode = implode( "\n\n", $cc_cache_array );
201
+
202
+ if ( ! is_multisite() ) {
203
+
204
+ $Root_CC_Options = array(
205
+ 'bps_customcode_one' => $bps_customcode_cache_implode,
206
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
207
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
208
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
209
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
210
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
211
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
212
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
213
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
214
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
215
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
216
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
217
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
218
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
219
+ );
220
+
221
+ } else {
222
+
223
+ $Root_CC_Options = array(
224
+ 'bps_customcode_one' => $bps_customcode_cache_implode,
225
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
226
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
227
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
228
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
229
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
230
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
231
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
232
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
233
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
234
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
235
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
236
+ 'bps_customcode_wp_rewrite_end' => $CC_Options_root['bps_customcode_wp_rewrite_end'],
237
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
238
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
239
+ );
240
+ }
241
+
242
+ foreach( $Root_CC_Options as $key => $value ) {
243
+ update_option('bulletproof_security_options_customcode', $Root_CC_Options);
244
+ }
245
+
246
+ ## Remove any existing WPSC htaccess code in the Root htaccess file.
247
+ $rootHtaccess = ABSPATH . '.htaccess';
248
+
249
+ if ( file_exists($rootHtaccess) ) {
250
+
251
+ $permsRootHtaccess = @substr(sprintf('%o', fileperms($rootHtaccess)), -4);
252
+
253
+ if ( @substr($sapi_type, 0, 6) != 'apache' || @$permsRootHtaccess != '0666' || @$permsRootHtaccess != '0777' ) {
254
+ chmod( $rootHtaccess, 0644 );
255
+ }
256
+
257
+ $root_htaccess_file_contents = @file_get_contents($rootHtaccess);
258
+
259
+ if ( preg_match( '/#\sBEGIN\sWPSuperCache(.*)#\sEND\sWPSuperCache/s', $root_htaccess_file_contents, $matches ) ) {
260
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sWPSuperCache(.*)#\sEND\sWPSuperCache/s', "", $root_htaccess_file_contents);
261
+ }
262
+
263
+ if ( preg_match( '/#\sBEGIN\sWPSuperCache\n\n#\sEND\sWPSuperCache/', $root_htaccess_file_contents, $matches ) ) {
264
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sWPSuperCache\n\n#\sEND\sWPSuperCache/', "", $root_htaccess_file_contents);
265
+ }
266
+
267
+ file_put_contents($rootHtaccess, $root_htaccess_file_contents);
268
+
269
+ $Root_Autolock = get_option('bulletproof_security_options_autolock');
270
+
271
+ if ( $Root_Autolock['bps_root_htaccess_autolock'] == 'On' ) {
272
+ @chmod($rootHtaccess, 0404);
273
+ }
274
+
275
+ $text = '<strong><font color="green">'.__('WP Super Cache (WPSC) Plugin AutoCleanup Successful: ', 'bulletproof-security').'</font><font color="black"><span class="arq-tooltip-sw-60"><img src="'.plugins_url('/bulletproof-security/admin/images/question-mark.png').'" style="position:relative;top:3px;right:1px;" /><span>'.__('AutoCleanup has removed all WPSC htaccess code from BPS Custom Code and your Root htaccess file if it existed. If you have WPSC installed and are still planning on using WPSC then re-run the Setup Wizards after you have activated the WPSC plugin again and resaved your WPSC plugin settings again.', 'bulletproof-security').'</span></span></font></strong><br>';
276
+ echo $text;
277
+ }
278
+ }
279
+ }
280
+ }
281
+
282
+ // W3TC Setup & Cleanup: Creates the W3TC htaccess code in BPS Custom Code & the W3TC code in the wp-config.php file.
283
+ // IMPORTANT: It is not possible to access W3TC classes to get W3TC htaccess code. W3TC uses private functions in classes.
284
+ // Members declared as private may only be accessed by the class that defines the member. You cannot redeclare private properties.
285
+ // Get the W3TC htaccess code from the Root htaccess file and save it to BPS Custom Code.
286
+ // The Setup Wizard will either lock or not lock the wp-config.php file in later processing.
287
+ ## GWIOD site types do not need to do any of this since W3TC creates the htaccess code in the site root htaccess file and not the BPS Root htaccess file.
288
+ ## IMPORTANT: This function: bpsPro_w3tc_dashboard_iframe_preload() in wizard.php preloads the w3tc_dashboard page in an iFrame on Setup Wizard page access.
289
+ // The iFrame cannot be loaded from this function because things do not happen in time for processing data.
290
+ // The Root htaccess file and wp-config.php file are unlocked in this function: bpsPro_w3tc_dashboard_iframe_preload()
291
+ // Note: htaccess code is created in the site root htaccess file for GWIOD site types.
292
+ function bpsPro_Pwizard_Autofix_W3TC() {
293
+
294
+ $AutoFix_Options = get_option('bulletproof_security_options_wizard_autofix');
295
+
296
+ if ( $AutoFix_Options['bps_wizard_autofix'] == 'Off' ) {
297
+ return;
298
+ }
299
+
300
+ $w3tc_plugin = 'w3-total-cache/w3-total-cache.php';
301
+ $w3tc_plugin_active = in_array( $w3tc_plugin, apply_filters('active_plugins', get_option('active_plugins')));
302
+
303
+ // CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE
304
+ $CC_Options_root = get_option('bulletproof_security_options_customcode');
305
+ $bps_customcode_cache = htmlspecialchars_decode( $CC_Options_root['bps_customcode_one'], ENT_QUOTES );
306
+ $bps_customcode_cache_array = array();
307
+ $bps_customcode_cache_array[] = $bps_customcode_cache;
308
+ $cc_cache_array = array();
309
+
310
+ if ( $w3tc_plugin_active == 1 || is_plugin_active_for_network( $w3tc_plugin ) ) {
311
+
312
+ if ( ! is_multisite() ) {
313
+ $bpsSiteUrl = get_option('siteurl');
314
+ $bpsHomeUrl = get_option('home');
315
+ } else {
316
+ $bpsSiteUrl = get_site_option('siteurl');
317
+ $bpsHomeUrl = network_site_url();
318
+ }
319
+
320
+ ## GWIOD site type: AutoSetup is not required since htaccess code is written to the site root htaccess file.
321
+ if ( $bpsSiteUrl != $bpsHomeUrl ) {
322
+ $text = '<strong><font color="green">'.__('W3 Total Cache (W3TC) Plugin AutoSetup not required: ', 'bulletproof-security').'</font><font color="black"><span class="arq-tooltip-sw-20"><img src="'.plugins_url('/bulletproof-security/admin/images/question-mark.png').'" style="position:relative;top:3px;right:1px;" /><span>'.__('GWIOD site types do not require AutoSetup because W3TC creates htaccess code in the site root htaccess file.', 'bulletproof-security').'</span></span></font></strong><br>';
323
+ echo $text;
324
+ return;
325
+ }
326
+
327
+ ## Remove any existing W3TC htaccess code in Custom Code from the $cc_cache_array so that new W3TC htaccess code is created each time.
328
+ ## Remove any existing W3TC placeholder text if it exists. Note: If duplicate W3TC placeholders exists then a problem may occur.
329
+ ## Important Note: If dots are used (.*) then newlines and spaces are ignored when using the /s modifier.
330
+ // preg_match_all() would need to be used to preg_replace duplicate W3TC placeholder text. Wait and see - Do not do that for now.
331
+ // Cleans up extra Newlines, Returns & whitespaces.
332
+ // W3TC Markers: Browser Cache, Page Cache core, Page Cache cache, Skip 404 error handling by WordPress for static files, Minify core, Minify cache & CDN
333
+ // These Markers appear to only be created in the /wp-content/cache htaccess files: Page Cache cache, Minify cache & Minify core, but I am leaving
334
+ // the preg_replace conditions just in case any of these are also created in the root htaccess file. Will not hurt anything either way.
335
+ // The W3TC Order of Markers in the root htaccess file appear to be: Browser Cache, Page Cache core & Skip 404 error...
336
+ // CDN Marker appears to be created in the /wp-content/cache folder somewhere.
337
+ foreach ( $bps_customcode_cache_array as $key => $value ) {
338
+
339
+ if ( preg_match( '/#\sBEGIN\sW3TC\sBrowser\sCache(.*)#\sEND\sW3TC\sBrowser\sCache/s', $value, $matches ) ) {
340
+ $value = preg_replace( '/#\sBEGIN\sW3TC\sBrowser\sCache(.*)#\sEND\sW3TC\sBrowser\sCache/s', "", $value);
341
+ }
342
+
343
+ if ( preg_match( '/#\sBEGIN\sW3TC\sPage\sCache\score(.*)#\sEND\sW3TC\sPage\sCache\score/s', $value, $matches ) ) {
344
+ $value = preg_replace( '/#\sBEGIN\sW3TC\sPage\sCache\score(.*)#\sEND\sW3TC\sPage\sCache\score/s', "", $value);
345
+ }
346
+
347
+ if ( preg_match( '/#\sBEGIN\sW3TC\sPage\sCache\scache(.*)#\sEND\sW3TC\sPage\sCache\scache/s', $value, $matches ) ) {
348
+ $value = preg_replace( '/#\sBEGIN\sW3TC\sPage\sCache\scache(.*)#\sEND\sW3TC\sPage\sCache\scache/s', "", $value);
349
+ }
350
+
351
+ if ( preg_match( '/#\sBEGIN\sW3TC\sSkip\s404\serror\shandling\sby\sWordPress\sfor\sstatic\sfiles(.*)#\sEND\sW3TC\sSkip\s404\serror\shandling\sby\sWordPress\sfor\sstatic\sfiles/s', $value, $matches ) ) {
352
+ $value = preg_replace( '/#\sBEGIN\sW3TC\sSkip\s404\serror\shandling\sby\sWordPress\sfor\sstatic\sfiles(.*)#\sEND\sW3TC\sSkip\s404\serror\shandling\sby\sWordPress\sfor\sstatic\sfiles/s', "", $value);
353
+ }
354
+
355
+ if ( preg_match( '/#\sBEGIN\sW3TC\sMinify\score(.*)#\sEND\sW3TC\sMinify\score/s', $value, $matches ) ) {
356
+ $value = preg_replace( '/#\sBEGIN\sW3TC\sMinify\score(.*)#\sEND\sW3TC\sMinify\score/s', "", $value);
357
+ }
358
+
359
+ if ( preg_match( '/#\sBEGIN\sW3TC\sMinify\scache(.*)#\sEND\sW3TC\sMinify\scache/s', $value, $matches ) ) {
360
+ $value = preg_replace( '/#\sBEGIN\sW3TC\sMinify\scache(.*)#\sEND\sW3TC\sMinify\scache/s', "", $value);
361
+ }
362
+
363
+ if ( preg_match( '/#\sBEGIN\sW3TC\sCDN(.*)#\sEND\sW3TC\sCDN/s', $value, $matches ) ) {
364
+ $value = preg_replace( '/#\sBEGIN\sW3TC\sCDN(.*)#\sEND\sW3TC\sCDN/s', "", $value);
365
+ }
366
+
367
+ if ( preg_match( '/#\sBEGIN\sW3TC\n\n#\sEND\sW3TC/', $value, $matches ) ) {
368
+ $value = preg_replace( '/#\sBEGIN\sW3TC\n\n#\sEND\sW3TC/', "", $value);
369
+ }
370
+
371
+ if ( preg_match('/(\n\r){2,}/', $value, $matches) ) {
372
+ $value = preg_replace("/(\n\r){2,}/", "\n", $value);
373
+ }
374
+
375
+ $cc_cache_array[] = trim( $value, " \t\n\r");
376
+ }
377
+
378
+ $wpconfig = ABSPATH . 'wp-config.php';
379
+
380
+ if ( ! file_exists( $wpconfig ) ) {
381
+
382
+ $text = '<strong><font color="#fb0101">'.__('Error: The Pre-Installation Wizard is unable to add the W3 Total Cache WP_CACHE code in your wp-config.php file.', 'bulletproof-security').'</font><br>'.__('A wp-config.php file was NOT found in your WordPress website root folder. If you have moved your wp-config.php file to another folder location then you will need to either move the wp-config.php file back to its default WordPress folder location and run the Pre-Installation Wizard again or manually edit your wp-config.php file and add the W3 Total Cache WP_CACHE code. Click this link for the steps to manually edit your wp-config.php file: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/manually-editing-the-wordpress-wp-config-php-file/" target="_blank" title="Link opens in a new Browser window">'.__('Manually Edit the WordPress wp-config.php file', 'bulletproof-security').'</a><br>';
383
+ echo $text;
384
+ }
385
+
386
+ ## Get new W3TC htacces code from the Root htaccess file and save it in Custom Code.
387
+ $rootHtaccess = ABSPATH . '.htaccess';
388
+
389
+ if ( file_exists($rootHtaccess) ) {
390
+
391
+ // Don't bother trying to check any W3TC options settings since w3tc does not store "on|off" settings in the WP DB.
392
+ // W3TC option settings are in these files: /wp-content/w3tc-config/master.php and master-admin.php
393
+ // Since any/new W3TC htaccess code will be created/recreated in the root htaccess file by W3TC when the iFrame loads in this
394
+ // function: bpsPro_w3tc_dashboard_iframe_preload() then get any/all W3TC htaccess code if it exists - already in CC or new code in the Root htaccess file.
395
+ ## The W3TC Order of Markers in the root htaccess file appear to be: Browser Cache, Page Cache core & Skip 404 error...
396
+ // Get each block of W3TC code and put them in arrays and then merge the arrays.
397
+ ## Remove the W3TC htaccess code from the Root htaccess file after putting any W3TC code into arrays and updating the CC DB options.
398
+ $root_htaccess_file_contents = @file_get_contents($rootHtaccess);
399
+
400
+ $browser_cache = array();
401
+ $page_cache_core = array();
402
+ $page_cache_cache = array();
403
+ $skip_404_error = array();
404
+ $minify_core = array();
405
+ $minify_cache = array();
406
+ $CDN = array();
407
+
408
+ if ( preg_match( '/#\sBEGIN\sW3TC\sBrowser\sCache(.*)#\sEND\sW3TC\sBrowser\sCache/s', $root_htaccess_file_contents, $matches ) ) {
409
+ $browser_cache[] = $matches[0];
410
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sW3TC\sBrowser\sCache(.*)#\sEND\sW3TC\sBrowser\sCache/s', "", $root_htaccess_file_contents);
411
+ }
412
+
413
+ if ( preg_match( '/#\sBEGIN\sW3TC\sPage\sCache\score(.*)#\sEND\sW3TC\sPage\sCache\score/s', $root_htaccess_file_contents, $matches ) ) {
414
+ $page_cache_core[] = $matches[0];
415
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sW3TC\sPage\sCache\score(.*)#\sEND\sW3TC\sPage\sCache\score/s', "", $root_htaccess_file_contents);
416
+ }
417
+
418
+ if ( preg_match( '/#\sBEGIN\sW3TC\sPage\sCache\scache(.*)#\sEND\sW3TC\sPage\sCache\scache/s', $root_htaccess_file_contents, $matches ) ) {
419
+ $page_cache_cache[] = $matches[0];
420
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sW3TC\sPage\sCache\scache(.*)#\sEND\sW3TC\sPage\sCache\scache/s', "", $root_htaccess_file_contents);
421
+ }
422
+
423
+ if ( preg_match( '/#\sBEGIN\sW3TC\sSkip\s404\serror\shandling\sby\sWordPress\sfor\sstatic\sfiles(.*)#\sEND\sW3TC\sSkip\s404\serror\shandling\sby\sWordPress\sfor\sstatic\sfiles/s', $root_htaccess_file_contents, $matches ) ) {
424
+ $skip_404_error[] = $matches[0];
425
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sW3TC\sSkip\s404\serror\shandling\sby\sWordPress\sfor\sstatic\sfiles(.*)#\sEND\sW3TC\sSkip\s404\serror\shandling\sby\sWordPress\sfor\sstatic\sfiles/s', "", $root_htaccess_file_contents);
426
+ }
427
+
428
+ if ( preg_match( '/#\sBEGIN\sW3TC\sMinify\score(.*)#\sEND\sW3TC\sMinify\score/s', $root_htaccess_file_contents, $matches ) ) {
429
+ $minify_core[] = $matches[0];
430
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sW3TC\sMinify\score(.*)#\sEND\sW3TC\sMinify\score/s', "", $root_htaccess_file_contents);
431
+ }
432
+
433
+ if ( preg_match( '/#\sBEGIN\sW3TC\sMinify\scache(.*)#\sEND\sW3TC\sMinify\scache/s', $root_htaccess_file_contents, $matches ) ) {
434
+ $minify_cache[] = $matches[0];
435
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sW3TC\sMinify\scache(.*)#\sEND\sW3TC\sMinify\scache/s', "", $root_htaccess_file_contents);
436
+ }
437
+
438
+ if ( preg_match( '/#\sBEGIN\sW3TC\sCDN(.*)#\sEND\sW3TC\sCDN/s', $root_htaccess_file_contents, $matches ) ) {
439
+ $CDN[] = $matches[0];
440
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sW3TC\sCDN(.*)#\sEND\sW3TC\sCDN/s', "", $root_htaccess_file_contents);
441
+ }
442
+
443
+ if ( empty($browser_cache) && empty($page_cache_core) && empty($page_cache_cache) && empty($skip_404_error) && empty($minify_core) && empty($minify_cache) && empty($CDN) ) {
444
+ $w3tc_marker_array = array();
445
+ $w3tc_marker_array[] = "# BEGIN W3TC\n\n# END W3TC\n";
446
+ $bps_customcode_cache_merge = array_merge($cc_cache_array, $w3tc_marker_array);
447
+
448
+ } else {
449
+
450
+ $bps_customcode_cache_merge = array_merge($cc_cache_array, $browser_cache, $page_cache_core, $page_cache_cache, $skip_404_error, $minify_core, $minify_cache, $CDN);
451
+ }
452
+
453
+ $cc_cache_unique = array_unique($bps_customcode_cache_merge);
454
+ // needs to be \n
455
+ $bps_customcode_cache_implode = implode( "\n", $cc_cache_unique );
456
+
457
+ if ( ! is_multisite() ) {
458
+
459
+ $Root_CC_Options = array(
460
+ 'bps_customcode_one' => $bps_customcode_cache_implode,
461
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
462
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
463
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
464
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
465
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
466
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
467
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
468
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
469
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
470
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
471
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
472
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
473
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
474
+ );
475
+
476
+ } else {
477
+
478
+ $Root_CC_Options = array(
479
+ 'bps_customcode_one' => $bps_customcode_cache_implode,
480
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
481
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
482
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
483
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
484
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
485
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
486
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
487
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
488
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
489
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
490
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
491
+ 'bps_customcode_wp_rewrite_end' => $CC_Options_root['bps_customcode_wp_rewrite_end'],
492
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
493
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
494
+ );
495
+ }
496
+
497
+ foreach( $Root_CC_Options as $key => $value ) {
498
+ update_option('bulletproof_security_options_customcode', $Root_CC_Options);
499
+ }
500
+
501
+ $text = '<strong><font color="green">'.__('W3 Total Cache (W3TC) Plugin AutoSetup Successful: ', 'bulletproof-security').'</font><font color="black"><span class="arq-tooltip-sw-20"><img src="'.plugins_url('/bulletproof-security/admin/images/question-mark.png').'" style="position:relative;top:3px;right:1px;" /><span>'.__('Important Note: If you change any of your W3 Total Cache settings at any time, re-run the Setup Wizards again.', 'bulletproof-security').'</span></span></font></strong><br>';
502
+ echo $text;
503
+
504
+ ## Remove W3TC htaccess code from the Root htaccess file
505
+ if ( file_put_contents($rootHtaccess, $root_htaccess_file_contents) ) {
506
+
507
+ $Root_Autolock = get_option('bulletproof_security_options_autolock');
508
+
509
+ if ( $Root_Autolock['bps_root_htaccess_autolock'] == 'On' ) {
510
+ @chmod($rootHtaccess, 0404);
511
+ }
512
+ }
513
+ }
514
+
515
+ } else {
516
+
517
+ ## W3TC Cleanup: Either not installed or activated. Removes any/all W3TC htaccess code from BPS Custom Code and Root htaccess file.
518
+ if ( $w3tc_plugin_active != 1 && ! is_plugin_active_for_network( $w3tc_plugin ) ) {
519
+
520
+ ## Remove any existing W3TC htaccess code in Custom Code from the $cc_cache_array.
521
+ foreach ( $bps_customcode_cache_array as $key => $value ) {
522
+
523
+ if ( preg_match( '/#\sBEGIN\sW3TC\sBrowser\sCache(.*)#\sEND\sW3TC\sBrowser\sCache/s', $value, $matches ) ) {
524
+ $value = preg_replace( '/#\sBEGIN\sW3TC\sBrowser\sCache(.*)#\sEND\sW3TC\sBrowser\sCache/s', "", $value);
525
+ }
526
+
527
+ if ( preg_match( '/#\sBEGIN\sW3TC\sPage\sCache\score(.*)#\sEND\sW3TC\sPage\sCache\score/s', $value, $matches ) ) {
528
+ $value = preg_replace( '/#\sBEGIN\sW3TC\sPage\sCache\score(.*)#\sEND\sW3TC\sPage\sCache\score/s', "", $value);
529
+ }
530
+
531
+ if ( preg_match( '/#\sBEGIN\sW3TC\sPage\sCache\scache(.*)#\sEND\sW3TC\sPage\sCache\scache/s', $value, $matches ) ) {
532
+ $value = preg_replace( '/#\sBEGIN\sW3TC\sPage\sCache\scache(.*)#\sEND\sW3TC\sPage\sCache\scache/s', "", $value);
533
+ }
534
+
535
+ if ( preg_match( '/#\sBEGIN\sW3TC\sSkip\s404\serror\shandling\sby\sWordPress\sfor\sstatic\sfiles(.*)#\sEND\sW3TC\sSkip\s404\serror\shandling\sby\sWordPress\sfor\sstatic\sfiles/s', $value, $matches ) ) {
536
+ $value = preg_replace( '/#\sBEGIN\sW3TC\sSkip\s404\serror\shandling\sby\sWordPress\sfor\sstatic\sfiles(.*)#\sEND\sW3TC\sSkip\s404\serror\shandling\sby\sWordPress\sfor\sstatic\sfiles/s', "", $value);
537
+ }
538
+
539
+ if ( preg_match( '/#\sBEGIN\sW3TC\sMinify\score(.*)#\sEND\sW3TC\sMinify\score/s', $value, $matches ) ) {
540
+ $value = preg_replace( '/#\sBEGIN\sW3TC\sMinify\score(.*)#\sEND\sW3TC\sMinify\score/s', "", $value);
541
+ }
542
+
543
+ if ( preg_match( '/#\sBEGIN\sW3TC\sMinify\scache(.*)#\sEND\sW3TC\sMinify\scache/s', $value, $matches ) ) {
544
+ $value = preg_replace( '/#\sBEGIN\sW3TC\sMinify\scache(.*)#\sEND\sW3TC\sMinify\scache/s', "", $value);
545
+ }
546
+
547
+ if ( preg_match( '/#\sBEGIN\sW3TC\sCDN(.*)#\sEND\sW3TC\sCDN/s', $value, $matches ) ) {
548
+ $value = preg_replace( '/#\sBEGIN\sW3TC\sCDN(.*)#\sEND\sW3TC\sCDN/s', "", $value);
549
+ }
550
+
551
+ if ( preg_match( '/#\sBEGIN\sW3TC\n\n#\sEND\sW3TC/', $value, $matches ) ) {
552
+ $value = preg_replace( '/#\sBEGIN\sW3TC\n\n#\sEND\sW3TC/', "", $value);
553
+ }
554
+
555
+ if ( preg_match('/(\n\r){2,}/', $value, $matches) ) {
556
+ $value = preg_replace("/(\n\r){2,}/", "\n", $value);
557
+ }
558
+
559
+ $cc_cache_array[] = trim( $value, " \t\n\r");
560
+ }
561
+
562
+ $bps_customcode_cache_implode = implode( "\n\n", $cc_cache_array );
563
+
564
+ if ( ! is_multisite() ) {
565
+
566
+ $Root_CC_Options = array(
567
+ 'bps_customcode_one' => $bps_customcode_cache_implode,
568
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
569
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
570
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
571
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
572
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
573
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
574
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
575
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
576
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
577
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
578
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
579
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
580
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
581
+ );
582
+
583
+ } else {
584
+
585
+ $Root_CC_Options = array(
586
+ 'bps_customcode_one' => $bps_customcode_cache_implode,
587
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
588
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
589
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
590
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
591
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
592
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
593
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
594
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
595
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
596
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
597
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
598
+ 'bps_customcode_wp_rewrite_end' => $CC_Options_root['bps_customcode_wp_rewrite_end'],
599
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
600
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
601
+ );
602
+ }
603
+
604
+ foreach( $Root_CC_Options as $key => $value ) {
605
+ update_option('bulletproof_security_options_customcode', $Root_CC_Options);
606
+ }
607
+
608
+ ## Remove any existing W3TC htaccess code in the Root htaccess file.
609
+ $rootHtaccess = ABSPATH . '.htaccess';
610
+
611
+ if ( file_exists($rootHtaccess) ) {
612
+
613
+ $permsRootHtaccess = @substr(sprintf('%o', fileperms($rootHtaccess)), -4);
614
+
615
+ if ( @substr($sapi_type, 0, 6) != 'apache' || @$permsRootHtaccess != '0666' || @$permsRootHtaccess != '0777' ) {
616
+ chmod( $rootHtaccess, 0644 );
617
+ }
618
+
619
+ $root_htaccess_file_contents = @file_get_contents($rootHtaccess);
620
+
621
+ if ( preg_match( '/#\sBEGIN\sW3TC\sBrowser\sCache(.*)#\sEND\sW3TC\sBrowser\sCache/s', $root_htaccess_file_contents, $matches ) ) {
622
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sW3TC\sBrowser\sCache(.*)#\sEND\sW3TC\sBrowser\sCache/s', "", $root_htaccess_file_contents);
623
+ }
624
+
625
+ if ( preg_match( '/#\sBEGIN\sW3TC\sPage\sCache\score(.*)#\sEND\sW3TC\sPage\sCache\score/s', $root_htaccess_file_contents, $matches ) ) {
626
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sW3TC\sPage\sCache\score(.*)#\sEND\sW3TC\sPage\sCache\score/s', "", $root_htaccess_file_contents);
627
+ }
628
+
629
+ if ( preg_match( '/#\sBEGIN\sW3TC\sPage\sCache\scache(.*)#\sEND\sW3TC\sPage\sCache\scache/s', $root_htaccess_file_contents, $matches ) ) {
630
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sW3TC\sPage\sCache\scache(.*)#\sEND\sW3TC\sPage\sCache\scache/s', "", $root_htaccess_file_contents);
631
+ }
632
+
633
+ if ( preg_match( '/#\sBEGIN\sW3TC\sSkip\s404\serror\shandling\sby\sWordPress\sfor\sstatic\sfiles(.*)#\sEND\sW3TC\sSkip\s404\serror\shandling\sby\sWordPress\sfor\sstatic\sfiles/s', $root_htaccess_file_contents, $matches ) ) {
634
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sW3TC\sSkip\s404\serror\shandling\sby\sWordPress\sfor\sstatic\sfiles(.*)#\sEND\sW3TC\sSkip\s404\serror\shandling\sby\sWordPress\sfor\sstatic\sfiles/s', "", $root_htaccess_file_contents);
635
+ }
636
+
637
+ if ( preg_match( '/#\sBEGIN\sW3TC\sMinify\score(.*)#\sEND\sW3TC\sMinify\score/s', $root_htaccess_file_contents, $matches ) ) {
638
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sW3TC\sMinify\score(.*)#\sEND\sW3TC\sMinify\score/s', "", $root_htaccess_file_contents);
639
+ }
640
+
641
+ if ( preg_match( '/#\sBEGIN\sW3TC\sMinify\scache(.*)#\sEND\sW3TC\sMinify\scache/s', $root_htaccess_file_contents, $matches ) ) {
642
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sW3TC\sMinify\scache(.*)#\sEND\sW3TC\sMinify\scache/s', "", $root_htaccess_file_contents);
643
+ }
644
+
645
+ if ( preg_match( '/#\sBEGIN\sW3TC\sCDN(.*)#\sEND\sW3TC\sCDN/s', $root_htaccess_file_contents, $matches ) ) {
646
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sW3TC\sCDN(.*)#\sEND\sW3TC\sCDN/s', "", $root_htaccess_file_contents);
647
+ }
648
+
649
+ if ( preg_match( '/#\sBEGIN\sW3TC\n\n#\sEND\sW3TC/', $root_htaccess_file_contents, $matches ) ) {
650
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sW3TC\n\n#\sEND\sW3TC/', "", $root_htaccess_file_contents);
651
+ }
652
+
653
+ file_put_contents($rootHtaccess, $root_htaccess_file_contents);
654
+
655
+ $Root_Autolock = get_option('bulletproof_security_options_autolock');
656
+
657
+ if ( $Root_Autolock['bps_root_htaccess_autolock'] == 'On' ) {
658
+ @chmod($rootHtaccess, 0404);
659
+ }
660
+
661
+ $text = '<strong><font color="green">'.__('W3 Total Cache (W3TC) Plugin AutoCleanup Successful: ', 'bulletproof-security').'</font><font color="black"><span class="arq-tooltip-sw-60"><img src="'.plugins_url('/bulletproof-security/admin/images/question-mark.png').'" style="position:relative;top:3px;right:1px;" /><span>'.__('AutoCleanup has removed all W3TC htaccess code from BPS Custom Code and your Root htaccess file if it existed. If you have W3TC installed and are still planning on using W3TC then re-run the Setup Wizards after you have activated the W3TC plugin again and resaved your W3TC plugin settings again.', 'bulletproof-security').'</span></span></font></strong><br>';
662
+
663
+ echo $text;
664
+ }
665
+ }
666
+ }
667
+ }
668
+
669
+ // Comet Cache (free and Pro) Setup & Cleanup: Creates the Comet Cache htaccess code in BPS Custom Code & the Comet Cache code in the wp-config.php file.
670
+ // Get Comet Cache htaccess code from pre-made template files here: /src/includes/templates/htaccess based on CC db option values.
671
+ // Unlock the Root htaccess file and remove any existing CC htaccess code. Unlock the wp-config.php file and write the define( 'WP_CACHE', true ); if it does not exist.
672
+ // Comet Cache DB options: htaccess_browser_caching_enable, htaccess_gzip_enable, htaccess_enforce_exact_host_name, htaccess_enforce_canonical_urls &
673
+ // htaccess_access_control_allow_origin.
674
+ // CC free only uses htaccess_gzip_enable & Pro has all other DB options.
675
+ // Notes: htaccess_access_control_allow_origin is for CDN htaccess code, but do not check the cdn_enable DB option value.
676
+ // htaccess_enforce_canonical_urls uses 2 different template files (-no-ts- and -ts-) based on whether a trailing slash or no trailing slash is being used in permalinks.
677
+ // Note: htaccess code is created in the site root htaccess file for GWIOD site types.
678
+ function bpsPro_Pwizard_Autofix_Comet_Cache() {
679
+
680
+ $AutoFix_Options = get_option('bulletproof_security_options_wizard_autofix');
681
+
682
+ if ( $AutoFix_Options['bps_wizard_autofix'] == 'Off' ) {
683
+ return;
684
+ }
685
+
686
+ $comet_cache = 'comet-cache/comet-cache.php';
687
+ $comet_cache_pro = 'comet-cache-pro/comet-cache-pro.php';
688
+ $comet_cache_active = in_array( $comet_cache, apply_filters('active_plugins', get_option('active_plugins')));
689
+ $comet_cache_pro_active = in_array( $comet_cache_pro, apply_filters('active_plugins', get_option('active_plugins')));
690
+
691
+ // CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE
692
+ $CC_Options_root = get_option('bulletproof_security_options_customcode');
693
+ $bps_customcode_cache = htmlspecialchars_decode( $CC_Options_root['bps_customcode_one'], ENT_QUOTES );
694
+ $bps_customcode_cache_array = array();
695
+ $bps_customcode_cache_array[] = $bps_customcode_cache;
696
+ $cc_cache_array = array();
697
+
698
+ if ( $comet_cache_active == 1 || is_plugin_active_for_network( $comet_cache ) || $comet_cache_pro_active == 1 || is_plugin_active_for_network( $comet_cache_pro ) ) {
699
+
700
+ if ( ! is_multisite() ) {
701
+ $bpsSiteUrl = get_option('siteurl');
702
+ $bpsHomeUrl = get_option('home');
703
+ } else {
704
+ $bpsSiteUrl = get_site_option('siteurl');
705
+ $bpsHomeUrl = network_site_url();
706
+ }
707
+
708
+ ## GWIOD site type: AutoSetup is not required since htaccess code is written to the site root htaccess file.
709
+ if ( $bpsSiteUrl != $bpsHomeUrl ) {
710
+ $text = '<strong><font color="green">'.__('Comet Cache Plugin AutoSetup not required: ', 'bulletproof-security').'</font><font color="black"><span class="arq-tooltip-sw-20"><img src="'.plugins_url('/bulletproof-security/admin/images/question-mark.png').'" style="position:relative;top:3px;right:1px;" /><span>'.__('GWIOD site types do not require AutoSetup because Comet Cache creates htaccess code in the site root htaccess file.', 'bulletproof-security').'</span></span></font></strong><br>';
711
+ echo $text;
712
+ return;
713
+ }
714
+
715
+ ## Remove any existing Comet Cache htaccess code in Custom Code from the $cc_cache_array so that new CC htaccess code is created each time.
716
+ ## Important Note: If dots are used (.*) then newlines and spaces are ignored when using the /s modifier.
717
+ // Cleans up extra Newlines, Returns & whitespaces.
718
+ foreach ( $bps_customcode_cache_array as $key => $value ) {
719
+
720
+ if ( preg_match( '/#\sBEGIN\sComet\sCache(.*)#\sEND\sComet\sCache\sWmVuQ2FjaGU/s', $value, $matches ) ) {
721
+ $value = preg_replace( '/#\sBEGIN\sComet\sCache(.*)#\sEND\sComet\sCache\sWmVuQ2FjaGU/s', "", $value);
722
+ }
723
+
724
+ if ( preg_match('/(\n\r){2,}/', $value, $matches) ) {
725
+ $value = preg_replace("/(\n\r){2,}/", "\n", $value);
726
+ }
727
+
728
+ $cc_cache_array[] = trim( $value, " \t\n\r");
729
+ }
730
+
731
+ $wpconfig = ABSPATH . 'wp-config.php';
732
+
733
+ if ( ! file_exists( $wpconfig ) ) {
734
+
735
+ $text = '<strong><font color="#fb0101">'.__('Error: The Pre-Installation Wizard is unable to add the Comet Cache WP_CACHE code in your wp-config.php file.', 'bulletproof-security').'</font><br>'.__('A wp-config.php file was NOT found in your WordPress website root folder. If you have moved your wp-config.php file to another folder location then you will need to either move the wp-config.php file back to its default WordPress folder location and run the Pre-Installation Wizard again or manually edit your wp-config.php file and add the Comet Cache WP_CACHE code. Click this link for the steps to manually edit your wp-config.php file: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/manually-editing-the-wordpress-wp-config-php-file/" target="_blank" title="Link opens in a new Browser window">'.__('Manually Edit the WordPress wp-config.php file', 'bulletproof-security').'</a><br>';
736
+ echo $text;
737
+ }
738
+
739
+ ## Delete any Comet Cache htacces code in the Root htaccess file.
740
+ $rootHtaccess = ABSPATH . '.htaccess';
741
+
742
+ if ( file_exists($rootHtaccess) ) {
743
+
744
+ $sapi_type = php_sapi_name();
745
+ $permsRootHtaccess = @substr(sprintf('%o', fileperms($rootHtaccess)), -4);
746
+
747
+ if ( file_exists( $wpconfig ) ) {
748
+
749
+ $perms_wpconfig = @substr(sprintf('%o', fileperms($wpconfig)), -4);
750
+
751
+ if ( @substr($sapi_type, 0, 6) != 'apache' || @$perms_wpconfig != '0666' || @$perms_wpconfig != '0777' ) { // Windows IIS, XAMPP, etc
752
+ chmod( $wpconfig, 0644 );
753
+ }
754
+ }
755
+
756
+ if ( @substr($sapi_type, 0, 6) != 'apache' || @$permsRootHtaccess != '0666' || @$permsRootHtaccess != '0777' ) {
757
+ chmod( $rootHtaccess, 0644 );
758
+ }
759
+
760
+ $root_htaccess_file_contents = @file_get_contents($rootHtaccess);
761
+
762
+ if ( preg_match( '/#\sBEGIN\sComet\sCache(.*)#\sEND\sComet\sCache\sWmVuQ2FjaGU/s', $root_htaccess_file_contents, $matches ) ) {
763
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sComet\sCache(.*)#\sEND\sComet\sCache\sWmVuQ2FjaGU/s', "", $root_htaccess_file_contents);
764
+ }
765
+
766
+ file_put_contents($rootHtaccess, $root_htaccess_file_contents);
767
+
768
+ $Root_Autolock = get_option('bulletproof_security_options_autolock');
769
+
770
+ if ( $Root_Autolock['bps_root_htaccess_autolock'] == 'On' ) {
771
+ @chmod($rootHtaccess, 0404);
772
+ }
773
+
774
+ ## Get new Comet Cache htaccess code from template files.
775
+ $comet_cache_options = get_option('comet_cache_options');
776
+
777
+ if ( $comet_cache_active == 1 || is_plugin_active_for_network( $comet_cache ) ) {
778
+ $access_control_allow_origin_enable = WP_PLUGIN_DIR . '/comet-cache/src/includes/templates/htaccess/access-control-allow-origin-enable.txt';
779
+ $browser_caching_enable = WP_PLUGIN_DIR . '/comet-cache/src/includes/templates/htaccess/browser-caching-enable.txt';
780
+ $canonical_urls_no_ts_enable = WP_PLUGIN_DIR . '/comet-cache/src/includes/templates/htaccess/canonical-urls-no-ts-enable.txt';
781
+ $canonical_urls_ts_enable = WP_PLUGIN_DIR . '/comet-cache/src/includes/templates/htaccess/canonical-urls-ts-enable.txt';
782
+ $enforce_exact_host_name = WP_PLUGIN_DIR . '/comet-cache/src/includes/templates/htaccess/enforce-exact-host-name.txt';
783
+ $gzip_enable = WP_PLUGIN_DIR . '/comet-cache/src/includes/templates/htaccess/gzip-enable.txt';
784
+ }
785
+
786
+ if ( $comet_cache_pro_active == 1 || is_plugin_active_for_network( $comet_cache_pro ) ) {
787
+ $access_control_allow_origin_enable = WP_PLUGIN_DIR . '/comet-cache-pro/src/includes/templates/htaccess/access-control-allow-origin-enable.txt';
788
+ $browser_caching_enable = WP_PLUGIN_DIR . '/comet-cache-pro/src/includes/templates/htaccess/browser-caching-enable.txt';
789
+ $canonical_urls_no_ts_enable = WP_PLUGIN_DIR . '/comet-cache-pro/src/includes/templates/htaccess/canonical-urls-no-ts-enable.txt';
790
+ $canonical_urls_ts_enable = WP_PLUGIN_DIR . '/comet-cache-pro/src/includes/templates/htaccess/canonical-urls-ts-enable.txt';
791
+ $enforce_exact_host_name = WP_PLUGIN_DIR . '/comet-cache-pro/src/includes/templates/htaccess/enforce-exact-host-name.txt';
792
+ $gzip_enable = WP_PLUGIN_DIR . '/comet-cache-pro/src/includes/templates/htaccess/gzip-enable.txt';
793
+ }
794
+
795
+ $access_control_allow_origin_enable_array = array();
796
+ $browser_caching_enable_array = array();
797
+ $canonical_urls_no_ts_enable_array = array();
798
+ $canonical_urls_ts_enable_array = array();
799
+ $enforce_exact_host_name_array = array();
800
+ $gzip_enable_array = array();
801
+
802
+ global $wp_rewrite;
803
+
804
+ if ( $comet_cache_options['htaccess_gzip_enable'] == '1' ) {
805
+ $gzip_enable_array[] = file_get_contents($gzip_enable);
806
+ }
807
+
808
+ if ( $comet_cache_options['htaccess_access_control_allow_origin'] == '1' ) {
809
+ $access_control_allow_origin_enable_array[] = file_get_contents($access_control_allow_origin_enable);
810
+ }
811
+
812
+ if ( $comet_cache_options['htaccess_browser_caching_enable'] == '1' ) {
813
+ $browser_caching_enable_array[] = file_get_contents($browser_caching_enable);
814
+ }
815
+
816
+ if ( $comet_cache_options['htaccess_enforce_exact_host_name'] == '1' ) {
817
+ $enforce_exact_host_name_array[] = file_get_contents($enforce_exact_host_name);
818
+ }
819
+
820
+ if ( $comet_cache_options['htaccess_enforce_canonical_urls'] == '1' ) {
821
+
822
+ if ( $wp_rewrite->permalink_structure ) {
823
+
824
+ if ( ! $wp_rewrite->use_trailing_slashes || $wp_rewrite->use_trailing_slashes != 1 ) {
825
+ $canonical_urls_no_ts_enable_array[] = file_get_contents($canonical_urls_no_ts_enable);
826
+ } elseif ( $wp_rewrite->use_trailing_slashes == 1 ) {
827
+ $canonical_urls_ts_enable_array[] = file_get_contents($canonical_urls_ts_enable);
828
+ }
829
+
830
+ }
831
+ }
832
+
833
+ if ( empty($gzip_enable_array) && empty($access_control_allow_origin_enable_array) && empty($browser_caching_enable_array) && empty($enforce_exact_host_name_array) && empty($canonical_urls_no_ts_enable_array) && empty($canonical_urls_ts_enable_array) ) {
834
+
835
+ $comet_cache_array_replace = array();
836
+
837
+ } else {
838
+
839
+ $comet_cache_begin_marker = array();
840
+ $comet_cache_begin_marker[] = "\n\n# BEGIN Comet Cache WmVuQ2FjaGU (the WmVuQ2FjaGU marker is required for Comet Cache; do not remove)\n";
841
+
842
+ $comet_cache_end_marker = array();
843
+ $comet_cache_end_marker[] = "# END Comet Cache WmVuQ2FjaGU\n";
844
+
845
+ $comet_cache_array_merge = array_merge($comet_cache_begin_marker, $gzip_enable_array, $access_control_allow_origin_enable_array, $browser_caching_enable_array, $enforce_exact_host_name_array, $canonical_urls_no_ts_enable_array, $canonical_urls_ts_enable_array, $comet_cache_end_marker);
846
+
847
+ $pattern_array = array( '/%%REWRITE_BASE%%/', '/%%HOST_NAME_AS_REGEX_FRAG%%/', '/%%REST_REQUEST_PREFIX_AS_REGEX_FRAG%%/' );
848
+ $replace_array = array( bps_wp_get_root_folder(), bpsGetDomainRoot(), rest_get_url_prefix() );
849
+ $comet_cache_array_replace = preg_replace($pattern_array, $replace_array, $comet_cache_array_merge);
850
+ }
851
+
852
+ $bps_customcode_cache_merge = array_merge($cc_cache_array, $comet_cache_array_replace);
853
+ $cc_cache_unique = array_unique($bps_customcode_cache_merge);
854
+
855
+ // Needs to be \n
856
+ $bps_customcode_cache_implode = implode( "\n", $cc_cache_unique );
857
+
858
+ if ( ! is_multisite() ) {
859
+
860
+ $Root_CC_Options = array(
861
+ 'bps_customcode_one' => $bps_customcode_cache_implode,
862
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
863
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
864
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
865
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
866
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
867
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
868
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
869
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
870
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
871
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
872
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
873
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
874
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
875
+ );
876
+
877
+ } else {
878
+
879
+ $Root_CC_Options = array(
880
+ 'bps_customcode_one' => $bps_customcode_cache_implode,
881
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
882
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
883
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
884
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
885
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
886
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
887
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
888
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
889
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
890
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
891
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
892
+ 'bps_customcode_wp_rewrite_end' => $CC_Options_root['bps_customcode_wp_rewrite_end'],
893
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
894
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
895
+ );
896
+ }
897
+
898
+ foreach( $Root_CC_Options as $key => $value ) {
899
+ update_option('bulletproof_security_options_customcode', $Root_CC_Options);
900
+ }
901
+
902
+ ## Add the define( 'WP_CACHE', true ); code in the wp-config.php file if it does not exist
903
+ if ( file_exists( $wpconfig ) ) {
904
+ $wp_config_contents = file_get_contents($wpconfig);
905
+
906
+ if ( ! preg_match( '/define(.*)\((.*)WP_CACHE(.*)(true|false)(.*)\);/', $wp_config_contents, $matches ) ) {
907
+ $wp_config_contents = preg_replace( '/<\?php(.*\s*){1}/', '<?php'."\ndefine( 'WP_CACHE', true );\n", $wp_config_contents);
908
+ file_put_contents($wpconfig, $wp_config_contents);
909
+ }
910
+ }
911
+
912
+ $text = '<strong><font color="green">'.__('Comet Cache Plugin AutoSetup Successful: ', 'bulletproof-security').'</font><font color="black"><span class="arq-tooltip-sw-20"><img src="'.plugins_url('/bulletproof-security/admin/images/question-mark.png').'" style="position:relative;top:3px;right:1px;" /><span>'.__('Important Note: If you change any of your Comet Cache settings at any time, re-run the Setup Wizards again.', 'bulletproof-security').'</span></span></font></strong><br>';
913
+ echo $text;
914
+ }
915
+
916
+ } else {
917
+
918
+ ## Comet Cache Cleanup: Either not installed or activated. Removes any/all Comet Cache htaccess code from BPS Custom Code and Root htaccess file.
919
+ if ( $comet_cache_active != 1 && $comet_cache_pro_active != 1 && ! is_plugin_active_for_network( $comet_cache ) && ! is_plugin_active_for_network( $comet_cache_pro ) ) {
920
+
921
+ ## Remove any existing Comet Cache htaccess code in Custom Code from the $cc_cache_array.
922
+ foreach ( $bps_customcode_cache_array as $key => $value ) {
923
+
924
+ if ( preg_match( '/#\sBEGIN\sComet\sCache(.*)#\sEND\sComet\sCache\sWmVuQ2FjaGU/s', $value, $matches ) ) {
925
+ $value = preg_replace( '/#\sBEGIN\sComet\sCache(.*)#\sEND\sComet\sCache\sWmVuQ2FjaGU/s', "", $value);
926
+ }
927
+
928
+ if ( preg_match('/(\n\r){2,}/', $value, $matches) ) {
929
+ $value = preg_replace("/(\n\r){2,}/", "\n", $value);
930
+ }
931
+
932
+ $cc_cache_array[] = trim( $value, " \t\n\r");
933
+ }
934
+
935
+ $bps_customcode_cache_implode = implode( "\n\n", $cc_cache_array );
936
+
937
+ if ( ! is_multisite() ) {
938
+
939
+ $Root_CC_Options = array(
940
+ 'bps_customcode_one' => $bps_customcode_cache_implode,
941
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
942
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
943
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
944
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
945
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
946
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
947
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
948
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
949
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
950
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
951
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
952
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
953
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
954
+ );
955
+
956
+ } else {
957
+
958
+ $Root_CC_Options = array(
959
+ 'bps_customcode_one' => $bps_customcode_cache_implode,
960
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
961
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
962
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
963
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
964
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
965
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
966
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
967
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
968
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
969
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
970
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
971
+ 'bps_customcode_wp_rewrite_end' => $CC_Options_root['bps_customcode_wp_rewrite_end'],
972
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
973
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
974
+ );
975
+ }
976
+
977
+ foreach ( $Root_CC_Options as $key => $value ) {
978
+ update_option('bulletproof_security_options_customcode', $Root_CC_Options);
979
+ }
980
+
981
+ ## Remove any existing Comet Cache htaccess code in the Root htaccess file.
982
+ $rootHtaccess = ABSPATH . '.htaccess';
983
+
984
+ if ( file_exists($rootHtaccess) ) {
985
+
986
+ $permsRootHtaccess = @substr(sprintf('%o', fileperms($rootHtaccess)), -4);
987
+
988
+ if ( @substr($sapi_type, 0, 6) != 'apache' || @$permsRootHtaccess != '0666' || @$permsRootHtaccess != '0777' ) {
989
+ chmod( $rootHtaccess, 0644 );
990
+ }
991
+
992
+ $root_htaccess_file_contents = @file_get_contents($rootHtaccess);
993
+
994
+ if ( preg_match( '/#\sBEGIN\sComet\sCache(.*)#\sEND\sComet\sCache\sWmVuQ2FjaGU/s', $root_htaccess_file_contents, $matches ) ) {
995
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sComet\sCache(.*)#\sEND\sComet\sCache\sWmVuQ2FjaGU/s', "", $root_htaccess_file_contents);
996
+ }
997
+
998
+ file_put_contents($rootHtaccess, $root_htaccess_file_contents);
999
+
1000
+ $Root_Autolock = get_option('bulletproof_security_options_autolock');
1001
+
1002
+ if ( $Root_Autolock['bps_root_htaccess_autolock'] == 'On' ) {
1003
+ @chmod($rootHtaccess, 0404);
1004
+ }
1005
+
1006
+ $text = '<strong><font color="green">'.__('Comet Cache Plugin AutoCleanup Successful: ', 'bulletproof-security').'</font><font color="black"><span class="arq-tooltip-sw-60"><img src="'.plugins_url('/bulletproof-security/admin/images/question-mark.png').'" style="position:relative;top:3px;right:1px;" /><span>'.__('AutoCleanup has removed all Comet Cache htaccess code from BPS Custom Code and your Root htaccess file if it existed. If you have Comet Cache installed and are still planning on using Comet Cache then re-run the Setup Wizards after you have activated the Comet Cache plugin again and resaved your Comet Cache plugin settings again.', 'bulletproof-security').'</span></span></font></strong><br>';
1007
+ echo $text;
1008
+ }
1009
+ }
1010
+ }
1011
+ }
1012
+
1013
+ // Endurance Page Cache (EPC) Setup & Cleanup: Creates the EPC htaccess code in BPS Custom Code & removes EPC htaccess code from the Root htaccess file.
1014
+ // The EPC plugin does not add/create any code in the wp-config.php file.
1015
+ // Requires Prerequisite Manual Steps by User to generate EPC htaccess code: HUD message displayed to Unlock Root htaccess file, save EPC settings & run the Wizards.
1016
+ // Unlock the Root htaccess file, get the EPC htaccess code and then remove any existing EPC htaccess code in the Root htaccess file.
1017
+ // Notes: The EPC plugin uses the standard/default WP Markers instead of using unique Markers for its htaccess code.
1018
+ // That will probably change eventually so check each EPC plugin version to see if/when the EPC Markers are changed.
1019
+ // Old EPC code using these custom Markers needs to be removed from Custom Code: # BEGIN|END ENDURANCE PAGE CACHE
1020
+ // The EPC plugin only sees and uses the default WP Markers and will continue to create additional EPC htaccess code if it does not find the default WP Markers
1021
+ // Latest EPC plugin version checked: .9
1022
+ // Note: htaccess code is created in the site root htaccess file for GWIOD site types.
1023
+ function bpsPro_Pwizard_Autofix_Endurance() {
1024
+
1025
+ $AutoFix_Options = get_option('bulletproof_security_options_wizard_autofix');
1026
+
1027
+ if ( $AutoFix_Options['bps_wizard_autofix'] == 'Off' ) {
1028
+ return;
1029
+ }
1030
+
1031
+ // CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE
1032
+ $CC_Options_root = get_option('bulletproof_security_options_customcode');
1033
+ $bps_customcode_cache = htmlspecialchars_decode( $CC_Options_root['bps_customcode_one'], ENT_QUOTES );
1034
+ $bps_customcode_cache_array = array();
1035
+ $bps_customcode_cache_array[] = $bps_customcode_cache;
1036
+ $cc_cache_array = array();
1037
+
1038
+ $epc_options = get_option( 'mm_cache_settings' );
1039
+ $epc_cache_level_options = get_option( 'endurance_cache_level' );
1040
+ $epc_file = WP_CONTENT_DIR . '/mu-plugins/endurance-page-cache.php';
1041
+
1042
+ if ( file_exists($epc_file) && $epc_options['page'] == 'enabled' ) {
1043
+
1044
+ if ( ! is_multisite() ) {
1045
+ $bpsSiteUrl = get_option('siteurl');
1046
+ $bpsHomeUrl = get_option('home');
1047
+ } else {
1048
+ $bpsSiteUrl = get_site_option('siteurl');
1049
+ $bpsHomeUrl = network_site_url();
1050
+ }
1051
+
1052
+ ## GWIOD site type: AutoSetup is not required since htaccess code is written to the site root htaccess file.
1053
+ if ( $bpsSiteUrl != $bpsHomeUrl ) {
1054
+ $text = '<strong><font color="green">'.__('Endurance Page Cache (EPC) Plugin AutoSetup not required: ', 'bulletproof-security').'</font><font color="black"><span class="arq-tooltip-sw-20"><img src="'.plugins_url('/bulletproof-security/admin/images/question-mark.png').'" style="position:relative;top:3px;right:1px;" /><span>'.__('GWIOD site types do not require AutoSetup because EPC creates htaccess code in the site root htaccess file.', 'bulletproof-security').'</span></span></font></strong><br>';
1055
+ echo $text;
1056
+ return;
1057
+ }
1058
+
1059
+ ## Remove any existing EPC htaccess code in Custom Code from the $cc_cache_array so that new EPC htaccess code is created each time.
1060
+ ## Important Note: If dots are used (.*) then newlines and spaces are ignored when using the /s modifier.
1061
+ // Cleans up extra Newlines, Returns & whitespaces.
1062
+ foreach ( $bps_customcode_cache_array as $key => $value ) {
1063
+
1064
+ if ( preg_match( '/#\sBEGIN\sWordPress(.*)endurance-page-cache(.*)#\sEND\sWordPress/s', $value, $matches ) ) {
1065
+ $value = preg_replace( '/#\sBEGIN\sWordPress(.*)endurance-page-cache(.*)#\sEND\sWordPress/s', "", $value);
1066
+ }
1067
+
1068
+ if ( preg_match( '/#\sBEGIN\sENDURANCE\sPAGE\sCACHE(.*)#\sEND\sENDURANCE\sPAGE\sCACHE/s', $value, $matches ) ) {
1069
+ $value = preg_replace( '/#\sBEGIN\sENDURANCE\sPAGE\sCACHE(.*)#\sEND\sENDURANCE\sPAGE\sCACHE/s', "", $value);
1070
+ }
1071
+
1072
+ if ( preg_match('/(\n\r){2,}/', $value, $matches) ) {
1073
+ $value = preg_replace("/(\n\r){2,}/", "\n", $value);
1074
+ }
1075
+
1076
+ $cc_cache_array[] = trim( $value, " \t\n\r");
1077
+ }
1078
+
1079
+ $rootHtaccess = ABSPATH . '.htaccess';
1080
+
1081
+ if ( file_exists($rootHtaccess) ) {
1082
+
1083
+ $sapi_type = php_sapi_name();
1084
+ $permsRootHtaccess = @substr(sprintf('%o', fileperms($rootHtaccess)), -4);
1085
+
1086
+ if ( @substr($sapi_type, 0, 6) != 'apache' || @$permsRootHtaccess != '0666' || @$permsRootHtaccess != '0777' ) {
1087
+ chmod( $rootHtaccess, 0644 );
1088
+ }
1089
+
1090
+ $root_htaccess_file_contents = @file_get_contents($rootHtaccess);
1091
+
1092
+ $wp_default_rewrite_code = '/<IfModule\smod_rewrite\.c>\s*RewriteEngine\sOn\s*RewriteBase(.*)\s*RewriteRule(.*)\s*RewriteCond((.*)\s*){2}RewriteRule(.*)\s*<\/IfModule>\n/';
1093
+ $epc_htaccess_code = array();
1094
+
1095
+ ## Remove the EPC htaccess code from the Root htaccess file after putting any EPC code into an array and updating the CC DB options.
1096
+ if ( preg_match( '/#\sBEGIN\sWordPress(.*)endurance-page-cache(.*)#\sEND\sWordPress/s', $root_htaccess_file_contents, $matches ) ) {
1097
+ $epc_htaccess_code[] = preg_replace( $wp_default_rewrite_code, "", $matches[0] );
1098
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sWordPress(.*)endurance-page-cache(.*)#\sEND\sWordPress/s', "", $root_htaccess_file_contents);
1099
+ }
1100
+
1101
+ // Suppress the coding mistake/php error "Illegal string offset" in the EPC plugin.
1102
+ // The endurance_cache_level DB option value is not saved as an array and is incorrectly saved as a string value instead.
1103
+ if ( empty($epc_htaccess_code) && @$epc_cache_level_options['endurance_cache_level'] > 0 ) {
1104
+ $text = '<strong><font color="#fb0101">'.__('Error: Endurance Page Cache (EPC) Plugin AutoSetup Unsuccessful - ', 'bulletproof-security').'</font><font color="blue">'.__('The Setup Wizard did not find any Endurance Page Cache htaccess code in your Root htaccess file. Do these steps to fix the problem: Go to the BPS htaccess File Editor page, click the Unlock htaccess File button, go to the WordPress Settings > General page, scroll down to Endurance Cache settings, click the Save Changes button, go back to this Setup Wizard page and run the Pre-Installation Wizard and Setup Wizard again.', 'bulletproof-security').'</font></strong><br>';
1105
+ echo $text;
1106
+ return;
1107
+ }
1108
+
1109
+ $bps_customcode_cache_merge = array_merge($cc_cache_array, $epc_htaccess_code);
1110
+ $cc_cache_unique = array_unique($bps_customcode_cache_merge);
1111
+ // needs to be \n
1112
+ $bps_customcode_cache_implode = implode( "\n", $cc_cache_unique );
1113
+
1114
+ if ( ! is_multisite() ) {
1115
+
1116
+ $Root_CC_Options = array(
1117
+ 'bps_customcode_one' => $bps_customcode_cache_implode,
1118
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
1119
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
1120
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
1121
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
1122
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
1123
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
1124
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
1125
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
1126
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
1127
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
1128
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
1129
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
1130
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
1131
+ );
1132
+
1133
+ } else {
1134
+
1135
+ $Root_CC_Options = array(
1136
+ 'bps_customcode_one' => $bps_customcode_cache_implode,
1137
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
1138
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
1139
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
1140
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
1141
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
1142
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
1143
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
1144
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
1145
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
1146
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
1147
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
1148
+ 'bps_customcode_wp_rewrite_end' => $CC_Options_root['bps_customcode_wp_rewrite_end'],
1149
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
1150
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
1151
+ );
1152
+ }
1153
+
1154
+ foreach( $Root_CC_Options as $key => $value ) {
1155
+ update_option('bulletproof_security_options_customcode', $Root_CC_Options);
1156
+ }
1157
+
1158
+ $text = '<strong><font color="green">'.__('Endurance Page Cache (EPC) Plugin AutoSetup Successful: ', 'bulletproof-security').'</font><font color="black"><span class="arq-tooltip-sw-20"><img src="'.plugins_url('/bulletproof-security/admin/images/question-mark.png').'" style="position:relative;top:3px;right:1px;" /><span>'.__('Important Note: If you disable or enable the Endurance Page Cache plugin at any time, re-run the Setup Wizards again.', 'bulletproof-security').'</span></span></font></strong><br>';
1159
+ echo $text;
1160
+
1161
+ ## Remove Endurance Page Cache htaccess code from the Root htaccess file
1162
+ if ( file_put_contents($rootHtaccess, $root_htaccess_file_contents) ) {
1163
+
1164
+ $Root_Autolock = get_option('bulletproof_security_options_autolock');
1165
+
1166
+ if ( $Root_Autolock['bps_root_htaccess_autolock'] == 'On' ) {
1167
+ @chmod($rootHtaccess, 0404);
1168
+ }
1169
+ }
1170
+ }
1171
+
1172
+ } else {
1173
+
1174
+ ## EPC Cleanup: Either not installed or disabled. Removes any/all EPC htaccess code from BPS Custom Code and Root htaccess file.
1175
+ if ( ! file_exists($epc_file) || $epc_options['page'] == 'disabled' ) {
1176
+
1177
+ ## Remove any existing EPC htaccess code in Custom Code from the $cc_cache_array.
1178
+ foreach ( $bps_customcode_cache_array as $key => $value ) {
1179
+
1180
+ if ( preg_match( '/#\sBEGIN\sWordPress(.*)endurance-page-cache(.*)#\sEND\sWordPress/s', $value, $matches ) ) {
1181
+ $value = preg_replace( '/#\sBEGIN\sWordPress(.*)endurance-page-cache(.*)#\sEND\sWordPress/s', "", $value);
1182
+ }
1183
+
1184
+ if ( preg_match( '/#\sBEGIN\sENDURANCE\sPAGE\sCACHE(.*)#\sEND\sENDURANCE\sPAGE\sCACHE/s', $value, $matches ) ) {
1185
+ $value = preg_replace( '/#\sBEGIN\sENDURANCE\sPAGE\sCACHE(.*)#\sEND\sENDURANCE\sPAGE\sCACHE/s', "", $value);
1186
+ }
1187
+
1188
+ if ( preg_match('/(\n\r){2,}/', $value, $matches) ) {
1189
+ $value = preg_replace("/(\n\r){2,}/", "\n", $value);
1190
+ }
1191
+
1192
+ $cc_cache_array[] = trim( $value, " \t\n\r");
1193
+ }
1194
+
1195
+ $bps_customcode_cache_implode = implode( "\n\n", $cc_cache_array );
1196
+
1197
+ if ( ! is_multisite() ) {
1198
+
1199
+ $Root_CC_Options = array(
1200
+ 'bps_customcode_one' => $bps_customcode_cache_implode,
1201
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
1202
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
1203
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
1204
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
1205
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
1206
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
1207
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
1208
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
1209
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
1210
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
1211
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
1212
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
1213
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
1214
+ );
1215
+
1216
+ } else {
1217
+
1218
+ $Root_CC_Options = array(
1219
+ 'bps_customcode_one' => $bps_customcode_cache_implode,
1220
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
1221
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
1222
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
1223
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
1224
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
1225
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
1226
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
1227
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
1228
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
1229
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
1230
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
1231
+ 'bps_customcode_wp_rewrite_end' => $CC_Options_root['bps_customcode_wp_rewrite_end'],
1232
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
1233
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
1234
+ );
1235
+ }
1236
+
1237
+ foreach( $Root_CC_Options as $key => $value ) {
1238
+ update_option('bulletproof_security_options_customcode', $Root_CC_Options);
1239
+ }
1240
+
1241
+ ## Remove any existing EPC htaccess code in the Root htaccess file.
1242
+ $rootHtaccess = ABSPATH . '.htaccess';
1243
+
1244
+ if ( file_exists($rootHtaccess) ) {
1245
+
1246
+ $permsRootHtaccess = @substr(sprintf('%o', fileperms($rootHtaccess)), -4);
1247
+
1248
+ if ( @substr($sapi_type, 0, 6) != 'apache' || @$permsRootHtaccess != '0666' || @$permsRootHtaccess != '0777' ) {
1249
+ chmod( $rootHtaccess, 0644 );
1250
+ }
1251
+
1252
+ $root_htaccess_file_contents = @file_get_contents($rootHtaccess);
1253
+
1254
+ if ( preg_match( '/#\sBEGIN\sWordPress(.*)endurance-page-cache(.*)#\sEND\sWordPress/s', $root_htaccess_file_contents, $matches ) ) {
1255
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sWordPress(.*)endurance-page-cache(.*)#\sEND\sWordPress/s', "", $root_htaccess_file_contents);
1256
+ }
1257
+
1258
+ file_put_contents($rootHtaccess, $root_htaccess_file_contents);
1259
+
1260
+ $Root_Autolock = get_option('bulletproof_security_options_autolock');
1261
+
1262
+ if ( $Root_Autolock['bps_root_htaccess_autolock'] == 'On' ) {
1263
+ @chmod($rootHtaccess, 0404);
1264
+ }
1265
+
1266
+ $text = '<strong><font color="green">'.__('Endurance Page Cache (EPC) Plugin AutoCleanup Successful: ', 'bulletproof-security').'</font><font color="black"><span class="arq-tooltip-sw-60"><img src="'.plugins_url('/bulletproof-security/admin/images/question-mark.png').'" style="position:relative;top:3px;right:1px;" /><span>'.__('AutoCleanup has removed all Endurance Page Cache htaccess code from BPS Custom Code and your Root htaccess file if it existed. If you have disabled the Endurance Page Cache plugin and are still planning on using Endurance Page Cache then re-run the Setup Wizards after you have enabled the Endurance Page Cache plugin again.', 'bulletproof-security').'</span></span></font></strong><br>';
1267
+ echo $text;
1268
+ }
1269
+ }
1270
+ }
1271
+ }
1272
+
1273
+ // WP Fastest Cache (free & Premium) Setup & Cleanup: Creates the WPFC htaccess code in BPS Custom Code & removes WPFC htaccess code from the Root htaccess file.
1274
+ // WPFC does not create code in the wp-config.php file by default. Only creates code if the wp-postviews plugin is installed. Let WPFC handle that.
1275
+ // WPFC does not automatically create htaccess code in the root htaccess file on (first) plugin activation, but does add/remove htaccess code on reactivation & deactivation.
1276
+ // Requires Prerequisite Manual Steps by User to generate WPFC htaccess code: HUD message displayed to Unlock Root htaccess file, save WPFC settings & run the Wizards.
1277
+ // Unlock the Root htaccess file, get the WPFC htaccess code and then remove any existing WPFC htaccess code in the Root htaccess file.
1278
+ // Notes: WPFC htaccess writing code is in: /inc/admin.php. Writes htaccess code to the top of the root htaccess file. WPFC Premium version tested: 1.3.9 released April 2017.
1279
+ // The premium version installs a new plugin folder: /wp-fastest-cache-premium/, but the free version must still be installed as well.
1280
+ // Note: htaccess code is created in the site root htaccess file for GWIOD site types, but WPFC fails to correctly detect the site root htaccess file.
1281
+ function bpsPro_Pwizard_Autofix_WPFC() {
1282
+
1283
+ $AutoFix_Options = get_option('bulletproof_security_options_wizard_autofix');
1284
+
1285
+ if ( $AutoFix_Options['bps_wizard_autofix'] == 'Off' ) {
1286
+ return;
1287
+ }
1288
+
1289
+ // CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE
1290
+ $CC_Options_root = get_option('bulletproof_security_options_customcode');
1291
+ $bps_customcode_cache = htmlspecialchars_decode( $CC_Options_root['bps_customcode_one'], ENT_QUOTES );
1292
+ $bps_customcode_cache_array = array();
1293
+ $bps_customcode_cache_array[] = $bps_customcode_cache;
1294
+ $cc_cache_array = array();
1295
+
1296
+ $wpfc_options = get_option('WpFastestCache');
1297
+ $wpfc_plugin = 'wp-fastest-cache/wpFastestCache.php';
1298
+ $wpfc_plugin_active = in_array( $wpfc_plugin, apply_filters('active_plugins', get_option('active_plugins')));
1299
+
1300
+ // WPFC currently does not work on Multisite, but leave the network condition in case that changes in the future.
1301
+ if ( $wpfc_plugin_active == 1 || is_plugin_active_for_network( $wpfc_plugin ) ) {
1302
+
1303
+ if ( ! is_multisite() ) {
1304
+ $bpsSiteUrl = get_option('siteurl');
1305
+ $bpsHomeUrl = get_option('home');
1306
+ } else {
1307
+ $bpsSiteUrl = get_site_option('siteurl');
1308
+ $bpsHomeUrl = network_site_url();
1309
+ }
1310
+
1311
+ ## GWIOD site type: AutoSetup is not required since htaccess code is written to the site root htaccess file.
1312
+ if ( $bpsSiteUrl != $bpsHomeUrl ) {
1313
+ $text = '<strong><font color="green">'.__('WP Fastest Cache (WPFC) Plugin AutoSetup not required: ', 'bulletproof-security').'</font><font color="black"><span class="arq-tooltip-sw-20"><img src="'.plugins_url('/bulletproof-security/admin/images/question-mark.png').'" style="position:relative;top:3px;right:1px;" /><span>'.__('GWIOD site types do not require AutoSetup because WPFC creates htaccess code in the site root htaccess file.', 'bulletproof-security').'</span></span></font></strong><br>';
1314
+ echo $text;
1315
+ return;
1316
+ }
1317
+
1318
+ ## Remove any existing WPFC htaccess code in Custom Code from the $cc_cache_array so that new WPFC htaccess code is created each time.
1319
+ ## Important Note: If dots are used (.*) then newlines and spaces are ignored when using the /s modifier.
1320
+ // Cleans up extra Newlines, Returns & whitespaces.
1321
+ foreach ( $bps_customcode_cache_array as $key => $value ) {
1322
+
1323
+ if ( preg_match( '/#\sBEGIN(.*)WpFastestCache(.*)#\sEND(.*)WpFastestCache/s', $value, $matches ) ) {
1324
+ $value = preg_replace( '/#\sBEGIN(.*)WpFastestCache(.*)#\sEND(.*)WpFastestCache/s', "", $value);
1325
+ }
1326
+
1327
+ if ( preg_match('/(\n\r){2,}/', $value, $matches) ) {
1328
+ $value = preg_replace("/(\n\r){2,}/", "\n", $value);
1329
+ }
1330
+
1331
+ $cc_cache_array[] = trim( $value, " \t\n\r");
1332
+ }
1333
+
1334
+ $rootHtaccess = ABSPATH . '.htaccess';
1335
+
1336
+ if ( file_exists($rootHtaccess) ) {
1337
+
1338
+ $sapi_type = php_sapi_name();
1339
+ $permsRootHtaccess = @substr(sprintf('%o', fileperms($rootHtaccess)), -4);
1340
+
1341
+ if ( @substr($sapi_type, 0, 6) != 'apache' || @$permsRootHtaccess != '0666' || @$permsRootHtaccess != '0777' ) {
1342
+ chmod( $rootHtaccess, 0644 );
1343
+ }
1344
+
1345
+ $root_htaccess_file_contents = @file_get_contents($rootHtaccess);
1346
+
1347
+ $wpfc_default_code = array();
1348
+ $wpfc_gzip_code = array();
1349
+ $wpfc_lbc_code = array();
1350
+ $wpfc_webp_code = array();
1351
+
1352
+ ## Remove the WPFC htaccess code from the Root htaccess file after putting any WPFC code into an array and updating the CC DB options.
1353
+ // Notes: WPFC has a HTTP_HOST rewrite section of code at the top of the WPFC htaccess code that probably should not be there. Leave it for now - don't strip it out.
1354
+ // Need to get individual blocks of WPFC code since there is a fubar Regex coding mistake in WPFC that splits and moves htaccess code incorrectly.
1355
+ // WPFC default htaccess Marker/code order: WpFastestCache, GzipWpFastestCache, LBCWpFastestCache and WEBPWpFastestCache.
1356
+ if ( preg_match( '/#\sBEGIN\sWpFastestCache(.*)#\sEND\sWpFastestCache/s', $root_htaccess_file_contents, $matches ) ) {
1357
+ $wpfc_default_code[] = $matches[0];
1358
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sWpFastestCache(.*)#\sEND\sWpFastestCache/s', "", $root_htaccess_file_contents);
1359
+ }
1360
+
1361
+ if ( preg_match( '/#\sBEGIN\sGzipWpFastestCache(.*)#\sEND\sGzipWpFastestCache/s', $root_htaccess_file_contents, $matches ) ) {
1362
+ $wpfc_gzip_code[] = $matches[0];
1363
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sGzipWpFastestCache(.*)#\sEND\sGzipWpFastestCache/s', "", $root_htaccess_file_contents);
1364
+ }
1365
+
1366
+ if ( preg_match( '/#\sBEGIN\sLBCWpFastestCache(.*)#\sEND\sLBCWpFastestCache/s', $root_htaccess_file_contents, $matches ) ) {
1367
+ $wpfc_lbc_code[] = $matches[0];
1368
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sLBCWpFastestCache(.*)#\sEND\sLBCWpFastestCache/s', "", $root_htaccess_file_contents);
1369
+ }
1370
+
1371
+ if ( preg_match( '/#\sBEGIN\sWEBPWpFastestCache(.*)#\sEND\sWEBPWpFastestCache/s', $root_htaccess_file_contents, $matches ) ) {
1372
+ $wpfc_webp_code[] = $matches[0];
1373
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sWEBPWpFastestCache(.*)#\sEND\sWEBPWpFastestCache/s', "", $root_htaccess_file_contents);
1374
+ }
1375
+
1376
+ // Check the WPFC wpFastestCacheStatus == on db option value for the default Cache System enable|disable: creates default & page caching htaccess code.
1377
+ if ( @$wpfc_options['wpFastestCacheStatus'] == 'on' && empty($wpfc_default_code) ) {
1378
+
1379
+ $text = '<strong><font color="#fb0101">'.__('Error: WP Fastest Cache (WPFC) Plugin AutoSetup Unsuccessful: ', 'bulletproof-security').'</font><font color="black">'.__('The Setup Wizard did not find any WPFC htaccess code in your Root htaccess file. Do these steps to fix the problem: Go to the BPS htaccess File Editor page, click the Unlock htaccess File button, go to the WPFC plugin Settings page, click the Submit button, go back to this Setup Wizard page and run the Pre-Installation Wizard and Setup Wizard again.', 'bulletproof-security').'</font></strong><br>';
1380
+ echo $text;
1381
+ return;
1382
+
1383
+ } else {
1384
+
1385
+ $bps_customcode_cache_merge = array_merge($cc_cache_array, $wpfc_default_code, $wpfc_gzip_code, $wpfc_lbc_code, $wpfc_webp_code);
1386
+ }
1387
+
1388
+ $cc_cache_unique = array_unique($bps_customcode_cache_merge);
1389
+ // MUST be \n\n
1390
+ $bps_customcode_cache_implode = implode( "\n\n", $cc_cache_unique );
1391
+
1392
+ if ( ! is_multisite() ) {
1393
+
1394
+ $Root_CC_Options = array(
1395
+ 'bps_customcode_one' => $bps_customcode_cache_implode,
1396
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
1397
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
1398
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
1399
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
1400
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
1401
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
1402
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
1403
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
1404
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
1405
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
1406
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
1407
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
1408
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
1409
+ );
1410
+
1411
+ } else {
1412
+
1413
+ $Root_CC_Options = array(
1414
+ 'bps_customcode_one' => $bps_customcode_cache_implode,
1415
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
1416
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
1417
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
1418
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
1419
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
1420
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
1421
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
1422
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
1423
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
1424
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
1425
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
1426
+ 'bps_customcode_wp_rewrite_end' => $CC_Options_root['bps_customcode_wp_rewrite_end'],
1427
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
1428
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
1429
+ );
1430
+ }
1431
+
1432
+ foreach( $Root_CC_Options as $key => $value ) {
1433
+ update_option('bulletproof_security_options_customcode', $Root_CC_Options);
1434
+ }
1435
+
1436
+ $text = '<strong><font color="green">'.__('WP Fastest Cache (WPFC) Plugin AutoSetup Successful: ', 'bulletproof-security').'</font><font color="black"><span class="arq-tooltip-sw-20"><img src="'.plugins_url('/bulletproof-security/admin/images/question-mark.png').'" style="position:relative;top:3px;right:1px;" /><span>'.__('Important Note: If you change any of your WP Fastest Cache settings at any time, re-run the Setup Wizards again.', 'bulletproof-security').'</span></span></font></strong><br>';
1437
+ echo $text;
1438
+
1439
+ ## Remove WP Fastest Cache htaccess code from the Root htaccess file
1440
+ if ( file_put_contents($rootHtaccess, $root_htaccess_file_contents) ) {
1441
+
1442
+ $Root_Autolock = get_option('bulletproof_security_options_autolock');
1443
+
1444
+ if ( $Root_Autolock['bps_root_htaccess_autolock'] == 'On' ) {
1445
+ @chmod($rootHtaccess, 0404);
1446
+ }
1447
+ }
1448
+ }
1449
+
1450
+ } else {
1451
+
1452
+ ## WPFC Cleanup: Either not installed or activated. Removes any/all WPFC htaccess code from BPS Custom Code and Root htaccess file.
1453
+ if ( $wpfc_plugin_active != 1 && ! is_plugin_active_for_network( $wpfc_plugin ) ) {
1454
+
1455
+ ## Remove any existing WPFC htaccess code in Custom Code from the $cc_cache_array.
1456
+ foreach ( $bps_customcode_cache_array as $key => $value ) {
1457
+
1458
+ if ( preg_match( '/#\sBEGIN(.*)WpFastestCache(.*)#\sEND(.*)WpFastestCache/s', $value, $matches ) ) {
1459
+ $value = preg_replace( '/#\sBEGIN(.*)WpFastestCache(.*)#\sEND(.*)WpFastestCache/s', "", $value);
1460
+ }
1461
+
1462
+ if ( preg_match('/(\n\r){2,}/', $value, $matches) ) {
1463
+ $value = preg_replace("/(\n\r){2,}/", "\n", $value);
1464
+ }
1465
+
1466
+ $cc_cache_array[] = trim( $value, " \t\n\r");
1467
+ }
1468
+
1469
+ $bps_customcode_cache_implode = implode( "\n\n", $cc_cache_array );
1470
+
1471
+ if ( ! is_multisite() ) {
1472
+
1473
+ $Root_CC_Options = array(
1474
+ 'bps_customcode_one' => $bps_customcode_cache_implode,
1475
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
1476
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
1477
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
1478
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
1479
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
1480
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
1481
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
1482
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
1483
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
1484
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
1485
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
1486
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
1487
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
1488
+ );
1489
+
1490
+ } else {
1491
+
1492
+ $Root_CC_Options = array(
1493
+ 'bps_customcode_one' => $bps_customcode_cache_implode,
1494
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
1495
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
1496
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
1497
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
1498
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
1499
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
1500
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
1501
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
1502
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
1503
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
1504
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
1505
+ 'bps_customcode_wp_rewrite_end' => $CC_Options_root['bps_customcode_wp_rewrite_end'],
1506
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
1507
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
1508
+ );
1509
+ }
1510
+
1511
+ foreach( $Root_CC_Options as $key => $value ) {
1512
+ update_option('bulletproof_security_options_customcode', $Root_CC_Options);
1513
+ }
1514
+
1515
+ ## Remove any existing WPFC htaccess code in the Root htaccess file.
1516
+ $rootHtaccess = ABSPATH . '.htaccess';
1517
+
1518
+ if ( file_exists($rootHtaccess) ) {
1519
+
1520
+ $permsRootHtaccess = @substr(sprintf('%o', fileperms($rootHtaccess)), -4);
1521
+
1522
+ if ( @substr($sapi_type, 0, 6) != 'apache' || @$permsRootHtaccess != '0666' || @$permsRootHtaccess != '0777' ) {
1523
+ chmod( $rootHtaccess, 0644 );
1524
+ }
1525
+
1526
+ $root_htaccess_file_contents = @file_get_contents($rootHtaccess);
1527
+
1528
+ if ( preg_match( '/#\sBEGIN(.*)WpFastestCache(.*)#\sEND(.*)WpFastestCache/s', $root_htaccess_file_contents, $matches ) ) {
1529
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN(.*)WpFastestCache(.*)#\sEND(.*)WpFastestCache/s', "", $root_htaccess_file_contents);
1530
+ }
1531
+
1532
+ file_put_contents($rootHtaccess, $root_htaccess_file_contents);
1533
+
1534
+ $Root_Autolock = get_option('bulletproof_security_options_autolock');
1535
+
1536
+ if ( $Root_Autolock['bps_root_htaccess_autolock'] == 'On' ) {
1537
+ @chmod($rootHtaccess, 0404);
1538
+ }
1539
+
1540
+ $text = '<strong><font color="green">'.__('WP Fastest Cache (WPFC) Plugin AutoCleanup Successful: ', 'bulletproof-security').'</font><font color="black"><span class="arq-tooltip-sw-60"><img src="'.plugins_url('/bulletproof-security/admin/images/question-mark.png').'" style="position:relative;top:3px;right:1px;" /><span>'.__('AutoCleanup has removed all WPFC htaccess code from BPS Custom Code and your Root htaccess file if it existed. If you have WPFC installed and are still planning on using WPFC then re-run the Setup Wizards after you have activated the WPFC plugin again and resaved your WPFC plugin settings again.', 'bulletproof-security').'</span></span></font></strong><br>';
1541
+ echo $text;
1542
+ }
1543
+ }
1544
+ }
1545
+ }
1546
+
1547
+
1548
+ // WP Rocket Setup & Cleanup: Creates the WP Rocket htaccess code in BPS Custom Code & wp-config.php & removes WP Rocket htaccess code from the Root htaccess file.
1549
+ // WPR creates htaccess code in the Root htaccess file at the top of the Root htaccess file & code in the wp-config.php file on plugin activation.
1550
+ // WPR removes htaccess code on plugin deactivation, but leaves whitespaces at the top of the root htaccess file and
1551
+ // compresses all other existing htaccess code in the Root htacces file so that all newlines are removed from all other htaccess code.
1552
+ // Requires Prerequisite Manual Steps by User to generate WPR htaccess code: HUD message displayed to Unlock Root htaccess file, save WPR settings & run the Wizards.
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');
1559
+
1560
+ if ( $AutoFix_Options['bps_wizard_autofix'] == 'Off' ) {
1561
+ return;
1562
+ }
1563
+
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
+
1576
+ if ( ! is_multisite() ) {
1577
+ $bpsSiteUrl = get_option('siteurl');
1578
+ $bpsHomeUrl = get_option('home');
1579
+ } else {
1580
+ $bpsSiteUrl = get_site_option('siteurl');
1581
+ $bpsHomeUrl = network_site_url();
1582
+ }
1583
+
1584
+ ## GWIOD site type: AutoSetup is not required since htaccess code is written to the site root htaccess file.
1585
+ if ( $bpsSiteUrl != $bpsHomeUrl ) {
1586
+ $text = '<strong><font color="green">'.__('WP Rocket Plugin AutoSetup not required: ', 'bulletproof-security').'</font><font color="black"><span class="arq-tooltip-sw-20"><img src="'.plugins_url('/bulletproof-security/admin/images/question-mark.png').'" style="position:relative;top:3px;right:1px;" /><span>'.__('GWIOD site types do not require AutoSetup because WP Rocket creates htaccess code in the site root htaccess file.', 'bulletproof-security').'</span></span></font></strong><br>';
1587
+ echo $text;
1588
+ return;
1589
+ }
1590
+
1591
+ ## Remove any existing WPR htaccess code in Custom Code from the $cc_cache_array so that new WPR htaccess code is created each time.
1592
+ ## Important Note: If dots are used (.*) then newlines and spaces are ignored when using the /s modifier.
1593
+ // Cleans up extra Newlines, Returns & whitespaces.
1594
+ foreach ( $bps_customcode_cache_array as $key => $value ) {
1595
+
1596
+ if ( preg_match( '/#\sBEGIN\sWP\sRocket(.*)#\sEND\sWP\sRocket/s', $value, $matches ) ) {
1597
+ $value = preg_replace( '/#\sBEGIN\sWP\sRocket(.*)#\sEND\sWP\sRocket/s', "", $value);
1598
+ }
1599
+
1600
+ if ( preg_match('/(\n\r){2,}/', $value, $matches) ) {
1601
+ $value = preg_replace("/(\n\r){2,}/", "\n", $value);
1602
+ }
1603
+
1604
+ $cc_cache_array[] = trim( $value, " \t\n\r");
1605
+ }
1606
+
1607
+ $wpconfig = ABSPATH . 'wp-config.php';
1608
+
1609
+ if ( ! file_exists( $wpconfig ) ) {
1610
+
1611
+ $text = '<strong><font color="#fb0101">'.__('Error: The Pre-Installation Wizard is unable to add the WP Rocket WP_CACHE code in your wp-config.php file.', 'bulletproof-security').'</font><br>'.__('A wp-config.php file was NOT found in your WordPress website root folder. If you have moved your wp-config.php file to another folder location then you will need to either move the wp-config.php file back to its default WordPress folder location and run the Pre-Installation Wizard again or manually edit your wp-config.php file and add the WP Rocket WP_CACHE code. Click this link for the steps to manually edit your wp-config.php file: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/manually-editing-the-wordpress-wp-config-php-file/" target="_blank" title="Link opens in a new Browser window">'.__('Manually Edit the WordPress wp-config.php file', 'bulletproof-security').'</a><br>';
1612
+ echo $text;
1613
+ }
1614
+
1615
+ $rootHtaccess = ABSPATH . '.htaccess';
1616
+
1617
+ if ( file_exists($rootHtaccess) ) {
1618
+
1619
+ $sapi_type = php_sapi_name();
1620
+ $permsRootHtaccess = @substr(sprintf('%o', fileperms($rootHtaccess)), -4);
1621
+
1622
+ if ( file_exists( $wpconfig ) ) {
1623
+
1624
+ $perms_wpconfig = @substr(sprintf('%o', fileperms($wpconfig)), -4);
1625
+
1626
+ if ( @substr($sapi_type, 0, 6) != 'apache' || @$perms_wpconfig != '0666' || @$perms_wpconfig != '0777' ) { // Windows IIS, XAMPP, etc
1627
+ chmod( $wpconfig, 0644 );
1628
+ }
1629
+ }
1630
+
1631
+ if ( @substr($sapi_type, 0, 6) != 'apache' || @$permsRootHtaccess != '0666' || @$permsRootHtaccess != '0777' ) {
1632
+ chmod( $rootHtaccess, 0644 );
1633
+ }
1634
+
1635
+ $root_htaccess_file_contents = @file_get_contents($rootHtaccess);
1636
+
1637
+ $wpr_htaccess_code = array();
1638
+
1639
+ ## Remove the WP Rocket htaccess code from the Root htaccess file after putting any WPR code into an array and updating the CC DB options.
1640
+ if ( preg_match( '/#\sBEGIN\sWP\sRocket(.*)#\sEND\sWP\sRocket/s', $root_htaccess_file_contents, $matches ) ) {
1641
+ $wpr_htaccess_code[] = $matches[0];
1642
+ $root_htaccess_file_contents = preg_replace( '/#\sBEGIN\sWP\sRocket(.*)#\sEND\sWP\sRocket/s', "", $root_htaccess_file_contents);
1643
+ }
1644
+
1645
+ $bps_customcode_cache_merge = array_merge($cc_cache_array, $wpr_htaccess_code);
1646
+ $cc_cache_unique = array_unique($bps_customcode_cache_merge);
1647
+ // needs to be \n
1648
+ $bps_customcode_cache_implode = implode( "\n", $cc_cache_unique );
1649
+
1650
+ if ( ! is_multisite() ) {
1651
+
1652
+ $Root_CC_Options = array(
1653
+ 'bps_customcode_one' => $bps_customcode_cache_implode,
1654
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
1655
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
1656
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
1657
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
1658
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
1659
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
1660
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
1661
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
1662
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
1663
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
1664
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
1665
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
1666
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
1667
+ );
1668
+
1669
+ } else {
1670
+
1671
+ $Root_CC_Options = array(
1672
+ 'bps_customcode_one' => $bps_customcode_cache_implode,
1673
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
1674
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
1675
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
1676
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
1677
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
1678
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
1679
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
1680
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
1681
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
1682
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
1683
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
1684
+ 'bps_customcode_wp_rewrite_end' => $CC_Options_root['bps_customcode_wp_rewrite_end'],
1685
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
1686
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
1687
+ );
1688
+ }
1689
+
1690
+ foreach( $Root_CC_Options as $key => $value ) {
1691
+ update_option('bulletproof_security_options_customcode', $Root_CC_Options);
1692
+ }
1693
+
1694
+ ## Add the define('WP_CACHE', true); code in the wp-config.php file if it does not exist
1695
+ if ( file_exists( $wpconfig ) ) {
1696
+ $wp_config_contents = file_get_contents($wpconfig);
1697
+
1698
+ if ( ! preg_match( '/define(.*)\((.*)WP_CACHE(.*)(true|false)(.*)\);/', $wp_config_contents, $matches ) ) {
1699
+ $wp_config_contents = preg_replace( '/<\?php(.*\s*){1}/', '<?php'."\ndefine('WP_CACHE', true);\n", $wp_config_contents);
1700
+ file_put_contents($wpconfig, $wp_config_contents);
1701
+ }
1702
+ }
1703
+
1704
+ ## Remove WP Rocket Cache htaccess code from the Root htaccess file
1705
+ if ( file_put_contents($rootHtaccess, $root_htaccess_file_contents) ) {
1706
+
1707
+ $Root_Autolock = get_option('bulletproof_security_options_autolock');
1708
+
1709
+ if ( $Root_Autolock['bps_root_htaccess_autolock'] == 'On' ) {
1710
+ @chmod($rootHtaccess, 0404);
1711
+ }
1712
+ }
1713
+
1714
+ $text = '<strong><font color="green">'.__('WP Rocket Plugin AutoSetup Successful: ', 'bulletproof-security').'</font><font color="black"><span class="arq-tooltip-sw-20"><img src="'.plugins_url('/bulletproof-security/admin/images/question-mark.png').'" style="position:relative;top:3px;right:1px;" /><span>'.__('Important Note: If you change any of your WP Rocket settings at any time, re-run the Setup Wizards again.', 'bulletproof-security').'</span></span></font></strong><br>';
1715
+ echo $text;
1716
+ }
1717
+
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.
1724
+ foreach ( $bps_customcode_cache_array as $key => $value ) {
1725
+
1726
+ if ( preg_match( '/#\sBEGIN\sWP\sRocket(.*)#\sEND\sWP\sRocket/s', $value, $matches ) ) {
1727
+ $value = preg_replace( '/#\sBEGIN\sWP\sRocket(.*)#\sEND\sWP\sRocket/s', "", $value);
1728
+ }
1729
+
1730
+ if ( preg_match('/(\n\r){2,}/', $value, $matches) ) {
1731
+ $value = preg_replace("/(\n\r){2,}/", "\n", $value);
1732
+ }
1733
+
1734
+ $cc_cache_array[] = trim( $value, " \t\n\r");
1735
+ }
1736
+
1737
+ $bps_customcode_cache_implode = implode( "\n\n", $cc_cache_array );
1738
+
1739
+ if ( ! is_multisite() ) {
1740
+
1741
+ $Root_CC_Options = array(
1742
+ 'bps_customcode_one' => $bps_customcode_cache_implode,
1743
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
1744
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
1745
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
1746
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
1747
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
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'],
1755
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
1756
+ );
1757
+
1758
+ } else {
1759
+
1760
+ $Root_CC_Options = array(
1761
+ 'bps_customcode_one' => $bps_customcode_cache_implode,
1762
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
1763
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
1764
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
1765
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
1766
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
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'],
1774
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
1775
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
1776
+ );
1777
+ }
1778
+
1779
+ foreach ( $Root_CC_Options as $key => $value ) {
1780
+ update_option('bulletproof_security_options_customcode', $Root_CC_Options);
1781
+ }
1782
+
1783
+ ## Remove any existing WP Rocket htaccess code in the Root htaccess file.
1784
+ $rootHtaccess = ABSPATH . '.htaccess';
1785
+
1786
+ if ( file_exists($rootHtaccess) ) {
1787
+
1788
+ $permsRootHtaccess = @substr(sprintf('%o', fileperms($rootHtaccess)), -4);
1789
+
1790
+ if ( @substr($sapi_type, 0, 6) != 'apache' || @$permsRootHtaccess != '0666' || @$permsRootHtaccess != '0777' ) {
1791
+ chmod( $rootHtaccess, 0644 );
1792
+ }
1793
+
1794
+ $root_htaccess_file_contents = @file_get_contents($rootHtaccess);
1795
+
1796
+ if ( preg_match( '/#\sBEGIN\sWP\sRocket(.*)#\sEND\sWP\sRocket/s', $root_htaccess_file_contents, $matches ) ) {
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');
1803
+
1804
+ if ( $Root_Autolock['bps_root_htaccess_autolock'] == 'On' ) {
1805
+ @chmod($rootHtaccess, 0404);
1806
+ }
1807
+
1808
+ $text = '<strong><font color="green">'.__('WP Rocket Plugin AutoCleanup Successful: ', 'bulletproof-security').'</font><font color="black"><span class="arq-tooltip-sw-60"><img src="'.plugins_url('/bulletproof-security/admin/images/question-mark.png').'" style="position:relative;top:3px;right:1px;" /><span>'.__('AutoCleanup has removed all WP Rocket htaccess code from BPS Custom Code and your Root htaccess file if it existed. If you have WP Rocket installed and are still planning on using WP Rocket then re-run the Setup Wizards after you have activated the WP Rocket plugin again and resaved your WP Rocket plugin settings again.', 'bulletproof-security').'</span></span></font></strong><br>';
1809
+ echo $text;
1810
+ }
1811
+ }
1812
+ }
1813
+ }
1814
+
1815
+ ?>
admin/wizard/pwizard-autofix.php ADDED
@@ -0,0 +1,1973 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Direct calls to this file are Forbidden when core files are not present
3
+ if ( ! current_user_can('manage_options') ) {
4
+ header('Status: 403 Forbidden');
5
+ header('HTTP/1.1 403 Forbidden');
6
+ exit();
7
+ }
8
+
9
+
10
+ ## AutoFix|AutoWhitelist|AutoSetup: Automatically creates fixes/setups or whitelist rules for any known issues with other plugins.
11
+ ## List of fixes by plugin and CC text box: https://forum.ait-pro.com/forums/topic/setup-wizard-autofix/.
12
+ /*
13
+ Root Custom Code Text Boxes:
14
+ 1. CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE: Individual functions for each plugin setup in file pwizard-autofix-setup.php
15
+ 9. CUSTOM CODE REQUEST METHODS FILTERED: bpsPro_Pwizard_Autofix_Request_methods()
16
+ 10. CUSTOM CODE PLUGIN/THEME SKIP/BYPASS RULES: bpsPro_Pwizard_Autofix_plugin_skip_bypass_root()
17
+ 11. CUSTOM CODE TIMTHUMB FORBID RFI and MISC FILE SKIP/BYPASS RULE: bpsPro_Pwizard_Autofix_RFI()
18
+ 12. CUSTOM CODE BPSQSE BPS QUERY STRING EXPLOITS: bpsPro_Pwizard_Autofix_BPSQSE_root()
19
+
20
+ wp-admin Custom Code Text Boxes:
21
+ 3. CUSTOM CODE WPADMIN PLUGIN/FILE SKIP RULES: bpsPro_Pwizard_Autofix_plugin_skip_bypass_wpadmin()
22
+ 4. CUSTOM CODE BPSQSE-check BPS QUERY STRING EXPLOITS AND FILTERS: bpsPro_Pwizard_Autofix_BPSQSE_wpadmin()
23
+ */
24
+
25
+ ## 9. CUSTOM CODE REQUEST METHODS FILTERED
26
+ ## Note: If someone has other custom code and wants to use that custom code instead then they would need to
27
+ ## add these 2 lines of code below so that the AutoFix check does not display.
28
+ ## #RewriteCond %{REQUEST_METHOD} ^(HEAD) [NC]
29
+ ## #RewriteRule ^(.*)$ /wp-content/plugins/bulletproof-security/405.php [R,L]
30
+ function bpsPro_Pwizard_Autofix_Request_methods() {
31
+
32
+ $AutoFix_Options = get_option('bulletproof_security_options_wizard_autofix');
33
+
34
+ if ( $AutoFix_Options['bps_wizard_autofix'] == 'Off' ) {
35
+ return;
36
+ }
37
+
38
+ $CC_Options_root = get_option('bulletproof_security_options_customcode');
39
+ $bps_customcode_request_methods = htmlspecialchars_decode( $CC_Options_root['bps_customcode_request_methods'], ENT_QUOTES );
40
+ $bps_customcode_request_methods_array = array();
41
+ $bps_customcode_request_methods_array[] = $bps_customcode_request_methods;
42
+ $bps_get_wp_root_secure = bps_wp_get_root_folder();
43
+ $bps_plugin_dir = str_replace( ABSPATH, '', WP_PLUGIN_DIR );
44
+ $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
45
+ //$pattern1 = '/REQUEST\sMETHODS\sFILTERED/';
46
+ $pattern_rmf = '/#{1,}(\s|){1,}RewriteCond\s\%\{REQUEST_METHOD\}\s\^\(HEAD\)\s\[NC\](.*\s*){1}(#{1,}(\s|){1,}RewriteRule\s\^\(\.\*\)\$\s(.*)\/bulletproof-security\/405\.php\s(\[L\]|\[R,L\])|#{1,}(\s|){1,}RewriteRule\s\^\(\.\*\)\$\s\-\s\[R=405,L\])/';
47
+
48
+ $request_methods_code = "# REQUEST METHODS FILTERED
49
+ # If you want to allow HEAD Requests use BPS Custom Code and copy
50
+ # this entire REQUEST METHODS FILTERED section of code to this BPS Custom Code
51
+ # text box: CUSTOM CODE REQUEST METHODS FILTERED.
52
+ # See the CUSTOM CODE REQUEST METHODS FILTERED help text for additional steps.
53
+ RewriteCond %{REQUEST_METHOD} ^(TRACE|DELETE|TRACK|DEBUG) [NC]
54
+ RewriteRule ^(.*)$ - [F]
55
+ #RewriteCond %{REQUEST_METHOD} ^(HEAD) [NC]
56
+ #RewriteRule ^(.*)$ " . $bps_get_wp_root_secure . $bps_plugin_dir . "/bulletproof-security/405.php [R,L]";
57
+
58
+ ## Jetpack Plugin: whitelist rules
59
+ $jetpack = 'jetpack/jetpack.php';
60
+ $jetpack_active = in_array( $jetpack, apply_filters('active_plugins', get_option('active_plugins')));
61
+ $jetpack_array = array();
62
+ $jetpack_fix = '';
63
+
64
+ if ( $jetpack_active == 1 || is_plugin_active_for_network( $jetpack ) ) {
65
+ $jetpack_fix = __('Jetpack Plugin Request Methods AutoWhitelist successful', 'bulletproof-security');
66
+
67
+ if ( ! preg_match( $pattern_rmf, $bps_customcode_request_methods ) ) {
68
+ $jetpack_array[] = $request_methods_code;
69
+ }
70
+ }
71
+
72
+ ## Marmoset Viewer Plugin: whitelist rules
73
+ $marmoset_viewer = 'marmoset-viewer/marmoset-viewer.php';
74
+ $marmoset_viewer_active = in_array( $marmoset_viewer, apply_filters('active_plugins', get_option('active_plugins')));
75
+ $marmoset_viewer_array = array();
76
+ $marmoset_viewer_fix = '';
77
+
78
+ if ( $marmoset_viewer_active == 1 || is_plugin_active_for_network( $marmoset_viewer ) ) {
79
+ $marmoset_viewer_fix = __('Marmoset Viewer Plugin Request Methods AutoWhitelist successful', 'bulletproof-security');
80
+
81
+ if ( ! preg_match( $pattern_rmf, $bps_customcode_request_methods ) ) {
82
+ $marmoset_viewer_array[] = $request_methods_code;
83
+ }
84
+ }
85
+
86
+ ## BackWPup Plugin: whitelist rules
87
+ $backwpup = 'backwpup/backwpup.php';
88
+ $backwpup_active = in_array( $backwpup, apply_filters('active_plugins', get_option('active_plugins')));
89
+ $backwpup_array = array();
90
+ $backwpup_fix = '';
91
+
92
+ if ( $backwpup_active == 1 || is_plugin_active_for_network( $backwpup ) ) {
93
+ $backwpup_fix = __('BackWPup Plugin Request Methods AutoWhitelist successful', 'bulletproof-security');
94
+
95
+ if ( ! preg_match( $pattern_rmf, $bps_customcode_request_methods ) ) {
96
+ $backwpup_array[] = $request_methods_code;
97
+ }
98
+ }
99
+
100
+ ## MailPoet Newsletters (wysija newsletters) Plugin: whitelist rules
101
+ $mailpoet = 'wysija-newsletters/index.php';
102
+ $mailpoet_active = in_array( $mailpoet, apply_filters('active_plugins', get_option('active_plugins')));
103
+ $mailpoet_array = array();
104
+ $mailpoet_fix = '';
105
+
106
+ if ( $mailpoet_active == 1 || is_plugin_active_for_network( $mailpoet ) ) {
107
+ $mailpoet_fix = __('MailPoet Newsletters (wysija newsletters) Plugin Request Methods AutoWhitelist successful', 'bulletproof-security');
108
+
109
+ if ( ! preg_match( $pattern_rmf, $bps_customcode_request_methods ) ) {
110
+ $mailpoet_array[] = $request_methods_code;
111
+ }
112
+ }
113
+
114
+ ## BackUpWordPress Plugin: whitelist rules
115
+ $backupwordpress = 'backupwordpress/backupwordpress.php';
116
+ $backupwordpress_active = in_array( $backupwordpress, apply_filters('active_plugins', get_option('active_plugins')));
117
+ $backupwordpress_array = array();
118
+ $backupwordpress_fix = '';
119
+
120
+ if ( $backupwordpress_active == 1 || is_plugin_active_for_network( $backupwordpress ) ) {
121
+ $backupwordpress_fix = __('BackUpWordPress Plugin Request Methods AutoWhitelist successful', 'bulletproof-security');
122
+
123
+ if ( ! preg_match( $pattern_rmf, $bps_customcode_request_methods ) ) {
124
+ $backupwordpress_array[] = $request_methods_code;
125
+ }
126
+ }
127
+
128
+ ## Broken Link Checker Plugin: whitelist rules
129
+ $broken_link_checker = 'broken-link-checker/broken-link-checker.php';
130
+ $broken_link_checker_active = in_array( $broken_link_checker, apply_filters('active_plugins', get_option('active_plugins')));
131
+ $broken_link_checker_array = array();
132
+ $broken_link_checker_fix = '';
133
+
134
+ if ( $broken_link_checker_active == 1 || is_plugin_active_for_network( $broken_link_checker ) ) {
135
+ $broken_link_checker_fix = __('Broken Link Checker Plugin Request Methods AutoWhitelist successful', 'bulletproof-security');
136
+
137
+ if ( ! preg_match( $pattern_rmf, $bps_customcode_request_methods ) ) {
138
+ $broken_link_checker_array[] = $request_methods_code;
139
+ }
140
+ }
141
+
142
+ ## MailChimp for WordPress Plugin: whitelist rules
143
+ $mailchimp = 'mailchimp-for-wp/mailchimp-for-wp.php';
144
+ $mailchimp_active = in_array( $mailchimp, apply_filters('active_plugins', get_option('active_plugins')));
145
+ $mailchimp_array = array();
146
+ $mailchimp_fix = '';
147
+
148
+ if ( $mailchimp_active == 1 || is_plugin_active_for_network( $mailchimp ) ) {
149
+ $mailchimp_fix = __('MailChimp for WordPress Plugin Request Methods AutoWhitelist successful', 'bulletproof-security');
150
+
151
+ if ( ! preg_match( $pattern_rmf, $bps_customcode_request_methods ) ) {
152
+ $mailchimp_array[] = $request_methods_code;
153
+ }
154
+ }
155
+
156
+ // cleans up whitespace, newlines, etc in the $bps_customcode_request_methods_array values.
157
+ $cc_request_methods_array = array();
158
+
159
+ foreach ( $bps_customcode_request_methods_array as $key => $value ) {
160
+ $cc_request_methods_array[] = trim( $value, " \t\n\r");
161
+ }
162
+
163
+ $bps_customcode_request_methods_merge = array_merge($cc_request_methods_array, $jetpack_array, $marmoset_viewer_array, $backwpup_array, $mailpoet_array, $backupwordpress_array, $broken_link_checker_array, $mailchimp_array);
164
+ $cc_request_methods_unique = array_unique($bps_customcode_request_methods_merge);
165
+
166
+ $bps_customcode_request_methods_implode = implode( "\n\n", $cc_request_methods_unique );
167
+
168
+ if ( ! is_multisite() ) {
169
+
170
+ $Root_CC_Options = array(
171
+ 'bps_customcode_one' => $CC_Options_root['bps_customcode_one'],
172
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
173
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
174
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
175
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
176
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
177
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
178
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
179
+ 'bps_customcode_request_methods' => $bps_customcode_request_methods_implode,
180
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
181
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
182
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
183
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
184
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
185
+ );
186
+
187
+ } else {
188
+
189
+ $Root_CC_Options = array(
190
+ 'bps_customcode_one' => $CC_Options_root['bps_customcode_one'],
191
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
192
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
193
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
194
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
195
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
196
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
197
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
198
+ 'bps_customcode_request_methods' => $bps_customcode_request_methods_implode,
199
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
200
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
201
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
202
+ 'bps_customcode_wp_rewrite_end' => $CC_Options_root['bps_customcode_wp_rewrite_end'],
203
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
204
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
205
+ );
206
+ }
207
+
208
+ foreach( $Root_CC_Options as $key => $value ) {
209
+ update_option('bulletproof_security_options_customcode', $Root_CC_Options);
210
+ }
211
+
212
+ $success_array = array($jetpack_fix, $marmoset_viewer_fix, $backwpup_fix, $mailpoet_fix, $backupwordpress_fix, $broken_link_checker_fix, $mailchimp_fix);
213
+
214
+ foreach ( $success_array as $successMessage ) {
215
+
216
+ if ( $successMessage != '' ) {
217
+ echo '<font color="green"><strong>'.$successMessage.'</strong></font><br>';
218
+ }
219
+ }
220
+ }
221
+
222
+ ## 10. CUSTOM CODE PLUGIN/THEME SKIP/BYPASS RULES
223
+ function bpsPro_Pwizard_Autofix_plugin_skip_bypass_root() {
224
+
225
+ $AutoFix_Options = get_option('bulletproof_security_options_wizard_autofix');
226
+
227
+ if ( $AutoFix_Options['bps_wizard_autofix'] == 'Off' ) {
228
+ return;
229
+ }
230
+
231
+ global $counter;
232
+ $counter = 13;
233
+
234
+ $CC_Options_root = get_option('bulletproof_security_options_customcode');
235
+ $bps_customcode_two = htmlspecialchars_decode( $CC_Options_root['bps_customcode_two'], ENT_QUOTES );
236
+ $bps_customcode_two_array = array();
237
+ $bps_customcode_two_array[] = $bps_customcode_two;
238
+ $bps_get_wp_root_secure = bps_wp_get_root_folder();
239
+ $bps_plugin_dir = str_replace( ABSPATH, '', WP_PLUGIN_DIR );
240
+ $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
241
+
242
+ ## WooCommerce Plugin: whitelist rules
243
+ $woocommerce = 'woocommerce/woocommerce.php';
244
+ $woocommerce_active = in_array( $woocommerce, apply_filters('active_plugins', get_option('active_plugins')));
245
+ $pattern1 = '/RewriteCond\s%{REQUEST_URI}\s\^\.\*\/\(shop\|cart\|checkout\|wishlist\)\.\*\s\[NC\]/';
246
+ $pattern2 = '/RewriteCond\s%{QUERY_STRING}\s\.\*\(order\|wc-ajax=get_refreshed_fragments\)\.\*\s\[NC\]/';
247
+ $woocommerce_array1 = array();
248
+ $woocommerce_array2 = array();
249
+ $woocommerce_fix = '';
250
+
251
+ if ( $woocommerce_active == 1 || is_plugin_active_for_network( $woocommerce ) ) {
252
+ $woocommerce_fix = __('WooCommerce Plugin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
253
+
254
+ if ( ! preg_match( $pattern1, $bps_customcode_two ) ) {
255
+
256
+ $woocommerce_array1[] = "# WooCommerce order & wc-ajax=get_refreshed_fragments Query String skip/bypass rule
257
+ RewriteCond %{QUERY_STRING} .*(order|wc-ajax=get_refreshed_fragments).* [NC]
258
+ RewriteRule . - [S=99]";
259
+ }
260
+
261
+ if ( ! preg_match( $pattern2, $bps_customcode_two ) ) {
262
+
263
+ $woocommerce_array2[] = "# WooCommerce shop, cart, checkout & wishlist URI skip/bypass rule
264
+ RewriteCond %{REQUEST_URI} ^.*/(shop|cart|checkout|wishlist).* [NC]
265
+ RewriteRule . - [S=99]";
266
+ }
267
+ }
268
+
269
+ ## Simple Lightbox Plugin: whitelist rules
270
+ $simple_lightbox = 'simple-lightbox/main.php';
271
+ $simple_lightbox_active = in_array( $simple_lightbox, apply_filters('active_plugins', get_option('active_plugins')));
272
+ $pattern3 = '/RewriteCond\s%{REQUEST_URI}\s\^(.*)\/plugins\/simple-lightbox\/\s\[NC\]/';
273
+ $simple_lightbox_array = array();
274
+ $simple_lightbox_fix = '';
275
+
276
+ if ( $simple_lightbox_active == 1 || is_plugin_active_for_network( $simple_lightbox ) ) {
277
+ $simple_lightbox_fix = __('Simple Lightbox Plugin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
278
+
279
+ if ( ! preg_match( $pattern3, $bps_customcode_two ) ) {
280
+
281
+ $simple_lightbox_array[] = "# Simple Lightbox plugin skip/bypass rule
282
+ RewriteCond %{REQUEST_URI} ^" . $bps_get_wp_root_secure . $bps_plugin_dir . "/simple-lightbox/ [NC]
283
+ RewriteRule . - [S=99]";
284
+ }
285
+ }
286
+
287
+ ## WPBakery Visual Composer Plugin: whitelist rules
288
+ $visual_composer = 'js_composer/js_composer.php';
289
+ $visual_composer_active = in_array( $visual_composer, apply_filters('active_plugins', get_option('active_plugins')));
290
+ $pattern4 = '/RewriteCond\s%{REQUEST_URI}\s\^(.*)\/plugins\/js_composer\/\s\[NC\]/';
291
+ $visual_composer_array = array();
292
+ $visual_composer_fix = '';
293
+
294
+ if ( $visual_composer_active == 1 || is_plugin_active_for_network( $visual_composer ) ) {
295
+ $visual_composer_fix = __('WPBakery Visual Composer Plugin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
296
+
297
+ if ( ! preg_match( $pattern4, $bps_customcode_two ) ) {
298
+
299
+ $visual_composer_array[] = "# WPBakery Visual Composer plugin skip/bypass rule
300
+ RewriteCond %{REQUEST_URI} ^" . $bps_get_wp_root_secure . $bps_plugin_dir . "/js_composer/ [NC]
301
+ RewriteRule . - [S=99]";
302
+ }
303
+ }
304
+
305
+ ## Event Espresso Attendee Mover Plugin: whitelist rules
306
+ $ee_attendee = 'eea-attendee-mover/eea-attendee-mover.php';
307
+ $ee_attendee_active = in_array( $ee_attendee, apply_filters('active_plugins', get_option('active_plugins')));
308
+ $pattern5 = '/RewriteCond\s%{QUERY_STRING}\slimit%5B%5D=\(\.\*\)\s\[NC\]/';
309
+ $ee_attendee_array = array();
310
+ $ee_attendee_fix = '';
311
+
312
+ if ( $ee_attendee_active == 1 || is_plugin_active_for_network( $ee_attendee ) ) {
313
+ $ee_attendee_fix = __('Event Espresso Attendee Mover Plugin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
314
+
315
+ if ( ! preg_match( $pattern5, $bps_customcode_two ) ) {
316
+
317
+ $ee_attendee_array[] = "# Event Espresso Attendee Mover Query String skip/bypass rule
318
+ RewriteCond %{QUERY_STRING} limit%5B%5D=(.*) [NC]
319
+ RewriteRule . - [S=99]";
320
+ }
321
+ }
322
+
323
+ ## WP Rocket Plugin: whitelist rules
324
+ $wp_rocket = 'wp-rocket/wp-rocket.php';
325
+ $wp_rocket_active = in_array( $wp_rocket, apply_filters('active_plugins', get_option('active_plugins')));
326
+ $pattern6 = '/RewriteCond\s%{REQUEST_URI}\s\^(.*)\/plugins\/wp-rocket\/\s\[NC\]/';
327
+ $wp_rocket_array = array();
328
+ $wp_rocket_fix = '';
329
+
330
+ if ( $wp_rocket_active == 1 || is_plugin_active_for_network( $wp_rocket ) ) {
331
+ $wp_rocket_fix = __('WP Rocket Plugin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
332
+
333
+ if ( ! preg_match( $pattern6, $bps_customcode_two ) ) {
334
+
335
+ $wp_rocket_array[] = "# WP Rocket plugin skip/bypass rule
336
+ RewriteCond %{REQUEST_URI} ^" . $bps_get_wp_root_secure . $bps_plugin_dir . "/wp-rocket/ [NC]
337
+ RewriteRule . - [S=99]";
338
+ }
339
+ }
340
+
341
+ ## Easy Media Gallery Pro Plugin: whitelist rules
342
+ $emg_pro = 'easy-media-gallery-pro/easy-media-gallery-pro.php';
343
+ $emg_pro_active = in_array( $emg_pro, apply_filters('active_plugins', get_option('active_plugins')));
344
+ $pattern7 = '/RewriteCond\s%{REQUEST_URI}\s\^(.*)\/plugins\/easy-media-gallery-pro\/\s\[NC\]/';
345
+ $emg_pro_array = array();
346
+ $emg_pro_fix = '';
347
+
348
+ if ( $emg_pro_active == 1 || is_plugin_active_for_network( $emg_pro ) ) {
349
+ $emg_pro_fix = __('Easy Media Gallery Pro Plugin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
350
+
351
+ if ( ! preg_match( $pattern7, $bps_customcode_two ) ) {
352
+
353
+ $emg_pro_array[] = "# Easy Media Gallery Pro plugin skip/bypass rule
354
+ RewriteCond %{REQUEST_URI} ^" . $bps_get_wp_root_secure . $bps_plugin_dir . "/easy-media-gallery-pro/ [NC]
355
+ RewriteRule . - [S=99]";
356
+ }
357
+ }
358
+
359
+ ## Nextend Facebook Connect Plugin: whitelist rules
360
+ $nextend_fb_connect = 'nextend-facebook-connect/nextend-facebook-connect.php';
361
+ $nextend_fb_connect_active = in_array( $nextend_fb_connect, apply_filters('active_plugins', get_option('active_plugins')));
362
+ $pattern8 = '/RewriteCond\s%{QUERY_STRING}\sloginFacebook=\(\.\*\)\s\[NC\]/';
363
+ $nextend_fb_connect_array = array();
364
+ $nextend_fb_connect_fix = '';
365
+
366
+ if ( $nextend_fb_connect_active == 1 || is_plugin_active_for_network( $nextend_fb_connect ) ) {
367
+ $nextend_fb_connect_fix = __('Nextend Facebook Connect Plugin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
368
+
369
+ if ( ! preg_match( $pattern8, $bps_customcode_two ) ) {
370
+
371
+ $nextend_fb_connect_array[] = "# Nextend Facebook Connect Query String skip/bypass rule
372
+ RewriteCond %{QUERY_STRING} loginFacebook=(.*) [NC]
373
+ RewriteRule . - [S=99]";
374
+ }
375
+ }
376
+
377
+ ## Shashin Plugin: whitelist rules
378
+ $shashin = 'shashin/start.php';
379
+ $shashin_active = in_array( $shashin, apply_filters('active_plugins', get_option('active_plugins')));
380
+ $pattern9 = '/RewriteCond\s%{REQUEST_URI}\s\^(.*)\/plugins\/shashin\/\s\[NC\]/';
381
+ $shashin_array = array();
382
+ $shashin_fix = '';
383
+
384
+ if ( $shashin_active == 1 || is_plugin_active_for_network( $shashin ) ) {
385
+ $shashin_fix = __('Shashin Plugin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
386
+
387
+ if ( ! preg_match( $pattern9, $bps_customcode_two ) ) {
388
+
389
+ $shashin_array[] = "# Shashin plugin skip/bypass rule
390
+ RewriteCond %{REQUEST_URI} ^" . $bps_get_wp_root_secure . $bps_plugin_dir . "/shashin/ [NC]
391
+ RewriteRule . - [S=99]";
392
+ }
393
+ }
394
+
395
+ ## Nocturnal Theme: whitelist rules
396
+ $nocturnal_theme = wp_get_theme( 'nocturnal' );
397
+ $pattern10 = '/RewriteCond\s%{QUERY_STRING}\splayerInstance=\(\.\*\)\s\[NC\]/';
398
+ $nocturnal_array = array();
399
+ $nocturnal_fix = '';
400
+
401
+ if ( $nocturnal_theme->exists() ) {
402
+ $nocturnal_fix = __('Nocturnal Theme skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
403
+
404
+ if ( ! preg_match( $pattern10, $bps_customcode_two ) ) {
405
+
406
+ $nocturnal_array[] = "# Nocturnal Theme Query String skip/bypass rule
407
+ RewriteCond %{QUERY_STRING} playerInstance=(.*) [NC]
408
+ RewriteRule . - [S=99]";
409
+ }
410
+ }
411
+
412
+ ## Shopp Plugin: whitelist rules
413
+ $shopp = 'shopp/Shopp.php';
414
+ $shopp_active = in_array( $shopp, apply_filters('active_plugins', get_option('active_plugins')));
415
+ $pattern11 = '/RewriteCond\s%{REQUEST_URI}\s\^(.*)\/plugins\/shopp\/\s\[NC\]/';
416
+ $shopp_array = array();
417
+ $shopp_fix = '';
418
+
419
+ if ( $shopp_active == 1 || is_plugin_active_for_network( $shopp ) ) {
420
+ $shopp_fix = __('Shopp Plugin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
421
+
422
+ if ( ! preg_match( $pattern11, $bps_customcode_two ) ) {
423
+
424
+ $shopp_array[] = "# Shopp plugin skip/bypass rule
425
+ RewriteCond %{REQUEST_URI} ^" . $bps_get_wp_root_secure . $bps_plugin_dir . "/shopp/ [NC]
426
+ RewriteRule . - [S=99]";
427
+ }
428
+ }
429
+
430
+ ## WP-Invoice - Web Invoice and Billing Plugin: whitelist rules
431
+ $wp_invoice = 'wp-invoice/wp-invoice.php';
432
+ $wp_invoice_active = in_array( $wp_invoice, apply_filters('active_plugins', get_option('active_plugins')));
433
+ $pattern12 = '/RewriteCond\s%{QUERY_STRING}\spage=wpi_\(\.\*\)\s\[NC\]/';
434
+ $wp_invoice_array = array();
435
+ $wp_invoice_fix = '';
436
+
437
+ if ( $wp_invoice_active == 1 || is_plugin_active_for_network( $wp_invoice ) ) {
438
+ $wp_invoice_fix = __('WP-Invoice - Web Invoice and Billing Plugin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
439
+
440
+ if ( ! preg_match( $pattern12, $bps_customcode_two ) ) {
441
+
442
+ $wp_invoice_array[] = "# WP-Invoice - Web Invoice and Billing Query String skip/bypass rule
443
+ RewriteCond %{QUERY_STRING} page=wpi_(.*) [NC]
444
+ RewriteRule . - [S=99]";
445
+ }
446
+ }
447
+
448
+ ## wp-greet Plugin: whitelist rules
449
+ $wp_greet = 'wp-greet/wp-greet.php';
450
+ $wp_greet_active = in_array( $wp_greet, apply_filters('active_plugins', get_option('active_plugins')));
451
+ $pattern13 = '/RewriteCond\s%{QUERY_STRING}\sgallery=([0-9]+)&image=\(\.\*\)\s\[NC\]/';
452
+ $wp_greet_array = array();
453
+ $wp_greet_fix = '';
454
+
455
+ if ( $wp_greet_active == 1 || is_plugin_active_for_network( $wp_greet ) ) {
456
+ $wp_greet_fix = __('wp-greet Plugin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
457
+
458
+ if ( ! preg_match( $pattern13, $bps_customcode_two ) ) {
459
+
460
+ $wp_greet_array[] = "# wp-greet Query String skip/bypass rule
461
+ RewriteCond %{QUERY_STRING} gallery=([0-9]+)&image=(.*) [NC]
462
+ RewriteRule . - [S=99]";
463
+ }
464
+ }
465
+
466
+ ## WP Juicebox Plugin: whitelist rules
467
+ $wp_juicebox = 'wp-juicebox/wp-juicebox.php';
468
+ $wp_juicebox_active = in_array( $wp_juicebox, apply_filters('active_plugins', get_option('active_plugins')));
469
+ $pattern14 = '/RewriteCond\s%{REQUEST_URI}\s\^(.*)\/plugins\/wp-juicebox\/\s\[NC\]/';
470
+ $wp_juicebox_array = array();
471
+ $wp_juicebox_fix = '';
472
+
473
+ if ( $wp_juicebox_active == 1 || is_plugin_active_for_network( $wp_juicebox ) ) {
474
+ $wp_juicebox_fix = __('WP Juicebox Plugin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
475
+
476
+ if ( ! preg_match( $pattern14, $bps_customcode_two ) ) {
477
+
478
+ $wp_juicebox_array[] = "# WP Juicebox plugin skip/bypass rule
479
+ RewriteCond %{REQUEST_URI} ^" . $bps_get_wp_root_secure . $bps_plugin_dir . "/wp-juicebox/ [NC]
480
+ RewriteRule . - [S=99]";
481
+ }
482
+ }
483
+
484
+ ## Prayer Engine Plugin: whitelist rules
485
+ $prayer_engine = 'prayerengine_plugin/prayerengine_plugin.php';
486
+ $prayer_engine_active = in_array( $prayer_engine, apply_filters('active_plugins', get_option('active_plugins')));
487
+ $pattern15 = '/RewriteCond\s%{REQUEST_URI}\s\^(.*)\/plugins\/prayerengine_plugin\/\s\[NC\]/';
488
+ $prayer_engine_array = array();
489
+ $prayer_engine_fix = '';
490
+
491
+ if ( $prayer_engine_active == 1 || is_plugin_active_for_network( $prayer_engine ) ) {
492
+ $prayer_engine_fix = __('Prayer Engine Plugin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
493
+
494
+ if ( ! preg_match( $pattern15, $bps_customcode_two ) ) {
495
+
496
+ $prayer_engine_array[] = "# Prayer Engine plugin skip/bypass rule
497
+ RewriteCond %{REQUEST_URI} ^" . $bps_get_wp_root_secure . $bps_plugin_dir . "/prayerengine_plugin/ [NC]
498
+ RewriteRule . - [S=99]";
499
+ }
500
+ }
501
+
502
+ ## Appointment Calendar Plugin: whitelist rules
503
+ $appointment_calendar = 'appointment-calendar/appointment-calendar.php';
504
+ $appointment_calendar_active = in_array( $appointment_calendar, apply_filters('active_plugins', get_option('active_plugins')));
505
+ $pattern16 = '/RewriteCond\s%{REQUEST_URI}\s\^(.*)\/plugins\/appointment-calendar\/\s\[NC\]/';
506
+ $appointment_calendar_array = array();
507
+ $appointment_calendar_fix = '';
508
+
509
+ if ( $appointment_calendar_active == 1 || is_plugin_active_for_network( $appointment_calendar ) ) {
510
+ $appointment_calendar_fix = __('Appointment Calendar Plugin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
511
+
512
+ if ( ! preg_match( $pattern16, $bps_customcode_two ) ) {
513
+
514
+ $appointment_calendar_array[] = "# Appointment Calendar plugin skip/bypass rule
515
+ RewriteCond %{REQUEST_URI} ^" . $bps_get_wp_root_secure . $bps_plugin_dir . "/appointment-calendar/ [NC]
516
+ RewriteRule . - [S=99]";
517
+ }
518
+ }
519
+
520
+ ## ThirstyAffiliates Plugin: whitelist rules
521
+ $thirsty_affiliates = 'thirstyaffiliates/thirstyaffiliates.php';
522
+ $thirsty_affiliates_active = in_array( $thirsty_affiliates, apply_filters('active_plugins', get_option('active_plugins')));
523
+ $pattern17 = '/RewriteCond\s%{REQUEST_URI}\s\^(.*)\/plugins\/thirstyaffiliates\/\s\[NC\]/';
524
+ $thirsty_affiliates_array = array();
525
+ $thirsty_affiliates_fix = '';
526
+
527
+ if ( $thirsty_affiliates_active == 1 || is_plugin_active_for_network( $thirsty_affiliates ) ) {
528
+ $thirsty_affiliates_fix = __('ThirstyAffiliates Plugin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
529
+
530
+ if ( ! preg_match( $pattern17, $bps_customcode_two ) ) {
531
+
532
+ $thirsty_affiliates_array[] = "# ThirstyAffiliates plugin skip/bypass rule
533
+ RewriteCond %{REQUEST_URI} ^" . $bps_get_wp_root_secure . $bps_plugin_dir . "/thirstyaffiliates/ [NC]
534
+ RewriteRule . - [S=99]";
535
+ }
536
+ }
537
+
538
+ ## WooCommerce Ogone Payment Gateway Plugin: whitelist rules
539
+ $woo_ogone = 'woocommerce_ogonecw/woocommerce_ogonecw.php';
540
+ $woo_ogone_active = in_array( $woo_ogone, apply_filters('active_plugins', get_option('active_plugins')));
541
+ $pattern18 = '/RewriteCond\s%{REQUEST_URI}\s\^(.*)\/plugins\/woocommerce_ogonecw\/\s\[NC\]/';
542
+ $woo_ogone_array = array();
543
+ $woo_ogone_fix = '';
544
+
545
+ if ( $woo_ogone_active == 1 || is_plugin_active_for_network( $woo_ogone ) ) {
546
+ $woo_ogone_fix = __('WooCommerce Ogone Payment Gateway Plugin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
547
+
548
+ if ( ! preg_match( $pattern18, $bps_customcode_two ) ) {
549
+
550
+ $woo_ogone_array[] = "# WooCommerce Ogone Payment Gateway plugin skip/bypass rule
551
+ RewriteCond %{REQUEST_URI} ^" . $bps_get_wp_root_secure . $bps_plugin_dir . "/woocommerce_ogonecw/ [NC]
552
+ RewriteRule . - [S=99]";
553
+ }
554
+ }
555
+
556
+ ## OIOpublisher Ad Manager Plugin: whitelist rules
557
+ $OIOpublisher = WP_PLUGIN_DIR . '/oiopub-direct/wp.php';
558
+ $pattern19 = '/RewriteCond\s%{REQUEST_URI}\s\^\/advertise\/uploads\/\s\[NC\]/';
559
+ $OIOpublisher_array = array();
560
+ $OIOpublisher_fix = '';
561
+
562
+ if ( file_exists($OIOpublisher) ) {
563
+ $OIOpublisher_fix = __('OIOpublisher Ad Manager Plugin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
564
+
565
+ if ( ! preg_match( $pattern19, $bps_customcode_two ) ) {
566
+
567
+ $OIOpublisher_array[] = "# OIOpublisher Ad Manager plugin skip/bypass rule
568
+ RewriteCond %{REQUEST_URI} ^/advertise/uploads/ [NC]
569
+ RewriteRule . - [S=99]";
570
+ }
571
+ }
572
+
573
+ $bps_customcode_two_array_impload = implode( "]", $bps_customcode_two_array );
574
+ $bps_customcode_two_array_preg_split = preg_split("/\[S=\d{1,2}\]/", $bps_customcode_two_array_impload);
575
+ $bps_customcode_two_array_preg_replace = preg_replace("/RewriteRule\s\.\s-\s/", "RewriteRule . - [S=99]", $bps_customcode_two_array_preg_split);
576
+ $bps_customcode_two_array_filter = array_filter($bps_customcode_two_array_preg_replace);
577
+
578
+ // Break the $bps_customcode_two_array value into separate arrays and cleans up the $bps_customcode_two_array values.
579
+ $cc2_array = array();
580
+
581
+ foreach ( $bps_customcode_two_array_filter as $key => $value ) {
582
+ $cc2_array[] = trim( $value, " \t\n\r");
583
+ }
584
+
585
+ $bps_customcode_two_merge = array_merge($cc2_array, $woocommerce_array1, $woocommerce_array2, $simple_lightbox_array, $visual_composer_array, $ee_attendee_array, $wp_rocket_array, $emg_pro_array, $nextend_fb_connect_array, $shashin_array, $nocturnal_array, $shopp_array, $wp_invoice_array, $wp_greet_array, $wp_juicebox_array, $prayer_engine_array, $appointment_calendar_array, $thirsty_affiliates_array, $woo_ogone_array, $OIOpublisher_array);
586
+
587
+ $cc2_unique = array_unique($bps_customcode_two_merge);
588
+ $S_replace = preg_replace_callback( '/(S=\d{1,2})/', 'bpsPro_S_number_count_replace', $cc2_unique );
589
+ $cc2_reversed = array_reverse($S_replace);
590
+ $bps_customcode_two_implode = implode( "\n\n", $cc2_reversed );
591
+
592
+ if ( ! is_multisite() ) {
593
+
594
+ $Root_CC_Options = array(
595
+ 'bps_customcode_one' => $CC_Options_root['bps_customcode_one'],
596
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
597
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
598
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
599
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
600
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
601
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
602
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
603
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
604
+ 'bps_customcode_two' => $bps_customcode_two_implode,
605
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'], // not sure if i should attempt this one or not
606
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
607
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
608
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
609
+ );
610
+
611
+ } else {
612
+
613
+ $Root_CC_Options = array(
614
+ 'bps_customcode_one' => $CC_Options_root['bps_customcode_one'],
615
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
616
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
617
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
618
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
619
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
620
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
621
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
622
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
623
+ 'bps_customcode_two' => $bps_customcode_two_implode,
624
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
625
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
626
+ 'bps_customcode_wp_rewrite_end' => $CC_Options_root['bps_customcode_wp_rewrite_end'],
627
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
628
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
629
+ );
630
+ }
631
+
632
+ foreach( $Root_CC_Options as $key => $value ) {
633
+ update_option('bulletproof_security_options_customcode', $Root_CC_Options);
634
+ }
635
+
636
+ $success_array = array($woocommerce_fix, $simple_lightbox_fix, $visual_composer_fix, $ee_attendee_fix, $wp_rocket_fix, $emg_pro_fix, $nextend_fb_connect_fix, $shashin_fix, $nocturnal_fix, $shopp_fix, $wp_invoice_fix, $wp_greet_fix, $wp_juicebox_fix, $prayer_engine_fix, $appointment_calendar_fix, $thirsty_affiliates_fix, $woo_ogone_fix, $OIOpublisher_fix);
637
+
638
+ foreach ( $success_array as $successMessage ) {
639
+
640
+ if ( $successMessage != '' ) {
641
+ echo '<font color="green"><strong>'.$successMessage.'</strong></font><br>';
642
+ }
643
+ }
644
+ }
645
+
646
+ function bpsPro_S_number_count_replace($matches) {
647
+ global $counter;
648
+ $result = "S={$counter}";
649
+ $counter++;
650
+
651
+ return $result;
652
+ }
653
+
654
+ ## 11. CUSTOM CODE TIMTHUMB FORBID RFI and MISC FILE SKIP/BYPASS RULE
655
+ function bpsPro_Pwizard_Autofix_RFI() {
656
+
657
+ $AutoFix_Options = get_option('bulletproof_security_options_wizard_autofix');
658
+
659
+ if ( $AutoFix_Options['bps_wizard_autofix'] == 'Off' ) {
660
+ return;
661
+ }
662
+
663
+ $CC_Options_root = get_option('bulletproof_security_options_customcode');
664
+ $bps_customcode_rfi = htmlspecialchars_decode( $CC_Options_root['bps_customcode_timthumb_misc'], ENT_QUOTES );
665
+ $bps_customcode_rfi_array = array();
666
+ $bps_customcode_rfi_array[] = $bps_customcode_rfi;
667
+ $pattern1 = '/TIMTHUMB\sFORBID\sRFI\sand\sMISC\sAND\sFILE\sSKIP\/BYPASS RULE/';
668
+ $bps_customcode_rfi_code_array = array();
669
+
670
+ $bps_customcode_rfi_code_array[] = "# TIMTHUMB FORBID RFI and MISC FILE SKIP/BYPASS RULE
671
+ # Use BPS Custom Code to modify/edit/change this code and to save it permanently.
672
+ # Remote File Inclusion (RFI) security rules
673
+ # Note: Only whitelist your additional domains or files if needed - do not whitelist hacker domains or files
674
+ RewriteCond %{QUERY_STRING} ^.*(http|https|ftp)(%3A|:)(%2F|/)(%2F|/)(w){0,3}.?(blogger|picasa|blogspot|tsunami|petapolitik|photobucket|imgur|imageshack|wordpress\.com|img\.youtube|tinypic\.com|upload\.wikimedia|kkc|start-thegame).*$ [NC,OR]
675
+ RewriteCond %{THE_REQUEST} ^.*(http|https|ftp)(%3A|:)(%2F|/)(%2F|/)(w){0,3}.?(blogger|picasa|blogspot|tsunami|petapolitik|photobucket|imgur|imageshack|wordpress\.com|img\.youtube|tinypic\.com|upload\.wikimedia|kkc|start-thegame).*$ [NC]
676
+ RewriteRule .* index.php [F]
677
+ #
678
+ # Example: Whitelist additional misc files: (example\.php|another-file\.php|phpthumb\.php|thumb\.php|thumbs\.php)
679
+ RewriteCond %{REQUEST_URI} (timthumb\.php|phpthumb\.php|thumb\.php|thumbs\.php) [NC]
680
+ # Example: Whitelist additional website domains: RewriteCond %{HTTP_REFERER} ^.*(YourWebsite.com|AnotherWebsite.com).*
681
+ RewriteCond %{HTTP_REFERER} ^.*" . bpsGetDomainRoot() . ".*
682
+ RewriteRule . - [S=1]\n";
683
+
684
+ ## PDF Viewer (Envigeek Web Services) Plugin: whitelist rules
685
+ $pdf_viewer = 'pdf-viewer/pdf-viewer.php';
686
+ $pdf_viewer_active = in_array( $pdf_viewer, apply_filters('active_plugins', get_option('active_plugins')));
687
+ $viewer_html = '';
688
+ $pdf_viewer_fix = '';
689
+
690
+ if ( $pdf_viewer_active == 1 || is_plugin_active_for_network( $pdf_viewer ) ) {
691
+ $pdf_viewer_fix = __('PDF Viewer (Envigeek Web Services) Plugin RFI AutoWhitelist successful', 'bulletproof-security');
692
+
693
+ if ( ! preg_match( '/viewer\\\.html/', $bps_customcode_rfi ) ) {
694
+ $viewer_html = 'viewer\.html|';
695
+ }
696
+ }
697
+
698
+ ## Marmoset Viewer Plugin: whitelist rules
699
+ $marmoset_viewer = 'marmoset-viewer/marmoset-viewer.php';
700
+ $marmoset_viewer_active = in_array( $marmoset_viewer, apply_filters('active_plugins', get_option('active_plugins')));
701
+ $mviewer_php = '';
702
+ $marmoset_viewer_fix = '';
703
+
704
+ if ( $marmoset_viewer_active == 1 || is_plugin_active_for_network( $marmoset_viewer ) ) {
705
+ $marmoset_viewer_fix = __('Marmoset Viewer Plugin RFI AutoWhitelist successful', 'bulletproof-security');
706
+
707
+ if ( ! preg_match( '/mviewer\\\.php/', $bps_customcode_rfi ) ) {
708
+ $mviewer_php = 'mviewer\.php|';
709
+ }
710
+ }
711
+
712
+ ## PDF viewer for WordPress (ThemeNcode code canyon) Plugin: whitelist rules
713
+ $pdf_viewer_themencode = 'pdf-viewer-for-wordpress/pdf-viewer-for-wordpress.php';
714
+ $pdf_viewer_themencode_active = in_array( $pdf_viewer_themencode, apply_filters('active_plugins', get_option('active_plugins')));
715
+ $themencode_pdf_viewer = '';
716
+ $pdf_viewer_themencode_fix = '';
717
+
718
+ if ( $pdf_viewer_themencode_active == 1 || is_plugin_active_for_network( $pdf_viewer_themencode ) ) {
719
+ $pdf_viewer_themencode_fix = __('PDF viewer for WordPress (ThemeNcode code canyon) Plugin RFI AutoWhitelist successful', 'bulletproof-security');
720
+
721
+ if ( ! preg_match( '/themencode-pdf-viewer-sc/', $bps_customcode_rfi ) ) {
722
+ $themencode_pdf_viewer = 'themencode-pdf-viewer-sc|';
723
+ }
724
+ }
725
+
726
+ ## jupdf pdf viewer Plugin: whitelist rules
727
+ $jupdf_pdf_viewer = 'jupdf-pdf-viewer/jupdf-pdf-viewer.php';
728
+ $jupdf_pdf_viewer_active = in_array( $jupdf_pdf_viewer, apply_filters('active_plugins', get_option('active_plugins')));
729
+ $jupdf_index_html = '';
730
+ $jupdf_pdf_viewer_fix = '';
731
+
732
+ if ( $jupdf_pdf_viewer_active == 1 || is_plugin_active_for_network( $jupdf_pdf_viewer ) ) {
733
+ $jupdf_pdf_viewer_fix = __('jupdf pdf viewer Plugin RFI AutoWhitelist successful', 'bulletproof-security');
734
+
735
+ if ( ! preg_match( '/jupdf\/index\\\.html/', $bps_customcode_rfi ) ) {
736
+ $jupdf_index_html = 'jupdf/index\.html|';
737
+ }
738
+ }
739
+
740
+ ## UserPro (code canyon) Plugin: whitelist rules
741
+ $userPro = 'userpro/index.php';
742
+ $userPro_active = in_array( $userPro, apply_filters('active_plugins', get_option('active_plugins')));
743
+ $auth_php_files = '';
744
+ $userPro_fix = '';
745
+
746
+ if ( $userPro_active == 1 || is_plugin_active_for_network( $userPro ) ) {
747
+ $userPro_fix = __('UserPro (code canyon) Plugin RFI AutoWhitelist successful', 'bulletproof-security');
748
+
749
+ if ( ! preg_match( '/instagramAuth\\\.php\|linkedinAuth\\\.php/', $bps_customcode_rfi ) ) {
750
+ $auth_php_files = 'instagramAuth\.php|linkedinAuth\.php|';
751
+ }
752
+ }
753
+
754
+ ## NativeChurch Theme: whitelist rules
755
+ $NativeChurch_theme = wp_get_theme( 'NativeChurch' );
756
+ $NativeChurch_theme_file = '';
757
+ $NativeChurch_theme_fix = '';
758
+
759
+ if ( $NativeChurch_theme->exists() ) {
760
+ $NativeChurch_theme_fix = __('NativeChurch Theme RFI AutoWhitelist successful', 'bulletproof-security');
761
+
762
+ if ( ! preg_match( '/download\\\.php/', $bps_customcode_rfi ) ) {
763
+ $NativeChurch_theme_file = 'download\.php|';
764
+ }
765
+ }
766
+
767
+ ## User Avatar (CTLT DEV) Plugin: whitelist rules
768
+ $user_avatar = 'user-avatar/user-avatar.php';
769
+ $user_avatar_active = in_array( $user_avatar, apply_filters('active_plugins', get_option('active_plugins')));
770
+ $user_avatar_pic_php = '';
771
+ $user_avatar_fix = '';
772
+
773
+ if ( $user_avatar_active == 1 || is_plugin_active_for_network( $user_avatar ) ) {
774
+ $user_avatar_fix = __('User Avatar (CTLT DEV) Plugin RFI AutoWhitelist successful', 'bulletproof-security');
775
+
776
+ if ( ! preg_match( '/user-avatar-pic\\\.php/', $bps_customcode_rfi ) ) {
777
+ $user_avatar_pic_php = 'user-avatar-pic\.php|';
778
+ }
779
+ }
780
+
781
+ ## OIOpublisher Ad Manager Plugin: whitelist rules
782
+ $OIOpublisher = WP_PLUGIN_DIR . '/oiopub-direct/wp.php';
783
+ $OIOpublisher_files = '';
784
+ $OIOpublisher_fix = '';
785
+
786
+ if ( file_exists($OIOpublisher) ) {
787
+ $OIOpublisher_fix = __('OIOpublisher Ad Manager Plugin RFI AutoWhitelist successful', 'bulletproof-security');
788
+
789
+ if ( ! preg_match( '/go\\\.php\|purchase\\\.php\|bubble\\\.js\|oiopub\\\.js/', $bps_customcode_rfi ) ) {
790
+ $OIOpublisher_files = 'go\.php|purchase\.php|bubble\.js|oiopub\.js|';
791
+ }
792
+ }
793
+
794
+ ## Digital Access Pass (DAP) Plugin: whitelist rules
795
+ $DAPLiveLinks = 'DAP-WP-LiveLinks/DAP-WP-LiveLinks.php';
796
+ $DAPLiveLinks_active = in_array( $DAPLiveLinks, apply_filters('active_plugins', get_option('active_plugins')));
797
+ $DAPLiveLinks_files = '';
798
+ $DAPLiveLinks_fix = '';
799
+
800
+ if ( $DAPLiveLinks_active == 1 || is_plugin_active_for_network( $DAPLiveLinks ) ) {
801
+ $DAPLiveLinks_fix = __('Digital Access Pass (DAP) Plugin RFI AutoWhitelist successful', 'bulletproof-security');
802
+
803
+ if ( ! preg_match( '/authenticate\\\.php\|signup_submit\\\.php/', $bps_customcode_rfi ) ) {
804
+ $DAPLiveLinks_files = 'authenticate\.php|signup_submit\.php|';
805
+ }
806
+ }
807
+
808
+ ## Easy Pagination (code canyon) Plugin: whitelist rules
809
+ $easy_pagination = WP_PLUGIN_DIR . '/easy-pagination/images/thumbnail.php';
810
+ $ep_thumbnail_php = '';
811
+ $easy_pagination_fix = '';
812
+
813
+ if ( file_exists($easy_pagination) ) {
814
+ $easy_pagination_fix = __('Easy Pagination (code canyon) Plugin RFI AutoWhitelist successful', 'bulletproof-security');
815
+
816
+ if ( ! preg_match( '/thumbnail\\\.php/', $bps_customcode_rfi ) ) {
817
+ $ep_thumbnail_php = 'thumbnail\.php|';
818
+ }
819
+ }
820
+
821
+ ## iTheme2 Theme: whitelist rules
822
+ $itheme2_theme = wp_get_theme( 'itheme2' );
823
+ $itheme2_img_php = '';
824
+ $itheme2_theme_fix = '';
825
+
826
+ if ( $itheme2_theme->exists() ) {
827
+ $itheme2_theme_fix = __('iTheme2 Theme RFI AutoWhitelist successful', 'bulletproof-security');
828
+
829
+ if ( ! preg_match( '/img\\\.php/', $bps_customcode_rfi ) ) {
830
+ $itheme2_img_php = 'img\.php|';
831
+ }
832
+ }
833
+
834
+ ## SmoothV4.1 Theme: whitelist rules
835
+ $smoothv41_theme = wp_get_theme( 'SmoothV4.1' );
836
+ $smoothv41_thumbnail_php = '';
837
+ $smoothv41_theme_fix = '';
838
+
839
+ if ( $smoothv41_theme->exists() ) {
840
+ $smoothv41_theme_fix = __('SmoothV4.1 Theme RFI AutoWhitelist successful', 'bulletproof-security');
841
+
842
+ if ( ! preg_match( '/thumbnail\\\.php/', $bps_customcode_rfi ) ) {
843
+ $smoothv41_thumbnail_php = 'thumbnail\.php|';
844
+ }
845
+ }
846
+
847
+ $pattern = '/RewriteCond\s%\{REQUEST_URI\}\s\(/';
848
+ $replace = "RewriteCond %{REQUEST_URI} (". $viewer_html . $mviewer_php . $themencode_pdf_viewer . $jupdf_index_html . $auth_php_files . $NativeChurch_theme_file . $user_avatar_pic_php . $OIOpublisher_files . $DAPLiveLinks_files . $ep_thumbnail_php . $itheme2_img_php . $smoothv41_thumbnail_php;
849
+
850
+ if ( $CC_Options_root['bps_customcode_timthumb_misc'] != '' ) {
851
+ $bps_customcode_timthumb_misc_replace = preg_replace($pattern, $replace, $bps_customcode_rfi_array);
852
+ } else {
853
+ $bps_customcode_timthumb_misc_replace = preg_replace($pattern, $replace, $bps_customcode_rfi_code_array);
854
+ }
855
+
856
+ $bps_customcode_timthumb_misc_implode = implode( "\n", $bps_customcode_timthumb_misc_replace );
857
+
858
+ if ( ! is_multisite() ) {
859
+
860
+ $Root_CC_Options = array(
861
+ 'bps_customcode_one' => $CC_Options_root['bps_customcode_one'],
862
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
863
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
864
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
865
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
866
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
867
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
868
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
869
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
870
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
871
+ 'bps_customcode_timthumb_misc' => $bps_customcode_timthumb_misc_implode,
872
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
873
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
874
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
875
+ );
876
+
877
+ } else {
878
+
879
+ $Root_CC_Options = array(
880
+ 'bps_customcode_one' => $CC_Options_root['bps_customcode_one'],
881
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
882
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
883
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
884
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
885
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
886
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
887
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
888
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
889
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
890
+ 'bps_customcode_timthumb_misc' => $bps_customcode_timthumb_misc_implode,
891
+ 'bps_customcode_bpsqse' => $CC_Options_root['bps_customcode_bpsqse'],
892
+ 'bps_customcode_wp_rewrite_end' => $CC_Options_root['bps_customcode_wp_rewrite_end'],
893
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
894
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
895
+ );
896
+ }
897
+
898
+ foreach( $Root_CC_Options as $key => $value ) {
899
+ update_option('bulletproof_security_options_customcode', $Root_CC_Options);
900
+ }
901
+
902
+ $success_array = array($pdf_viewer_fix, $marmoset_viewer_fix, $pdf_viewer_themencode_fix, $jupdf_pdf_viewer_fix, $userPro_fix, $NativeChurch_theme_fix, $user_avatar_fix, $OIOpublisher_fix, $DAPLiveLinks_fix, $easy_pagination_fix, $itheme2_theme_fix, $smoothv41_theme_fix);
903
+
904
+ foreach ( $success_array as $successMessage ) {
905
+
906
+ if ( $successMessage != '' ) {
907
+ echo '<font color="green"><strong>'.$successMessage.'</strong></font><br>';
908
+ }
909
+ }
910
+ }
911
+
912
+ ## 12. CUSTOM CODE BPSQSE BPS QUERY STRING EXPLOITS
913
+ function bpsPro_Pwizard_Autofix_BPSQSE_root() {
914
+
915
+ $AutoFix_Options = get_option('bulletproof_security_options_wizard_autofix');
916
+
917
+ if ( $AutoFix_Options['bps_wizard_autofix'] == 'Off' ) {
918
+ return;
919
+ }
920
+
921
+ $CC_Options_root = get_option('bulletproof_security_options_customcode');
922
+ $bps_customcode_bpsqse = htmlspecialchars_decode( $CC_Options_root['bps_customcode_bpsqse'], ENT_QUOTES );
923
+ $bps_customcode_bpsqse_array = array();
924
+ $bps_customcode_bpsqse_array[] = $bps_customcode_bpsqse;
925
+ $bps_get_wp_root_secure = bps_wp_get_root_folder();
926
+ $bps_plugin_dir = str_replace( ABSPATH, '', WP_PLUGIN_DIR );
927
+ $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
928
+ $pattern1 = '/BPSQSE\sBPS\sQUERY\sSTRING\sEXPLOITS/';
929
+
930
+ $bps_customcode_bpsqse_code_array = array();
931
+
932
+ ## The escaping is necessary in this String for processing
933
+ $bps_customcode_bpsqse_code_array[] = "# BEGIN BPSQSE BPS QUERY STRING EXPLOITS
934
+ # The libwww-perl User Agent is forbidden - Many bad bots use libwww-perl modules, but some good bots use it too.
935
+ # Good sites such as W3C use it for their W3C-LinkChecker.
936
+ # Use BPS Custom Code to add or remove user agents temporarily or permanently from the
937
+ # User Agent filters directly below or to modify/edit/change any of the other security code rules below.
938
+ RewriteCond %{HTTP_USER_AGENT} (havij|libwww-perl|wget|python|nikto|curl|scan|java|winhttp|clshttp|loader) [NC,OR]
939
+ RewriteCond %{HTTP_USER_AGENT} (%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
940
+ RewriteCond %{HTTP_USER_AGENT} (;|<|>|'|".'"'."|\)|\(|%0A|%0D|%22|%27|%28|%3C|%3E|%00).*(libwww-perl|wget|python|nikto|curl|scan|java|winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR]
941
+ RewriteCond %{THE_REQUEST} (\?|\*|%2a)+(%20+|\\\\s+|%20+\\\\s+|\\\\s+%20+|\\\\s+%20+\\\\s+)(http|https)(:/|/) [NC,OR]
942
+ RewriteCond %{THE_REQUEST} etc/passwd [NC,OR]
943
+ RewriteCond %{THE_REQUEST} cgi-bin [NC,OR]
944
+ RewriteCond %{THE_REQUEST} (%0A|%0D|\\"."\\"."r|\\"."\\"."n) [NC,OR]
945
+ RewriteCond %{REQUEST_URI} owssvr\.dll [NC,OR]
946
+ RewriteCond %{HTTP_REFERER} (%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
947
+ RewriteCond %{HTTP_REFERER} \.opendirviewer\. [NC,OR]
948
+ RewriteCond %{HTTP_REFERER} users\.skynet\.be.* [NC,OR]
949
+ RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(http|https):// [NC,OR]
950
+ RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [NC,OR]
951
+ RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC,OR]
952
+ RewriteCond %{QUERY_STRING} \=PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC,OR]
953
+ RewriteCond %{QUERY_STRING} (\.\./|%2e%2e%2f|%2e%2e/|\.\.%2f|%2e\.%2f|%2e\./|\.%2e%2f|\.%2e/) [NC,OR]
954
+ RewriteCond %{QUERY_STRING} ftp\: [NC,OR]
955
+ RewriteCond %{QUERY_STRING} (http|https)\: [NC,OR]
956
+ RewriteCond %{QUERY_STRING} \=\|w\| [NC,OR]
957
+ RewriteCond %{QUERY_STRING} ^(.*)/self/(.*)$ [NC,OR]
958
+ RewriteCond %{QUERY_STRING} ^(.*)cPath=(http|https)://(.*)$ [NC,OR]
959
+ RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
960
+ RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
961
+ RewriteCond %{QUERY_STRING} (\<|%3C).*embed.*(\>|%3E) [NC,OR]
962
+ RewriteCond %{QUERY_STRING} (<|%3C)([^e]*e)+mbed.*(>|%3E) [NC,OR]
963
+ RewriteCond %{QUERY_STRING} (\<|%3C).*object.*(\>|%3E) [NC,OR]
964
+ RewriteCond %{QUERY_STRING} (<|%3C)([^o]*o)+bject.*(>|%3E) [NC,OR]
965
+ RewriteCond %{QUERY_STRING} (\<|%3C).*iframe.*(\>|%3E) [NC,OR]
966
+ RewriteCond %{QUERY_STRING} (<|%3C)([^i]*i)+frame.*(>|%3E) [NC,OR]
967
+ RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [NC,OR]
968
+ RewriteCond %{QUERY_STRING} base64_(en|de)code[^(]*\([^)]*\) [NC,OR]
969
+ RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
970
+ RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) [OR]
971
+ RewriteCond %{QUERY_STRING} ^.*(\(|\)|<|>|%3c|%3e).* [NC,OR]
972
+ RewriteCond %{QUERY_STRING} ^.*(\\x00|\\x04|\\x08|\\x0d|\\x1b|\\x20|\\x3c|\\x3e|\\x7f).* [NC,OR]
973
+ RewriteCond %{QUERY_STRING} (NULL|OUTFILE|LOAD_FILE) [OR]
974
+ RewriteCond %{QUERY_STRING} (\.{1,}/)+(motd|etc|bin) [NC,OR]
975
+ RewriteCond %{QUERY_STRING} (localhost|loopback|127\.0\.0\.1) [NC,OR]
976
+ RewriteCond %{QUERY_STRING} (<|>|'|%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
977
+ RewriteCond %{QUERY_STRING} concat[^\(]*\( [NC,OR]
978
+ RewriteCond %{QUERY_STRING} union([^s]*s)+elect [NC,OR]
979
+ RewriteCond %{QUERY_STRING} union([^a]*a)+ll([^s]*s)+elect [NC,OR]
980
+ RewriteCond %{QUERY_STRING} \-[sdcr].*(allow_url_include|allow_url_fopen|safe_mode|disable_functions|auto_prepend_file) [NC,OR]
981
+ RewriteCond %{QUERY_STRING} (;|<|>|'|".'"'."|\)|%0A|%0D|%22|%27|%3C|%3E|%00).*(/\*|union|select|insert|drop|delete|update|cast|create|char|convert|alter|declare|order|script|set|md5|benchmark|encode) [NC,OR]
982
+ RewriteCond %{QUERY_STRING} (sp_executesql) [NC]
983
+ RewriteRule ^(.*)$ - [F]
984
+ # END BPSQSE BPS QUERY STRING EXPLOITS\n";
985
+
986
+ ## WooCommerce PagSeguro Plugin: whitelist rules removes: java
987
+ $woo_PagSeguro = 'woocommerce-pagseguro/woocommerce-pagseguro.php';
988
+ $woo_PagSeguro_active = in_array( $woo_PagSeguro, apply_filters('active_plugins', get_option('active_plugins')));
989
+ $woo_PagSeguro_fix = '';
990
+
991
+ if ( $woo_PagSeguro_active == 1 || is_plugin_active_for_network( $woo_PagSeguro ) ) {
992
+ $woo_PagSeguro_fix = __('WooCommerce PagSeguro Plugin BPSQSE AutoWhitelist successful', 'bulletproof-security');
993
+
994
+ $p1 = array('/RewriteCond\s%\{HTTP_USER_AGENT\}\s\(havij(.*)\[NC,OR\]/', '/RewriteCond\s%\{HTTP_USER_AGENT\}\s\(;\|\<\|\>\|\'\|\"\|(.*)\[NC,OR\]/');
995
+ $r1 = array("RewriteCond %{HTTP_USER_AGENT} (havij|libwww-perl|wget|python|nikto|curl|scan|winhttp|clshttp|loader) [NC,OR]", "RewriteCond %{HTTP_USER_AGENT} (;|<|>|'|".'"'."|\)|\(|%0A|%0D|%22|%27|%28|%3C|%3E|%00).*(libwww-perl|wget|python|nikto|curl|scan|winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR]");
996
+
997
+ } else {
998
+ $p1 = array();
999
+ $r1 = array();
1000
+ }
1001
+
1002
+ ## Event Espresso Plugin: whitelist rules Note: covers all versions of Espresso and the premium versions
1003
+ $event_espresso1 = WP_PLUGIN_DIR . '/event-espresso-decaf/espresso.php';
1004
+ $event_espresso2 = WP_PLUGIN_DIR . '/event-espresso-free/espresso.php';
1005
+ $event_espresso3 = WP_PLUGIN_DIR . '/event-espresso/espresso.php';
1006
+ $event_espresso4 = WP_PLUGIN_DIR . '/event-espresso-core-master/espresso.php';
1007
+ $event_espresso_fix = '';
1008
+
1009
+ if ( file_exists($event_espresso1) || file_exists($event_espresso2) || file_exists($event_espresso3) || file_exists($event_espresso4) ) {
1010
+ $event_espresso_fix = __('Event Espresso Plugin BPSQSE AutoWhitelist successful', 'bulletproof-security');
1011
+
1012
+ $p2 = array('/RewriteCond\s%\{HTTP_REFERER\}\s\(%0A\|%0D\|%27\|%3C\|%3E\|%00\)\s\[NC,OR\]/');
1013
+ $r2 = array("# BPS AutoWhitelist QS1: Event Espresso Plugin");
1014
+ } else {
1015
+ $p2 = array();
1016
+ $r2 = array();
1017
+ }
1018
+
1019
+ ## WooCommerce Serial Key Plugin: whitelist rules
1020
+ $woo_serial_key = 'woocommerce-serial-key/serial-key.php';
1021
+ $woo_serial_key_active = in_array( $woo_serial_key, apply_filters('active_plugins', get_option('active_plugins')));
1022
+ $woo_serial_key_fix = '';
1023
+
1024
+ if ( $woo_serial_key_active == 1 || is_plugin_active_for_network( $woo_serial_key ) ) {
1025
+ $woo_serial_key_fix = __('WooCommerce Serial Key Plugin BPSQSE AutoWhitelist successful', 'bulletproof-security');
1026
+
1027
+ $p3 = array('/RewriteCond\s%\{QUERY_STRING}\s\[a-zA-Z0-9_\]=\(http\|https\):\/\/\s\[NC,OR\]/', '/RewriteCond\s%\{QUERY_STRING\}\s\[a-zA-Z0-9_\]=\/\(\[a-z0-9_\.\]\/\/\?\)\+\s\[NC,OR\]/', '/RewriteCond\s%\{QUERY_STRING\}\s\(http\|https\)\\\:\s\[NC,OR\]/');
1028
+ $r3 = array("# BPS AutoWhitelist QS2: WooCommerce Serial Key Plugin", "# BPS AutoWhitelist QS3: WooCommerce Serial Key Plugin", "# BPS AutoWhitelist QS4: WooCommerce Serial Key Plugin");
1029
+
1030
+ } else {
1031
+ $p3 = array();
1032
+ $r3 = array();
1033
+ }
1034
+
1035
+ ## WooCommerce WorldPay Extension: whitelist rules removes: java
1036
+ $woo_worldpay = 'woocommerce/woocommerce.php';
1037
+ $woo_worldpay_active = in_array( $woo_worldpay, apply_filters('active_plugins', get_option('active_plugins')));
1038
+ $woo_worldpay_fix = '';
1039
+
1040
+ if ( $woo_worldpay_active == 1 || is_plugin_active_for_network( $woo_worldpay ) ) {
1041
+ $woo_worldpay_fix = __('WooCommerce WorldPay Extension BPSQSE AutoWhitelist successful', 'bulletproof-security');
1042
+
1043
+ $p4 = array('/RewriteCond\s%\{HTTP_USER_AGENT\}\s\(havij(.*)\[NC,OR\]/', '/RewriteCond\s%\{HTTP_USER_AGENT\}\s\(;\|\<\|\>\|\'\|\"\|(.*)\[NC,OR\]/');
1044
+ $r4 = array("RewriteCond %{HTTP_USER_AGENT} (havij|libwww-perl|wget|python|nikto|curl|scan|winhttp|clshttp|loader) [NC,OR]", "RewriteCond %{HTTP_USER_AGENT} (;|<|>|'|".'"'."|\)|\(|%0A|%0D|%22|%27|%28|%3C|%3E|%00).*(libwww-perl|wget|python|nikto|curl|scan|winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR]");
1045
+
1046
+ } else {
1047
+ $p4 = array();
1048
+ $r4 = array();
1049
+ }
1050
+
1051
+ ## Kama Click Counter Plugin: whitelist rules
1052
+ $kama_click_counter = 'kama-clic-counter/kama_click_counter.php';
1053
+ $kama_click_counter_active = in_array( $kama_click_counter, apply_filters('active_plugins', get_option('active_plugins')));
1054
+ $kama_click_counter_fix = '';
1055
+
1056
+ if ( $kama_click_counter_active == 1 || is_plugin_active_for_network( $kama_click_counter ) ) {
1057
+ $kama_click_counter_fix = __('Kama Click Counter Plugin BPSQSE AutoWhitelist successful', 'bulletproof-security');
1058
+
1059
+ $p5 = array('/RewriteCond\s%\{QUERY_STRING}\s\[a-zA-Z0-9_\]=\(http\|https\):\/\/\s\[NC,OR\]/', '/RewriteCond\s%\{QUERY_STRING\}\s\[a-zA-Z0-9_\]=\/\(\[a-z0-9_\.\]\/\/\?\)\+\s\[NC,OR\]/', '/RewriteCond\s%\{QUERY_STRING\}\s\(http\|https\)\\\:\s\[NC,OR\]/');
1060
+ $r5 = array("# BPS AutoWhitelist QS2: Kama Click Counter Plugin", "# BPS AutoWhitelist QS3: Kama Click Counter Plugin", "# BPS AutoWhitelist QS4: Kama Click Counter Plugin");
1061
+
1062
+ } else {
1063
+ $p5 = array();
1064
+ $r5 = array();
1065
+ }
1066
+
1067
+ ## Riva Slider Pro Plugin: whitelist rules
1068
+ $riva_slider_pro = 'riva-slider-pro/setup.php';
1069
+ $riva_slider_pro_active = in_array( $riva_slider_pro, apply_filters('active_plugins', get_option('active_plugins')));
1070
+ $riva_slider_pro_fix = '';
1071
+
1072
+ if ( $riva_slider_pro_active == 1 || is_plugin_active_for_network( $riva_slider_pro ) ) {
1073
+ $riva_slider_pro_fix = __('Riva Slider Pro Plugin BPSQSE AutoWhitelist successful', 'bulletproof-security');
1074
+
1075
+ $p6 = array('/RewriteCond\s%\{QUERY_STRING}\s\[a-zA-Z0-9_\]=\(http\|https\):\/\/\s\[NC,OR\]/', '/RewriteCond\s%\{QUERY_STRING\}\s\[a-zA-Z0-9_\]=\/\(\[a-z0-9_\.\]\/\/\?\)\+\s\[NC,OR\]/', '/RewriteCond\s%\{QUERY_STRING\}\s\(http\|https\)\\\:\s\[NC,OR\]/');
1076
+ $r6 = array("# BPS AutoWhitelist QS2: Riva Slider Pro Plugin", "# BPS AutoWhitelist QS3: Riva Slider Pro Plugin", "# BPS AutoWhitelist QS4: Riva Slider Pro Plugin");
1077
+
1078
+ } else {
1079
+ $p6 = array();
1080
+ $r6 = array();
1081
+ }
1082
+
1083
+ ## WordPress Auto Spinner Plugin: whitelist rules removes: curl and java
1084
+ $wp_auto_spinner = 'wp-auto-spinner/wp-auto-spinner.php';
1085
+ $wp_auto_spinner_active = in_array( $wp_auto_spinner, apply_filters('active_plugins', get_option('active_plugins')));
1086
+ $wp_auto_spinner_fix = '';
1087
+
1088
+ if ( $wp_auto_spinner_active == 1 || is_plugin_active_for_network( $wp_auto_spinner ) ) {
1089
+ $wp_auto_spinner_fix = __('WordPress Auto Spinner Plugin BPSQSE AutoWhitelist successful', 'bulletproof-security');
1090
+
1091
+ $p7 = array('/RewriteCond\s%\{HTTP_USER_AGENT\}\s\(havij(.*)\[NC,OR\]/', '/RewriteCond\s%\{HTTP_USER_AGENT\}\s\(;\|\<\|\>\|\'\|\"\|(.*)\[NC,OR\]/');
1092
+ $r7 = array("RewriteCond %{HTTP_USER_AGENT} (havij|libwww-perl|wget|python|nikto|scan|winhttp|clshttp|loader) [NC,OR]", "RewriteCond %{HTTP_USER_AGENT} (;|<|>|'|".'"'."|\)|\(|%0A|%0D|%22|%27|%28|%3C|%3E|%00).*(libwww-perl|wget|python|nikto|scan|winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR]");
1093
+
1094
+ } else {
1095
+ $p7 = array();
1096
+ $r7 = array();
1097
+ }
1098
+
1099
+ ## AgriTurismo theme Theme: whitelist rules
1100
+ $AgriTurismo_theme = wp_get_theme( 'agritourismo-theme' );
1101
+ $AgriTurismo_theme_fix = '';
1102
+
1103
+ if ( $AgriTurismo_theme->exists() ) {
1104
+ $AgriTurismo_theme_fix = __('AgriTurismo Theme BPSQSE AutoWhitelist successful', 'bulletproof-security');
1105
+
1106
+ $p8 = array('/RewriteCond\s%\{QUERY_STRING\}\s\^\.\*\(.*\|\<\|\>\|%3c\|%3e\)\.\*\s\[NC,OR\]/');
1107
+ $r8 = array("# BPS AutoWhitelist QS5: AgriTurismo Theme");
1108
+
1109
+ } else {
1110
+ $p8 = array();
1111
+ $r8 = array();
1112
+ }
1113
+
1114
+ ## WP Content Copy Protection Pro Plugin: whitelist rules
1115
+ $wccp_pro = 'wccp-pro/preventer-index.php';
1116
+ $wccp_pro_active = in_array( $wccp_pro, apply_filters('active_plugins', get_option('active_plugins')));
1117
+ $wccp_pro_fix = '';
1118
+
1119
+ if ( $wccp_pro_active == 1 || is_plugin_active_for_network( $wccp_pro ) ) {
1120
+ $wccp_pro_fix = __('WP Content Copy Protection Pro Plugin BPSQSE AutoWhitelist successful', 'bulletproof-security');
1121
+
1122
+ $p9 = array('/RewriteCond\s%\{QUERY_STRING}\s\[a-zA-Z0-9_\]=\(http\|https\):\/\/\s\[NC,OR\]/', '/RewriteCond\s%\{QUERY_STRING\}\s\[a-zA-Z0-9_\]=\/\(\[a-z0-9_\.\]\/\/\?\)\+\s\[NC,OR\]/', '/RewriteCond\s%\{QUERY_STRING\}\s\(http\|https\)\\\:\s\[NC,OR\]/');
1123
+ $r9 = array("# BPS AutoWhitelist QS2: WP Content Copy Protection Pro Plugin", "# BPS AutoWhitelist QS3: WP Content Copy Protection Pro Plugin", "# BPS AutoWhitelist QS4: WP Content Copy Protection Pro Plugin");
1124
+
1125
+ } else {
1126
+ $p9 = array();
1127
+ $r9 = array();
1128
+ }
1129
+
1130
+ ## PanoPress Plugin: whitelist rules
1131
+ $panopress = 'panopress/panopress.php';
1132
+ $panopress_active = in_array( $panopress, apply_filters('active_plugins', get_option('active_plugins')));
1133
+ $panopress_fix = '';
1134
+
1135
+ if ( $panopress_active == 1 || is_plugin_active_for_network( $panopress ) ) {
1136
+ $panopress_fix = __('PanoPress Plugin BPSQSE AutoWhitelist successful', 'bulletproof-security');
1137
+
1138
+ $p10 = array('/RewriteCond\s%\{QUERY_STRING}\s\[a-zA-Z0-9_\]=\(http\|https\):\/\/\s\[NC,OR\]/', '/RewriteCond\s%\{QUERY_STRING\}\s\[a-zA-Z0-9_\]=\/\(\[a-z0-9_\.\]\/\/\?\)\+\s\[NC,OR\]/', '/RewriteCond\s%\{QUERY_STRING\}\s\(http\|https\)\\\:\s\[NC,OR\]/');
1139
+ $r10 = array("# BPS AutoWhitelist QS2: PanoPress Plugin", "# BPS AutoWhitelist QS3: PanoPress Plugin", "# BPS AutoWhitelist QS4: PanoPress Plugin");
1140
+
1141
+ } else {
1142
+ $p10 = array();
1143
+ $r10 = array();
1144
+ }
1145
+
1146
+ ## Easy Social Share Buttons (Code Canyon) Plugin: whitelist rules
1147
+ $essb_code_canyon = 'easy-social-share-buttons3/easy-social-share-buttons3.php';
1148
+ $essb_code_canyon_active = in_array( $essb_code_canyon, apply_filters('active_plugins', get_option('active_plugins')));
1149
+ $essb_code_canyon_fix = '';
1150
+
1151
+ if ( $essb_code_canyon_active == 1 || is_plugin_active_for_network( $essb_code_canyon ) ) {
1152
+ $essb_code_canyon_fix = __('Easy Social Share Buttons (Code Canyon) Plugin BPSQSE AutoWhitelist successful', 'bulletproof-security');
1153
+
1154
+ $p11 = array('/RewriteCond\s%\{QUERY_STRING}\s\[a-zA-Z0-9_\]=\(http\|https\):\/\/\s\[NC,OR\]/', '/RewriteCond\s%\{QUERY_STRING\}\s\[a-zA-Z0-9_\]=\/\(\[a-z0-9_\.\]\/\/\?\)\+\s\[NC,OR\]/', '/RewriteCond\s%\{QUERY_STRING\}\s\(http\|https\)\\\:\s\[NC,OR\]/');
1155
+ $r11 = array("# BPS AutoWhitelist QS2: Easy Social Share Buttons (Code Canyon) Plugin", "# BPS AutoWhitelist QS3: Easy Social Share Buttons (Code Canyon) Plugin", "# BPS AutoWhitelist QS4: Easy Social Share Buttons (Code Canyon) Plugin");
1156
+
1157
+ } else {
1158
+ $p11 = array();
1159
+ $r11 = array();
1160
+ }
1161
+
1162
+ ## MainWP Plugin: whitelist rules removes: order
1163
+ $mainwp = 'mainwp/mainwp.php';
1164
+ $mainwp_active = in_array( $mainwp, apply_filters('active_plugins', get_option('active_plugins')));
1165
+ $mainwp_fix = '';
1166
+
1167
+ if ( $mainwp_active == 1 || is_plugin_active_for_network( $mainwp ) ) {
1168
+ $mainwp_fix = __('MainWP Plugin BPSQSE AutoWhitelist successful', 'bulletproof-security');
1169
+
1170
+ $p12 = array('/RewriteCond\s%\{QUERY_STRING\}\s\(;\|\<\|\>\|\'\|(.*)order\|script\|set\|md5\|benchmark\|encode\)\s\[NC,OR\]/');
1171
+ $r12 = array("RewriteCond %{QUERY_STRING} (;|<|>|'|".'"'."|\)|%0A|%0D|%22|%27|%3C|%3E|%00).*(/\*|union|select|insert|drop|delete|update|cast|create|char|convert|alter|declare|script|set|md5|benchmark|encode) [NC,OR]");
1172
+
1173
+ } else {
1174
+ $p12 = array();
1175
+ $r12 = array();
1176
+ }
1177
+
1178
+ ## Clever Course Theme: whitelist rules
1179
+ $clevercourse_theme = wp_get_theme( 'clevercourse' );
1180
+ $clevercourse_theme_fix = '';
1181
+
1182
+ if ( $clevercourse_theme->exists() ) {
1183
+ $clevercourse_theme_fix = __('Clever Course Theme BPSQSE AutoWhitelist successful', 'bulletproof-security');
1184
+
1185
+ $p13 = array('/RewriteCond\s%\{QUERY_STRING}\s\[a-zA-Z0-9_\]=\(http\|https\):\/\/\s\[NC,OR\]/', '/RewriteCond\s%\{QUERY_STRING\}\s\[a-zA-Z0-9_\]=\/\(\[a-z0-9_\.\]\/\/\?\)\+\s\[NC,OR\]/', '/RewriteCond\s%\{QUERY_STRING\}\s\(http\|https\)\\\:\s\[NC,OR\]/');
1186
+ $r13 = array("# BPS AutoWhitelist QS2: Clever Course Theme", "# BPS AutoWhitelist QS3: Clever Course Theme", "# BPS AutoWhitelist QS4: Clever Course Theme");
1187
+
1188
+ } else {
1189
+ $p13 = array();
1190
+ $r13 = array();
1191
+ }
1192
+
1193
+ ## WP eStore (wp cart for digital products): whitelist rules CCBill Webhooks removes: curl and java
1194
+ $wp_estore = 'wp-cart-for-digital-products/wp_cart_for_digital_products.php';
1195
+ $wp_estore_active = in_array( $wp_estore, apply_filters('active_plugins', get_option('active_plugins')));
1196
+ $wp_estore_fix = '';
1197
+
1198
+ if ( $wp_estore_active == 1 || is_plugin_active_for_network( $wp_estore ) ) {
1199
+ $wp_estore_fix = __('WP eStore (WP Cart for Digital Products) Plugin BPSQSE AutoWhitelist successful', 'bulletproof-security');
1200
+
1201
+ $p14 = array('/RewriteCond\s%\{HTTP_USER_AGENT\}\s\(havij(.*)\[NC,OR\]/', '/RewriteCond\s%\{HTTP_USER_AGENT\}\s\(;\|\<\|\>\|\'\|\"\|(.*)\[NC,OR\]/');
1202
+ $r14 = array("RewriteCond %{HTTP_USER_AGENT} (havij|libwww-perl|wget|python|nikto|scan|winhttp|clshttp|loader) [NC,OR]", "RewriteCond %{HTTP_USER_AGENT} (;|<|>|'|".'"'."|\)|\(|%0A|%0D|%22|%27|%28|%3C|%3E|%00).*(libwww-perl|wget|python|nikto|scan|winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR]");
1203
+
1204
+ } else {
1205
+ $p14 = array();
1206
+ $r14 = array();
1207
+ }
1208
+
1209
+ ## WP eMember: whitelist rules CCBill Webhooks removes: curl and java
1210
+ $wp_emember = 'wp-eMember/wp_eMember.php';
1211
+ $wp_emember_active = in_array( $wp_emember, apply_filters('active_plugins', get_option('active_plugins')));
1212
+ $wp_emember_fix = '';
1213
+
1214
+ if ( $wp_emember_active == 1 || is_plugin_active_for_network( $wp_emember ) ) {
1215
+ $wp_emember_fix = __('WP eMember Plugin BPSQSE AutoWhitelist successful', 'bulletproof-security');
1216
+
1217
+ $p15 = array('/RewriteCond\s%\{HTTP_USER_AGENT\}\s\(havij(.*)\[NC,OR\]/', '/RewriteCond\s%\{HTTP_USER_AGENT\}\s\(;\|\<\|\>\|\'\|\"\|(.*)\[NC,OR\]/');
1218
+ $r15 = array("RewriteCond %{HTTP_USER_AGENT} (havij|libwww-perl|wget|python|nikto|scan|winhttp|clshttp|loader) [NC,OR]", "RewriteCond %{HTTP_USER_AGENT} (;|<|>|'|".'"'."|\)|\(|%0A|%0D|%22|%27|%28|%3C|%3E|%00).*(libwww-perl|wget|python|nikto|scan|winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR]");
1219
+
1220
+ } else {
1221
+ $p15 = array();
1222
+ $r15 = array();
1223
+ }
1224
+
1225
+ ## Easy Digital Downloads Plugin: whitelist rules
1226
+ $easy_digital_downloads = 'easy-digital-downloads/easy-digital-downloads.php';
1227
+ $easy_digital_downloads_active = in_array( $easy_digital_downloads, apply_filters('active_plugins', get_option('active_plugins')));
1228
+ $easy_digital_downloads_fix = '';
1229
+
1230
+ if ( $easy_digital_downloads_active == 1 || is_plugin_active_for_network( $easy_digital_downloads ) ) {
1231
+ $easy_digital_downloads_fix = __('Easy Digital Downloads Plugin BPSQSE AutoWhitelist successful', 'bulletproof-security');
1232
+
1233
+ $p16 = array('/RewriteCond\s%\{QUERY_STRING}\s\[a-zA-Z0-9_\]=\(http\|https\):\/\/\s\[NC,OR\]/', '/RewriteCond\s%\{QUERY_STRING\}\s\[a-zA-Z0-9_\]=\/\(\[a-z0-9_\.\]\/\/\?\)\+\s\[NC,OR\]/', '/RewriteCond\s%\{QUERY_STRING\}\s\(http\|https\)\\\:\s\[NC,OR\]/');
1234
+ $r16 = array("# BPS AutoWhitelist QS2: Easy Digital Downloads Plugin", "# BPS AutoWhitelist QS3: Easy Digital Downloads Plugin", "# BPS AutoWhitelist QS4: Easy Digital Downloads Plugin");
1235
+
1236
+ } else {
1237
+ $p16 = array();
1238
+ $r16 = array();
1239
+ }
1240
+
1241
+ ## MailPoet Newsletters (wysija newsletters) Plugin: whitelist rules removes: wget, curl and java
1242
+ $mailpoet = 'wysija-newsletters/index.php';
1243
+ $mailpoet_active = in_array( $mailpoet, apply_filters('active_plugins', get_option('active_plugins')));
1244
+ $mailpoet_fix = '';
1245
+
1246
+ if ( $mailpoet_active == 1 || is_plugin_active_for_network( $mailpoet ) ) {
1247
+ $mailpoet_fix = __('MailPoet Newsletters (wysija newsletters) Plugin BPSQSE AutoWhitelist successful', 'bulletproof-security');
1248
+
1249
+ $p17 = array('/RewriteCond\s%\{HTTP_USER_AGENT\}\s\(havij(.*)\[NC,OR\]/', '/RewriteCond\s%\{HTTP_USER_AGENT\}\s\(;\|\<\|\>\|\'\|\"\|(.*)\[NC,OR\]/');
1250
+ $r17 = array("RewriteCond %{HTTP_USER_AGENT} (havij|libwww-perl|python|nikto|scan|winhttp|clshttp|loader) [NC,OR]", "RewriteCond %{HTTP_USER_AGENT} (;|<|>|'|".'"'."|\)|\(|%0A|%0D|%22|%27|%28|%3C|%3E|%00).*(libwww-perl|python|nikto|scan|winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR]");
1251
+
1252
+ } else {
1253
+ $p17 = array();
1254
+ $r17 = array();
1255
+ }
1256
+
1257
+ ## MailChimp for WordPress Plugin: whitelist rules remove apostrophes and round brackets
1258
+ $mailchimp = 'mailchimp-for-wp/mailchimp-for-wp.php';
1259
+ $mailchimp_active = in_array( $mailchimp, apply_filters('active_plugins', get_option('active_plugins')));
1260
+ $mailchimp_fix = '';
1261
+
1262
+ if ( $mailchimp_active == 1 || is_plugin_active_for_network( $mailchimp ) ) {
1263
+ $mailchimp_fix = __('MailChimp for WordPress Plugin BPSQSE AutoWhitelist successful', 'bulletproof-security');
1264
+
1265
+ $p18 = array('/RewriteCond\s%\{HTTP_USER_AGENT\}\s\(%0A\|%0D\|%27\|%3C\|%3E\|%00\)\s\[NC,OR\]/', '/RewriteCond\s%\{HTTP_REFERER\}\s\(%0A\|%0D\|%27\|%3C\|%3E\|%00\)\s\[NC,OR\]/', '/RewriteCond\s%\{QUERY_STRING\}\s\^\.\*\(.*\|\<\|\>\|%3c\|%3e\)\.\*\s\[NC,OR\]/', '/RewriteCond\s%\{QUERY_STRING\}\s\(<\|>\|\'\|%0A\|%0D\|%27\|%3C\|%3E\|%00\)\s\[NC,OR\]/');
1266
+ $r18 = array("RewriteCond %{HTTP_USER_AGENT} (%0A|%0D|%3C|%3E|%00) [NC,OR]", "RewriteCond %{HTTP_REFERER} (%0A|%0D|%3C|%3E|%00) [NC,OR]", "RewriteCond %{QUERY_STRING} ^.*(<|>|%3c|%3e).* [NC,OR]", "RewriteCond %{QUERY_STRING} (<|>|%0A|%0D|%3C|%3E|%00) [NC,OR]");
1267
+
1268
+ } else {
1269
+ $p18 = array();
1270
+ $r18 = array();
1271
+ }
1272
+
1273
+ ## Digital Access Pass (DAP) Plugin: whitelist rules
1274
+ $DAPLiveLinks = 'DAP-WP-LiveLinks/DAP-WP-LiveLinks.php';
1275
+ $DAPLiveLinks_active = in_array( $DAPLiveLinks, apply_filters('active_plugins', get_option('active_plugins')));
1276
+ $DAPLiveLinks_fix = '';
1277
+
1278
+ if ( $DAPLiveLinks_active == 1 || is_plugin_active_for_network( $DAPLiveLinks ) ) {
1279
+ $DAPLiveLinks_fix = __('Digital Access Pass (DAP) Plugin BPSQSE AutoWhitelist successful', 'bulletproof-security');
1280
+
1281
+ $p19 = array('/RewriteCond\s%\{QUERY_STRING}\s\[a-zA-Z0-9_\]=\(http\|https\):\/\/\s\[NC,OR\]/', '/RewriteCond\s%\{QUERY_STRING\}\s\[a-zA-Z0-9_\]=\/\(\[a-z0-9_\.\]\/\/\?\)\+\s\[NC,OR\]/', '/RewriteCond\s%\{QUERY_STRING\}\s\(http\|https\)\\\:\s\[NC,OR\]/');
1282
+ $r19 = array("# BPS AutoWhitelist QS2: Digital Access Pass (DAP) Plugin", "# BPS AutoWhitelist QS3: Digital Access Pass (DAP) Plugin", "# BPS AutoWhitelist QS4: Digital Access Pass (DAP) Plugin");
1283
+
1284
+ } else {
1285
+ $p19 = array();
1286
+ $r19 = array();
1287
+ }
1288
+
1289
+ // WordPress Newsletter (tribulant) Plugin: whitelist rules removes: wget, curl and java
1290
+ $wp_newsletter = 'wp-mailinglist/wp-mailinglist.php';
1291
+ $wp_newsletter_active = in_array( $wp_newsletter, apply_filters('active_plugins', get_option('active_plugins')));
1292
+ $wp_newsletter_fix = '';
1293
+
1294
+ if ( $wp_newsletter_active == 1 || is_plugin_active_for_network( $wp_newsletter ) ) {
1295
+ $wp_newsletter_fix = __('WordPress Newsletter (tribulant) Plugin BPSQSE AutoWhitelist successful', 'bulletproof-security');
1296
+
1297
+ $p20 = array('/RewriteCond\s%\{HTTP_USER_AGENT\}\s\(havij(.*)\[NC,OR\]/', '/RewriteCond\s%\{HTTP_USER_AGENT\}\s\(;\|\<\|\>\|\'\|\"\|(.*)\[NC,OR\]/');
1298
+ $r20 = array("RewriteCond %{HTTP_USER_AGENT} (havij|libwww-perl|python|nikto|scan|winhttp|clshttp|loader) [NC,OR]", "RewriteCond %{HTTP_USER_AGENT} (;|<|>|'|".'"'."|\)|\(|%0A|%0D|%22|%27|%28|%3C|%3E|%00).*(libwww-perl|python|nikto|scan|winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR]");
1299
+
1300
+ } else {
1301
+ $p20 = array();
1302
+ $r20 = array();
1303
+ }
1304
+
1305
+ $pattern_array = array_merge($p1, $p2, $p3, $p4, $p5, $p6, $p7, $p8, $p9, $p10, $p11, $p12, $p13, $p14, $p15, $p16, $p17, $p18, $p19, $p20);
1306
+ $replace_array = array_merge($r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11, $r12, $r13, $r14, $r15, $r16, $r17, $r18, $r19, $r20);
1307
+
1308
+ if ( $CC_Options_root['bps_customcode_bpsqse'] != '' ) {
1309
+ $bps_customcode_bpsqse_replace = preg_replace($pattern_array, $replace_array, $bps_customcode_bpsqse_array);
1310
+ } else {
1311
+ $bps_customcode_bpsqse_replace = preg_replace($pattern_array, $replace_array, $bps_customcode_bpsqse_code_array);
1312
+ }
1313
+
1314
+ $bps_customcode_bpsqse_implode = implode( "\n", $bps_customcode_bpsqse_replace );
1315
+
1316
+ if ( ! is_multisite() ) {
1317
+
1318
+ $Root_CC_Options = array(
1319
+ 'bps_customcode_one' => $CC_Options_root['bps_customcode_one'],
1320
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
1321
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
1322
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
1323
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
1324
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
1325
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
1326
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
1327
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
1328
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
1329
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
1330
+ 'bps_customcode_bpsqse' => $bps_customcode_bpsqse_implode,
1331
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
1332
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
1333
+ );
1334
+
1335
+ } else {
1336
+
1337
+ $Root_CC_Options = array(
1338
+ 'bps_customcode_one' => $CC_Options_root['bps_customcode_one'],
1339
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
1340
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
1341
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
1342
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
1343
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
1344
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
1345
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
1346
+ 'bps_customcode_request_methods' => $CC_Options_root['bps_customcode_request_methods'],
1347
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
1348
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
1349
+ 'bps_customcode_bpsqse' => $bps_customcode_bpsqse_implode,
1350
+ 'bps_customcode_wp_rewrite_end' => $CC_Options_root['bps_customcode_wp_rewrite_end'],
1351
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
1352
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
1353
+ );
1354
+ }
1355
+
1356
+ foreach( $Root_CC_Options as $key => $value ) {
1357
+ update_option('bulletproof_security_options_customcode', $Root_CC_Options);
1358
+ }
1359
+
1360
+ $success_array = array($woo_PagSeguro_fix, $event_espresso_fix, $woo_serial_key_fix, $woo_worldpay_fix, $kama_click_counter_fix, $riva_slider_pro_fix, $wp_auto_spinner_fix, $AgriTurismo_theme_fix, $wccp_pro_fix, $panopress_fix, $essb_code_canyon_fix, $mainwp_fix, $clevercourse_theme_fix, $wp_estore_fix, $wp_emember_fix, $easy_digital_downloads_fix, $mailpoet_fix, $mailchimp_fix, $DAPLiveLinks_fix, $wp_newsletter_fix);
1361
+
1362
+ foreach ( $success_array as $successMessage ) {
1363
+
1364
+ if ( $successMessage != '' ) {
1365
+ echo '<font color="green"><strong>'.$successMessage.'</strong></font><br>';
1366
+ }
1367
+ }
1368
+ }
1369
+
1370
+ ## 3. CUSTOM CODE WPADMIN PLUGIN/FILE SKIP RULES
1371
+ function bpsPro_Pwizard_Autofix_plugin_skip_bypass_wpadmin() {
1372
+
1373
+ $AutoFix_Options = get_option('bulletproof_security_options_wizard_autofix');
1374
+
1375
+ if ( $AutoFix_Options['bps_wizard_autofix'] == 'Off' ) {
1376
+ return;
1377
+ }
1378
+
1379
+ global $counter;
1380
+ $counter = 2;
1381
+
1382
+ $CC_Options_wpadmin = get_option('bulletproof_security_options_customcode_WPA');
1383
+ $bps_customcode_two_wpa = htmlspecialchars_decode( $CC_Options_wpadmin['bps_customcode_two_wpa'], ENT_QUOTES );
1384
+ $bps_customcode_two_wpa_array = array();
1385
+ $bps_customcode_two_wpa_array[] = $bps_customcode_two_wpa;
1386
+ $bps_get_wp_root_secure = bps_wp_get_root_folder();
1387
+ $bps_plugin_dir = str_replace( ABSPATH, '', WP_PLUGIN_DIR );
1388
+ $bps_theme_dir = str_replace( ABSPATH, '', get_theme_root() );
1389
+ $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
1390
+
1391
+ ## WooCommerce Product Feed Pro Plugin: whitelist rules
1392
+ $woo_pfeed_pro = 'webappick-product-feed-for-woocommerce-pro/webappick-product-feed-for-woocommerce-pro.php';
1393
+ $woo_pfeed_pro_active = in_array( $woo_pfeed_pro, apply_filters('active_plugins', get_option('active_plugins')));
1394
+ $pattern1 = '/RewriteCond\s%{QUERY_STRING}\spage=woo_feed_manage_feed\(\.\*\)\s\[NC\]/';
1395
+ $woo_pfeed_pro_array = array();
1396
+ $woo_pfeed_pro_fix = '';
1397
+
1398
+ if ( $woo_pfeed_pro_active == 1 || is_plugin_active_for_network( $woo_pfeed_pro ) ) {
1399
+ $woo_pfeed_pro_fix = __('WooCommerce Product Feed Pro Plugin wp-admin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
1400
+
1401
+ if ( ! preg_match( $pattern1, $bps_customcode_two_wpa ) ) {
1402
+
1403
+ $woo_pfeed_pro_array[] = "# WooCommerce Product Feed Pro Query String skip/bypass rule
1404
+ RewriteCond %{QUERY_STRING} page=woo_feed_manage_feed(.*) [NC]
1405
+ RewriteRule . - [S=99]";
1406
+ }
1407
+ }
1408
+
1409
+ ## WPBakery Visual Composer Plugin: whitelist rules
1410
+ $visual_composer = 'js_composer/js_composer.php';
1411
+ $visual_composer_active = in_array( $visual_composer, apply_filters('active_plugins', get_option('active_plugins')));
1412
+ $pattern2 = '/RewriteCond\s%{REQUEST_URI}\s\(post\\\.php\)\s\[NC\]/';
1413
+ $visual_composer_array = array();
1414
+ $visual_composer_fix = '';
1415
+
1416
+ if ( $visual_composer_active == 1 || is_plugin_active_for_network( $visual_composer ) ) {
1417
+ $visual_composer_fix = __('WPBakery Visual Composer Plugin wp-admin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
1418
+
1419
+ if ( ! preg_match( $pattern2, $bps_customcode_two_wpa ) ) {
1420
+
1421
+ $visual_composer_array[] = "# post.php skip/bypass rule
1422
+ RewriteCond %{REQUEST_URI} (post\.php) [NC]
1423
+ RewriteRule . - [S=99]";
1424
+ }
1425
+ }
1426
+
1427
+ ## Bookly Booking Plugin: whitelist rules
1428
+ $bookly_booking = 'appointment-booking/main.php';
1429
+ $bookly_booking_active = in_array( $bookly_booking, apply_filters('active_plugins', get_option('active_plugins')));
1430
+ $pattern3 = '/RewriteCond\s%{REQUEST_URI}\s\(admin-ajax\\\.php\)\s\[NC\]/';
1431
+ $bookly_booking_array = array();
1432
+ $bookly_booking_fix = '';
1433
+
1434
+ if ( $bookly_booking_active == 1 || is_plugin_active_for_network( $bookly_booking ) ) {
1435
+ $bookly_booking_fix = __('Bookly Booking Plugin wp-admin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
1436
+
1437
+ if ( ! preg_match( $pattern3, $bps_customcode_two_wpa ) ) {
1438
+
1439
+ $bookly_booking_array[] = "# admin-ajax.php skip/bypass rule
1440
+ RewriteCond %{REQUEST_URI} (admin-ajax\.php) [NC]
1441
+ RewriteRule . - [S=99]";
1442
+ }
1443
+ }
1444
+
1445
+ ## Easy Media Gallery Pro Plugin: whitelist rules
1446
+ $emg_pro = 'easy-media-gallery-pro/easy-media-gallery-pro.php';
1447
+ $emg_pro_active = in_array( $emg_pro, apply_filters('active_plugins', get_option('active_plugins')));
1448
+ $pattern4 = '/RewriteCond\s%{REQUEST_URI}\s\(admin-ajax\\\.php\)\s\[NC\]/';
1449
+ $emg_pro_array = array();
1450
+ $emg_pro_fix = '';
1451
+
1452
+ if ( $emg_pro_active == 1 || is_plugin_active_for_network( $emg_pro ) ) {
1453
+ $emg_pro_fix = __('Easy Media Gallery Pro Plugin wp-admin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
1454
+
1455
+ if ( ! preg_match( $pattern4, $bps_customcode_two_wpa ) ) {
1456
+
1457
+ $emg_pro_array[] = "# admin-ajax.php skip/bypass rule
1458
+ RewriteCond %{REQUEST_URI} (admin-ajax\.php) [NC]
1459
+ RewriteRule . - [S=99]";
1460
+ }
1461
+ }
1462
+
1463
+ ## NextGen Gallery Plugin: whitelist rules
1464
+ $nextgen_gallery = 'nextgen-gallery/nggallery.php';
1465
+ $nextgen_gallery_active = in_array( $nextgen_gallery, apply_filters('active_plugins', get_option('active_plugins')));
1466
+ $pattern5 = '/RewriteCond\s%{QUERY_STRING}\spage=nggallery-manage-gallery\(\.\*\)\s\[NC\]/';
1467
+ $nextgen_gallery_array = array();
1468
+ $nextgen_gallery_fix = '';
1469
+
1470
+ if ( $nextgen_gallery_active == 1 || is_plugin_active_for_network( $nextgen_gallery ) ) {
1471
+ $nextgen_gallery_fix = __('NextGen Gallery Plugin wp-admin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
1472
+
1473
+ if ( ! preg_match( $pattern5, $bps_customcode_two_wpa ) ) {
1474
+
1475
+ $nextgen_gallery_array[] = "# NextGen Gallery Query String skip/bypass rule
1476
+ RewriteCond %{QUERY_STRING} page=nggallery-manage-gallery(.*) [NC]
1477
+ RewriteRule . - [S=99]";
1478
+ }
1479
+ }
1480
+
1481
+ ## OptimizePress Theme: whitelist rules
1482
+ $OptimizePress_theme = wp_get_theme( 'optimizePressTheme' );
1483
+ $pattern6 = '/RewriteCond\s%{QUERY_STRING}\spage=optimizepress-page-builder\(\.\*\)\s\[NC\]/';
1484
+ $OptimizePress_theme_array = array();
1485
+ $OptimizePress_theme_fix = '';
1486
+
1487
+ if ( $OptimizePress_theme->exists() ) {
1488
+ $OptimizePress_theme_fix = __('OptimizePress Theme wp-admin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
1489
+
1490
+ if ( ! preg_match( $pattern6, $bps_customcode_two_wpa ) ) {
1491
+
1492
+ $OptimizePress_theme_array[] = "# OptimizePress Theme Query String skip/bypass rule
1493
+ RewriteCond %{QUERY_STRING} page=optimizepress-page-builder(.*) [NC]
1494
+ RewriteRule . - [S=99]";
1495
+ }
1496
+ }
1497
+
1498
+ ## tribulant Shopping Cart (WP Checkout) Plugin: whitelist rules
1499
+ $wp_checkout = 'wp-checkout/wp-checkout.php';
1500
+ $wp_checkout_active = in_array( $wp_checkout, apply_filters('active_plugins', get_option('active_plugins')));
1501
+ $pattern7 = '/RewriteCond\s%{REQUEST_URI}\s\(admin-ajax\\\.php\)\s\[NC\]/';
1502
+ $wp_checkout_array = array();
1503
+ $wp_checkout_fix = '';
1504
+
1505
+ if ( $wp_checkout_active == 1 || is_plugin_active_for_network( $wp_checkout ) ) {
1506
+ $wp_checkout_fix = __('tribulant Shopping Cart (WP Checkout) Plugin wp-admin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
1507
+
1508
+ if ( ! preg_match( $pattern7, $bps_customcode_two_wpa ) ) {
1509
+
1510
+ $wp_checkout_array[] = "# admin-ajax.php skip/bypass rule
1511
+ RewriteCond %{REQUEST_URI} (admin-ajax\.php) [NC]
1512
+ RewriteRule . - [S=99]";
1513
+ }
1514
+ }
1515
+
1516
+ ## ithemes Video Showcase Plugin: whitelist rules
1517
+ $video_showcase = 'videoshowcase/videoshowcase.php';
1518
+ $video_showcase_active = in_array( $video_showcase, apply_filters('active_plugins', get_option('active_plugins')));
1519
+ $pattern8 = '/RewriteCond\s%{REQUEST_URI}\s\(admin-ajax\\\.php\)\s\[NC\]/';
1520
+ $video_showcase_array = array();
1521
+ $video_showcase_fix = '';
1522
+
1523
+ if ( $video_showcase_active == 1 || is_plugin_active_for_network( $video_showcase ) ) {
1524
+ $video_showcase_fix = __('ithemes Video Showcase Plugin wp-admin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
1525
+
1526
+ if ( ! preg_match( $pattern8, $bps_customcode_two_wpa ) ) {
1527
+
1528
+ $video_showcase_array[] = "# admin-ajax.php skip/bypass rule
1529
+ RewriteCond %{REQUEST_URI} (admin-ajax\.php) [NC]
1530
+ RewriteRule . - [S=99]";
1531
+ }
1532
+ }
1533
+
1534
+ ## WP-Invoice - Web Invoice and Billing Plugin: whitelist rules
1535
+ $wp_invoice = 'wp-invoice/wp-invoice.php';
1536
+ $wp_invoice_active = in_array( $wp_invoice, apply_filters('active_plugins', get_option('active_plugins')));
1537
+ $pattern9 = '/RewriteCond\s%{QUERY_STRING}\spage=wpi_\(\.\*\)\s\[NC\]/';
1538
+ $wp_invoice_array = array();
1539
+ $wp_invoice_fix = '';
1540
+
1541
+ if ( $wp_invoice_active == 1 || is_plugin_active_for_network( $wp_invoice ) ) {
1542
+ $wp_invoice_fix = __('WP-Invoice - Web Invoice and Billing Plugin wp-admin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
1543
+
1544
+ if ( ! preg_match( $pattern9, $bps_customcode_two_wpa ) ) {
1545
+
1546
+ $wp_invoice_array[] = "# WP-Invoice - Web Invoice and Billing Query String skip/bypass rule
1547
+ RewriteCond %{QUERY_STRING} page=wpi_(.*) [NC]
1548
+ RewriteRule . - [S=99]";
1549
+ }
1550
+ }
1551
+
1552
+ ## Yoast SEO Plugin: whitelist rules
1553
+ $yoast_seo = 'wordpress-seo/wp-seo.php';
1554
+ $yoast_seo_active = in_array( $yoast_seo, apply_filters('active_plugins', get_option('active_plugins')));
1555
+ $pattern10 = '/RewriteCond\s%{QUERY_STRING}\spage=wpseo_social&key=\(\.\*\)\s\[NC\]/';
1556
+ $yoast_seo_array = array();
1557
+ $yoast_seo_fix = '';
1558
+
1559
+ if ( $yoast_seo_active == 1 || is_plugin_active_for_network( $yoast_seo ) ) {
1560
+ $yoast_seo_fix = __('Yoast SEO Plugin wp-admin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
1561
+
1562
+ if ( ! preg_match( $pattern10, $bps_customcode_two_wpa ) ) {
1563
+
1564
+ $yoast_seo_array[] = "# Yoast SEO Query String skip/bypass rule
1565
+ RewriteCond %{QUERY_STRING} page=wpseo_social&key=(.*) [NC]
1566
+ RewriteRule . - [S=99]";
1567
+ }
1568
+ }
1569
+
1570
+ ## Formidable Pro Plugin: whitelist rules
1571
+ $formidable_pro = WP_PLUGIN_DIR . '/formidable/pro/formidable-pro.php';
1572
+ $pattern11 = '/RewriteCond\s%{QUERY_STRING}\splugin=formidable&controller=settings\(\.\*\)\s\[NC\]/';
1573
+ $formidable_pro_array = array();
1574
+ $formidable_pro_fix = '';
1575
+
1576
+ if ( file_exists($formidable_pro) ) {
1577
+ $formidable_pro_fix = __('Formidable Pro Plugin wp-admin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
1578
+
1579
+ if ( ! preg_match( $pattern11, $bps_customcode_two_wpa ) ) {
1580
+
1581
+ $formidable_pro_array[] = "# Formidable Pro Query String skip/bypass rule
1582
+ RewriteCond %{QUERY_STRING} plugin=formidable&controller=settings(.*) [NC]
1583
+ RewriteRule . - [S=99]";
1584
+ }
1585
+ }
1586
+
1587
+ ## Google Typography Plugin: whitelist rules
1588
+ $google_typography = 'google-typography/google-typography.php';
1589
+ $google_typography_active = in_array( $google_typography, apply_filters('active_plugins', get_option('active_plugins')));
1590
+ $pattern12 = '/RewriteCond\s%{REQUEST_URI}\s\(admin-ajax\\\.php\)\s\[NC\]/';
1591
+ $google_typography_array = array();
1592
+ $google_typography_fix = '';
1593
+
1594
+ if ( $google_typography_active == 1 || is_plugin_active_for_network( $google_typography ) ) {
1595
+ $google_typography_fix = __('Google Typography Plugin wp-admin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
1596
+
1597
+ if ( ! preg_match( $pattern12, $bps_customcode_two_wpa ) ) {
1598
+
1599
+ $google_typography_array[] = "# admin-ajax.php skip/bypass rule
1600
+ RewriteCond %{REQUEST_URI} (admin-ajax\.php) [NC]
1601
+ RewriteRule . - [S=99]";
1602
+ }
1603
+ }
1604
+
1605
+ ## Flare Plugin: whitelist rules
1606
+ $flare = 'flare/flare.php';
1607
+ $flare_active = in_array( $flare, apply_filters('active_plugins', get_option('active_plugins')));
1608
+ $pattern13 = '/RewriteCond\s%{REQUEST_URI}\s\(admin-ajax\\\.php\)\s\[NC\]/';
1609
+ $flare_array = array();
1610
+ $flare_fix = '';
1611
+
1612
+ if ( $flare_active == 1 || is_plugin_active_for_network( $flare ) ) {
1613
+ $flare_fix = __('Flare Plugin wp-admin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
1614
+
1615
+ if ( ! preg_match( $pattern13, $bps_customcode_two_wpa ) ) {
1616
+
1617
+ $flare_array[] = "# admin-ajax.php skip/bypass rule
1618
+ RewriteCond %{REQUEST_URI} (admin-ajax\.php) [NC]
1619
+ RewriteRule . - [S=99]";
1620
+ }
1621
+ }
1622
+
1623
+ ## bbPress Plugin: whitelist rules
1624
+ $bbPress = 'bbpress/bbpress.php';
1625
+ $bbPress_active = in_array( $bbPress, apply_filters('active_plugins', get_option('active_plugins')));
1626
+ $pattern14 = '/RewriteCond\s%{REQUEST_URI}\s\(post\\\.php\)\s\[NC\]/';
1627
+ $bbPress_array = array();
1628
+ $bbPress_fix = '';
1629
+
1630
+ if ( $bbPress_active == 1 || is_plugin_active_for_network( $bbPress ) ) {
1631
+ $bbPress_fix = __('bbPress Plugin wp-admin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
1632
+
1633
+ if ( ! preg_match( $pattern14, $bps_customcode_two_wpa ) ) {
1634
+
1635
+ $bbPress_array[] = "# post.php skip/bypass rule
1636
+ RewriteCond %{REQUEST_URI} (post\.php) [NC]
1637
+ RewriteRule . - [S=99]";
1638
+ }
1639
+ }
1640
+
1641
+ ## Spider Event Calendar (WordPress Event Calendar) Plugin: whitelist rules
1642
+ $spider_calendar = 'spider-event-calendar/calendar.php';
1643
+ $spider_calendar_active = in_array( $spider_calendar, apply_filters('active_plugins', get_option('active_plugins')));
1644
+ $pattern15 = '/RewriteCond\s%{REQUEST_URI}\s\(admin-ajax\\\.php\)\s\[NC\]/';
1645
+ $spider_calendar_array = array();
1646
+ $spider_calendar_fix = '';
1647
+
1648
+ if ( $spider_calendar_active == 1 || is_plugin_active_for_network( $spider_calendar ) ) {
1649
+ $spider_calendar_fix = __('Spider Event Calendar (WordPress Event Calendar) Plugin wp-admin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
1650
+
1651
+ if ( ! preg_match( $pattern15, $bps_customcode_two_wpa ) ) {
1652
+
1653
+ $spider_calendar_array[] = "# admin-ajax.php skip/bypass rule
1654
+ RewriteCond %{REQUEST_URI} (admin-ajax\.php) [NC]
1655
+ RewriteRule . - [S=99]";
1656
+ }
1657
+ }
1658
+
1659
+ ## BuddyPress Plugin: whitelist rules Note: Only adds this whitelist rule if this option is set/checked: Private Messaging
1660
+ $buddypress = 'buddypress/bp-loader.php';
1661
+ $buddypress_active = in_array( $buddypress, apply_filters('active_plugins', get_option('active_plugins')));
1662
+ $pattern16 = '/RewriteCond\s%{REQUEST_URI}\s\(admin-ajax\\\.php\)\s\[NC\]/';
1663
+ $buddypress_array = array();
1664
+ $buddypress_fix = '';
1665
+
1666
+ if ( $buddypress_active == 1 || is_plugin_active_for_network( $buddypress ) ) {
1667
+ $bp_active_components = bp_get_option( 'bp-active-components' );
1668
+
1669
+ foreach ( $bp_active_components as $key => $value ) {
1670
+ if ( $key == 'messages' ) {
1671
+ $buddypress_fix = __('BuddyPress Plugin wp-admin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
1672
+
1673
+ if ( ! preg_match( $pattern16, $bps_customcode_two_wpa ) ) {
1674
+
1675
+ $buddypress_array[] = "# admin-ajax.php skip/bypass rule
1676
+ RewriteCond %{REQUEST_URI} (admin-ajax\.php) [NC]
1677
+ RewriteRule . - [S=99]";
1678
+ }
1679
+ }
1680
+ }
1681
+ }
1682
+
1683
+ ## WPML Translation Management Plugin: whitelist rules
1684
+ $wpml_transman = 'wpml-translation-management/plugin.php';
1685
+ $wpml_transman_active = in_array( $wpml_transman, apply_filters('active_plugins', get_option('active_plugins')));
1686
+ $pattern17 = '/RewriteCond\s%{QUERY_STRING}\spage=wpml-translation-management\(\.\*\)\s\[NC\]/';
1687
+ $wpml_transman_array = array();
1688
+ $wpml_transman_fix = '';
1689
+
1690
+ if ( $wpml_transman_active == 1 || is_plugin_active_for_network( $wpml_transman ) ) {
1691
+ $wpml_transman_fix = __('WPML Translation Management Plugin wp-admin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
1692
+
1693
+ if ( ! preg_match( $pattern17, $bps_customcode_two_wpa ) ) {
1694
+
1695
+ $wpml_transman_array[] = "# WPML Translation Management Query String skip/bypass rule
1696
+ RewriteCond %{QUERY_STRING} page=wpml-translation-management(.*) [NC]
1697
+ RewriteRule . - [S=99]";
1698
+ }
1699
+ }
1700
+
1701
+ ## Events Manager Plugin: whitelist rules
1702
+ $events_manager = 'events-manager/events-manager.php';
1703
+ $events_manager_active = in_array( $events_manager, apply_filters('active_plugins', get_option('active_plugins')));
1704
+ $pattern18 = '/RewriteCond\s%{REQUEST_URI}\s\(admin-ajax\\\.php\)\s\[NC\]/';
1705
+ $events_manager_array = array();
1706
+ $events_manager_fix = '';
1707
+
1708
+ if ( $events_manager_active == 1 || is_plugin_active_for_network( $events_manager ) ) {
1709
+ $events_manager_fix = __('Events Manager Plugin wp-admin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
1710
+
1711
+ if ( ! preg_match( $pattern18, $bps_customcode_two_wpa ) ) {
1712
+
1713
+ $events_manager_array[] = "# admin-ajax.php skip/bypass rule
1714
+ RewriteCond %{REQUEST_URI} (admin-ajax\.php) [NC]
1715
+ RewriteRule . - [S=99]";
1716
+ }
1717
+ }
1718
+
1719
+ ## MailPoet Newsletters (wysija newsletters) Plugin: whitelist rules
1720
+ $mailpoet = 'wysija-newsletters/index.php';
1721
+ $mailpoet_active = in_array( $mailpoet, apply_filters('active_plugins', get_option('active_plugins')));
1722
+ $pattern19 = '/RewriteCond\s%{REQUEST_URI}\s\(admin-ajax\\\.php\)\s\[NC\]/';
1723
+ $mailpoet_array = array();
1724
+ $mailpoet_fix = '';
1725
+
1726
+ if ( $mailpoet_active == 1 || is_plugin_active_for_network( $mailpoet ) ) {
1727
+ $mailpoet_fix = __('MailPoet Newsletters (wysija newsletters) Plugin wp-admin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
1728
+
1729
+ if ( ! preg_match( $pattern19, $bps_customcode_two_wpa ) ) {
1730
+
1731
+ $mailpoet_array[] = "# admin-ajax.php skip/bypass rule
1732
+ RewriteCond %{REQUEST_URI} (admin-ajax\.php) [NC]
1733
+ RewriteRule . - [S=99]";
1734
+ }
1735
+ }
1736
+
1737
+ ## Event Espresso Plugin: whitelist rules
1738
+ $event_espresso1 = WP_PLUGIN_DIR . '/event-espresso-decaf/espresso.php';
1739
+ $event_espresso2 = WP_PLUGIN_DIR . '/event-espresso-free/espresso.php';
1740
+ $event_espresso3 = WP_PLUGIN_DIR . '/event-espresso/espresso.php';
1741
+ $event_espresso4 = WP_PLUGIN_DIR . '/event-espresso-core-master/espresso.php';
1742
+ $pattern20 = '/RewriteCond\s%{REQUEST_URI}\s\(admin\\\.php\)\s\[NC\]/';
1743
+ $event_espresso_array = array();
1744
+ $event_espresso_fix = '';
1745
+
1746
+ if ( file_exists($event_espresso1) || file_exists($event_espresso2) || file_exists($event_espresso3) || file_exists($event_espresso4) ) {
1747
+ $event_espresso_fix = __('Event Espresso Plugin wp-admin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
1748
+
1749
+ if ( ! preg_match( $pattern20, $bps_customcode_two_wpa ) ) {
1750
+ $event_espresso_array[] = "# admin.php skip/bypass rule
1751
+ RewriteCond %{REQUEST_URI} (admin\.php) [NC]
1752
+ RewriteRule . - [S=99]";
1753
+ }
1754
+ }
1755
+
1756
+ ## Content Egg Free and Pro Plugin: whitelist rules
1757
+ $content_egg = 'content-egg/content-egg.php';
1758
+ $content_egg_active = in_array( $content_egg, apply_filters('active_plugins', get_option('active_plugins')));
1759
+ $pattern21 = '/RewriteCond\s%{REQUEST_URI}\s\(admin-ajax\\\.php\)\s\[NC\]/';
1760
+ $content_egg_array = array();
1761
+ $content_egg_fix = '';
1762
+
1763
+ if ( $content_egg_active == 1 || is_plugin_active_for_network( $content_egg ) ) {
1764
+ $content_egg_fix = __('Content Egg Plugin wp-admin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
1765
+
1766
+ if ( ! preg_match( $pattern21, $bps_customcode_two_wpa ) ) {
1767
+
1768
+ $content_egg_array[] = "# admin-ajax.php skip/bypass rule
1769
+ RewriteCond %{REQUEST_URI} (admin-ajax\.php) [NC]
1770
+ RewriteRule . - [S=99]";
1771
+ }
1772
+ }
1773
+
1774
+ $bps_customcode_two_wpa_array_impload = implode( "]", $bps_customcode_two_wpa_array );
1775
+ $bps_customcode_two_wpa_array_preg_split = preg_split("/\[S=\d{1,2}\]/", $bps_customcode_two_wpa_array_impload);
1776
+ $bps_customcode_two_wpa_array_preg_replace = preg_replace("/RewriteRule\s\.\s-\s/", "RewriteRule . - [S=99]", $bps_customcode_two_wpa_array_preg_split);
1777
+ $bps_customcode_two_wpa_array_filter = array_filter($bps_customcode_two_wpa_array_preg_replace);
1778
+
1779
+ // Break the $bps_customcode_two_wpa_array value into separate arrays and cleans up the $bps_customcode_two_wpa_array values.
1780
+ $cc2_array = array();
1781
+
1782
+ foreach ( $bps_customcode_two_wpa_array_filter as $key => $value ) {
1783
+ $cc2_array[] = trim( $value, " \t\n\r");
1784
+ }
1785
+
1786
+ $bps_customcode_two_wpa_array_merge = array_merge($cc2_array, $woo_pfeed_pro_array, $visual_composer_array, $bookly_booking_array, $emg_pro_array, $nextgen_gallery_array, $OptimizePress_theme_array, $wp_checkout_array, $video_showcase_array, $wp_invoice_array, $yoast_seo_array, $formidable_pro_array, $google_typography_array, $flare_array, $bbPress_array, $spider_calendar_array, $buddypress_array, $wpml_transman_array, $events_manager_array, $mailpoet_array, $event_espresso_array, $content_egg_array);
1787
+
1788
+ $cc2_unique = array_unique($bps_customcode_two_wpa_array_merge);
1789
+ $S_replace = preg_replace_callback( '/(S=\d{1,2})/', 'bpsPro_S_number_count_replace', $cc2_unique );
1790
+ $cc2_reversed = array_reverse($S_replace);
1791
+ $bps_customcode_two_wpa_implode = implode( "\n\n", $cc2_reversed );
1792
+
1793
+ $wpadmin_CC_Options = array(
1794
+ 'bps_customcode_deny_files_wpa' => $CC_Options_wpadmin['bps_customcode_deny_files_wpa'],
1795
+ 'bps_customcode_one_wpa' => $CC_Options_wpadmin['bps_customcode_one_wpa'],
1796
+ 'bps_customcode_two_wpa' => $bps_customcode_two_wpa_implode,
1797
+ 'bps_customcode_bpsqse_wpa' => $CC_Options_wpadmin['bps_customcode_bpsqse_wpa']
1798
+ );
1799
+
1800
+ foreach( $wpadmin_CC_Options as $key => $value ) {
1801
+ update_option('bulletproof_security_options_customcode_WPA', $wpadmin_CC_Options);
1802
+ }
1803
+
1804
+ $success_array = array($woo_pfeed_pro_fix, $visual_composer_fix, $bookly_booking_fix, $emg_pro_fix, $nextgen_gallery_fix, $OptimizePress_theme_fix, $wp_checkout_fix, $video_showcase_fix, $wp_invoice_fix, $yoast_seo_fix, $formidable_pro_fix, $google_typography_fix, $flare_fix, $bbPress_fix, $spider_calendar_fix, $buddypress_fix, $wpml_transman_fix, $events_manager_fix, $mailpoet_fix, $event_espresso_fix, $content_egg_fix);
1805
+
1806
+ foreach ( $success_array as $successMessage ) {
1807
+
1808
+ if ( $successMessage != '' ) {
1809
+ echo '<font color="green"><strong>'.$successMessage.'</strong></font><br>';
1810
+ }
1811
+ }
1812
+ }
1813
+
1814
+ ## 4. CUSTOM CODE BPSQSE-check BPS QUERY STRING EXPLOITS AND FILTERS
1815
+ function bpsPro_Pwizard_Autofix_BPSQSE_wpadmin() {
1816
+
1817
+ $AutoFix_Options = get_option('bulletproof_security_options_wizard_autofix');
1818
+
1819
+ if ( $AutoFix_Options['bps_wizard_autofix'] == 'Off' ) {
1820
+ return;
1821
+ }
1822
+
1823
+ $CC_Options_wpadmin = get_option('bulletproof_security_options_customcode_WPA');
1824
+ $bps_customcode_bpsqse = htmlspecialchars_decode( $CC_Options_wpadmin['bps_customcode_bpsqse_wpa'], ENT_QUOTES );
1825
+ $bps_customcode_bpsqse_array = array();
1826
+ $bps_customcode_bpsqse_array[] = $bps_customcode_bpsqse;
1827
+ $pattern1 = '/BPSQSE-check\sBPS\sQUERY\sSTRING\sEXPLOITS\sAND\sFILTERS/';
1828
+
1829
+ $bps_customcode_bpsqse_code_array = array();
1830
+
1831
+ ## The escaping is necessary in this String for processing
1832
+ $bps_customcode_bpsqse_code_array[] = "# BEGIN BPSQSE-check BPS QUERY STRING EXPLOITS AND FILTERS
1833
+ # WORDPRESS WILL BREAK IF ALL THE BPSQSE FILTERS ARE DELETED
1834
+ # Use BPS wp-admin Custom Code to modify/edit/change this code and to save it permanently.
1835
+ RewriteCond %{HTTP_USER_AGENT} (%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
1836
+ RewriteCond %{HTTP_USER_AGENT} (;|<|>|'|".'"'."|\)|\(|%0A|%0D|%22|%27|%28|%3C|%3E|%00).*(libwww-perl|wget|python|nikto|curl|scan|java|winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR]
1837
+ RewriteCond %{THE_REQUEST} (\?|\*|%2a)+(%20+|\\\\s+|%20+\\\\s+|\\\\s+%20+|\\\\s+%20+\\\\s+)(http|https)(:/|/) [NC,OR]
1838
+ RewriteCond %{THE_REQUEST} etc/passwd [NC,OR]
1839
+ RewriteCond %{THE_REQUEST} cgi-bin [NC,OR]
1840
+ RewriteCond %{THE_REQUEST} (%0A|%0D) [NC,OR]
1841
+ RewriteCond %{REQUEST_URI} owssvr\.dll [NC,OR]
1842
+ RewriteCond %{HTTP_REFERER} (%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
1843
+ RewriteCond %{HTTP_REFERER} \.opendirviewer\. [NC,OR]
1844
+ RewriteCond %{HTTP_REFERER} users\.skynet\.be.* [NC,OR]
1845
+ RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(http|https):// [NC,OR]
1846
+ RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [NC,OR]
1847
+ RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC,OR]
1848
+ RewriteCond %{QUERY_STRING} \=PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC,OR]
1849
+ RewriteCond %{QUERY_STRING} (\.\./|%2e%2e%2f|%2e%2e/|\.\.%2f|%2e\.%2f|%2e\./|\.%2e%2f|\.%2e/) [NC,OR]
1850
+ RewriteCond %{QUERY_STRING} ftp\: [NC,OR]
1851
+ RewriteCond %{QUERY_STRING} (http|https)\: [NC,OR]
1852
+ RewriteCond %{QUERY_STRING} \=\|w\| [NC,OR]
1853
+ RewriteCond %{QUERY_STRING} ^(.*)/self/(.*)$ [NC,OR]
1854
+ RewriteCond %{QUERY_STRING} ^(.*)cPath=(http|https)://(.*)$ [NC,OR]
1855
+ RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
1856
+ RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
1857
+ RewriteCond %{QUERY_STRING} (\<|%3C).*iframe.*(\>|%3E) [NC,OR]
1858
+ RewriteCond %{QUERY_STRING} (<|%3C)([^i]*i)+frame.*(>|%3E) [NC,OR]
1859
+ RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [NC,OR]
1860
+ RewriteCond %{QUERY_STRING} base64_(en|de)code[^(]*\([^)]*\) [NC,OR]
1861
+ RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
1862
+ RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) [OR]
1863
+ RewriteCond %{QUERY_STRING} ^.*(\(|\)|<|>).* [NC,OR]
1864
+ RewriteCond %{QUERY_STRING} (NULL|OUTFILE|LOAD_FILE) [OR]
1865
+ RewriteCond %{QUERY_STRING} (\.{1,}/)+(motd|etc|bin) [NC,OR]
1866
+ RewriteCond %{QUERY_STRING} (localhost|loopback|127\.0\.0\.1) [NC,OR]
1867
+ RewriteCond %{QUERY_STRING} (<|>|'|%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
1868
+ RewriteCond %{QUERY_STRING} concat[^\(]*\( [NC,OR]
1869
+ RewriteCond %{QUERY_STRING} union([^s]*s)+elect [NC,OR]
1870
+ RewriteCond %{QUERY_STRING} union([^a]*a)+ll([^s]*s)+elect [NC,OR]
1871
+ RewriteCond %{QUERY_STRING} (;|<|>|'|".'"'."|\)|%0A|%0D|%22|%27|%3C|%3E|%00).*(/\*|union|select|insert|drop|delete|update|cast|create|char|convert|alter|declare|order|script|set|md5|benchmark|encode) [NC,OR]
1872
+ RewriteCond %{QUERY_STRING} (sp_executesql) [NC]
1873
+ RewriteRule ^(.*)$ - [F]
1874
+ # END BPSQSE-check BPS QUERY STRING EXPLOITS AND FILTERS\n";
1875
+
1876
+ ## Content Egg Free and Pro Plugin: whitelist rules
1877
+ $content_egg = 'content-egg/content-egg.php';
1878
+ $content_egg_active = in_array( $content_egg, apply_filters('active_plugins', get_option('active_plugins')));
1879
+ $content_egg_fix = '';
1880
+
1881
+ if ( $content_egg_active == 1 || is_plugin_active_for_network( $content_egg ) ) {
1882
+ $content_egg_fix = __('Content Egg Plugin wp-admin BPSQSE AutoWhitelist successful', 'bulletproof-security');
1883
+
1884
+ $p1 = array('/RewriteCond\s%\{QUERY_STRING\}\s\(;\|\<\|\>\|\'\|(.*)order\|script\|set\|md5\|benchmark\|encode\)\s\[NC,OR\]/');
1885
+ $r1 = array("# BPS AutoWhitelist QS1: Content Egg Plugin");
1886
+
1887
+ } else {
1888
+ $p1 = array();
1889
+ $r1 = array();
1890
+ }
1891
+
1892
+ ## Event Espresso Plugin: whitelist rules Note: covers all versions of Espresso and the premium versions
1893
+ $event_espresso1 = WP_PLUGIN_DIR . '/event-espresso-decaf/espresso.php';
1894
+ $event_espresso2 = WP_PLUGIN_DIR . '/event-espresso-free/espresso.php';
1895
+ $event_espresso3 = WP_PLUGIN_DIR . '/event-espresso/espresso.php';
1896
+ $event_espresso4 = WP_PLUGIN_DIR . '/event-espresso-core-master/espresso.php';
1897
+ $event_espresso_fix = '';
1898
+
1899
+ if ( file_exists($event_espresso1) || file_exists($event_espresso2) || file_exists($event_espresso3) || file_exists($event_espresso4) ) {
1900
+ $event_espresso_fix = __('Event Espresso Plugin wp-admin BPSQSE AutoWhitelist successful', 'bulletproof-security');
1901
+
1902
+ $p2 = array('/RewriteCond\s%\{HTTP_REFERER\}\s\(%0A\|%0D\|%27\|%3C\|%3E\|%00\)\s\[NC,OR\]/', '/RewriteCond\s%\{QUERY_STRING\}\s\(<\|>\|\'\|%0A\|%0D\|%27\|%3C\|%3E\|%00\)\s\[NC,OR\]/');
1903
+ $r2 = array("# BPS AutoWhitelist QS2: Event Espresso Plugin", "# BPS AutoWhitelist QS3: Event Espresso Plugin");
1904
+ } else {
1905
+ $p2 = array();
1906
+ $r2 = array();
1907
+ }
1908
+
1909
+ ## Open Web Analytics (github) Plugin: whitelist rules
1910
+ $owa_plugin = 'owa/wp_plugin.php';
1911
+ $owa_plugin_active = in_array( $owa_plugin, apply_filters('active_plugins', get_option('active_plugins')));
1912
+ $owa_plugin_fix = '';
1913
+
1914
+ if ( $owa_plugin_active == 1 || is_plugin_active_for_network( $owa_plugin ) ) {
1915
+ $owa_plugin_fix = __('Open Web Analytics (github) Plugin wp-admin BPSQSE AutoWhitelist successful', 'bulletproof-security');
1916
+
1917
+ $p3 = array('/RewriteCond\s%\{HTTP_REFERER\}\s\(%0A\|%0D\|%27\|%3C\|%3E\|%00\)\s\[NC,OR\]/', '/RewriteCond\s%\{QUERY_STRING\}\s\^\.\*\(.*\|\<\|\>\)\.\*\s\[NC,OR\]/', '/RewriteCond\s%\{QUERY_STRING\}\s\(<\|>\|\'\|%0A\|%0D\|%27\|%3C\|%3E\|%00\)\s\[NC,OR\]/');
1918
+ $r3 = array("# BPS AutoWhitelist QS2: Open Web Analytics (github) Plugin", "# BPS AutoWhitelist QS4: Open Web Analytics (github) Plugin", "# BPS AutoWhitelist QS3: Open Web Analytics (github) Plugin");
1919
+
1920
+ } else {
1921
+ $p3 = array();
1922
+ $r3 = array();
1923
+ }
1924
+
1925
+ ## UberGrid (code canyon) Plugin: whitelist rules
1926
+ $uberGrid = 'uber-grid/uber-grid.php';
1927
+ $uberGrid_active = in_array( $uberGrid, apply_filters('active_plugins', get_option('active_plugins')));
1928
+ $uberGrid_fix = '';
1929
+
1930
+ if ( $uberGrid_active == 1 || is_plugin_active_for_network( $uberGrid ) ) {
1931
+ $uberGrid_fix = __('UberGrid (code canyon) Plugin wp-admin BPSQSE AutoWhitelist successful', 'bulletproof-security');
1932
+
1933
+ $p4 = array('/RewriteCond\s%\{HTTP_REFERER\}\s\(%0A\|%0D\|%27\|%3C\|%3E\|%00\)\s\[NC,OR\]/', '/RewriteCond\s%\{QUERY_STRING\}\s\^\.\*\(.*\|\<\|\>\)\.\*\s\[NC,OR\]/', '/RewriteCond\s%\{QUERY_STRING\}\s\(<\|>\|\'\|%0A\|%0D\|%27\|%3C\|%3E\|%00\)\s\[NC,OR\]/');
1934
+ $r4 = array("# BPS AutoWhitelist QS2: UberGrid (code canyon) Plugin", "# BPS AutoWhitelist QS4: UberGrid (code canyon) Plugin", "# BPS AutoWhitelist QS3: UberGrid (code canyon) Plugin");
1935
+
1936
+ } else {
1937
+ $p4 = array();
1938
+ $r4 = array();
1939
+ }
1940
+
1941
+ $pattern_array = array_merge($p1, $p2, $p3, $p4);
1942
+ $replace_array = array_merge($r1, $r2, $r3, $r4);
1943
+
1944
+ if ( $CC_Options_wpadmin['bps_customcode_bpsqse_wpa'] != '' ) {
1945
+ $bps_customcode_bpsqse_replace = preg_replace($pattern_array, $replace_array, $bps_customcode_bpsqse_array);
1946
+ } else {
1947
+ $bps_customcode_bpsqse_replace = preg_replace($pattern_array, $replace_array, $bps_customcode_bpsqse_code_array);
1948
+ }
1949
+
1950
+ $bps_customcode_bpsqse_implode = implode( "\n", $bps_customcode_bpsqse_replace );
1951
+
1952
+ $wpadmin_CC_Options = array(
1953
+ 'bps_customcode_deny_files_wpa' => $CC_Options_wpadmin['bps_customcode_deny_files_wpa'],
1954
+ 'bps_customcode_one_wpa' => $CC_Options_wpadmin['bps_customcode_one_wpa'],
1955
+ 'bps_customcode_two_wpa' => $CC_Options_wpadmin['bps_customcode_two_wpa'],
1956
+ 'bps_customcode_bpsqse_wpa' => $bps_customcode_bpsqse_implode
1957
+ );
1958
+
1959
+ foreach( $wpadmin_CC_Options as $key => $value ) {
1960
+ update_option('bulletproof_security_options_customcode_WPA', $wpadmin_CC_Options);
1961
+ }
1962
+
1963
+ $success_array = array($content_egg_fix, $event_espresso_fix, $owa_plugin_fix, $uberGrid_fix);
1964
+
1965
+ foreach ( $success_array as $successMessage ) {
1966
+
1967
+ if ( $successMessage != '' ) {
1968
+ echo '<font color="green"><strong>'.$successMessage.'</strong></font><br>';
1969
+ }
1970
+ }
1971
+ }
1972
+
1973
+ ?>
admin/wizard/wizard-backup.php CHANGED
@@ -75,16 +75,21 @@ function bpsPro_Wizard_deny_all() {
75
  // Zip Root htaccess file: If ZipArchive Class is not available use PclZip
76
  function bps_zip_root_htaccess_file() {
77
  // Use ZipArchive
78
- if ( class_exists('ZipArchive') ) {
79
 
80
  $zip = new ZipArchive();
81
- $filename = WP_PLUGIN_DIR . '/bulletproof-security/admin/wizard/root-htaccess-file.zip';
82
 
83
  if ( $zip->open($filename, ZIPARCHIVE::CREATE) !== TRUE ) {
84
  exit("Error: Cannot Open $filename\n");
85
  }
86
 
87
- $zip->addFile(ABSPATH . '.htaccess', ".htaccess");
 
 
 
 
 
88
  $zip->close();
89
 
90
  return true;
@@ -100,14 +105,45 @@ function bps_zip_root_htaccess_file() {
100
  mb_internal_encoding( 'ISO-8859-1' );
101
  }
102
 
103
- $archive = new PclZip(WP_PLUGIN_DIR . '/bulletproof-security/admin/wizard/root-htaccess-file.zip');
104
- $v_list = $archive->create(ABSPATH . '.htaccess', PCLZIP_OPT_REMOVE_PATH, ABSPATH);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
105
 
106
- return true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
107
 
108
  if ( $v_list == 0 ) {
109
  die("Error : ".$archive->errorInfo(true) );
110
- return false;
111
  }
112
  }
113
  }
75
  // Zip Root htaccess file: If ZipArchive Class is not available use PclZip
76
  function bps_zip_root_htaccess_file() {
77
  // Use ZipArchive
78
+ if ( ! class_exists('ZipArchive') ) {
79
 
80
  $zip = new ZipArchive();
81
+ $filename = WP_PLUGIN_DIR . '/bulletproof-security/admin/wizard/htaccess-files.zip';
82
 
83
  if ( $zip->open($filename, ZIPARCHIVE::CREATE) !== TRUE ) {
84
  exit("Error: Cannot Open $filename\n");
85
  }
86
 
87
+ $zip->addFile( ABSPATH . '.htaccess', "root.htaccess" );
88
+
89
+ if ( file_exists( ABSPATH . '/wp-admin/.htaccess' ) ) {
90
+ $zip->addFile( ABSPATH . '/wp-admin/.htaccess', "wp-admin.htaccess" );
91
+ }
92
+
93
  $zip->close();
94
 
95
  return true;
105
  mb_internal_encoding( 'ISO-8859-1' );
106
  }
107
 
108
+ $root_htaccess = ABSPATH . '.htaccess';
109
+ $wp_admin_htaccess = ABSPATH . '/wp-admin/.htaccess';
110
+ $root_htaccess_dest = WP_PLUGIN_DIR . '/bulletproof-security/admin/wizard/root.htaccess';
111
+ $wp_admin_htaccess_dest = WP_PLUGIN_DIR . '/bulletproof-security/admin/wizard/wp-admin.htaccess';
112
+ $blank_dummy_file = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/blank.txt';;
113
+
114
+ if ( file_exists($root_htaccess) ) {
115
+ copy($root_htaccess, $root_htaccess_dest);
116
+ }
117
+ if ( file_exists($wp_admin_htaccess) ) {
118
+ copy($wp_admin_htaccess, $wp_admin_htaccess_dest);
119
+ }
120
+ // PclZip will lose its mind if the wp-admin htaccess file does not exist. So create a dummy file.
121
+ if ( ! file_exists($wp_admin_htaccess) ) {
122
+ copy($blank_dummy_file, $wp_admin_htaccess_dest);
123
+ }
124
+
125
+ $archive = new PclZip(WP_PLUGIN_DIR . '/bulletproof-security/admin/wizard/htaccess-files.zip');
126
 
127
+ $v_list = $archive->create(array(
128
+ array( PCLZIP_ATT_FILE_NAME => WP_PLUGIN_DIR . '/bulletproof-security/admin/wizard/root.htaccess',
129
+ PCLZIP_ATT_FILE_NEW_SHORT_NAME => 'root.htaccess'
130
+ ),
131
+ array( PCLZIP_ATT_FILE_NAME => WP_PLUGIN_DIR . '/bulletproof-security/admin/wizard/wp-admin.htaccess',
132
+ PCLZIP_ATT_FILE_NEW_SHORT_NAME => 'wp-admin.htaccess'
133
+ ),
134
+ ),
135
+ PCLZIP_OPT_REMOVE_PATH, WP_PLUGIN_DIR . '/bulletproof-security/admin/wizard/');
136
+
137
+ if ( $v_list >= 1 ) {
138
+ unlink($root_htaccess_dest);
139
+ unlink($wp_admin_htaccess_dest);
140
+
141
+ return true;
142
+ }
143
 
144
  if ( $v_list == 0 ) {
145
  die("Error : ".$archive->errorInfo(true) );
146
+ return false;
147
  }
148
  }
149
  }
admin/wizard/wizard-functions.php CHANGED
@@ -266,7 +266,7 @@ $bps_secure_request_methods = "\n# REQUEST METHODS FILTERED
266
  RewriteCond %{REQUEST_METHOD} ^(TRACE|DELETE|TRACK|DEBUG) [NC]
267
  RewriteRule ^(.*)$ - [F]
268
  RewriteCond %{REQUEST_METHOD} ^(HEAD) [NC]
269
- RewriteRule ^(.*)$ " . $bps_get_wp_root_secure . $bps_plugin_dir . "/bulletproof-security/405.php [L]\n\n";
270
  }
271
  }
272
 
@@ -344,7 +344,7 @@ $bps_secure_BPSQSE = "# BEGIN BPSQSE BPS QUERY STRING EXPLOITS
344
  RewriteCond %{HTTP_USER_AGENT} (havij|libwww-perl|wget|python|nikto|curl|scan|java|winhttp|clshttp|loader) [NC,OR]
345
  RewriteCond %{HTTP_USER_AGENT} (%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
346
  RewriteCond %{HTTP_USER_AGENT} (;|<|>|'|".'"'."|\)|\(|%0A|%0D|%22|%27|%28|%3C|%3E|%00).*(libwww-perl|wget|python|nikto|curl|scan|java|winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR]
347
- RewriteCond %{THE_REQUEST} (\?|\*|%2a)+(%20+|\\\\s+|%20+\\\\s+|\\\\s+%20+|\\\\s+%20+\\\\s+)HTTP(:/|/) [NC,OR]
348
  RewriteCond %{THE_REQUEST} etc/passwd [NC,OR]
349
  RewriteCond %{THE_REQUEST} cgi-bin [NC,OR]
350
  RewriteCond %{THE_REQUEST} (%0A|%0D|\\"."\\"."r|\\"."\\"."n) [NC,OR]
@@ -352,17 +352,16 @@ RewriteCond %{REQUEST_URI} owssvr\.dll [NC,OR]
352
  RewriteCond %{HTTP_REFERER} (%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
353
  RewriteCond %{HTTP_REFERER} \.opendirviewer\. [NC,OR]
354
  RewriteCond %{HTTP_REFERER} users\.skynet\.be.* [NC,OR]
355
- RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [NC,OR]
356
  RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [NC,OR]
357
  RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC,OR]
358
  RewriteCond %{QUERY_STRING} \=PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC,OR]
359
  RewriteCond %{QUERY_STRING} (\.\./|%2e%2e%2f|%2e%2e/|\.\.%2f|%2e\.%2f|%2e\./|\.%2e%2f|\.%2e/) [NC,OR]
360
  RewriteCond %{QUERY_STRING} ftp\: [NC,OR]
361
- RewriteCond %{QUERY_STRING} http\: [NC,OR]
362
- RewriteCond %{QUERY_STRING} https\: [NC,OR]
363
  RewriteCond %{QUERY_STRING} \=\|w\| [NC,OR]
364
  RewriteCond %{QUERY_STRING} ^(.*)/self/(.*)$ [NC,OR]
365
- RewriteCond %{QUERY_STRING} ^(.*)cPath=http://(.*)$ [NC,OR]
366
  RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
367
  RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
368
  RewriteCond %{QUERY_STRING} (\<|%3C).*embed.*(\>|%3E) [NC,OR]
@@ -1004,4 +1003,23 @@ function bpsSetupWizardCustomCodePresave() {
1004
  }
1005
  }
1006
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1007
  ?>
266
  RewriteCond %{REQUEST_METHOD} ^(TRACE|DELETE|TRACK|DEBUG) [NC]
267
  RewriteRule ^(.*)$ - [F]
268
  RewriteCond %{REQUEST_METHOD} ^(HEAD) [NC]
269
+ RewriteRule ^(.*)$ " . $bps_get_wp_root_secure . $bps_plugin_dir . "/bulletproof-security/405.php [R,L]\n\n";
270
  }
271
  }
272
 
344
  RewriteCond %{HTTP_USER_AGENT} (havij|libwww-perl|wget|python|nikto|curl|scan|java|winhttp|clshttp|loader) [NC,OR]
345
  RewriteCond %{HTTP_USER_AGENT} (%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
346
  RewriteCond %{HTTP_USER_AGENT} (;|<|>|'|".'"'."|\)|\(|%0A|%0D|%22|%27|%28|%3C|%3E|%00).*(libwww-perl|wget|python|nikto|curl|scan|java|winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner) [NC,OR]
347
+ RewriteCond %{THE_REQUEST} (\?|\*|%2a)+(%20+|\\\\s+|%20+\\\\s+|\\\\s+%20+|\\\\s+%20+\\\\s+)(http|https)(:/|/) [NC,OR]
348
  RewriteCond %{THE_REQUEST} etc/passwd [NC,OR]
349
  RewriteCond %{THE_REQUEST} cgi-bin [NC,OR]
350
  RewriteCond %{THE_REQUEST} (%0A|%0D|\\"."\\"."r|\\"."\\"."n) [NC,OR]
352
  RewriteCond %{HTTP_REFERER} (%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
353
  RewriteCond %{HTTP_REFERER} \.opendirviewer\. [NC,OR]
354
  RewriteCond %{HTTP_REFERER} users\.skynet\.be.* [NC,OR]
355
+ RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(http|https):// [NC,OR]
356
  RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [NC,OR]
357
  RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC,OR]
358
  RewriteCond %{QUERY_STRING} \=PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC,OR]
359
  RewriteCond %{QUERY_STRING} (\.\./|%2e%2e%2f|%2e%2e/|\.\.%2f|%2e\.%2f|%2e\./|\.%2e%2f|\.%2e/) [NC,OR]
360
  RewriteCond %{QUERY_STRING} ftp\: [NC,OR]
361
+ RewriteCond %{QUERY_STRING} (http|https)\: [NC,OR]
 
362
  RewriteCond %{QUERY_STRING} \=\|w\| [NC,OR]
363
  RewriteCond %{QUERY_STRING} ^(.*)/self/(.*)$ [NC,OR]
364
+ RewriteCond %{QUERY_STRING} ^(.*)cPath=(http|https)://(.*)$ [NC,OR]
365
  RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
366
  RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
367
  RewriteCond %{QUERY_STRING} (\<|%3C).*embed.*(\>|%3E) [NC,OR]
1003
  }
1004
  }
1005
 
1006
+ function bpsSetupWizardMUToolsPresave() {
1007
+
1008
+ $MUTools_Options = get_option('bulletproof_security_options_MU_tools_free');
1009
+
1010
+ $bps_mu_tools1 = ! $MUTools_Options['bps_mu_tools_timestamp'] ? time() + 300 : $MUTools_Options['bps_mu_tools_timestamp'];
1011
+ $bps_mu_tools2 = ! $MUTools_Options['bps_mu_tools_enable_disable_autoupdate'] ? 'disable' : $MUTools_Options['bps_mu_tools_enable_disable_autoupdate'];
1012
+ $bps_mu_tools3 = ! $MUTools_Options['bps_mu_tools_enable_disable_deactivation'] ? 'enable' : $MUTools_Options['bps_mu_tools_enable_disable_deactivation'];
1013
+
1014
+ $MUTools_Option_settings = array(
1015
+ 'bps_mu_tools_timestamp' => $bps_mu_tools1,
1016
+ 'bps_mu_tools_enable_disable_autoupdate' => $bps_mu_tools2,
1017
+ 'bps_mu_tools_enable_disable_deactivation' => $bps_mu_tools3
1018
+ );
1019
+
1020
+ foreach ( $MUTools_Option_settings as $key => $value ) {
1021
+ update_option('bulletproof_security_options_MU_tools_free', $MUTools_Option_settings);
1022
+ }
1023
+ }
1024
+
1025
  ?>
admin/wizard/wizard.php CHANGED
@@ -27,6 +27,49 @@ if ( $ScrollTop_options['bps_scrolltop'] != 'Off' ) {
27
  bpsPro_Browser_UA_scroll_animation();
28
  }
29
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  ?>
31
 
32
  <?php
@@ -69,6 +112,8 @@ $bpsSpacePop = '-------------------------------------------------------------';
69
 
70
  if ( isset( $_POST['Submit-Setup-Wizard'] ) ) {
71
  require_once( WP_PLUGIN_DIR . '/bulletproof-security/admin/wizard/wizard-functions.php' );
 
 
72
  }
73
 
74
  // Wizard Prep: Apache Module directive check to get and create the apache modules and htaccess files enabled|disabled DB options/values.
@@ -176,6 +221,9 @@ $sapi_type = php_sapi_name();
176
 
177
  echo '<span class="setup-wizard-checks-text">';
178
 
 
 
 
179
  if ( @substr($sapi_type, 0, 6) != 'apache' && get_filesystem_method() == 'direct') {
180
  echo $successTextBegin.__('Pass! Compatible Server Configuration: Server API: CGI | WP Filesystem API Method: direct.', 'bulletproof-security').$successTextEnd;
181
  }
@@ -278,6 +326,7 @@ switch ( $memoryLimit ) {
278
  echo $failTextBegin.__('Error: The ', 'bulletproof-security').$defaultHtaccess.__(' File is NOT writable. If your Server type is DSO and the WP Filesystem API Method is NOT "direct" you can use the Setup Wizard, but you must first make some one-time manual changes to your website before running the Setup Wizard. Please click this Forum Link for instructions: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/dso-setup-steps/" target="_blank" title="Link opens in a new Browser window"><strong>'.__('DSO Setup Steps', 'bulletproof-security').'</a>'.__(' If your Server type is CGI check the file permissions. File permissions should be either 644 or 604.', 'bulletproof-security').$failTextEnd.'<br>';
279
  }
280
 
 
281
  echo '</span>';
282
  echo '</div>';
283
  }
@@ -336,8 +385,29 @@ $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
336
 
337
  echo '<span class="setup-wizard-checks-text">';
338
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
339
  echo '<div style="color:black;font-size:1.13em;font-weight:bold;margin-bottom:15px;">'.__('BulletProof Security Database Tables Setup', 'bulletproof-security').'</div>';
340
- echo '<div id="SWDBTables" style="border-top:3px solid #999999;margin-top:-10px;"><p>';
341
 
342
  if ( $wpdb->get_var( $wpdb->prepare( "SHOW TABLES LIKE %s", $Stable_name ) ) == $Stable_name ) {
343
  echo $successTextBegin.$Stable_name.$successMessage.$successTextEnd;
@@ -360,7 +430,7 @@ $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
360
  echo '</p></div>';
361
 
362
  echo '<div style="color:black;font-size:1.13em;font-weight:bold;margin-bottom:15px;">'.__('BulletProof Security Core Folders Setup', 'bulletproof-security').'</div>';
363
- echo '<div id="SWFolders" style="border-top:3px solid #999999;margin-top:-10px;"><p>';
364
 
365
  $successMessage2 = __(' Folder created Successfully!', 'bulletproof-security');
366
  $failMessage2 = __('Error: Unable to create Folder ', 'bulletproof-security');
@@ -386,7 +456,7 @@ $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
386
  echo '</p></div>';
387
 
388
  echo '<div style="color:black;font-size:1.13em;font-weight:bold;margin-bottom:15px;">'.__('BulletProof Security Core Files Setup', 'bulletproof-security').'</div>';
389
- echo '<div id="SWFiles" style="border-top:3px solid #999999;margin-top:-10px;"><p>';
390
 
391
  $successMessage3 = __(' File created or updated Successfully!', 'bulletproof-security');
392
  $failMessage3 = __('Error: Unable to create or update File ', 'bulletproof-security');
@@ -516,7 +586,7 @@ $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
516
  echo '</p></div>';
517
 
518
  echo '<div style="color:black;font-size:1.13em;font-weight:bold;margin-bottom:15px;">'.__('BulletProof Security DB Backup Setup', 'bulletproof-security').'</div>';
519
- echo '<div id="DBBackup" style="border-top:3px solid #999999;margin-top:-10px;"><p>';
520
 
521
  bpsSetupWizard_dbbackup_folder_check();
522
 
@@ -537,7 +607,7 @@ $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
537
  echo '</p></div>';
538
 
539
  echo '<div style="color:black;font-size:1.13em;font-weight:bold;margin-bottom:15px;">'.__('BulletProof Security Hidden Plugin Folders|Files (HPF) Setup', 'bulletproof-security').'</div>';
540
- echo '<div id="HPFoptions" style="border-top:3px solid #999999;margin-top:-10px;"><p>';
541
 
542
  $hpf_successMessage = __(' DB Option created or updated Successfully!', 'bulletproof-security');
543
  $hpf_cron = get_option('bulletproof_security_options_hpf_cron');
@@ -573,25 +643,29 @@ $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
573
  echo '</p></div>';
574
 
575
  echo '<div style="color:black;font-size:1.13em;font-weight:bold;margin-bottom:15px;">'.__('BulletProof Security Security Log User Agent Filter Setup', 'bulletproof-security').'</div>';
576
- echo '<div id="SLuserAgentFilter" style="border-top:3px solid #999999;margin-top:-10px;"><p>';
577
  bpsSetupWizard_autoupdate_useragent_filters();
578
 
579
  // .52.7: Set Security Log Limit POST Request Body Data option to checked/limited by default
580
- $bps_seclog_post_limit_Options = 'bulletproof_security_options_sec_log_post_limit';
 
 
581
 
582
- $seclog_post_limit_Options = array( 'bps_security_log_post_limit' => '1' );
 
 
 
 
583
 
584
- if ( ! get_option( $bps_seclog_post_limit_Options ) ) {
585
-
586
- foreach( $seclog_post_limit_Options as $key => $value ) {
587
- update_option('bulletproof_security_options_sec_log_post_limit', $seclog_post_limit_Options);
588
  }
589
- }
590
 
591
  echo '</p></div>';
592
 
593
  echo '<div style="color:black;font-size:1.13em;font-weight:bold;margin-bottom:15px;">'.__('BulletProof Security Email Alerting & Log File Options Setup', 'bulletproof-security').'</div>';
594
- echo '<div id="SWSmonitor" style="border-top:3px solid #999999;margin-top:-10px;"><p>';
595
 
596
  $admin_email = get_option('admin_email');
597
  $successMessage7 = __(' DB Option created or updated Successfully!', 'bulletproof-security');
@@ -628,14 +702,14 @@ $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
628
  echo '</p></div>';
629
 
630
  echo '<div style="color:black;font-size:1.13em;font-weight:bold;margin-bottom:15px;">'.__('BulletProof Security Login Security & Monitoring Options Setup', 'bulletproof-security').'</div>';
631
- echo '<div id="SWLoginSecurity" style="border-top:3px solid #999999;margin-top:-10px;"><p>';
632
 
633
  $successMessage8 = __(' DB Option created or updated Successfully!', 'bulletproof-security');
634
 
635
- $woo_plugin_var = 'woocommerce/woocommerce.php';
636
- $woo_return_var = in_array( $woo_plugin_var, apply_filters('active_plugins', get_option('active_plugins')));
637
 
638
- if ( $woo_return_var == 1 ) {
639
  // .54.36: New installations of BPS should not display the WooCommerce Enable LSM option Dismiss Notice if WooCommerce is already installed.
640
  $bps_woo_lsm_jtc_options = array( 'bps_wizard_woo' => '1' );
641
 
@@ -688,7 +762,9 @@ $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
688
 
689
  // Custom Code - no echo/output: pre-save CC DB options for Custom Code Export|Import features ONLY if DB options do not exist
690
  bpsSetupWizardCustomCodePresave();
691
-
 
 
692
  echo '</p></div>';
693
 
694
  echo '</span>';
@@ -885,10 +961,11 @@ bpsSetupWizardPrechecks();
885
  ?>
886
 
887
  <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 />
888
- <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 /><br />
889
-
 
890
  <?php
891
- $dialog_text = '<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');
892
  echo $dialog_text;
893
  ?>
894
  </td>
@@ -897,6 +974,18 @@ bpsSetupWizardPrechecks();
897
 
898
  </div>
899
 
 
 
 
 
 
 
 
 
 
 
 
 
900
  <form name="SetupWizardGDMW" action="options.php#bps-tabs-2" method="post">
901
  <?php settings_fields('bulletproof_security_options_GDMW'); ?>
902
  <?php $GDMWoptions = get_option('bulletproof_security_options_GDMW'); ?>
27
  bpsPro_Browser_UA_scroll_animation();
28
  }
29
  }
30
+
31
+ ## Preloads the w3tc_dashboard page in an iFrame, which writes W3TC htaccess code to the Root htaccess file ONLY if W3TC htaccess code does not already exist.
32
+ // The iFrame cannot be loaded in this function: bpsPro_Pwizard_Autofix_W3TC() because things do not happen in time for processing data due to a delay in loading the iFrame.
33
+ // Unlock the Root htaccess file if it is locked. Force generate W3TC htaccess code in the Root htaccess file by loading the W3TC Dashboard page in an iFrame.
34
+ // Unlock the wp-config.php file if it is locked, writes the WPSC wp-config.php code.
35
+ function bpsPro_w3tc_dashboard_iframe_preload() {
36
+
37
+ if ( isset( $_POST['Submit-Setup-Wizard'] ) ) {
38
+ return;
39
+ }
40
+
41
+ $w3tc_plugin = 'w3-total-cache/w3-total-cache.php';
42
+ $w3tc_plugin_active = in_array( $w3tc_plugin, apply_filters('active_plugins', get_option('active_plugins')));
43
+
44
+ if ( $w3tc_plugin_active == 1 || is_plugin_active_for_network( $w3tc_plugin ) ) {
45
+
46
+ $rootHtaccess = ABSPATH . '.htaccess';
47
+
48
+ if ( file_exists($rootHtaccess) ) {
49
+
50
+ $wpconfig = ABSPATH . 'wp-config.php';
51
+ $sapi_type = php_sapi_name();
52
+ $perms_wpconfig = @substr(sprintf('%o', fileperms($wpconfig)), -4);
53
+ $permsRootHtaccess = @substr(sprintf('%o', fileperms($rootHtaccess)), -4);
54
+
55
+ if ( @substr($sapi_type, 0, 6) != 'apache' || @$perms_wpconfig != '0666' || @$perms_wpconfig != '0777' ) {
56
+ @chmod( $wpconfig, 0644 );
57
+ }
58
+
59
+ if ( @substr($sapi_type, 0, 6) != 'apache' || @$permsRootHtaccess != '0666' || @$permsRootHtaccess != '0777' ) {
60
+ chmod( $rootHtaccess, 0644 );
61
+ }
62
+
63
+ if ( is_multisite() ) {
64
+ echo '<iframe src="'.network_admin_url( 'admin.php?page=w3tc_dashboard' ).'" style="width:0;height:0;border:0;border:none;"></iframe>';
65
+ } else {
66
+ echo '<iframe src="'.admin_url( 'admin.php?page=w3tc_dashboard' ).'" style="width:0;height:0;border:0;border:none;"></iframe>';
67
+ }
68
+ }
69
+ }
70
+ }
71
+
72
+ bpsPro_w3tc_dashboard_iframe_preload();
73
  ?>
74
 
75
  <?php
112
 
113
  if ( isset( $_POST['Submit-Setup-Wizard'] ) ) {
114
  require_once( WP_PLUGIN_DIR . '/bulletproof-security/admin/wizard/wizard-functions.php' );
115
+ require_once( WP_PLUGIN_DIR . '/bulletproof-security/admin/wizard/pwizard-autofix.php' );
116
+ require_once( WP_PLUGIN_DIR . '/bulletproof-security/admin/wizard/pwizard-autofix-setup.php' );
117
  }
118
 
119
  // Wizard Prep: Apache Module directive check to get and create the apache modules and htaccess files enabled|disabled DB options/values.
221
 
222
  echo '<span class="setup-wizard-checks-text">';
223
 
224
+ echo '<div style="color:black;font-size:1.13em;font-weight:bold;margin-bottom:0px;margin-top:10px;">'.__('Compatibility & Basic Checks', 'bulletproof-security').'</div>';
225
+ echo '<div id="pw-compatibility" style="border-top:3px solid #999999;border-bottom:3px solid #999999;margin-top:0px;"><p>';
226
+
227
  if ( @substr($sapi_type, 0, 6) != 'apache' && get_filesystem_method() == 'direct') {
228
  echo $successTextBegin.__('Pass! Compatible Server Configuration: Server API: CGI | WP Filesystem API Method: direct.', 'bulletproof-security').$successTextEnd;
229
  }
326
  echo $failTextBegin.__('Error: The ', 'bulletproof-security').$defaultHtaccess.__(' File is NOT writable. If your Server type is DSO and the WP Filesystem API Method is NOT "direct" you can use the Setup Wizard, but you must first make some one-time manual changes to your website before running the Setup Wizard. Please click this Forum Link for instructions: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/dso-setup-steps/" target="_blank" title="Link opens in a new Browser window"><strong>'.__('DSO Setup Steps', 'bulletproof-security').'</a>'.__(' If your Server type is CGI check the file permissions. File permissions should be either 644 or 604.', 'bulletproof-security').$failTextEnd.'<br>';
327
  }
328
 
329
+ echo '</p></div><br>'; // end Compatibility & Basic Checks visual section divider
330
  echo '</span>';
331
  echo '</div>';
332
  }
385
 
386
  echo '<span class="setup-wizard-checks-text">';
387
 
388
+ // 2.0: Setup Wizard AutoFix (AutoWhitelist|AutoSetup|AutoCleanup): Create & Save Custom Code
389
+ echo '<div style="color:black;font-size:1.13em;font-weight:bold;margin-bottom:0px;margin-top:10px;">'.__('AutoFix (AutoWhitelist|AutoSetup|AutoCleanup)', 'bulletproof-security').'</div>';
390
+ echo '<div id="pw-autofix" style="border-top:3px solid #999999;border-bottom:3px solid #999999;margin-top:0px;"><p>';
391
+
392
+ // AutoWhitelist functions
393
+ bpsPro_Pwizard_Autofix_Request_methods();
394
+ bpsPro_Pwizard_Autofix_plugin_skip_bypass_root();
395
+ bpsPro_Pwizard_Autofix_RFI();
396
+ bpsPro_Pwizard_Autofix_BPSQSE_root();
397
+ bpsPro_Pwizard_Autofix_plugin_skip_bypass_wpadmin();
398
+ bpsPro_Pwizard_Autofix_BPSQSE_wpadmin();
399
+ // AutoSetup|AutoCleanup functions
400
+ bpsPro_Pwizard_Autofix_WPSC();
401
+ bpsPro_Pwizard_Autofix_W3TC();
402
+ bpsPro_Pwizard_Autofix_Comet_Cache();
403
+ bpsPro_Pwizard_Autofix_Endurance();
404
+ bpsPro_Pwizard_Autofix_WPFC();
405
+ bpsPro_Pwizard_Autofix_WPR();
406
+
407
+ echo '</p></div>';
408
+
409
  echo '<div style="color:black;font-size:1.13em;font-weight:bold;margin-bottom:15px;">'.__('BulletProof Security Database Tables Setup', 'bulletproof-security').'</div>';
410
+ echo '<div id="SWDBTables" style="border-top:3px solid #999999;border-bottom:3px solid #999999;margin-top:-10px;"><p>';
411
 
412
  if ( $wpdb->get_var( $wpdb->prepare( "SHOW TABLES LIKE %s", $Stable_name ) ) == $Stable_name ) {
413
  echo $successTextBegin.$Stable_name.$successMessage.$successTextEnd;
430
  echo '</p></div>';
431
 
432
  echo '<div style="color:black;font-size:1.13em;font-weight:bold;margin-bottom:15px;">'.__('BulletProof Security Core Folders Setup', 'bulletproof-security').'</div>';
433
+ echo '<div id="SWFolders" style="border-top:3px solid #999999;border-bottom:3px solid #999999;margin-top:-10px;"><p>';
434
 
435
  $successMessage2 = __(' Folder created Successfully!', 'bulletproof-security');
436
  $failMessage2 = __('Error: Unable to create Folder ', 'bulletproof-security');
456
  echo '</p></div>';
457
 
458
  echo '<div style="color:black;font-size:1.13em;font-weight:bold;margin-bottom:15px;">'.__('BulletProof Security Core Files Setup', 'bulletproof-security').'</div>';
459
+ echo '<div id="SWFiles" style="border-top:3px solid #999999;border-bottom:3px solid #999999;margin-top:-10px;"><p>';
460
 
461
  $successMessage3 = __(' File created or updated Successfully!', 'bulletproof-security');
462
  $failMessage3 = __('Error: Unable to create or update File ', 'bulletproof-security');
586
  echo '</p></div>';
587
 
588
  echo '<div style="color:black;font-size:1.13em;font-weight:bold;margin-bottom:15px;">'.__('BulletProof Security DB Backup Setup', 'bulletproof-security').'</div>';
589
+ echo '<div id="DBBackup" style="border-top:3px solid #999999;border-bottom:3px solid #999999;margin-top:-10px;"><p>';
590
 
591
  bpsSetupWizard_dbbackup_folder_check();
592
 
607
  echo '</p></div>';
608
 
609
  echo '<div style="color:black;font-size:1.13em;font-weight:bold;margin-bottom:15px;">'.__('BulletProof Security Hidden Plugin Folders|Files (HPF) Setup', 'bulletproof-security').'</div>';
610
+ echo '<div id="HPFoptions" style="border-top:3px solid #999999;border-bottom:3px solid #999999;margin-top:-10px;"><p>';
611
 
612
  $hpf_successMessage = __(' DB Option created or updated Successfully!', 'bulletproof-security');
613
  $hpf_cron = get_option('bulletproof_security_options_hpf_cron');
643
  echo '</p></div>';
644
 
645
  echo '<div style="color:black;font-size:1.13em;font-weight:bold;margin-bottom:15px;">'.__('BulletProof Security Security Log User Agent Filter Setup', 'bulletproof-security').'</div>';
646
+ echo '<div id="SLuserAgentFilter" style="border-top:3px solid #999999;border-bottom:3px solid #999999;margin-top:-10px;"><p>';
647
  bpsSetupWizard_autoupdate_useragent_filters();
648
 
649
  // .52.7: Set Security Log Limit POST Request Body Data option to checked/limited by default
650
+ $SecLog_post_limit_Options = get_option('bulletproof_security_options_sec_log_post_limit');
651
+
652
+ if ( ! $SecLog_post_limit_Options['bps_security_log_post_none'] ) {
653
 
654
+ $SecLog_post_limit_settings = array(
655
+ 'bps_security_log_post_limit' => '',
656
+ 'bps_security_log_post_none' => '1',
657
+ 'bps_security_log_post_max' => ''
658
+ );
659
 
660
+ foreach( $SecLog_post_limit_settings as $key => $value ) {
661
+ update_option('bulletproof_security_options_sec_log_post_limit', $SecLog_post_limit_settings);
 
 
662
  }
663
+ }
664
 
665
  echo '</p></div>';
666
 
667
  echo '<div style="color:black;font-size:1.13em;font-weight:bold;margin-bottom:15px;">'.__('BulletProof Security Email Alerting & Log File Options Setup', 'bulletproof-security').'</div>';
668
+ echo '<div id="SWSmonitor" style="border-top:3px solid #999999;border-bottom:3px solid #999999;margin-top:-10px;"><p>';
669
 
670
  $admin_email = get_option('admin_email');
671
  $successMessage7 = __(' DB Option created or updated Successfully!', 'bulletproof-security');
702
  echo '</p></div>';
703
 
704
  echo '<div style="color:black;font-size:1.13em;font-weight:bold;margin-bottom:15px;">'.__('BulletProof Security Login Security & Monitoring Options Setup', 'bulletproof-security').'</div>';
705
+ echo '<div id="SWLoginSecurity" style="border-top:3px solid #999999;border-bottom:3px solid #999999;margin-top:-10px;"><p>';
706
 
707
  $successMessage8 = __(' DB Option created or updated Successfully!', 'bulletproof-security');
708
 
709
+ $woo_plugin = 'woocommerce/woocommerce.php';
710
+ $woo_plugin_active = in_array( $woo_plugin, apply_filters('active_plugins', get_option('active_plugins')));
711
 
712
+ if ( $woo_plugin_active == 1 || is_plugin_active_for_network( $woo_plugin ) ) {
713
  // .54.36: New installations of BPS should not display the WooCommerce Enable LSM option Dismiss Notice if WooCommerce is already installed.
714
  $bps_woo_lsm_jtc_options = array( 'bps_wizard_woo' => '1' );
715
 
762
 
763
  // Custom Code - no echo/output: pre-save CC DB options for Custom Code Export|Import features ONLY if DB options do not exist
764
  bpsSetupWizardCustomCodePresave();
765
+ // BPS MU Tools - no echo/output: pre-save MU Tools DB options for new BPS installations.
766
+ bpsSetupWizardMUToolsPresave();
767
+
768
  echo '</p></div>';
769
 
770
  echo '</span>';
961
  ?>
962
 
963
  <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 />
964
+ <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 />
965
+ <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 />
966
+
967
  <?php
968
+ $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');
969
  echo $dialog_text;
970
  ?>
971
  </td>
974
 
975
  </div>
976
 
977
+ <form name="AutoFix" action="options.php#bps-tabs-2" method="post">
978
+ <?php settings_fields('bulletproof_security_options_wizard_autofix'); ?>
979
+ <?php $AutoFix_Options = get_option('bulletproof_security_options_wizard_autofix'); ?>
980
+
981
+ <strong><label for="auto-fix"><?php _e('AutoFix (AutoWhitelist|AutoSetup|AutoCleanup):', 'bulletproof-security'); ?></label></strong><br />
982
+ <select name="bulletproof_security_options_wizard_autofix[bps_wizard_autofix]" class="form-300" style="margin-top:5px;">
983
+ <option value="On" <?php selected('On', $AutoFix_Options['bps_wizard_autofix']); ?>><?php _e('AutoFix On', 'bulletproof-security'); ?></option>
984
+ <option value="Off" <?php selected('Off', $AutoFix_Options['bps_wizard_autofix']); ?>><?php _e('AutoFix Off', 'bulletproof-security'); ?></option>
985
+ </select><br />
986
+ <input type="submit" name="Submit-AutoFix" class="button bps-button" style="margin:10px 0px 20px 0px;" value="<?php esc_attr_e('Save AutoFix Option', 'bulletproof-security') ?>" />
987
+ </form>
988
+
989
  <form name="SetupWizardGDMW" action="options.php#bps-tabs-2" method="post">
990
  <?php settings_fields('bulletproof_security_options_GDMW'); ?>
991
  <?php $GDMWoptions = get_option('bulletproof_security_options_GDMW'); ?>
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; .htaccess Website Security Protection (Firewalls) &bull; Security Logging|HTTP Error Logging &bull; DB Backup &bull; DB Table Prefix Changer &bull; Login Security & Monitoring &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: 1.1
9
  Author: AITpro | Edward Alexander
10
  Author URI: https://forum.ait-pro.com/read-me-first/
11
  */
@@ -28,9 +28,9 @@ Author URI: https://forum.ait-pro.com/read-me-first/
28
  */
29
 
30
  // BPS variables
31
- define( 'BULLETPROOF_VERSION', '1.1' );
32
- $bps_last_version = '1.0';
33
- $bps_version = '1.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>';
@@ -48,7 +48,11 @@ function bulletproof_security_load_plugin_textdomain() {
48
 
49
  // BPS upgrade functions
50
  require_once( WP_PLUGIN_DIR . '/bulletproof-security/includes/functions.php' );
51
- // BPS HUD Dimiss functions
 
 
 
 
52
  require_once( WP_PLUGIN_DIR . '/bulletproof-security/includes/hud-dismiss-functions.php' );
53
  // BPS Zip & Email Log File Cron functions
54
  require_once( WP_PLUGIN_DIR . '/bulletproof-security/includes/zip-email-cron-functions.php' );
5
  Text Domain: bulletproof-security
6
  Domain Path: /languages/
7
  Description: <strong>Feature Highlights:</strong> Setup Wizard &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; 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: 2.0
9
  Author: AITpro | Edward Alexander
10
  Author URI: https://forum.ait-pro.com/read-me-first/
11
  */
28
  */
29
 
30
  // BPS variables
31
+ define( 'BULLETPROOF_VERSION', '2.0' );
32
+ $bps_last_version = '1.1';
33
+ $bps_version = '2.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>';
48
 
49
  // BPS upgrade functions
50
  require_once( WP_PLUGIN_DIR . '/bulletproof-security/includes/functions.php' );
51
+ // BPS HUD Dimiss functions - includes AutoFix AutoSetup checks
52
+ require_once( WP_PLUGIN_DIR . '/bulletproof-security/includes/hud-autofix-setup.php' );
53
+ // BPS HUD Dimiss functions - includes AutoFix AutoWhitelist checks
54
+ require_once( WP_PLUGIN_DIR . '/bulletproof-security/includes/hud-autofix-whitelist.php' );
55
+ // BPS HUD Dimiss functions - General Error Checks & Misc checks
56
  require_once( WP_PLUGIN_DIR . '/bulletproof-security/includes/hud-dismiss-functions.php' );
57
  // BPS Zip & Email Log File Cron functions
58
  require_once( WP_PLUGIN_DIR . '/bulletproof-security/includes/zip-email-cron-functions.php' );
includes/functions.php CHANGED
@@ -297,6 +297,11 @@ function bps_root_htaccess_status_dashboard() {
297
  $pattern17 = '/#\sNEVER\sCOMMENT\sOUT\sTHIS\sLINE\sOF\sCODE\sBELOW\sFOR\sANY\sREASON(\s*){1}#{1,}(\s|){1,}RewriteCond\s%\{REQUEST_URI\}\s\!\^\.\*\/wp-admin\/\s\[NC\]/';
298
  $pattern18 = '/#\sREQUEST\sMETHODS\sFILTERED(.*)RewriteCond\s\%\{REQUEST_METHOD\}\s\^\(HEAD\|TRACE\|DELETE\|TRACK\|DEBUG\)\s\[NC\](\s*){1}RewriteRule\s\^\(\.\*\)\$\s\-\s\[F\]/s';
299
  $pattern19 = '/RewriteRule\s\^\(\.\*\)\$\s\-\s\[R=405,L\]/';
 
 
 
 
 
300
  // BPS 1.0: version numbering change. The string replace is on line 365
301
  $BPSVpattern = '/BULLETPROOF\s\.[\d](.*)[\>]/';
302
  $BPSVpattern2 = '/BULLETPROOF\s[\d]\.[\d]/';
@@ -398,6 +403,28 @@ switch ( $bps_version ) {
398
  $stringReplace = preg_replace( $pattern19, "RewriteRule ^(.*)$ " . $bps_get_wp_root_secure . $bps_plugin_dir . "/bulletproof-security/405.php [L]", $stringReplace);
399
  }
400
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
401
  if ( preg_match($pattern1, $stringReplace, $matches) ) {
402
  $stringReplace = preg_replace('/#\sFORBID\sEMPTY\sREFFERER\sSPAMBOTS(.*)RewriteCond\s%{HTTP_USER_AGENT}\s\^\$\sRewriteRule\s\.\*\s\-\s\[F\]/s', '', $stringReplace);
403
  }
@@ -560,7 +587,11 @@ function bps_wpadmin_htaccess_status_dashboard() {
560
  $pattern10c = '/RewriteCond\s%\{THE_REQUEST\}\s\(\\\\?.*%2a\)\+\(%20\+\|\\\\s\+.*HTTP\(:\/.*\[NC,OR\]/';
561
  $pattern1 = '/(\[|\]|\(|\)|<|>)/s';
562
  $pattern_amod = '/#\sWPADMIN\sDENY\sBROWSER\sACCESS\sTO\sFILES(.*\s*){13,16}#\sEND\sBPS\sWPADMIN\sDENY\sACCESS\sTO\sFILES/';
563
-
 
 
 
 
564
  $BPSVpattern = '/BULLETPROOF\s\.[\d](.*)WP-ADMIN/';
565
  $BPSVpattern2 = '/BULLETPROOF\s[\d]\.[\d]\sWP-ADMIN/';
566
  $BPSVreplace = "BULLETPROOF $bps_version WP-ADMIN";
@@ -625,6 +656,10 @@ switch ( $bps_version ) {
625
  $stringReplace = preg_replace( $pattern_amod, "# WPADMIN DENY BROWSER ACCESS TO FILES\n# Deny Browser access to /wp-admin/install.php\n# Use BPS Custom Code to modify/edit/change this code and to save it permanently.\n# To be able to view the install.php file from a Browser, replace 127.0.0.1 with your actual\n# current IP address. Comment out: #Deny from all and Uncomment: Allow from 127.0.0.1\n# Note: The BPS System Info page displays which modules are loaded on your server.\n\n# BEGIN BPS WPADMIN DENY ACCESS TO FILES\n<FilesMatch \"^(install\.php)\">\nOrder Allow,Deny\nDeny from all\n#Allow from 127.0.0.1\n</FilesMatch>\n# END BPS WPADMIN DENY ACCESS TO FILES", $stringReplace);
626
  }
627
 
 
 
 
 
628
  if ( preg_match($pattern10a, $stringReplace, $matches) ) {
629
  $stringReplace = preg_replace( $pattern10a, "RewriteCond %{THE_REQUEST} (\?|\*|%2a)+(%20+|\\\\\s+|%20+\\\\\s+|\\\\\s+%20+|\\\\\s+%20+\\\\\s+)HTTP(:/|/) [NC,OR]", $stringReplace);
630
  }
@@ -637,6 +672,23 @@ switch ( $bps_version ) {
637
  $stringReplace = preg_replace( $pattern10c, "RewriteCond %{THE_REQUEST} (\?|\*|%2a)+(%20+|\\\\\s+|%20+\\\\\s+|\\\\\s+%20+|\\\\\s+%20+\\\\\s+)HTTP(:/|/) [NC,OR]", $stringReplace);
638
  }
639
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
640
  if ( preg_match($pattern1, $stringReplace, $matches) ) {
641
  $stringReplace = str_replace("RewriteCond %{QUERY_STRING} ^.*(\[|\]|\(|\)|<|>).* [NC,OR]", "RewriteCond %{QUERY_STRING} ^.*(\(|\)|<|>).* [NC,OR]", $stringReplace);
642
  }
297
  $pattern17 = '/#\sNEVER\sCOMMENT\sOUT\sTHIS\sLINE\sOF\sCODE\sBELOW\sFOR\sANY\sREASON(\s*){1}#{1,}(\s|){1,}RewriteCond\s%\{REQUEST_URI\}\s\!\^\.\*\/wp-admin\/\s\[NC\]/';
298
  $pattern18 = '/#\sREQUEST\sMETHODS\sFILTERED(.*)RewriteCond\s\%\{REQUEST_METHOD\}\s\^\(HEAD\|TRACE\|DELETE\|TRACK\|DEBUG\)\s\[NC\](\s*){1}RewriteRule\s\^\(\.\*\)\$\s\-\s\[F\]/s';
299
  $pattern19 = '/RewriteRule\s\^\(\.\*\)\$\s\-\s\[R=405,L\]/';
300
+ $pattern20 = '/RewriteRule\s\^\(\.\*\)\$(.*)\/bulletproof-security\/405\.php\s\[L\]/';
301
+ $pattern21 = '/RewriteCond\s%\{THE_REQUEST\}\s\(\\\?.*%2a\)\+\(%20.*HTTP\(:\/.*\[NC,OR\]/';
302
+ $pattern22 = '/RewriteCond\s%\{QUERY_STRING\}\s\[a-zA-Z0-9_\]=http:\/\/\s\[NC,OR\]/';
303
+ $pattern23 = '/RewriteCond\s%\{QUERY_STRING\}\s\^\(\.\*\)cPath=http:\/\/\(\.\*\)\$\s\[NC,OR\]/';
304
+ $pattern24 = '/RewriteCond\s%\{QUERY_STRING\}\shttp\\\:\s\[NC,OR\](.*\s*){1}.*RewriteCond\s%\{QUERY_STRING\}\shttps\\\:\s\[NC,OR\]/';
305
  // BPS 1.0: version numbering change. The string replace is on line 365
306
  $BPSVpattern = '/BULLETPROOF\s\.[\d](.*)[\>]/';
307
  $BPSVpattern2 = '/BULLETPROOF\s[\d]\.[\d]/';
403
  $stringReplace = preg_replace( $pattern19, "RewriteRule ^(.*)$ " . $bps_get_wp_root_secure . $bps_plugin_dir . "/bulletproof-security/405.php [L]", $stringReplace);
404
  }
405
 
406
+ // 2.0: Add R to the dumb downed Request Methods Filtered 405 htaccess code in the Root htaccess file.
407
+ if ( preg_match( $pattern20, $stringReplace, $matches ) ) {
408
+ $stringReplace = preg_replace( $pattern20, "RewriteRule ^(.*)$ " . $bps_get_wp_root_secure . $bps_plugin_dir . "/bulletproof-security/405.php [R,L]", $stringReplace);
409
+ }
410
+
411
+ // 2.0: Add additional https scheme conditions to 3 htaccess security rules and combine 2 rules into 1 rule.
412
+ if ( preg_match( $pattern21, $stringReplace, $matches ) ) {
413
+ $stringReplace = preg_replace( $pattern21, "RewriteCond %{THE_REQUEST} (\?|\*|%2a)+(%20+|\\\\\s+|%20+\\\\\s+|\\\\\s+%20+|\\\\\s+%20+\\\\\s+)(http|https)(:/|/) [NC,OR]", $stringReplace);
414
+ }
415
+
416
+ if ( preg_match( $pattern22, $stringReplace, $matches ) ) {
417
+ $stringReplace = preg_replace( $pattern22, "RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(http|https):// [NC,OR]", $stringReplace);
418
+ }
419
+
420
+ if ( preg_match( $pattern23, $stringReplace, $matches ) ) {
421
+ $stringReplace = preg_replace( $pattern23, "RewriteCond %{QUERY_STRING} ^(.*)cPath=(http|https)://(.*)$ [NC,OR]", $stringReplace);
422
+ }
423
+
424
+ if ( preg_match( $pattern24, $stringReplace, $matches ) ) {
425
+ $stringReplace = preg_replace( $pattern24, "RewriteCond %{QUERY_STRING} (http|https)\: [NC,OR]", $stringReplace);
426
+ }
427
+
428
  if ( preg_match($pattern1, $stringReplace, $matches) ) {
429
  $stringReplace = preg_replace('/#\sFORBID\sEMPTY\sREFFERER\sSPAMBOTS(.*)RewriteCond\s%{HTTP_USER_AGENT}\s\^\$\sRewriteRule\s\.\*\s\-\s\[F\]/s', '', $stringReplace);
430
  }
587
  $pattern10c = '/RewriteCond\s%\{THE_REQUEST\}\s\(\\\\?.*%2a\)\+\(%20\+\|\\\\s\+.*HTTP\(:\/.*\[NC,OR\]/';
588
  $pattern1 = '/(\[|\]|\(|\)|<|>)/s';
589
  $pattern_amod = '/#\sWPADMIN\sDENY\sBROWSER\sACCESS\sTO\sFILES(.*\s*){13,16}#\sEND\sBPS\sWPADMIN\sDENY\sACCESS\sTO\sFILES/';
590
+ $pattern21 = '/RewriteCond\s%\{THE_REQUEST\}\s\(\\\?.*%2a\)\+\(%20.*HTTP\(:\/.*\[NC,OR\]/';
591
+ $pattern22 = '/RewriteCond\s%\{QUERY_STRING\}\s\[a-zA-Z0-9_\]=http:\/\/\s\[NC,OR\]/';
592
+ $pattern23 = '/RewriteCond\s%\{QUERY_STRING\}\s\^\(\.\*\)cPath=http:\/\/\(\.\*\)\$\s\[NC,OR\]/';
593
+ $pattern24 = '/RewriteCond\s%\{QUERY_STRING\}\shttp\\\:\s\[NC,OR\](.*\s*){1}.*RewriteCond\s%\{QUERY_STRING\}\shttps\\\:\s\[NC,OR\]/';
594
+ $pattern25 = '/#\sREQUEST\sMETHODS\sFILTERED(.*\s*){1}RewriteEngine\sOn(.*\s*){1}RewriteCond(.*\s*){1}RewriteRule\s\^\(\.\*\)\$\s\-\s\[F\]/';
595
  $BPSVpattern = '/BULLETPROOF\s\.[\d](.*)WP-ADMIN/';
596
  $BPSVpattern2 = '/BULLETPROOF\s[\d]\.[\d]\sWP-ADMIN/';
597
  $BPSVreplace = "BULLETPROOF $bps_version WP-ADMIN";
656
  $stringReplace = preg_replace( $pattern_amod, "# WPADMIN DENY BROWSER ACCESS TO FILES\n# Deny Browser access to /wp-admin/install.php\n# Use BPS Custom Code to modify/edit/change this code and to save it permanently.\n# To be able to view the install.php file from a Browser, replace 127.0.0.1 with your actual\n# current IP address. Comment out: #Deny from all and Uncomment: Allow from 127.0.0.1\n# Note: The BPS System Info page displays which modules are loaded on your server.\n\n# BEGIN BPS WPADMIN DENY ACCESS TO FILES\n<FilesMatch \"^(install\.php)\">\nOrder Allow,Deny\nDeny from all\n#Allow from 127.0.0.1\n</FilesMatch>\n# END BPS WPADMIN DENY ACCESS TO FILES", $stringReplace);
657
  }
658
 
659
+ if ( preg_match( $pattern25, $stringReplace, $matches ) ) {
660
+ $stringReplace = preg_replace( $pattern25, "# BPS REWRITE ENGINE\nRewriteEngine On", $stringReplace);
661
+ }
662
+
663
  if ( preg_match($pattern10a, $stringReplace, $matches) ) {
664
  $stringReplace = preg_replace( $pattern10a, "RewriteCond %{THE_REQUEST} (\?|\*|%2a)+(%20+|\\\\\s+|%20+\\\\\s+|\\\\\s+%20+|\\\\\s+%20+\\\\\s+)HTTP(:/|/) [NC,OR]", $stringReplace);
665
  }
672
  $stringReplace = preg_replace( $pattern10c, "RewriteCond %{THE_REQUEST} (\?|\*|%2a)+(%20+|\\\\\s+|%20+\\\\\s+|\\\\\s+%20+|\\\\\s+%20+\\\\\s+)HTTP(:/|/) [NC,OR]", $stringReplace);
673
  }
674
 
675
+ // 2.0: Add additional https scheme conditions to 3 htaccess security rules and combine 2 rules into 1 rule.
676
+ if ( preg_match( $pattern21, $stringReplace, $matches ) ) {
677
+ $stringReplace = preg_replace( $pattern21, "RewriteCond %{THE_REQUEST} (\?|\*|%2a)+(%20+|\\\\\s+|%20+\\\\\s+|\\\\\s+%20+|\\\\\s+%20+\\\\\s+)(http|https)(:/|/) [NC,OR]", $stringReplace);
678
+ }
679
+
680
+ if ( preg_match( $pattern22, $stringReplace, $matches ) ) {
681
+ $stringReplace = preg_replace( $pattern22, "RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(http|https):// [NC,OR]", $stringReplace);
682
+ }
683
+
684
+ if ( preg_match( $pattern23, $stringReplace, $matches ) ) {
685
+ $stringReplace = preg_replace( $pattern23, "RewriteCond %{QUERY_STRING} ^(.*)cPath=(http|https)://(.*)$ [NC,OR]", $stringReplace);
686
+ }
687
+
688
+ if ( preg_match( $pattern24, $stringReplace, $matches ) ) {
689
+ $stringReplace = preg_replace( $pattern24, "RewriteCond %{QUERY_STRING} (http|https)\: [NC,OR]", $stringReplace);
690
+ }
691
+
692
  if ( preg_match($pattern1, $stringReplace, $matches) ) {
693
  $stringReplace = str_replace("RewriteCond %{QUERY_STRING} ^.*(\[|\]|\(|\)|<|>).* [NC,OR]", "RewriteCond %{QUERY_STRING} ^.*(\(|\)|<|>).* [NC,OR]", $stringReplace);
694
  }
includes/general-functions.php CHANGED
@@ -645,6 +645,172 @@ $file = ABSPATH . '.htaccess';
645
  }
646
  }
647
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
648
  // BPS upgrade: adds/updates/saves any new DB options, does cleanup & everything else.
649
  // This function is executed in this function: bpsPro_new_feature_autoupdate() which is executed ONLY during BPS upgrades.
650
  // .53.1: This function has been completely changed: literally checks if a DB option exists and has a value using ternary operations.
@@ -658,6 +824,79 @@ function bpsPro_new_version_db_options_files_autoupdate() {
658
 
659
  $user_id = $current_user->ID;
660
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
661
  // .54.6: New Sucuri Dismiss Notice check created. Delete the user_meta for this Dismiss Notice.
662
  delete_user_meta($user_id, 'bps_ignore_sucuri_notice');
663
 
@@ -872,18 +1111,6 @@ function bpsPro_new_version_db_options_files_autoupdate() {
872
  // .52.9: POST Request Attack Protection code correction|addition
873
  bpsPro_post_request_protection_check();
874
 
875
- // .52.7: Set Security Log Limit POST Request Body Data option to checked/limited by default
876
- $bps_seclog_post_limit_Options = 'bulletproof_security_options_sec_log_post_limit';
877
-
878
- $seclog_post_limit_Options = array( 'bps_security_log_post_limit' => '1' );
879
-
880
- if ( ! get_option( $bps_seclog_post_limit_Options ) ) {
881
-
882
- foreach( $seclog_post_limit_Options as $key => $value ) {
883
- update_option('bulletproof_security_options_sec_log_post_limit', $seclog_post_limit_Options);
884
- }
885
- }
886
-
887
  // BPS .52.6: Pre-save UI Theme Skin with Blue Theme if DB option does not exist
888
  bpsPro_presave_ui_theme_skin_options();
889
 
645
  }
646
  }
647
 
648
+ // 2.0: Add R to the dumb downed Request Methods Filtered 405 htaccess code in Root Custom Code.
649
+ // Add additional https scheme conditions to 3 htaccess security rules and combine 2 rules into 1 rule in Root and wp-admin Custom Code.
650
+ // Note: htmlspecialchars_decode() is not necessary.
651
+ function bpsPro_upgrade_CC_automatic_fix() {
652
+
653
+ $CC_Options_root = get_option('bulletproof_security_options_customcode');
654
+ $bps_get_wp_root_secure = bps_wp_get_root_folder();
655
+ $bps_plugin_dir = str_replace( ABSPATH, '', WP_PLUGIN_DIR );
656
+ $pattern1 = '/RewriteRule\s\^\(\.\*\)\$(.*)\/bulletproof-security\/405\.php\s\[L\]/';
657
+ $pattern2 = '/RewriteCond\s%\{THE_REQUEST\}\s\(\\\?.*%2a\)\+\(%20.*HTTP\(:\/.*\[NC,OR\]/';
658
+ $pattern3 = '/RewriteCond\s%\{QUERY_STRING\}\s\[a-zA-Z0-9_\]=http:\/\/\s\[NC,OR\]/';
659
+ $pattern4 = '/RewriteCond\s%\{QUERY_STRING\}\s\^\(\.\*\)cPath=http:\/\/\(\.\*\)\$\s\[NC,OR\]/';
660
+ $pattern5 = '/RewriteCond\s%\{QUERY_STRING\}\shttp\\\:\s\[NC,OR\](.*\s*){1}.*RewriteCond\s%\{QUERY_STRING\}\shttps\\\:\s\[NC,OR\]/';
661
+
662
+ if ( $CC_Options_root['bps_customcode_bpsqse'] != '' ) {
663
+
664
+ if ( preg_match( $pattern1, $CC_Options_root['bps_customcode_request_methods'] ) ) {
665
+ $bps_customcode_request_methods = preg_replace( $pattern1, "RewriteRule ^(.*)$ " . $bps_get_wp_root_secure . $bps_plugin_dir . "/bulletproof-security/405.php [R,L]", $CC_Options_root['bps_customcode_request_methods']);
666
+ }
667
+
668
+ } else {
669
+ $bps_customcode_request_methods = $CC_Options_root['bps_customcode_request_methods'];
670
+ }
671
+
672
+ if ( $CC_Options_root['bps_customcode_bpsqse'] != '' ) {
673
+
674
+ if ( preg_match( $pattern2, $CC_Options_root['bps_customcode_bpsqse'], $matches ) ) {
675
+ $p2 = array($pattern2);
676
+ $r2 = array("RewriteCond %{THE_REQUEST} (\?|\*|%2a)+(%20+|\\\\\s+|%20+\\\\\s+|\\\\\s+%20+|\\\\\s+%20+\\\\\s+)(http|https)(:/|/) [NC,OR]");
677
+ } else {
678
+ $p2 = array();
679
+ $r2 = array();
680
+ }
681
+
682
+ if ( preg_match( $pattern3, $CC_Options_root['bps_customcode_bpsqse'], $matches ) ) {
683
+ $p3 = array($pattern3);
684
+ $r3 = array("RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(http|https):// [NC,OR]");
685
+ } else {
686
+ $p3 = array();
687
+ $r3 = array();
688
+ }
689
+
690
+ if ( preg_match( $pattern4, $CC_Options_root['bps_customcode_bpsqse'], $matches ) ) {
691
+ $p4 = array($pattern4);
692
+ $r4 = array("RewriteCond %{QUERY_STRING} ^(.*)cPath=(http|https)://(.*)$ [NC,OR]");
693
+ } else {
694
+ $p4 = array();
695
+ $r4 = array();
696
+ }
697
+
698
+ if ( preg_match( $pattern5, $CC_Options_root['bps_customcode_bpsqse'], $matches ) ) {
699
+ $p5 = array($pattern5);
700
+ $r5 = array("RewriteCond %{QUERY_STRING} (http|https)\: [NC,OR]");
701
+ } else {
702
+ $p5 = array();
703
+ $r5 = array();
704
+ }
705
+
706
+ $pattern_array = array_merge($p2, $p3, $p4, $p5);
707
+ $replace_array = array_merge($r2, $r3, $r4, $r5);
708
+ $bps_customcode_bpsqse_replace = preg_replace($pattern_array, $replace_array, $CC_Options_root['bps_customcode_bpsqse']);
709
+
710
+ } else {
711
+ $bps_customcode_bpsqse_replace = $CC_Options_root['bps_customcode_bpsqse'];
712
+ }
713
+
714
+ if ( ! is_multisite() ) {
715
+
716
+ $Root_CC_Options = array(
717
+ 'bps_customcode_one' => $CC_Options_root['bps_customcode_one'],
718
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
719
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
720
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
721
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
722
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
723
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
724
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
725
+ 'bps_customcode_request_methods' => $bps_customcode_request_methods,
726
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
727
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
728
+ 'bps_customcode_bpsqse' => $bps_customcode_bpsqse_replace,
729
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
730
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
731
+ );
732
+
733
+ } else {
734
+
735
+ $Root_CC_Options = array(
736
+ 'bps_customcode_one' => $CC_Options_root['bps_customcode_one'],
737
+ 'bps_customcode_server_signature' => $CC_Options_root['bps_customcode_server_signature'],
738
+ 'bps_customcode_directory_index' => $CC_Options_root['bps_customcode_directory_index'],
739
+ 'bps_customcode_server_protocol' => $CC_Options_root['bps_customcode_server_protocol'],
740
+ 'bps_customcode_error_logging' => $CC_Options_root['bps_customcode_error_logging'],
741
+ 'bps_customcode_deny_dot_folders' => $CC_Options_root['bps_customcode_deny_dot_folders'],
742
+ 'bps_customcode_admin_includes' => $CC_Options_root['bps_customcode_admin_includes'],
743
+ 'bps_customcode_wp_rewrite_start' => $CC_Options_root['bps_customcode_wp_rewrite_start'],
744
+ 'bps_customcode_request_methods' => $bps_customcode_request_methods,
745
+ 'bps_customcode_two' => $CC_Options_root['bps_customcode_two'],
746
+ 'bps_customcode_timthumb_misc' => $CC_Options_root['bps_customcode_timthumb_misc'],
747
+ 'bps_customcode_bpsqse' => $bps_customcode_bpsqse_replace,
748
+ 'bps_customcode_wp_rewrite_end' => $CC_Options_root['bps_customcode_wp_rewrite_end'],
749
+ 'bps_customcode_deny_files' => $CC_Options_root['bps_customcode_deny_files'],
750
+ 'bps_customcode_three' => $CC_Options_root['bps_customcode_three']
751
+ );
752
+ }
753
+
754
+ foreach( $Root_CC_Options as $key => $value ) {
755
+ update_option('bulletproof_security_options_customcode', $Root_CC_Options);
756
+ }
757
+
758
+ $CC_Options_wpadmin = get_option('bulletproof_security_options_customcode_WPA');
759
+
760
+ if ( $CC_Options_wpadmin['bps_customcode_bpsqse_wpa'] != '' ) {
761
+
762
+ if ( preg_match( $pattern2, $CC_Options_wpadmin['bps_customcode_bpsqse_wpa'], $matches ) ) {
763
+ $p2 = array($pattern2);
764
+ $r2 = array("RewriteCond %{THE_REQUEST} (\?|\*|%2a)+(%20+|\\\\\s+|%20+\\\\\s+|\\\\\s+%20+|\\\\\s+%20+\\\\\s+)(http|https)(:/|/) [NC,OR]");
765
+ } else {
766
+ $p2 = array();
767
+ $r2 = array();
768
+ }
769
+
770
+ if ( preg_match( $pattern3, $CC_Options_wpadmin['bps_customcode_bpsqse_wpa'], $matches ) ) {
771
+ $p3 = array($pattern3);
772
+ $r3 = array("RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(http|https):// [NC,OR]");
773
+ } else {
774
+ $p3 = array();
775
+ $r3 = array();
776
+ }
777
+
778
+ if ( preg_match( $pattern4, $CC_Options_wpadmin['bps_customcode_bpsqse_wpa'], $matches ) ) {
779
+ $p4 = array($pattern4);
780
+ $r4 = array("RewriteCond %{QUERY_STRING} ^(.*)cPath=(http|https)://(.*)$ [NC,OR]");
781
+ } else {
782
+ $p4 = array();
783
+ $r4 = array();
784
+ }
785
+
786
+ if ( preg_match( $pattern5, $CC_Options_wpadmin['bps_customcode_bpsqse_wpa'], $matches ) ) {
787
+ $p5 = array($pattern5);
788
+ $r5 = array("RewriteCond %{QUERY_STRING} (http|https)\: [NC,OR]");
789
+ } else {
790
+ $p5 = array();
791
+ $r5 = array();
792
+ }
793
+
794
+ $pattern_array = array_merge($p2, $p3, $p4, $p5);
795
+ $replace_array = array_merge($r2, $r3, $r4, $r5);
796
+ $bps_customcode_bpsqse_wpa_replace = preg_replace($pattern_array, $replace_array, $CC_Options_wpadmin['bps_customcode_bpsqse_wpa']);
797
+
798
+ } else {
799
+ $bps_customcode_bpsqse_wpa_replace = $CC_Options_wpadmin['bps_customcode_bpsqse_wpa'];
800
+ }
801
+
802
+ $wpadmin_CC_Options = array(
803
+ 'bps_customcode_deny_files_wpa' => $CC_Options_wpadmin['bps_customcode_deny_files_wpa'],
804
+ 'bps_customcode_one_wpa' => $CC_Options_wpadmin['bps_customcode_one_wpa'],
805
+ 'bps_customcode_two_wpa' => $CC_Options_wpadmin['bps_customcode_two_wpa'],
806
+ 'bps_customcode_bpsqse_wpa' => $bps_customcode_bpsqse_wpa_replace
807
+ );
808
+
809
+ foreach( $wpadmin_CC_Options as $key => $value ) {
810
+ update_option('bulletproof_security_options_customcode_WPA', $wpadmin_CC_Options);
811
+ }
812
+ }
813
+
814
  // BPS upgrade: adds/updates/saves any new DB options, does cleanup & everything else.
815
  // This function is executed in this function: bpsPro_new_feature_autoupdate() which is executed ONLY during BPS upgrades.
816
  // .53.1: This function has been completely changed: literally checks if a DB option exists and has a value using ternary operations.
824
 
825
  $user_id = $current_user->ID;
826
 
827
+ // 2.0: New SBC Dismiss Notice check created: checks for redundant Browser caching code & the BPS NOCHECK Marker in BPS Custom Code
828
+ delete_user_meta($user_id, 'bpsPro_ignore_speed_boost_notice');
829
+ // 2.0: New Endurance Page Cache Dismiss Notice check created: A dismiss notice will only be displayed if: EPC is enabled and Cache level is 1,2,3,4
830
+ delete_user_meta($user_id, 'bpsPro_ignore_EPC_plugin_notice');
831
+ // 2.0: Delete these old Dismiss Notices permanently that are no longer being used
832
+ delete_user_meta($user_id, 'bps_ignore_BLC_notice');
833
+ delete_user_meta($user_id, 'bps_ignore_jetpack_notice');
834
+ delete_user_meta($user_id, 'bps_ignore_woocommerce_notice');
835
+
836
+ // 2.0: Changing the default option setting to: Do Not Log POST Request Body Data
837
+ // This will only update the db options 1 time if the bps_security_log_post_none DB option does not exist.
838
+ // .52.7: Set Security Log Limit POST Request Body Data option to checked/limited by default
839
+ $SecLog_post_limit_Options = get_option('bulletproof_security_options_sec_log_post_limit');
840
+
841
+ if ( ! $SecLog_post_limit_Options['bps_security_log_post_none'] ) {
842
+
843
+ $SecLog_post_limit_settings = array(
844
+ 'bps_security_log_post_limit' => '',
845
+ 'bps_security_log_post_none' => '1',
846
+ 'bps_security_log_post_max' => ''
847
+ );
848
+
849
+ foreach( $SecLog_post_limit_settings as $key => $value ) {
850
+ update_option('bulletproof_security_options_sec_log_post_limit', $SecLog_post_limit_settings);
851
+ }
852
+ }
853
+
854
+ // 2.0: Add R to the dumb downed Request Methods Filtered 405 htaccess code in Root Custom Code.
855
+ // Add additional https scheme conditions to 3 htaccess security rules and combine 2 rules into 1 rule in Root and wp-admin Custom Code.
856
+ bpsPro_upgrade_CC_automatic_fix();
857
+
858
+ // 2.0: Update and Pre-save the new BPS MU Tools DB options
859
+ // Delete the old bulletproof_security_options_autoupdate DB option
860
+ // Delete the old bps-plugin-autoupdate.php files
861
+ // Copy the new BPS MU Tools file to the /mu-plugins/ folder
862
+ $AutoUpdate_options = get_option('bulletproof_security_options_autoupdate');
863
+ $MUTools_Options = get_option('bulletproof_security_options_MU_tools_free');
864
+
865
+ if ( $AutoUpdate_options['bps_autoupdate'] == 'On' ) {
866
+ $bps_mu_tools2 = 'enable';
867
+ } else {
868
+ $bps_mu_tools2 = ! $MUTools_Options['bps_mu_tools_enable_disable_autoupdate'] ? 'disable' : $MUTools_Options['bps_mu_tools_enable_disable_autoupdate'];
869
+ }
870
+
871
+ $bps_mu_tools1 = ! $MUTools_Options['bps_mu_tools_timestamp'] ? time() + 300 : $MUTools_Options['bps_mu_tools_timestamp'];
872
+ $bps_mu_tools3 = ! $MUTools_Options['bps_mu_tools_enable_disable_deactivation'] ? 'enable' : $MUTools_Options['bps_mu_tools_enable_disable_deactivation'];
873
+
874
+ $MUTools_Option_settings = array(
875
+ 'bps_mu_tools_timestamp' => $bps_mu_tools1,
876
+ 'bps_mu_tools_enable_disable_autoupdate' => $bps_mu_tools2,
877
+ 'bps_mu_tools_enable_disable_deactivation' => $bps_mu_tools3
878
+ );
879
+
880
+ foreach ( $MUTools_Option_settings as $key => $value ) {
881
+ update_option('bulletproof_security_options_MU_tools_free', $MUTools_Option_settings);
882
+ }
883
+
884
+ delete_option('bulletproof_security_options_autoupdate');
885
+ $autoupdate_master_file = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-plugin-autoupdate.php';
886
+ $autoupdate_muplugins_file = WP_CONTENT_DIR . '/mu-plugins/bps-plugin-autoupdate.php';
887
+ @unlink($autoupdate_master_file);
888
+ @unlink($autoupdate_muplugins_file);
889
+
890
+ if ( ! is_dir( WP_CONTENT_DIR . '/mu-plugins' ) ) {
891
+ mkdir( WP_CONTENT_DIR . '/mu-plugins', 0755, true );
892
+ chmod( WP_CONTENT_DIR . '/mu-plugins/', 0755 );
893
+ }
894
+
895
+ $bps_mu_tools_master_file = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-mu-tools.php';
896
+ $bps_mu_tools_muplugins_file = WP_CONTENT_DIR . '/mu-plugins/bps-mu-tools.php';
897
+
898
+ copy($bps_mu_tools_master_file, $bps_mu_tools_muplugins_file);
899
+
900
  // .54.6: New Sucuri Dismiss Notice check created. Delete the user_meta for this Dismiss Notice.
901
  delete_user_meta($user_id, 'bps_ignore_sucuri_notice');
902
 
1111
  // .52.9: POST Request Attack Protection code correction|addition
1112
  bpsPro_post_request_protection_check();
1113
 
 
 
 
 
 
 
 
 
 
 
 
 
1114
  // BPS .52.6: Pre-save UI Theme Skin with Blue Theme if DB option does not exist
1115
  bpsPro_presave_ui_theme_skin_options();
1116
 
includes/hud-autofix-setup.php ADDED
@@ -0,0 +1,414 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Direct calls to this file are Forbidden when core files are not present
3
+ if ( ! function_exists ('add_action') ) {
4
+ header('Status: 403 Forbidden');
5
+ header('HTTP/1.1 403 Forbidden');
6
+ exit();
7
+ }
8
+
9
+ // S-Monitor Display HUD AutoFix Alerts in WP Dashboard Only if wpOn
10
+ function bps_HUD_autofix_setup_WP_Dashboard() {
11
+
12
+ if ( current_user_can('manage_options') ) {
13
+ bpsPro_EPC_plugin_check();
14
+ $w3tc_plugin = 'w3-total-cache/w3-total-cache.php';
15
+ $wpsc_plugin = 'wp-super-cache/wp-cache.php';
16
+ @bpsPro_w3tc_htaccess_check($w3tc_plugin);
17
+ @bpsPro_wpsc_htaccess_check($wpsc_plugin);
18
+ bpsPro_comet_cache_htaccess_check();
19
+ bpsPro_wpfc_htaccess_check();
20
+ bpsPro_wp_rocket_htaccess_check();
21
+ }
22
+ }
23
+
24
+ add_action('admin_notices', 'bps_HUD_autofix_setup_WP_Dashboard');
25
+
26
+ // Heads Up Display w/ Dismiss Notice - Check if Endurance Page Cache must-use plugin is installed.
27
+ // 13: Additional conditions added: check if EPC is enabled and Cache level is 1,2,3,4.
28
+ // Note: Keep this Notice as a Dismiss Notice since EPC is a special case.
29
+ function bpsPro_EPC_plugin_check() {
30
+
31
+ if ( ! get_option('bulletproof_security_options_wizard_free') ) {
32
+ return;
33
+ }
34
+
35
+ if ( @$_POST['Submit-Setup-Wizard'] == true ) {
36
+ return;
37
+ }
38
+
39
+ $EPC_plugin_file = WP_CONTENT_DIR . '/mu-plugins/endurance-page-cache.php';
40
+ $epc_options = get_option( 'mm_cache_settings' );
41
+ $epc_cache_level_options = get_option( 'endurance_cache_level' );
42
+
43
+ if ( file_exists($EPC_plugin_file) && $epc_options['page'] == 'enabled' && @$epc_cache_level_options['endurance_cache_level'] > 0 ) {
44
+
45
+ global $current_user;
46
+ $user_id = $current_user->ID;
47
+
48
+ if ( ! is_multisite() ) {
49
+ $bpsSiteUrl = get_option('siteurl');
50
+ $bpsHomeUrl = get_option('home');
51
+ } else {
52
+ $bpsSiteUrl = get_site_option('siteurl');
53
+ $bpsHomeUrl = network_site_url();
54
+ }
55
+
56
+ if ( $bpsSiteUrl == $bpsHomeUrl ) {
57
+
58
+ if ( ! get_user_meta($user_id, 'bpsPro_ignore_EPC_plugin_notice')) {
59
+
60
+ if ( esc_html($_SERVER['QUERY_STRING']) == '' && basename(esc_html($_SERVER['REQUEST_URI'])) != 'wp-admin' ) {
61
+ $bps_base = basename(esc_html($_SERVER['REQUEST_URI'])) . '?';
62
+ } elseif ( esc_html($_SERVER['QUERY_STRING']) == '' && basename(esc_html($_SERVER['REQUEST_URI'])) == 'wp-admin' ) {
63
+ $bps_base = basename( str_replace( 'wp-admin', 'index.php?', esc_html($_SERVER['REQUEST_URI'])));
64
+ } else {
65
+ $bps_base = str_replace( admin_url(), '', esc_html($_SERVER['REQUEST_URI']) ) . '&';
66
+ }
67
+
68
+ $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 Notice: The Endurance Page Cache (EPC) must-use plugin is installed', 'bulletproof-security').'</font><br>'.__('The EPC must-use plugin has been automatically installed by your Web Host and requires these additional BPS setup steps to make sure everything is setup correctly:', 'bulletproof-security').'<br>'.__('Go to the ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/core/core.php#bps-tabs-6' ).'" title="htaccess File Editor">'.__('BPS htaccess File Editor page', 'bulletproof-security').'</a>,'.__(' click the Unlock htaccess File button, go to the WordPress Settings > General page, scroll down to Endurance Cache settings,', 'bulletproof-security').'<br>'.__('click the Save Changes button, click this link: ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php' ).'" title="Setup Wizard">'.__('BPS Setup Wizard', 'bulletproof-security').'</a>'.__(' and click the Setup Wizard button.', 'bulletproof-security').'<br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the 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_EPC_plugin_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
69
+ echo $text;
70
+ }
71
+ }
72
+ }
73
+ }
74
+
75
+ add_action('admin_init', 'bpsPro_EPC_plugin_nag_ignore');
76
+
77
+ function bpsPro_EPC_plugin_nag_ignore() {
78
+ global $current_user;
79
+ $user_id = $current_user->ID;
80
+
81
+ if ( isset($_GET['bpsPro_EPC_plugin_nag_ignore']) && '0' == $_GET['bpsPro_EPC_plugin_nag_ignore'] ) {
82
+ add_user_meta($user_id, 'bpsPro_ignore_EPC_plugin_notice', 'true', true);
83
+ }
84
+ }
85
+
86
+ // Heads Up Display - Check if W3TC is active or not and check root htaccess file for W3TC htaccess code
87
+ function bpsPro_w3tc_htaccess_check($w3tc_plugin) {
88
+
89
+ if ( ! get_option('bulletproof_security_options_wizard_free') ) {
90
+ return;
91
+ }
92
+
93
+ if ( @$_POST['Submit-Setup-Wizard'] == true ) {
94
+ return;
95
+ }
96
+
97
+ $w3tc_plugin = 'w3-total-cache/w3-total-cache.php';
98
+ $w3tc_plugin_active = in_array( $w3tc_plugin, apply_filters('active_plugins', get_option('active_plugins')));
99
+
100
+ if ( $w3tc_plugin_active == 1 || is_plugin_active_for_network( $w3tc_plugin ) ) {
101
+
102
+ if ( ! is_multisite() ) {
103
+ $bpsSiteUrl = get_option('siteurl');
104
+ $bpsHomeUrl = get_option('home');
105
+ } else {
106
+ $bpsSiteUrl = get_site_option('siteurl');
107
+ $bpsHomeUrl = network_site_url();
108
+ }
109
+
110
+ $filename = ABSPATH . '.htaccess';
111
+
112
+ if ( file_exists($filename) ) {
113
+
114
+ $string = file_get_contents($filename);
115
+
116
+ if ( $bpsSiteUrl == $bpsHomeUrl ) {
117
+ if ( ! strpos( $string, "W3TC" ) ) {
118
+ $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="#fb0101">'.__('W3 Total Cache (W3TC) htaccess code was not found in your Root htaccess file', 'bulletproof-security').'</font><br>'.__('If you have deactivated Root Folder BulletProof Mode temporarily then disregard this message. When you activate Root Folder BulletProof Mode again this message will go away automatically.', 'bulletproof-security').'<br>'.__('Or you can run the BPS Setup Wizard now to make this message go away now.', 'bulletproof-security').'<br>'.__('If you just installed W3 Total Cache then go to the W3TC plugin settings page, choose and save the W3TC plugin settings that you want to use and then run the ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php' ).'" title="Setup Wizard">'.__('BPS Setup Wizard', 'bulletproof-security').'</a>'.__(' to automatically setup/combine W3TC and BPS htaccess code together.', 'bulletproof-security').'</div>';
119
+ echo $text;
120
+ }
121
+ }
122
+ }
123
+
124
+ } elseif ( $w3tc_plugin_active != 1 && ! is_plugin_active_for_network( $w3tc_plugin )) {
125
+
126
+ if ( ! is_multisite() ) {
127
+ $bpsSiteUrl = get_option('siteurl');
128
+ $bpsHomeUrl = get_option('home');
129
+ } else {
130
+ $bpsSiteUrl = get_site_option('siteurl');
131
+ $bpsHomeUrl = network_site_url();
132
+ }
133
+
134
+ $filename = ABSPATH . '.htaccess';
135
+
136
+ if ( file_exists($filename) ) {
137
+
138
+ $string = file_get_contents($filename);
139
+
140
+ if ( $bpsSiteUrl == $bpsHomeUrl ) {
141
+ if ( strpos( $string, "W3TC" ) ) {
142
+ $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="#fb0101">'.__('W3 Total Cache (W3TC) is deactivated and W3TC htaccess code was found in your Root htaccess file', 'bulletproof-security').'</font><br>'.__('If you have deactivated W3TC temporarily then disregard this message or you can run the BPS Setup Wizard now to make this message go away now.', 'bulletproof-security').'<br>'.__('If you are planning on permanently uninstalling W3TC then run the ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php' ).'" title="Setup Wizard">'.__('BPS Setup Wizard', 'bulletproof-security').'</a>'.__(' after you have uninstalled/deleted the W3TC plugin.', 'bulletproof-security').'</div>';
143
+ echo $text;
144
+ }
145
+ }
146
+ }
147
+ }
148
+ }
149
+
150
+ // Heads Up Display - Check if WPSC is active or not and check root htaccess file for WPSC htaccess code
151
+ function bpsPro_wpsc_htaccess_check($wpsc_plugin) {
152
+
153
+ if ( ! get_option('bulletproof_security_options_wizard_free') ) {
154
+ return;
155
+ }
156
+
157
+ if ( @$_POST['Submit-Setup-Wizard'] == true ) {
158
+ return;
159
+ }
160
+
161
+ $wpsc_plugin = 'wp-super-cache/wp-cache.php';
162
+ $wpsc_plugin_active = in_array( $wpsc_plugin, apply_filters('active_plugins', get_option('active_plugins')));
163
+
164
+ if ( $wpsc_plugin_active == 1 || is_plugin_active_for_network( $wpsc_plugin ) ) {
165
+ global $cache_enabled, $super_cache_enabled, $wp_cache_mod_rewrite;
166
+
167
+ if ( ! is_multisite() ) {
168
+ $bpsSiteUrl = get_option('siteurl');
169
+ $bpsHomeUrl = get_option('home');
170
+ } else {
171
+ $bpsSiteUrl = get_site_option('siteurl');
172
+ $bpsHomeUrl = network_site_url();
173
+ }
174
+
175
+ $filename = ABSPATH . '.htaccess';
176
+
177
+ if ( file_exists($filename) ) {
178
+
179
+ $string = file_get_contents($filename);
180
+
181
+ if ( $bpsSiteUrl == $bpsHomeUrl ) {
182
+ ## WPSC Caching On & Use mod_rewrite to serve cache files option selected.
183
+ if ( $cache_enabled == true && $super_cache_enabled && $wp_cache_mod_rewrite == 1 && ! strpos($string, "WPSuperCache" ) ) {
184
+ $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="#fb0101">'.__('WP Super Cache (WPSC) htaccess code was not found in your Root htaccess file', 'bulletproof-security').'</font><br>'.__('If you have deactivated Root Folder BulletProof Mode temporarily then disregard this message. When you activate Root Folder BulletProof Mode again this message will go away automatically.', 'bulletproof-security').'<br>'.__('Or you can run the BPS Setup Wizard now to make this message go away now.', 'bulletproof-security').'<br>'.__('If you just installed WP Super Cache then go to the WPSC plugin settings page, choose and save the WPSC plugin settings that you want to use and then run the ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php' ).'" title="Setup Wizard">'.__('BPS Setup Wizard', 'bulletproof-security').'</a>'.__(' to automatically setup/combine WPSC and BPS htaccess code together.', 'bulletproof-security').'</div>';
185
+ echo $text;
186
+ }
187
+ }
188
+ }
189
+
190
+ } elseif ( $wpsc_plugin_active != 1 && ! is_plugin_active_for_network( $wpsc_plugin ) ) {
191
+
192
+ if ( ! is_multisite() ) {
193
+ $bpsSiteUrl = get_option('siteurl');
194
+ $bpsHomeUrl = get_option('home');
195
+ } else {
196
+ $bpsSiteUrl = get_site_option('siteurl');
197
+ $bpsHomeUrl = network_site_url();
198
+ }
199
+
200
+ $filename = ABSPATH . '.htaccess';
201
+
202
+ if ( file_exists($filename) ) {
203
+
204
+ $string = file_get_contents($filename);
205
+
206
+ if ( $bpsSiteUrl == $bpsHomeUrl ) {
207
+ if ( strpos($string, "WPSuperCache" ) ) {
208
+ $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="#fb0101">'.__('WP Super Cache (WPSC) is deactivated and WPSC htaccess code was found in your Root htaccess file', 'bulletproof-security').'</font><br>'.__('If you have deactivated WPSC temporarily then disregard this message or you can run the BPS Setup Wizard now to make this message go away now.', 'bulletproof-security').'<br>'.__('If you are planning on permanently uninstalling WPSC then run the ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php' ).'" title="Setup Wizard">'.__('BPS Setup Wizard', 'bulletproof-security').'</a>'.__(' after you have uninstalled/deleted the WPSC plugin.', 'bulletproof-security').'</div>';
209
+ echo $text;
210
+ }
211
+ }
212
+ }
213
+ }
214
+ }
215
+
216
+ // Heads Up Display - Check if Comet Cache is active or not and check root htaccess file for Comet Cache htaccess code
217
+ function bpsPro_comet_cache_htaccess_check() {
218
+
219
+ if ( ! get_option('bulletproof_security_options_wizard_free') ) {
220
+ return;
221
+ }
222
+
223
+ if ( @$_POST['Submit-Setup-Wizard'] == true ) {
224
+ return;
225
+ }
226
+
227
+ $comet_cache = 'comet-cache/comet-cache.php';
228
+ $comet_cache_pro = 'comet-cache-pro/comet-cache-pro.php';
229
+ $comet_cache_active = in_array( $comet_cache, apply_filters('active_plugins', get_option('active_plugins')));
230
+ $comet_cache_pro_active = in_array( $comet_cache_pro, apply_filters('active_plugins', get_option('active_plugins')));
231
+
232
+ if ( $comet_cache_active == 1 || is_plugin_active_for_network( $comet_cache ) || $comet_cache_pro_active == 1 || is_plugin_active_for_network( $comet_cache_pro ) ) {
233
+
234
+ if ( ! is_multisite() ) {
235
+ $bpsSiteUrl = get_option('siteurl');
236
+ $bpsHomeUrl = get_option('home');
237
+ } else {
238
+ $bpsSiteUrl = get_site_option('siteurl');
239
+ $bpsHomeUrl = network_site_url();
240
+ }
241
+
242
+ $filename = ABSPATH . '.htaccess';
243
+
244
+ if ( file_exists($filename) ) {
245
+
246
+ $string = file_get_contents($filename);
247
+
248
+ if ( $bpsSiteUrl == $bpsHomeUrl ) {
249
+ $comet_cache_options = get_option('comet_cache_options');
250
+ if ( $comet_cache_options['htaccess_gzip_enable'] == '1' || $comet_cache_options['htaccess_access_control_allow_origin'] == '1' || $comet_cache_options['htaccess_browser_caching_enable'] == '1' || $comet_cache_options['htaccess_enforce_exact_host_name'] == '1' || $comet_cache_options['htaccess_enforce_canonical_urls'] == '1' ) {
251
+ if ( ! strpos($string, "Comet Cache" ) ) {
252
+ $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="#fb0101">'.__('Comet Cache htaccess code was not found in your Root htaccess file', 'bulletproof-security').'</font><br>'.__('If you have deactivated Root Folder BulletProof Mode temporarily then disregard this message. When you activate Root Folder BulletProof Mode again this message will go away automatically.', 'bulletproof-security').'<br>'.__('Or you can run the BPS Setup Wizard now to make this message go away now.', 'bulletproof-security').'<br>'.__('If you just installed Comet Cache then go to the ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/core/core.php#bps-tabs-6' ).'" title="htaccess File Editor">'.__('BPS htaccess File Editor page', 'bulletproof-security').'</a>,'.__(' click the Unlock htaccess File button, go to the Comet Cache plugin settings page, choose and save the Comet Cache plugin settings that you want to use and then run the ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php' ).'" title="Setup Wizard">'.__('BPS Setup Wizard', 'bulletproof-security').'</a>'.__(' to automatically setup/combine Comet Cache and BPS htaccess code together.', 'bulletproof-security').'</div>';
253
+ echo $text;
254
+ }
255
+ }
256
+ }
257
+ }
258
+
259
+ } elseif ( $comet_cache_active != 1 && $comet_cache_pro_active != 1 && ! is_plugin_active_for_network( $comet_cache ) && ! is_plugin_active_for_network( $comet_cache_pro ) ) {
260
+
261
+ if ( ! is_multisite() ) {
262
+ $bpsSiteUrl = get_option('siteurl');
263
+ $bpsHomeUrl = get_option('home');
264
+ } else {
265
+ $bpsSiteUrl = get_site_option('siteurl');
266
+ $bpsHomeUrl = network_site_url();
267
+ }
268
+
269
+ $filename = ABSPATH . '.htaccess';
270
+
271
+ if ( file_exists($filename) ) {
272
+
273
+ $string = file_get_contents($filename);
274
+
275
+ if ( $bpsSiteUrl == $bpsHomeUrl ) {
276
+ if ( strpos($string, "Comet Cache" ) ) {
277
+ $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="#fb0101">'.__('Comet Cache is deactivated and Comet Cache htaccess code was found in your Root htaccess file', 'bulletproof-security').'</font><br>'.__('If you have deactivated Comet Cache temporarily then disregard this message or you can run the BPS Setup Wizard now to make this message go away now.', 'bulletproof-security').'<br>'.__('If you are planning on permanently uninstalling Comet Cache then run the ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php' ).'" title="Setup Wizard">'.__('BPS Setup Wizard', 'bulletproof-security').'</a>'.__(' after you have uninstalled/deleted the Comet Cache plugin.', 'bulletproof-security').'</div>';
278
+ echo $text;
279
+ }
280
+ }
281
+ }
282
+ }
283
+ }
284
+
285
+ // Heads Up Display - Check if WPFC is active or not and check root htaccess file for WPFC htaccess code
286
+ function bpsPro_wpfc_htaccess_check() {
287
+
288
+ if ( ! get_option('bulletproof_security_options_wizard_free') ) {
289
+ return;
290
+ }
291
+
292
+ if ( @$_POST['Submit-Setup-Wizard'] == true ) {
293
+ return;
294
+ }
295
+
296
+ $wpfc_plugin = 'wp-fastest-cache/wpFastestCache.php';
297
+ $wpfc_plugin_active = in_array( $wpfc_plugin, apply_filters('active_plugins', get_option('active_plugins')));
298
+
299
+ if ( $wpfc_plugin_active == 1 || is_plugin_active_for_network( $wpfc_plugin ) ) {
300
+
301
+ if ( ! is_multisite() ) {
302
+ $bpsSiteUrl = get_option('siteurl');
303
+ $bpsHomeUrl = get_option('home');
304
+ } else {
305
+ $bpsSiteUrl = get_site_option('siteurl');
306
+ $bpsHomeUrl = network_site_url();
307
+ }
308
+
309
+ $filename = ABSPATH . '.htaccess';
310
+
311
+ if ( file_exists($filename) ) {
312
+
313
+ $string = file_get_contents($filename);
314
+
315
+ if ( $bpsSiteUrl == $bpsHomeUrl ) {
316
+ $wpfc_options = get_option('WpFastestCache');
317
+ if ( @$wpfc_options['wpFastestCacheStatus'] == 'on' && ! strpos($string, "WpFastestCache" ) ) {
318
+ $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="#fb0101">'.__('WP Fastest Cache (WPFC) htaccess code was not found in your Root htaccess file', 'bulletproof-security').'</font><br>'.__('If you have deactivated Root Folder BulletProof Mode temporarily then disregard this message. When you activate Root Folder BulletProof Mode again this message will go away automatically.', 'bulletproof-security').'<br>'.__('Or you can run the BPS Setup Wizard now to make this message go away now.', 'bulletproof-security').'<br>'.__('If you just installed WP Fastest Cache then go to the ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/core/core.php#bps-tabs-6' ).'" title="htaccess File Editor">'.__('BPS htaccess File Editor page', 'bulletproof-security').'</a>,'.__(' click the Unlock htaccess File button, then go to the WPFC plugin settings page, choose and save the WPFC plugin settings that you want to use and then run the ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php' ).'" title="Setup Wizard">'.__('BPS Setup Wizard', 'bulletproof-security').'</a>'.__(' to automatically setup/combine WPFC and BPS htaccess code together.', 'bulletproof-security').'</div>';
319
+ echo $text;
320
+ }
321
+ }
322
+ }
323
+
324
+ } elseif ( $wpfc_plugin_active != 1 && ! is_plugin_active_for_network( $wpfc_plugin ) ) {
325
+
326
+ if ( ! is_multisite() ) {
327
+ $bpsSiteUrl = get_option('siteurl');
328
+ $bpsHomeUrl = get_option('home');
329
+ } else {
330
+ $bpsSiteUrl = get_site_option('siteurl');
331
+ $bpsHomeUrl = network_site_url();
332
+ }
333
+
334
+ $filename = ABSPATH . '.htaccess';
335
+
336
+ if ( file_exists($filename) ) {
337
+
338
+ $string = file_get_contents($filename);
339
+
340
+ if ( $bpsSiteUrl == $bpsHomeUrl ) {
341
+ if ( strpos($string, "WpFastestCache" ) ) {
342
+ $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="#fb0101">'.__('WP Fastest Cache (WPFC) is deactivated and WPFC htaccess code was found in your Root htaccess file', 'bulletproof-security').'</font><br>'.__('If you have deactivated WPFC temporarily then disregard this message or you can run the BPS Setup Wizard now to make this message go away now.', 'bulletproof-security').'<br>'.__('If you are planning on permanently uninstalling WPFC then run the ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php' ).'" title="Setup Wizard">'.__('BPS Setup Wizard', 'bulletproof-security').'</a>'.__(' after you have uninstalled/deleted the WPFC plugin.', 'bulletproof-security').'</div>';
343
+ echo $text;
344
+ }
345
+ }
346
+ }
347
+ }
348
+ }
349
+
350
+ // Heads Up Display - Check if WP Rocket is active or not and check root htaccess file for WP Rocket htaccess code
351
+ function bpsPro_wp_rocket_htaccess_check() {
352
+
353
+ if ( ! get_option('bulletproof_security_options_wizard_free') ) {
354
+ return;
355
+ }
356
+
357
+ if ( @$_POST['Submit-Setup-Wizard'] == true ) {
358
+ return;
359
+ }
360
+
361
+ $wpr_plugin = 'wp-rocket/wp-rocket.php';
362
+ $wpr_plugin_active = in_array( $wpr_plugin, apply_filters('active_plugins', get_option('active_plugins')));
363
+
364
+ if ( $wpr_plugin_active == 1 || is_plugin_active_for_network( $wpr_plugin ) ) {
365
+
366
+ if ( ! is_multisite() ) {
367
+ $bpsSiteUrl = get_option('siteurl');
368
+ $bpsHomeUrl = get_option('home');
369
+ } else {
370
+ $bpsSiteUrl = get_site_option('siteurl');
371
+ $bpsHomeUrl = network_site_url();
372
+ }
373
+
374
+ $filename = ABSPATH . '.htaccess';
375
+
376
+ if ( file_exists($filename) ) {
377
+
378
+ $string = file_get_contents($filename);
379
+
380
+ if ( $bpsSiteUrl == $bpsHomeUrl ) {
381
+ if ( ! strpos($string, "WP Rocket" ) ) {
382
+ $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="#fb0101">'.__('WP Rocket htaccess code was not found in your Root htaccess file', 'bulletproof-security').'</font><br>'.__('If you have deactivated Root Folder BulletProof Mode temporarily then disregard this message. When you activate Root Folder BulletProof Mode again this message will go away automatically.', 'bulletproof-security').'<br>'.__('Or you can run the BPS Setup Wizard now to make this message go away now.', 'bulletproof-security').'<br>'.__('If you just installed WP Rocket then go to the ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/core/core.php#bps-tabs-6' ).'" title="htaccess File Editor">'.__('BPS htaccess File Editor page', 'bulletproof-security').'</a>,'.__(' click the Unlock htaccess File button, then go to the WP Rocket plugin settings page, choose and save the WP Rocket plugin settings that you want to use and then run the ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php' ).'" title="Setup Wizard">'.__('BPS Setup Wizard', 'bulletproof-security').'</a>'.__(' to automatically setup/combine WP Rocket and BPS htaccess code together.', 'bulletproof-security').'</div>';
383
+ echo $text;
384
+ }
385
+ }
386
+ }
387
+
388
+ } elseif ( $wpr_plugin_active != 1 && ! is_plugin_active_for_network( $wpr_plugin ) ) {
389
+
390
+ if ( ! is_multisite() ) {
391
+ $bpsSiteUrl = get_option('siteurl');
392
+ $bpsHomeUrl = get_option('home');
393
+ } else {
394
+ $bpsSiteUrl = get_site_option('siteurl');
395
+ $bpsHomeUrl = network_site_url();
396
+ }
397
+
398
+ $filename = ABSPATH . '.htaccess';
399
+
400
+ if ( file_exists($filename) ) {
401
+
402
+ $string = file_get_contents($filename);
403
+
404
+ if ( $bpsSiteUrl == $bpsHomeUrl ) {
405
+ if ( strpos($string, "WP Rocket" ) ) {
406
+ $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="#fb0101">'.__('WP Rocket is deactivated and WP Rocket htaccess code was found in your Root htaccess file', 'bulletproof-security').'</font><br>'.__('If you have deactivated WP Rocket temporarily then disregard this message or you can run the BPS Setup Wizard now to make this message go away now.', 'bulletproof-security').'<br>'.__('If you are planning on permanently uninstalling WP Rocket then run the ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php' ).'" title="Setup Wizard">'.__('BPS Setup Wizard', 'bulletproof-security').'</a>'.__(' after you have uninstalled/deleted the WP Rocket plugin.', 'bulletproof-security').'</div>';
407
+ echo $text;
408
+ }
409
+ }
410
+ }
411
+ }
412
+ }
413
+
414
+ ?>
includes/hud-autofix-whitelist.php ADDED
@@ -0,0 +1,758 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Direct calls to this file are Forbidden when core files are not present
3
+ if ( ! function_exists ('add_action') ) {
4
+ header('Status: 403 Forbidden');
5
+ header('HTTP/1.1 403 Forbidden');
6
+ exit();
7
+ }
8
+
9
+ // Display HUD AutoFix Alerts in WP Dashboard
10
+ function bps_HUD_autofix_whitelist_WP_Dashboard() {
11
+
12
+ if ( current_user_can('manage_options') ) {
13
+ bpsPro_HUD_autofix_whitelist_check();
14
+ }
15
+ }
16
+
17
+ add_action('admin_notices', 'bps_HUD_autofix_whitelist_WP_Dashboard');
18
+
19
+ ## Setup Wizard AutoFix (AutoWhitelist|AutoSetup|AutoCleanup)
20
+ ## Detects 100+ known issues in other plugins and themes that require Custom Code whitelist rules.
21
+ ## IMPORTANT: This dumbed down simple code significantly outperformed all other "fancy" coding methods of processing
22
+ ## these checks in benchmark testing. Do not change this simplified code. No Loops please.
23
+ function bpsPro_HUD_autofix_whitelist_check() {
24
+
25
+ if ( ! get_option('bulletproof_security_options_wizard_free') ) {
26
+ return;
27
+ }
28
+
29
+ $AutoFix_Options = get_option('bulletproof_security_options_wizard_autofix');
30
+
31
+ if ( $AutoFix_Options['bps_wizard_autofix'] == 'Off' ) {
32
+ return;
33
+ }
34
+
35
+ if ( @$_POST['Submit-Setup-Wizard'] == true ) {
36
+ return;
37
+ }
38
+
39
+ $autofix_message = 0;
40
+ $CC_Options_root = get_option('bulletproof_security_options_customcode');
41
+ $CC_Options_wpadmin = get_option('bulletproof_security_options_customcode_WPA');
42
+
43
+ ## 9. CUSTOM CODE REQUEST METHODS FILTERED
44
+ $bps_customcode_request_methods = htmlspecialchars_decode( $CC_Options_root['bps_customcode_request_methods'], ENT_QUOTES );
45
+ $pattern_RMF = '/#{1,}(\s|){1,}RewriteCond\s\%\{REQUEST_METHOD\}\s\^\(HEAD\)\s\[NC\](.*\s*){1}(#{1,}(\s|){1,}RewriteRule\s\^\(\.\*\)\$\s(.*)\/bulletproof-security\/405\.php\s(\[L\]|\[R,L\])|#{1,}(\s|){1,}RewriteRule\s\^\(\.\*\)\$\s\-\s\[R=405,L\])/';
46
+ $debug_RMF = '';
47
+
48
+ $jetpack = 'jetpack/jetpack.php';
49
+ $jetpack_active = in_array( $jetpack, apply_filters('active_plugins', get_option('active_plugins')));
50
+ $marmoset_viewer = 'marmoset-viewer/marmoset-viewer.php';
51
+ $marmoset_viewer_active = in_array( $marmoset_viewer, apply_filters('active_plugins', get_option('active_plugins')));
52
+ $backwpup = 'backwpup/backwpup.php';
53
+ $backwpup_active = in_array( $backwpup, apply_filters('active_plugins', get_option('active_plugins')));
54
+ $mailpoet = 'wysija-newsletters/index.php';
55
+ $mailpoet_active = in_array( $mailpoet, apply_filters('active_plugins', get_option('active_plugins')));
56
+ $backupwordpress = 'backupwordpress/backupwordpress.php';
57
+ $backupwordpress_active = in_array( $backupwordpress, apply_filters('active_plugins', get_option('active_plugins')));
58
+ $broken_link_checker = 'broken-link-checker/broken-link-checker.php';
59
+ $broken_link_checker_active = in_array( $broken_link_checker, apply_filters('active_plugins', get_option('active_plugins')));
60
+ $mailchimp = 'mailchimp-for-wp/mailchimp-for-wp.php';
61
+ $mailchimp_active = in_array( $mailchimp, apply_filters('active_plugins', get_option('active_plugins')));
62
+
63
+ if ( $jetpack_active == 1 || is_plugin_active_for_network( $jetpack ) || $marmoset_viewer_active == 1 || is_plugin_active_for_network( $marmoset_viewer ) || $backwpup_active == 1 || is_plugin_active_for_network( $backwpup ) || $mailpoet_active == 1 || is_plugin_active_for_network( $mailpoet ) || $backupwordpress_active == 1 || is_plugin_active_for_network( $backupwordpress ) || $broken_link_checker_active == 1 || is_plugin_active_for_network( $broken_link_checker ) || $mailchimp_active == 1 || is_plugin_active_for_network( $mailchimp ) ) {
64
+
65
+ if ( ! preg_match( $pattern_RMF, $bps_customcode_request_methods ) ) {
66
+ $autofix_message = 1;
67
+ $debug_RMF .= __('CC Root Text Box 9: Allow HEAD Requests General Rule for Jetpack, Marmoset Viewer, BackWPup, MailPoet Newsletters (wysija newsletters), BackUpWordPress, Broken Link Checker, MailChimp for WordPress Plugins', 'bulletproof-security').'<br>';
68
+ }
69
+ }
70
+
71
+ ## 10. CUSTOM CODE PLUGIN/THEME SKIP/BYPASS RULES
72
+ $bps_customcode_two = htmlspecialchars_decode( $CC_Options_root['bps_customcode_two'], ENT_QUOTES );
73
+ $debug_PTSB = '';
74
+
75
+ $woocommerce = 'woocommerce/woocommerce.php';
76
+ $woocommerce_active = in_array( $woocommerce, apply_filters('active_plugins', get_option('active_plugins')));
77
+ $simple_lightbox = 'simple-lightbox/main.php';
78
+ $simple_lightbox_active = in_array( $simple_lightbox, apply_filters('active_plugins', get_option('active_plugins')));
79
+ $visual_composer = 'js_composer/js_composer.php';
80
+ $visual_composer_active = in_array( $visual_composer, apply_filters('active_plugins', get_option('active_plugins')));
81
+ $ee_attendee = 'eea-attendee-mover/eea-attendee-mover.php';
82
+ $ee_attendee_active = in_array( $ee_attendee, apply_filters('active_plugins', get_option('active_plugins')));
83
+ $wp_rocket = 'wp-rocket/wp-rocket.php';
84
+ $wp_rocket_active = in_array( $wp_rocket, apply_filters('active_plugins', get_option('active_plugins')));
85
+ $emg_pro = 'easy-media-gallery-pro/easy-media-gallery-pro.php';
86
+ $emg_pro_active = in_array( $emg_pro, apply_filters('active_plugins', get_option('active_plugins')));
87
+ $nextend_fb_connect = 'nextend-facebook-connect/nextend-facebook-connect.php';
88
+ $nextend_fb_connect_active = in_array( $nextend_fb_connect, apply_filters('active_plugins', get_option('active_plugins')));
89
+ $shashin = 'shashin/start.php';
90
+ $shashin_active = in_array( $shashin, apply_filters('active_plugins', get_option('active_plugins')));
91
+ $nocturnal_theme = wp_get_theme( 'nocturnal' );
92
+ $shopp = 'shopp/Shopp.php';
93
+ $shopp_active = in_array( $shopp, apply_filters('active_plugins', get_option('active_plugins')));
94
+ $wp_invoice = 'wp-invoice/wp-invoice.php';
95
+ $wp_invoice_active = in_array( $wp_invoice, apply_filters('active_plugins', get_option('active_plugins')));
96
+ $wp_greet = 'wp-greet/wp-greet.php';
97
+ $wp_greet_active = in_array( $wp_greet, apply_filters('active_plugins', get_option('active_plugins')));
98
+ $wp_juicebox = 'wp-juicebox/wp-juicebox.php';
99
+ $wp_juicebox_active = in_array( $wp_juicebox, apply_filters('active_plugins', get_option('active_plugins')));
100
+ $prayer_engine = 'prayerengine_plugin/prayerengine_plugin.php';
101
+ $prayer_engine_active = in_array( $prayer_engine, apply_filters('active_plugins', get_option('active_plugins')));
102
+ $appointment_calendar = 'appointment-calendar/appointment-calendar.php';
103
+ $appointment_calendar_active = in_array( $appointment_calendar, apply_filters('active_plugins', get_option('active_plugins')));
104
+ $thirsty_affiliates = 'thirstyaffiliates/thirstyaffiliates.php';
105
+ $thirsty_affiliates_active = in_array( $thirsty_affiliates, apply_filters('active_plugins', get_option('active_plugins')));
106
+ $woo_ogone = 'woocommerce_ogonecw/woocommerce_ogonecw.php';
107
+ $woo_ogone_active = in_array( $woo_ogone, apply_filters('active_plugins', get_option('active_plugins')));
108
+ $OIOpublisher = WP_PLUGIN_DIR . '/oiopub-direct/wp.php';
109
+
110
+ if ( $woocommerce_active == 1 || is_plugin_active_for_network( $woocommerce ) ) {
111
+ $ptsb1 = '/RewriteCond\s%{REQUEST_URI}\s\^\.\*\/\(shop\|cart\|checkout\|wishlist\)\.\*\s\[NC\]/';
112
+ $ptsb2 = '/RewriteCond\s%{QUERY_STRING}\s\.\*\(order\|wc-ajax=get_refreshed_fragments\)\.\*\s\[NC\]/';
113
+ if ( ! preg_match( $ptsb1, $bps_customcode_two ) || ! preg_match( $ptsb2, $bps_customcode_two ) ) {
114
+ $autofix_message = 1;
115
+ $debug_PTSB .= __('CC Root Text Box 10: WooCommerce Plugin', 'bulletproof-security').'<br>';
116
+ }
117
+ }
118
+ if ( $simple_lightbox_active == 1 || is_plugin_active_for_network( $simple_lightbox ) ) {
119
+ if ( ! preg_match( '/RewriteCond\s%{REQUEST_URI}\s\^(.*)\/plugins\/simple-lightbox\/\s\[NC\]/', $bps_customcode_two ) ) {
120
+ $autofix_message = 1;
121
+ $debug_PTSB .= __('CC Root Text Box 10: Simple Lightbox Plugin', 'bulletproof-security').'<br>';
122
+ }
123
+ }
124
+ if ( $visual_composer_active == 1 || is_plugin_active_for_network( $visual_composer ) ) {
125
+ if ( ! preg_match( '/RewriteCond\s%{REQUEST_URI}\s\^(.*)\/plugins\/js_composer\/\s\[NC\]/', $bps_customcode_two ) ) {
126
+ $autofix_message = 1;
127
+ $debug_PTSB .= __('CC Root Text Box 10: WPBakery Visual Composer Plugin', 'bulletproof-security').'<br>';
128
+ }
129
+ }
130
+ if ( $ee_attendee_active == 1 || is_plugin_active_for_network( $ee_attendee ) ) {
131
+ if ( ! preg_match( '/RewriteCond\s%{QUERY_STRING}\slimit%5B%5D=\(\.\*\)\s\[NC\]/', $bps_customcode_two ) ) {
132
+ $autofix_message = 1;
133
+ $debug_PTSB .= __('CC Root Text Box 10: Event Espresso Attendee Mover Plugin', 'bulletproof-security').'<br>';
134
+ }
135
+ }
136
+ if ( $wp_rocket_active == 1 || is_plugin_active_for_network( $wp_rocket ) ) {
137
+ if ( ! preg_match( '/RewriteCond\s%{REQUEST_URI}\s\^(.*)\/plugins\/wp-rocket\/\s\[NC\]/', $bps_customcode_two ) ) {
138
+ $autofix_message = 1;
139
+ $debug_PTSB .= __('CC Root Text Box 10: WP Rocket Plugin', 'bulletproof-security').'<br>';
140
+ }
141
+ }
142
+ if ( $emg_pro_active == 1 || is_plugin_active_for_network( $emg_pro ) ) {
143
+ if ( ! preg_match( '/RewriteCond\s%{REQUEST_URI}\s\^(.*)\/plugins\/easy-media-gallery-pro\/\s\[NC\]/', $bps_customcode_two ) ) {
144
+ $autofix_message = 1;
145
+ $debug_PTSB .= __('CC Root Text Box 10: Easy Media Gallery Pro Plugin', 'bulletproof-security').'<br>';
146
+ }
147
+ }
148
+ if ( $nextend_fb_connect_active == 1 || is_plugin_active_for_network( $nextend_fb_connect ) ) {
149
+ if ( ! preg_match( '/RewriteCond\s%{QUERY_STRING}\sloginFacebook=\(\.\*\)\s\[NC\]/', $bps_customcode_two ) ) {
150
+ $autofix_message = 1;
151
+ $debug_PTSB .= __('CC Root Text Box 10: Nextend Facebook Connect Plugin', 'bulletproof-security').'<br>';
152
+ }
153
+ }
154
+ if ( $shashin_active == 1 || is_plugin_active_for_network( $shashin ) ) {
155
+ if ( ! preg_match( '/RewriteCond\s%{REQUEST_URI}\s\^(.*)\/plugins\/shashin\/\s\[NC\]/', $bps_customcode_two ) ) {
156
+ $autofix_message = 1;
157
+ $debug_PTSB .= __('CC Root Text Box 10: Shashin Plugin', 'bulletproof-security').'<br>';
158
+ }
159
+ }
160
+ if ( $nocturnal_theme->exists() ) {
161
+ if ( ! preg_match( '/RewriteCond\s%{QUERY_STRING}\splayerInstance=\(\.\*\)\s\[NC\]/', $bps_customcode_two ) ) {
162
+ $autofix_message = 1;
163
+ $debug_PTSB .= __('CC Root Text Box 10: Nocturnal Theme', 'bulletproof-security').'<br>';
164
+ }
165
+ }
166
+ if ( $shopp_active == 1 || is_plugin_active_for_network( $shopp ) ) {
167
+ if ( ! preg_match( '/RewriteCond\s%{REQUEST_URI}\s\^(.*)\/plugins\/shopp\/\s\[NC\]/', $bps_customcode_two ) ) {
168
+ $autofix_message = 1;
169
+ $debug_PTSB .= __('CC Root Text Box 10: Shopp Plugin', 'bulletproof-security').'<br>';
170
+ }
171
+ }
172
+ if ( $wp_invoice_active == 1 || is_plugin_active_for_network( $wp_invoice ) ) {
173
+ if ( ! preg_match( '/RewriteCond\s%{QUERY_STRING}\spage=wpi_\(\.\*\)\s\[NC\]/', $bps_customcode_two ) ) {
174
+ $autofix_message = 1;
175
+ $debug_PTSB .= __('CC Root Text Box 10: WP-Invoice - Web Invoice and Billing Plugin', 'bulletproof-security').'<br>';
176
+ }
177
+ }
178
+ if ( $wp_greet_active == 1 || is_plugin_active_for_network( $wp_greet ) ) {
179
+ if ( ! preg_match( '/RewriteCond\s%{QUERY_STRING}\sgallery=([0-9]+)&image=\(\.\*\)\s\[NC\]/', $bps_customcode_two ) ) {
180
+ $autofix_message = 1;
181
+ $debug_PTSB .= __('CC Root Text Box 10: wp-greet Plugin', 'bulletproof-security').'<br>';
182
+ }
183
+ }
184
+ if ( $wp_juicebox_active == 1 || is_plugin_active_for_network( $wp_juicebox ) ) {
185
+ if ( ! preg_match( '/RewriteCond\s%{REQUEST_URI}\s\^(.*)\/plugins\/wp-juicebox\/\s\[NC\]/', $bps_customcode_two ) ) {
186
+ $autofix_message = 1;
187
+ $debug_PTSB .= __('CC Root Text Box 10: WP-Juicebox Plugin', 'bulletproof-security').'<br>';
188
+ }
189
+ }
190
+ if ( $prayer_engine_active == 1 || is_plugin_active_for_network( $prayer_engine ) ) {
191
+ if ( ! preg_match( '/RewriteCond\s%{REQUEST_URI}\s\^(.*)\/plugins\/prayerengine_plugin\/\s\[NC\]/', $bps_customcode_two ) ) {
192
+ $autofix_message = 1;
193
+ $debug_PTSB .= __('CC Root Text Box 10: Prayer Engine Plugin', 'bulletproof-security').'<br>';
194
+ }
195
+ }
196
+ if ( $appointment_calendar_active == 1 || is_plugin_active_for_network( $appointment_calendar ) ) {
197
+ if ( ! preg_match( '/RewriteCond\s%{REQUEST_URI}\s\^(.*)\/plugins\/appointment-calendar\/\s\[NC\]/', $bps_customcode_two ) ) {
198
+ $autofix_message = 1;
199
+ $debug_PTSB .= __('CC Root Text Box 10: Appointment Calendar Plugin', 'bulletproof-security').'<br>';
200
+ }
201
+ }
202
+ if ( $thirsty_affiliates_active == 1 || is_plugin_active_for_network( $thirsty_affiliates ) ) {
203
+ if ( ! preg_match( '/RewriteCond\s%{REQUEST_URI}\s\^(.*)\/plugins\/thirstyaffiliates\/\s\[NC\]/', $bps_customcode_two ) ) {
204
+ $autofix_message = 1;
205
+ $debug_PTSB .= __('CC Root Text Box 10: ThirstyAffiliates Plugin', 'bulletproof-security').'<br>';
206
+ }
207
+ }
208
+ if ( $woo_ogone_active == 1 || is_plugin_active_for_network( $woo_ogone ) ) {
209
+ if ( ! preg_match( '/RewriteCond\s%{REQUEST_URI}\s\^(.*)\/plugins\/woocommerce_ogonecw\/\s\[NC\]/', $bps_customcode_two ) ) {
210
+ $autofix_message = 1;
211
+ $debug_PTSB .= __('CC Root Text Box 10: WooCommerce Ogone Payment Gateway Plugin', 'bulletproof-security').'<br>';
212
+ }
213
+ }
214
+ if ( file_exists($OIOpublisher) ) {
215
+ if ( ! preg_match( '/RewriteCond\s%{REQUEST_URI}\s\^\/advertise\/uploads\/\s\[NC\]/', $bps_customcode_two ) ) {
216
+ $autofix_message = 1;
217
+ $debug_PTSB .= __('CC Root Text Box 10: OIOpublisher Ad Manager Plugin', 'bulletproof-security').'<br>';
218
+ }
219
+ }
220
+
221
+ ## 11. CUSTOM CODE TIMTHUMB FORBID RFI and MISC FILE SKIP/BYPASS RULE
222
+ $bps_customcode_rfi = htmlspecialchars_decode( $CC_Options_root['bps_customcode_timthumb_misc'], ENT_QUOTES );
223
+ $debug_RFI = '';
224
+
225
+ $pdf_viewer = 'pdf-viewer/pdf-viewer.php';
226
+ $pdf_viewer_active = in_array( $pdf_viewer, apply_filters('active_plugins', get_option('active_plugins')));
227
+ $marmoset_viewer = 'marmoset-viewer/marmoset-viewer.php';
228
+ $marmoset_viewer_active = in_array( $marmoset_viewer, apply_filters('active_plugins', get_option('active_plugins')));
229
+ $pdf_viewer_themencode = 'pdf-viewer-for-wordpress/pdf-viewer-for-wordpress.php';
230
+ $pdf_viewer_themencode_active = in_array( $pdf_viewer_themencode, apply_filters('active_plugins', get_option('active_plugins')));
231
+ $jupdf_pdf_viewer = 'jupdf-pdf-viewer/jupdf-pdf-viewer.php';
232
+ $jupdf_pdf_viewer_active = in_array( $jupdf_pdf_viewer, apply_filters('active_plugins', get_option('active_plugins')));
233
+ $userPro = 'userpro/index.php';
234
+ $userPro_active = in_array( $userPro, apply_filters('active_plugins', get_option('active_plugins')));
235
+ $NativeChurch_theme = wp_get_theme( 'NativeChurch' );
236
+ $user_avatar = 'user-avatar/user-avatar.php';
237
+ $user_avatar_active = in_array( $user_avatar, apply_filters('active_plugins', get_option('active_plugins')));
238
+ $OIOpublisher = WP_PLUGIN_DIR . '/oiopub-direct/wp.php';
239
+ $DAPLiveLinks = 'DAP-WP-LiveLinks/DAP-WP-LiveLinks.php';
240
+ $DAPLiveLinks_active = in_array( $DAPLiveLinks, apply_filters('active_plugins', get_option('active_plugins')));
241
+ $easy_pagination = WP_PLUGIN_DIR . '/easy-pagination/images/thumbnail.php';
242
+ $itheme2_theme = wp_get_theme( 'itheme2' );
243
+ $smoothv41_theme = wp_get_theme( 'SmoothV4.1' );
244
+
245
+ if ( $pdf_viewer_active == 1 || is_plugin_active_for_network( $pdf_viewer ) ) {
246
+ if ( ! preg_match( '/viewer\\\.html/', $bps_customcode_rfi ) ) {
247
+ $autofix_message = 1;
248
+ $debug_RFI .= __('CC Root Text Box 11: PDF Viewer (Envigeek Web Services) Plugin', 'bulletproof-security').'<br>';
249
+ }
250
+ }
251
+ if ( $marmoset_viewer_active == 1 || is_plugin_active_for_network( $marmoset_viewer ) ) {
252
+ if ( ! preg_match( '/mviewer\\\.php/', $bps_customcode_rfi ) ) {
253
+ $autofix_message = 1;
254
+ $debug_RFI .= __('CC Root Text Box 11: Marmoset Viewer Plugin', 'bulletproof-security').'<br>';
255
+ }
256
+ }
257
+ if ( $pdf_viewer_themencode_active == 1 || is_plugin_active_for_network( $pdf_viewer_themencode ) ) {
258
+ if ( ! preg_match( '/themencode-pdf-viewer-sc/', $bps_customcode_rfi ) ) {
259
+ $autofix_message = 1;
260
+ $debug_RFI .= __('CC Root Text Box 11: PDF viewer for WordPress (ThemeNcode code canyon) Plugin', 'bulletproof-security').'<br>';
261
+ }
262
+ }
263
+ if ( $jupdf_pdf_viewer_active == 1 || is_plugin_active_for_network( $jupdf_pdf_viewer ) ) {
264
+ if ( ! preg_match( '/jupdf\/index\\\.html/', $bps_customcode_rfi ) ) {
265
+ $autofix_message = 1;
266
+ $debug_RFI .= __('CC Root Text Box 11: jupdf pdf viewer Plugin', 'bulletproof-security').'<br>';
267
+ }
268
+ }
269
+ if ( $userPro_active == 1 || is_plugin_active_for_network( $userPro ) ) {
270
+ if ( ! preg_match( '/instagramAuth\\\.php\|linkedinAuth\\\.php/', $bps_customcode_rfi ) ) {
271
+ $autofix_message = 1;
272
+ $debug_RFI .= __('CC Root Text Box 11: UserPro (code canyon) Plugin', 'bulletproof-security').'<br>';
273
+ }
274
+ }
275
+ if ( $NativeChurch_theme->exists() ) {
276
+ if ( ! preg_match( '/download\\\.php/', $bps_customcode_rfi ) ) {
277
+ $autofix_message = 1;
278
+ $debug_RFI .= __('CC Root Text Box 11: NativeChurch Theme', 'bulletproof-security').'<br>';
279
+ }
280
+ }
281
+ if ( $user_avatar_active == 1 || is_plugin_active_for_network( $user_avatar ) ) {
282
+ if ( ! preg_match( '/user-avatar-pic\\\.php/', $bps_customcode_rfi ) ) {
283
+ $autofix_message = 1;
284
+ $debug_RFI .= __('CC Root Text Box 11: User Avatar (CTLT DEV) Plugin', 'bulletproof-security').'<br>';
285
+ }
286
+ }
287
+ if ( file_exists($OIOpublisher) ) {
288
+ if ( ! preg_match( '/go\\\.php\|purchase\\\.php\|bubble\\\.js\|oiopub\\\.js/', $bps_customcode_rfi ) ) {
289
+ $autofix_message = 1;
290
+ $debug_RFI .= __('CC Root Text Box 11: OIOpublisher Ad Manager Plugin', 'bulletproof-security').'<br>';
291
+ }
292
+ }
293
+ if ( $DAPLiveLinks_active == 1 || is_plugin_active_for_network( $DAPLiveLinks ) ) {
294
+ if ( ! preg_match( '/authenticate\\\.php\|signup_submit\\\.php/', $bps_customcode_rfi ) ) {
295
+ $autofix_message = 1;
296
+ $debug_RFI .= __('CC Root Text Box 11: Digital Access Pass (DAP) Plugin', 'bulletproof-security').'<br>';
297
+ }
298
+ }
299
+ if ( file_exists($easy_pagination) ) {
300
+ if ( ! preg_match( '/thumbnail\\\.php/', $bps_customcode_rfi ) ) {
301
+ $autofix_message = 1;
302
+ $debug_RFI .= __('CC Root Text Box 11: Easy Pagination (code canyon) Plugin', 'bulletproof-security').'<br>';
303
+ }
304
+ }
305
+ if ( $itheme2_theme->exists() ) {
306
+ if ( ! preg_match( '/img\\\.php/', $bps_customcode_rfi ) ) {
307
+ $autofix_message = 1;
308
+ $debug_RFI .= __('CC Root Text Box 11: iTheme2 Theme', 'bulletproof-security').'<br>';
309
+ }
310
+ }
311
+ if ( $smoothv41_theme->exists() ) {
312
+ if ( ! preg_match( '/thumbnail\\\.php/', $bps_customcode_rfi ) ) {
313
+ $autofix_message = 1;
314
+ $debug_RFI .= __('CC Root Text Box 11: SmoothV4.1 Theme', 'bulletproof-security').'<br>';
315
+ }
316
+ }
317
+
318
+ ## 12. CUSTOM CODE BPSQSE BPS QUERY STRING EXPLOITS
319
+ $bps_customcode_bpsqse = htmlspecialchars_decode( $CC_Options_root['bps_customcode_bpsqse'], ENT_QUOTES );
320
+ $debug_BPSQSE = '';
321
+
322
+ $woo_PagSeguro = 'woocommerce-pagseguro/woocommerce-pagseguro.php';
323
+ $woo_PagSeguro_active = in_array( $woo_PagSeguro, apply_filters('active_plugins', get_option('active_plugins')));
324
+ $event_espresso1 = WP_PLUGIN_DIR . '/event-espresso-decaf/espresso.php';
325
+ $event_espresso2 = WP_PLUGIN_DIR . '/event-espresso-free/espresso.php';
326
+ $event_espresso3 = WP_PLUGIN_DIR . '/event-espresso/espresso.php';
327
+ $event_espresso4 = WP_PLUGIN_DIR . '/event-espresso-core-master/espresso.php';
328
+ $woo_serial_key = 'woocommerce-serial-key/serial-key.php';
329
+ $woo_serial_key_active = in_array( $woo_serial_key, apply_filters('active_plugins', get_option('active_plugins')));
330
+ $woo_worldpay = 'woocommerce/woocommerce.php';
331
+ $woo_worldpay_active = in_array( $woo_worldpay, apply_filters('active_plugins', get_option('active_plugins')));
332
+ $kama_click_counter = 'kama-clic-counter/kama_click_counter.php';
333
+ $kama_click_counter_active = in_array( $kama_click_counter, apply_filters('active_plugins', get_option('active_plugins')));
334
+ $riva_slider_pro = 'riva-slider-pro/setup.php';
335
+ $riva_slider_pro_active = in_array( $riva_slider_pro, apply_filters('active_plugins', get_option('active_plugins')));
336
+ $wp_auto_spinner = 'wp-auto-spinner/wp-auto-spinner.php';
337
+ $wp_auto_spinner_active = in_array( $wp_auto_spinner, apply_filters('active_plugins', get_option('active_plugins')));
338
+ $AgriTurismo_theme = wp_get_theme( 'agritourismo-theme' );
339
+ $wccp_pro = 'wccp-pro/preventer-index.php';
340
+ $wccp_pro_active = in_array( $wccp_pro, apply_filters('active_plugins', get_option('active_plugins')));
341
+ $panopress = 'panopress/panopress.php';
342
+ $panopress_active = in_array( $panopress, apply_filters('active_plugins', get_option('active_plugins')));
343
+ $essb_code_canyon = 'easy-social-share-buttons3/easy-social-share-buttons3.php';
344
+ $essb_code_canyon_active = in_array( $essb_code_canyon, apply_filters('active_plugins', get_option('active_plugins')));
345
+ $mainwp = 'mainwp/mainwp.php';
346
+ $mainwp_active = in_array( $mainwp, apply_filters('active_plugins', get_option('active_plugins')));
347
+ $clevercourse_theme = wp_get_theme( 'clevercourse' );
348
+ $wp_estore = 'wp-cart-for-digital-products/wp_cart_for_digital_products.php';
349
+ $wp_estore_active = in_array( $wp_estore, apply_filters('active_plugins', get_option('active_plugins')));
350
+ $wp_emember = 'wp-eMember/wp_eMember.php';
351
+ $wp_emember_active = in_array( $wp_emember, apply_filters('active_plugins', get_option('active_plugins')));
352
+ $easy_digital_downloads = 'easy-digital-downloads/easy-digital-downloads.php';
353
+ $easy_digital_downloads_active = in_array( $easy_digital_downloads, apply_filters('active_plugins', get_option('active_plugins')));
354
+ $mailpoet = 'wysija-newsletters/index.php';
355
+ $mailpoet_active = in_array( $mailpoet, apply_filters('active_plugins', get_option('active_plugins')));
356
+ $mailchimp = 'mailchimp-for-wp/mailchimp-for-wp.php';
357
+ $mailchimp_active = in_array( $mailchimp, apply_filters('active_plugins', get_option('active_plugins')));
358
+ $DAPLiveLinks = 'DAP-WP-LiveLinks/DAP-WP-LiveLinks.php';
359
+ $DAPLiveLinks_active = in_array( $DAPLiveLinks, apply_filters('active_plugins', get_option('active_plugins')));
360
+ $wp_newsletter = 'wp-mailinglist/wp-mailinglist.php';
361
+ $wp_newsletter_active = in_array( $wp_newsletter, apply_filters('active_plugins', get_option('active_plugins')));
362
+
363
+ ## BPSQSE RegEx Patterns
364
+ // 3 variations for both UA rules below: only java, java and curl, java, curl and wget
365
+ $useragent1_j = '/RewriteCond\s%\{HTTP_USER_AGENT\}\s\(havij\|libwww-perl\|(.*)python\|nikto\|(.*)scan\|winhttp\|clshttp\|loader\)\s\[NC,OR\]/';
366
+ $useragent1_jc = '/RewriteCond\s%\{HTTP_USER_AGENT\}\s\(havij\|libwww-perl\|(.*)python\|nikto\|scan\|winhttp\|clshttp\|loader\)\s\[NC,OR\]/';
367
+ $useragent1_jcw = '/RewriteCond\s%\{HTTP_USER_AGENT\}\s\(havij\|libwww-perl\|python\|nikto\|scan\|winhttp\|clshttp\|loader\)\s\[NC,OR\]/';
368
+ $useragent2_j = '/RewriteCond\s%\{HTTP_USER_AGENT\}\s\(;\|\<\|\>\|\'\|\"\|(.*)libwww-perl\|(.*)python\|nikto\|(.*)scan\|winhttp\|(.*)miner\)\s\[NC,OR\]/';
369
+ $useragent2_jc = '/RewriteCond\s%\{HTTP_USER_AGENT\}\s\(;\|\<\|\>\|\'\|\"\|(.*)libwww-perl\|(.*)python\|nikto\|scan\|winhttp\|(.*)miner\)\s\[NC,OR\]/';
370
+ $useragent2_jcw = '/RewriteCond\s%\{HTTP_USER_AGENT\}\s\(;\|\<\|\>\|\'\|\"\|(.*)libwww-perl\|python\|nikto\|scan\|winhttp\|(.*)miner\)\s\[NC,OR\]/';
371
+
372
+ $marker1 = '/BPS\sAutoWhitelist\sQS1/'; // RewriteCond %{HTTP_REFERER} (%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
373
+ $marker2 = '/BPS\sAutoWhitelist\sQS2/'; // RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(http|https):// [NC,OR]
374
+ $marker3 = '/BPS\sAutoWhitelist\sQS3/'; // RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC,OR]
375
+ $marker4 = '/BPS\sAutoWhitelist\sQS4/'; // RewriteCond %{QUERY_STRING} (http|https)\: [NC,OR]
376
+ $marker5 = '/BPS\sAutoWhitelist\sQS5/'; // RewriteCond %{QUERY_STRING} ^.*(\(|\)|<|>|%3c|%3e).* [NC,OR]
377
+
378
+ $query_string1 = '/RewriteCond\s%\{HTTP_USER_AGENT\}\s\(%0A\|%0D\|%3C\|%3E\|%00\)\s\[NC,OR\]/'; // single quote removed
379
+ // $referer = '/RewriteCond\s%\{HTTP_REFERER\}\s\(%0A\|%0D\|%3C\|%3E\|%00\)\s\[NC,OR\]/'; // single quote removed & QS1 but don't check this.
380
+ // $query_string2 = '/RewriteCond\s%\{QUERY_STRING\}\s\^\.\*\(\<\|\>\|%3c\|%3e\)\.\*\s\[NC,OR\]/'; // round brackets removed & QS5 but don't check this.
381
+ $query_string2 = '/RewriteCond\s%\{QUERY_STRING\}\s\(<\|>\|%0A\|%0D\|%3C\|%3E\|%00\)\s\[NC,OR\]/'; // single quote removed
382
+ $query_string_sql = '/RewriteCond\s%\{QUERY_STRING\}\s\(;\|\<\|\>\|\'\|(.*)\|alter\|declare\|script\|set\|md5\|benchmark\|encode\)\s\[NC,OR\]/';
383
+
384
+ if ( $woo_PagSeguro_active == 1 || is_plugin_active_for_network( $woo_PagSeguro ) ) {
385
+ if ( ! preg_match( $useragent1_j, $bps_customcode_bpsqse ) || ! preg_match( $useragent2_j, $bps_customcode_bpsqse ) ) {
386
+ $autofix_message = 1;
387
+ $debug_BPSQSE .= __('CC Root Text Box 12: WooCommerce PagSeguro Plugin', 'bulletproof-security').'<br>';
388
+ }
389
+ }
390
+ if ( file_exists($event_espresso1) || file_exists($event_espresso2) || file_exists($event_espresso3) || file_exists($event_espresso4) ) {
391
+ if ( ! preg_match( $marker1, $bps_customcode_bpsqse ) ) {
392
+ $autofix_message = 1;
393
+ $debug_BPSQSE .= __('CC Root Text Box 12: Event Espresso Plugin', 'bulletproof-security').'<br>';
394
+ }
395
+ }
396
+ if ( $woo_serial_key_active == 1 || is_plugin_active_for_network( $woo_serial_key ) ) {
397
+ if ( ! preg_match( $marker2, $bps_customcode_bpsqse ) || ! preg_match( $marker3, $bps_customcode_bpsqse ) || ! preg_match( $marker4, $bps_customcode_bpsqse ) ) {
398
+ $autofix_message = 1;
399
+ $debug_BPSQSE .= __('CC Root Text Box 12: WooCommerce Serial Key Plugin', 'bulletproof-security').'<br>';
400
+ }
401
+ }
402
+ if ( $woo_worldpay_active == 1 || is_plugin_active_for_network( $woo_worldpay ) ) {
403
+ if ( ! preg_match( $useragent1_j, $bps_customcode_bpsqse ) || ! preg_match( $useragent2_j, $bps_customcode_bpsqse ) ) {
404
+ $autofix_message = 1;
405
+ $debug_BPSQSE .= __('CC Root Text Box 12: WooCommerce WorldPay Extension', 'bulletproof-security').'<br>';
406
+ }
407
+ }
408
+ if ( $kama_click_counter_active == 1 || is_plugin_active_for_network( $kama_click_counter ) ) {
409
+ if ( ! preg_match( $marker2, $bps_customcode_bpsqse ) || ! preg_match( $marker3, $bps_customcode_bpsqse ) || ! preg_match( $marker4, $bps_customcode_bpsqse ) ) {
410
+ $autofix_message = 1;
411
+ $debug_BPSQSE .= __('CC Root Text Box 12: Kama Click Counter Plugin', 'bulletproof-security').'<br>';
412
+ }
413
+ }
414
+ if ( $riva_slider_pro_active == 1 || is_plugin_active_for_network( $riva_slider_pro ) ) {
415
+ if ( ! preg_match( $marker2, $bps_customcode_bpsqse ) || ! preg_match( $marker3, $bps_customcode_bpsqse ) || ! preg_match( $marker4, $bps_customcode_bpsqse ) ) {
416
+ $autofix_message = 1;
417
+ $debug_BPSQSE .= __('CC Root Text Box 12: Riva Slider Pro Plugin', 'bulletproof-security').'<br>';
418
+ }
419
+ }
420
+ if ( $wp_auto_spinner_active == 1 || is_plugin_active_for_network( $wp_auto_spinner ) ) {
421
+ if ( ! preg_match( $useragent1_jc, $bps_customcode_bpsqse ) || ! preg_match( $useragent2_jc, $bps_customcode_bpsqse ) ) {
422
+ $autofix_message = 1;
423
+ $debug_BPSQSE .= __('CC Root Text Box 12: WordPress Auto Spinner Plugin', 'bulletproof-security').'<br>';
424
+ }
425
+ }
426
+ if ( $AgriTurismo_theme->exists() ) {
427
+ if ( ! preg_match( $marker5, $bps_customcode_bpsqse ) ) {
428
+ $autofix_message = 1;
429
+ $debug_BPSQSE .= __('CC Root Text Box 12: AgriTurismo Theme', 'bulletproof-security').'<br>';
430
+ }
431
+ }
432
+ if ( $wccp_pro_active == 1 || is_plugin_active_for_network( $wccp_pro ) ) {
433
+ if ( ! preg_match( $marker2, $bps_customcode_bpsqse ) || ! preg_match( $marker3, $bps_customcode_bpsqse ) || ! preg_match( $marker4, $bps_customcode_bpsqse ) ) {
434
+ $autofix_message = 1;
435
+ $debug_BPSQSE .= __('CC Root Text Box 12: WP Content Copy Protection Plugin', 'bulletproof-security').'<br>';
436
+ }
437
+ }
438
+ if ( $panopress_active == 1 || is_plugin_active_for_network( $panopress ) ) {
439
+ if ( ! preg_match( $marker2, $bps_customcode_bpsqse ) || ! preg_match( $marker3, $bps_customcode_bpsqse ) || ! preg_match( $marker4, $bps_customcode_bpsqse ) ) {
440
+ $autofix_message = 1;
441
+ $debug_BPSQSE .= __('CC Root Text Box 12: PanoPress Plugin', 'bulletproof-security').'<br>';
442
+ }
443
+ }
444
+ if ( $essb_code_canyon_active == 1 || is_plugin_active_for_network( $essb_code_canyon ) ) {
445
+ if ( ! preg_match( $marker2, $bps_customcode_bpsqse ) || ! preg_match( $marker3, $bps_customcode_bpsqse ) || ! preg_match( $marker4, $bps_customcode_bpsqse ) ) {
446
+ $autofix_message = 1;
447
+ $debug_BPSQSE .= __('CC Root Text Box 12: Easy Social Share Buttons (Code Canyon) Plugin', 'bulletproof-security').'<br>';
448
+ }
449
+ }
450
+ if ( $mainwp_active == 1 || is_plugin_active_for_network( $mainwp ) ) {
451
+ if ( ! preg_match( $query_string_sql, $bps_customcode_bpsqse ) ) {
452
+ $autofix_message = 1;
453
+ $debug_BPSQSE .= __('CC Root Text Box 12: MainWP Plugin', 'bulletproof-security').'<br>';
454
+ }
455
+ }
456
+ if ( $clevercourse_theme->exists() ) {
457
+ if ( ! preg_match( $marker2, $bps_customcode_bpsqse ) || ! preg_match( $marker3, $bps_customcode_bpsqse ) || ! preg_match( $marker4, $bps_customcode_bpsqse ) ) {
458
+ $autofix_message = 1;
459
+ $debug_BPSQSE .= __('CC Root Text Box 12: Clever Course Theme', 'bulletproof-security').'<br>';
460
+ }
461
+ }
462
+ if ( $wp_estore_active == 1 || is_plugin_active_for_network( $wp_estore ) ) {
463
+ if ( ! preg_match( $useragent1_jc, $bps_customcode_bpsqse ) || ! preg_match( $useragent2_jc, $bps_customcode_bpsqse ) ) {
464
+ $autofix_message = 1;
465
+ $debug_BPSQSE .= __('CC Root Text Box 12: WP eStore (WP Cart for Digital Products) Plugin', 'bulletproof-security').'<br>';
466
+ }
467
+ }
468
+ if ( $wp_emember_active == 1 || is_plugin_active_for_network( $wp_emember ) ) {
469
+ if ( ! preg_match( $useragent1_jc, $bps_customcode_bpsqse ) || ! preg_match( $useragent2_jc, $bps_customcode_bpsqse ) ) {
470
+ $autofix_message = 1;
471
+ $debug_BPSQSE .= __('CC Root Text Box 12: WP eMember Plugin', 'bulletproof-security').'<br>';
472
+ }
473
+ }
474
+ if ( $easy_digital_downloads_active == 1 || is_plugin_active_for_network( $easy_digital_downloads ) ) {
475
+ if ( ! preg_match( $marker2, $bps_customcode_bpsqse ) || ! preg_match( $marker3, $bps_customcode_bpsqse ) || ! preg_match( $marker4, $bps_customcode_bpsqse ) ) {
476
+ $autofix_message = 1;
477
+ $debug_BPSQSE .= __('CC Root Text Box 12: Easy Digital Downloads Plugin', 'bulletproof-security').'<br>';
478
+ }
479
+ }
480
+ if ( $mailpoet_active == 1 || is_plugin_active_for_network( $mailpoet ) ) {
481
+ if ( ! preg_match( $useragent1_jcw, $bps_customcode_bpsqse ) || ! preg_match( $useragent2_jcw, $bps_customcode_bpsqse ) ) {
482
+ $autofix_message = 1;
483
+ $debug_BPSQSE .= __('CC Root Text Box 12: MailPoet Newsletters (wysija newsletters) Plugin', 'bulletproof-security').'<br>';
484
+ }
485
+ }
486
+ if ( $mailchimp_active == 1 || is_plugin_active_for_network( $mailchimp ) ) {
487
+ if ( ! preg_match( $query_string1, $bps_customcode_bpsqse ) || ! preg_match( $query_string2, $bps_customcode_bpsqse ) ) {
488
+ $autofix_message = 1;
489
+ $debug_BPSQSE .= __('CC Root Text Box 12: MailChimp for WordPress Plugin', 'bulletproof-security').'<br>';
490
+ }
491
+ }
492
+ if ( $DAPLiveLinks_active == 1 || is_plugin_active_for_network( $DAPLiveLinks ) ) {
493
+ if ( ! preg_match( $marker2, $bps_customcode_bpsqse ) || ! preg_match( $marker3, $bps_customcode_bpsqse ) || ! preg_match( $marker4, $bps_customcode_bpsqse ) ) {
494
+ $autofix_message = 1;
495
+ $debug_BPSQSE .= __('CC Root Text Box 12: Digital Access Pass (DAP) Plugin', 'bulletproof-security').'<br>';
496
+ }
497
+ }
498
+ if ( $wp_newsletter_active == 1 || is_plugin_active_for_network( $wp_newsletter ) ) {
499
+ if ( ! preg_match( $useragent1_jcw, $bps_customcode_bpsqse ) || ! preg_match( $useragent2_jcw, $bps_customcode_bpsqse ) ) {
500
+ $autofix_message = 1;
501
+ $debug_BPSQSE .= __('CC Root Text Box 12: WordPress Newsletter (tribulant) Plugin', 'bulletproof-security').'<br>';
502
+ }
503
+ }
504
+
505
+ ## 3. CUSTOM CODE WPADMIN PLUGIN/FILE SKIP RULES
506
+ $bps_customcode_two_wpa = htmlspecialchars_decode( $CC_Options_wpadmin['bps_customcode_two_wpa'], ENT_QUOTES );
507
+ $debug_wpadmin_PSB = '';
508
+
509
+ $woo_pfeed_pro = 'webappick-product-feed-for-woocommerce-pro/webappick-product-feed-for-woocommerce-pro.php';
510
+ $woo_pfeed_pro_active = in_array( $woo_pfeed_pro, apply_filters('active_plugins', get_option('active_plugins')));
511
+ $visual_composer = 'js_composer/js_composer.php';
512
+ $visual_composer_active = in_array( $visual_composer, apply_filters('active_plugins', get_option('active_plugins')));
513
+ $bookly_booking = 'appointment-booking/main.php';
514
+ $bookly_booking_active = in_array( $bookly_booking, apply_filters('active_plugins', get_option('active_plugins')));
515
+ $emg_pro = 'easy-media-gallery-pro/easy-media-gallery-pro.php';
516
+ $emg_pro_active = in_array( $emg_pro, apply_filters('active_plugins', get_option('active_plugins')));
517
+ $nextgen_gallery = 'nextgen-gallery/nggallery.php';
518
+ $nextgen_gallery_active = in_array( $nextgen_gallery, apply_filters('active_plugins', get_option('active_plugins')));
519
+ $OptimizePress_theme = wp_get_theme( 'optimizePressTheme' );
520
+ $wp_checkout = 'wp-checkout/wp-checkout.php';
521
+ $wp_checkout_active = in_array( $wp_checkout, apply_filters('active_plugins', get_option('active_plugins')));
522
+ $video_showcase = 'videoshowcase/videoshowcase.php';
523
+ $video_showcase_active = in_array( $video_showcase, apply_filters('active_plugins', get_option('active_plugins')));
524
+ $wp_invoice = 'wp-invoice/wp-invoice.php';
525
+ $wp_invoice_active = in_array( $wp_invoice, apply_filters('active_plugins', get_option('active_plugins')));
526
+ $yoast_seo = 'wordpress-seo/wp-seo.php';
527
+ $yoast_seo_active = in_array( $yoast_seo, apply_filters('active_plugins', get_option('active_plugins')));
528
+ $formidable_pro = WP_PLUGIN_DIR . '/formidable/pro/formidable-pro.php';
529
+ $google_typography = 'google-typography/google-typography.php';
530
+ $google_typography_active = in_array( $google_typography, apply_filters('active_plugins', get_option('active_plugins')));
531
+ $flare = 'flare/flare.php';
532
+ $flare_active = in_array( $flare, apply_filters('active_plugins', get_option('active_plugins')));
533
+ $bbPress = 'bbpress/bbpress.php';
534
+ $bbPress_active = in_array( $bbPress, apply_filters('active_plugins', get_option('active_plugins')));
535
+ $spider_calendar = 'spider-event-calendar/calendar.php';
536
+ $spider_calendar_active = in_array( $spider_calendar, apply_filters('active_plugins', get_option('active_plugins')));
537
+ $buddypress = 'buddypress/bp-loader.php';
538
+ $buddypress_active = in_array( $buddypress, apply_filters('active_plugins', get_option('active_plugins')));
539
+ $wpml_transman = 'wpml-translation-management/plugin.php';
540
+ $wpml_transman_active = in_array( $wpml_transman, apply_filters('active_plugins', get_option('active_plugins')));
541
+ $events_manager = 'events-manager/events-manager.php';
542
+ $events_manager_active = in_array( $events_manager, apply_filters('active_plugins', get_option('active_plugins')));
543
+ $mailpoet = 'wysija-newsletters/index.php';
544
+ $mailpoet_active = in_array( $mailpoet, apply_filters('active_plugins', get_option('active_plugins')));
545
+ $event_espresso1 = WP_PLUGIN_DIR . '/event-espresso-decaf/espresso.php';
546
+ $event_espresso2 = WP_PLUGIN_DIR . '/event-espresso-free/espresso.php';
547
+ $event_espresso3 = WP_PLUGIN_DIR . '/event-espresso/espresso.php';
548
+ $event_espresso4 = WP_PLUGIN_DIR . '/event-espresso-core-master/espresso.php';
549
+ $content_egg = 'content-egg/content-egg.php';
550
+ $content_egg_active = in_array( $content_egg, apply_filters('active_plugins', get_option('active_plugins')));
551
+
552
+ ## wp-admin plugin skip/bypass RegEx patterns
553
+ $post_psb = '/RewriteCond\s%{REQUEST_URI}\s\(post\\\.php\)\s\[NC\]/';
554
+ $admin_ajax_psb = '/RewriteCond\s%{REQUEST_URI}\s\(admin-ajax\\\.php\)\s\[NC\]/';
555
+
556
+ if ( $woo_pfeed_pro_active == 1 || is_plugin_active_for_network( $woo_pfeed_pro ) ) {
557
+ if ( ! preg_match( '/RewriteCond\s%{QUERY_STRING}\spage=woo_feed_manage_feed\(\.\*\)\s\[NC\]/', $bps_customcode_two_wpa ) ) {
558
+ $autofix_message = 1;
559
+ $debug_wpadmin_PSB .= __('CC wp-admin Text Box 3: WooCommerce Product Feed Pro Plugin', 'bulletproof-security').'<br>';
560
+ }
561
+ }
562
+ if ( $visual_composer_active == 1 || is_plugin_active_for_network( $visual_composer ) ) {
563
+ if ( ! preg_match( $post_psb, $bps_customcode_two_wpa ) ) {
564
+ $autofix_message = 1;
565
+ $debug_wpadmin_PSB .= __('CC wp-admin Text Box 3: WPBakery Visual Composer Plugin', 'bulletproof-security').'<br>';
566
+ }
567
+ }
568
+ if ( $bookly_booking_active == 1 || is_plugin_active_for_network( $bookly_booking ) ) {
569
+ if ( ! preg_match( $admin_ajax_psb, $bps_customcode_two_wpa ) ) {
570
+ $autofix_message = 1;
571
+ $debug_wpadmin_PSB .= __('CC wp-admin Text Box 3: Bookly Booking Plugin', 'bulletproof-security').'<br>';
572
+ }
573
+ }
574
+ if ( $emg_pro_active == 1 || is_plugin_active_for_network( $emg_pro ) ) {
575
+ if ( ! preg_match( $admin_ajax_psb, $bps_customcode_two_wpa ) ) {
576
+ $autofix_message = 1;
577
+ $debug_wpadmin_PSB .= __('CC wp-admin Text Box 3: Easy Media Gallery Pro Plugin', 'bulletproof-security').'<br>';
578
+ }
579
+ }
580
+ if ( $nextgen_gallery_active == 1 || is_plugin_active_for_network( $nextgen_gallery ) ) {
581
+ if ( ! preg_match( '/RewriteCond\s%{QUERY_STRING}\spage=nggallery-manage-gallery\(\.\*\)\s\[NC\]/', $bps_customcode_two_wpa ) ) {
582
+ $autofix_message = 1;
583
+ $debug_wpadmin_PSB .= __('CC wp-admin Text Box 3: NextGen Gallery Plugin', 'bulletproof-security').'<br>';
584
+ }
585
+ }
586
+ if ( $OptimizePress_theme->exists() ) {
587
+ if ( ! preg_match( '/RewriteCond\s%{QUERY_STRING}\spage=optimizepress-page-builder\(\.\*\)\s\[NC\]/', $bps_customcode_two_wpa ) ) {
588
+ $autofix_message = 1;
589
+ $debug_wpadmin_PSB .= __('CC wp-admin Text Box 3: OptimizePress Theme', 'bulletproof-security').'<br>';
590
+ }
591
+ }
592
+ if ( $wp_checkout_active == 1 || is_plugin_active_for_network( $wp_checkout ) ) {
593
+ if ( ! preg_match( $admin_ajax_psb, $bps_customcode_two_wpa ) ) {
594
+ $autofix_message = 1;
595
+ $debug_wpadmin_PSB .= __('CC wp-admin Text Box 3: tribulant Shopping Cart (WP Checkout) Plugin', 'bulletproof-security').'<br>';
596
+ }
597
+ }
598
+ if ( $video_showcase_active == 1 || is_plugin_active_for_network( $video_showcase ) ) {
599
+ if ( ! preg_match( $admin_ajax_psb, $bps_customcode_two_wpa ) ) {
600
+ $autofix_message = 1;
601
+ $debug_wpadmin_PSB .= __('CC wp-admin Text Box 3: ithemes Video Showcase Plugin', 'bulletproof-security').'<br>';
602
+ }
603
+ }
604
+ if ( $wp_invoice_active == 1 || is_plugin_active_for_network( $wp_invoice ) ) {
605
+ if ( ! preg_match( '/RewriteCond\s%{QUERY_STRING}\spage=wpi_\(\.\*\)\s\[NC\]/', $bps_customcode_two_wpa ) ) {
606
+ $autofix_message = 1;
607
+ $debug_wpadmin_PSB .= __('CC wp-admin Text Box 3: WP-Invoice - Web Invoice and Billing Plugin', 'bulletproof-security').'<br>';
608
+ }
609
+ }
610
+ if ( $yoast_seo_active == 1 || is_plugin_active_for_network( $yoast_seo ) ) {
611
+ if ( ! preg_match( '/RewriteCond\s%{QUERY_STRING}\spage=wpseo_social&key=\(\.\*\)\s\[NC\]/', $bps_customcode_two_wpa ) ) {
612
+ $autofix_message = 1;
613
+ $debug_wpadmin_PSB .= __('CC wp-admin Text Box 3: Yoast SEO Plugin', 'bulletproof-security').'<br>';
614
+ }
615
+ }
616
+ if ( file_exists($formidable_pro) ) {
617
+ if ( ! preg_match( '/RewriteCond\s%{QUERY_STRING}\splugin=formidable&controller=settings\(\.\*\)\s\[NC\]/', $bps_customcode_two_wpa ) ) {
618
+ $autofix_message = 1;
619
+ $debug_wpadmin_PSB .= __('CC wp-admin Text Box 3: Formidable Pro Plugin', 'bulletproof-security').'<br>';
620
+ }
621
+ }
622
+ if ( $google_typography_active == 1 || is_plugin_active_for_network( $google_typography ) ) {
623
+ if ( ! preg_match( $admin_ajax_psb, $bps_customcode_two_wpa ) ) {
624
+ $autofix_message = 1;
625
+ $debug_wpadmin_PSB .= __('CC wp-admin Text Box 3: Google Typography Plugin', 'bulletproof-security').'<br>';
626
+ }
627
+ }
628
+ if ( $flare_active == 1 || is_plugin_active_for_network( $flare ) ) {
629
+ if ( ! preg_match( $admin_ajax_psb, $bps_customcode_two_wpa ) ) {
630
+ $autofix_message = 1;
631
+ $debug_wpadmin_PSB .= __('CC wp-admin Text Box 3: Flare Plugin', 'bulletproof-security').'<br>';
632
+ }
633
+ }
634
+ if ( $bbPress_active == 1 || is_plugin_active_for_network( $bbPress ) ) {
635
+ if ( ! preg_match( $post_psb, $bps_customcode_two_wpa ) ) {
636
+ $autofix_message = 1;
637
+ $debug_wpadmin_PSB .= __('CC wp-admin Text Box 3: bbPress Plugin', 'bulletproof-security').'<br>';
638
+ }
639
+ }
640
+ if ( $spider_calendar_active == 1 || is_plugin_active_for_network( $spider_calendar ) ) {
641
+ if ( ! preg_match( $admin_ajax_psb, $bps_customcode_two_wpa ) ) {
642
+ $autofix_message = 1;
643
+ $debug_wpadmin_PSB .= __('CC wp-admin Text Box 3: Spider Event Calendar (WordPress Event Calendar) Plugin', 'bulletproof-security').'<br>';
644
+ }
645
+ }
646
+ if ( $buddypress_active == 1 || is_plugin_active_for_network( $buddypress ) ) {
647
+ $bp_active_components = bp_get_option( 'bp-active-components' );
648
+ foreach ( $bp_active_components as $key => $value ) {
649
+ if ( $key == 'messages' ) {
650
+ if ( ! preg_match( $admin_ajax_psb, $bps_customcode_two_wpa ) ) {
651
+ $autofix_message = 1;
652
+ $debug_wpadmin_PSB .= __('CC wp-admin Text Box 3: BuddyPress Plugin', 'bulletproof-security').'<br>';
653
+ }
654
+ }
655
+ }
656
+ }
657
+ if ( $wpml_transman_active == 1 || is_plugin_active_for_network( $wpml_transman ) ) {
658
+ if ( ! preg_match( '/RewriteCond\s%{QUERY_STRING}\spage=wpml-translation-management\(\.\*\)\s\[NC\]/', $bps_customcode_two_wpa ) ) {
659
+ $autofix_message = 1;
660
+ $debug_wpadmin_PSB .= __('CC wp-admin Text Box 3: WPML Translation Management Plugin', 'bulletproof-security').'<br>';
661
+ }
662
+ }
663
+ if ( $events_manager_active == 1 || is_plugin_active_for_network( $events_manager ) ) {
664
+ if ( ! preg_match( $admin_ajax_psb, $bps_customcode_two_wpa ) ) {
665
+ $autofix_message = 1;
666
+ $debug_wpadmin_PSB .= __('CC wp-admin Text Box 3: Events Manager Plugin', 'bulletproof-security').'<br>';
667
+ }
668
+ }
669
+ if ( $mailpoet_active == 1 || is_plugin_active_for_network( $mailpoet ) ) {
670
+ if ( ! preg_match( $admin_ajax_psb, $bps_customcode_two_wpa ) ) {
671
+ $autofix_message = 1;
672
+ $debug_wpadmin_PSB .= __('CC wp-admin Text Box 3: MailPoet Newsletters (wysija newsletters) Plugin', 'bulletproof-security').'<br>';
673
+ }
674
+ }
675
+ if ( file_exists($event_espresso1) || file_exists($event_espresso2) || file_exists($event_espresso3) || file_exists($event_espresso4) ) {
676
+ if ( ! preg_match( '/RewriteCond\s%{REQUEST_URI}\s\(admin\\\.php\)\s\[NC\]/', $bps_customcode_two_wpa ) ) {
677
+ $autofix_message = 1;
678
+ $debug_wpadmin_PSB .= __('CC wp-admin Text Box 3: Event Espresso Plugin', 'bulletproof-security').'<br>';
679
+ }
680
+ }
681
+ if ( $content_egg_active == 1 || is_plugin_active_for_network( $content_egg ) ) {
682
+ if ( ! preg_match( $admin_ajax_psb, $bps_customcode_two_wpa ) ) {
683
+ $autofix_message = 1;
684
+ $debug_wpadmin_PSB .= __('CC wp-admin Text Box 3: Content Egg (Free and Pro) Plugin', 'bulletproof-security').'<br>';
685
+ }
686
+ }
687
+
688
+ ## 4. CUSTOM CODE BPSQSE-check BPS QUERY STRING EXPLOITS AND FILTERS
689
+ $bps_customcode_bpsqse_wpa = htmlspecialchars_decode( $CC_Options_wpadmin['bps_customcode_bpsqse_wpa'], ENT_QUOTES );
690
+ $debug_wpadmin_BPSQSE = '';
691
+
692
+ $content_egg = 'content-egg/content-egg.php';
693
+ $content_egg_active = in_array( $content_egg, apply_filters('active_plugins', get_option('active_plugins')));
694
+ $event_espresso1 = WP_PLUGIN_DIR . '/event-espresso-decaf/espresso.php';
695
+ $event_espresso2 = WP_PLUGIN_DIR . '/event-espresso-free/espresso.php';
696
+ $event_espresso3 = WP_PLUGIN_DIR . '/event-espresso/espresso.php';
697
+ $event_espresso4 = WP_PLUGIN_DIR . '/event-espresso-core-master/espresso.php';
698
+ $owa_plugin = 'owa/wp_plugin.php';
699
+ $owa_plugin_active = in_array( $owa_plugin, apply_filters('active_plugins', get_option('active_plugins')));
700
+ $uberGrid = 'uber-grid/uber-grid.php';
701
+ $uberGrid_active = in_array( $uberGrid, apply_filters('active_plugins', get_option('active_plugins')));
702
+
703
+ ## wp-admin BPSQSE RegEx patterns
704
+ $marker_wpadmin1 = '/BPS\sAutoWhitelist\sQS1/'; // Primary SQL Injection rule
705
+ $marker_wpadmin2 = '/BPS\sAutoWhitelist\sQS2/'; // RewriteCond %{HTTP_REFERER} (%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
706
+ $marker_wpadmin3 = '/BPS\sAutoWhitelist\sQS3/'; // RewriteCond %{QUERY_STRING} (<|>|'|%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
707
+ $marker_wpadmin4 = '/BPS\sAutoWhitelist\sQS4/'; // RewriteCond %{QUERY_STRING} ^.*(\(|\)|<|>).* [NC,OR]
708
+
709
+ if ( $content_egg_active == 1 || is_plugin_active_for_network( $content_egg ) ) {
710
+ if ( ! preg_match( $$marker_wpadmin1, $bps_customcode_bpsqse_wpa ) ) {
711
+ $autofix_message = 1;
712
+ $debug_wpadmin_BPSQSE .= __('CC wp-admin Text Box 4: Content Egg (Free and Pro) Plugin', 'bulletproof-security').'<br>';
713
+ }
714
+ }
715
+ if ( file_exists($event_espresso1) || file_exists($event_espresso2) || file_exists($event_espresso3) || file_exists($event_espresso4) ) {
716
+ if ( ! preg_match( $marker_wpadmin2, $bps_customcode_bpsqse_wpa ) || ! preg_match( $marker_wpadmin3, $bps_customcode_bpsqse_wpa ) ) {
717
+ $autofix_message = 1;
718
+ $debug_wpadmin_BPSQSE .= __('CC wp-admin Text Box 4: Event Espresso Plugin', 'bulletproof-security').'<br>';
719
+ }
720
+ }
721
+ if ( $owa_plugin_active == 1 || is_plugin_active_for_network( $owa_plugin ) ) {
722
+ if ( ! preg_match( $marker_wpadmin2, $bps_customcode_bpsqse_wpa ) || ! preg_match( $marker_wpadmin3, $bps_customcode_bpsqse_wpa )
723
+ || ! preg_match( $marker_wpadmin4, $bps_customcode_bpsqse_wpa ) ) {
724
+ $autofix_message = 1;
725
+ $debug_wpadmin_BPSQSE .= __('CC wp-admin Text Box 4: Open Web Analytics (github) Plugin', 'bulletproof-security').'<br>';
726
+ }
727
+ }
728
+ if ( $uberGrid_active == 1 || is_plugin_active_for_network( $uberGrid ) ) {
729
+ if ( ! preg_match( $marker_wpadmin2, $bps_customcode_bpsqse_wpa ) || ! preg_match( $marker_wpadmin3, $bps_customcode_bpsqse_wpa )
730
+ || ! preg_match( $marker_wpadmin4, $bps_customcode_bpsqse_wpa ) ) {
731
+ $autofix_message = 1;
732
+ $debug_wpadmin_BPSQSE .= __('CC wp-admin Text Box 4: UberGrid (code canyon) Plugin', 'bulletproof-security').'<br>';
733
+ }
734
+ }
735
+
736
+ ## Display Setup Wizard AutoFix WP Dashboard message
737
+ if ( $autofix_message == 1 ) {
738
+ $text_wp = '<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 Setup Wizard AutoFix (AutoWhitelist|AutoSetup|AutoCleanup) Notice', 'bulletproof-security').'</font><br>'.__('One or more of your plugins or your theme requires a BPS Custom Code whitelist rule to be automatically created by the Setup Wizard.', 'bulletproof-security').'<br>'.__('Click this ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php' ).'" title="Setup Wizard AutoFix">'.__('Setup Wizard link', 'bulletproof-security').'</a>'.__(' and click the Setup Wizard button to automatically create BPS Custom Code whitelist rules.', 'bulletproof-security').'<br>'.__('This BPS AutoFix check can be turned Off on the ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php#bps-tabs-2' ).'" title="Setup Wizard Options">'.__('Setup Wizard Options', 'bulletproof-security').'</a>'.__(' page if you do not want BPS to check for any plugin or theme whitelist rules.', 'bulletproof-security').'</div>';
739
+ echo $text_wp;
740
+ }
741
+
742
+ ## Display Custom Code Text Box Number and Plugin or Theme Name for any detected CC whitelist rules when BPS Pro AutoFix Debug is turned On
743
+ $Debug_options = get_option('bulletproof_security_options_debug');
744
+
745
+ if ( $Debug_options['bps_debug'] == 'On' ) {
746
+ echo '<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);">';
747
+ echo '<font color="blue"><strong>'.__('BPS AutoFix Debug: Custom Code Text Box Number and Plugin or Theme Name', 'bulletproof-security').'</strong></font><br>';
748
+
749
+ if ( $debug_RMF == '' && $debug_PTSB == '' && $debug_RFI == '' && $debug_BPSQSE == '' && $debug_wpadmin_PSB == '' && $debug_wpadmin_BPSQSE == '' ) {
750
+ echo __('No Plugin or Theme AutoFix Custom Code Whitelist Rules were found', 'bulletproof-security');
751
+ } else {
752
+ echo $debug_RMF . $debug_PTSB . $debug_RFI . $debug_BPSQSE . $debug_wpadmin_PSB . $debug_wpadmin_BPSQSE;
753
+ }
754
+ echo '</div>';
755
+ }
756
+ }
757
+
758
+ ?>
includes/hud-dismiss-functions.php CHANGED
@@ -11,29 +11,21 @@ if ( ! function_exists ('add_action') ) {
11
  function bps_HUD_WP_Dashboard() {
12
 
13
  if ( current_user_can('manage_options') ) {
14
- $plugin_var_w3tc = 'w3-total-cache/w3-total-cache.php';
15
- $plugin_var_wpsc = 'wp-super-cache/wp-cache.php';
16
- echo bps_check_php_version_error();
17
- echo bps_check_safemode();
18
- echo bps_check_permalinks_error();
19
- echo bps_check_iis_supports_permalinks();
20
- echo bps_hud_check_bpsbackup();
21
- echo bpsPro_bonus_custom_code_dismiss_notices();
22
- echo bps_hud_PhpiniHandlerCheck();
23
- echo bps_hud_check_sucuri();
24
- echo bps_hud_check_wordpress_firewall2();
25
- echo bps_hud_broken_link_checker();
26
- echo bps_hud_check_jetpack();
27
- echo bps_hud_check_woocommerce();
28
- echo bpsPro_hud_woocommerce_enable_lsm_jtc();
29
- echo bps_hud_BPSQSE_old_code_check();
30
- echo @bps_w3tc_htaccess_check($plugin_var_w3tc);
31
- echo @bps_wpsc_htaccess_check($plugin_var_wpsc);
32
- echo bpsPro_BBM_htaccess_check();
33
- echo bpsPro_hud_speed_boost_cache_code();
34
- echo bps_hud_check_autoupdate();
35
- echo bpsPro_EPC_plugin_check();
36
- //echo bps_hud_check_public_username();
37
  }
38
  }
39
  add_action('admin_notices', 'bps_HUD_WP_Dashboard');
@@ -424,32 +416,35 @@ $user_id = $current_user->ID;
424
  // Unfortunately the limited whitelisting options provided by Sucuri in their settings don't provide any workable solutions for BPS.
425
  function bps_hud_check_sucuri() {
426
  $filename = WP_CONTENT_DIR . '/.htaccess';
427
- $plugin_var = 'sucuri-scanner/sucuri.php';
428
- $return_var = in_array( $plugin_var, apply_filters('active_plugins', get_option('active_plugins') ) );
429
 
430
- if ( $return_var == 1 && ! file_exists($filename) ) { // 1 equals active
431
  return;
432
  }
433
 
434
  if ( function_exists('sucuriscan_harden_wpcontent') ) {
435
 
436
- if ( $return_var == 1 && file_exists($filename) && preg_match( '/WP-content\sdirectory\sproperly\shardened/', sucuriscan_harden_wpcontent(), $matches ) ) {
437
-
438
- global $current_user;
439
- $user_id = $current_user->ID;
440
 
441
- if ( ! get_user_meta($user_id, 'bps_ignore_sucuri_notice') ) {
 
 
 
442
 
443
- if ( esc_html($_SERVER['QUERY_STRING']) == '' && basename(esc_html($_SERVER['REQUEST_URI'])) != 'wp-admin' ) {
444
- $bps_base = basename(esc_html($_SERVER['REQUEST_URI'])) . '?';
445
- } elseif ( esc_html($_SERVER['QUERY_STRING']) == '' && basename(esc_html($_SERVER['REQUEST_URI'])) == 'wp-admin' ) {
446
- $bps_base = basename( str_replace( 'wp-admin', 'index.php?', esc_html($_SERVER['REQUEST_URI'])));
447
- } else {
448
- $bps_base = str_replace( admin_url(), '', esc_html($_SERVER['REQUEST_URI']) ) . '&';
449
- }
450
 
451
- $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="#fb0101">'.__('Sucuri Restrict wp-content access Hardening Option problem detected', 'bulletproof-security').'</font><br>'.__('Using the Sucuri Restrict wp-content access Hardening Option breaks BPS Security Logging, Plugin Firewall, Uploads Anti-Exploit Guard & probably other things in BPS and other plugins as well.', 'bulletproof-security').'<br>'.__('To fix this problem click this link: ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=sucuriscan_hardening#hardening' ).'">'.__('Sucuri Hardening Options', 'bulletproof-security').'</a>'.__(' and click the Sucuri Restrict wp-content access Revert hardening button.', 'bulletproof-security').'<br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the 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.'bps_sucuri_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
452
- echo $text;
 
453
  }
454
  }
455
  }
@@ -468,14 +463,14 @@ $user_id = $current_user->ID;
468
 
469
  // Heads Up Display w/ Dismiss - WordPress Firewall 2 plugin - breaks BPS and lots of other stuff
470
  function bps_hud_check_wordpress_firewall2() {
471
- $plugin_var = 'wordpress-firewall-2/wordpress-firewall-2.php';
472
- $return_var = in_array( $plugin_var, apply_filters('active_plugins', get_option('active_plugins')));
473
 
474
- if ( $return_var != 1 ) { // 1 equals active
475
  return;
476
  }
477
 
478
- if ( $return_var == 1 ) { // 1 equals active
479
 
480
  global $current_user;
481
  $user_id = $current_user->ID;
@@ -507,178 +502,15 @@ $user_id = $current_user->ID;
507
  }
508
  }
509
 
510
- // Heads Up Display w/ Dismiss - Broken Link Checker plugin - HEAD Request Method filter check
511
- function bps_hud_broken_link_checker() {
512
- $filename = ABSPATH . '.htaccess';
513
- $plugin_var = 'broken-link-checker/broken-link-checker.php';
514
- $return_var = in_array( $plugin_var, apply_filters('active_plugins', get_option('active_plugins')));
515
- $pattern2 = '/#{1,}(\s|){1,}RewriteCond\s\%\{REQUEST_METHOD\}\s\^\(HEAD\)\s\[NC\](.*\s*){1}(#{1,}(\s|){1,}RewriteRule\s\^\(\.\*\)\$\s(.*)\/bulletproof-security\/405\.php\s\[L\]|#{1,}(\s|){1,}RewriteRule\s\^\(\.\*\)\$\s\-\s\[R=405,L\])/';
516
-
517
- if ( file_exists($filename) ) {
518
- $check_string = @file_get_contents($filename);
519
-
520
- if ( $return_var == 1 && preg_match( $pattern2, $check_string, $matches ) ) { // 1 equals active
521
- return;
522
- }
523
-
524
- if ( $return_var == 1 ) {
525
-
526
- global $current_user;
527
- $user_id = $current_user->ID;
528
-
529
- if ( ! get_user_meta($user_id, 'bps_ignore_BLC_notice') ) {
530
-
531
- if ( esc_html($_SERVER['QUERY_STRING']) == '' && basename(esc_html($_SERVER['REQUEST_URI'])) != 'wp-admin' ) {
532
- $bps_base = basename(esc_html($_SERVER['REQUEST_URI'])) . '?';
533
- } elseif ( esc_html($_SERVER['QUERY_STRING']) == '' && basename(esc_html($_SERVER['REQUEST_URI'])) == 'wp-admin' ) {
534
- $bps_base = basename( str_replace( 'wp-admin', 'index.php?', esc_html($_SERVER['REQUEST_URI'])));
535
- } else {
536
- $bps_base = str_replace( admin_url(), '', esc_html($_SERVER['REQUEST_URI']) ) . '&';
537
- }
538
-
539
- $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="#fb0101">'.__('Broken Link Checker plugin HEAD Request Method filter problem detected.', 'bulletproof-security').'</font><br>'.__('To fix this problem ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/broken-link-checker-plugin-403-error/" target="_blank" title="Link opens in a new Browser window">'.__('Click Here', '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 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.'bps_BLC_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
540
- echo $text;
541
- }
542
- }
543
- }
544
- }
545
-
546
- add_action('admin_init', 'bps_BLC_nag_ignore');
547
-
548
- function bps_BLC_nag_ignore() {
549
- global $current_user;
550
- $user_id = $current_user->ID;
551
-
552
- if ( isset( $_GET['bps_BLC_nag_ignore'] ) && '0' == $_GET['bps_BLC_nag_ignore'] ) {
553
- add_user_meta($user_id, 'bps_ignore_BLC_notice', 'true', true);
554
- }
555
- }
556
-
557
- // Heads Up Display w/ Dismiss - Jetpack plugin - displays forum links for Jetpack spefific HEAD Request code and Jetpack specific XML-RPC Bonus Custom Code.
558
- function bps_hud_check_jetpack() {
559
- $plugin_var = 'jetpack/jetpack.php';
560
- $return_var = in_array( $plugin_var, apply_filters('active_plugins', get_option('active_plugins')));
561
-
562
- if ( $return_var != 1 ) { // 1 equals active
563
- return;
564
- }
565
-
566
- $filename = ABSPATH . '.htaccess';
567
-
568
- if ( $return_var == 1 && file_exists($filename) ) { // 1 equals active
569
-
570
- global $current_user;
571
- $user_id = $current_user->ID;
572
-
573
- if ( ! get_user_meta($user_id, 'bps_ignore_jetpack_notice') ) {
574
-
575
- if ( esc_html($_SERVER['QUERY_STRING']) == '' && basename(esc_html($_SERVER['REQUEST_URI'])) != 'wp-admin' ) {
576
- $bps_base = basename(esc_html($_SERVER['REQUEST_URI'])) . '?';
577
- } elseif ( esc_html($_SERVER['QUERY_STRING']) == '' && basename(esc_html($_SERVER['REQUEST_URI'])) == 'wp-admin' ) {
578
- $bps_base = basename( str_replace( 'wp-admin', 'index.php?', esc_html($_SERVER['REQUEST_URI'])));
579
- } else {
580
- $bps_base = str_replace( admin_url(), '', esc_html($_SERVER['REQUEST_URI']) ) . '&';
581
- }
582
-
583
- $check_string = @file_get_contents($filename);
584
- $pattern1 = '/(\<FilesMatch\s\"\^\(xmlrpc\\\.php\)\"\>|\<FilesMatch\s\"\^\(xmlrpc\\\.php\|wp-trackback\\\.php\)\"\>)(.*\s*){1,8}Allow\sfrom\s192\.0\.64\.0\/18(.*\s*){1}Allow\sfrom\s209\.15\.0\.0\/16(.*\s*){1}Allow\sfrom\s66\.155\.0\.0\/17/';
585
- $pattern2 = '/#{1,}(\s|){1,}RewriteCond\s\%\{REQUEST_METHOD\}\s\^\(HEAD\)\s\[NC\](.*\s*){1}(#{1,}(\s|){1,}RewriteRule\s\^\(\.\*\)\$\s(.*)\/bulletproof-security\/405\.php\s\[L\]|#{1,}(\s|){1,}RewriteRule\s\^\(\.\*\)\$\s\-\s\[R=405,L\])/';
586
- $pattern3 = '/RewriteCond\s\%\{REQUEST_METHOD\}\s\^\(HEAD\)\s\[NC\](.*\s*){1}RewriteCond\s\%\{HTTP_USER_AGENT\}\s\!\^\(\.\*Jetpack\.\*\)\$/';
587
-
588
- // User has older Jetpack XML-RPC Bonus Custom Code in the Root htaccess file.
589
- if ( preg_match( $pattern1, $check_string, $matches ) ) {
590
-
591
- $text = '<div class="update-nag" style="max-width:96.5%;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">'.__('Jetpack XML-RPC Bonus Custom Code Notice', 'bulletproof-security').'</font><br>'.__('Older BPS XML-RPC Bonus Custom Code was found in your Root htaccess file. New XML-RPC Bonus Custom Code for specific usage with Jetpack has been created. Click the Click Here link below to get the new Jetpack XML-RPC Bonus Custom Code.', 'bulletproof-security').'<br><a href="https://forum.ait-pro.com/forums/topic/wordpress-xml-rpc-ddos-protection-protect-xmlrpc-php-block-xmlrpc-php-forbid-xmlrpc-php/" target="_blank" title="Jetpack XML-RPC Bonus Custom Code">'.__('Click Here', 'bulletproof-security').'</a>'.__(' To get and use the New Jetpack XML-RPC Bonus Custom Code, replace your existing XML-RPC Bonus Custom Code in BPS Custom Code with the newer Jetpack XML-RPC Bonus Custom Code.', 'bulletproof-security').'<br>'.__('To Dismiss these Jetpack Notices click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Custom Code page.', 'bulletproof-security').'</div>';
592
- echo $text;
593
- }
594
-
595
- // This HEAD Request checking condition needs to be an independent check.
596
- // Notes: pattern2 match = user is not using # signs in the REQUEST METHODS FILTERED code to allow all HEAD Requests.
597
- // pattern3 match = user is not using the new Jetpack whitelist by User Agent custom htaccess code for Jetpack.
598
- if ( ! preg_match( $pattern2, $check_string, $matches ) && ! preg_match( $pattern3, $check_string, $matches ) ) {
599
-
600
- $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">'.__('Jetpack Site Uptime Monitor Notice', 'bulletproof-security').'</font><br>'.__('New Jetpack Site Uptime Monitor code has been created for specific usage with Jetpack to allow HEAD Requests made by Jetpack. Click the Click Here link below to get the new Jetpack Site Uptime Monitor code.', 'bulletproof-security').'<br><a href="https://forum.ait-pro.com/forums/topic/jetpack-site-uptime-monitor-403-error/#post-15400" target="_blank" title="Jetpack Site Uptime Monitor">'.__('Click Here', 'bulletproof-security').'</a>'.__(' To get and use the new Jetpack Site Uptime Monitor code, replace any existing REQUEST METHODS FILTERED code that you have added to BPS Custom Code with the newer Jetpack Site Uptime Monitor code.', 'bulletproof-security').'<br>'.__('To Dismiss these Jetpack Notices click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Custom Code page.', 'bulletproof-security').'</div>';
601
- echo $text;
602
-
603
- }
604
-
605
- if ( preg_match( $pattern1, $check_string, $matches ) || ! preg_match( $pattern2, $check_string, $matches ) && ! preg_match( $pattern3, $check_string, $matches ) ) {
606
-
607
- echo '<div style="width:100px;text-align:center;margin:3px 0px 3px 0px;padding:2px 6px 2px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.$bps_base.'bps_jetpack_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div>';
608
-
609
- }
610
- }
611
- }
612
- }
613
-
614
- add_action('admin_init', 'bps_jetpack_nag_ignore');
615
-
616
- function bps_jetpack_nag_ignore() {
617
- global $current_user;
618
- $user_id = $current_user->ID;
619
-
620
- if ( isset( $_GET['bps_jetpack_nag_ignore'] ) && '0' == $_GET['bps_jetpack_nag_ignore'] ) {
621
- add_user_meta($user_id, 'bps_ignore_jetpack_notice', 'true', true);
622
- }
623
- }
624
-
625
- // Heads Up Display w/ Dismiss - WooCommerce plugin
626
- function bps_hud_check_woocommerce() {
627
- $plugin_var = 'woocommerce/woocommerce.php';
628
- $return_var = in_array( $plugin_var, apply_filters('active_plugins', get_option('active_plugins')));
629
- $filename = ABSPATH . '.htaccess';
630
- $pattern = '/RewriteCond\s\%\{REQUEST_URI\}\s\^\.\*\/\(shop\|cart\|checkout\|wishlist\)\.\*\s\[NC\](.*\s*){1}RewriteRule\s\.\s\-\s\[S=\d+\]/';
631
-
632
- if ( file_exists($filename) ) {
633
- $check_string = @file_get_contents($filename);
634
-
635
- if ( $return_var == 1 && preg_match( $pattern, $check_string, $matches ) ) { // 1 equals active
636
- return;
637
- }
638
-
639
- if ( $return_var == 1 ) {
640
-
641
- global $current_user;
642
- $user_id = $current_user->ID;
643
-
644
- if ( ! get_user_meta($user_id, 'bps_ignore_woocommerce_notice') ) {
645
-
646
- if ( esc_html($_SERVER['QUERY_STRING']) == '' && basename(esc_html($_SERVER['REQUEST_URI'])) != 'wp-admin' ) {
647
- $bps_base = basename(esc_html($_SERVER['REQUEST_URI'])) . '?';
648
- } elseif ( esc_html($_SERVER['QUERY_STRING']) == '' && basename(esc_html($_SERVER['REQUEST_URI'])) == 'wp-admin' ) {
649
- $bps_base = basename( str_replace( 'wp-admin', 'index.php?', esc_html($_SERVER['REQUEST_URI'])));
650
- } else {
651
- $bps_base = str_replace( admin_url(), '', esc_html($_SERVER['REQUEST_URI']) ) . '&';
652
- }
653
-
654
- $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">'.__('WooCommerce Notice', 'bulletproof-security').'</font><br>'.__('New WooCommerce whitelisting code has been created to resolve problems where BPS is blocking something in WooCommerce.', 'bulletproof-security').'<br>'.__('If WooCommerce is working fine on your website then disregard this Notice and click the Dismiss Notice button below.', 'bulletproof-security').'<br><a href="https://forum.ait-pro.com/forums/topic/woocommerce-read-me-first/" target="_blank" title="WooCommerce Whitelisting Code">'.__('Click Here', 'bulletproof-security').'</a>'.__(' To get the WooCommerce whitelisting code. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the 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.'bps_woocommerce_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
655
- echo $text;
656
- }
657
- }
658
- }
659
- }
660
-
661
- add_action('admin_init', 'bps_woocommerce_nag_ignore');
662
-
663
- function bps_woocommerce_nag_ignore() {
664
- global $current_user;
665
- $user_id = $current_user->ID;
666
-
667
- if ( isset($_GET['bps_woocommerce_nag_ignore']) && '0' == $_GET['bps_woocommerce_nag_ignore'] ) {
668
- add_user_meta($user_id, 'bps_ignore_woocommerce_notice', 'true', true);
669
- }
670
- }
671
-
672
  // Heads Up Display w/ Dismiss - WooCommerce LSM enable options
673
  // Notes: This Notice needs to be displayed to everyone who already currently have WooCommerce installed until they Dismiss this Notice.
674
  // The reason for that is the BPS upgrade will automatically enable LSM for the WooCommerce custom login page.
675
  // If they install WooCommerce at a later time then this Notice is displayed.
676
  // Exception: This Notice should not be displayed for new BPS installations before or after the Setup Wizard has been run.
677
  function bpsPro_hud_woocommerce_enable_lsm_jtc() {
678
- $plugin_var = 'woocommerce/woocommerce.php';
679
- $return_var = in_array( $plugin_var, apply_filters('active_plugins', get_option('active_plugins')));
680
- $lsm_options = get_option('bulletproof_security_options_login_security');
681
- $sw_woo_options = get_option('bulletproof_security_options_setup_wizard_woo');
682
 
683
  if ( ! $lsm_options['bps_enable_lsm_woocommerce'] ) {
684
  return;
@@ -688,7 +520,10 @@ $sw_woo_options = get_option('bulletproof_security_options_setup_wizard_woo');
688
  return;
689
  }
690
 
691
- if ( $return_var == 1 ) {
 
 
 
692
 
693
  global $current_user;
694
  $user_id = $current_user->ID;
@@ -740,118 +575,6 @@ $CustomCodeoptions = get_option('bulletproof_security_options_customcode');
740
  }
741
  }
742
 
743
- // Heads Up Display - Check if W3TC is active or not and check root htaccess file for W3TC htaccess code
744
- function bps_w3tc_htaccess_check($plugin_var_w3tc) {
745
-
746
- $plugin_var_w3tc = 'w3-total-cache/w3-total-cache.php';
747
- $return_var = in_array( $plugin_var_w3tc, apply_filters('active_plugins', get_option('active_plugins')));
748
-
749
- if ( $return_var == 1 || is_plugin_active_for_network( 'w3-total-cache/w3-total-cache.php' )) { // checks if W3TC is active for Single site or Network
750
-
751
- if ( ! is_multisite() ) {
752
- $bpsSiteUrl = get_option('siteurl');
753
- $bpsHomeUrl = get_option('home');
754
- } else {
755
- $bpsSiteUrl = get_site_option('siteurl');
756
- $bpsHomeUrl = network_site_url();
757
- }
758
-
759
- $filename = ABSPATH . '.htaccess';
760
-
761
- if ( file_exists($filename) ) {
762
-
763
- $string = file_get_contents($filename);
764
-
765
- if ( $bpsSiteUrl == $bpsHomeUrl ) {
766
- if ( ! strpos( $string, "W3TC" ) ) {
767
- $text = '<div style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:0px 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="#fb0101">'.__('W3 Total Cache is activated, but W3TC htaccess code was NOT found in your root htaccess file.', 'bulletproof-security').'</font><br>'.__('W3TC needs to be redeployed by clicking either the W3TC auto-install or deploy buttons. Your Root htaccess file must be temporarily unlocked so that W3TC can write to your Root htaccess file. Click to ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=w3tc_general' ).'">'.esc_attr__('Redeploy W3TC.', 'bulletproof-security').'</a><br>'.__('You can copy W3TC .htaccess code from your Root .htaccess file to BPS Custom Code to save it permanently so that you will not have to do these steps in the future.', 'bulletproof-security').'<br>'.__('Copy W3TC .htaccess code to this BPS Custom Code text box: CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE, click the Save Root Custom Code button, go to the BPS Security Modes page and click the Root folder BulletProof Mode button.', 'bulletproof-security').'</div>';
768
- echo $text;
769
- }
770
- }
771
- }
772
- }
773
- elseif ( $return_var != 1 || ! is_plugin_active_for_network( 'w3-total-cache/w3-total-cache.php' )) { // checks if W3TC is active for Single site or Network
774
-
775
- if ( ! is_multisite() ) {
776
- $bpsSiteUrl = get_option('siteurl');
777
- $bpsHomeUrl = get_option('home');
778
- } else {
779
- $bpsSiteUrl = get_site_option('siteurl');
780
- $bpsHomeUrl = network_site_url();
781
- }
782
-
783
- $filename = ABSPATH . '.htaccess';
784
-
785
- if ( file_exists($filename) ) {
786
-
787
- $string = file_get_contents($filename);
788
-
789
- if ( $bpsSiteUrl == $bpsHomeUrl ) {
790
- if ( strpos( $string, "W3TC" ) ) {
791
- $text = '<div style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:0px 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="#fb0101">'.__('W3 Total Cache is deactivated and W3TC .htaccess code was found in your root htaccess file.', 'bulletproof-security').'</font><br>'.__('If this is just temporary then this warning message will go away when you reactivate W3TC. If you are planning on uninstalling W3TC the W3TC htaccess code will be automatically removed from your root htaccess file when you uninstall W3TC. Your Root htaccess file must be temporarily unlocked so that W3TC can remove the W3TC Root htaccess code. If you manually edit your root htaccess file then refresh your browser to perform a new htaccess file check.', 'bulletproof-security').'</div>';
792
- echo $text;
793
- }
794
- }
795
- }
796
- }
797
- }
798
-
799
- // Heads Up Display - Check if WPSC is active or not and check root htaccess file for WPSC htaccess code
800
- function bps_wpsc_htaccess_check($plugin_var_wpsc) {
801
-
802
- $plugin_var_wpsc = 'wp-super-cache/wp-cache.php';
803
- $return_var = in_array( $plugin_var_wpsc, apply_filters('active_plugins', get_option('active_plugins')));
804
-
805
- if ( $return_var == 1 || is_plugin_active_for_network( 'wp-super-cache/wp-cache.php' ) ) { // checks if WPSC is active for Single site or Network
806
-
807
- if ( ! is_multisite() ) {
808
- $bpsSiteUrl = get_option('siteurl');
809
- $bpsHomeUrl = get_option('home');
810
- } else {
811
- $bpsSiteUrl = get_site_option('siteurl');
812
- $bpsHomeUrl = network_site_url();
813
- }
814
-
815
- $filename = ABSPATH . '.htaccess';
816
-
817
- if ( file_exists($filename) ) {
818
-
819
- $string = file_get_contents($filename);
820
-
821
- if ( $bpsSiteUrl == $bpsHomeUrl ) {
822
- if ( ! strpos($string, "WPSuperCache" ) ) {
823
- $text = '<div style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:0px 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="#fb0101">'.__('WP Super Cache is activated, but either you are not using WPSC mod_rewrite to serve cache files or the WPSC htaccess code was NOT found in your root htaccess file.', 'bulletproof-security').'</font><br>'.__('If you are not using WPSC mod_rewrite then copy this: # WPSuperCache to this BPS Custom Code text box: CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE, click the Save Root Custom Code button, go to the Security Modes page and click the Root folder BulletProof Mode button.', 'bulletproof-security').'<br>'.__('If you are using WPSC mod_rewrite and the WPSC htaccess code is not in your root htaccess file then unlock your Root htaccess file temporarily then click this ', 'bulletproof-security').'<a href="options-general.php?page=wpsupercache&tab=settings">'.__('Update WPSC link', 'bulletproof-security').'</a>'.__(' to go to the WPSC Settings page and click the Update Mod_Rewrite Rules button.', 'bulletproof-security').'<br>'.__('If you have deactivated Root Folder BulletProof Mode then disregard this Alert and DO NOT update your Mod_Rewrite Rules. Refresh your browser to perform a new htaccess file check.', 'bulletproof-security').'<br>'.__('You can copy WPSC .htaccess code from your Root .htaccess file to BPS Custom Code to save it permanently so that you will not have to do these steps in the future.', 'bulletproof-security').'<br>'.__('Copy WPSC .htaccess code to this BPS Custom Code text box: CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE, click the Save Root Custom Code button, go to the BPS Security Modes page and click the Root folder BulletProof Mode button.', 'bulletproof-security').'</div>';
824
- echo $text;
825
- }
826
- }
827
- }
828
- }
829
- elseif ( $return_var != 1 || ! is_plugin_active_for_network( 'wp-super-cache/wp-cache.php' )) { // checks if WPSC is NOT active for Single or Network
830
-
831
- if ( ! is_multisite() ) {
832
- $bpsSiteUrl = get_option('siteurl');
833
- $bpsHomeUrl = get_option('home');
834
- } else {
835
- $bpsSiteUrl = get_site_option('siteurl');
836
- $bpsHomeUrl = network_site_url();
837
- }
838
-
839
- $filename = ABSPATH . '.htaccess';
840
-
841
- if ( file_exists($filename) ) {
842
-
843
- $string = file_get_contents($filename);
844
-
845
- if ( $bpsSiteUrl == $bpsHomeUrl ) {
846
- if ( strpos($string, "WPSuperCache" ) ) {
847
- $text = '<div style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:0px 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="#fb0101">'.__('WP Super Cache is deactivated and WPSC htaccess code - # BEGIN WPSuperCache # END WPSuperCache - was found in your root htaccess file.', 'bulletproof-security').'</font><br>'.__('If this is just temporary then this warning message will go away when you reactivate WPSC. You will need to set up and reconfigure WPSC again when you reactivate WPSC. Your Root htaccess file must be temporarily unlocked if you are planning on uninstalling WPSC. The WPSC htaccess code will be automatically removed from your root htaccess file when you uninstall WPSC. If you added a commented out line of code in anywhere in your root htaccess file - # WPSuperCache - then delete it and refresh your browser. If you added WPSC code to BPS Custom Code then delete it if you are removing WPSC permanently.', 'bulletproof-security').'</div>';
848
- echo $text;
849
- }
850
- }
851
- }
852
- }
853
- }
854
-
855
  // Heads Up Display - Check if the /bps-backup/.htaccess file exists
856
  function bpsPro_BBM_htaccess_check() {
857
 
@@ -871,16 +594,24 @@ function bpsPro_BBM_htaccess_check() {
871
  }
872
  }
873
 
 
 
874
  function bpsPro_hud_speed_boost_cache_code() {
875
- global $current_user;
876
- $user_id = $current_user->ID;
877
 
878
  $CC_options = get_option('bulletproof_security_options_customcode');
 
879
 
880
- if ( $CC_options['bps_customcode_one'] == '') {
881
  return;
882
  }
883
 
 
 
 
 
 
 
 
884
  $pattern1 = '/BEGIN\sWEBSITE\sSPEED\sBOOST/';
885
  $pattern2 = '/AddOutputFilterByType\sDEFLATE\stext\/plain\s*AddOutputFilterByType\sDEFLATE\stext\/html\s*AddOutputFilterByType\sDEFLATE\stext\/xml\s*AddOutputFilterByType\sDEFLATE\stext\/css\s*AddOutputFilterByType\sDEFLATE\sapplication\/xml\s*AddOutputFilterByType\sDEFLATE\sapplication\/xhtml\+xml\s*AddOutputFilterByType\sDEFLATE\sapplication\/rss\+xml\s*AddOutputFilterByType\sDEFLATE\sapplication\/javascript\s*AddOutputFilterByType\sDEFLATE\sapplication\/x-javascript\s*AddOutputFilterByType\sDEFLATE\sapplication\/x-httpd-php\s*AddOutputFilterByType\sDEFLATE\sapplication\/x-httpd-fastphp\s*AddOutputFilterByType\sDEFLATE\simage\/svg\+xml/';
886
 
@@ -899,6 +630,14 @@ $user_id = $current_user->ID;
899
  $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">'.__('New Improved BPS Speed Boost Cache Code', 'bulletproof-security').'</font><br>'.__('Older BPS Speed Boost Cache Code was found saved in this BPS Custom Code text box: CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE', 'bulletproof-security').'.<br>'.__('Newer improved BPS Speed Boost Cache Code has been created, which should improve website load speed performance even more.', 'bulletproof-security').'<br><a href="https://forum.ait-pro.com/forums/topic/htaccess-caching-code-speed-boost-cache-code/" target="_blank" title="BPS Speed Boost Cache Code">'.__('Get The New Improved BPS Speed Boost Cache Code', 'bulletproof-security').'</a>'.__('. To dismiss this Notice click the Dismiss Notice button below.', 'bulletproof-security').'<br>'.__('To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the 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_hud_speed_boost_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
900
  echo $text;
901
  }
 
 
 
 
 
 
 
 
902
  }
903
  }
904
 
@@ -918,9 +657,12 @@ $user_id = $current_user->ID;
918
  // There are 3 common scenarios: only the dismiss all notice link was clicked, some of the individual dismiss notices were clicked and
919
  // the dismiss all notice link was clicked and only all individual dimiss notice links were clicked, but not the dismiss all notice link.
920
  // which leaves 2 possible conditions: either the dismiss all notice value == true or all other dismiss notice values == true.
 
921
  function bps_hud_check_autoupdate() {
922
 
923
- if ( ! get_option('bulletproof_security_options_autoupdate') ) {
 
 
924
 
925
  global $current_user;
926
  $user_id = $current_user->ID;
@@ -946,7 +688,13 @@ function bps_hud_check_autoupdate() {
946
  $bps_base = str_replace( admin_url(), '', esc_html($_SERVER['REQUEST_URI']) ) . '&';
947
  }
948
 
949
- $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 Plugin Automatic Update Notice', 'bulletproof-security').'</font><br>'.__('Would you like to have BPS plugin updates installed automatically? Click this link: ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/theme-skin/theme-skin.php#bps-plugin-autoupdate' ).'">'.esc_attr__('BPS Plugin AutoUpdate', 'bulletproof-security').'</a>'.__(' and choose the AutoUpdate On option setting.', 'bulletproof-security').'<br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the 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.'bps_autoupdate_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
 
 
 
 
 
 
950
  echo $text;
951
  }
952
  }
@@ -964,41 +712,4 @@ $user_id = $current_user->ID;
964
  }
965
  }
966
 
967
- // Heads Up Display w/ Dismiss Notice - Check if Endurance Page Cache must-use plugin is installed.
968
- function bpsPro_EPC_plugin_check() {
969
-
970
- $EPC_plugin_file = WP_CONTENT_DIR . '/mu-plugins/endurance-page-cache.php';
971
-
972
- if ( file_exists($EPC_plugin_file) ) {
973
-
974
- global $current_user;
975
- $user_id = $current_user->ID;
976
-
977
- if ( ! get_user_meta($user_id, 'bpsPro_ignore_EPC_plugin_notice') ) {
978
-
979
- if ( esc_html($_SERVER['QUERY_STRING']) == '' && basename(esc_html($_SERVER['REQUEST_URI'])) != 'wp-admin' ) {
980
- $bps_base = basename(esc_html($_SERVER['REQUEST_URI'])) . '?';
981
- } elseif ( esc_html($_SERVER['QUERY_STRING']) == '' && basename(esc_html($_SERVER['REQUEST_URI'])) == 'wp-admin' ) {
982
- $bps_base = basename( str_replace( 'wp-admin', 'index.php?', esc_html($_SERVER['REQUEST_URI'])));
983
- } else {
984
- $bps_base = str_replace( admin_url(), '', esc_html($_SERVER['REQUEST_URI']) ) . '&';
985
- }
986
-
987
- $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 Notice: The Endurance Page Cache (EPC) must-use plugin is installed', 'bulletproof-security').'</font><br>'.__('The EPC must-use plugin has been automatically installed by your Web Host and requires additional BPS Custom Code setup steps to make sure everything is working correctly.', 'bulletproof-security').'<br>'.__('Click this forum link: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/endurance-page-cache-infinite-redirect-loop-css-and-js-broken/" title="Endurance Page Cache Plugin Fix Forum Topic" target="_blank">'.__('Endurance Page Cache Plugin Fix', 'bulletproof-security').'</a>'.__(' and do the Custom Code setup steps in the forum topic.', 'bulletproof-security').'<br>'.__('If you want to disable the EPC plugin, see the "EPC Plugin Additional Notes" help section at the bottom of the forum topic.', 'bulletproof-security').'<br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the 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_EPC_plugin_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
988
- echo $text;
989
- }
990
- }
991
- }
992
-
993
- add_action('admin_init', 'bpsPro_EPC_plugin_nag_ignore');
994
-
995
- function bpsPro_EPC_plugin_nag_ignore() {
996
- global $current_user;
997
- $user_id = $current_user->ID;
998
-
999
- if ( isset($_GET['bpsPro_EPC_plugin_nag_ignore']) && '0' == $_GET['bpsPro_EPC_plugin_nag_ignore'] ) {
1000
- add_user_meta($user_id, 'bpsPro_ignore_EPC_plugin_notice', 'true', true);
1001
- }
1002
- }
1003
-
1004
  ?>
11
  function bps_HUD_WP_Dashboard() {
12
 
13
  if ( current_user_can('manage_options') ) {
14
+ bps_check_php_version_error();
15
+ bps_check_safemode();
16
+ bps_check_permalinks_error();
17
+ bps_check_iis_supports_permalinks();
18
+ bps_hud_check_bpsbackup();
19
+ bpsPro_bonus_custom_code_dismiss_notices();
20
+ bps_hud_PhpiniHandlerCheck();
21
+ bps_hud_check_sucuri();
22
+ bps_hud_check_wordpress_firewall2();
23
+ bpsPro_hud_woocommerce_enable_lsm_jtc();
24
+ bps_hud_BPSQSE_old_code_check();
25
+ bpsPro_BBM_htaccess_check();
26
+ bpsPro_hud_speed_boost_cache_code();
27
+ bps_hud_check_autoupdate();
28
+ //bps_hud_check_public_username();
 
 
 
 
 
 
 
 
29
  }
30
  }
31
  add_action('admin_notices', 'bps_HUD_WP_Dashboard');
416
  // Unfortunately the limited whitelisting options provided by Sucuri in their settings don't provide any workable solutions for BPS.
417
  function bps_hud_check_sucuri() {
418
  $filename = WP_CONTENT_DIR . '/.htaccess';
419
+ $sucuri = 'sucuri-scanner/sucuri.php';
420
+ $sucuri_active = in_array( $sucuri, apply_filters('active_plugins', get_option('active_plugins') ) );
421
 
422
+ if ( $sucuri_active == 1 && ! file_exists($filename) ) {
423
  return;
424
  }
425
 
426
  if ( function_exists('sucuriscan_harden_wpcontent') ) {
427
 
428
+ if ( $sucuri_active == 1 || is_plugin_active_for_network( $sucuri ) ) {
429
+
430
+ if ( file_exists($filename) && preg_match( '/WP-content\sdirectory\sproperly\shardened/', sucuriscan_harden_wpcontent(), $matches ) ) {
 
431
 
432
+ global $current_user;
433
+ $user_id = $current_user->ID;
434
+
435
+ if ( ! get_user_meta($user_id, 'bps_ignore_sucuri_notice') ) {
436
 
437
+ if ( esc_html($_SERVER['QUERY_STRING']) == '' && basename(esc_html($_SERVER['REQUEST_URI'])) != 'wp-admin' ) {
438
+ $bps_base = basename(esc_html($_SERVER['REQUEST_URI'])) . '?';
439
+ } elseif ( esc_html($_SERVER['QUERY_STRING']) == '' && basename(esc_html($_SERVER['REQUEST_URI'])) == 'wp-admin' ) {
440
+ $bps_base = basename( str_replace( 'wp-admin', 'index.php?', esc_html($_SERVER['REQUEST_URI'])));
441
+ } else {
442
+ $bps_base = str_replace( admin_url(), '', esc_html($_SERVER['REQUEST_URI']) ) . '&';
443
+ }
444
 
445
+ $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="#fb0101">'.__('Sucuri Restrict wp-content access Hardening Option problem detected', 'bulletproof-security').'</font><br>'.__('Using the Sucuri Restrict wp-content access Hardening Option breaks BPS Security Logging, Plugin Firewall, Uploads Anti-Exploit Guard & probably other things in BPS and other plugins as well.', 'bulletproof-security').'<br>'.__('To fix this problem click this link: ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=sucuriscan_hardening#hardening' ).'">'.__('Sucuri Hardening Options', 'bulletproof-security').'</a>'.__(' and click the Sucuri Restrict wp-content access Revert hardening button.', 'bulletproof-security').'<br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the 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.'bps_sucuri_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
446
+ echo $text;
447
+ }
448
  }
449
  }
450
  }
463
 
464
  // Heads Up Display w/ Dismiss - WordPress Firewall 2 plugin - breaks BPS and lots of other stuff
465
  function bps_hud_check_wordpress_firewall2() {
466
+ $firewall2 = 'wordpress-firewall-2/wordpress-firewall-2.php';
467
+ $firewall2_active = in_array( $firewall2, apply_filters('active_plugins', get_option('active_plugins')));
468
 
469
+ if ( $firewall2_active != 1 && ! is_plugin_active_for_network( $firewall2 ) ) {
470
  return;
471
  }
472
 
473
+ if ( $firewall2_active == 1 || is_plugin_active_for_network( $firewall2 ) ) {
474
 
475
  global $current_user;
476
  $user_id = $current_user->ID;
502
  }
503
  }
504
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
505
  // Heads Up Display w/ Dismiss - WooCommerce LSM enable options
506
  // Notes: This Notice needs to be displayed to everyone who already currently have WooCommerce installed until they Dismiss this Notice.
507
  // The reason for that is the BPS upgrade will automatically enable LSM for the WooCommerce custom login page.
508
  // If they install WooCommerce at a later time then this Notice is displayed.
509
  // Exception: This Notice should not be displayed for new BPS installations before or after the Setup Wizard has been run.
510
  function bpsPro_hud_woocommerce_enable_lsm_jtc() {
511
+
512
+ $lsm_options = get_option('bulletproof_security_options_login_security');
513
+ $sw_woo_options = get_option('bulletproof_security_options_setup_wizard_woo');
 
514
 
515
  if ( ! $lsm_options['bps_enable_lsm_woocommerce'] ) {
516
  return;
520
  return;
521
  }
522
 
523
+ $woocommerce = 'woocommerce/woocommerce.php';
524
+ $woocommerce_active = in_array( $woocommerce, apply_filters('active_plugins', get_option('active_plugins')));
525
+
526
+ if ( $woocommerce_active == 1 || is_plugin_active_for_network( $woocommerce ) ) {
527
 
528
  global $current_user;
529
  $user_id = $current_user->ID;
575
  }
576
  }
577
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
578
  // Heads Up Display - Check if the /bps-backup/.htaccess file exists
579
  function bpsPro_BBM_htaccess_check() {
580
 
594
  }
595
  }
596
 
597
+ ## Checks for older BPS Speed Boost Cache code saved in BPS Custom Code
598
+ ## 2.0: Checks for redundant Browser caching code & the BPS NOCHECK Marker in BPS Custom Code
599
  function bpsPro_hud_speed_boost_cache_code() {
 
 
600
 
601
  $CC_options = get_option('bulletproof_security_options_customcode');
602
+ $bps_customcode_one = htmlspecialchars_decode( $CC_options['bps_customcode_one'], ENT_QUOTES );
603
 
604
+ if ( $CC_options['bps_customcode_one'] == '' || strpos( $bps_customcode_one, "BPS NOCHECK" ) ) {
605
  return;
606
  }
607
 
608
+ if ( @$_POST['bps_customcode_submit'] == true ) {
609
+ return;
610
+ }
611
+
612
+ global $current_user;
613
+ $user_id = $current_user->ID;
614
+
615
  $pattern1 = '/BEGIN\sWEBSITE\sSPEED\sBOOST/';
616
  $pattern2 = '/AddOutputFilterByType\sDEFLATE\stext\/plain\s*AddOutputFilterByType\sDEFLATE\stext\/html\s*AddOutputFilterByType\sDEFLATE\stext\/xml\s*AddOutputFilterByType\sDEFLATE\stext\/css\s*AddOutputFilterByType\sDEFLATE\sapplication\/xml\s*AddOutputFilterByType\sDEFLATE\sapplication\/xhtml\+xml\s*AddOutputFilterByType\sDEFLATE\sapplication\/rss\+xml\s*AddOutputFilterByType\sDEFLATE\sapplication\/javascript\s*AddOutputFilterByType\sDEFLATE\sapplication\/x-javascript\s*AddOutputFilterByType\sDEFLATE\sapplication\/x-httpd-php\s*AddOutputFilterByType\sDEFLATE\sapplication\/x-httpd-fastphp\s*AddOutputFilterByType\sDEFLATE\simage\/svg\+xml/';
617
 
630
  $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">'.__('New Improved BPS Speed Boost Cache Code', 'bulletproof-security').'</font><br>'.__('Older BPS Speed Boost Cache Code was found saved in this BPS Custom Code text box: CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE', 'bulletproof-security').'.<br>'.__('Newer improved BPS Speed Boost Cache Code has been created, which should improve website load speed performance even more.', 'bulletproof-security').'<br><a href="https://forum.ait-pro.com/forums/topic/htaccess-caching-code-speed-boost-cache-code/" target="_blank" title="BPS Speed Boost Cache Code">'.__('Get The New Improved BPS Speed Boost Cache Code', 'bulletproof-security').'</a>'.__('. To dismiss this Notice click the Dismiss Notice button below.', 'bulletproof-security').'<br>'.__('To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the 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_hud_speed_boost_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
631
  echo $text;
632
  }
633
+
634
+ if ( strpos( $bps_customcode_one, "WEBSITE SPEED BOOST" ) ) {
635
+ if ( strpos( $bps_customcode_one, "WPSuperCache" ) || strpos( $bps_customcode_one, "W3TC Browser Cache" ) || strpos( $bps_customcode_one, "Comet Cache" ) || strpos( $bps_customcode_one, "GzipWpFastestCache" ) || strpos( $bps_customcode_one, "LBCWpFastestCache" ) || strpos( $bps_customcode_one, "WP Rocket" ) ) {
636
+
637
+ $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 Speed Boost Cache Custom Code Notice', 'bulletproof-security').'</font><br>'.__('BPS Speed Boost Cache Code was found in this BPS Custom Code text box: CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE', 'bulletproof-security').'<br>'.__('and another caching plugin\'s Marker text was also found in this BPS Custom Code text box.', 'bulletproof-security').'<br>'.__('Click this link: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/bps-speed-boost-cache-custom-code-notice/" target="_blank" title="BPS SBC Custom Code Forum Topic">'.__('BPS Speed Boost Cache Custom Code Notice Forum Topic', 'bulletproof-security').'</a>'.__(' for help information on what this Notice means and what to do next.', 'bulletproof-security').'</div>';
638
+ echo $text;
639
+ }
640
+ }
641
  }
642
  }
643
 
657
  // There are 3 common scenarios: only the dismiss all notice link was clicked, some of the individual dismiss notices were clicked and
658
  // the dismiss all notice link was clicked and only all individual dimiss notice links were clicked, but not the dismiss all notice link.
659
  // which leaves 2 possible conditions: either the dismiss all notice value == true or all other dismiss notice values == true.
660
+ // 1.2: New BPS MU Tools file created.
661
  function bps_hud_check_autoupdate() {
662
 
663
+ $MUTools_Options = get_option('bulletproof_security_options_MU_tools_free');
664
+
665
+ if ( $MUTools_Options['bps_mu_tools_enable_disable_autoupdate'] == 'disable' ) {
666
 
667
  global $current_user;
668
  $user_id = $current_user->ID;
688
  $bps_base = str_replace( admin_url(), '', esc_html($_SERVER['REQUEST_URI']) ) . '&';
689
  }
690
 
691
+ if ( is_multisite() ) {
692
+ $bps_mu_link = '<a href="'.network_admin_url( 'plugins.php?plugin_status=mustuse' ).'">'.esc_attr__('BPS Plugin AutoUpdates', 'bulletproof-security').'</a>';
693
+ } else {
694
+ $bps_mu_link = '<a href="'.admin_url( 'plugins.php?plugin_status=mustuse' ).'">'.esc_attr__('BPS Plugin AutoUpdates', 'bulletproof-security').'</a>';
695
+ }
696
+
697
+ $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 Plugin Automatic Update Notice', 'bulletproof-security').'</font><br>'.__('Would you like to have BPS plugin updates installed automatically? Click this link: ', 'bulletproof-security').$bps_mu_link.__(' and click the BPS MU Tools Enable BPS Plugin AutoUpdates link.', 'bulletproof-security').'<br>'.__('To Dismiss this Notice click the Dismiss Notice button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the 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.'bps_autoupdate_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
698
  echo $text;
699
  }
700
  }
712
  }
713
  }
714
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
715
  ?>
includes/login-security.php CHANGED
@@ -8,10 +8,14 @@
8
  // This also allows someone with WooCommerce installed just to turn LSM on or off without messing with the Enable WooCommerce options.
9
  // Note: There is no need for an LSM Off condition like BPS Pro has because JTC is not involved in the equation - If LSM is Off then the filter is not processed.
10
  $BPSoptions = get_option('bulletproof_security_options_login_security');
11
- $plugin_var = 'woocommerce/woocommerce.php';
12
- $return_var = in_array( $plugin_var, apply_filters('active_plugins', get_option('active_plugins')));
 
 
 
 
13
 
14
- if ( $return_var == 1 ) {
15
 
16
  if ( $BPSoptions['bps_enable_lsm_woocommerce'] == 1 ) {
17
 
8
  // This also allows someone with WooCommerce installed just to turn LSM on or off without messing with the Enable WooCommerce options.
9
  // Note: There is no need for an LSM Off condition like BPS Pro has because JTC is not involved in the equation - If LSM is Off then the filter is not processed.
10
  $BPSoptions = get_option('bulletproof_security_options_login_security');
11
+ $woocommerce = 'woocommerce/woocommerce.php';
12
+ $woocommerce_active = in_array( $woocommerce, apply_filters('active_plugins', get_option('active_plugins')));
13
+
14
+ if ( ! function_exists( 'is_plugin_active_for_network' ) ) {
15
+ require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
16
+ }
17
 
18
+ if ( $woocommerce_active == 1 || is_plugin_active_for_network( $woocommerce ) ) {
19
 
20
  if ( $BPSoptions['bps_enable_lsm_woocommerce'] == 1 ) {
21
 
includes/zip-email-cron-functions.php CHANGED
@@ -39,7 +39,7 @@ $DBBLogMaster = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/db_backup_
39
 
40
  switch ( $options['bps_security_log_size'] ) {
41
  case "256KB":
42
- if ( filesize($SecurityLog) >= 262144 && filesize($SecurityLog) < 524288 || filesize($SecurityLog) > 2097152) {
43
  if ( $options['bps_security_log_emailL'] == 'email') {
44
  if ( bps_Zip_Security_Log_File()==TRUE ) {
45
  bps_Email_Security_Log_File();
@@ -50,7 +50,7 @@ switch ( $options['bps_security_log_size'] ) {
50
  break;
51
  }
52
  case "500KB":
53
- if ( filesize($SecurityLog) >= 524288 && filesize($SecurityLog) < 1048576 || filesize($SecurityLog) > 2097152) {
54
  if ( $options['bps_security_log_emailL'] == 'email') {
55
  if ( bps_Zip_Security_Log_File()==TRUE ) {
56
  bps_Email_Security_Log_File();
@@ -61,7 +61,7 @@ switch ( $options['bps_security_log_size'] ) {
61
  break;
62
  }
63
  case "1MB":
64
- if ( filesize($SecurityLog) >= 1048576 && filesize($SecurityLog) < 2097152 || filesize($SecurityLog) > 2097152) {
65
  if ( $options['bps_security_log_emailL'] == 'email') {
66
  if ( bps_Zip_Security_Log_File()==TRUE ) {
67
  bps_Email_Security_Log_File();
@@ -75,7 +75,7 @@ switch ( $options['bps_security_log_size'] ) {
75
 
76
  switch ( $options['bps_dbb_log_size'] ) {
77
  case "256KB":
78
- if ( filesize($DBBLog) >= 262144 && filesize($DBBLog) < 524288 || filesize($DBBLog) > 2097152) {
79
  if ( $options['bps_dbb_log_email'] == 'email') {
80
  if ( bps_Zip_DBB_Log_File()==TRUE ) {
81
  bps_Email_DBB_Log_File();
@@ -86,7 +86,7 @@ switch ( $options['bps_dbb_log_size'] ) {
86
  break;
87
  }
88
  case "500KB":
89
- if ( filesize($DBBLog) >= 524288 && filesize($DBBLog) < 1048576 || filesize($DBBLog) > 2097152) {
90
  if ( $options['bps_dbb_log_email'] == 'email') {
91
  if ( bps_Zip_DBB_Log_File()==TRUE ) {
92
  bps_Email_DBB_Log_File();
@@ -97,7 +97,7 @@ switch ( $options['bps_dbb_log_size'] ) {
97
  break;
98
  }
99
  case "1MB":
100
- if ( filesize($DBBLog) >= 1048576 && filesize($DBBLog) < 2097152 || filesize($DBBLog) > 2097152) {
101
  if ( $options['bps_dbb_log_email'] == 'email') {
102
  if ( bps_Zip_DBB_Log_File()==TRUE ) {
103
  bps_Email_DBB_Log_File();
39
 
40
  switch ( $options['bps_security_log_size'] ) {
41
  case "256KB":
42
+ if ( file_exists($SecurityLog) && filesize($SecurityLog) >= 262144 && filesize($SecurityLog) < 524288 || file_exists($SecurityLog) && filesize($SecurityLog) > 2097152) {
43
  if ( $options['bps_security_log_emailL'] == 'email') {
44
  if ( bps_Zip_Security_Log_File()==TRUE ) {
45
  bps_Email_Security_Log_File();
50
  break;
51
  }
52
  case "500KB":
53
+ if ( file_exists($SecurityLog) && filesize($SecurityLog) >= 524288 && filesize($SecurityLog) < 1048576 || file_exists($SecurityLog) && filesize($SecurityLog) > 2097152) {
54
  if ( $options['bps_security_log_emailL'] == 'email') {
55
  if ( bps_Zip_Security_Log_File()==TRUE ) {
56
  bps_Email_Security_Log_File();
61
  break;
62
  }
63
  case "1MB":
64
+ if ( file_exists($SecurityLog) && filesize($SecurityLog) >= 1048576 && filesize($SecurityLog) < 2097152 || file_exists($SecurityLog) && filesize($SecurityLog) > 2097152) {
65
  if ( $options['bps_security_log_emailL'] == 'email') {
66
  if ( bps_Zip_Security_Log_File()==TRUE ) {
67
  bps_Email_Security_Log_File();
75
 
76
  switch ( $options['bps_dbb_log_size'] ) {
77
  case "256KB":
78
+ if ( file_exists($DBBLog) && filesize($DBBLog) >= 262144 && filesize($DBBLog) < 524288 || file_exists($DBBLog) && filesize($DBBLog) > 2097152) {
79
  if ( $options['bps_dbb_log_email'] == 'email') {
80
  if ( bps_Zip_DBB_Log_File()==TRUE ) {
81
  bps_Email_DBB_Log_File();
86
  break;
87
  }
88
  case "500KB":
89
+ if ( file_exists($DBBLog) && filesize($DBBLog) >= 524288 && filesize($DBBLog) < 1048576 || file_exists($DBBLog) && filesize($DBBLog) > 2097152) {
90
  if ( $options['bps_dbb_log_email'] == 'email') {
91
  if ( bps_Zip_DBB_Log_File()==TRUE ) {
92
  bps_Email_DBB_Log_File();
97
  break;
98
  }
99
  case "1MB":
100
+ if ( file_exists($DBBLog) && filesize($DBBLog) >= 1048576 && filesize($DBBLog) < 2097152 || file_exists($DBBLog) && filesize($DBBLog) > 2097152) {
101
  if ( $options['bps_dbb_log_email'] == 'email') {
102
  if ( bps_Zip_DBB_Log_File()==TRUE ) {
103
  bps_Email_DBB_Log_File();
isl-logout.php CHANGED
@@ -19,6 +19,7 @@ require( ABSPATH . WPINC . '/pluggable.php' );
19
  $hostname = @gethostbyaddr($_SERVER['REMOTE_ADDR']);
20
  $timeNow = time();
21
  $gmt_offset = get_option( 'gmt_offset' ) * 3600;
 
22
 
23
  if ( ! get_option( 'gmt_offset' ) ) {
24
  $timestamp = date("F j, Y g:i a", time() );
@@ -26,7 +27,7 @@ require( ABSPATH . WPINC . '/pluggable.php' );
26
  $timestamp = date_i18n(get_option('date_format'), strtotime("11/15-1976")) . ' - ' . date_i18n(get_option('time_format'), $timeNow + $gmt_offset);
27
  }
28
 
29
- @$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: '.$_SERVER['QUERY_STRING']."\r\n" . 'HTTP_USER_AGENT: '.$_SERVER['HTTP_USER_AGENT']."\r\n";
30
 
31
  if ( is_writable( $bpsProLog ) ) {
32
 
19
  $hostname = @gethostbyaddr($_SERVER['REMOTE_ADDR']);
20
  $timeNow = time();
21
  $gmt_offset = get_option( 'gmt_offset' ) * 3600;
22
+ $query_string = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY);
23
 
24
  if ( ! get_option( 'gmt_offset' ) ) {
25
  $timestamp = date("F j, Y g:i a", time() );
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
 
languages/bulletproof-security.pot CHANGED
@@ -3,7 +3,7 @@ msgid ""
3
  msgstr ""
4
  "Project-Id-Version: bulletproof-security\n"
5
  "Report-Msgid-Bugs-To: \n"
6
- "POT-Creation-Date: 2017-04-04 16:05-0700\n"
7
  "PO-Revision-Date: 2015-06-20 19:13-0800\n"
8
  "Last-Translator: Ed Alexander <edward@ait-pro.com>\n"
9
  "Language-Team: AITpro <info@ait-pro.com>\n"
@@ -292,16 +292,16 @@ msgid ""
292
  msgstr ""
293
 
294
  #: admin/core/core-export-import.php:115 admin/login/lsm-export.php:49
295
- #: admin/wizard/wizard-backup.php:151 admin/wizard/wizard-backup.php:185
296
  msgid ""
297
  "If you see a 403 error and/or are unable to download the zip file then click "
298
  "here: "
299
  msgstr ""
300
 
301
  #: admin/core/core-export-import.php:115 admin/login/lsm-export.php:49
302
- #: admin/wizard/wizard-backup.php:151 admin/wizard/wizard-backup.php:185
303
- #: admin/wizard/wizard.php:774 admin/wizard/wizard.php:875
304
- #: admin/wizard/wizard.php:877
305
  msgid "Setup Wizard Options"
306
  msgstr ""
307
 
@@ -717,76 +717,44 @@ msgstr ""
717
 
718
  #: admin/core/core-forms.php:618
719
  msgid ""
720
- "The Broken Link Checker plugin HEAD Request Method filter Dismiss Notice is "
721
- "NOT set. Nothing to reset."
722
- msgstr ""
723
-
724
- #: admin/core/core-forms.php:621
725
- msgid ""
726
- "Success! The Broken Link Checker plugin HEAD Request Method filter check is "
727
- "reset."
728
- msgstr ""
729
-
730
- #: admin/core/core-forms.php:626
731
- msgid ""
732
- "The Jetpack XML-RPC Bonus Custom Code & Site Uptime Monitor Notices are NOT "
733
- "set. Nothing to reset."
734
- msgstr ""
735
-
736
- #: admin/core/core-forms.php:629
737
- msgid ""
738
- "Success! The Jetpack XML-RPC Bonus Custom Code & Site Uptime Monitor checks "
739
- "are reset."
740
- msgstr ""
741
-
742
- #: admin/core/core-forms.php:634
743
- msgid "The WooCommerce Notice is NOT set. Nothing to reset."
744
- msgstr ""
745
-
746
- #: admin/core/core-forms.php:637
747
- msgid "Success! The WooCommerce Notice is reset."
748
- msgstr ""
749
-
750
- #: admin/core/core-forms.php:642
751
- msgid ""
752
  "The BPS WooCommerce Options Notice: Enable Login Security for WooCommerce is "
753
  "NOT set. Nothing to reset."
754
  msgstr ""
755
 
756
- #: admin/core/core-forms.php:645
757
  msgid ""
758
  "Success! The BPS WooCommerce Options Notice: Enable Login Security for "
759
  "WooCommerce is reset."
760
  msgstr ""
761
 
762
- #: admin/core/core-forms.php:651
763
  msgid ""
764
  "The New Improved BPS Speed Boost Cache Code Notice is NOT set. Nothing to "
765
  "reset."
766
  msgstr ""
767
 
768
- #: admin/core/core-forms.php:654
769
  msgid "Success! The New Improved BPS Speed Boost Cache Code Notice is reset."
770
  msgstr ""
771
 
772
- #: admin/core/core-forms.php:659
773
  msgid "The BPS Plugin Automatic Update Notice is NOT set. Nothing to reset."
774
  msgstr ""
775
 
776
- #: admin/core/core-forms.php:662
777
  msgid "Success! The BPS Plugin Automatic Update Notice is reset."
778
  msgstr ""
779
 
780
- #: admin/core/core-forms.php:667
781
  msgid ""
782
  "The Endurance Page Cache (EPC) plugin Notice is NOT set. Nothing to reset."
783
  msgstr ""
784
 
785
- #: admin/core/core-forms.php:670
786
  msgid "Success! The Endurance Page Cache (EPC) plugin Notice is reset."
787
  msgstr ""
788
 
789
- #: admin/core/core-forms.php:674
790
  msgid "Refresh Status"
791
  msgstr ""
792
 
@@ -909,7 +877,7 @@ msgid ""
909
  "Read Me help file for BPS troubleshooting steps."
910
  msgstr ""
911
 
912
- #: admin/core/core-help-text.php:15 admin/wizard/wizard.php:826
913
  msgid "Notes: "
914
  msgstr ""
915
 
@@ -1107,10 +1075,10 @@ msgstr ""
1107
  #: admin/db-backup-security/db-backup-help-text.php:15
1108
  #: admin/db-backup-security/db-backup-security.php:288
1109
  #: admin/login/login.php:190 admin/login/login.php:889
1110
- #: admin/maintenance/maintenance.php:185
1111
  #: admin/security-log/security-log.php:245
1112
  #: admin/system-info/system-info.php:103 admin/theme-skin/theme-skin.php:110
1113
- #: admin/wizard/wizard.php:812 admin/wizard/wizard.php:883
1114
  msgid ""
1115
  "This Read Me Help window is draggable (top) and resizable (bottom right "
1116
  "corner)"
@@ -1126,7 +1094,7 @@ msgid ""
1126
  "will be updated/saved."
1127
  msgstr ""
1128
 
1129
- #: admin/core/core-help-text.php:30
1130
  msgid "Important Notes: "
1131
  msgstr ""
1132
 
@@ -1545,12 +1513,12 @@ msgid "Modify wp-admin Query String Exploit code here"
1545
  msgstr ""
1546
 
1547
  #: admin/core/core-htaccess-code.php:55 admin/core/core-htaccess-code.php:118
1548
- #: admin/maintenance/maintenance.php:375 admin/maintenance/maintenance.php:395
1549
  msgid "The file "
1550
  msgstr ""
1551
 
1552
  #: admin/core/core-htaccess-code.php:55 admin/core/core-htaccess-code.php:118
1553
- #: admin/maintenance/maintenance.php:375 admin/maintenance/maintenance.php:395
1554
  msgid " is not writable or does not exist."
1555
  msgstr ""
1556
 
@@ -1576,68 +1544,68 @@ msgid ""
1576
  "problem click"
1577
  msgstr ""
1578
 
1579
- #: admin/core/core-htaccess-code.php:438 admin/core/core-htaccess-code.php:522
1580
- #: admin/core/core-htaccess-code.php:591 admin/core/core-htaccess-code.php:675
1581
  #: admin/core/core.php:1039
1582
  msgid "htaccess Files Disabled: Root htaccess file writing is disabled."
1583
  msgstr ""
1584
 
1585
- #: admin/core/core-htaccess-code.php:460 admin/core/core-htaccess-code.php:613
1586
  #: admin/core/core.php:895
1587
  msgid "Failed to copy your Custom default.htaccess file: "
1588
  msgstr ""
1589
 
1590
- #: admin/core/core-htaccess-code.php:460 admin/core/core-htaccess-code.php:613
1591
  #: admin/core/core.php:895
1592
  msgid " to: "
1593
  msgstr ""
1594
 
1595
- #: admin/core/core-htaccess-code.php:460 admin/core/core-htaccess-code.php:613
1596
  msgid " Check the folder permissions or Ownership for these folders."
1597
  msgstr ""
1598
 
1599
- #: admin/core/core-htaccess-code.php:471 admin/core/core-htaccess-code.php:624
1600
  msgid ""
1601
  "Root Folder BulletProof Mode deactivated successfully. Your Custom default."
1602
  "htaccess is currently in use."
1603
  msgstr ""
1604
 
1605
- #: admin/core/core-htaccess-code.php:495 admin/core/core-htaccess-code.php:648
1606
  msgid ""
1607
  "Failed to deactivate Root Folder BulletProof Mode. Unable to Copy the "
1608
  "default.htaccess file to your root folder."
1609
  msgstr ""
1610
 
1611
- #: admin/core/core-htaccess-code.php:506 admin/core/core-htaccess-code.php:659
1612
  msgid "Root Folder BulletProof Mode deactivated successfully."
1613
  msgstr ""
1614
 
1615
- #: admin/core/core-htaccess-code.php:551 admin/core/core-htaccess-code.php:704
1616
  msgid ""
1617
  "Failed to activate Root Folder BulletProof Mode protection. Your website is "
1618
  "NOT protected."
1619
  msgstr ""
1620
 
1621
- #: admin/core/core-htaccess-code.php:562 admin/core/core-htaccess-code.php:715
1622
  msgid "Root Folder BulletProof Mode protection activated successfully."
1623
  msgstr ""
1624
 
1625
  #: admin/core/core.php:58 admin/db-backup-security/db-backup-security.php:56
1626
  #: admin/login/login.php:51 admin/maintenance/maintenance.php:51
1627
  #: admin/security-log/security-log.php:51 admin/system-info/system-info.php:51
1628
- #: admin/theme-skin/theme-skin.php:56 admin/wizard/wizard.php:57
1629
  msgid "Rate BPS"
1630
  msgstr ""
1631
 
1632
- #: admin/core/core.php:126 admin/includes/admin.php:200
1633
- #: admin/includes/admin.php:201
1634
  msgid "BulletProof Security ~ htaccess Core"
1635
  msgstr ""
1636
 
1637
  #: admin/core/core.php:151 admin/db-backup-security/db-backup-security.php:69
1638
- #: admin/login/login.php:126 admin/maintenance/maintenance.php:74
1639
  #: admin/security-log/security-log.php:64 admin/system-info/system-info.php:64
1640
- #: admin/theme-skin/theme-skin.php:69 admin/wizard/wizard.php:153
1641
  msgid "Settings Saved"
1642
  msgstr ""
1643
 
@@ -1661,15 +1629,15 @@ msgstr ""
1661
  msgid "Whats New"
1662
  msgstr ""
1663
 
1664
- #: admin/core/core.php:183 bulletproof-security.php:118
1665
  msgid "BPS Pro Features"
1666
  msgstr ""
1667
 
1668
  #: admin/core/core.php:184 admin/db-backup-security/db-backup-security.php:262
1669
  #: admin/db-backup-security/db-backup-security.php:1745
1670
- #: admin/login/login.php:163 admin/maintenance/maintenance.php:149
1671
  #: admin/security-log/security-log.php:227 admin/system-info/system-info.php:90
1672
- #: admin/theme-skin/theme-skin.php:92 admin/theme-skin/theme-skin.php:288
1673
  msgid "Help &amp; FAQ"
1674
  msgstr ""
1675
 
@@ -1703,16 +1671,16 @@ msgstr ""
1703
  #: admin/db-backup-security/db-backup-security.php:1150
1704
  #: admin/db-backup-security/db-backup-security.php:1389
1705
  #: admin/login/login.php:185 admin/login/login.php:880
1706
- #: admin/maintenance/maintenance.php:180
1707
  #: admin/security-log/security-log.php:240 admin/system-info/system-info.php:98
1708
- #: admin/theme-skin/theme-skin.php:107 admin/wizard/wizard.php:803
1709
- #: admin/wizard/wizard.php:875
1710
  msgid "Read Me"
1711
  msgstr ""
1712
 
1713
  #: admin/core/core.php:208 admin/core/core.php:318 admin/core/core.php:1449
1714
  #: admin/db-backup-security/db-backup-security.php:291
1715
- #: admin/login/login.php:892 admin/maintenance/maintenance.php:188
1716
  #: admin/system-info/system-info.php:106
1717
  msgid "Forum Help Links: "
1718
  msgstr ""
@@ -1868,10 +1836,10 @@ msgid ""
1868
  "other buttons."
1869
  msgstr ""
1870
 
1871
- #: admin/core/core.php:494 admin/maintenance/maintenance.php:640
1872
- #: admin/security-log/security-log.php:539
1873
- #: admin/security-log/security-log.php:554
1874
- #: admin/security-log/security-log.php:772
1875
  #: admin/system-info/system-info.php:1009
1876
  #: admin/system-info/system-info.php:1070
1877
  msgid "Click OK to proceed or click Cancel."
@@ -2168,9 +2136,9 @@ msgstr ""
2168
  #: admin/system-info/system-info.php:749 admin/system-info/system-info.php:757
2169
  #: admin/system-info/system-info.php:765 admin/system-info/system-info.php:773
2170
  #: admin/system-info/system-info.php:781 admin/system-info/system-info.php:800
2171
- #: includes/functions.php:506 includes/functions.php:656
2172
- #: includes/functions.php:703 includes/functions.php:815
2173
- #: includes/functions.php:861
2174
  msgid "On"
2175
  msgstr ""
2176
 
@@ -2192,8 +2160,8 @@ msgstr ""
2192
  #: admin/system-info/system-info.php:760 admin/system-info/system-info.php:768
2193
  #: admin/system-info/system-info.php:776 admin/system-info/system-info.php:784
2194
  #: admin/system-info/system-info.php:792 admin/system-info/system-info.php:803
2195
- #: includes/functions.php:708 includes/functions.php:821
2196
- #: includes/functions.php:867 includes/general-functions.php:285
2197
  #: includes/general-functions.php:300
2198
  msgid "Off"
2199
  msgstr ""
@@ -2258,7 +2226,7 @@ msgid "Brute Force Login Page Protection code"
2258
  msgstr ""
2259
 
2260
  #: admin/core/core.php:1460 admin/core/core.php:1827
2261
- #: admin/wizard/wizard.php:818
2262
  msgid "Custom Code Video Tutorial"
2263
  msgstr ""
2264
 
@@ -2314,7 +2282,7 @@ msgstr ""
2314
 
2315
  #: admin/core/core.php:1590
2316
  #: admin/db-backup-security/db-backup-security.php:1751
2317
- #: admin/theme-skin/theme-skin.php:294
2318
  msgid "Whats New in "
2319
  msgstr ""
2320
 
@@ -2632,13 +2600,13 @@ msgid ""
2632
  "\">Whats New in BPS Pro %1$s</a>"
2633
  msgstr ""
2634
 
2635
- #: admin/core/core.php:1811 admin/maintenance/maintenance.php:2077
2636
  msgid "Help & FAQ"
2637
  msgstr ""
2638
 
2639
  #: admin/core/core.php:1818 admin/login/login.php:1248
2640
- #: admin/maintenance/maintenance.php:2084
2641
- #: admin/security-log/security-log.php:882
2642
  #: admin/system-info/system-info.php:1092
2643
  msgid "Contributors Page"
2644
  msgstr ""
@@ -2648,8 +2616,8 @@ msgid "WP Permalinks - Custom Permalink Structure Help Info"
2648
  msgstr ""
2649
 
2650
  #: admin/core/core.php:1822 admin/login/login.php:1247
2651
- #: admin/maintenance/maintenance.php:2087
2652
- #: admin/security-log/security-log.php:881
2653
  #: admin/system-info/system-info.php:1091
2654
  msgid "Security Log Event Codes"
2655
  msgstr ""
@@ -2660,9 +2628,9 @@ msgstr ""
2660
 
2661
  #: admin/core/core.php:1826
2662
  #: admin/db-backup-security/db-backup-security.php:1759
2663
- #: admin/login/login.php:1251 admin/maintenance/maintenance.php:2088
2664
- #: admin/security-log/security-log.php:885
2665
- #: admin/system-info/system-info.php:1095 admin/theme-skin/theme-skin.php:302
2666
  msgid "Forum: Search, Troubleshooting Steps & Post Questions For Assistance"
2667
  msgstr ""
2668
 
@@ -3306,7 +3274,7 @@ msgstr ""
3306
  #: admin/db-backup-security/db-backup-security.php:259
3307
  #: admin/db-backup-security/db-backup-security.php:283
3308
  #: admin/db-backup-security/db-backup-security.php:285
3309
- #: admin/includes/admin.php:204
3310
  msgid "DB Backup"
3311
  msgstr ""
3312
 
@@ -4104,7 +4072,7 @@ msgid "Clicking OK will delete the contents of your DB Backup Log file."
4104
  msgstr ""
4105
 
4106
  #: admin/db-backup-security/db-backup-security.php:1285
4107
- #: admin/security-log/security-log.php:583
4108
  msgid "Click OK to Delete the Log file contents or click Cancel."
4109
  msgstr ""
4110
 
@@ -4254,12 +4222,12 @@ msgid ""
4254
  msgstr ""
4255
 
4256
  #: admin/db-backup-security/db-backup-security.php:1752
4257
- #: admin/theme-skin/theme-skin.php:295
4258
  msgid "BPS Pro Features & Version Release Dates"
4259
  msgstr ""
4260
 
4261
  #: admin/db-backup-security/db-backup-security.php:1755
4262
- #: admin/theme-skin/theme-skin.php:298
4263
  msgid "Video Tutorials"
4264
  msgstr ""
4265
 
@@ -4267,117 +4235,117 @@ msgstr ""
4267
  msgid "DB Backup & Security Guide & Troubleshooting"
4268
  msgstr ""
4269
 
4270
- #: admin/includes/admin.php:185
4271
  msgid "BulletProof Security Settings"
4272
  msgstr ""
4273
 
4274
- #: admin/includes/admin.php:185 admin/includes/admin.php:200
4275
  msgid "BPS Security"
4276
  msgstr ""
4277
 
4278
- #: admin/includes/admin.php:186 admin/includes/admin.php:202
4279
  msgid "Login Security"
4280
  msgstr ""
4281
 
4282
- #: admin/includes/admin.php:192 admin/includes/admin.php:211
4283
- #: admin/maintenance/maintenance.php:148 admin/maintenance/maintenance.php:180
4284
- #: admin/maintenance/maintenance.php:182
4285
  msgid "Maintenance Mode"
4286
  msgstr ""
4287
 
4288
- #: admin/includes/admin.php:195 admin/includes/admin.php:214
4289
  #: admin/system-info/system-info.php:88
4290
  msgid "System Info"
4291
  msgstr ""
4292
 
4293
- #: admin/includes/admin.php:196 admin/includes/admin.php:215
4294
  #: admin/theme-skin/theme-skin.php:91 admin/theme-skin/theme-skin.php:107
4295
  #: admin/theme-skin/theme-skin.php:109
4296
  msgid "UI|UX Settings"
4297
  msgstr ""
4298
 
4299
- #: admin/includes/admin.php:201
4300
  msgid "htaccess Core"
4301
  msgstr ""
4302
 
4303
- #: admin/includes/admin.php:202 admin/includes/admin.php:203
4304
  msgid "Login Security ~ ISL ~ ACE"
4305
  msgstr ""
4306
 
4307
- #: admin/includes/admin.php:203
4308
  msgid "Idle Session Logout<br>Cookie Expiration"
4309
  msgstr ""
4310
 
4311
- #: admin/includes/admin.php:204
4312
  msgid "DB Backup & Security"
4313
  msgstr ""
4314
 
4315
- #: admin/includes/admin.php:205 admin/security-log/security-log.php:226
4316
  #: admin/security-log/security-log.php:240
4317
  #: admin/security-log/security-log.php:242
4318
  msgid "Security Log"
4319
  msgstr ""
4320
 
4321
- #: admin/includes/admin.php:216 admin/wizard/wizard.php:773
4322
- #: admin/wizard/wizard.php:803 admin/wizard/wizard.php:805
4323
- #: bulletproof-security.php:94 bulletproof-security.php:97
4324
  msgid "Setup Wizard"
4325
  msgstr ""
4326
 
4327
- #: admin/includes/admin.php:219 admin/includes/admin.php:227
4328
  #: admin/includes/uninstall.php:45
4329
  msgid "BPS Plugin Uninstall Options"
4330
  msgstr ""
4331
 
4332
- #: admin/includes/admin.php:262
4333
  msgid "BPS UI|UX Debug: SLF css Scripts Nulled"
4334
  msgstr ""
4335
 
4336
- #: admin/includes/admin.php:269
4337
  msgid "BPS UI|UX Debug: SLF css Scripts Not Nulled|Allowed"
4338
  msgstr ""
4339
 
4340
- #: admin/includes/admin.php:298
4341
  msgid "BPS UI|UX Debug: SLF js Scripts Nulled"
4342
  msgstr ""
4343
 
4344
- #: admin/includes/admin.php:305
4345
  msgid "BPS UI|UX Debug: SLF js Scripts Not Nulled|Allowed"
4346
  msgstr ""
4347
 
4348
- #: admin/includes/admin.php:388
4349
  msgid "BPS UI|UX Debug: Scripts|Styles Dequeued"
4350
  msgstr ""
4351
 
4352
- #: admin/includes/admin.php:400
4353
  msgid "Script Dequeued: "
4354
  msgstr ""
4355
 
4356
- #: admin/includes/admin.php:406
4357
  msgid ""
4358
  "No plugin or theme Scripts were Dequeued (prevented) from loading in BPS "
4359
  "plugin pages"
4360
  msgstr ""
4361
 
4362
- #: admin/includes/admin.php:418
4363
  msgid "Style Dequeued: "
4364
  msgstr ""
4365
 
4366
- #: admin/includes/admin.php:424
4367
  msgid ""
4368
  "No plugin or theme Styles were Dequeued (prevented) from loading in BPS "
4369
  "plugin pages"
4370
  msgstr ""
4371
 
4372
- #: admin/includes/admin.php:462 admin/includes/admin.php:495
4373
  msgid "BPS UI|UX Debug: WP Toolbar nodes|menu items Removed"
4374
  msgstr ""
4375
 
4376
- #: admin/includes/admin.php:474 admin/includes/admin.php:507
4377
  msgid "WP Toolbar node|menu item Removed: "
4378
  msgstr ""
4379
 
4380
- #: admin/includes/admin.php:482 admin/includes/admin.php:515
4381
  msgid "No WP Toolbar nodes|menu items were Removed in BPS plugin pages"
4382
  msgstr ""
4383
 
@@ -4437,19 +4405,19 @@ msgid ""
4437
  "Protection"
4438
  msgstr ""
4439
 
4440
- #: admin/login/login.php:173 admin/maintenance/maintenance.php:168
4441
  msgid "Notice: "
4442
  msgstr ""
4443
 
4444
- #: admin/login/login.php:173 admin/maintenance/maintenance.php:168
4445
  msgid "You have disabled wp-admin BulletProof Mode on the Security Modes page."
4446
  msgstr ""
4447
 
4448
- #: admin/login/login.php:173 admin/maintenance/maintenance.php:168
4449
  msgid "If you have Go Daddy \"Managed WordPress Hosting\" click this link: "
4450
  msgstr ""
4451
 
4452
- #: admin/login/login.php:173 admin/maintenance/maintenance.php:168
4453
  msgid "Go Daddy Managed WordPress Hosting"
4454
  msgstr ""
4455
 
@@ -4824,7 +4792,7 @@ msgid " Enable|Disable ISL For TinyMCE Editor"
4824
  msgstr ""
4825
 
4826
  #: admin/login/login.php:1079 admin/login/login.php:1219
4827
- #: admin/security-log/security-log.php:527
4828
  msgid "Click OK to Proceed or click Cancel."
4829
  msgstr ""
4830
 
@@ -4880,7 +4848,7 @@ msgstr ""
4880
  msgid "Enable|Disable Auth Cookie Expiration Time For These User Roles: "
4881
  msgstr ""
4882
 
4883
- #: admin/login/login.php:1241 admin/security-log/security-log.php:875
4884
  #: admin/system-info/system-info.php:1085
4885
  msgid "BulletProof Security Help &amp; FAQ"
4886
  msgstr ""
@@ -5068,9 +5036,9 @@ msgid ""
5068
  "be displayed. "
5069
  msgstr ""
5070
 
5071
- #: admin/login/lsm-help-text.php:10 admin/maintenance/maintenance.php:527
5072
- #: includes/hud-dismiss-functions.php:349
5073
- #: includes/hud-dismiss-functions.php:392
5074
  msgid "CAUTION: "
5075
  msgstr ""
5076
 
@@ -5472,30 +5440,54 @@ msgid ""
5472
  "Roles: Administrator, Editor, Author, Contributor, Subscriber."
5473
  msgstr ""
5474
 
5475
- #: admin/maintenance/maintenance.php:61
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5476
  msgid "BulletProof Security ~ Maintenance Mode"
5477
  msgstr ""
5478
 
5479
- #: admin/maintenance/maintenance.php:63
5480
  msgid "Maintenance Mode ~ FrontEnd ~ BackEnd"
5481
  msgstr ""
5482
 
5483
- #: admin/maintenance/maintenance.php:157
5484
  msgid "Display FrontEnd Maintenance Mode Page"
5485
  msgstr ""
5486
 
5487
- #: admin/maintenance/maintenance.php:159
5488
  msgid ""
5489
  "FrontEnd ~ Display Maintenance Mode Page|BackEnd ~ Lock BackEnd with Deny "
5490
  "All htaccess Protection"
5491
  msgstr ""
5492
 
5493
- #: admin/maintenance/maintenance.php:191 admin/maintenance/maintenance.php:197
5494
- #: admin/maintenance/maintenance.php:2083
5495
  msgid "Maintenance Mode Guide"
5496
  msgstr ""
5497
 
5498
- #: admin/maintenance/maintenance.php:193
5499
  msgid ""
5500
  "Create/add whatever messages, images, videos, etc. you want to display to "
5501
  "website visitors with the MMode Editor, select your MMode options/settings, "
@@ -5504,20 +5496,20 @@ msgid ""
5504
  "options/settings."
5505
  msgstr ""
5506
 
5507
- #: admin/maintenance/maintenance.php:193
5508
  msgid ""
5509
  "For more extensive help info, CSS, HTML code examples, Image & Video "
5510
  "embedding code examples to add in the MMode Editor see Forum Help Links at "
5511
  "the top of this Read Me help window."
5512
  msgstr ""
5513
 
5514
- #: admin/maintenance/maintenance.php:193 admin/maintenance/maintenance.php:491
5515
  msgid ""
5516
  "Maintenance Mode Text, CSS Style Code, Images, Videos Displayed To Website "
5517
  "Visitors:"
5518
  msgstr ""
5519
 
5520
- #: admin/maintenance/maintenance.php:193
5521
  msgid ""
5522
  "This is a standard WordPress TinyMCE WYSIWYG editor that has a Visual Editor "
5523
  "and a Text Editor for adding CSS or HTML code. Enter plain text, CSS, HTML "
@@ -5529,11 +5521,11 @@ msgid ""
5529
  "Save Options button to save your edits."
5530
  msgstr ""
5531
 
5532
- #: admin/maintenance/maintenance.php:193
5533
  msgid "Enable Countdown Timer:"
5534
  msgstr ""
5535
 
5536
- #: admin/maintenance/maintenance.php:193
5537
  msgid ""
5538
  "Check this checkbox to enable a javascript Countdown Timer that will be "
5539
  "displayed to visitors. When the Countdown Timer reaches 0/has completed your "
@@ -5542,42 +5534,42 @@ msgid ""
5542
  "off Maintenance Mode when the Countdown Timer reaches 0/has completed."
5543
  msgstr ""
5544
 
5545
- #: admin/maintenance/maintenance.php:193 admin/maintenance/maintenance.php:506
5546
  msgid "Countdown Timer Text Color:"
5547
  msgstr ""
5548
 
5549
- #: admin/maintenance/maintenance.php:193
5550
  msgid "Select the text color for the Countdown Timer."
5551
  msgstr ""
5552
 
5553
- #: admin/maintenance/maintenance.php:193 admin/maintenance/maintenance.php:514
5554
  msgid "Maintenance Mode Time (in Minutes):"
5555
  msgstr ""
5556
 
5557
- #: admin/maintenance/maintenance.php:193
5558
  msgid ""
5559
  "Enter the amount of time that you want to put your site into Maintenance "
5560
  "Mode in minutes. Example: 10 = 10 minutes, 180 = 3 hours, 1440 = 24 hours, "
5561
  "4320 = 3 days."
5562
  msgstr ""
5563
 
5564
- #: admin/maintenance/maintenance.php:193 admin/maintenance/maintenance.php:518
5565
  msgid ""
5566
  "Header Retry-After (enter the same time as Maintenance Mode Time above):"
5567
  msgstr ""
5568
 
5569
- #: admin/maintenance/maintenance.php:193
5570
  msgid ""
5571
  "This is the amount of time that you are telling Search Engines to wait "
5572
  "before visiting your website again. Enter the same time in minutes that you "
5573
  "entered for Maintenance Mode Time."
5574
  msgstr ""
5575
 
5576
- #: admin/maintenance/maintenance.php:193
5577
  msgid "Enable FrontEnd Maintenance Mode:"
5578
  msgstr ""
5579
 
5580
- #: admin/maintenance/maintenance.php:193
5581
  msgid ""
5582
  "Check this checkbox to enable FrontEnd Maintenance Mode. When you Turn On "
5583
  "FrontEnd Maintenance Mode your website Maintenance Mode page will be "
@@ -5588,11 +5580,11 @@ msgid ""
5588
  "be locked out of your WordPress Dashboard."
5589
  msgstr ""
5590
 
5591
- #: admin/maintenance/maintenance.php:193
5592
  msgid "Enable BackEnd Maintenance Mode:"
5593
  msgstr ""
5594
 
5595
- #: admin/maintenance/maintenance.php:193
5596
  msgid ""
5597
  "Check this checkbox to enable BackEnd Maintenance Mode. Be sure to enter the "
5598
  "Your IP address/the Recommended IP address in the Maintenance Mode IP "
@@ -5604,17 +5596,17 @@ msgid ""
5604
  "your WordPress Dashboard."
5605
  msgstr ""
5606
 
5607
- #: admin/maintenance/maintenance.php:193 admin/maintenance/maintenance.php:533
5608
  msgid "Maintenance Mode IP Address Whitelist Text Box:"
5609
  msgstr ""
5610
 
5611
- #: admin/maintenance/maintenance.php:193
5612
  msgid ""
5613
  "Enter The IP Address That Can View The Website Normally (not in Maintenance "
5614
  "Mode):"
5615
  msgstr ""
5616
 
5617
- #: admin/maintenance/maintenance.php:193
5618
  msgid ""
5619
  "Enter Multiple IP addresses separated by a comma and a single space. "
5620
  "Example: 100.99.88.77, 200.66.55.44, 44.33.22.1 It is recommended that you "
@@ -5626,83 +5618,83 @@ msgid ""
5626
  "octets or your current IP address to whitelist your IP address."
5627
  msgstr ""
5628
 
5629
- #: admin/maintenance/maintenance.php:193 admin/maintenance/maintenance.php:548
5630
  msgid "Background Images:"
5631
  msgstr ""
5632
 
5633
- #: admin/maintenance/maintenance.php:193
5634
  msgid ""
5635
  "Select a background image that you want to use. BPS includes 20 background "
5636
  "images and 15 center images (text box images) that you can mix and match to "
5637
  "your design/color scheme preference."
5638
  msgstr ""
5639
 
5640
- #: admin/maintenance/maintenance.php:193 admin/maintenance/maintenance.php:573
5641
  msgid "Center Images:"
5642
  msgstr ""
5643
 
5644
- #: admin/maintenance/maintenance.php:193
5645
  msgid ""
5646
  "Select a center image that you want to use. BPS includes 20 background "
5647
  "images and 15 center images (text box images) that you can mix and match to "
5648
  "your design/color scheme preference."
5649
  msgstr ""
5650
 
5651
- #: admin/maintenance/maintenance.php:193 admin/maintenance/maintenance.php:593
5652
  msgid "Background Colors (If not using a Background Image):"
5653
  msgstr ""
5654
 
5655
- #: admin/maintenance/maintenance.php:193
5656
  msgid ""
5657
  "Select a background color that you want to use. If you do not want to use a "
5658
  "background image then you can instead choose a background color."
5659
  msgstr ""
5660
 
5661
- #: admin/maintenance/maintenance.php:193
5662
  msgid "Display Visitor IP Address:"
5663
  msgstr ""
5664
 
5665
- #: admin/maintenance/maintenance.php:193
5666
  msgid "Check this checkbox to display the website visitor's IP addresses."
5667
  msgstr ""
5668
 
5669
- #: admin/maintenance/maintenance.php:193 admin/maintenance/maintenance.php:603
5670
  msgid "Display Admin|Login Link"
5671
  msgstr ""
5672
 
5673
- #: admin/maintenance/maintenance.php:193
5674
  msgid ""
5675
  "Check this checkbox to display a Login link that points to your wp-admin "
5676
  "folder/Login page."
5677
  msgstr ""
5678
 
5679
- #: admin/maintenance/maintenance.php:193
5680
  msgid "Display Dashboard Reminder Message when site is in Maintenance Mode:"
5681
  msgstr ""
5682
 
5683
- #: admin/maintenance/maintenance.php:193
5684
  msgid ""
5685
  "Check this checkbox to display a WordPress Dashboard Reminder Notice that "
5686
  "your website is in Maintenance Mode."
5687
  msgstr ""
5688
 
5689
- #: admin/maintenance/maintenance.php:193
5690
  msgid "Enable Visitor Logging:"
5691
  msgstr ""
5692
 
5693
- #: admin/maintenance/maintenance.php:193
5694
  msgid ""
5695
  "Check this checkbox to enable visitor logging. Logs all visitors to your "
5696
  "site while your site is in Maintenance Mode. Log entries are created in the "
5697
  "BPS Security Log file. "
5698
  msgstr ""
5699
 
5700
- #: admin/maintenance/maintenance.php:194
5701
  msgid ""
5702
  "Send Email Reminder when Maintenance Mode Countdown Timer has completed:"
5703
  msgstr ""
5704
 
5705
- #: admin/maintenance/maintenance.php:194
5706
  msgid ""
5707
  "Check this checkbox to enable the javascript Countdown Timer to send you an "
5708
  "email reminder when the Countdown Timer reaches 0/is completed. More "
@@ -5714,11 +5706,11 @@ msgid ""
5714
  "the Countdown Timer reaches 0/has completed."
5715
  msgstr ""
5716
 
5717
- #: admin/maintenance/maintenance.php:194
5718
  msgid "Testing the Countdown Timer Send Email Option:"
5719
  msgstr ""
5720
 
5721
- #: admin/maintenance/maintenance.php:194
5722
  msgid ""
5723
  "There is a 1 minute buffer so that when the Maintenance Mode page is created "
5724
  "an email will not be sent immediately. To test the Send Email option use 2 "
@@ -5729,21 +5721,21 @@ msgid ""
5729
  "how fast your Mail Server sends the email to you."
5730
  msgstr ""
5731
 
5732
- #: admin/maintenance/maintenance.php:194
5733
  msgid "Send Countdown Timer Email:"
5734
  msgstr ""
5735
 
5736
- #: admin/maintenance/maintenance.php:194
5737
  msgid ""
5738
  "Enter the email addresses that you would like the Countdown Timer reminder "
5739
  "email sent to, from, cc or bcc."
5740
  msgstr ""
5741
 
5742
- #: admin/maintenance/maintenance.php:194
5743
  msgid "Network/Multisite Primary Site Options ONLY:"
5744
  msgstr ""
5745
 
5746
- #: admin/maintenance/maintenance.php:194
5747
  msgid ""
5748
  "These options/settings are for Network/Multisite ONLY and are ONLY displayed "
5749
  "on the Primary Network/Multisite site. Checking these options on a Single/"
@@ -5751,11 +5743,11 @@ msgid ""
5751
  "for Network/Multisite WordPress installations."
5752
  msgstr ""
5753
 
5754
- #: admin/maintenance/maintenance.php:194
5755
  msgid "Steps to use these special Network/Multisite options:"
5756
  msgstr ""
5757
 
5758
- #: admin/maintenance/maintenance.php:194
5759
  msgid ""
5760
  "To turn On either of these special options, check the checkbox, click the "
5761
  "Save Options button and click the Turn On button. To turn Off either of "
@@ -5767,29 +5759,29 @@ msgid ""
5767
  "special option settings in that template file."
5768
  msgstr ""
5769
 
5770
- #: admin/maintenance/maintenance.php:194
5771
  msgid "Put The Primary Site And All Subsites In Maintenance Mode:"
5772
  msgstr ""
5773
 
5774
- #: admin/maintenance/maintenance.php:194
5775
  msgid "Check this checkbox to put all of the sites into Maintenance Mode."
5776
  msgstr ""
5777
 
5778
- #: admin/maintenance/maintenance.php:194
5779
  msgid "Put All Subsites In Maintenance Mode, But Not The Primary Site:"
5780
  msgstr ""
5781
 
5782
- #: admin/maintenance/maintenance.php:194
5783
  msgid ""
5784
  "Check this checkbox to put all of the subsites into Maintenance Mode except "
5785
  "for the Primary site."
5786
  msgstr ""
5787
 
5788
- #: admin/maintenance/maintenance.php:194
5789
  msgid "Save Options Button"
5790
  msgstr ""
5791
 
5792
- #: admin/maintenance/maintenance.php:194
5793
  msgid ""
5794
  "Clicking the Save Options button does 2 things: Saves all your options/"
5795
  "settings to your Database and creates all necessary Maintenance Mode files/"
@@ -5797,11 +5789,11 @@ msgid ""
5797
  "Click the Turn On button after clicking the Save Options button."
5798
  msgstr ""
5799
 
5800
- #: admin/maintenance/maintenance.php:194
5801
  msgid "Preview Button"
5802
  msgstr ""
5803
 
5804
- #: admin/maintenance/maintenance.php:194
5805
  msgid ""
5806
  "Clicking the Preview button allows you to preview the Maintenance Mode files/"
5807
  "Forms that were created when you clicked the Save Options button. Preview "
@@ -5811,11 +5803,11 @@ msgid ""
5811
  "On button."
5812
  msgstr ""
5813
 
5814
- #: admin/maintenance/maintenance.php:194
5815
  msgid "Turn On Button"
5816
  msgstr ""
5817
 
5818
- #: admin/maintenance/maintenance.php:194
5819
  msgid ""
5820
  "Clicking the Turn On button turns On Maintenance Mode. Turn On is "
5821
  "conditional and allows you to make changes to your Maintenance Mode page "
@@ -5825,11 +5817,11 @@ msgid ""
5825
  "on your Maintenance Mode page."
5826
  msgstr ""
5827
 
5828
- #: admin/maintenance/maintenance.php:194
5829
  msgid "Turn Off Button"
5830
  msgstr ""
5831
 
5832
- #: admin/maintenance/maintenance.php:194
5833
  msgid ""
5834
  "Clicking the Turn Off button turns Off Maintenance Mode. Turn Off is non-"
5835
  "conditional and works like a Form Reset, but does not remove any of your "
@@ -5839,23 +5831,23 @@ msgid ""
5839
  "remain in your website root folder, but Maintenance Mode will be turned Off."
5840
  msgstr ""
5841
 
5842
- #: admin/maintenance/maintenance.php:194
5843
  msgid "BPS help links can be found in the Help & FAQ pages."
5844
  msgstr ""
5845
 
5846
- #: admin/maintenance/maintenance.php:230
5847
  msgid ""
5848
  "Error: You did not enter anything in the Maintenance Mode Time Text Box."
5849
  msgstr ""
5850
 
5851
- #: admin/maintenance/maintenance.php:238 admin/maintenance/maintenance.php:733
5852
- #: admin/maintenance/maintenance.php:941
5853
  msgid ""
5854
  "Error: You did not enter an IP Address in the Maintenance Mode IP Address "
5855
  "Whitelist Text Box."
5856
  msgstr ""
5857
 
5858
- #: admin/maintenance/maintenance.php:368 admin/maintenance/maintenance.php:388
5859
  msgid ""
5860
  "Success! Your Options have been saved and your Maintenance Mode Form has "
5861
  "been created successfully! Click the Preview button to preview your Website "
@@ -5863,332 +5855,328 @@ msgid ""
5863
  "button."
5864
  msgstr ""
5865
 
5866
- #: admin/maintenance/maintenance.php:375
5867
  msgid ""
5868
  "Check that the file exists in the /bulletproof-security/admin/htaccess/ "
5869
  "master folder. If this is not the problem "
5870
  msgstr ""
5871
 
5872
- #: admin/maintenance/maintenance.php:375 admin/maintenance/maintenance.php:395
5873
- #: admin/wizard/wizard.php:131 includes/general-functions.php:509
5874
- #: includes/hud-dismiss-functions.php:349
5875
- #: includes/hud-dismiss-functions.php:392
5876
- #: includes/hud-dismiss-functions.php:493
5877
- #: includes/hud-dismiss-functions.php:539
5878
- #: includes/hud-dismiss-functions.php:591
5879
- #: includes/hud-dismiss-functions.php:600
5880
- #: includes/hud-dismiss-functions.php:654
5881
  msgid "Click Here"
5882
  msgstr ""
5883
 
5884
- #: admin/maintenance/maintenance.php:375 admin/maintenance/maintenance.php:395
5885
  msgid " for assistance."
5886
  msgstr ""
5887
 
5888
- #: admin/maintenance/maintenance.php:395
5889
  msgid ""
5890
  "Check that the bps-maintenance-values.php file exists in the /bulletproof-"
5891
  "security/admin/htaccess/ master folder. If this is not the problem "
5892
  msgstr ""
5893
 
5894
- #: admin/maintenance/maintenance.php:456 admin/maintenance/maintenance.php:463
5895
- #: admin/maintenance/maintenance.php:470
5896
  msgid "Your Current IP Address: "
5897
  msgstr ""
5898
 
5899
- #: admin/maintenance/maintenance.php:456 admin/maintenance/maintenance.php:463
5900
- #: admin/maintenance/maintenance.php:470
5901
  msgid "Recommended IP Address: "
5902
  msgstr ""
5903
 
5904
- #: admin/maintenance/maintenance.php:488
5905
  msgid "MMode Editor"
5906
  msgstr ""
5907
 
5908
- #: admin/maintenance/maintenance.php:492
5909
  msgid ""
5910
  "Click the Maintenance Mode Guide link above for CSS Code, Image & Video "
5911
  "Embed examples."
5912
  msgstr ""
5913
 
5914
- #: admin/maintenance/maintenance.php:501
5915
  msgid "MMode Option Settings"
5916
  msgstr ""
5917
 
5918
- #: admin/maintenance/maintenance.php:504
5919
  msgid "Enable Countdown Timer"
5920
  msgstr ""
5921
 
5922
- #: admin/maintenance/maintenance.php:508
5923
  msgid "LCD|Lime Green"
5924
  msgstr ""
5925
 
5926
- #: admin/maintenance/maintenance.php:509 admin/maintenance/maintenance.php:596
5927
  msgid "White"
5928
  msgstr ""
5929
 
5930
- #: admin/maintenance/maintenance.php:510
5931
  msgid "Silver"
5932
  msgstr ""
5933
 
5934
- #: admin/maintenance/maintenance.php:511 admin/maintenance/maintenance.php:598
5935
  msgid "Gray"
5936
  msgstr ""
5937
 
5938
- #: admin/maintenance/maintenance.php:515 admin/maintenance/maintenance.php:519
5939
  msgid "Example: 10 = 10 minutes, 180 = 3 hours, 1440 = 24 hours."
5940
  msgstr ""
5941
 
5942
- #: admin/maintenance/maintenance.php:522
5943
  msgid "Enable FrontEnd Maintenance Mode"
5944
  msgstr ""
5945
 
5946
- #: admin/maintenance/maintenance.php:527
5947
  msgid "You MUST enter Your Current IP Address or the"
5948
  msgstr ""
5949
 
5950
- #: admin/maintenance/maintenance.php:527
5951
  msgid "Recommended IP Address if you Enable BackEnd Maintenance Mode"
5952
  msgstr ""
5953
 
5954
- #: admin/maintenance/maintenance.php:527
5955
  msgid "or you will be locked out of your WordPress Dashboard."
5956
  msgstr ""
5957
 
5958
- #: admin/maintenance/maintenance.php:528
5959
  msgid "Enable BackEnd Maintenance Mode "
5960
  msgstr ""
5961
 
5962
- #: admin/maintenance/maintenance.php:536
5963
  msgid ""
5964
  "Enter The IP Address That Can View The Website Normally (not in Maintenance "
5965
  "Mode)."
5966
  msgstr ""
5967
 
5968
- #: admin/maintenance/maintenance.php:537
5969
  msgid "Enter Multiple IP addresses separated by a comma and a single space."
5970
  msgstr ""
5971
 
5972
- #: admin/maintenance/maintenance.php:538
5973
  msgid "Example IPv4 IP Addresses: 100.99.88.77, 200.66.55.44, 44.33.22.1"
5974
  msgstr ""
5975
 
5976
- #: admin/maintenance/maintenance.php:539
5977
  msgid ""
5978
  "Example IPv6 IP Addresses: 0:0:0:0:0:ffff:6463:584d, 0:0:0:0:0:ffff:c842:372c"
5979
  msgstr ""
5980
 
5981
- #: admin/maintenance/maintenance.php:550
5982
  msgid "No Background Image"
5983
  msgstr ""
5984
 
5985
- #: admin/maintenance/maintenance.php:551
5986
  msgid "Black Honeycomb Large"
5987
  msgstr ""
5988
 
5989
- #: admin/maintenance/maintenance.php:552
5990
  msgid "Black Honeycomb Large Grey Line"
5991
  msgstr ""
5992
 
5993
- #: admin/maintenance/maintenance.php:553
5994
  msgid "Black Mesh Small"
5995
  msgstr ""
5996
 
5997
- #: admin/maintenance/maintenance.php:554
5998
  msgid "Black Mesh Small Grey Line"
5999
  msgstr ""
6000
 
6001
- #: admin/maintenance/maintenance.php:555
6002
  msgid "Blue Honeycomb Large"
6003
  msgstr ""
6004
 
6005
- #: admin/maintenance/maintenance.php:556
6006
  msgid "Blue Mesh Small"
6007
  msgstr ""
6008
 
6009
- #: admin/maintenance/maintenance.php:557
6010
  msgid "Brown Honeycomb Large"
6011
  msgstr ""
6012
 
6013
- #: admin/maintenance/maintenance.php:558
6014
  msgid "Brown Mesh Small"
6015
  msgstr ""
6016
 
6017
- #: admin/maintenance/maintenance.php:559
6018
  msgid "Green Honeycomb Large"
6019
  msgstr ""
6020
 
6021
- #: admin/maintenance/maintenance.php:560
6022
  msgid "Green Mesh Small"
6023
  msgstr ""
6024
 
6025
- #: admin/maintenance/maintenance.php:561
6026
  msgid "Gray Honeycomb Large"
6027
  msgstr ""
6028
 
6029
- #: admin/maintenance/maintenance.php:562
6030
  msgid "Gray Mesh Small"
6031
  msgstr ""
6032
 
6033
- #: admin/maintenance/maintenance.php:563
6034
  msgid "Orange Honeycomb Large"
6035
  msgstr ""
6036
 
6037
- #: admin/maintenance/maintenance.php:564
6038
  msgid "Orange Mesh Small"
6039
  msgstr ""
6040
 
6041
- #: admin/maintenance/maintenance.php:565
6042
  msgid "Purple Honeycomb Large"
6043
  msgstr ""
6044
 
6045
- #: admin/maintenance/maintenance.php:566
6046
  msgid "Purple Mesh Small"
6047
  msgstr ""
6048
 
6049
- #: admin/maintenance/maintenance.php:567
6050
  msgid "Red|Burgundy Honeycomb Large"
6051
  msgstr ""
6052
 
6053
- #: admin/maintenance/maintenance.php:568
6054
  msgid "Red|Burgundy Mesh Small"
6055
  msgstr ""
6056
 
6057
- #: admin/maintenance/maintenance.php:569
6058
  msgid "Yellow Honeycomb Large"
6059
  msgstr ""
6060
 
6061
- #: admin/maintenance/maintenance.php:570
6062
  msgid "Yellow Mesh Small"
6063
  msgstr ""
6064
 
6065
- #: admin/maintenance/maintenance.php:575
6066
  msgid "No Center Image"
6067
  msgstr ""
6068
 
6069
- #: admin/maintenance/maintenance.php:576
6070
  msgid "Basic Black"
6071
  msgstr ""
6072
 
6073
- #: admin/maintenance/maintenance.php:577
6074
  msgid "Black Veins"
6075
  msgstr ""
6076
 
6077
- #: admin/maintenance/maintenance.php:578
6078
  msgid "Blue Glass"
6079
  msgstr ""
6080
 
6081
- #: admin/maintenance/maintenance.php:579
6082
  msgid "Brushed Metal Stamped"
6083
  msgstr ""
6084
 
6085
- #: admin/maintenance/maintenance.php:580
6086
  msgid "Chrome"
6087
  msgstr ""
6088
 
6089
- #: admin/maintenance/maintenance.php:581
6090
  msgid "Chrome Slick"
6091
  msgstr ""
6092
 
6093
- #: admin/maintenance/maintenance.php:582
6094
  msgid "Fire"
6095
  msgstr ""
6096
 
6097
- #: admin/maintenance/maintenance.php:583
6098
  msgid "Gun Metal"
6099
  msgstr ""
6100
 
6101
- #: admin/maintenance/maintenance.php:584
6102
  msgid "Mercury"
6103
  msgstr ""
6104
 
6105
- #: admin/maintenance/maintenance.php:585
6106
  msgid "Smoke"
6107
  msgstr ""
6108
 
6109
- #: admin/maintenance/maintenance.php:586
6110
  msgid "Striped Cone"
6111
  msgstr ""
6112
 
6113
- #: admin/maintenance/maintenance.php:587
6114
  msgid "Swamp Bevel"
6115
  msgstr ""
6116
 
6117
- #: admin/maintenance/maintenance.php:588
6118
  msgid "Toy"
6119
  msgstr ""
6120
 
6121
- #: admin/maintenance/maintenance.php:589
6122
  msgid "Water Reflection"
6123
  msgstr ""
6124
 
6125
- #: admin/maintenance/maintenance.php:590
6126
  msgid "Wood Grain"
6127
  msgstr ""
6128
 
6129
- #: admin/maintenance/maintenance.php:595
6130
  msgid "No Background Color"
6131
  msgstr ""
6132
 
6133
- #: admin/maintenance/maintenance.php:597
6134
  msgid "Black"
6135
  msgstr ""
6136
 
6137
- #: admin/maintenance/maintenance.php:601
6138
  msgid "Display Visitor IP Address"
6139
  msgstr ""
6140
 
6141
- #: admin/maintenance/maintenance.php:605
6142
  msgid "Display Dashboard Reminder Message when site is in Maintenance Mode"
6143
  msgstr ""
6144
 
6145
- #: admin/maintenance/maintenance.php:607
6146
  msgid "Enable Visitor Logging"
6147
  msgstr ""
6148
 
6149
- #: admin/maintenance/maintenance.php:609
6150
  msgid "Send Email Reminder when Maintenance Mode Countdown Timer has completed"
6151
  msgstr ""
6152
 
6153
- #: admin/maintenance/maintenance.php:611
6154
  msgid "Send Countdown Timer Email To:"
6155
  msgstr ""
6156
 
6157
- #: admin/maintenance/maintenance.php:613
6158
  msgid "Send Countdown Timer Email From:"
6159
  msgstr ""
6160
 
6161
- #: admin/maintenance/maintenance.php:615
6162
  msgid "Send Countdown Timer Email Cc:"
6163
  msgstr ""
6164
 
6165
- #: admin/maintenance/maintenance.php:617
6166
  msgid "Send Countdown Timer Email Bcc:"
6167
  msgstr ""
6168
 
6169
- #: admin/maintenance/maintenance.php:622
6170
  msgid "MMode Network|Multisite Options"
6171
  msgstr ""
6172
 
6173
- #: admin/maintenance/maintenance.php:625
6174
  msgid "Network|Multisite Primary Site Options ONLY"
6175
  msgstr ""
6176
 
6177
- #: admin/maintenance/maintenance.php:629
6178
  msgid ""
6179
  "Click the Maintenance Mode Read Me help button for the steps to use these "
6180
  "special options:"
6181
  msgstr ""
6182
 
6183
- #: admin/maintenance/maintenance.php:630
6184
  msgid "Put The Primary Site And All Subsites In Maintenance Mode"
6185
  msgstr ""
6186
 
6187
- #: admin/maintenance/maintenance.php:632
6188
  msgid "Put All Subsites In Maintenance Mode, But Not The Primary Site"
6189
  msgstr ""
6190
 
6191
- #: admin/maintenance/maintenance.php:640
6192
  msgid ""
6193
  "Clicking OK Saves your Options/Settings to your Database and also creates "
6194
  "your Maintenance Mode page. Click the Preview button to preview your "
@@ -6196,91 +6184,91 @@ msgid ""
6196
  "Turn On button to enable Maintenance Mode on your website."
6197
  msgstr ""
6198
 
6199
- #: admin/maintenance/maintenance.php:744 admin/maintenance/maintenance.php:952
6200
  msgid ""
6201
  "IP Address Format Error: You have entered multiple IP Addresses using an "
6202
  "incorrect Format."
6203
  msgstr ""
6204
 
6205
- #: admin/maintenance/maintenance.php:744 admin/maintenance/maintenance.php:952
6206
  msgid ""
6207
  "The correct IP Address Format is: IP Address comma single space. Example: "
6208
  "100.99.88.77, 200.66.55.44, 44.33.22.1 or 100.99.88., 200.66.55., 44.33.22. "
6209
  "if you are using the recommended 3 octet IP addresses."
6210
  msgstr ""
6211
 
6212
- #: admin/maintenance/maintenance.php:744 admin/maintenance/maintenance.php:952
6213
  msgid ""
6214
  "Correct the IP Address Format and click the Save Options button again. If "
6215
  "you have an IPv6 IP address use the same general format as an IPv4 IP "
6216
  "address - comma single space."
6217
  msgstr ""
6218
 
6219
- #: admin/maintenance/maintenance.php:795 admin/maintenance/maintenance.php:1003
6220
- #: admin/maintenance/maintenance.php:1105
6221
  msgid "FrontEnd Maintenance Mode has been Turned On."
6222
  msgstr ""
6223
 
6224
- #: admin/maintenance/maintenance.php:813 admin/maintenance/maintenance.php:1129
6225
- #: admin/maintenance/maintenance.php:1638
6226
- #: admin/maintenance/maintenance.php:1768
6227
- #: admin/maintenance/maintenance.php:1959
6228
  msgid "htaccess Files Disabled: BackEnd Maintenance Mode is disabled."
6229
  msgstr ""
6230
 
6231
- #: admin/maintenance/maintenance.php:888 admin/maintenance/maintenance.php:1206
6232
  msgid "BackEnd Maintenance Mode has been Turned On."
6233
  msgstr ""
6234
 
6235
- #: admin/maintenance/maintenance.php:1222
6236
- #: admin/maintenance/maintenance.php:2011
6237
  msgid ""
6238
  "Error: You have not saved your option settings yet. Click the Save Options "
6239
  "button."
6240
  msgstr ""
6241
 
6242
- #: admin/maintenance/maintenance.php:1299
6243
  msgid ""
6244
  "Error: Unable to get/find the site root index.php file for this GWIOD - "
6245
  "Giving WordPress Its Own Directory - website."
6246
  msgstr ""
6247
 
6248
- #: admin/maintenance/maintenance.php:1299
6249
  msgid "GWIOD Site Root index.php File Path Checked: "
6250
  msgstr ""
6251
 
6252
- #: admin/maintenance/maintenance.php:1299
6253
  msgid ""
6254
  "BPS Maintenance Mode will not work correctly with your WordPress GWIOD "
6255
  "setup. Try another WordPress Maintenance Mode plugin."
6256
  msgstr ""
6257
 
6258
- #: admin/maintenance/maintenance.php:1365
6259
  msgid ""
6260
  "Error: Unable to get/find the site root index.php file for this Network "
6261
  "GWIOD - Giving WordPress Its Own Directory - website."
6262
  msgstr ""
6263
 
6264
- #: admin/maintenance/maintenance.php:1365
6265
  msgid "Network GWIOD Site Root index.php File Path Checked: "
6266
  msgstr ""
6267
 
6268
- #: admin/maintenance/maintenance.php:1365
6269
  msgid ""
6270
  "Please copy this error message and send it in an email to info@ait-pro.com "
6271
  "for assistance."
6272
  msgstr ""
6273
 
6274
- #: admin/maintenance/maintenance.php:1450
6275
- #: admin/maintenance/maintenance.php:1575
6276
- #: admin/maintenance/maintenance.php:1731
6277
- #: admin/maintenance/maintenance.php:1911
6278
  msgid "FrontEnd Maintenance Mode has been Turned Off."
6279
  msgstr ""
6280
 
6281
- #: admin/maintenance/maintenance.php:1678
6282
- #: admin/maintenance/maintenance.php:1804
6283
- #: admin/maintenance/maintenance.php:1995
6284
  msgid "BackEnd Maintenance Mode has been Turned Off."
6285
  msgstr ""
6286
 
@@ -6486,48 +6474,59 @@ msgid ""
6486
  msgstr ""
6487
 
6488
  #: admin/security-log/security-log.php:254
6489
- msgid "Limit POST Request Body Data"
 
6490
  msgstr ""
6491
 
6492
  #: admin/security-log/security-log.php:254
6493
  msgid ""
6494
- "The maximum Security Log Request Body Data capture/log limit is 250000 "
6495
- "maximum characters, which is roughly about 250KB in size. The Limit POST "
6496
- "Request Body Data checkbox option limits the maximum number of Request Body "
6497
- "Data characters captured/logged in the Request Body logging field to 500 "
6498
- "characters, which is roughly 5KB in size. The Limit POST Request Body Data "
6499
- "checkbox is checked by default. You can capture/log entire hacking scripts "
6500
- "if you uncheck the Limit POST Request Body Data checkbox "
6501
- msgstr ""
6502
-
6503
- #: admin/security-log/security-log.php:254
6504
- msgid "(See Note below)"
6505
  msgstr ""
6506
 
6507
  #: admin/security-log/security-log.php:254
6508
  msgid ""
6509
- ", but that means your log file size could increase dramatically and you "
6510
- "could receive more automated Security Log zip file emails. If you are using "
6511
- "email security protection on your computer then your zipped Security Log "
6512
- "files may be seen as containing a virus (hacker script/code) and they could "
6513
- "be automatically deleted by your email protection application on your "
6514
- "computer. Your computer security protection software may also see the "
6515
- "Security Log file as malicious and block it. If you do not want to capture/"
6516
- "log entire hacker scripts/files/code in the Request Body logging field then "
6517
- "keep the Limit POST Request Body Data checkbox checked. "
 
 
6518
  msgstr ""
6519
 
6520
  #: admin/security-log/security-log.php:254
6521
- msgid "Note: "
 
 
 
 
 
 
 
 
6522
  msgstr ""
6523
 
6524
  #: admin/security-log/security-log.php:254
6525
  msgid ""
6526
- "To capture/log all POST Request Attacks against your website you will need "
6527
- "to add the POST Request Attack Protection Bonus Custom Code. A link to that "
6528
- "Bonus Custom Code is at the top of this Read Me help window. If you do not "
6529
- "want to add the Bonus Custom Code then some, but not all POST Request "
6530
- "Attacks will be captured/logged in the Security Log."
 
 
 
 
6531
  msgstr ""
6532
 
6533
  #: admin/security-log/security-log.php:254
@@ -6564,7 +6563,7 @@ msgid ""
6564
  msgstr ""
6565
 
6566
  #: admin/security-log/security-log.php:254
6567
- #: admin/security-log/security-log.php:536
6568
  msgid "Add User Agents|Bots to Ignore|Not Log"
6569
  msgstr ""
6570
 
@@ -6676,26 +6675,26 @@ msgid ""
6676
  msgstr ""
6677
 
6678
  #: admin/security-log/security-log.php:401
6679
- #: admin/security-log/security-log.php:607 admin/wizard/wizard.php:254
6680
- #: admin/wizard/wizard.php:260 admin/wizard/wizard.php:266
6681
- #: admin/wizard/wizard.php:272 admin/wizard/wizard.php:278
6682
  msgid "Error: The "
6683
  msgstr ""
6684
 
6685
  #: admin/security-log/security-log.php:401
6686
- #: admin/security-log/security-log.php:607
6687
  msgid " does not exist."
6688
  msgstr ""
6689
 
6690
  #: admin/security-log/security-log.php:429
6691
- #: admin/security-log/security-log.php:620
6692
- #: admin/security-log/security-log.php:684
6693
  msgid "Error: Unable to write to file "
6694
  msgstr ""
6695
 
6696
  #: admin/security-log/security-log.php:429
6697
- #: admin/security-log/security-log.php:620
6698
- #: admin/security-log/security-log.php:684
6699
  msgid ""
6700
  ". Check that file permissions allow writing to this file. If you have a DSO "
6701
  "Server check file and folder Ownership."
@@ -6708,141 +6707,149 @@ msgid ""
6708
  msgstr ""
6709
 
6710
  #: admin/security-log/security-log.php:526
6711
- msgid " Limit POST Request Body Data"
6712
  msgstr ""
6713
 
6714
- #: admin/security-log/security-log.php:537
6715
- msgid "Click the Read Me Help button for examples"
 
 
 
 
6716
  msgstr ""
6717
 
6718
  #: admin/security-log/security-log.php:539
 
 
 
 
6719
  msgid ""
6720
  "Clicking OK will Add the User Agent|Bot name you have entered to your DB and "
6721
  "the 403.php Security Logging template."
6722
  msgstr ""
6723
 
6724
- #: admin/security-log/security-log.php:539
6725
  msgid ""
6726
  "Security logging checks are done by the 403.php Security Logging file and "
6727
  "not by DB Queries."
6728
  msgstr ""
6729
 
6730
- #: admin/security-log/security-log.php:539
6731
  msgid ""
6732
  "To remove User Agents|Bots from being ignored/not logged use the Remove|"
6733
  "Allow tool."
6734
  msgstr ""
6735
 
6736
- #: admin/security-log/security-log.php:552
6737
  msgid "Remove User Agents|Bots to Allow|Log"
6738
  msgstr ""
6739
 
6740
- #: admin/security-log/security-log.php:554
6741
  msgid ""
6742
  "Clicking OK will search your database and display User Agent|Bot DB search "
6743
  "results in a Dynamic Radio button Form."
6744
  msgstr ""
6745
 
6746
- #: admin/security-log/security-log.php:554
6747
  msgid ""
6748
  "To search for ALL User Agents|Bots to remove/delete from your database leave "
6749
  "the text box blank and click the Remove|Allow button."
6750
  msgstr ""
6751
 
6752
- #: admin/security-log/security-log.php:567
6753
  msgid "Click OK to Turn Off Error Logging or click Cancel."
6754
  msgstr ""
6755
 
6756
- #: admin/security-log/security-log.php:575
6757
  msgid "Click OK to Turn On Logging or click Cancel."
6758
  msgstr ""
6759
 
6760
- #: admin/security-log/security-log.php:583
6761
  msgid "Clicking OK will delete the contents of your Security Log file."
6762
  msgstr ""
6763
 
6764
- #: admin/security-log/security-log.php:641
6765
- #: admin/security-log/security-log.php:742
6766
  msgid "Remove"
6767
  msgstr ""
6768
 
6769
- #: admin/security-log/security-log.php:662
6770
  #, php-format
6771
  msgid "%s unable to delete row from your DB."
6772
  msgstr ""
6773
 
6774
- #: admin/security-log/security-log.php:664
6775
  #, php-format
6776
  msgid "%s has been deleted from your DB."
6777
  msgstr ""
6778
 
6779
- #: admin/security-log/security-log.php:699
6780
  msgid ""
6781
  "Success! The BPS 403.php Security Logging template file has been updated. "
6782
  "This User Agent|Bot will be logged again in your Security Log."
6783
  msgstr ""
6784
 
6785
- #: admin/security-log/security-log.php:727
6786
  msgid "Error: These code characters are not allowed to be used: "
6787
  msgstr ""
6788
 
6789
- #: admin/security-log/security-log.php:737
6790
  msgid "Search Results For User Agents|Bots To Remove"
6791
  msgstr ""
6792
 
6793
- #: admin/security-log/security-log.php:741
6794
  msgid "User Agents|Bots in DB"
6795
  msgstr ""
6796
 
6797
- #: admin/security-log/security-log.php:743
6798
  msgid "Do Not<br>Remove"
6799
  msgstr ""
6800
 
6801
- #: admin/security-log/security-log.php:744
6802
  msgid "Time Added<br>To DB"
6803
  msgstr ""
6804
 
6805
- #: admin/security-log/security-log.php:762
6806
  msgid ""
6807
  "Your DB Search Results For User Agents|Bots To Remove are displayed below "
6808
  "the Remove|Allow Search tool."
6809
  msgstr ""
6810
 
6811
- #: admin/security-log/security-log.php:766
6812
  msgid ""
6813
  "You do not have any User Agents|Bots in your DB To Remove. An empty/blank "
6814
  "dynamic radio button form is displayed below the Remove|Allow Search tool "
6815
  "since you do not have any User Agents|Bot to remove."
6816
  msgstr ""
6817
 
6818
- #: admin/security-log/security-log.php:772
6819
  msgid ""
6820
  "Clicking OK will Remove the User Agent|Bot DB entries for any Remove Radio "
6821
  "button selections you have made. User Agents|Bots will also be removed from "
6822
  "the 403.php Security Logging template."
6823
  msgstr ""
6824
 
6825
- #: admin/security-log/security-log.php:772
6826
  msgid "To add a User Agent|Bot, use the Add|Ignore tool."
6827
  msgstr ""
6828
 
6829
- #: admin/security-log/security-log.php:801
6830
  msgid ""
6831
  "The Security Log File Was Not Found! Check that the file really exists here "
6832
  "- /"
6833
  msgstr ""
6834
 
6835
- #: admin/security-log/security-log.php:801
6836
  msgid "/bps-backup/logs/http_error_log.txt and is named correctly."
6837
  msgstr ""
6838
 
6839
- #: admin/security-log/security-log.php:819
6840
  msgid ""
6841
  "File Open and Write test successful! Your Security Log file is writable."
6842
  msgstr ""
6843
 
6844
- #: admin/security-log/security-log.php:830
6845
- #: admin/security-log/security-log.php:834
6846
  msgid "Success! Your Security Log file has been updated."
6847
  msgstr ""
6848
 
@@ -7788,33 +7795,43 @@ msgid ""
7788
  msgstr ""
7789
 
7790
  #: admin/theme-skin/theme-skin.php:110 admin/theme-skin/theme-skin.php:196
7791
- msgid "BPS UI|UX Debug:"
 
 
 
 
7792
  msgstr ""
7793
 
7794
  #: admin/theme-skin/theme-skin.php:110
7795
  msgid ""
7796
- "BPS UI|UX Debug is set to Off by default. Turning On the BPS UI|UX Debug "
7797
- "option will display: plugin or theme Scripts that were Dequeued (prevented) "
7798
- "from loading in BPS plugin pages, plugin or theme Scripts that were Nulled "
7799
- "(prevented) from loading in BPS plugin pages by the Script|Style Loader "
7800
- "Filter (SLF) In BPS Plugin Pages option and WP Toolbar nodes|menu items that "
7801
- "were Removed in BPS plugin pages by the WP Toolbar Functionality In BPS "
7802
- "Plugin Pages option. The Debugger will also display any SLF js or css "
7803
- "Scripts that were Not Nulled|Allowed to load in BPS plugin pages."
 
7804
  msgstr ""
7805
 
7806
- #: admin/theme-skin/theme-skin.php:110 admin/theme-skin/theme-skin.php:211
7807
- msgid "BPS Plugin AutoUpdate:"
7808
  msgstr ""
7809
 
7810
  #: admin/theme-skin/theme-skin.php:110
7811
  msgid ""
7812
- "BPS Plugin AutoUpdate is set to Off by default. Choosing the AutoUpdate On "
7813
- "option setting will allow the BPS plugin to automatically update itself when "
7814
- "a new BPS plugin version is available. A must-use file is created in the /mu-"
7815
- "plugins/ folder when you choose the AutoUpdate On option setting. The must-"
7816
- "use file is deleted when you choose the AutoUpdate Off option setting or if "
7817
- "you delete the BPS plugin."
 
 
 
 
 
7818
  msgstr ""
7819
 
7820
  #: admin/theme-skin/theme-skin.php:119
@@ -7862,7 +7879,7 @@ msgid "jQuery ScrollTop Animation Off"
7862
  msgstr ""
7863
 
7864
  #: admin/theme-skin/theme-skin.php:171 admin/theme-skin/theme-skin.php:184
7865
- #: admin/theme-skin/theme-skin.php:197 admin/theme-skin/theme-skin.php:212
7866
  msgid "Click the Read Me help button for information"
7867
  msgstr ""
7868
 
@@ -7890,1784 +7907,2981 @@ msgstr ""
7890
  msgid "Debug On"
7891
  msgstr ""
7892
 
7893
- #: admin/theme-skin/theme-skin.php:214
7894
- msgid "AutoUpdate Off"
7895
  msgstr ""
7896
 
7897
- #: admin/theme-skin/theme-skin.php:215
7898
- msgid "AutoUpdate On"
 
 
7899
  msgstr ""
7900
 
7901
- #: admin/theme-skin/theme-skin.php:240
7902
  msgid ""
7903
- "Error: Unable to copy the /bulletproof-security/admin/htaccess/bps-plugin-"
7904
- "autoupdate.php Master file to: "
7905
  msgstr ""
7906
 
7907
- #: admin/theme-skin/theme-skin.php:240
7908
  msgid ""
7909
- " BPS Plugin AutoUpdate is not turned On. Check that the /mu-plugins/ folder "
7910
- "exists and that the folder permissions allow writing/copying files."
 
 
 
 
 
7911
  msgstr ""
7912
 
7913
- #: admin/theme-skin/theme-skin.php:253
7914
- msgid ""
7915
- "The BPS Plugin AutoUpdate option is set to On. The BPS Plugin will be "
7916
- "automatically updated/upgraded when a new version of BPS is available."
 
7917
  msgstr ""
7918
 
7919
- #: admin/theme-skin/theme-skin.php:271
7920
- msgid ""
7921
- "The BPS Plugin AutoUpdate option is set to Off. The BPS Plugin will not be "
7922
- "automatically updated/upgraded when a new version of BPS is available."
7923
  msgstr ""
7924
 
7925
- #: admin/wizard/wizard-backup.php:151 admin/wizard/wizard-backup.php:185
7926
  msgid ""
7927
- "Custom additional htaccess code was found in your current root htaccess "
7928
- "file. Your root htaccess file has been backed up and zipped in this zip "
7929
- "file: /bulletproof-security/admin/wizard/root-htaccess-file.zip. Click the "
7930
- "Download Root htaccess File button to download your root-htaccess-file.zip "
7931
- "file to your computer."
7932
  msgstr ""
7933
 
7934
- #: admin/wizard/wizard-backup.php:151 admin/wizard/wizard-backup.php:185
7935
- #: includes/hud-dismiss-functions.php:987
7936
- msgid "Click this forum link: "
7937
  msgstr ""
7938
 
7939
- #: admin/wizard/wizard-backup.php:151 admin/wizard/wizard-backup.php:185
7940
- msgid "Setup Wizard Root htaccess File Backup"
 
 
 
 
7941
  msgstr ""
7942
 
7943
- #: admin/wizard/wizard-backup.php:151 admin/wizard/wizard-backup.php:185
7944
- msgid " for help information about what this means and what to do."
7945
  msgstr ""
7946
 
7947
- #: admin/wizard/wizard-backup.php:151 admin/wizard/wizard-backup.php:185
7948
  msgid ""
7949
- " and select the Zip File Download Fix On setting for the Zile File Download "
7950
- "Fix option. You should now be able to download the root-htaccess-file.zip "
7951
- "file."
7952
  msgstr ""
7953
 
7954
- #: admin/wizard/wizard-backup.php:151 admin/wizard/wizard-backup.php:185
7955
- msgid "Download Root htaccess File"
 
 
7956
  msgstr ""
7957
 
7958
- #: admin/wizard/wizard-functions.php:42
7959
  msgid ""
7960
- "htaccess Files Disabled: Existing BPS htaccess files have been deleted and "
7961
- "new BPS htaccess files will not be created. All BPS htaccess features are "
7962
- "disabled."
 
 
 
 
7963
  msgstr ""
7964
 
7965
- #: admin/wizard/wizard-functions.php:106
7966
- msgid "The secure.htaccess Root Master htaccess file was created successfully."
7967
  msgstr ""
7968
 
7969
- #: admin/wizard/wizard-functions.php:106
7970
- msgid "Root Folder BulletProof Mode activated successfully."
 
 
7971
  msgstr ""
7972
 
7973
- #: admin/wizard/wizard-functions.php:108
7974
- msgid ""
7975
- "Error: The secure.htaccess Root Master htaccess file and root .htaccess file "
7976
- "cannot be created. Root Folder BulletProof Mode has NOT been activated."
7977
  msgstr ""
7978
 
7979
- #: admin/wizard/wizard-functions.php:108 admin/wizard/wizard-functions.php:629
7980
- #: admin/wizard/wizard-functions.php:722
7981
  msgid ""
7982
- "If your Server configuration is DSO you must first make some one-time manual "
7983
- "changes to your website before running the Setup Wizard. Please click this "
7984
- "Forum Link for instructions: "
 
7985
  msgstr ""
7986
 
7987
- #: admin/wizard/wizard-functions.php:108 admin/wizard/wizard-functions.php:629
7988
- #: admin/wizard/wizard-functions.php:722 admin/wizard/wizard.php:189
7989
- #: admin/wizard/wizard.php:254 admin/wizard/wizard.php:260
7990
- #: admin/wizard/wizard.php:266 admin/wizard/wizard.php:272
7991
- #: admin/wizard/wizard.php:278
7992
- msgid "DSO Setup Steps"
7993
  msgstr ""
7994
 
7995
- #: admin/wizard/wizard-functions.php:508
7996
- msgid " Root .htaccess File backup Successful!"
 
 
7997
  msgstr ""
7998
 
7999
- #: admin/wizard/wizard-functions.php:518
8000
- msgid "Error: PHP/php.ini handler htaccess code check"
 
 
8001
  msgstr ""
8002
 
8003
- #: admin/wizard/wizard-functions.php:518
8004
  msgid ""
8005
- "PHP/php.ini handler htaccess code was found in your root .htaccess file, but "
8006
- "was NOT found in BPS Custom Code. A new root .htaccess file was NOT created "
8007
- "to prevent a possible problem occurring on your website. Click this Forum "
8008
- "Link "
 
 
8009
  msgstr ""
8010
 
8011
- #: admin/wizard/wizard-functions.php:518
8012
- msgid "Add PHP/php.ini handler htaccess code to BPS Custom Code"
8013
  msgstr ""
8014
 
8015
- #: admin/wizard/wizard-functions.php:518
8016
  msgid ""
8017
- " for instructions on how to copy your PHP/php.ini handler htaccess code to "
8018
- "BPS Custom Code."
8019
  msgstr ""
8020
 
8021
- #: admin/wizard/wizard-functions.php:557 admin/wizard/wizard-functions.php:586
8022
- msgid ""
8023
- "Root .htaccess File writing completed. File Locked with 404 file permissions."
8024
  msgstr ""
8025
 
8026
- #: admin/wizard/wizard-functions.php:561 admin/wizard/wizard-functions.php:590
8027
  msgid ""
8028
- "Root .htaccess File writing completed. File Locked with 444 file permissions."
 
 
 
 
8029
  msgstr ""
8030
 
8031
- #: admin/wizard/wizard-functions.php:608 admin/wizard/wizard-functions.php:617
8032
- #: admin/wizard/wizard-functions.php:816 admin/wizard/wizard.php:523
8033
- #: admin/wizard/wizard.php:542 admin/wizard/wizard.php:597
8034
- #: admin/wizard/wizard.php:633
8035
- msgid " DB Option created or updated Successfully!"
8036
  msgstr ""
8037
 
8038
- #: admin/wizard/wizard-functions.php:627
8039
  msgid ""
8040
- "The wpadmin-secure.htaccess wp-admin Master htaccess file was created "
8041
- "successfully."
8042
  msgstr ""
8043
 
8044
- #: admin/wizard/wizard-functions.php:627
8045
- msgid "wp-admin Folder BulletProof Mode activated successfully."
8046
  msgstr ""
8047
 
8048
- #: admin/wizard/wizard-functions.php:629
8049
  msgid ""
8050
- "Error: The wpadmin-secure.htaccess wp-admin Master htaccess file and wp-"
8051
- "admin .htaccess file cannot be created. wp-admin Folder BulletProof Mode has "
8052
- "NOT been activated."
 
 
 
8053
  msgstr ""
8054
 
8055
- #: admin/wizard/wizard-functions.php:635
8056
- msgid ""
8057
- "Go Daddy Managed WordPress Hosting option is set to Yes or Enable|Disable wp-"
8058
- "admin BulletProof Mode option is set to disabled. GDMW hosting does not "
8059
- "allow wp-admin htaccess files."
8060
  msgstr ""
8061
 
8062
- #: admin/wizard/wizard-functions.php:659
8063
- msgid " wp-admin .htaccess File backup Successful!"
 
 
8064
  msgstr ""
8065
 
8066
- #: admin/wizard/wizard-functions.php:720
8067
- msgid "The default.htaccess Master htaccess file was created successfully."
8068
  msgstr ""
8069
 
8070
- #: admin/wizard/wizard-functions.php:722
8071
- msgid "Error: The default.htaccess Master htaccess file cannot be created."
 
 
 
 
 
8072
  msgstr ""
8073
 
8074
- #: admin/wizard/wizard-functions.php:817 admin/wizard/wizard.php:365
8075
- msgid " Folder created Successfully!"
8076
  msgstr ""
8077
 
8078
- #: admin/wizard/wizard-functions.php:914
8079
  msgid ""
8080
- "Security Log User Agent Filter Check Successful! 0 User Agent Filters to "
8081
- "update."
8082
  msgstr ""
8083
 
8084
- #: admin/wizard/wizard-functions.php:924
8085
- msgid "Security Log User Agent Filter "
8086
- msgstr ""
8087
-
8088
- #: admin/wizard/wizard-functions.php:924
8089
- msgid " created or updated Successfully!"
8090
  msgstr ""
8091
 
8092
- #: admin/wizard/wizard.php:116
8093
  msgid ""
8094
- "Pass! PHP/php.ini handler htaccess code check: Not in use, required or "
8095
- "needed for your website/Server"
 
 
 
8096
  msgstr ""
8097
 
8098
- #: admin/wizard/wizard.php:121
8099
- msgid ""
8100
- "Pass! PHP/php.ini handler htaccess code was found in your root .htaccess "
8101
- "file AND in BPS Pro Custom Code"
8102
  msgstr ""
8103
 
8104
- #: admin/wizard/wizard.php:131
8105
  msgid ""
8106
- "Wordfence PHP/php.ini handler htaccess code was found in your root .htaccess "
8107
- "file, but was NOT found in BPS Custom Code. "
8108
  msgstr ""
8109
 
8110
- #: admin/wizard/wizard.php:131 includes/hud-dismiss-functions.php:349
8111
- msgid ""
8112
- " for the steps to fix this Wordfence problem before running the Setup Wizard."
8113
  msgstr ""
8114
 
8115
- #: admin/wizard/wizard.php:144
8116
  msgid ""
8117
- "Pass! PHP/php.ini handler root htaccess code added/created in BPS Pro Custom "
8118
- "Code"
 
 
8119
  msgstr ""
8120
 
8121
- #: admin/wizard/wizard.php:165 admin/wizard/wizard.php:308
8122
- msgid " DB Table created Successfully!"
8123
  msgstr ""
8124
 
8125
- #: admin/wizard/wizard.php:168 admin/wizard/wizard.php:311
8126
- msgid "Error: Unable to create DB Table "
 
 
8127
  msgstr ""
8128
 
8129
- #: admin/wizard/wizard.php:172
8130
- msgid "Setup Wizard Pre-Installation Checks:"
 
 
8131
  msgstr ""
8132
 
8133
- #: admin/wizard/wizard.php:173
8134
  msgid ""
8135
- "If you see any Red font or Blue font messages displayed below, click the "
8136
- "Read Me help button above and read the \"Notes\" help section before "
8137
- "clicking the Setup Wizard button."
 
 
 
8138
  msgstr ""
8139
 
8140
- #: admin/wizard/wizard.php:180
8141
- msgid ""
8142
- "Pass! Compatible Server Configuration: Server API: CGI | WP Filesystem API "
8143
- "Method: direct."
8144
  msgstr ""
8145
 
8146
- #: admin/wizard/wizard.php:183
8147
  msgid ""
8148
- "Pass! Compatible Server Configuration: Server Type Apache: XAMPP, WAMP, MAMP "
8149
- "or LAMP | WP Filesystem API Method: direct."
8150
  msgstr ""
8151
 
8152
- #: admin/wizard/wizard.php:186
8153
- msgid ""
8154
- "Pass! Compatible Server Configuration: Server API: DSO | WP Filesystem API "
8155
- "Method: direct."
8156
  msgstr ""
8157
 
8158
- #: admin/wizard/wizard.php:189
8159
  msgid ""
8160
- "Server API: Apache DSO Server Configuration | WP Filesystem API Method: "
 
 
 
 
8161
  msgstr ""
8162
 
8163
- #: admin/wizard/wizard.php:189
8164
- msgid ""
8165
- "Your Server type is DSO and the WP Filesystem API Method is NOT \"direct\". "
8166
- "You can use the Setup Wizard, but you must first make some one-time manual "
8167
- "changes to your website before running the Setup Wizard. Please click this "
8168
- "Forum Link for instructions: "
8169
  msgstr ""
8170
 
8171
- #: admin/wizard/wizard.php:202 admin/wizard/wizard.php:205
8172
- msgid "Pass! PHP Configuration Memory Limit is set to: "
8173
  msgstr ""
8174
 
8175
- #: admin/wizard/wizard.php:205
 
 
 
 
8176
  msgid ""
8177
- "It is recommended that you increase your memory limit to at least 128M. "
8178
- "Contact your Web Host and ask them to increase your memory limit to the "
8179
- "maximum memory limit setting allowed by your Host."
8180
  msgstr ""
8181
 
8182
- #: admin/wizard/wizard.php:208
8183
- msgid "Error: Your PHP Configuration Memory Limit is set to: "
8184
  msgstr ""
8185
 
8186
- #: admin/wizard/wizard.php:208
8187
- msgid ""
8188
- "WordPress needs a bare minimum Memory Limit setting of 64M to perform well. "
8189
- "Contact your Web Host and ask them to increase your memory limit to the "
8190
- "maximum memory limit setting allowed by your Host."
8191
  msgstr ""
8192
 
8193
- #: admin/wizard/wizard.php:219 includes/functions.php:1021
8194
- msgid ""
8195
- "mod_authz_core is Loaded|Order, Allow, Deny directives are supported|BC: Yes|"
8196
- "IfModule: Yes"
8197
  msgstr ""
8198
 
8199
- #: admin/wizard/wizard.php:226
8200
- msgid ""
8201
- "Enable|Disable htaccess Files Option set to Enabled: mod_access_compat "
8202
- "htaccess files will be created."
8203
  msgstr ""
8204
 
8205
- #: admin/wizard/wizard.php:228 includes/functions.php:1006
 
 
 
 
8206
  msgid ""
8207
- "mod_access_compat is Loaded|Order, Allow, Deny directives are supported|"
8208
- "IfModule: No"
8209
  msgstr ""
8210
 
8211
- #: admin/wizard/wizard.php:232
8212
  msgid ""
8213
- "Enable|Disable htaccess Files Option set to Disabled: All BPS htaccess "
8214
- "features will be disabled."
8215
  msgstr ""
8216
 
8217
- #: admin/wizard/wizard.php:252 admin/wizard/wizard.php:258
8218
- #: admin/wizard/wizard.php:264 admin/wizard/wizard.php:270
8219
- #: admin/wizard/wizard.php:276
8220
- msgid "Pass! The "
8221
  msgstr ""
8222
 
8223
- #: admin/wizard/wizard.php:252 admin/wizard/wizard.php:258
8224
- msgid " Folder is writable."
8225
  msgstr ""
8226
 
8227
- #: admin/wizard/wizard.php:254 admin/wizard/wizard.php:260
8228
  msgid ""
8229
- " Folder is NOT writable. If your Server type is DSO and the WP Filesystem "
8230
- "API Method is NOT \"direct\" you can use the Setup Wizard, but you must "
8231
- "first make some one-time manual changes to your website before running the "
8232
- "Setup Wizard. Please click this Forum Link for instructions: "
8233
  msgstr ""
8234
 
8235
- #: admin/wizard/wizard.php:254 admin/wizard/wizard.php:260
8236
- msgid ""
8237
- " If your Server type is CGI check the folder permissions. Folder permissions "
8238
- "should be either 755 or 705."
8239
  msgstr ""
8240
 
8241
- #: admin/wizard/wizard.php:264 admin/wizard/wizard.php:270
8242
- #: admin/wizard/wizard.php:276
8243
- msgid " File is writable."
8244
  msgstr ""
8245
 
8246
- #: admin/wizard/wizard.php:266 admin/wizard/wizard.php:272
8247
- #: admin/wizard/wizard.php:278
8248
- msgid ""
8249
- " File is NOT writable. If your Server type is DSO and the WP Filesystem API "
8250
- "Method is NOT \"direct\" you can use the Setup Wizard, but you must first "
8251
- "make some one-time manual changes to your website before running the Setup "
8252
- "Wizard. Please click this Forum Link for instructions: "
8253
  msgstr ""
8254
 
8255
- #: admin/wizard/wizard.php:266 admin/wizard/wizard.php:272
8256
- #: admin/wizard/wizard.php:278
8257
  msgid ""
8258
- " If your Server type is CGI check the file permissions. File permissions "
8259
- "should be either 644 or 604."
8260
  msgstr ""
8261
 
8262
- #: admin/wizard/wizard.php:331
8263
- msgid "BPS Setup Verification & Error Checks"
8264
  msgstr ""
8265
 
8266
- #: admin/wizard/wizard.php:333
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8267
  msgid ""
8268
- "If you see all Green font messages displayed below, the Setup Wizard setup "
8269
- "completed successfully."
8270
  msgstr ""
8271
 
8272
- #: admin/wizard/wizard.php:333
8273
  msgid ""
8274
- "If you see any Red font or Blue font messages displayed below, click the "
8275
- "Read Me help button above and read the \"Notes\" help section."
 
 
 
 
 
 
 
8276
  msgstr ""
8277
 
8278
- #: admin/wizard/wizard.php:333
8279
  msgid ""
8280
- "Click the Read Me help button above for a list of recommended BPS Video "
8281
- "Tutorials to watch."
8282
  msgstr ""
8283
 
8284
- #: admin/wizard/wizard.php:339
8285
- msgid "BulletProof Security Database Tables Setup"
8286
  msgstr ""
8287
 
8288
- #: admin/wizard/wizard.php:362
8289
- msgid "BulletProof Security Core Folders Setup"
8290
  msgstr ""
8291
 
8292
- #: admin/wizard/wizard.php:366
8293
- msgid "Error: Unable to create Folder "
8294
  msgstr ""
8295
 
8296
- #: admin/wizard/wizard.php:388
8297
- msgid "BulletProof Security Core Files Setup"
8298
  msgstr ""
8299
 
8300
- #: admin/wizard/wizard.php:391
8301
- msgid " File created or updated Successfully!"
8302
  msgstr ""
8303
 
8304
- #: admin/wizard/wizard.php:392
8305
- msgid "Error: Unable to create or update File "
8306
  msgstr ""
8307
 
8308
- #: admin/wizard/wizard.php:518
8309
- msgid "BulletProof Security DB Backup Setup"
8310
  msgstr ""
8311
 
8312
- #: admin/wizard/wizard.php:539
8313
- msgid "BulletProof Security Hidden Plugin Folders|Files (HPF) Setup"
8314
  msgstr ""
8315
 
8316
- #: admin/wizard/wizard.php:572
8317
- msgid ""
8318
- "Hidden Plugin Folders|Files (HPF) DB Options created or updated Successfully!"
8319
  msgstr ""
8320
 
8321
- #: admin/wizard/wizard.php:575
8322
- msgid "BulletProof Security Security Log User Agent Filter Setup"
8323
  msgstr ""
8324
 
8325
- #: admin/wizard/wizard.php:593
8326
- msgid "BulletProof Security Email Alerting & Log File Options Setup"
8327
  msgstr ""
8328
 
8329
- #: admin/wizard/wizard.php:630
8330
- msgid "BulletProof Security Login Security & Monitoring Options Setup"
8331
  msgstr ""
8332
 
8333
- #: admin/wizard/wizard.php:697
8334
- msgid "The Setup Wizard has completed BPS Setup."
8335
  msgstr ""
8336
 
8337
- #: admin/wizard/wizard.php:697
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8338
  msgid ""
8339
- "Check the \"BPS Setup Verification & Error Checks\" section below for any "
8340
- "errors in Red Font."
8341
  msgstr ""
8342
 
8343
- #: admin/wizard/wizard.php:703
8344
- msgid "Setup Wizard Completion Time: "
8345
  msgstr ""
8346
 
8347
- #: admin/wizard/wizard.php:720
8348
- msgid "BulletProof Security ~ Setup Wizard"
8349
  msgstr ""
8350
 
8351
- #: admin/wizard/wizard.php:779
8352
- msgid "Setup Wizard ~ "
 
 
8353
  msgstr ""
8354
 
8355
- #: admin/wizard/wizard.php:779
8356
- msgid "One-Click Complete Setup"
8357
  msgstr ""
8358
 
8359
- #: admin/wizard/wizard.php:787
8360
- msgid "htaccess Files Disabled Notice: "
8361
  msgstr ""
8362
 
8363
- #: admin/wizard/wizard.php:787
8364
  msgid ""
8365
- "BPS has detected that htaccess files cannot be used on your website/server. "
8366
- "Click this "
8367
  msgstr ""
8368
 
8369
- #: admin/wizard/wizard.php:787
8370
- msgid "htaccess Files Disabled Forum Topic"
8371
  msgstr ""
8372
 
8373
- #: admin/wizard/wizard.php:787
8374
- msgid " link for more information before running the Wizards."
8375
  msgstr ""
8376
 
8377
- #: admin/wizard/wizard.php:814
8378
- msgid "Recommended Video Tutorials: "
8379
  msgstr ""
8380
 
8381
- #: admin/wizard/wizard.php:819
8382
- msgid "Security Log Video Tutorial"
 
 
8383
  msgstr ""
8384
 
8385
- #: admin/wizard/wizard.php:822
8386
- msgid "Setup Wizard Steps: "
 
 
8387
  msgstr ""
8388
 
8389
- #: admin/wizard/wizard.php:822
8390
- msgid "1. Click the Setup Wizard button."
 
8391
  msgstr ""
8392
 
8393
- #: admin/wizard/wizard.php:826
8394
  msgid ""
8395
- "Setup Wizard Pre-Installation Checks are automatically performed and "
8396
- "displayed on the Setup Wizard page. Green font messages mean everything is "
8397
- "good. Red and blue font messages are displayed with an exact description of "
8398
- "the issue and how to correct the issue. Red font error messages need to be "
8399
- "fixed before running the Setup Wizard. Blue font messages can either be a "
8400
- "recommendation or a notice about something. Blue font messages do not need "
8401
- "to be fixed before running the Setup Wizard."
8402
  msgstr ""
8403
 
8404
- #: admin/wizard/wizard.php:826
8405
  msgid ""
8406
- "You can re-run the Setup Wizard again at any time. Your existing settings "
8407
- "will NOT be overwritten and will be re-saved. Any new or additional settings "
8408
- "that the Setup Wizard finds on your website will be saved/setup."
 
 
8409
  msgstr ""
8410
 
8411
- #: admin/wizard/wizard.php:826
8412
  msgid ""
8413
- "When the Setup Wizard has completed you will see \"The Setup Wizard has "
8414
- "completed BPS Setup.\""
8415
  msgstr ""
8416
 
8417
- #: admin/wizard/wizard.php:826
8418
  msgid ""
8419
- "Your existing Root and wp-admin htaccess files are backed up before new Root "
8420
- "and wp-admin htaccess files are created by the Setup Wizard. The BPS backup "
8421
- "folder is here: "
8422
  msgstr ""
8423
 
8424
- #: admin/wizard/wizard.php:829
8425
  msgid ""
8426
- " and the backed up htaccess file names are: root.htaccess and wpadmin."
8427
- "htaccess."
8428
  msgstr ""
8429
 
8430
- #: admin/wizard/wizard.php:839
8431
- msgid "Setup Wizard & Overview Video Tutorial"
8432
  msgstr ""
8433
 
8434
- #: admin/wizard/wizard.php:864
8435
- msgid "Setup Wizard Options ~ "
 
8436
  msgstr ""
8437
 
8438
- #: admin/wizard/wizard.php:864
8439
  msgid ""
8440
- "Click the Setup Wizard Options Read Me help button for help info about each "
8441
- "option setting"
8442
  msgstr ""
8443
 
8444
- #: admin/wizard/wizard.php:883
8445
- msgid "Forum Help Links:"
8446
  msgstr ""
8447
 
8448
- #: admin/wizard/wizard.php:887
8449
- msgid "Go Daddy Managed WordPress Hosting (GDMW)"
8450
  msgstr ""
8451
 
8452
- #: admin/wizard/wizard.php:888 admin/wizard/wizard.php:891
8453
- msgid "Enable|Disable htaccess Files"
 
 
8454
  msgstr ""
8455
 
8456
- #: admin/wizard/wizard.php:891 admin/wizard/wizard.php:904
8457
- msgid "Go Daddy Managed WordPress Hosting (GDMW):"
8458
  msgstr ""
8459
 
8460
- #: admin/wizard/wizard.php:891
8461
  msgid ""
8462
- "This option is ONLY for a special type of Go Daddy Hosting account called "
8463
- "\"Managed WordPress Hosting\" and is NOT for regular/standard Go Daddy "
8464
- "Hosting account types. Leave the default setting set to No, unless you have "
8465
- "a Go Daddy Managed WordPress Hosting account. See the Forum Help Links "
8466
- "section above for more information."
8467
  msgstr ""
8468
 
8469
- #: admin/wizard/wizard.php:891 admin/wizard/wizard.php:916
8470
- msgid "Enable|Disable htaccess Files:"
 
8471
  msgstr ""
8472
 
8473
- #: admin/wizard/wizard.php:891
8474
- msgid "Before changing this option setting, click the "
 
 
8475
  msgstr ""
8476
 
8477
- #: admin/wizard/wizard.php:891
8478
  msgid ""
8479
- " Forum Help Link at the top of this Read Me help window to find out exactly "
8480
- "what this option setting does and when it should or should not be used. "
8481
- "htaccess Files Disabled: Will disable all BPS htaccess features and files. "
8482
- "htaccess Files Enabled: Will enable all BPS htaccess freatures and files."
8483
  msgstr ""
8484
 
8485
- #: admin/wizard/wizard.php:891
8486
- msgid "Enable|Disable wp-admin BulletProof Mode"
 
 
 
 
 
 
 
 
8487
  msgstr ""
8488
 
8489
- #: admin/wizard/wizard.php:891
8490
  msgid ""
8491
- "The default setting is already set to: wp-admin BulletProof Mode Enabled. If "
8492
- "you would like to disable wp-admin BulletProof Mode select wp-admin "
8493
- "BulletProof Mode Disabled."
8494
  msgstr ""
8495
 
8496
- #: admin/wizard/wizard.php:891 admin/wizard/wizard.php:940
8497
- msgid "Zip File Download Fix (Incapsula, Proxy, Other Cause):"
8498
  msgstr ""
8499
 
8500
- #: admin/wizard/wizard.php:891
8501
  msgid ""
8502
- "This option should only be set to On if you are seeing a 403 error and/or "
8503
- "unable to download these Zip files: Custom Code Export Zip file, Login "
8504
- "Security Table Export Zip file or the Setup Wizard Root htaccess file backup "
8505
- "Zip file. The Setup Wizard Root htaccess file backup Zip file link is only "
8506
- "displayed if BPS detects that your current Root htaccess file is not a BPS "
8507
- "Root htaccess file. If you are still unable to download zip files after "
8508
- "setting this option to On then you will need to whitelist your Proxy IP "
8509
- "address in the Plugin Firewall Whitelist by Hostname (domain name) and IP "
8510
- "Address tool under the Plugin Firewall Additional Whitelist Tools accordion "
8511
- "tab. If that does not work then you will need to deactivate the Plugin "
8512
- "Firewall temporarily, download the zip file and then activate the Plugin "
8513
- "Firewall again."
8514
  msgstr ""
8515
 
8516
- #: admin/wizard/wizard.php:891 admin/wizard/wizard.php:951
8517
- msgid "Network|Multisite Sitewide Login Security Settings"
 
 
 
 
 
 
 
 
8518
  msgstr ""
8519
 
8520
- #: admin/wizard/wizard.php:891
8521
  msgid ""
8522
- "This option is for Network|Multisite sites ONLY. This is an independent "
8523
- "option Form that creates and saves Login Security DB option settings for all "
8524
- "Network sites when you click the Save Network LSM Options Sitewide button. "
8525
- "If Login Security option settings have already been setup and saved for any "
8526
- "Network site then those Login Security option settings will NOT be changed. "
8527
- "If Login Security options settings have NOT already been setup and saved for "
8528
- "any Network site then those Login Security option settings will be created "
8529
- "and saved with these default settings: Max Login Attempts: 3, Automatic "
8530
- "Lockout Time: 60, Manual Lockout Time: 60, Max DB Rows To Show: blank show "
8531
- "all rows, Turn On|Turn Off: Turn On Login Security, Logging Options: Log "
8532
- "Only Account Lockouts, Error Messages: Standard WP Login Errors, Attempts "
8533
- "Remaining: Show Login Attempts Remaining, Password Reset: Enable Password "
8534
- "Reset, Sort DB Rows: Ascending - Show Oldest Login First."
8535
  msgstr ""
8536
 
8537
- #: admin/wizard/wizard.php:906
8538
- msgid "No (default setting)"
8539
  msgstr ""
8540
 
8541
- #: admin/wizard/wizard.php:907
8542
- msgid "Yes (ONLY if you have Managed WordPress Hosting)"
 
 
 
 
 
 
 
 
 
 
 
8543
  msgstr ""
8544
 
8545
- #: admin/wizard/wizard.php:917
8546
  msgid ""
8547
- "CAUTION: Click the Read Me help button before changing this option setting"
 
8548
  msgstr ""
8549
 
8550
- #: admin/wizard/wizard.php:919
8551
- msgid "htaccess Files Enabled"
 
 
 
 
8552
  msgstr ""
8553
 
8554
- #: admin/wizard/wizard.php:920
8555
- msgid "htaccess Files Disabled"
 
 
 
 
8556
  msgstr ""
8557
 
8558
- #: admin/wizard/wizard.php:928
8559
- msgid "Enable|Disable wp-admin BulletProof Mode:"
8560
  msgstr ""
8561
 
8562
- #: admin/wizard/wizard.php:930
8563
- msgid "wp-admin BulletProof Mode Enabled"
8564
  msgstr ""
8565
 
8566
- #: admin/wizard/wizard.php:931
8567
- msgid "wp-admin BulletProof Mode Disabled"
 
 
 
 
8568
  msgstr ""
8569
 
8570
- #: admin/wizard/wizard.php:942
8571
- msgid "Zip File Download Fix Off"
8572
  msgstr ""
8573
 
8574
- #: admin/wizard/wizard.php:943
8575
- msgid "Zip File Download Fix On"
 
 
8576
  msgstr ""
8577
 
8578
- #: admin/wizard/wizard.php:982
8579
  msgid ""
8580
- "The Zip File Download Fix option is set to On. This option should only be "
8581
- "set to On if you are unable to download these Zip files: Custom Code Export "
8582
- "Zip file, Login Security Table Export Zip file or the Setup Wizard Root "
8583
- "htaccess file backup Zip file."
8584
  msgstr ""
8585
 
8586
- #: admin/wizard/wizard.php:995
8587
- msgid "The Zip File Download Fix option is set to Off."
 
8588
  msgstr ""
8589
 
8590
- #: admin/wizard/wizard.php:1009
 
 
 
 
 
 
 
8591
  msgid ""
8592
- "Error: Your Network site exceeds the default WP criteria for a large network "
8593
- "site. Either you have more than 10,000 users or more than 10,000 sites. "
8594
- "Please post a new forum thread in the BPS plugin support forum on wordpress."
8595
- "org for assistance."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8596
  msgstr ""
8597
 
8598
- #: admin/wizard/wizard.php:1016
8599
- msgid " LSM DB Options created or updated Successfully!"
 
 
 
 
 
8600
  msgstr ""
8601
 
8602
- #: bulletproof-security.php:95
8603
- msgid "Uninstall Options"
8604
  msgstr ""
8605
 
8606
- #: bulletproof-security.php:116
8607
- msgid "Forum - Support"
8608
  msgstr ""
8609
 
8610
- #: bulletproof-security.php:117
8611
- msgid "Upgrade"
 
 
 
8612
  msgstr ""
8613
 
8614
- #: includes/db-security.php:18
8615
- msgid "Hourly"
 
8616
  msgstr ""
8617
 
8618
- #: includes/functions.php:208
8619
- msgid "Reload BPS Status Display"
 
 
8620
  msgstr ""
8621
 
8622
- #: includes/functions.php:252
8623
- msgid "The BPS Status Display is set to Off by default on the System Info page"
8624
  msgstr ""
8625
 
8626
- #: includes/functions.php:310
8627
- msgid "BPS "
 
 
 
 
 
8628
  msgstr ""
8629
 
8630
- #: includes/functions.php:316 includes/functions.php:341
8631
- msgid "BPS Setup Wizard Notification"
8632
  msgstr ""
8633
 
8634
- #: includes/functions.php:316 includes/functions.php:341
 
 
 
 
 
 
 
 
 
8635
  msgid ""
8636
- " to go to the BPS Setup Wizard page and click the Setup Wizard button to "
8637
- "setup the BPS plugin."
 
8638
  msgstr ""
8639
 
8640
- #: includes/functions.php:321
8641
- msgid "BPS Alert! An htaccess file was NOT found in your WordPress root folder"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8642
  msgstr ""
8643
 
8644
- #: includes/functions.php:321
8645
  msgid ""
8646
- "If you have deleted the root htaccess file for troubleshooting purposes you "
8647
- "can disregard this Alert."
8648
- msgstr ""
8649
-
8650
- #: includes/functions.php:321 includes/functions.php:517
8651
- #: includes/functions.php:570 includes/hud-dismiss-functions.php:869
8652
- msgid "Go to the "
8653
  msgstr ""
8654
 
8655
- #: includes/functions.php:321 includes/functions.php:517
8656
- msgid " and click the Root Folder BulletProof Mode Activate button."
 
 
 
 
 
8657
  msgstr ""
8658
 
8659
- #: includes/functions.php:346
8660
- msgid "BPS Alert! Your site may not be protected by BulletProof Security"
 
 
 
8661
  msgstr ""
8662
 
8663
- #: includes/functions.php:346
8664
  msgid ""
8665
- "The BPS version: BULLETPROOF x.x SECURE .HTACCESS line of code was not found "
8666
- "at the top of your Root htaccess file."
 
8667
  msgstr ""
8668
 
8669
- #: includes/functions.php:346
8670
- msgid ""
8671
- "The BPS version line of code MUST be at the very top of your Root htaccess "
8672
- "file."
8673
  msgstr ""
8674
 
8675
- #: includes/functions.php:346 includes/functions.php:592
8676
  msgid ""
8677
- " to go to the BPS Setup Wizard page and click the Setup Wizard button to "
8678
- "setup the BPS plugin again."
8679
  msgstr ""
8680
 
8681
- #: includes/functions.php:346
8682
  msgid ""
8683
- "Important Note: If you manually added other htaccess code above the BPS "
8684
- "version line of code in your root htaccess file, you can copy that code to "
8685
- "BPS Root Custom Code so that your code is saved in the correct place in the "
8686
- "BPS root htaccess file. "
8687
  msgstr ""
8688
 
8689
- #: includes/functions.php:346
8690
- msgid ""
8691
- " to go to the BPS Custom Code page, add your Root custom htaccess code in an "
8692
- "appropriate Root Custom Code text box and click the Save Root Custom Code "
8693
- "button before running the Setup Wizard again."
8694
  msgstr ""
8695
 
8696
- #: includes/functions.php:493
8697
- msgid "The BPS Automatic htaccess File Update Completed Successfully!"
8698
  msgstr ""
8699
 
8700
- #: includes/functions.php:506
8701
- msgid "RBM"
 
8702
  msgstr ""
8703
 
8704
- #: includes/functions.php:517
8705
  msgid ""
8706
- "BPS Alert! Your site does not appear to be protected by BulletProof Security"
 
 
8707
  msgstr ""
8708
 
8709
- #: includes/functions.php:570
 
 
 
 
8710
  msgid ""
8711
- "BPS Alert! An htaccess file was NOT found in your WordPress wp-admin folder"
 
8712
  msgstr ""
8713
 
8714
- #: includes/functions.php:570
8715
  msgid ""
8716
- "If you have deleted the wp-admin htaccess file for troubleshooting purposes "
8717
- "you can disregard this Alert."
8718
  msgstr ""
8719
 
8720
- #: includes/functions.php:570
8721
- msgid " and click the wp-admin Folder BulletProof Mode Activate button."
8722
  msgstr ""
8723
 
8724
- #: includes/functions.php:592
8725
- msgid ""
8726
- "BPS Alert! Your wp-admin folder may not be protected by BulletProof Security"
8727
  msgstr ""
8728
 
8729
- #: includes/functions.php:592
8730
- msgid ""
8731
- "The BPS version: BULLETPROOF .xx.x WP-ADMIN SECURE .HTACCESS line of code "
8732
- "was not found at the top of your wp-admin htaccess file."
8733
  msgstr ""
8734
 
8735
- #: includes/functions.php:592
8736
- msgid ""
8737
- "The BPS version line of code MUST be at the very top of your wp-admin "
8738
- "htaccess file."
8739
  msgstr ""
8740
 
8741
- #: includes/functions.php:592
8742
  msgid ""
8743
- "Important Note: If you manually added other htaccess code above the BPS "
8744
- "version line of code in your wp-admin htaccess file, you can copy that code "
8745
- "to BPS wp-admin Custom Code so that your code is saved in the correct place "
8746
- "in the BPS wp-admin htaccess file. "
8747
  msgstr ""
8748
 
8749
- #: includes/functions.php:592
8750
  msgid ""
8751
- " to go to the BPS Custom Code page, add your wp-admin custom htaccess code "
8752
- "in an appropriate wp-admin Custom Code text box and click the Save wp-admin "
8753
- "Custom Code button before running the Setup Wizard again."
8754
  msgstr ""
8755
 
8756
- #: includes/functions.php:656
8757
- msgid "WBM"
 
 
8758
  msgstr ""
8759
 
8760
- #: includes/functions.php:667
8761
  msgid ""
8762
- "BPS Alert! A valid BPS htaccess file was NOT found in your wp-admin folder"
 
8763
  msgstr ""
8764
 
8765
- #: includes/functions.php:667
8766
  msgid ""
8767
- "BulletProof Mode for the wp-admin folder should also be activated when you "
8768
- "have BulletProof Mode activated for the Root folder."
8769
  msgstr ""
8770
 
8771
- #: includes/functions.php:708
8772
- msgid "LSM"
8773
  msgstr ""
8774
 
8775
- #: includes/functions.php:757
8776
- msgid "No DB Backups"
 
 
8777
  msgstr ""
8778
 
8779
- #: includes/functions.php:762
8780
- msgid "Backup Job Created"
8781
  msgstr ""
8782
 
8783
- #: includes/functions.php:815 includes/functions.php:821
8784
- msgid "ISL"
 
 
 
8785
  msgstr ""
8786
 
8787
- #: includes/functions.php:861 includes/functions.php:867
8788
- msgid "ACE"
8789
  msgstr ""
8790
 
8791
- #: includes/functions.php:925
8792
  msgid ""
8793
- "Apache Modules|Directives|Backward Compatibility(Yes|No)|IfModule(Yes|No): "
 
8794
  msgstr ""
8795
 
8796
- #: includes/functions.php:971
8797
  msgid ""
8798
- "ERROR: wp_remote_get() function is blocked or unable to get the URL path"
 
8799
  msgstr ""
8800
 
8801
- #: includes/functions.php:989
8802
- msgid "mod_access_compat and mod_authz_core or mod_rewrite is NOT Loaded"
8803
  msgstr ""
8804
 
8805
- #: includes/functions.php:999
8806
- msgid ""
8807
- "mod_access_compat is Loaded|Order, Allow, Deny directives are supported|"
8808
- "IfModule: Yes"
8809
  msgstr ""
8810
 
8811
- #: includes/functions.php:1013
8812
- msgid "mod_access_compat is Loaded"
8813
  msgstr ""
8814
 
8815
- #: includes/functions.php:1026
8816
- msgid ""
8817
- "mod_authz_core is Loaded|Order, Allow, Deny directives are NOT supported|BC: "
8818
- "No|IfModule: Yes"
8819
  msgstr ""
8820
 
8821
- #: includes/functions.php:1031
8822
- msgid "mod_authz_core is Loaded|IfModule: No"
 
 
 
8823
  msgstr ""
8824
 
8825
- #: includes/functions.php:1036
8826
- msgid "mod_authz_core is NOT Loaded|IfModule: Yes"
 
8827
  msgstr ""
8828
 
8829
- #: includes/functions.php:1042
8830
- msgid "mod_authz_core is NOT Loaded"
 
 
8831
  msgstr ""
8832
 
8833
- #: includes/functions.php:1049
8834
  msgid ""
8835
- "mod_authz_host is Loaded|Order, Allow, Deny directives are supported|BC: Yes|"
8836
- "IfModule: Yes"
8837
  msgstr ""
8838
 
8839
- #: includes/functions.php:1054
8840
- msgid ""
8841
- "mod_authz_host is Loaded|Order, Allow, Deny directives are NOT supported|BC: "
8842
- "No|IfModule: Yes"
8843
  msgstr ""
8844
 
8845
- #: includes/functions.php:1059
8846
- msgid "mod_authz_host is Loaded|IfModule: No"
8847
  msgstr ""
8848
 
8849
- #: includes/functions.php:1064
8850
- msgid "mod_authz_host is NOT Loaded|IfModule: Yes"
 
 
 
8851
  msgstr ""
8852
 
8853
- #: includes/functions.php:1069
8854
- msgid "mod_authz_host is NOT Loaded"
8855
  msgstr ""
8856
 
8857
- #: includes/functions.php:1076
8858
- msgid "mod_rewrite Module is Loaded"
8859
  msgstr ""
8860
 
8861
- #: includes/functions.php:1081
8862
- msgid "mod_rewrite Inconclusive: Status is not 200, 301, 302, 403 or 404"
8863
  msgstr ""
8864
 
8865
- #: includes/general-functions.php:25 includes/general-functions.php:45
8866
- msgid "Peak Memory Usage: "
8867
  msgstr ""
8868
 
8869
- #: includes/general-functions.php:25 includes/general-functions.php:45
8870
- msgid "MB|"
8871
  msgstr ""
8872
 
8873
- #: includes/general-functions.php:25 includes/general-functions.php:45
8874
- msgid "KB"
8875
  msgstr ""
8876
 
8877
- #: includes/general-functions.php:25 includes/general-functions.php:45
8878
- msgid "Initial Memory in Use: "
8879
  msgstr ""
8880
 
8881
- #: includes/general-functions.php:25 includes/general-functions.php:45
8882
- msgid "Total Memory Used: "
8883
  msgstr ""
8884
 
8885
- #: includes/general-functions.php:59
8886
- msgid ""
8887
- "The secure.htaccess file either does not exist or is not named correctly. "
8888
- "Check the /"
8889
  msgstr ""
8890
 
8891
- #: includes/general-functions.php:59
8892
- msgid ""
8893
- "/bulletproof-security/admin/htaccess/ folder to make sure the secure."
8894
- "htaccess file exists and is named secure.htaccess."
8895
  msgstr ""
8896
 
8897
- #: includes/general-functions.php:71
8898
- msgid ""
8899
- "The default.htaccess file either does not exist or is not named correctly. "
8900
- "Check the /"
8901
  msgstr ""
8902
 
8903
- #: includes/general-functions.php:71
8904
- msgid ""
8905
- "/bulletproof-security/admin/htaccess/ folder to make sure the default."
8906
- "htaccess file exists and is named default.htaccess."
8907
  msgstr ""
8908
 
8909
- #: includes/general-functions.php:83
8910
- msgid ""
8911
- "The wpadmin-secure.htaccess file either does not exist or is not named "
8912
- "correctly. Check the /"
8913
  msgstr ""
8914
 
8915
- #: includes/general-functions.php:83
8916
- msgid ""
8917
- "/bulletproof-security/admin/htaccess/ folder to make sure the wpadmin-secure."
8918
- "htaccess file exists and is named wpadmin-secure.htaccess."
8919
  msgstr ""
8920
 
8921
- #: includes/general-functions.php:95
8922
- msgid "An htaccess file was not found in your website root folder."
8923
  msgstr ""
8924
 
8925
- #: includes/general-functions.php:107
8926
- msgid "An htaccess file was not found in your wp-admin folder."
8927
  msgstr ""
8928
 
8929
- #: includes/general-functions.php:116
8930
- msgid ""
8931
- "Cannot write to the secure.htaccess file. Cause: file Permission or file "
8932
- "Ownership problem."
8933
  msgstr ""
8934
 
8935
- #: includes/general-functions.php:126
8936
- msgid ""
8937
- "Cannot write to the default.htaccess file. Cause: file Permission or file "
8938
- "Ownership problem."
8939
  msgstr ""
8940
 
8941
- #: includes/general-functions.php:136
8942
- msgid ""
8943
- "Cannot write to the wpadmin-secure.htaccess file. Cause: file Permission or "
8944
- "file Ownership problem."
8945
  msgstr ""
8946
 
8947
- #: includes/general-functions.php:146
8948
- msgid ""
8949
- "Cannot write to the Root htaccess file. Cause: file Permission or file "
8950
- "Ownership problem."
8951
  msgstr ""
8952
 
8953
- #: includes/general-functions.php:156
8954
  msgid ""
8955
- "Cannot write to the wp-admin htaccess file. Cause: file Permission or file "
8956
- "Ownership problem."
8957
  msgstr ""
8958
 
8959
- #: includes/general-functions.php:215
8960
- msgid "Subfolder Installation"
8961
  msgstr ""
8962
 
8963
- #: includes/general-functions.php:217
8964
- msgid "Root Folder Installation"
8965
  msgstr ""
8966
 
8967
- #: includes/general-functions.php:227
8968
- msgid "Standard WP Site Type"
8969
  msgstr ""
8970
 
8971
- #: includes/general-functions.php:229
8972
- msgid "GWIOD WP Site Type"
8973
  msgstr ""
8974
 
8975
- #: includes/general-functions.php:230
8976
- msgid "WordPress Address (URL): "
8977
  msgstr ""
8978
 
8979
- #: includes/general-functions.php:231
8980
- msgid "Site Address (URL): "
8981
  msgstr ""
8982
 
8983
- #: includes/general-functions.php:239
8984
- msgid "BuddyPress is installed|enabled"
8985
  msgstr ""
8986
 
8987
- #: includes/general-functions.php:241
8988
- msgid "BuddyPress is not installed|enabled"
8989
  msgstr ""
8990
 
8991
- #: includes/general-functions.php:249
8992
- msgid "bbPress is installed|enabled"
8993
  msgstr ""
8994
 
8995
- #: includes/general-functions.php:251
8996
- msgid "bbPress is not installed|enabled"
8997
  msgstr ""
8998
 
8999
- #: includes/general-functions.php:259
9000
- msgid "Network|Multisite is not installed|enabled"
9001
  msgstr ""
9002
 
9003
- #: includes/general-functions.php:265
9004
- msgid "Subdirectory Site Type"
9005
  msgstr ""
9006
 
9007
- #: includes/general-functions.php:268
9008
- msgid "Subdomain Site Type"
9009
  msgstr ""
9010
 
9011
- #: includes/general-functions.php:297
9012
- msgid "DB Show Errors: On. DB errors will be displayed"
9013
  msgstr ""
9014
 
9015
- #: includes/general-functions.php:300
9016
- msgid "DB Show Errors: "
9017
  msgstr ""
9018
 
9019
- #: includes/general-functions.php:333 includes/general-functions.php:378
9020
- #: includes/general-functions.php:416
9021
- msgid "Reminder: Frontend Maintenance Mode is Turned On."
9022
  msgstr ""
9023
 
9024
- #: includes/general-functions.php:336 includes/general-functions.php:381
9025
- #: includes/general-functions.php:419
9026
- msgid "Reminder: Backend Maintenance Mode is Turned On."
9027
  msgstr ""
9028
 
9029
- #: includes/general-functions.php:339 includes/general-functions.php:384
9030
- #: includes/general-functions.php:422
9031
- msgid "Reminder: Frontend & Backend Maintenance Modes are Turned On."
9032
  msgstr ""
9033
 
9034
- #: includes/general-functions.php:366 includes/general-functions.php:404
9035
- msgid ""
9036
- "Reminder: Frontend Maintenance Mode is Turned On for The Primary Site and "
9037
- "All Subsites."
9038
  msgstr ""
9039
 
9040
- #: includes/general-functions.php:371 includes/general-functions.php:409
9041
- msgid ""
9042
- "Reminder: Frontend Maintenance Mode is Turned On for All Subsites, but Not "
9043
- "The Primary Site."
9044
  msgstr ""
9045
 
9046
- #: includes/general-functions.php:445
9047
- msgid ""
9048
- "BPS Login Security Disable Password Reset Frontend & Backend is turned On."
9049
  msgstr ""
9050
 
9051
- #: includes/general-functions.php:445
9052
- msgid ""
9053
- "Backend Password Reset has been disabled. To enable Backend Password Reset "
9054
- "click "
9055
  msgstr ""
9056
 
9057
- #: includes/general-functions.php:509
9058
- msgid "BPS Notice: One-time Update Steps Required"
9059
  msgstr ""
9060
 
9061
- #: includes/general-functions.php:509
9062
- msgid ""
9063
- "Significant changes were made to the root and wp-admin htaccess files that "
9064
- "require doing the one-time Update Steps below."
9065
  msgstr ""
9066
 
9067
- #: includes/general-functions.php:509
9068
- msgid ""
9069
- "All future BPS upgrades will not require these one-time Update Steps to be "
9070
- "performed."
9071
  msgstr ""
9072
 
9073
- #: includes/general-functions.php:509
9074
- msgid ""
9075
- " If you would like to know what changes were made to the root and wp-admin "
9076
- "htaccess files."
9077
  msgstr ""
9078
 
9079
- #: includes/general-functions.php:509
9080
- msgid ""
9081
- "This Notice will go away automatically after doing all of the steps below."
9082
  msgstr ""
9083
 
9084
- #: includes/general-functions.php:509
9085
- msgid " to go to the BPS Security Modes page."
 
 
 
 
9086
  msgstr ""
9087
 
9088
- #: includes/general-functions.php:509
9089
- msgid "1. Click the Root Folder BulletProof Mode Activate button."
9090
  msgstr ""
9091
 
9092
- #: includes/general-functions.php:509
9093
- msgid "2. Click the wp-admin Folder BulletProof Mode Activate button."
9094
  msgstr ""
9095
 
9096
- #: includes/general-functions.php:609
9097
- msgid "WordPress Debugging is turned On in your wp-config.php file"
9098
  msgstr ""
9099
 
9100
- #: includes/general-functions.php:609 includes/general-functions.php:615
9101
- msgid "You are currently using "
9102
  msgstr ""
9103
 
9104
- #: includes/general-functions.php:609
9105
- msgid ""
9106
- " in your wp-config.php file. To turn WP Debugging Off, change true to false "
9107
- "in your wp-config.php file."
9108
  msgstr ""
9109
 
9110
- #: includes/general-functions.php:615
9111
- msgid "WordPress Debug Logging is turned On in your wp-config.php file"
9112
  msgstr ""
9113
 
9114
- #: includes/general-functions.php:615
9115
- msgid ""
9116
- " in your wp-config.php file to log errors to the WordPress debug.log file. "
9117
- "To turn WP Debug Logging Off, change true to false in your wp-config.php "
9118
- "file."
9119
  msgstr ""
9120
 
9121
- #: includes/hidden-plugin-folders-cron.php:21
9122
- msgid "Once every minute"
9123
  msgstr ""
9124
 
9125
- #: includes/hidden-plugin-folders-cron.php:25
9126
- msgid "Once every 2 minutes"
9127
  msgstr ""
9128
 
9129
- #: includes/hidden-plugin-folders-cron.php:29
9130
- msgid "Once every 3 minutes"
9131
  msgstr ""
9132
 
9133
- #: includes/hidden-plugin-folders-cron.php:33
9134
- msgid "Once every 4 minutes"
9135
  msgstr ""
9136
 
9137
- #: includes/hidden-plugin-folders-cron.php:37
9138
- msgid "Once every 5 minutes"
9139
  msgstr ""
9140
 
9141
- #: includes/hidden-plugin-folders-cron.php:41
9142
- msgid "Once every 10 minutes"
9143
  msgstr ""
9144
 
9145
- #: includes/hidden-plugin-folders-cron.php:45
9146
- msgid "Once every 15 minutes"
9147
  msgstr ""
9148
 
9149
- #: includes/hidden-plugin-folders-cron.php:49
9150
- msgid "Once every 30 minutes"
 
 
9151
  msgstr ""
9152
 
9153
- #: includes/hidden-plugin-folders-cron.php:53
9154
- msgid "Once every 60 minutes"
9155
  msgstr ""
9156
 
9157
- #: includes/hidden-plugin-folders-cron.php:57
9158
- msgid "Once Daily"
9159
  msgstr ""
9160
 
9161
- #: includes/hidden-plugin-folders-cron.php:249
9162
- #: includes/hidden-plugin-folders-cron.php:264
9163
- #: includes/hidden-plugin-folders-cron.php:279
9164
- #: includes/hidden-plugin-folders-cron.php:294
9165
- #: includes/hidden-plugin-folders-cron.php:323
9166
- msgid "BPS Hidden Plugin Folder|Files (HPF) Alert"
9167
  msgstr ""
9168
 
9169
- #: includes/hidden-plugin-folders-cron.php:249
9170
  msgid ""
9171
- "A non-standard WP hello.php file (Hello Dolly Plugin) was found in your /"
9172
- "plugins/ folder and it is hidden/not displayed on the WordPress Plugins "
9173
- "page. Most likely the hello.php file is a hacker file or contains hacker "
9174
- "code. If you have modified the hello.php file and/or it is safe to ignore "
9175
- "this file you can ignore this file check by adding the HPF Ignore Rule shown "
9176
- "below in the "
9177
  msgstr ""
9178
 
9179
- #: includes/hidden-plugin-folders-cron.php:249
9180
- #: includes/hidden-plugin-folders-cron.php:264
9181
- #: includes/hidden-plugin-folders-cron.php:279
9182
- #: includes/hidden-plugin-folders-cron.php:294
9183
- #: includes/hidden-plugin-folders-cron.php:323
9184
- msgid "Ignore Hidden Plugin Folders & Files"
9185
  msgstr ""
9186
 
9187
- #: includes/hidden-plugin-folders-cron.php:249
9188
- #: includes/hidden-plugin-folders-cron.php:264
9189
- #: includes/hidden-plugin-folders-cron.php:279
9190
- #: includes/hidden-plugin-folders-cron.php:294
9191
- #: includes/hidden-plugin-folders-cron.php:323
9192
- msgid " textarea box option to make this Alert go away."
9193
  msgstr ""
9194
 
9195
- #: includes/hidden-plugin-folders-cron.php:249
9196
- #: includes/hidden-plugin-folders-cron.php:264
9197
- #: includes/hidden-plugin-folders-cron.php:279
9198
- #: includes/hidden-plugin-folders-cron.php:294
9199
- msgid "File Path: "
9200
  msgstr ""
9201
 
9202
- #: includes/hidden-plugin-folders-cron.php:249
9203
- #: includes/hidden-plugin-folders-cron.php:264
9204
- #: includes/hidden-plugin-folders-cron.php:279
9205
- #: includes/hidden-plugin-folders-cron.php:294
9206
- #: includes/hidden-plugin-folders-cron.php:323
9207
- msgid "HPF Ignore Rule: "
9208
  msgstr ""
9209
 
9210
- #: includes/hidden-plugin-folders-cron.php:249
9211
- #: includes/hidden-plugin-folders-cron.php:264
9212
- #: includes/hidden-plugin-folders-cron.php:279
9213
- #: includes/hidden-plugin-folders-cron.php:294
9214
- #: includes/hidden-plugin-folders-cron.php:323
9215
- msgid "Last Modified Time: "
9216
  msgstr ""
9217
 
9218
- #: includes/hidden-plugin-folders-cron.php:249
9219
- #: includes/hidden-plugin-folders-cron.php:264
9220
- #: includes/hidden-plugin-folders-cron.php:279
9221
- #: includes/hidden-plugin-folders-cron.php:294
9222
- #: includes/hidden-plugin-folders-cron.php:323
9223
- msgid "Last Change Time: "
9224
  msgstr ""
9225
 
9226
- #: includes/hidden-plugin-folders-cron.php:249
9227
- #: includes/hidden-plugin-folders-cron.php:264
9228
- #: includes/hidden-plugin-folders-cron.php:279
9229
- #: includes/hidden-plugin-folders-cron.php:294
9230
- #: includes/hidden-plugin-folders-cron.php:323
9231
- msgid "Last Access Time: "
9232
  msgstr ""
9233
 
9234
- #: includes/hidden-plugin-folders-cron.php:249
9235
- #: includes/hidden-plugin-folders-cron.php:264
9236
- #: includes/hidden-plugin-folders-cron.php:279
9237
- #: includes/hidden-plugin-folders-cron.php:294
9238
- msgid "File Contents: "
9239
  msgstr ""
9240
 
9241
- #: includes/hidden-plugin-folders-cron.php:264
9242
- msgid ""
9243
- "A non-standard WP index.php file found in your /plugins/ folder appears to "
9244
- "have been altered/tampered with. Most likely the index.php file is a hacker "
9245
- "file or contains hacker code. If you have modified the index.php file and/or "
9246
- "it is safe to ignore this file you can ignore this file check by adding the "
9247
- "HPF Ignore Rule shown below in the "
9248
  msgstr ""
9249
 
9250
- #: includes/hidden-plugin-folders-cron.php:279
9251
  msgid ""
9252
- "An htaccess file was found in your /plugins/ folder and it does not appear "
9253
- "to be a BPS htaccess file. Most likely the htaccess file is a hacker file or "
9254
- "contains hacker code. If you have modified the htaccess file and/or it is "
9255
- "safe to ignore this file you can ignore this file check by adding the HPF "
9256
- "Ignore Rule shown below in the "
9257
  msgstr ""
9258
 
9259
- #: includes/hidden-plugin-folders-cron.php:294
9260
- msgid ""
9261
- "An unrecognized/non-standard WP file was found in your /plugins/ folder. "
9262
- "This file may be a hacker file or contain hacker code. If you recognize this "
9263
- "file and/or it is safe to ignore this file you can ignore this file check by "
9264
- "adding the HPF Ignore Rule shown below in the "
9265
  msgstr ""
9266
 
9267
- #: includes/hidden-plugin-folders-cron.php:323
9268
  msgid ""
9269
- "A plugin folder was found in your /plugins/ folder that is either a hidden "
9270
- "plugin (plugin that is not displayed on the WordPress Plugins page) or an "
9271
- "empty plugin folder. You can either delete this folder or if you recognize "
9272
- "this folder and/or it is safe to ignore this folder you can ignore this "
9273
- "folder check by adding the HPF Ignore Rule shown below in the "
9274
  msgstr ""
9275
 
9276
- #: includes/hidden-plugin-folders-cron.php:323
9277
- msgid "Plugin Folder Path: "
 
 
 
 
9278
  msgstr ""
9279
 
9280
- #: includes/hud-dismiss-functions.php:49
9281
  msgid ""
9282
  "WARNING! BPS requires at least PHP5 to function correctly. Your PHP version "
9283
  "is: "
9284
  msgstr ""
9285
 
9286
- #: includes/hud-dismiss-functions.php:49
9287
  msgid "BPS Guide - PHP5 Solution"
9288
  msgstr ""
9289
 
9290
- #: includes/hud-dismiss-functions.php:49
9291
  msgid ""
9292
  "The BPS Guide will open in a new browser window. You will not be directed "
9293
  "away from your WordPress Dashboard."
9294
  msgstr ""
9295
 
9296
- #: includes/hud-dismiss-functions.php:71
9297
  msgid ""
9298
  "WARNING! BPS has detected that Safe Mode is set to On in your php.ini file."
9299
  msgstr ""
9300
 
9301
- #: includes/hud-dismiss-functions.php:71
9302
  msgid ""
9303
  "If you see errors that BPS was unable to automatically create the backup "
9304
  "folders this is probably the reason why."
9305
  msgstr ""
9306
 
9307
- #: includes/hud-dismiss-functions.php:71 includes/hud-dismiss-functions.php:105
9308
- #: includes/hud-dismiss-functions.php:138
9309
- #: includes/hud-dismiss-functions.php:349
9310
- #: includes/hud-dismiss-functions.php:354
9311
- #: includes/hud-dismiss-functions.php:392
9312
- #: includes/hud-dismiss-functions.php:397
9313
- #: includes/hud-dismiss-functions.php:451
9314
- #: includes/hud-dismiss-functions.php:493
9315
- #: includes/hud-dismiss-functions.php:539
9316
- #: includes/hud-dismiss-functions.php:706
9317
- #: includes/hud-dismiss-functions.php:949
9318
- #: includes/hud-dismiss-functions.php:987
9319
- msgid ""
9320
- "To Dismiss this Notice click the Dismiss Notice button below. To Reset "
9321
- "Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Custom "
9322
- "Code page."
9323
- msgstr ""
9324
-
9325
- #: includes/hud-dismiss-functions.php:71 includes/hud-dismiss-functions.php:105
9326
- #: includes/hud-dismiss-functions.php:138
9327
- #: includes/hud-dismiss-functions.php:203
9328
- #: includes/hud-dismiss-functions.php:218
9329
- #: includes/hud-dismiss-functions.php:224
9330
- #: includes/hud-dismiss-functions.php:230
9331
- #: includes/hud-dismiss-functions.php:236
9332
- #: includes/hud-dismiss-functions.php:250
9333
- #: includes/hud-dismiss-functions.php:256
9334
- #: includes/hud-dismiss-functions.php:261
9335
- #: includes/hud-dismiss-functions.php:349
9336
- #: includes/hud-dismiss-functions.php:354
9337
- #: includes/hud-dismiss-functions.php:392
9338
- #: includes/hud-dismiss-functions.php:397
9339
- #: includes/hud-dismiss-functions.php:451
9340
- #: includes/hud-dismiss-functions.php:493
9341
- #: includes/hud-dismiss-functions.php:539
9342
- #: includes/hud-dismiss-functions.php:607
9343
- #: includes/hud-dismiss-functions.php:654
9344
- #: includes/hud-dismiss-functions.php:706
9345
- #: includes/hud-dismiss-functions.php:899
9346
- #: includes/hud-dismiss-functions.php:949
9347
- #: includes/hud-dismiss-functions.php:987
9348
- msgid "Dismiss Notice"
9349
- msgstr ""
9350
-
9351
- #: includes/hud-dismiss-functions.php:105
9352
  msgid "HUD Check: Custom Permalinks are NOT being used."
9353
  msgstr ""
9354
 
9355
- #: includes/hud-dismiss-functions.php:105
9356
  msgid "It is recommended that you use Custom Permalinks: "
9357
  msgstr ""
9358
 
9359
- #: includes/hud-dismiss-functions.php:105
9360
  msgid "How to setup Custom Permalinks"
9361
  msgstr ""
9362
 
9363
- #: includes/hud-dismiss-functions.php:138
9364
  msgid ""
9365
  "WARNING! BPS has detected that your Server is a Windows IIS Server that does "
9366
  "not support htaccess rewriting."
9367
  msgstr ""
9368
 
9369
- #: includes/hud-dismiss-functions.php:138
9370
  msgid "Do NOT activate BulletProof Modes unless you know what you are doing."
9371
  msgstr ""
9372
 
9373
- #: includes/hud-dismiss-functions.php:138
9374
  msgid "Your Server Type is: "
9375
  msgstr ""
9376
 
9377
- #: includes/hud-dismiss-functions.php:138
9378
  msgid "WordPress Codex - Using Permalinks - see IIS section"
9379
  msgstr ""
9380
 
9381
- #: includes/hud-dismiss-functions.php:161
9382
- #: includes/hud-dismiss-functions.php:166
9383
  msgid "WARNING! BPS was unable to automatically create the /"
9384
  msgstr ""
9385
 
9386
- #: includes/hud-dismiss-functions.php:161
9387
  msgid "/bps-backup folder."
9388
  msgstr ""
9389
 
9390
- #: includes/hud-dismiss-functions.php:161
9391
- #: includes/hud-dismiss-functions.php:166
9392
  msgid "You will need to create the /"
9393
  msgstr ""
9394
 
9395
- #: includes/hud-dismiss-functions.php:161
9396
  msgid ""
9397
  "/bps-backup folder manually via FTP. The folder permissions for the bps-"
9398
  "backup folder need to be set to 755 in order to successfully perform "
9399
  "permanent online backups."
9400
  msgstr ""
9401
 
9402
- #: includes/hud-dismiss-functions.php:161
9403
- #: includes/hud-dismiss-functions.php:166
9404
  msgid "To remove this message permanently click "
9405
  msgstr ""
9406
 
9407
- #: includes/hud-dismiss-functions.php:161
9408
- #: includes/hud-dismiss-functions.php:166
9409
  msgid "here."
9410
  msgstr ""
9411
 
9412
- #: includes/hud-dismiss-functions.php:166
9413
  msgid "/bps-backup/master-backups folder."
9414
  msgstr ""
9415
 
9416
- #: includes/hud-dismiss-functions.php:166
9417
  msgid ""
9418
  "/bps-backup/master-backups folder manually via FTP. The folder permissions "
9419
  "for the master-backups folder need to be set to 755 in order to successfully "
9420
  "perform permanent online backups."
9421
  msgstr ""
9422
 
9423
- #: includes/hud-dismiss-functions.php:200
9424
- #: includes/hud-dismiss-functions.php:212
9425
  msgid "Bonus Custom Code:"
9426
  msgstr ""
9427
 
9428
- #: includes/hud-dismiss-functions.php:200
9429
- #: includes/hud-dismiss-functions.php:212
9430
  msgid ""
9431
  "Click the links below to get Bonus Custom Code or click the Dismiss Notice "
9432
  "links or click this "
9433
  msgstr ""
9434
 
9435
- #: includes/hud-dismiss-functions.php:200
9436
- #: includes/hud-dismiss-functions.php:212
9437
  msgid "Dismiss All Notices"
9438
  msgstr ""
9439
 
9440
- #: includes/hud-dismiss-functions.php:200
9441
- #: includes/hud-dismiss-functions.php:212
9442
  msgid ""
9443
  " link. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices "
9444
  "button on the Custom Code page."
9445
  msgstr ""
9446
 
9447
- #: includes/hud-dismiss-functions.php:203
9448
- #: includes/hud-dismiss-functions.php:218
9449
- #: includes/hud-dismiss-functions.php:224
9450
- #: includes/hud-dismiss-functions.php:230
9451
- #: includes/hud-dismiss-functions.php:236
9452
- #: includes/hud-dismiss-functions.php:250
9453
- #: includes/hud-dismiss-functions.php:256
9454
- #: includes/hud-dismiss-functions.php:261
9455
  msgid "Get "
9456
  msgstr ""
9457
 
9458
- #: includes/hud-dismiss-functions.php:203
9459
- #: includes/hud-dismiss-functions.php:250
9460
  msgid "POST Request Attack Protection Code"
9461
  msgstr ""
9462
 
9463
- #: includes/hud-dismiss-functions.php:203
9464
- #: includes/hud-dismiss-functions.php:218
9465
- #: includes/hud-dismiss-functions.php:224
9466
- #: includes/hud-dismiss-functions.php:230
9467
- #: includes/hud-dismiss-functions.php:236
9468
- #: includes/hud-dismiss-functions.php:250
9469
- #: includes/hud-dismiss-functions.php:256
9470
- #: includes/hud-dismiss-functions.php:261
9471
  msgid " or "
9472
  msgstr ""
9473
 
9474
- #: includes/hud-dismiss-functions.php:218
9475
  msgid "Brute Force Login Protection Code"
9476
  msgstr ""
9477
 
9478
- #: includes/hud-dismiss-functions.php:224
9479
  msgid "Speed Boost Cache Code"
9480
  msgstr ""
9481
 
9482
- #: includes/hud-dismiss-functions.php:230
9483
  msgid "Author Enumeration BOT Probe Code"
9484
  msgstr ""
9485
 
9486
- #: includes/hud-dismiss-functions.php:236
9487
  msgid "XML-RPC DDoS Protection Code"
9488
  msgstr ""
9489
 
9490
- #: includes/hud-dismiss-functions.php:256
9491
  msgid "Mime Sniffing|Drive-by Download Attack Protection Code"
9492
  msgstr ""
9493
 
9494
- #: includes/hud-dismiss-functions.php:261
9495
  msgid "External iFrame|Clickjacking Protection Code"
9496
  msgstr ""
9497
 
9498
- #: includes/hud-dismiss-functions.php:349
9499
- #: includes/hud-dismiss-functions.php:392
9500
  msgid "HUD Check: Wordfence PHP/php.ini handler htaccess code detected"
9501
  msgstr ""
9502
 
9503
- #: includes/hud-dismiss-functions.php:349
9504
- #: includes/hud-dismiss-functions.php:392
9505
  msgid ""
9506
  "Wordfence PHP/php.ini handler htaccess code was found in your root .htaccess "
9507
  "file, but was NOT found in BPS Custom Code."
9508
  msgstr ""
9509
 
9510
- #: includes/hud-dismiss-functions.php:349
9511
- #: includes/hud-dismiss-functions.php:392
9512
  msgid ""
9513
  "Using the Wordfence WAF Firewall may cause serious/critical problems for "
9514
  "your website and BPS."
9515
  msgstr ""
9516
 
9517
- #: includes/hud-dismiss-functions.php:354
9518
- #: includes/hud-dismiss-functions.php:397
9519
  msgid "HUD Check: PHP/php.ini handler htaccess code check"
9520
  msgstr ""
9521
 
9522
- #: includes/hud-dismiss-functions.php:354
9523
- #: includes/hud-dismiss-functions.php:397
9524
  msgid ""
9525
  "PHP/php.ini handler htaccess code was found in your root .htaccess file, but "
9526
  "was NOT found in BPS Custom Code."
9527
  msgstr ""
9528
 
9529
- #: includes/hud-dismiss-functions.php:354
9530
- #: includes/hud-dismiss-functions.php:397
9531
  msgid "To automatically fix this click here: "
9532
  msgstr ""
9533
 
9534
- #: includes/hud-dismiss-functions.php:354
9535
- #: includes/hud-dismiss-functions.php:397
9536
  msgid ""
9537
  "The Setup Wizard Pre-Installation Checks feature will automatically fix this "
9538
  "just by visiting the Setup Wizard page."
9539
  msgstr ""
9540
 
9541
- #: includes/hud-dismiss-functions.php:392
9542
  msgid " for the steps to fix this Wordfence problem."
9543
  msgstr ""
9544
 
9545
- #: includes/hud-dismiss-functions.php:451
9546
  msgid "Sucuri Restrict wp-content access Hardening Option problem detected"
9547
  msgstr ""
9548
 
9549
- #: includes/hud-dismiss-functions.php:451
9550
  msgid ""
9551
  "Using the Sucuri Restrict wp-content access Hardening Option breaks BPS "
9552
  "Security Logging, Plugin Firewall, Uploads Anti-Exploit Guard & probably "
9553
  "other things in BPS and other plugins as well."
9554
  msgstr ""
9555
 
9556
- #: includes/hud-dismiss-functions.php:451
9557
  msgid "To fix this problem click this link: "
9558
  msgstr ""
9559
 
9560
- #: includes/hud-dismiss-functions.php:451
9561
  msgid "Sucuri Hardening Options"
9562
  msgstr ""
9563
 
9564
- #: includes/hud-dismiss-functions.php:451
9565
  msgid ""
9566
  " and click the Sucuri Restrict wp-content access Revert hardening button."
9567
  msgstr ""
9568
 
9569
- #: includes/hud-dismiss-functions.php:493
9570
  msgid "The WordPress Firewall 2 plugin is installed and activated"
9571
  msgstr ""
9572
 
9573
- #: includes/hud-dismiss-functions.php:493
9574
  msgid "It is recommended that you delete the WordPress Firewall 2 plugin."
9575
  msgstr ""
9576
 
9577
- #: includes/hud-dismiss-functions.php:493
9578
  msgid " for more information."
9579
  msgstr ""
9580
 
9581
- #: includes/hud-dismiss-functions.php:539
9582
- msgid "Broken Link Checker plugin HEAD Request Method filter problem detected."
9583
- msgstr ""
9584
-
9585
- #: includes/hud-dismiss-functions.php:539
9586
- msgid "To fix this problem "
9587
- msgstr ""
9588
-
9589
- #: includes/hud-dismiss-functions.php:591
9590
- msgid "Jetpack XML-RPC Bonus Custom Code Notice"
9591
- msgstr ""
9592
-
9593
- #: includes/hud-dismiss-functions.php:591
9594
- msgid ""
9595
- "Older BPS XML-RPC Bonus Custom Code was found in your Root htaccess file. "
9596
- "New XML-RPC Bonus Custom Code for specific usage with Jetpack has been "
9597
- "created. Click the Click Here link below to get the new Jetpack XML-RPC "
9598
- "Bonus Custom Code."
9599
- msgstr ""
9600
-
9601
- #: includes/hud-dismiss-functions.php:591
9602
- msgid ""
9603
- " To get and use the New Jetpack XML-RPC Bonus Custom Code, replace your "
9604
- "existing XML-RPC Bonus Custom Code in BPS Custom Code with the newer Jetpack "
9605
- "XML-RPC Bonus Custom Code."
9606
- msgstr ""
9607
-
9608
- #: includes/hud-dismiss-functions.php:591
9609
- #: includes/hud-dismiss-functions.php:600
9610
- msgid ""
9611
- "To Dismiss these Jetpack Notices click the Dismiss Notice button below. To "
9612
- "Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on the "
9613
- "Custom Code page."
9614
- msgstr ""
9615
-
9616
- #: includes/hud-dismiss-functions.php:600
9617
- msgid "Jetpack Site Uptime Monitor Notice"
9618
- msgstr ""
9619
-
9620
- #: includes/hud-dismiss-functions.php:600
9621
- msgid ""
9622
- "New Jetpack Site Uptime Monitor code has been created for specific usage "
9623
- "with Jetpack to allow HEAD Requests made by Jetpack. Click the Click Here "
9624
- "link below to get the new Jetpack Site Uptime Monitor code."
9625
- msgstr ""
9626
-
9627
- #: includes/hud-dismiss-functions.php:600
9628
- msgid ""
9629
- " To get and use the new Jetpack Site Uptime Monitor code, replace any "
9630
- "existing REQUEST METHODS FILTERED code that you have added to BPS Custom "
9631
- "Code with the newer Jetpack Site Uptime Monitor code."
9632
- msgstr ""
9633
-
9634
- #: includes/hud-dismiss-functions.php:654
9635
- msgid "WooCommerce Notice"
9636
- msgstr ""
9637
-
9638
- #: includes/hud-dismiss-functions.php:654
9639
- msgid ""
9640
- "New WooCommerce whitelisting code has been created to resolve problems where "
9641
- "BPS is blocking something in WooCommerce."
9642
- msgstr ""
9643
-
9644
- #: includes/hud-dismiss-functions.php:654
9645
- msgid ""
9646
- "If WooCommerce is working fine on your website then disregard this Notice "
9647
- "and click the Dismiss Notice button below."
9648
- msgstr ""
9649
-
9650
- #: includes/hud-dismiss-functions.php:654
9651
- msgid ""
9652
- " To get the WooCommerce whitelisting code. To Reset Dismiss Notices click "
9653
- "the Reset|Recheck Dismiss Notices button on the Custom Code page."
9654
- msgstr ""
9655
-
9656
- #: includes/hud-dismiss-functions.php:706
9657
  msgid "BPS WooCommerce Options Notice: Enable Login Security for WooCommerce"
9658
  msgstr ""
9659
 
9660
- #: includes/hud-dismiss-functions.php:706
9661
  msgid ""
9662
  "BPS Login Security & Monitoring (LSM) can be enabled/disabled for the "
9663
  "WooCommerce custom login page by checking or unchecking the "
9664
  msgstr ""
9665
 
9666
- #: includes/hud-dismiss-functions.php:706
9667
  msgid "Enable Login Security for WooCommerce"
9668
  msgstr ""
9669
 
9670
- #: includes/hud-dismiss-functions.php:706
9671
  msgid ""
9672
  " checkbox option setting. The LSM WooCommerce option is automatically "
9673
  "enabled during the BPS upgrade if you already had WooCommerce installed "
@@ -9677,369 +10891,255 @@ msgid ""
9677
  "LSM for WooCommerce."
9678
  msgstr ""
9679
 
9680
- #: includes/hud-dismiss-functions.php:738
9681
  msgid "Notice: BPS Query String Exploits Code Changes"
9682
  msgstr ""
9683
 
9684
- #: includes/hud-dismiss-functions.php:738
9685
  msgid ""
9686
  "Older BPS Query String Exploits code was found in BPS Custom Code. Several "
9687
  "Query String Exploits rules were changed/added/modified in the root ."
9688
  "htaccess file in BPS .49.6, .50.2 & .50.3."
9689
  msgstr ""
9690
 
9691
- #: includes/hud-dismiss-functions.php:738
9692
  msgid ""
9693
  "Copy the new Query String Exploits section of code from your root .htaccess "
9694
  "file and paste it into this BPS Custom Code text box: CUSTOM CODE BPSQSE BPS "
9695
  "QUERY STRING EXPLOITS and click the Save Root Custom Code button."
9696
  msgstr ""
9697
 
9698
- #: includes/hud-dismiss-functions.php:738
9699
  msgid ""
9700
  "This Notice will go away once you have copied the new Query String Exploits "
9701
  "code to BPS Custom Code and clicked the Save Root Custom Code button."
9702
  msgstr ""
9703
 
9704
- #: includes/hud-dismiss-functions.php:767
9705
- msgid ""
9706
- "W3 Total Cache is activated, but W3TC htaccess code was NOT found in your "
9707
- "root htaccess file."
9708
- msgstr ""
9709
-
9710
- #: includes/hud-dismiss-functions.php:767
9711
- msgid ""
9712
- "W3TC needs to be redeployed by clicking either the W3TC auto-install or "
9713
- "deploy buttons. Your Root htaccess file must be temporarily unlocked so that "
9714
- "W3TC can write to your Root htaccess file. Click to "
9715
- msgstr ""
9716
-
9717
- #: includes/hud-dismiss-functions.php:767
9718
- msgid ""
9719
- "You can copy W3TC .htaccess code from your Root .htaccess file to BPS Custom "
9720
- "Code to save it permanently so that you will not have to do these steps in "
9721
- "the future."
9722
- msgstr ""
9723
-
9724
- #: includes/hud-dismiss-functions.php:767
9725
- msgid ""
9726
- "Copy W3TC .htaccess code to this BPS Custom Code text box: CUSTOM CODE TOP "
9727
- "PHP/PHP.INI HANDLER/CACHE CODE, click the Save Root Custom Code button, go "
9728
- "to the BPS Security Modes page and click the Root folder BulletProof Mode "
9729
- "button."
9730
- msgstr ""
9731
-
9732
- #: includes/hud-dismiss-functions.php:791
9733
- msgid ""
9734
- "W3 Total Cache is deactivated and W3TC .htaccess code was found in your root "
9735
- "htaccess file."
9736
- msgstr ""
9737
-
9738
- #: includes/hud-dismiss-functions.php:791
9739
- msgid ""
9740
- "If this is just temporary then this warning message will go away when you "
9741
- "reactivate W3TC. If you are planning on uninstalling W3TC the W3TC htaccess "
9742
- "code will be automatically removed from your root htaccess file when you "
9743
- "uninstall W3TC. Your Root htaccess file must be temporarily unlocked so that "
9744
- "W3TC can remove the W3TC Root htaccess code. If you manually edit your root "
9745
- "htaccess file then refresh your browser to perform a new htaccess file check."
9746
- msgstr ""
9747
-
9748
- #: includes/hud-dismiss-functions.php:823
9749
- msgid ""
9750
- "WP Super Cache is activated, but either you are not using WPSC mod_rewrite "
9751
- "to serve cache files or the WPSC htaccess code was NOT found in your root "
9752
- "htaccess file."
9753
- msgstr ""
9754
-
9755
- #: includes/hud-dismiss-functions.php:823
9756
- msgid ""
9757
- "If you are not using WPSC mod_rewrite then copy this: # WPSuperCache to this "
9758
- "BPS Custom Code text box: CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE, "
9759
- "click the Save Root Custom Code button, go to the Security Modes page and "
9760
- "click the Root folder BulletProof Mode button."
9761
- msgstr ""
9762
-
9763
- #: includes/hud-dismiss-functions.php:823
9764
- msgid ""
9765
- "If you are using WPSC mod_rewrite and the WPSC htaccess code is not in your "
9766
- "root htaccess file then unlock your Root htaccess file temporarily then "
9767
- "click this "
9768
- msgstr ""
9769
-
9770
- #: includes/hud-dismiss-functions.php:823
9771
- msgid "Update WPSC link"
9772
- msgstr ""
9773
-
9774
- #: includes/hud-dismiss-functions.php:823
9775
- msgid ""
9776
- " to go to the WPSC Settings page and click the Update Mod_Rewrite Rules "
9777
- "button."
9778
- msgstr ""
9779
-
9780
- #: includes/hud-dismiss-functions.php:823
9781
- msgid ""
9782
- "If you have deactivated Root Folder BulletProof Mode then disregard this "
9783
- "Alert and DO NOT update your Mod_Rewrite Rules. Refresh your browser to "
9784
- "perform a new htaccess file check."
9785
- msgstr ""
9786
-
9787
- #: includes/hud-dismiss-functions.php:823
9788
- msgid ""
9789
- "You can copy WPSC .htaccess code from your Root .htaccess file to BPS Custom "
9790
- "Code to save it permanently so that you will not have to do these steps in "
9791
- "the future."
9792
- msgstr ""
9793
-
9794
- #: includes/hud-dismiss-functions.php:823
9795
- msgid ""
9796
- "Copy WPSC .htaccess code to this BPS Custom Code text box: CUSTOM CODE TOP "
9797
- "PHP/PHP.INI HANDLER/CACHE CODE, click the Save Root Custom Code button, go "
9798
- "to the BPS Security Modes page and click the Root folder BulletProof Mode "
9799
- "button."
9800
- msgstr ""
9801
-
9802
- #: includes/hud-dismiss-functions.php:847
9803
- msgid ""
9804
- "WP Super Cache is deactivated and WPSC htaccess code - # BEGIN WPSuperCache "
9805
- "# END WPSuperCache - was found in your root htaccess file."
9806
- msgstr ""
9807
-
9808
- #: includes/hud-dismiss-functions.php:847
9809
- msgid ""
9810
- "If this is just temporary then this warning message will go away when you "
9811
- "reactivate WPSC. You will need to set up and reconfigure WPSC again when you "
9812
- "reactivate WPSC. Your Root htaccess file must be temporarily unlocked if you "
9813
- "are planning on uninstalling WPSC. The WPSC htaccess code will be "
9814
- "automatically removed from your root htaccess file when you uninstall WPSC. "
9815
- "If you added a commented out line of code in anywhere in your root htaccess "
9816
- "file - # WPSuperCache - then delete it and refresh your browser. If you "
9817
- "added WPSC code to BPS Custom Code then delete it if you are removing WPSC "
9818
- "permanently."
9819
- msgstr ""
9820
-
9821
- #: includes/hud-dismiss-functions.php:869
9822
  msgid "BPS Alert! A BPS htaccess file was NOT found in the BPS Backup folder: "
9823
  msgstr ""
9824
 
9825
- #: includes/hud-dismiss-functions.php:869
9826
  msgid " and click the BPS Backup Folder BulletProof Mode Activate button."
9827
  msgstr ""
9828
 
9829
- #: includes/hud-dismiss-functions.php:899
9830
  msgid "New Improved BPS Speed Boost Cache Code"
9831
  msgstr ""
9832
 
9833
- #: includes/hud-dismiss-functions.php:899
9834
  msgid ""
9835
  "Older BPS Speed Boost Cache Code was found saved in this BPS Custom Code "
9836
  "text box: CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE"
9837
  msgstr ""
9838
 
9839
- #: includes/hud-dismiss-functions.php:899
9840
  msgid ""
9841
  "Newer improved BPS Speed Boost Cache Code has been created, which should "
9842
  "improve website load speed performance even more."
9843
  msgstr ""
9844
 
9845
- #: includes/hud-dismiss-functions.php:899
9846
  msgid "Get The New Improved BPS Speed Boost Cache Code"
9847
  msgstr ""
9848
 
9849
- #: includes/hud-dismiss-functions.php:899
9850
  msgid ". To dismiss this Notice click the Dismiss Notice button below."
9851
  msgstr ""
9852
 
9853
- #: includes/hud-dismiss-functions.php:899
9854
  msgid ""
9855
  "To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on "
9856
  "the Custom Code page."
9857
  msgstr ""
9858
 
9859
- #: includes/hud-dismiss-functions.php:949
9860
- msgid "BPS Plugin Automatic Update Notice"
9861
  msgstr ""
9862
 
9863
- #: includes/hud-dismiss-functions.php:949
9864
  msgid ""
9865
- "Would you like to have BPS plugin updates installed automatically? Click "
9866
- "this link: "
9867
  msgstr ""
9868
 
9869
- #: includes/hud-dismiss-functions.php:949
9870
- msgid " and choose the AutoUpdate On option setting."
 
 
9871
  msgstr ""
9872
 
9873
- #: includes/hud-dismiss-functions.php:987
9874
- msgid "BPS Notice: The Endurance Page Cache (EPC) must-use plugin is installed"
9875
  msgstr ""
9876
 
9877
- #: includes/hud-dismiss-functions.php:987
9878
- msgid ""
9879
- "The EPC must-use plugin has been automatically installed by your Web Host "
9880
- "and requires additional BPS Custom Code setup steps to make sure everything "
9881
- "is working correctly."
9882
  msgstr ""
9883
 
9884
- #: includes/hud-dismiss-functions.php:987
9885
- msgid "Endurance Page Cache Plugin Fix"
9886
  msgstr ""
9887
 
9888
- #: includes/hud-dismiss-functions.php:987
9889
- msgid " and do the Custom Code setup steps in the forum topic."
9890
  msgstr ""
9891
 
9892
- #: includes/hud-dismiss-functions.php:987
9893
  msgid ""
9894
- "If you want to disable the EPC plugin, see the \"EPC Plugin Additional Notes"
9895
- "\" help section at the bottom of the forum topic."
 
 
 
 
9896
  msgstr ""
9897
 
9898
- #: includes/login-security.php:85 includes/login-security.php:91
9899
- #: includes/login-security.php:288 includes/login-security.php:418
9900
- #: includes/login-security.php:424 includes/login-security.php:534
9901
- #: includes/login-security.php:657 includes/login-security.php:663
9902
- #: includes/login-security.php:667 includes/login-security.php:673
9903
- #: includes/login-security.php:677 includes/login-security.php:687
9904
- #: includes/login-security.php:695 includes/login-security.php:699
9905
- #: includes/login-security.php:706 includes/login-security.php:710
9906
- #: includes/login-security.php:720 includes/login-security.php:724
9907
- #: includes/login-security.php:733 includes/login-security.php:737
9908
  msgid "ERROR:"
9909
  msgstr ""
9910
 
9911
- #: includes/login-security.php:85 includes/login-security.php:288
9912
- #: includes/login-security.php:418 includes/login-security.php:534
9913
  msgid " This user account has been locked until "
9914
  msgstr ""
9915
 
9916
- #: includes/login-security.php:85 includes/login-security.php:288
9917
- #: includes/login-security.php:418 includes/login-security.php:534
9918
  msgid ""
9919
  " due to too many failed login attempts. You can login again after the "
9920
  "Lockout Time above has expired."
9921
  msgstr ""
9922
 
9923
- #: includes/login-security.php:91 includes/login-security.php:424
9924
- #: includes/login-security.php:673 includes/login-security.php:677
9925
- #: includes/login-security.php:720 includes/login-security.php:724
9926
- #: includes/login-security.php:733 includes/login-security.php:737
9927
  msgid " Invalid Entry."
9928
  msgstr ""
9929
 
9930
- #: includes/login-security.php:91 includes/login-security.php:424
9931
- #: includes/login-security.php:657 includes/login-security.php:663
9932
- #: includes/login-security.php:667 includes/login-security.php:673
9933
- #: includes/login-security.php:677 includes/login-security.php:687
9934
- #: includes/login-security.php:695 includes/login-security.php:699
9935
- #: includes/login-security.php:706 includes/login-security.php:710
9936
- #: includes/login-security.php:720 includes/login-security.php:724
9937
- #: includes/login-security.php:733 includes/login-security.php:737
9938
  msgid "Lost your password?"
9939
  msgstr ""
9940
 
9941
- #: includes/login-security.php:109 includes/login-security.php:248
9942
- #: includes/login-security.php:492
9943
  msgid "A User has logged in on website: "
9944
  msgstr ""
9945
 
9946
- #: includes/login-security.php:110 includes/login-security.php:126
9947
- #: includes/login-security.php:157 includes/login-security.php:173
9948
- #: includes/login-security.php:249 includes/login-security.php:265
9949
- #: includes/login-security.php:493 includes/login-security.php:510
9950
  msgid ""
9951
  "To take further action go to the Login Security page. If you do not want to "
9952
  "receive further email alerts change or turn off Login Security Email Alerts."
9953
  msgstr ""
9954
 
9955
- #: includes/login-security.php:111 includes/login-security.php:127
9956
- #: includes/login-security.php:158 includes/login-security.php:174
9957
- #: includes/login-security.php:208 includes/login-security.php:250
9958
- #: includes/login-security.php:266 includes/login-security.php:362
9959
- #: includes/login-security.php:447 includes/login-security.php:495
9960
- #: includes/login-security.php:512 includes/login-security.php:608
9961
  msgid "Username:"
9962
  msgstr ""
9963
 
9964
- #: includes/login-security.php:112 includes/login-security.php:128
9965
- #: includes/login-security.php:159 includes/login-security.php:175
9966
- #: includes/login-security.php:209 includes/login-security.php:251
9967
- #: includes/login-security.php:267 includes/login-security.php:363
9968
- #: includes/login-security.php:448 includes/login-security.php:496
9969
- #: includes/login-security.php:513 includes/login-security.php:609
9970
  msgid "Status:"
9971
  msgstr ""
9972
 
9973
- #: includes/login-security.php:113 includes/login-security.php:129
9974
- #: includes/login-security.php:160 includes/login-security.php:176
9975
- #: includes/login-security.php:210 includes/login-security.php:252
9976
- #: includes/login-security.php:268 includes/login-security.php:364
9977
- #: includes/login-security.php:449 includes/login-security.php:497
9978
- #: includes/login-security.php:514 includes/login-security.php:610
9979
  msgid "User Role:"
9980
  msgstr ""
9981
 
9982
- #: includes/login-security.php:114 includes/login-security.php:130
9983
- #: includes/login-security.php:161 includes/login-security.php:177
9984
- #: includes/login-security.php:211 includes/login-security.php:253
9985
- #: includes/login-security.php:269 includes/login-security.php:365
9986
- #: includes/login-security.php:450 includes/login-security.php:498
9987
- #: includes/login-security.php:515 includes/login-security.php:611
9988
  msgid "Email:"
9989
  msgstr ""
9990
 
9991
- #: includes/login-security.php:115 includes/login-security.php:131
9992
- #: includes/login-security.php:162 includes/login-security.php:178
9993
- #: includes/login-security.php:214 includes/login-security.php:254
9994
- #: includes/login-security.php:270 includes/login-security.php:368
9995
- #: includes/login-security.php:453 includes/login-security.php:499
9996
- #: includes/login-security.php:516 includes/login-security.php:614
9997
  msgid "User IP Address:"
9998
  msgstr ""
9999
 
10000
- #: includes/login-security.php:116 includes/login-security.php:132
10001
- #: includes/login-security.php:163 includes/login-security.php:179
10002
- #: includes/login-security.php:215 includes/login-security.php:255
10003
- #: includes/login-security.php:271 includes/login-security.php:369
10004
- #: includes/login-security.php:454 includes/login-security.php:500
10005
- #: includes/login-security.php:517 includes/login-security.php:615
10006
  msgid "User Hostname:"
10007
  msgstr ""
10008
 
10009
- #: includes/login-security.php:117 includes/login-security.php:133
10010
- #: includes/login-security.php:164 includes/login-security.php:180
10011
- #: includes/login-security.php:216 includes/login-security.php:256
10012
- #: includes/login-security.php:272 includes/login-security.php:370
10013
- #: includes/login-security.php:455 includes/login-security.php:501
10014
- #: includes/login-security.php:518 includes/login-security.php:616
10015
  msgid "Request URI:"
10016
  msgstr ""
10017
 
10018
- #: includes/login-security.php:118 includes/login-security.php:134
10019
- #: includes/login-security.php:165 includes/login-security.php:181
10020
- #: includes/login-security.php:217 includes/login-security.php:257
10021
- #: includes/login-security.php:273 includes/login-security.php:371
10022
- #: includes/login-security.php:456 includes/login-security.php:502
10023
- #: includes/login-security.php:519 includes/login-security.php:617
10024
  msgid "Website:"
10025
  msgstr ""
10026
 
10027
- #: includes/login-security.php:125 includes/login-security.php:172
10028
- #: includes/login-security.php:264 includes/login-security.php:509
10029
  msgid "An Administrator has logged in on website: "
10030
  msgstr ""
10031
 
10032
- #: includes/login-security.php:156
10033
  msgid "Test A User has logged in on website: "
10034
  msgstr ""
10035
 
10036
- #: includes/login-security.php:203 includes/login-security.php:357
10037
- #: includes/login-security.php:442 includes/login-security.php:603
10038
  msgid "A User Account has been locked on website: "
10039
  msgstr ""
10040
 
10041
- #: includes/login-security.php:204 includes/login-security.php:358
10042
- #: includes/login-security.php:443 includes/login-security.php:604
10043
  msgid ""
10044
  "To take further action go to the Login Security page. If no action is taken "
10045
  "then the User will be able to try and login again after the Lockout Time has "
@@ -10047,15 +11147,15 @@ msgid ""
10047
  "off Login Security Email Alerts."
10048
  msgstr ""
10049
 
10050
- #: includes/login-security.php:205 includes/login-security.php:359
10051
- #: includes/login-security.php:444 includes/login-security.php:605
10052
  msgid ""
10053
  "What to do if your User Account is locked and you are unable to login to "
10054
  "your website:"
10055
  msgstr ""
10056
 
10057
- #: includes/login-security.php:205 includes/login-security.php:359
10058
- #: includes/login-security.php:444 includes/login-security.php:605
10059
  msgid ""
10060
  " Use FTP or your web host control panel file manager and rename the /"
10061
  "bulletproof-security plugin folder name to /_bulletproof-security. Log into "
@@ -10064,53 +11164,53 @@ msgid ""
10064
  "Account."
10065
  msgstr ""
10066
 
10067
- #: includes/login-security.php:206 includes/login-security.php:360
10068
- #: includes/login-security.php:445 includes/login-security.php:606
10069
  msgid "What to do if your User Account is being locked repeatedly:"
10070
  msgstr ""
10071
 
10072
- #: includes/login-security.php:206 includes/login-security.php:360
10073
- #: includes/login-security.php:445 includes/login-security.php:606
10074
  msgid ""
10075
  " Additional things that you can do to protect publicly displayed usernames, "
10076
  "not exposing author names/user account names, etc."
10077
  msgstr ""
10078
 
10079
- #: includes/login-security.php:212 includes/login-security.php:366
10080
- #: includes/login-security.php:451 includes/login-security.php:612
10081
  msgid "Lockout Time:"
10082
  msgstr ""
10083
 
10084
- #: includes/login-security.php:213 includes/login-security.php:367
10085
- #: includes/login-security.php:452 includes/login-security.php:613
10086
  msgid "Lockout Time Expires:"
10087
  msgstr ""
10088
 
10089
- #: includes/login-security.php:657 includes/login-security.php:667
10090
  msgid " Invalid username."
10091
  msgstr ""
10092
 
10093
- #: includes/login-security.php:663
10094
  msgid " Invalid email address."
10095
  msgstr ""
10096
 
10097
- #: includes/login-security.php:687 includes/login-security.php:699
10098
- #: includes/login-security.php:710
10099
  msgid " The password you entered for the username "
10100
  msgstr ""
10101
 
10102
- #: includes/login-security.php:687 includes/login-security.php:695
10103
- #: includes/login-security.php:699 includes/login-security.php:706
10104
- #: includes/login-security.php:710
10105
  msgid " is incorrect. "
10106
  msgstr ""
10107
 
10108
- #: includes/login-security.php:695 includes/login-security.php:706
10109
  msgid " The password you entered for the email address "
10110
  msgstr ""
10111
 
10112
- #: includes/login-security.php:695 includes/login-security.php:699
10113
- #: includes/login-security.php:720 includes/login-security.php:733
10114
  msgid " Login Attempts Remaining "
10115
  msgstr ""
10116
 
3
  msgstr ""
4
  "Project-Id-Version: bulletproof-security\n"
5
  "Report-Msgid-Bugs-To: \n"
6
+ "POT-Creation-Date: 2017-06-26 18:26-0700\n"
7
  "PO-Revision-Date: 2015-06-20 19:13-0800\n"
8
  "Last-Translator: Ed Alexander <edward@ait-pro.com>\n"
9
  "Language-Team: AITpro <info@ait-pro.com>\n"
292
  msgstr ""
293
 
294
  #: admin/core/core-export-import.php:115 admin/login/lsm-export.php:49
295
+ #: admin/wizard/wizard-backup.php:187 admin/wizard/wizard-backup.php:221
296
  msgid ""
297
  "If you see a 403 error and/or are unable to download the zip file then click "
298
  "here: "
299
  msgstr ""
300
 
301
  #: admin/core/core-export-import.php:115 admin/login/lsm-export.php:49
302
+ #: admin/wizard/wizard-backup.php:187 admin/wizard/wizard-backup.php:221
303
+ #: admin/wizard/wizard.php:850 admin/wizard/wizard.php:951
304
+ #: admin/wizard/wizard.php:953 includes/hud-autofix-whitelist.php:738
305
  msgid "Setup Wizard Options"
306
  msgstr ""
307
 
717
 
718
  #: admin/core/core-forms.php:618
719
  msgid ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
720
  "The BPS WooCommerce Options Notice: Enable Login Security for WooCommerce is "
721
  "NOT set. Nothing to reset."
722
  msgstr ""
723
 
724
+ #: admin/core/core-forms.php:621
725
  msgid ""
726
  "Success! The BPS WooCommerce Options Notice: Enable Login Security for "
727
  "WooCommerce is reset."
728
  msgstr ""
729
 
730
+ #: admin/core/core-forms.php:627
731
  msgid ""
732
  "The New Improved BPS Speed Boost Cache Code Notice is NOT set. Nothing to "
733
  "reset."
734
  msgstr ""
735
 
736
+ #: admin/core/core-forms.php:630
737
  msgid "Success! The New Improved BPS Speed Boost Cache Code Notice is reset."
738
  msgstr ""
739
 
740
+ #: admin/core/core-forms.php:635
741
  msgid "The BPS Plugin Automatic Update Notice is NOT set. Nothing to reset."
742
  msgstr ""
743
 
744
+ #: admin/core/core-forms.php:638
745
  msgid "Success! The BPS Plugin Automatic Update Notice is reset."
746
  msgstr ""
747
 
748
+ #: admin/core/core-forms.php:643
749
  msgid ""
750
  "The Endurance Page Cache (EPC) plugin Notice is NOT set. Nothing to reset."
751
  msgstr ""
752
 
753
+ #: admin/core/core-forms.php:646
754
  msgid "Success! The Endurance Page Cache (EPC) plugin Notice is reset."
755
  msgstr ""
756
 
757
+ #: admin/core/core-forms.php:650
758
  msgid "Refresh Status"
759
  msgstr ""
760
 
877
  "Read Me help file for BPS troubleshooting steps."
878
  msgstr ""
879
 
880
+ #: admin/core/core-help-text.php:15 admin/wizard/wizard.php:902
881
  msgid "Notes: "
882
  msgstr ""
883
 
1075
  #: admin/db-backup-security/db-backup-help-text.php:15
1076
  #: admin/db-backup-security/db-backup-security.php:288
1077
  #: admin/login/login.php:190 admin/login/login.php:889
1078
+ #: admin/maintenance/maintenance.php:200
1079
  #: admin/security-log/security-log.php:245
1080
  #: admin/system-info/system-info.php:103 admin/theme-skin/theme-skin.php:110
1081
+ #: admin/wizard/wizard.php:888 admin/wizard/wizard.php:959
1082
  msgid ""
1083
  "This Read Me Help window is draggable (top) and resizable (bottom right "
1084
  "corner)"
1094
  "will be updated/saved."
1095
  msgstr ""
1096
 
1097
+ #: admin/core/core-help-text.php:30 admin/security-log/security-log.php:254
1098
  msgid "Important Notes: "
1099
  msgstr ""
1100
 
1513
  msgstr ""
1514
 
1515
  #: admin/core/core-htaccess-code.php:55 admin/core/core-htaccess-code.php:118
1516
+ #: admin/maintenance/maintenance.php:390 admin/maintenance/maintenance.php:410
1517
  msgid "The file "
1518
  msgstr ""
1519
 
1520
  #: admin/core/core-htaccess-code.php:55 admin/core/core-htaccess-code.php:118
1521
+ #: admin/maintenance/maintenance.php:390 admin/maintenance/maintenance.php:410
1522
  msgid " is not writable or does not exist."
1523
  msgstr ""
1524
 
1544
  "problem click"
1545
  msgstr ""
1546
 
1547
+ #: admin/core/core-htaccess-code.php:437 admin/core/core-htaccess-code.php:521
1548
+ #: admin/core/core-htaccess-code.php:590 admin/core/core-htaccess-code.php:674
1549
  #: admin/core/core.php:1039
1550
  msgid "htaccess Files Disabled: Root htaccess file writing is disabled."
1551
  msgstr ""
1552
 
1553
+ #: admin/core/core-htaccess-code.php:459 admin/core/core-htaccess-code.php:612
1554
  #: admin/core/core.php:895
1555
  msgid "Failed to copy your Custom default.htaccess file: "
1556
  msgstr ""
1557
 
1558
+ #: admin/core/core-htaccess-code.php:459 admin/core/core-htaccess-code.php:612
1559
  #: admin/core/core.php:895
1560
  msgid " to: "
1561
  msgstr ""
1562
 
1563
+ #: admin/core/core-htaccess-code.php:459 admin/core/core-htaccess-code.php:612
1564
  msgid " Check the folder permissions or Ownership for these folders."
1565
  msgstr ""
1566
 
1567
+ #: admin/core/core-htaccess-code.php:470 admin/core/core-htaccess-code.php:623
1568
  msgid ""
1569
  "Root Folder BulletProof Mode deactivated successfully. Your Custom default."
1570
  "htaccess is currently in use."
1571
  msgstr ""
1572
 
1573
+ #: admin/core/core-htaccess-code.php:494 admin/core/core-htaccess-code.php:647
1574
  msgid ""
1575
  "Failed to deactivate Root Folder BulletProof Mode. Unable to Copy the "
1576
  "default.htaccess file to your root folder."
1577
  msgstr ""
1578
 
1579
+ #: admin/core/core-htaccess-code.php:505 admin/core/core-htaccess-code.php:658
1580
  msgid "Root Folder BulletProof Mode deactivated successfully."
1581
  msgstr ""
1582
 
1583
+ #: admin/core/core-htaccess-code.php:550 admin/core/core-htaccess-code.php:703
1584
  msgid ""
1585
  "Failed to activate Root Folder BulletProof Mode protection. Your website is "
1586
  "NOT protected."
1587
  msgstr ""
1588
 
1589
+ #: admin/core/core-htaccess-code.php:561 admin/core/core-htaccess-code.php:714
1590
  msgid "Root Folder BulletProof Mode protection activated successfully."
1591
  msgstr ""
1592
 
1593
  #: admin/core/core.php:58 admin/db-backup-security/db-backup-security.php:56
1594
  #: admin/login/login.php:51 admin/maintenance/maintenance.php:51
1595
  #: admin/security-log/security-log.php:51 admin/system-info/system-info.php:51
1596
+ #: admin/theme-skin/theme-skin.php:56 admin/wizard/wizard.php:100
1597
  msgid "Rate BPS"
1598
  msgstr ""
1599
 
1600
+ #: admin/core/core.php:126 admin/includes/admin.php:227
1601
+ #: admin/includes/admin.php:228
1602
  msgid "BulletProof Security ~ htaccess Core"
1603
  msgstr ""
1604
 
1605
  #: admin/core/core.php:151 admin/db-backup-security/db-backup-security.php:69
1606
+ #: admin/login/login.php:126 admin/maintenance/maintenance.php:89
1607
  #: admin/security-log/security-log.php:64 admin/system-info/system-info.php:64
1608
+ #: admin/theme-skin/theme-skin.php:69 admin/wizard/wizard.php:198
1609
  msgid "Settings Saved"
1610
  msgstr ""
1611
 
1629
  msgid "Whats New"
1630
  msgstr ""
1631
 
1632
+ #: admin/core/core.php:183 bulletproof-security.php:122
1633
  msgid "BPS Pro Features"
1634
  msgstr ""
1635
 
1636
  #: admin/core/core.php:184 admin/db-backup-security/db-backup-security.php:262
1637
  #: admin/db-backup-security/db-backup-security.php:1745
1638
+ #: admin/login/login.php:163 admin/maintenance/maintenance.php:164
1639
  #: admin/security-log/security-log.php:227 admin/system-info/system-info.php:90
1640
+ #: admin/theme-skin/theme-skin.php:92 admin/theme-skin/theme-skin.php:215
1641
  msgid "Help &amp; FAQ"
1642
  msgstr ""
1643
 
1671
  #: admin/db-backup-security/db-backup-security.php:1150
1672
  #: admin/db-backup-security/db-backup-security.php:1389
1673
  #: admin/login/login.php:185 admin/login/login.php:880
1674
+ #: admin/maintenance/maintenance.php:195
1675
  #: admin/security-log/security-log.php:240 admin/system-info/system-info.php:98
1676
+ #: admin/theme-skin/theme-skin.php:107 admin/wizard/wizard.php:879
1677
+ #: admin/wizard/wizard.php:951
1678
  msgid "Read Me"
1679
  msgstr ""
1680
 
1681
  #: admin/core/core.php:208 admin/core/core.php:318 admin/core/core.php:1449
1682
  #: admin/db-backup-security/db-backup-security.php:291
1683
+ #: admin/login/login.php:892 admin/maintenance/maintenance.php:203
1684
  #: admin/system-info/system-info.php:106
1685
  msgid "Forum Help Links: "
1686
  msgstr ""
1836
  "other buttons."
1837
  msgstr ""
1838
 
1839
+ #: admin/core/core.php:494 admin/maintenance/maintenance.php:655
1840
+ #: admin/security-log/security-log.php:541
1841
+ #: admin/security-log/security-log.php:556
1842
+ #: admin/security-log/security-log.php:774
1843
  #: admin/system-info/system-info.php:1009
1844
  #: admin/system-info/system-info.php:1070
1845
  msgid "Click OK to proceed or click Cancel."
2136
  #: admin/system-info/system-info.php:749 admin/system-info/system-info.php:757
2137
  #: admin/system-info/system-info.php:765 admin/system-info/system-info.php:773
2138
  #: admin/system-info/system-info.php:781 admin/system-info/system-info.php:800
2139
+ #: includes/functions.php:536 includes/functions.php:711
2140
+ #: includes/functions.php:758 includes/functions.php:870
2141
+ #: includes/functions.php:916
2142
  msgid "On"
2143
  msgstr ""
2144
 
2160
  #: admin/system-info/system-info.php:760 admin/system-info/system-info.php:768
2161
  #: admin/system-info/system-info.php:776 admin/system-info/system-info.php:784
2162
  #: admin/system-info/system-info.php:792 admin/system-info/system-info.php:803
2163
+ #: includes/functions.php:763 includes/functions.php:876
2164
+ #: includes/functions.php:922 includes/general-functions.php:285
2165
  #: includes/general-functions.php:300
2166
  msgid "Off"
2167
  msgstr ""
2226
  msgstr ""
2227
 
2228
  #: admin/core/core.php:1460 admin/core/core.php:1827
2229
+ #: admin/wizard/wizard.php:894
2230
  msgid "Custom Code Video Tutorial"
2231
  msgstr ""
2232
 
2282
 
2283
  #: admin/core/core.php:1590
2284
  #: admin/db-backup-security/db-backup-security.php:1751
2285
+ #: admin/theme-skin/theme-skin.php:221
2286
  msgid "Whats New in "
2287
  msgstr ""
2288
 
2600
  "\">Whats New in BPS Pro %1$s</a>"
2601
  msgstr ""
2602
 
2603
+ #: admin/core/core.php:1811 admin/maintenance/maintenance.php:2092
2604
  msgid "Help & FAQ"
2605
  msgstr ""
2606
 
2607
  #: admin/core/core.php:1818 admin/login/login.php:1248
2608
+ #: admin/maintenance/maintenance.php:2099
2609
+ #: admin/security-log/security-log.php:884
2610
  #: admin/system-info/system-info.php:1092
2611
  msgid "Contributors Page"
2612
  msgstr ""
2616
  msgstr ""
2617
 
2618
  #: admin/core/core.php:1822 admin/login/login.php:1247
2619
+ #: admin/maintenance/maintenance.php:2102
2620
+ #: admin/security-log/security-log.php:883
2621
  #: admin/system-info/system-info.php:1091
2622
  msgid "Security Log Event Codes"
2623
  msgstr ""
2628
 
2629
  #: admin/core/core.php:1826
2630
  #: admin/db-backup-security/db-backup-security.php:1759
2631
+ #: admin/login/login.php:1251 admin/maintenance/maintenance.php:2103
2632
+ #: admin/security-log/security-log.php:887
2633
+ #: admin/system-info/system-info.php:1095 admin/theme-skin/theme-skin.php:229
2634
  msgid "Forum: Search, Troubleshooting Steps & Post Questions For Assistance"
2635
  msgstr ""
2636
 
3274
  #: admin/db-backup-security/db-backup-security.php:259
3275
  #: admin/db-backup-security/db-backup-security.php:283
3276
  #: admin/db-backup-security/db-backup-security.php:285
3277
+ #: admin/includes/admin.php:231
3278
  msgid "DB Backup"
3279
  msgstr ""
3280
 
4072
  msgstr ""
4073
 
4074
  #: admin/db-backup-security/db-backup-security.php:1285
4075
+ #: admin/security-log/security-log.php:585
4076
  msgid "Click OK to Delete the Log file contents or click Cancel."
4077
  msgstr ""
4078
 
4222
  msgstr ""
4223
 
4224
  #: admin/db-backup-security/db-backup-security.php:1752
4225
+ #: admin/theme-skin/theme-skin.php:222
4226
  msgid "BPS Pro Features & Version Release Dates"
4227
  msgstr ""
4228
 
4229
  #: admin/db-backup-security/db-backup-security.php:1755
4230
+ #: admin/theme-skin/theme-skin.php:225
4231
  msgid "Video Tutorials"
4232
  msgstr ""
4233
 
4235
  msgid "DB Backup & Security Guide & Troubleshooting"
4236
  msgstr ""
4237
 
4238
+ #: admin/includes/admin.php:212
4239
  msgid "BulletProof Security Settings"
4240
  msgstr ""
4241
 
4242
+ #: admin/includes/admin.php:212 admin/includes/admin.php:227
4243
  msgid "BPS Security"
4244
  msgstr ""
4245
 
4246
+ #: admin/includes/admin.php:213 admin/includes/admin.php:229
4247
  msgid "Login Security"
4248
  msgstr ""
4249
 
4250
+ #: admin/includes/admin.php:219 admin/includes/admin.php:238
4251
+ #: admin/maintenance/maintenance.php:163 admin/maintenance/maintenance.php:195
4252
+ #: admin/maintenance/maintenance.php:197
4253
  msgid "Maintenance Mode"
4254
  msgstr ""
4255
 
4256
+ #: admin/includes/admin.php:222 admin/includes/admin.php:241
4257
  #: admin/system-info/system-info.php:88
4258
  msgid "System Info"
4259
  msgstr ""
4260
 
4261
+ #: admin/includes/admin.php:223 admin/includes/admin.php:242
4262
  #: admin/theme-skin/theme-skin.php:91 admin/theme-skin/theme-skin.php:107
4263
  #: admin/theme-skin/theme-skin.php:109
4264
  msgid "UI|UX Settings"
4265
  msgstr ""
4266
 
4267
+ #: admin/includes/admin.php:228
4268
  msgid "htaccess Core"
4269
  msgstr ""
4270
 
4271
+ #: admin/includes/admin.php:229 admin/includes/admin.php:230
4272
  msgid "Login Security ~ ISL ~ ACE"
4273
  msgstr ""
4274
 
4275
+ #: admin/includes/admin.php:230
4276
  msgid "Idle Session Logout<br>Cookie Expiration"
4277
  msgstr ""
4278
 
4279
+ #: admin/includes/admin.php:231
4280
  msgid "DB Backup & Security"
4281
  msgstr ""
4282
 
4283
+ #: admin/includes/admin.php:232 admin/security-log/security-log.php:226
4284
  #: admin/security-log/security-log.php:240
4285
  #: admin/security-log/security-log.php:242
4286
  msgid "Security Log"
4287
  msgstr ""
4288
 
4289
+ #: admin/includes/admin.php:243 admin/wizard/wizard.php:849
4290
+ #: admin/wizard/wizard.php:879 admin/wizard/wizard.php:881
4291
+ #: bulletproof-security.php:98 bulletproof-security.php:101
4292
  msgid "Setup Wizard"
4293
  msgstr ""
4294
 
4295
+ #: admin/includes/admin.php:246 admin/includes/admin.php:254
4296
  #: admin/includes/uninstall.php:45
4297
  msgid "BPS Plugin Uninstall Options"
4298
  msgstr ""
4299
 
4300
+ #: admin/includes/admin.php:289
4301
  msgid "BPS UI|UX Debug: SLF css Scripts Nulled"
4302
  msgstr ""
4303
 
4304
+ #: admin/includes/admin.php:296
4305
  msgid "BPS UI|UX Debug: SLF css Scripts Not Nulled|Allowed"
4306
  msgstr ""
4307
 
4308
+ #: admin/includes/admin.php:325
4309
  msgid "BPS UI|UX Debug: SLF js Scripts Nulled"
4310
  msgstr ""
4311
 
4312
+ #: admin/includes/admin.php:332
4313
  msgid "BPS UI|UX Debug: SLF js Scripts Not Nulled|Allowed"
4314
  msgstr ""
4315
 
4316
+ #: admin/includes/admin.php:415
4317
  msgid "BPS UI|UX Debug: Scripts|Styles Dequeued"
4318
  msgstr ""
4319
 
4320
+ #: admin/includes/admin.php:427
4321
  msgid "Script Dequeued: "
4322
  msgstr ""
4323
 
4324
+ #: admin/includes/admin.php:433
4325
  msgid ""
4326
  "No plugin or theme Scripts were Dequeued (prevented) from loading in BPS "
4327
  "plugin pages"
4328
  msgstr ""
4329
 
4330
+ #: admin/includes/admin.php:445
4331
  msgid "Style Dequeued: "
4332
  msgstr ""
4333
 
4334
+ #: admin/includes/admin.php:451
4335
  msgid ""
4336
  "No plugin or theme Styles were Dequeued (prevented) from loading in BPS "
4337
  "plugin pages"
4338
  msgstr ""
4339
 
4340
+ #: admin/includes/admin.php:489 admin/includes/admin.php:522
4341
  msgid "BPS UI|UX Debug: WP Toolbar nodes|menu items Removed"
4342
  msgstr ""
4343
 
4344
+ #: admin/includes/admin.php:501 admin/includes/admin.php:534
4345
  msgid "WP Toolbar node|menu item Removed: "
4346
  msgstr ""
4347
 
4348
+ #: admin/includes/admin.php:509 admin/includes/admin.php:542
4349
  msgid "No WP Toolbar nodes|menu items were Removed in BPS plugin pages"
4350
  msgstr ""
4351
 
4405
  "Protection"
4406
  msgstr ""
4407
 
4408
+ #: admin/login/login.php:173 admin/maintenance/maintenance.php:183
4409
  msgid "Notice: "
4410
  msgstr ""
4411
 
4412
+ #: admin/login/login.php:173 admin/maintenance/maintenance.php:183
4413
  msgid "You have disabled wp-admin BulletProof Mode on the Security Modes page."
4414
  msgstr ""
4415
 
4416
+ #: admin/login/login.php:173 admin/maintenance/maintenance.php:183
4417
  msgid "If you have Go Daddy \"Managed WordPress Hosting\" click this link: "
4418
  msgstr ""
4419
 
4420
+ #: admin/login/login.php:173 admin/maintenance/maintenance.php:183
4421
  msgid "Go Daddy Managed WordPress Hosting"
4422
  msgstr ""
4423
 
4792
  msgstr ""
4793
 
4794
  #: admin/login/login.php:1079 admin/login/login.php:1219
4795
+ #: admin/security-log/security-log.php:529
4796
  msgid "Click OK to Proceed or click Cancel."
4797
  msgstr ""
4798
 
4848
  msgid "Enable|Disable Auth Cookie Expiration Time For These User Roles: "
4849
  msgstr ""
4850
 
4851
+ #: admin/login/login.php:1241 admin/security-log/security-log.php:877
4852
  #: admin/system-info/system-info.php:1085
4853
  msgid "BulletProof Security Help &amp; FAQ"
4854
  msgstr ""
5036
  "be displayed. "
5037
  msgstr ""
5038
 
5039
+ #: admin/login/lsm-help-text.php:10 admin/maintenance/maintenance.php:542
5040
+ #: includes/hud-dismiss-functions.php:341
5041
+ #: includes/hud-dismiss-functions.php:384
5042
  msgid "CAUTION: "
5043
  msgstr ""
5044
 
5440
  "Roles: Administrator, Editor, Author, Contributor, Subscriber."
5441
  msgstr ""
5442
 
5443
+ #: admin/maintenance/maintenance.php:64
5444
+ msgid "BPS Error: Oxygen Plugin"
5445
+ msgstr ""
5446
+
5447
+ #: admin/maintenance/maintenance.php:64
5448
+ msgid ""
5449
+ "The Oxygen plugin is installed and activated, which prevents BPS MMode from "
5450
+ "being successfully turned On while the Oxygen plugin is activated."
5451
+ msgstr ""
5452
+
5453
+ #: admin/maintenance/maintenance.php:64 includes/hud-autofix-whitelist.php:738
5454
+ msgid "Click this "
5455
+ msgstr ""
5456
+
5457
+ #: admin/maintenance/maintenance.php:64
5458
+ msgid "Oxygen plugin forum topic link"
5459
+ msgstr ""
5460
+
5461
+ #: admin/maintenance/maintenance.php:64
5462
+ msgid ""
5463
+ " for more information about how to make BPS MMode work with the Oxygen "
5464
+ "plugin."
5465
+ msgstr ""
5466
+
5467
+ #: admin/maintenance/maintenance.php:76
5468
  msgid "BulletProof Security ~ Maintenance Mode"
5469
  msgstr ""
5470
 
5471
+ #: admin/maintenance/maintenance.php:78
5472
  msgid "Maintenance Mode ~ FrontEnd ~ BackEnd"
5473
  msgstr ""
5474
 
5475
+ #: admin/maintenance/maintenance.php:172
5476
  msgid "Display FrontEnd Maintenance Mode Page"
5477
  msgstr ""
5478
 
5479
+ #: admin/maintenance/maintenance.php:174
5480
  msgid ""
5481
  "FrontEnd ~ Display Maintenance Mode Page|BackEnd ~ Lock BackEnd with Deny "
5482
  "All htaccess Protection"
5483
  msgstr ""
5484
 
5485
+ #: admin/maintenance/maintenance.php:206 admin/maintenance/maintenance.php:212
5486
+ #: admin/maintenance/maintenance.php:2098
5487
  msgid "Maintenance Mode Guide"
5488
  msgstr ""
5489
 
5490
+ #: admin/maintenance/maintenance.php:208
5491
  msgid ""
5492
  "Create/add whatever messages, images, videos, etc. you want to display to "
5493
  "website visitors with the MMode Editor, select your MMode options/settings, "
5496
  "options/settings."
5497
  msgstr ""
5498
 
5499
+ #: admin/maintenance/maintenance.php:208
5500
  msgid ""
5501
  "For more extensive help info, CSS, HTML code examples, Image & Video "
5502
  "embedding code examples to add in the MMode Editor see Forum Help Links at "
5503
  "the top of this Read Me help window."
5504
  msgstr ""
5505
 
5506
+ #: admin/maintenance/maintenance.php:208 admin/maintenance/maintenance.php:506
5507
  msgid ""
5508
  "Maintenance Mode Text, CSS Style Code, Images, Videos Displayed To Website "
5509
  "Visitors:"
5510
  msgstr ""
5511
 
5512
+ #: admin/maintenance/maintenance.php:208
5513
  msgid ""
5514
  "This is a standard WordPress TinyMCE WYSIWYG editor that has a Visual Editor "
5515
  "and a Text Editor for adding CSS or HTML code. Enter plain text, CSS, HTML "
5521
  "Save Options button to save your edits."
5522
  msgstr ""
5523
 
5524
+ #: admin/maintenance/maintenance.php:208
5525
  msgid "Enable Countdown Timer:"
5526
  msgstr ""
5527
 
5528
+ #: admin/maintenance/maintenance.php:208
5529
  msgid ""
5530
  "Check this checkbox to enable a javascript Countdown Timer that will be "
5531
  "displayed to visitors. When the Countdown Timer reaches 0/has completed your "
5534
  "off Maintenance Mode when the Countdown Timer reaches 0/has completed."
5535
  msgstr ""
5536
 
5537
+ #: admin/maintenance/maintenance.php:208 admin/maintenance/maintenance.php:521
5538
  msgid "Countdown Timer Text Color:"
5539
  msgstr ""
5540
 
5541
+ #: admin/maintenance/maintenance.php:208
5542
  msgid "Select the text color for the Countdown Timer."
5543
  msgstr ""
5544
 
5545
+ #: admin/maintenance/maintenance.php:208 admin/maintenance/maintenance.php:529
5546
  msgid "Maintenance Mode Time (in Minutes):"
5547
  msgstr ""
5548
 
5549
+ #: admin/maintenance/maintenance.php:208
5550
  msgid ""
5551
  "Enter the amount of time that you want to put your site into Maintenance "
5552
  "Mode in minutes. Example: 10 = 10 minutes, 180 = 3 hours, 1440 = 24 hours, "
5553
  "4320 = 3 days."
5554
  msgstr ""
5555
 
5556
+ #: admin/maintenance/maintenance.php:208 admin/maintenance/maintenance.php:533
5557
  msgid ""
5558
  "Header Retry-After (enter the same time as Maintenance Mode Time above):"
5559
  msgstr ""
5560
 
5561
+ #: admin/maintenance/maintenance.php:208
5562
  msgid ""
5563
  "This is the amount of time that you are telling Search Engines to wait "
5564
  "before visiting your website again. Enter the same time in minutes that you "
5565
  "entered for Maintenance Mode Time."
5566
  msgstr ""
5567
 
5568
+ #: admin/maintenance/maintenance.php:208
5569
  msgid "Enable FrontEnd Maintenance Mode:"
5570
  msgstr ""
5571
 
5572
+ #: admin/maintenance/maintenance.php:208
5573
  msgid ""
5574
  "Check this checkbox to enable FrontEnd Maintenance Mode. When you Turn On "
5575
  "FrontEnd Maintenance Mode your website Maintenance Mode page will be "
5580
  "be locked out of your WordPress Dashboard."
5581
  msgstr ""
5582
 
5583
+ #: admin/maintenance/maintenance.php:208
5584
  msgid "Enable BackEnd Maintenance Mode:"
5585
  msgstr ""
5586
 
5587
+ #: admin/maintenance/maintenance.php:208
5588
  msgid ""
5589
  "Check this checkbox to enable BackEnd Maintenance Mode. Be sure to enter the "
5590
  "Your IP address/the Recommended IP address in the Maintenance Mode IP "
5596
  "your WordPress Dashboard."
5597
  msgstr ""
5598
 
5599
+ #: admin/maintenance/maintenance.php:208 admin/maintenance/maintenance.php:548
5600
  msgid "Maintenance Mode IP Address Whitelist Text Box:"
5601
  msgstr ""
5602
 
5603
+ #: admin/maintenance/maintenance.php:208
5604
  msgid ""
5605
  "Enter The IP Address That Can View The Website Normally (not in Maintenance "
5606
  "Mode):"
5607
  msgstr ""
5608
 
5609
+ #: admin/maintenance/maintenance.php:208
5610
  msgid ""
5611
  "Enter Multiple IP addresses separated by a comma and a single space. "
5612
  "Example: 100.99.88.77, 200.66.55.44, 44.33.22.1 It is recommended that you "
5618
  "octets or your current IP address to whitelist your IP address."
5619
  msgstr ""
5620
 
5621
+ #: admin/maintenance/maintenance.php:208 admin/maintenance/maintenance.php:563
5622
  msgid "Background Images:"
5623
  msgstr ""
5624
 
5625
+ #: admin/maintenance/maintenance.php:208
5626
  msgid ""
5627
  "Select a background image that you want to use. BPS includes 20 background "
5628
  "images and 15 center images (text box images) that you can mix and match to "
5629
  "your design/color scheme preference."
5630
  msgstr ""
5631
 
5632
+ #: admin/maintenance/maintenance.php:208 admin/maintenance/maintenance.php:588
5633
  msgid "Center Images:"
5634
  msgstr ""
5635
 
5636
+ #: admin/maintenance/maintenance.php:208
5637
  msgid ""
5638
  "Select a center image that you want to use. BPS includes 20 background "
5639
  "images and 15 center images (text box images) that you can mix and match to "
5640
  "your design/color scheme preference."
5641
  msgstr ""
5642
 
5643
+ #: admin/maintenance/maintenance.php:208 admin/maintenance/maintenance.php:608
5644
  msgid "Background Colors (If not using a Background Image):"
5645
  msgstr ""
5646
 
5647
+ #: admin/maintenance/maintenance.php:208
5648
  msgid ""
5649
  "Select a background color that you want to use. If you do not want to use a "
5650
  "background image then you can instead choose a background color."
5651
  msgstr ""
5652
 
5653
+ #: admin/maintenance/maintenance.php:208
5654
  msgid "Display Visitor IP Address:"
5655
  msgstr ""
5656
 
5657
+ #: admin/maintenance/maintenance.php:208
5658
  msgid "Check this checkbox to display the website visitor's IP addresses."
5659
  msgstr ""
5660
 
5661
+ #: admin/maintenance/maintenance.php:208 admin/maintenance/maintenance.php:618
5662
  msgid "Display Admin|Login Link"
5663
  msgstr ""
5664
 
5665
+ #: admin/maintenance/maintenance.php:208
5666
  msgid ""
5667
  "Check this checkbox to display a Login link that points to your wp-admin "
5668
  "folder/Login page."
5669
  msgstr ""
5670
 
5671
+ #: admin/maintenance/maintenance.php:208
5672
  msgid "Display Dashboard Reminder Message when site is in Maintenance Mode:"
5673
  msgstr ""
5674
 
5675
+ #: admin/maintenance/maintenance.php:208
5676
  msgid ""
5677
  "Check this checkbox to display a WordPress Dashboard Reminder Notice that "
5678
  "your website is in Maintenance Mode."
5679
  msgstr ""
5680
 
5681
+ #: admin/maintenance/maintenance.php:208
5682
  msgid "Enable Visitor Logging:"
5683
  msgstr ""
5684
 
5685
+ #: admin/maintenance/maintenance.php:208
5686
  msgid ""
5687
  "Check this checkbox to enable visitor logging. Logs all visitors to your "
5688
  "site while your site is in Maintenance Mode. Log entries are created in the "
5689
  "BPS Security Log file. "
5690
  msgstr ""
5691
 
5692
+ #: admin/maintenance/maintenance.php:209
5693
  msgid ""
5694
  "Send Email Reminder when Maintenance Mode Countdown Timer has completed:"
5695
  msgstr ""
5696
 
5697
+ #: admin/maintenance/maintenance.php:209
5698
  msgid ""
5699
  "Check this checkbox to enable the javascript Countdown Timer to send you an "
5700
  "email reminder when the Countdown Timer reaches 0/is completed. More "
5706
  "the Countdown Timer reaches 0/has completed."
5707
  msgstr ""
5708
 
5709
+ #: admin/maintenance/maintenance.php:209
5710
  msgid "Testing the Countdown Timer Send Email Option:"
5711
  msgstr ""
5712
 
5713
+ #: admin/maintenance/maintenance.php:209
5714
  msgid ""
5715
  "There is a 1 minute buffer so that when the Maintenance Mode page is created "
5716
  "an email will not be sent immediately. To test the Send Email option use 2 "
5721
  "how fast your Mail Server sends the email to you."
5722
  msgstr ""
5723
 
5724
+ #: admin/maintenance/maintenance.php:209
5725
  msgid "Send Countdown Timer Email:"
5726
  msgstr ""
5727
 
5728
+ #: admin/maintenance/maintenance.php:209
5729
  msgid ""
5730
  "Enter the email addresses that you would like the Countdown Timer reminder "
5731
  "email sent to, from, cc or bcc."
5732
  msgstr ""
5733
 
5734
+ #: admin/maintenance/maintenance.php:209
5735
  msgid "Network/Multisite Primary Site Options ONLY:"
5736
  msgstr ""
5737
 
5738
+ #: admin/maintenance/maintenance.php:209
5739
  msgid ""
5740
  "These options/settings are for Network/Multisite ONLY and are ONLY displayed "
5741
  "on the Primary Network/Multisite site. Checking these options on a Single/"
5743
  "for Network/Multisite WordPress installations."
5744
  msgstr ""
5745
 
5746
+ #: admin/maintenance/maintenance.php:209
5747
  msgid "Steps to use these special Network/Multisite options:"
5748
  msgstr ""
5749
 
5750
+ #: admin/maintenance/maintenance.php:209
5751
  msgid ""
5752
  "To turn On either of these special options, check the checkbox, click the "
5753
  "Save Options button and click the Turn On button. To turn Off either of "
5759
  "special option settings in that template file."
5760
  msgstr ""
5761
 
5762
+ #: admin/maintenance/maintenance.php:209
5763
  msgid "Put The Primary Site And All Subsites In Maintenance Mode:"
5764
  msgstr ""
5765
 
5766
+ #: admin/maintenance/maintenance.php:209
5767
  msgid "Check this checkbox to put all of the sites into Maintenance Mode."
5768
  msgstr ""
5769
 
5770
+ #: admin/maintenance/maintenance.php:209
5771
  msgid "Put All Subsites In Maintenance Mode, But Not The Primary Site:"
5772
  msgstr ""
5773
 
5774
+ #: admin/maintenance/maintenance.php:209
5775
  msgid ""
5776
  "Check this checkbox to put all of the subsites into Maintenance Mode except "
5777
  "for the Primary site."
5778
  msgstr ""
5779
 
5780
+ #: admin/maintenance/maintenance.php:209
5781
  msgid "Save Options Button"
5782
  msgstr ""
5783
 
5784
+ #: admin/maintenance/maintenance.php:209
5785
  msgid ""
5786
  "Clicking the Save Options button does 2 things: Saves all your options/"
5787
  "settings to your Database and creates all necessary Maintenance Mode files/"
5789
  "Click the Turn On button after clicking the Save Options button."
5790
  msgstr ""
5791
 
5792
+ #: admin/maintenance/maintenance.php:209
5793
  msgid "Preview Button"
5794
  msgstr ""
5795
 
5796
+ #: admin/maintenance/maintenance.php:209
5797
  msgid ""
5798
  "Clicking the Preview button allows you to preview the Maintenance Mode files/"
5799
  "Forms that were created when you clicked the Save Options button. Preview "
5803
  "On button."
5804
  msgstr ""
5805
 
5806
+ #: admin/maintenance/maintenance.php:209
5807
  msgid "Turn On Button"
5808
  msgstr ""
5809
 
5810
+ #: admin/maintenance/maintenance.php:209
5811
  msgid ""
5812
  "Clicking the Turn On button turns On Maintenance Mode. Turn On is "
5813
  "conditional and allows you to make changes to your Maintenance Mode page "
5817
  "on your Maintenance Mode page."
5818
  msgstr ""
5819
 
5820
+ #: admin/maintenance/maintenance.php:209
5821
  msgid "Turn Off Button"
5822
  msgstr ""
5823
 
5824
+ #: admin/maintenance/maintenance.php:209
5825
  msgid ""
5826
  "Clicking the Turn Off button turns Off Maintenance Mode. Turn Off is non-"
5827
  "conditional and works like a Form Reset, but does not remove any of your "
5831
  "remain in your website root folder, but Maintenance Mode will be turned Off."
5832
  msgstr ""
5833
 
5834
+ #: admin/maintenance/maintenance.php:209
5835
  msgid "BPS help links can be found in the Help & FAQ pages."
5836
  msgstr ""
5837
 
5838
+ #: admin/maintenance/maintenance.php:245
5839
  msgid ""
5840
  "Error: You did not enter anything in the Maintenance Mode Time Text Box."
5841
  msgstr ""
5842
 
5843
+ #: admin/maintenance/maintenance.php:253 admin/maintenance/maintenance.php:748
5844
+ #: admin/maintenance/maintenance.php:956
5845
  msgid ""
5846
  "Error: You did not enter an IP Address in the Maintenance Mode IP Address "
5847
  "Whitelist Text Box."
5848
  msgstr ""
5849
 
5850
+ #: admin/maintenance/maintenance.php:383 admin/maintenance/maintenance.php:403
5851
  msgid ""
5852
  "Success! Your Options have been saved and your Maintenance Mode Form has "
5853
  "been created successfully! Click the Preview button to preview your Website "
5855
  "button."
5856
  msgstr ""
5857
 
5858
+ #: admin/maintenance/maintenance.php:390
5859
  msgid ""
5860
  "Check that the file exists in the /bulletproof-security/admin/htaccess/ "
5861
  "master folder. If this is not the problem "
5862
  msgstr ""
5863
 
5864
+ #: admin/maintenance/maintenance.php:390 admin/maintenance/maintenance.php:410
5865
+ #: admin/wizard/wizard.php:176 includes/general-functions.php:509
5866
+ #: includes/hud-dismiss-functions.php:341
5867
+ #: includes/hud-dismiss-functions.php:384
5868
+ #: includes/hud-dismiss-functions.php:488
 
 
 
 
5869
  msgid "Click Here"
5870
  msgstr ""
5871
 
5872
+ #: admin/maintenance/maintenance.php:390 admin/maintenance/maintenance.php:410
5873
  msgid " for assistance."
5874
  msgstr ""
5875
 
5876
+ #: admin/maintenance/maintenance.php:410
5877
  msgid ""
5878
  "Check that the bps-maintenance-values.php file exists in the /bulletproof-"
5879
  "security/admin/htaccess/ master folder. If this is not the problem "
5880
  msgstr ""
5881
 
5882
+ #: admin/maintenance/maintenance.php:471 admin/maintenance/maintenance.php:478
5883
+ #: admin/maintenance/maintenance.php:485
5884
  msgid "Your Current IP Address: "
5885
  msgstr ""
5886
 
5887
+ #: admin/maintenance/maintenance.php:471 admin/maintenance/maintenance.php:478
5888
+ #: admin/maintenance/maintenance.php:485
5889
  msgid "Recommended IP Address: "
5890
  msgstr ""
5891
 
5892
+ #: admin/maintenance/maintenance.php:503
5893
  msgid "MMode Editor"
5894
  msgstr ""
5895
 
5896
+ #: admin/maintenance/maintenance.php:507
5897
  msgid ""
5898
  "Click the Maintenance Mode Guide link above for CSS Code, Image & Video "
5899
  "Embed examples."
5900
  msgstr ""
5901
 
5902
+ #: admin/maintenance/maintenance.php:516
5903
  msgid "MMode Option Settings"
5904
  msgstr ""
5905
 
5906
+ #: admin/maintenance/maintenance.php:519
5907
  msgid "Enable Countdown Timer"
5908
  msgstr ""
5909
 
5910
+ #: admin/maintenance/maintenance.php:523
5911
  msgid "LCD|Lime Green"
5912
  msgstr ""
5913
 
5914
+ #: admin/maintenance/maintenance.php:524 admin/maintenance/maintenance.php:611
5915
  msgid "White"
5916
  msgstr ""
5917
 
5918
+ #: admin/maintenance/maintenance.php:525
5919
  msgid "Silver"
5920
  msgstr ""
5921
 
5922
+ #: admin/maintenance/maintenance.php:526 admin/maintenance/maintenance.php:613
5923
  msgid "Gray"
5924
  msgstr ""
5925
 
5926
+ #: admin/maintenance/maintenance.php:530 admin/maintenance/maintenance.php:534
5927
  msgid "Example: 10 = 10 minutes, 180 = 3 hours, 1440 = 24 hours."
5928
  msgstr ""
5929
 
5930
+ #: admin/maintenance/maintenance.php:537
5931
  msgid "Enable FrontEnd Maintenance Mode"
5932
  msgstr ""
5933
 
5934
+ #: admin/maintenance/maintenance.php:542
5935
  msgid "You MUST enter Your Current IP Address or the"
5936
  msgstr ""
5937
 
5938
+ #: admin/maintenance/maintenance.php:542
5939
  msgid "Recommended IP Address if you Enable BackEnd Maintenance Mode"
5940
  msgstr ""
5941
 
5942
+ #: admin/maintenance/maintenance.php:542
5943
  msgid "or you will be locked out of your WordPress Dashboard."
5944
  msgstr ""
5945
 
5946
+ #: admin/maintenance/maintenance.php:543
5947
  msgid "Enable BackEnd Maintenance Mode "
5948
  msgstr ""
5949
 
5950
+ #: admin/maintenance/maintenance.php:551
5951
  msgid ""
5952
  "Enter The IP Address That Can View The Website Normally (not in Maintenance "
5953
  "Mode)."
5954
  msgstr ""
5955
 
5956
+ #: admin/maintenance/maintenance.php:552
5957
  msgid "Enter Multiple IP addresses separated by a comma and a single space."
5958
  msgstr ""
5959
 
5960
+ #: admin/maintenance/maintenance.php:553
5961
  msgid "Example IPv4 IP Addresses: 100.99.88.77, 200.66.55.44, 44.33.22.1"
5962
  msgstr ""
5963
 
5964
+ #: admin/maintenance/maintenance.php:554
5965
  msgid ""
5966
  "Example IPv6 IP Addresses: 0:0:0:0:0:ffff:6463:584d, 0:0:0:0:0:ffff:c842:372c"
5967
  msgstr ""
5968
 
5969
+ #: admin/maintenance/maintenance.php:565
5970
  msgid "No Background Image"
5971
  msgstr ""
5972
 
5973
+ #: admin/maintenance/maintenance.php:566
5974
  msgid "Black Honeycomb Large"
5975
  msgstr ""
5976
 
5977
+ #: admin/maintenance/maintenance.php:567
5978
  msgid "Black Honeycomb Large Grey Line"
5979
  msgstr ""
5980
 
5981
+ #: admin/maintenance/maintenance.php:568
5982
  msgid "Black Mesh Small"
5983
  msgstr ""
5984
 
5985
+ #: admin/maintenance/maintenance.php:569
5986
  msgid "Black Mesh Small Grey Line"
5987
  msgstr ""
5988
 
5989
+ #: admin/maintenance/maintenance.php:570
5990
  msgid "Blue Honeycomb Large"
5991
  msgstr ""
5992
 
5993
+ #: admin/maintenance/maintenance.php:571
5994
  msgid "Blue Mesh Small"
5995
  msgstr ""
5996
 
5997
+ #: admin/maintenance/maintenance.php:572
5998
  msgid "Brown Honeycomb Large"
5999
  msgstr ""
6000
 
6001
+ #: admin/maintenance/maintenance.php:573
6002
  msgid "Brown Mesh Small"
6003
  msgstr ""
6004
 
6005
+ #: admin/maintenance/maintenance.php:574
6006
  msgid "Green Honeycomb Large"
6007
  msgstr ""
6008
 
6009
+ #: admin/maintenance/maintenance.php:575
6010
  msgid "Green Mesh Small"
6011
  msgstr ""
6012
 
6013
+ #: admin/maintenance/maintenance.php:576
6014
  msgid "Gray Honeycomb Large"
6015
  msgstr ""
6016
 
6017
+ #: admin/maintenance/maintenance.php:577
6018
  msgid "Gray Mesh Small"
6019
  msgstr ""
6020
 
6021
+ #: admin/maintenance/maintenance.php:578
6022
  msgid "Orange Honeycomb Large"
6023
  msgstr ""
6024
 
6025
+ #: admin/maintenance/maintenance.php:579
6026
  msgid "Orange Mesh Small"
6027
  msgstr ""
6028
 
6029
+ #: admin/maintenance/maintenance.php:580
6030
  msgid "Purple Honeycomb Large"
6031
  msgstr ""
6032
 
6033
+ #: admin/maintenance/maintenance.php:581
6034
  msgid "Purple Mesh Small"
6035
  msgstr ""
6036
 
6037
+ #: admin/maintenance/maintenance.php:582
6038
  msgid "Red|Burgundy Honeycomb Large"
6039
  msgstr ""
6040
 
6041
+ #: admin/maintenance/maintenance.php:583
6042
  msgid "Red|Burgundy Mesh Small"
6043
  msgstr ""
6044
 
6045
+ #: admin/maintenance/maintenance.php:584
6046
  msgid "Yellow Honeycomb Large"
6047
  msgstr ""
6048
 
6049
+ #: admin/maintenance/maintenance.php:585
6050
  msgid "Yellow Mesh Small"
6051
  msgstr ""
6052
 
6053
+ #: admin/maintenance/maintenance.php:590
6054
  msgid "No Center Image"
6055
  msgstr ""
6056
 
6057
+ #: admin/maintenance/maintenance.php:591
6058
  msgid "Basic Black"
6059
  msgstr ""
6060
 
6061
+ #: admin/maintenance/maintenance.php:592
6062
  msgid "Black Veins"
6063
  msgstr ""
6064
 
6065
+ #: admin/maintenance/maintenance.php:593
6066
  msgid "Blue Glass"
6067
  msgstr ""
6068
 
6069
+ #: admin/maintenance/maintenance.php:594
6070
  msgid "Brushed Metal Stamped"
6071
  msgstr ""
6072
 
6073
+ #: admin/maintenance/maintenance.php:595
6074
  msgid "Chrome"
6075
  msgstr ""
6076
 
6077
+ #: admin/maintenance/maintenance.php:596
6078
  msgid "Chrome Slick"
6079
  msgstr ""
6080
 
6081
+ #: admin/maintenance/maintenance.php:597
6082
  msgid "Fire"
6083
  msgstr ""
6084
 
6085
+ #: admin/maintenance/maintenance.php:598
6086
  msgid "Gun Metal"
6087
  msgstr ""
6088
 
6089
+ #: admin/maintenance/maintenance.php:599
6090
  msgid "Mercury"
6091
  msgstr ""
6092
 
6093
+ #: admin/maintenance/maintenance.php:600
6094
  msgid "Smoke"
6095
  msgstr ""
6096
 
6097
+ #: admin/maintenance/maintenance.php:601
6098
  msgid "Striped Cone"
6099
  msgstr ""
6100
 
6101
+ #: admin/maintenance/maintenance.php:602
6102
  msgid "Swamp Bevel"
6103
  msgstr ""
6104
 
6105
+ #: admin/maintenance/maintenance.php:603
6106
  msgid "Toy"
6107
  msgstr ""
6108
 
6109
+ #: admin/maintenance/maintenance.php:604
6110
  msgid "Water Reflection"
6111
  msgstr ""
6112
 
6113
+ #: admin/maintenance/maintenance.php:605
6114
  msgid "Wood Grain"
6115
  msgstr ""
6116
 
6117
+ #: admin/maintenance/maintenance.php:610
6118
  msgid "No Background Color"
6119
  msgstr ""
6120
 
6121
+ #: admin/maintenance/maintenance.php:612
6122
  msgid "Black"
6123
  msgstr ""
6124
 
6125
+ #: admin/maintenance/maintenance.php:616
6126
  msgid "Display Visitor IP Address"
6127
  msgstr ""
6128
 
6129
+ #: admin/maintenance/maintenance.php:620
6130
  msgid "Display Dashboard Reminder Message when site is in Maintenance Mode"
6131
  msgstr ""
6132
 
6133
+ #: admin/maintenance/maintenance.php:622
6134
  msgid "Enable Visitor Logging"
6135
  msgstr ""
6136
 
6137
+ #: admin/maintenance/maintenance.php:624
6138
  msgid "Send Email Reminder when Maintenance Mode Countdown Timer has completed"
6139
  msgstr ""
6140
 
6141
+ #: admin/maintenance/maintenance.php:626
6142
  msgid "Send Countdown Timer Email To:"
6143
  msgstr ""
6144
 
6145
+ #: admin/maintenance/maintenance.php:628
6146
  msgid "Send Countdown Timer Email From:"
6147
  msgstr ""
6148
 
6149
+ #: admin/maintenance/maintenance.php:630
6150
  msgid "Send Countdown Timer Email Cc:"
6151
  msgstr ""
6152
 
6153
+ #: admin/maintenance/maintenance.php:632
6154
  msgid "Send Countdown Timer Email Bcc:"
6155
  msgstr ""
6156
 
6157
+ #: admin/maintenance/maintenance.php:637
6158
  msgid "MMode Network|Multisite Options"
6159
  msgstr ""
6160
 
6161
+ #: admin/maintenance/maintenance.php:640
6162
  msgid "Network|Multisite Primary Site Options ONLY"
6163
  msgstr ""
6164
 
6165
+ #: admin/maintenance/maintenance.php:644
6166
  msgid ""
6167
  "Click the Maintenance Mode Read Me help button for the steps to use these "
6168
  "special options:"
6169
  msgstr ""
6170
 
6171
+ #: admin/maintenance/maintenance.php:645
6172
  msgid "Put The Primary Site And All Subsites In Maintenance Mode"
6173
  msgstr ""
6174
 
6175
+ #: admin/maintenance/maintenance.php:647
6176
  msgid "Put All Subsites In Maintenance Mode, But Not The Primary Site"
6177
  msgstr ""
6178
 
6179
+ #: admin/maintenance/maintenance.php:655
6180
  msgid ""
6181
  "Clicking OK Saves your Options/Settings to your Database and also creates "
6182
  "your Maintenance Mode page. Click the Preview button to preview your "
6184
  "Turn On button to enable Maintenance Mode on your website."
6185
  msgstr ""
6186
 
6187
+ #: admin/maintenance/maintenance.php:759 admin/maintenance/maintenance.php:967
6188
  msgid ""
6189
  "IP Address Format Error: You have entered multiple IP Addresses using an "
6190
  "incorrect Format."
6191
  msgstr ""
6192
 
6193
+ #: admin/maintenance/maintenance.php:759 admin/maintenance/maintenance.php:967
6194
  msgid ""
6195
  "The correct IP Address Format is: IP Address comma single space. Example: "
6196
  "100.99.88.77, 200.66.55.44, 44.33.22.1 or 100.99.88., 200.66.55., 44.33.22. "
6197
  "if you are using the recommended 3 octet IP addresses."
6198
  msgstr ""
6199
 
6200
+ #: admin/maintenance/maintenance.php:759 admin/maintenance/maintenance.php:967
6201
  msgid ""
6202
  "Correct the IP Address Format and click the Save Options button again. If "
6203
  "you have an IPv6 IP address use the same general format as an IPv4 IP "
6204
  "address - comma single space."
6205
  msgstr ""
6206
 
6207
+ #: admin/maintenance/maintenance.php:810 admin/maintenance/maintenance.php:1018
6208
+ #: admin/maintenance/maintenance.php:1120
6209
  msgid "FrontEnd Maintenance Mode has been Turned On."
6210
  msgstr ""
6211
 
6212
+ #: admin/maintenance/maintenance.php:828 admin/maintenance/maintenance.php:1144
6213
+ #: admin/maintenance/maintenance.php:1653
6214
+ #: admin/maintenance/maintenance.php:1783
6215
+ #: admin/maintenance/maintenance.php:1974
6216
  msgid "htaccess Files Disabled: BackEnd Maintenance Mode is disabled."
6217
  msgstr ""
6218
 
6219
+ #: admin/maintenance/maintenance.php:903 admin/maintenance/maintenance.php:1221
6220
  msgid "BackEnd Maintenance Mode has been Turned On."
6221
  msgstr ""
6222
 
6223
+ #: admin/maintenance/maintenance.php:1237
6224
+ #: admin/maintenance/maintenance.php:2026
6225
  msgid ""
6226
  "Error: You have not saved your option settings yet. Click the Save Options "
6227
  "button."
6228
  msgstr ""
6229
 
6230
+ #: admin/maintenance/maintenance.php:1314
6231
  msgid ""
6232
  "Error: Unable to get/find the site root index.php file for this GWIOD - "
6233
  "Giving WordPress Its Own Directory - website."
6234
  msgstr ""
6235
 
6236
+ #: admin/maintenance/maintenance.php:1314
6237
  msgid "GWIOD Site Root index.php File Path Checked: "
6238
  msgstr ""
6239
 
6240
+ #: admin/maintenance/maintenance.php:1314
6241
  msgid ""
6242
  "BPS Maintenance Mode will not work correctly with your WordPress GWIOD "
6243
  "setup. Try another WordPress Maintenance Mode plugin."
6244
  msgstr ""
6245
 
6246
+ #: admin/maintenance/maintenance.php:1380
6247
  msgid ""
6248
  "Error: Unable to get/find the site root index.php file for this Network "
6249
  "GWIOD - Giving WordPress Its Own Directory - website."
6250
  msgstr ""
6251
 
6252
+ #: admin/maintenance/maintenance.php:1380
6253
  msgid "Network GWIOD Site Root index.php File Path Checked: "
6254
  msgstr ""
6255
 
6256
+ #: admin/maintenance/maintenance.php:1380
6257
  msgid ""
6258
  "Please copy this error message and send it in an email to info@ait-pro.com "
6259
  "for assistance."
6260
  msgstr ""
6261
 
6262
+ #: admin/maintenance/maintenance.php:1465
6263
+ #: admin/maintenance/maintenance.php:1590
6264
+ #: admin/maintenance/maintenance.php:1746
6265
+ #: admin/maintenance/maintenance.php:1926
6266
  msgid "FrontEnd Maintenance Mode has been Turned Off."
6267
  msgstr ""
6268
 
6269
+ #: admin/maintenance/maintenance.php:1693
6270
+ #: admin/maintenance/maintenance.php:1819
6271
+ #: admin/maintenance/maintenance.php:2010
6272
  msgid "BackEnd Maintenance Mode has been Turned Off."
6273
  msgstr ""
6274
 
6474
  msgstr ""
6475
 
6476
  #: admin/security-log/security-log.php:254
6477
+ #: admin/security-log/security-log.php:525
6478
+ msgid "POST Request Body Data"
6479
  msgstr ""
6480
 
6481
  #: admin/security-log/security-log.php:254
6482
  msgid ""
6483
+ "The POST Request Body Data option settings only affect the REQUEST BODY "
6484
+ "Security Log field in your Security Log entries when a POST Request is "
6485
+ "blocked and logged by BPS. To capture/log all POST Request Attacks against "
6486
+ "your website you will need to add the POST Request Attack Protection Bonus "
6487
+ "Custom Code. A link to that Bonus Custom Code is at the top of this Read Me "
6488
+ "help window. If you do not want to add the Bonus Custom Code then some, but "
6489
+ "not all POST Request Attacks will be captured/logged in the Security Log."
 
 
 
 
6490
  msgstr ""
6491
 
6492
  #: admin/security-log/security-log.php:254
6493
  msgid ""
6494
+ "The default POST Request Body Data option setting is \"Do Not Log POST "
6495
+ "Request Body Data (0KB)\", which means do not capture/log the POST Request "
6496
+ "data that was sent in the attack. You will see this text in the REQUEST BODY "
6497
+ "Security Log entry field: \"REQUEST BODY: BPS Security Log option set to: Do "
6498
+ "Not Log POST Request Body Data\" instead of the actual POST Request Body "
6499
+ "data used in the attack on your website. The reason the default setting is "
6500
+ "set to: \"Do Not Log POST Request Body Data (0KB)\" is because some web "
6501
+ "hosts falsely interpret the BPS Security Log text file as malicious since "
6502
+ "hacker code used to attack your website can be captured/logged in the "
6503
+ "Security Log text file if you are using the \"Log Minimum...\" or \"Log "
6504
+ "Maximum...\" POST Request Body Data option settings."
6505
  msgstr ""
6506
 
6507
  #: admin/security-log/security-log.php:254
6508
+ msgid ""
6509
+ "The \"Log Minimum POST Request Body Data (5KB)\" option setting will capture/"
6510
+ "log the first 500 characters or 5KB of hacker code used to attack your "
6511
+ "website in a POST Request attack and log that hacker code in the REQUEST "
6512
+ "BODY Security Log entry field. The \"Log Maximum POST Request Body Data "
6513
+ "(250KB)\" option setting will capture/log the first 250000 characters or "
6514
+ "roughly 250KB of hacker code used to attack your website in a POST Request "
6515
+ "attack and log that hacker code in the REQUEST BODY Security Log entry "
6516
+ "field. Hacker scripts typically range in size from 20KB to 100KB on average."
6517
  msgstr ""
6518
 
6519
  #: admin/security-log/security-log.php:254
6520
  msgid ""
6521
+ "If you are using email security protection on your computer then your "
6522
+ "automatically zipped and emailed BPS Security Log files may be seen as "
6523
+ "containing a virus (hacker script/code) and they could be automatically "
6524
+ "deleted by your email protection application on your computer. Your computer "
6525
+ "security protection software may also see the Security Log file as malicious "
6526
+ "and block it. If your web host falsely sees the BPS Security Log file as a "
6527
+ "malicious hacker file then you will need to change your POST Request Body "
6528
+ "Data option setting and use the \"Do Not Log POST Request Body Data (0KB)\" "
6529
+ "option setting instead."
6530
  msgstr ""
6531
 
6532
  #: admin/security-log/security-log.php:254
6563
  msgstr ""
6564
 
6565
  #: admin/security-log/security-log.php:254
6566
+ #: admin/security-log/security-log.php:538
6567
  msgid "Add User Agents|Bots to Ignore|Not Log"
6568
  msgstr ""
6569
 
6675
  msgstr ""
6676
 
6677
  #: admin/security-log/security-log.php:401
6678
+ #: admin/security-log/security-log.php:609 admin/wizard/wizard.php:302
6679
+ #: admin/wizard/wizard.php:308 admin/wizard/wizard.php:314
6680
+ #: admin/wizard/wizard.php:320 admin/wizard/wizard.php:326
6681
  msgid "Error: The "
6682
  msgstr ""
6683
 
6684
  #: admin/security-log/security-log.php:401
6685
+ #: admin/security-log/security-log.php:609
6686
  msgid " does not exist."
6687
  msgstr ""
6688
 
6689
  #: admin/security-log/security-log.php:429
6690
+ #: admin/security-log/security-log.php:622
6691
+ #: admin/security-log/security-log.php:686
6692
  msgid "Error: Unable to write to file "
6693
  msgstr ""
6694
 
6695
  #: admin/security-log/security-log.php:429
6696
+ #: admin/security-log/security-log.php:622
6697
+ #: admin/security-log/security-log.php:686
6698
  msgid ""
6699
  ". Check that file permissions allow writing to this file. If you have a DSO "
6700
  "Server check file and folder Ownership."
6707
  msgstr ""
6708
 
6709
  #: admin/security-log/security-log.php:526
6710
+ msgid " Do Not Log POST Request Body Data (0KB)"
6711
  msgstr ""
6712
 
6713
+ #: admin/security-log/security-log.php:527
6714
+ msgid " Log Minimum POST Request Body Data (5KB)"
6715
+ msgstr ""
6716
+
6717
+ #: admin/security-log/security-log.php:528
6718
+ msgid " Log Maximum POST Request Body Data (250KB)"
6719
  msgstr ""
6720
 
6721
  #: admin/security-log/security-log.php:539
6722
+ msgid "Click the Read Me Help button for examples"
6723
+ msgstr ""
6724
+
6725
+ #: admin/security-log/security-log.php:541
6726
  msgid ""
6727
  "Clicking OK will Add the User Agent|Bot name you have entered to your DB and "
6728
  "the 403.php Security Logging template."
6729
  msgstr ""
6730
 
6731
+ #: admin/security-log/security-log.php:541
6732
  msgid ""
6733
  "Security logging checks are done by the 403.php Security Logging file and "
6734
  "not by DB Queries."
6735
  msgstr ""
6736
 
6737
+ #: admin/security-log/security-log.php:541
6738
  msgid ""
6739
  "To remove User Agents|Bots from being ignored/not logged use the Remove|"
6740
  "Allow tool."
6741
  msgstr ""
6742
 
6743
+ #: admin/security-log/security-log.php:554
6744
  msgid "Remove User Agents|Bots to Allow|Log"
6745
  msgstr ""
6746
 
6747
+ #: admin/security-log/security-log.php:556
6748
  msgid ""
6749
  "Clicking OK will search your database and display User Agent|Bot DB search "
6750
  "results in a Dynamic Radio button Form."
6751
  msgstr ""
6752
 
6753
+ #: admin/security-log/security-log.php:556
6754
  msgid ""
6755
  "To search for ALL User Agents|Bots to remove/delete from your database leave "
6756
  "the text box blank and click the Remove|Allow button."
6757
  msgstr ""
6758
 
6759
+ #: admin/security-log/security-log.php:569
6760
  msgid "Click OK to Turn Off Error Logging or click Cancel."
6761
  msgstr ""
6762
 
6763
+ #: admin/security-log/security-log.php:577
6764
  msgid "Click OK to Turn On Logging or click Cancel."
6765
  msgstr ""
6766
 
6767
+ #: admin/security-log/security-log.php:585
6768
  msgid "Clicking OK will delete the contents of your Security Log file."
6769
  msgstr ""
6770
 
6771
+ #: admin/security-log/security-log.php:643
6772
+ #: admin/security-log/security-log.php:744
6773
  msgid "Remove"
6774
  msgstr ""
6775
 
6776
+ #: admin/security-log/security-log.php:664
6777
  #, php-format
6778
  msgid "%s unable to delete row from your DB."
6779
  msgstr ""
6780
 
6781
+ #: admin/security-log/security-log.php:666
6782
  #, php-format
6783
  msgid "%s has been deleted from your DB."
6784
  msgstr ""
6785
 
6786
+ #: admin/security-log/security-log.php:701
6787
  msgid ""
6788
  "Success! The BPS 403.php Security Logging template file has been updated. "
6789
  "This User Agent|Bot will be logged again in your Security Log."
6790
  msgstr ""
6791
 
6792
+ #: admin/security-log/security-log.php:729
6793
  msgid "Error: These code characters are not allowed to be used: "
6794
  msgstr ""
6795
 
6796
+ #: admin/security-log/security-log.php:739
6797
  msgid "Search Results For User Agents|Bots To Remove"
6798
  msgstr ""
6799
 
6800
+ #: admin/security-log/security-log.php:743
6801
  msgid "User Agents|Bots in DB"
6802
  msgstr ""
6803
 
6804
+ #: admin/security-log/security-log.php:745
6805
  msgid "Do Not<br>Remove"
6806
  msgstr ""
6807
 
6808
+ #: admin/security-log/security-log.php:746
6809
  msgid "Time Added<br>To DB"
6810
  msgstr ""
6811
 
6812
+ #: admin/security-log/security-log.php:764
6813
  msgid ""
6814
  "Your DB Search Results For User Agents|Bots To Remove are displayed below "
6815
  "the Remove|Allow Search tool."
6816
  msgstr ""
6817
 
6818
+ #: admin/security-log/security-log.php:768
6819
  msgid ""
6820
  "You do not have any User Agents|Bots in your DB To Remove. An empty/blank "
6821
  "dynamic radio button form is displayed below the Remove|Allow Search tool "
6822
  "since you do not have any User Agents|Bot to remove."
6823
  msgstr ""
6824
 
6825
+ #: admin/security-log/security-log.php:774
6826
  msgid ""
6827
  "Clicking OK will Remove the User Agent|Bot DB entries for any Remove Radio "
6828
  "button selections you have made. User Agents|Bots will also be removed from "
6829
  "the 403.php Security Logging template."
6830
  msgstr ""
6831
 
6832
+ #: admin/security-log/security-log.php:774
6833
  msgid "To add a User Agent|Bot, use the Add|Ignore tool."
6834
  msgstr ""
6835
 
6836
+ #: admin/security-log/security-log.php:803
6837
  msgid ""
6838
  "The Security Log File Was Not Found! Check that the file really exists here "
6839
  "- /"
6840
  msgstr ""
6841
 
6842
+ #: admin/security-log/security-log.php:803
6843
  msgid "/bps-backup/logs/http_error_log.txt and is named correctly."
6844
  msgstr ""
6845
 
6846
+ #: admin/security-log/security-log.php:821
6847
  msgid ""
6848
  "File Open and Write test successful! Your Security Log file is writable."
6849
  msgstr ""
6850
 
6851
+ #: admin/security-log/security-log.php:832
6852
+ #: admin/security-log/security-log.php:836
6853
  msgid "Success! Your Security Log file has been updated."
6854
  msgstr ""
6855
 
7795
  msgstr ""
7796
 
7797
  #: admin/theme-skin/theme-skin.php:110 admin/theme-skin/theme-skin.php:196
7798
+ msgid "BPS UI|UX|AutoFix Debug:"
7799
+ msgstr ""
7800
+
7801
+ #: admin/theme-skin/theme-skin.php:110
7802
+ msgid "BPS UI|UX Debug: "
7803
  msgstr ""
7804
 
7805
  #: admin/theme-skin/theme-skin.php:110
7806
  msgid ""
7807
+ "BPS UI|UX|AutoFix Debug is set to Off by default. Turning On the BPS UI|UX|"
7808
+ "AutoFix Debug option will display: plugin or theme Scripts that were "
7809
+ "Dequeued (prevented) from loading in BPS plugin pages, plugin or theme "
7810
+ "Scripts that were Nulled (prevented) from loading in BPS plugin pages by the "
7811
+ "Script|Style Loader Filter (SLF) In BPS Plugin Pages option and WP Toolbar "
7812
+ "nodes|menu items that were Removed in BPS plugin pages by the WP Toolbar "
7813
+ "Functionality In BPS Plugin Pages option. The Debugger will also display any "
7814
+ "SLF js or css Scripts that were Not Nulled|Allowed to load in BPS plugin "
7815
+ "pages."
7816
  msgstr ""
7817
 
7818
+ #: admin/theme-skin/theme-skin.php:110
7819
+ msgid "BPS AutoFix Debug: "
7820
  msgstr ""
7821
 
7822
  #: admin/theme-skin/theme-skin.php:110
7823
  msgid ""
7824
+ "Turning On the BPS UI|UX|AutoFix Debug option will display: plugin or theme "
7825
+ "names and the BPS Custom Code text box where plugins or themes should be "
7826
+ "creating Custom Code whitelist rules. Usage: If the BPS Setup Wizard AutoFix "
7827
+ "(AutoWhitelist|AutoSetup|AutoCleanup) Notice is still being displayed after "
7828
+ "running the Pre-Installation Wizard and Setup Wizard then the BPS UI|UX|"
7829
+ "AutoFix Debug option should be turned On to find the exact plugin or theme "
7830
+ "and the Custom Code text box where the problem is occurring. Example Debug "
7831
+ "Displayed message: CC Root Text Box 10: WooCommerce Plugin. This option "
7832
+ "could also be used generally to see which plugins and themes BPS AutoFix is "
7833
+ "creating Custom Code whitelist rules for and which Custom Code text boxes "
7834
+ "the AutoFix whitelist rules will be created in."
7835
  msgstr ""
7836
 
7837
  #: admin/theme-skin/theme-skin.php:119
7879
  msgstr ""
7880
 
7881
  #: admin/theme-skin/theme-skin.php:171 admin/theme-skin/theme-skin.php:184
7882
+ #: admin/theme-skin/theme-skin.php:197
7883
  msgid "Click the Read Me help button for information"
7884
  msgstr ""
7885
 
7907
  msgid "Debug On"
7908
  msgstr ""
7909
 
7910
+ #: admin/wizard/pwizard-autofix-setup.php:52
7911
+ msgid "WP Super Cache (WPSC) Plugin AutoSetup not required: "
7912
  msgstr ""
7913
 
7914
+ #: admin/wizard/pwizard-autofix-setup.php:52
7915
+ msgid ""
7916
+ "GWIOD site types do not require AutoSetup because WPSC creates htaccess code "
7917
+ "in the site root htaccess file."
7918
  msgstr ""
7919
 
7920
+ #: admin/wizard/pwizard-autofix-setup.php:88
7921
  msgid ""
7922
+ "Error: The Pre-Installation Wizard is unable to add the WP Super Cache "
7923
+ "WP_CACHE code in your wp-config.php file."
7924
  msgstr ""
7925
 
7926
+ #: admin/wizard/pwizard-autofix-setup.php:88
7927
  msgid ""
7928
+ "A wp-config.php file was NOT found in your WordPress website root folder. If "
7929
+ "you have moved your wp-config.php file to another folder location then you "
7930
+ "will need to either move the wp-config.php file back to its default "
7931
+ "WordPress folder location and run the Pre-Installation Wizard again or "
7932
+ "manually edit your wp-config.php file and add the WP Super Cache WP_CACHE "
7933
+ "code. Click this link for the steps to manually edit your wp-config.php "
7934
+ "file: "
7935
  msgstr ""
7936
 
7937
+ #: admin/wizard/pwizard-autofix-setup.php:88
7938
+ #: admin/wizard/pwizard-autofix-setup.php:382
7939
+ #: admin/wizard/pwizard-autofix-setup.php:735
7940
+ #: admin/wizard/pwizard-autofix-setup.php:1611
7941
+ msgid "Manually Edit the WordPress wp-config.php file"
7942
  msgstr ""
7943
 
7944
+ #: admin/wizard/pwizard-autofix-setup.php:174
7945
+ msgid "WP Super Cache (WPSC) Plugin AutoSetup Successful: "
 
 
7946
  msgstr ""
7947
 
7948
+ #: admin/wizard/pwizard-autofix-setup.php:174
7949
  msgid ""
7950
+ "Important Note: If you change any of your WP Super Cache settings at any "
7951
+ "time, re-run the Setup Wizards again."
 
 
 
7952
  msgstr ""
7953
 
7954
+ #: admin/wizard/pwizard-autofix-setup.php:275
7955
+ msgid "WP Super Cache (WPSC) Plugin AutoCleanup Successful: "
 
7956
  msgstr ""
7957
 
7958
+ #: admin/wizard/pwizard-autofix-setup.php:275
7959
+ msgid ""
7960
+ "AutoCleanup has removed all WPSC htaccess code from BPS Custom Code and your "
7961
+ "Root htaccess file if it existed. If you have WPSC installed and are still "
7962
+ "planning on using WPSC then re-run the Setup Wizards after you have "
7963
+ "activated the WPSC plugin again and resaved your WPSC plugin settings again."
7964
  msgstr ""
7965
 
7966
+ #: admin/wizard/pwizard-autofix-setup.php:322
7967
+ msgid "W3 Total Cache (W3TC) Plugin AutoSetup not required: "
7968
  msgstr ""
7969
 
7970
+ #: admin/wizard/pwizard-autofix-setup.php:322
7971
  msgid ""
7972
+ "GWIOD site types do not require AutoSetup because W3TC creates htaccess code "
7973
+ "in the site root htaccess file."
 
7974
  msgstr ""
7975
 
7976
+ #: admin/wizard/pwizard-autofix-setup.php:382
7977
+ msgid ""
7978
+ "Error: The Pre-Installation Wizard is unable to add the W3 Total Cache "
7979
+ "WP_CACHE code in your wp-config.php file."
7980
  msgstr ""
7981
 
7982
+ #: admin/wizard/pwizard-autofix-setup.php:382
7983
  msgid ""
7984
+ "A wp-config.php file was NOT found in your WordPress website root folder. If "
7985
+ "you have moved your wp-config.php file to another folder location then you "
7986
+ "will need to either move the wp-config.php file back to its default "
7987
+ "WordPress folder location and run the Pre-Installation Wizard again or "
7988
+ "manually edit your wp-config.php file and add the W3 Total Cache WP_CACHE "
7989
+ "code. Click this link for the steps to manually edit your wp-config.php "
7990
+ "file: "
7991
  msgstr ""
7992
 
7993
+ #: admin/wizard/pwizard-autofix-setup.php:501
7994
+ msgid "W3 Total Cache (W3TC) Plugin AutoSetup Successful: "
7995
  msgstr ""
7996
 
7997
+ #: admin/wizard/pwizard-autofix-setup.php:501
7998
+ msgid ""
7999
+ "Important Note: If you change any of your W3 Total Cache settings at any "
8000
+ "time, re-run the Setup Wizards again."
8001
  msgstr ""
8002
 
8003
+ #: admin/wizard/pwizard-autofix-setup.php:661
8004
+ msgid "W3 Total Cache (W3TC) Plugin AutoCleanup Successful: "
 
 
8005
  msgstr ""
8006
 
8007
+ #: admin/wizard/pwizard-autofix-setup.php:661
 
8008
  msgid ""
8009
+ "AutoCleanup has removed all W3TC htaccess code from BPS Custom Code and your "
8010
+ "Root htaccess file if it existed. If you have W3TC installed and are still "
8011
+ "planning on using W3TC then re-run the Setup Wizards after you have "
8012
+ "activated the W3TC plugin again and resaved your W3TC plugin settings again."
8013
  msgstr ""
8014
 
8015
+ #: admin/wizard/pwizard-autofix-setup.php:710
8016
+ msgid "Comet Cache Plugin AutoSetup not required: "
 
 
 
 
8017
  msgstr ""
8018
 
8019
+ #: admin/wizard/pwizard-autofix-setup.php:710
8020
+ msgid ""
8021
+ "GWIOD site types do not require AutoSetup because Comet Cache creates "
8022
+ "htaccess code in the site root htaccess file."
8023
  msgstr ""
8024
 
8025
+ #: admin/wizard/pwizard-autofix-setup.php:735
8026
+ msgid ""
8027
+ "Error: The Pre-Installation Wizard is unable to add the Comet Cache WP_CACHE "
8028
+ "code in your wp-config.php file."
8029
  msgstr ""
8030
 
8031
+ #: admin/wizard/pwizard-autofix-setup.php:735
8032
  msgid ""
8033
+ "A wp-config.php file was NOT found in your WordPress website root folder. If "
8034
+ "you have moved your wp-config.php file to another folder location then you "
8035
+ "will need to either move the wp-config.php file back to its default "
8036
+ "WordPress folder location and run the Pre-Installation Wizard again or "
8037
+ "manually edit your wp-config.php file and add the Comet Cache WP_CACHE code. "
8038
+ "Click this link for the steps to manually edit your wp-config.php file: "
8039
  msgstr ""
8040
 
8041
+ #: admin/wizard/pwizard-autofix-setup.php:912
8042
+ msgid "Comet Cache Plugin AutoSetup Successful: "
8043
  msgstr ""
8044
 
8045
+ #: admin/wizard/pwizard-autofix-setup.php:912
8046
  msgid ""
8047
+ "Important Note: If you change any of your Comet Cache settings at any time, "
8048
+ "re-run the Setup Wizards again."
8049
  msgstr ""
8050
 
8051
+ #: admin/wizard/pwizard-autofix-setup.php:1006
8052
+ msgid "Comet Cache Plugin AutoCleanup Successful: "
 
8053
  msgstr ""
8054
 
8055
+ #: admin/wizard/pwizard-autofix-setup.php:1006
8056
  msgid ""
8057
+ "AutoCleanup has removed all Comet Cache htaccess code from BPS Custom Code "
8058
+ "and your Root htaccess file if it existed. If you have Comet Cache installed "
8059
+ "and are still planning on using Comet Cache then re-run the Setup Wizards "
8060
+ "after you have activated the Comet Cache plugin again and resaved your Comet "
8061
+ "Cache plugin settings again."
8062
  msgstr ""
8063
 
8064
+ #: admin/wizard/pwizard-autofix-setup.php:1054
8065
+ msgid "Endurance Page Cache (EPC) Plugin AutoSetup not required: "
 
 
 
8066
  msgstr ""
8067
 
8068
+ #: admin/wizard/pwizard-autofix-setup.php:1054
8069
  msgid ""
8070
+ "GWIOD site types do not require AutoSetup because EPC creates htaccess code "
8071
+ "in the site root htaccess file."
8072
  msgstr ""
8073
 
8074
+ #: admin/wizard/pwizard-autofix-setup.php:1104
8075
+ msgid "Error: Endurance Page Cache (EPC) Plugin AutoSetup Unsuccessful - "
8076
  msgstr ""
8077
 
8078
+ #: admin/wizard/pwizard-autofix-setup.php:1104
8079
  msgid ""
8080
+ "The Setup Wizard did not find any Endurance Page Cache htaccess code in your "
8081
+ "Root htaccess file. Do these steps to fix the problem: Go to the BPS "
8082
+ "htaccess File Editor page, click the Unlock htaccess File button, go to the "
8083
+ "WordPress Settings > General page, scroll down to Endurance Cache settings, "
8084
+ "click the Save Changes button, go back to this Setup Wizard page and run the "
8085
+ "Pre-Installation Wizard and Setup Wizard again."
8086
  msgstr ""
8087
 
8088
+ #: admin/wizard/pwizard-autofix-setup.php:1158
8089
+ msgid "Endurance Page Cache (EPC) Plugin AutoSetup Successful: "
 
 
 
8090
  msgstr ""
8091
 
8092
+ #: admin/wizard/pwizard-autofix-setup.php:1158
8093
+ msgid ""
8094
+ "Important Note: If you disable or enable the Endurance Page Cache plugin at "
8095
+ "any time, re-run the Setup Wizards again."
8096
  msgstr ""
8097
 
8098
+ #: admin/wizard/pwizard-autofix-setup.php:1266
8099
+ msgid "Endurance Page Cache (EPC) Plugin AutoCleanup Successful: "
8100
  msgstr ""
8101
 
8102
+ #: admin/wizard/pwizard-autofix-setup.php:1266
8103
+ msgid ""
8104
+ "AutoCleanup has removed all Endurance Page Cache htaccess code from BPS "
8105
+ "Custom Code and your Root htaccess file if it existed. If you have disabled "
8106
+ "the Endurance Page Cache plugin and are still planning on using Endurance "
8107
+ "Page Cache then re-run the Setup Wizards after you have enabled the "
8108
+ "Endurance Page Cache plugin again."
8109
  msgstr ""
8110
 
8111
+ #: admin/wizard/pwizard-autofix-setup.php:1313
8112
+ msgid "WP Fastest Cache (WPFC) Plugin AutoSetup not required: "
8113
  msgstr ""
8114
 
8115
+ #: admin/wizard/pwizard-autofix-setup.php:1313
8116
  msgid ""
8117
+ "GWIOD site types do not require AutoSetup because WPFC creates htaccess code "
8118
+ "in the site root htaccess file."
8119
  msgstr ""
8120
 
8121
+ #: admin/wizard/pwizard-autofix-setup.php:1379
8122
+ msgid "Error: WP Fastest Cache (WPFC) Plugin AutoSetup Unsuccessful: "
 
 
 
 
8123
  msgstr ""
8124
 
8125
+ #: admin/wizard/pwizard-autofix-setup.php:1379
8126
  msgid ""
8127
+ "The Setup Wizard did not find any WPFC htaccess code in your Root htaccess "
8128
+ "file. Do these steps to fix the problem: Go to the BPS htaccess File Editor "
8129
+ "page, click the Unlock htaccess File button, go to the WPFC plugin Settings "
8130
+ "page, click the Submit button, go back to this Setup Wizard page and run the "
8131
+ "Pre-Installation Wizard and Setup Wizard again."
8132
  msgstr ""
8133
 
8134
+ #: admin/wizard/pwizard-autofix-setup.php:1436
8135
+ msgid "WP Fastest Cache (WPFC) Plugin AutoSetup Successful: "
 
 
8136
  msgstr ""
8137
 
8138
+ #: admin/wizard/pwizard-autofix-setup.php:1436
8139
  msgid ""
8140
+ "Important Note: If you change any of your WP Fastest Cache settings at any "
8141
+ "time, re-run the Setup Wizards again."
8142
  msgstr ""
8143
 
8144
+ #: admin/wizard/pwizard-autofix-setup.php:1540
8145
+ msgid "WP Fastest Cache (WPFC) Plugin AutoCleanup Successful: "
 
8146
  msgstr ""
8147
 
8148
+ #: admin/wizard/pwizard-autofix-setup.php:1540
8149
  msgid ""
8150
+ "AutoCleanup has removed all WPFC htaccess code from BPS Custom Code and your "
8151
+ "Root htaccess file if it existed. If you have WPFC installed and are still "
8152
+ "planning on using WPFC then re-run the Setup Wizards after you have "
8153
+ "activated the WPFC plugin again and resaved your WPFC plugin settings again."
8154
  msgstr ""
8155
 
8156
+ #: admin/wizard/pwizard-autofix-setup.php:1586
8157
+ msgid "WP Rocket Plugin AutoSetup not required: "
8158
  msgstr ""
8159
 
8160
+ #: admin/wizard/pwizard-autofix-setup.php:1586
8161
+ msgid ""
8162
+ "GWIOD site types do not require AutoSetup because WP Rocket creates htaccess "
8163
+ "code in the site root htaccess file."
8164
  msgstr ""
8165
 
8166
+ #: admin/wizard/pwizard-autofix-setup.php:1611
8167
+ msgid ""
8168
+ "Error: The Pre-Installation Wizard is unable to add the WP Rocket WP_CACHE "
8169
+ "code in your wp-config.php file."
8170
  msgstr ""
8171
 
8172
+ #: admin/wizard/pwizard-autofix-setup.php:1611
8173
  msgid ""
8174
+ "A wp-config.php file was NOT found in your WordPress website root folder. If "
8175
+ "you have moved your wp-config.php file to another folder location then you "
8176
+ "will need to either move the wp-config.php file back to its default "
8177
+ "WordPress folder location and run the Pre-Installation Wizard again or "
8178
+ "manually edit your wp-config.php file and add the WP Rocket WP_CACHE code. "
8179
+ "Click this link for the steps to manually edit your wp-config.php file: "
8180
  msgstr ""
8181
 
8182
+ #: admin/wizard/pwizard-autofix-setup.php:1714
8183
+ msgid "WP Rocket Plugin AutoSetup Successful: "
 
 
8184
  msgstr ""
8185
 
8186
+ #: admin/wizard/pwizard-autofix-setup.php:1714
8187
  msgid ""
8188
+ "Important Note: If you change any of your WP Rocket settings at any time, re-"
8189
+ "run the Setup Wizards again."
8190
  msgstr ""
8191
 
8192
+ #: admin/wizard/pwizard-autofix-setup.php:1808
8193
+ msgid "WP Rocket Plugin AutoCleanup Successful: "
 
 
8194
  msgstr ""
8195
 
8196
+ #: admin/wizard/pwizard-autofix-setup.php:1808
8197
  msgid ""
8198
+ "AutoCleanup has removed all WP Rocket htaccess code from BPS Custom Code and "
8199
+ "your Root htaccess file if it existed. If you have WP Rocket installed and "
8200
+ "are still planning on using WP Rocket then re-run the Setup Wizards after "
8201
+ "you have activated the WP Rocket plugin again and resaved your WP Rocket "
8202
+ "plugin settings again."
8203
  msgstr ""
8204
 
8205
+ #: admin/wizard/pwizard-autofix.php:65
8206
+ msgid "Jetpack Plugin Request Methods AutoWhitelist successful"
 
 
 
 
8207
  msgstr ""
8208
 
8209
+ #: admin/wizard/pwizard-autofix.php:79
8210
+ msgid "Marmoset Viewer Plugin Request Methods AutoWhitelist successful"
8211
  msgstr ""
8212
 
8213
+ #: admin/wizard/pwizard-autofix.php:93
8214
+ msgid "BackWPup Plugin Request Methods AutoWhitelist successful"
8215
+ msgstr ""
8216
+
8217
+ #: admin/wizard/pwizard-autofix.php:107
8218
  msgid ""
8219
+ "MailPoet Newsletters (wysija newsletters) Plugin Request Methods "
8220
+ "AutoWhitelist successful"
 
8221
  msgstr ""
8222
 
8223
+ #: admin/wizard/pwizard-autofix.php:121
8224
+ msgid "BackUpWordPress Plugin Request Methods AutoWhitelist successful"
8225
  msgstr ""
8226
 
8227
+ #: admin/wizard/pwizard-autofix.php:135
8228
+ msgid "Broken Link Checker Plugin Request Methods AutoWhitelist successful"
 
 
 
8229
  msgstr ""
8230
 
8231
+ #: admin/wizard/pwizard-autofix.php:149
8232
+ msgid "MailChimp for WordPress Plugin Request Methods AutoWhitelist successful"
 
 
8233
  msgstr ""
8234
 
8235
+ #: admin/wizard/pwizard-autofix.php:252
8236
+ msgid "WooCommerce Plugin skip/bypass rule AutoWhitelist successful"
 
 
8237
  msgstr ""
8238
 
8239
+ #: admin/wizard/pwizard-autofix.php:277
8240
+ msgid "Simple Lightbox Plugin skip/bypass rule AutoWhitelist successful"
8241
+ msgstr ""
8242
+
8243
+ #: admin/wizard/pwizard-autofix.php:295
8244
  msgid ""
8245
+ "WPBakery Visual Composer Plugin skip/bypass rule AutoWhitelist successful"
 
8246
  msgstr ""
8247
 
8248
+ #: admin/wizard/pwizard-autofix.php:313
8249
  msgid ""
8250
+ "Event Espresso Attendee Mover Plugin skip/bypass rule AutoWhitelist "
8251
+ "successful"
8252
  msgstr ""
8253
 
8254
+ #: admin/wizard/pwizard-autofix.php:331
8255
+ msgid "WP Rocket Plugin skip/bypass rule AutoWhitelist successful"
 
 
8256
  msgstr ""
8257
 
8258
+ #: admin/wizard/pwizard-autofix.php:349
8259
+ msgid "Easy Media Gallery Pro Plugin skip/bypass rule AutoWhitelist successful"
8260
  msgstr ""
8261
 
8262
+ #: admin/wizard/pwizard-autofix.php:367
8263
  msgid ""
8264
+ "Nextend Facebook Connect Plugin skip/bypass rule AutoWhitelist successful"
 
 
 
8265
  msgstr ""
8266
 
8267
+ #: admin/wizard/pwizard-autofix.php:385
8268
+ msgid "Shashin Plugin skip/bypass rule AutoWhitelist successful"
 
 
8269
  msgstr ""
8270
 
8271
+ #: admin/wizard/pwizard-autofix.php:402
8272
+ msgid "Nocturnal Theme skip/bypass rule AutoWhitelist successful"
 
8273
  msgstr ""
8274
 
8275
+ #: admin/wizard/pwizard-autofix.php:420
8276
+ msgid "Shopp Plugin skip/bypass rule AutoWhitelist successful"
 
 
 
 
 
8277
  msgstr ""
8278
 
8279
+ #: admin/wizard/pwizard-autofix.php:438
 
8280
  msgid ""
8281
+ "WP-Invoice - Web Invoice and Billing Plugin skip/bypass rule AutoWhitelist "
8282
+ "successful"
8283
  msgstr ""
8284
 
8285
+ #: admin/wizard/pwizard-autofix.php:456
8286
+ msgid "wp-greet Plugin skip/bypass rule AutoWhitelist successful"
8287
  msgstr ""
8288
 
8289
+ #: admin/wizard/pwizard-autofix.php:474
8290
+ msgid "WP Juicebox Plugin skip/bypass rule AutoWhitelist successful"
8291
+ msgstr ""
8292
+
8293
+ #: admin/wizard/pwizard-autofix.php:492
8294
+ msgid "Prayer Engine Plugin skip/bypass rule AutoWhitelist successful"
8295
+ msgstr ""
8296
+
8297
+ #: admin/wizard/pwizard-autofix.php:510
8298
+ msgid "Appointment Calendar Plugin skip/bypass rule AutoWhitelist successful"
8299
+ msgstr ""
8300
+
8301
+ #: admin/wizard/pwizard-autofix.php:528
8302
+ msgid "ThirstyAffiliates Plugin skip/bypass rule AutoWhitelist successful"
8303
+ msgstr ""
8304
+
8305
+ #: admin/wizard/pwizard-autofix.php:546
8306
  msgid ""
8307
+ "WooCommerce Ogone Payment Gateway Plugin skip/bypass rule AutoWhitelist "
8308
+ "successful"
8309
  msgstr ""
8310
 
8311
+ #: admin/wizard/pwizard-autofix.php:563
8312
  msgid ""
8313
+ "OIOpublisher Ad Manager Plugin skip/bypass rule AutoWhitelist successful"
8314
+ msgstr ""
8315
+
8316
+ #: admin/wizard/pwizard-autofix.php:691
8317
+ msgid "PDF Viewer (Envigeek Web Services) Plugin RFI AutoWhitelist successful"
8318
+ msgstr ""
8319
+
8320
+ #: admin/wizard/pwizard-autofix.php:705
8321
+ msgid "Marmoset Viewer Plugin RFI AutoWhitelist successful"
8322
  msgstr ""
8323
 
8324
+ #: admin/wizard/pwizard-autofix.php:719
8325
  msgid ""
8326
+ "PDF viewer for WordPress (ThemeNcode code canyon) Plugin RFI AutoWhitelist "
8327
+ "successful"
8328
  msgstr ""
8329
 
8330
+ #: admin/wizard/pwizard-autofix.php:733
8331
+ msgid "jupdf pdf viewer Plugin RFI AutoWhitelist successful"
8332
  msgstr ""
8333
 
8334
+ #: admin/wizard/pwizard-autofix.php:747
8335
+ msgid "UserPro (code canyon) Plugin RFI AutoWhitelist successful"
8336
  msgstr ""
8337
 
8338
+ #: admin/wizard/pwizard-autofix.php:760
8339
+ msgid "NativeChurch Theme RFI AutoWhitelist successful"
8340
  msgstr ""
8341
 
8342
+ #: admin/wizard/pwizard-autofix.php:774
8343
+ msgid "User Avatar (CTLT DEV) Plugin RFI AutoWhitelist successful"
8344
  msgstr ""
8345
 
8346
+ #: admin/wizard/pwizard-autofix.php:787
8347
+ msgid "OIOpublisher Ad Manager Plugin RFI AutoWhitelist successful"
8348
  msgstr ""
8349
 
8350
+ #: admin/wizard/pwizard-autofix.php:801
8351
+ msgid "Digital Access Pass (DAP) Plugin RFI AutoWhitelist successful"
8352
  msgstr ""
8353
 
8354
+ #: admin/wizard/pwizard-autofix.php:814
8355
+ msgid "Easy Pagination (code canyon) Plugin RFI AutoWhitelist successful"
8356
  msgstr ""
8357
 
8358
+ #: admin/wizard/pwizard-autofix.php:827
8359
+ msgid "iTheme2 Theme RFI AutoWhitelist successful"
8360
  msgstr ""
8361
 
8362
+ #: admin/wizard/pwizard-autofix.php:840
8363
+ msgid "SmoothV4.1 Theme RFI AutoWhitelist successful"
 
8364
  msgstr ""
8365
 
8366
+ #: admin/wizard/pwizard-autofix.php:992
8367
+ msgid "WooCommerce PagSeguro Plugin BPSQSE AutoWhitelist successful"
8368
  msgstr ""
8369
 
8370
+ #: admin/wizard/pwizard-autofix.php:1010
8371
+ msgid "Event Espresso Plugin BPSQSE AutoWhitelist successful"
8372
  msgstr ""
8373
 
8374
+ #: admin/wizard/pwizard-autofix.php:1025
8375
+ msgid "WooCommerce Serial Key Plugin BPSQSE AutoWhitelist successful"
8376
  msgstr ""
8377
 
8378
+ #: admin/wizard/pwizard-autofix.php:1041
8379
+ msgid "WooCommerce WorldPay Extension BPSQSE AutoWhitelist successful"
8380
  msgstr ""
8381
 
8382
+ #: admin/wizard/pwizard-autofix.php:1057
8383
+ msgid "Kama Click Counter Plugin BPSQSE AutoWhitelist successful"
8384
+ msgstr ""
8385
+
8386
+ #: admin/wizard/pwizard-autofix.php:1073
8387
+ msgid "Riva Slider Pro Plugin BPSQSE AutoWhitelist successful"
8388
+ msgstr ""
8389
+
8390
+ #: admin/wizard/pwizard-autofix.php:1089
8391
+ msgid "WordPress Auto Spinner Plugin BPSQSE AutoWhitelist successful"
8392
+ msgstr ""
8393
+
8394
+ #: admin/wizard/pwizard-autofix.php:1104
8395
+ msgid "AgriTurismo Theme BPSQSE AutoWhitelist successful"
8396
+ msgstr ""
8397
+
8398
+ #: admin/wizard/pwizard-autofix.php:1120
8399
+ msgid "WP Content Copy Protection Pro Plugin BPSQSE AutoWhitelist successful"
8400
+ msgstr ""
8401
+
8402
+ #: admin/wizard/pwizard-autofix.php:1136
8403
+ msgid "PanoPress Plugin BPSQSE AutoWhitelist successful"
8404
+ msgstr ""
8405
+
8406
+ #: admin/wizard/pwizard-autofix.php:1152
8407
  msgid ""
8408
+ "Easy Social Share Buttons (Code Canyon) Plugin BPSQSE AutoWhitelist "
8409
+ "successful"
8410
  msgstr ""
8411
 
8412
+ #: admin/wizard/pwizard-autofix.php:1168
8413
+ msgid "MainWP Plugin BPSQSE AutoWhitelist successful"
8414
  msgstr ""
8415
 
8416
+ #: admin/wizard/pwizard-autofix.php:1183
8417
+ msgid "Clever Course Theme BPSQSE AutoWhitelist successful"
8418
  msgstr ""
8419
 
8420
+ #: admin/wizard/pwizard-autofix.php:1199
8421
+ msgid ""
8422
+ "WP eStore (WP Cart for Digital Products) Plugin BPSQSE AutoWhitelist "
8423
+ "successful"
8424
  msgstr ""
8425
 
8426
+ #: admin/wizard/pwizard-autofix.php:1215
8427
+ msgid "WP eMember Plugin BPSQSE AutoWhitelist successful"
8428
  msgstr ""
8429
 
8430
+ #: admin/wizard/pwizard-autofix.php:1231
8431
+ msgid "Easy Digital Downloads Plugin BPSQSE AutoWhitelist successful"
8432
  msgstr ""
8433
 
8434
+ #: admin/wizard/pwizard-autofix.php:1247
8435
  msgid ""
8436
+ "MailPoet Newsletters (wysija newsletters) Plugin BPSQSE AutoWhitelist "
8437
+ "successful"
8438
  msgstr ""
8439
 
8440
+ #: admin/wizard/pwizard-autofix.php:1263
8441
+ msgid "MailChimp for WordPress Plugin BPSQSE AutoWhitelist successful"
8442
  msgstr ""
8443
 
8444
+ #: admin/wizard/pwizard-autofix.php:1279
8445
+ msgid "Digital Access Pass (DAP) Plugin BPSQSE AutoWhitelist successful"
8446
  msgstr ""
8447
 
8448
+ #: admin/wizard/pwizard-autofix.php:1295
8449
+ msgid "WordPress Newsletter (tribulant) Plugin BPSQSE AutoWhitelist successful"
8450
  msgstr ""
8451
 
8452
+ #: admin/wizard/pwizard-autofix.php:1399
8453
+ msgid ""
8454
+ "WooCommerce Product Feed Pro Plugin wp-admin skip/bypass rule AutoWhitelist "
8455
+ "successful"
8456
  msgstr ""
8457
 
8458
+ #: admin/wizard/pwizard-autofix.php:1417
8459
+ msgid ""
8460
+ "WPBakery Visual Composer Plugin wp-admin skip/bypass rule AutoWhitelist "
8461
+ "successful"
8462
  msgstr ""
8463
 
8464
+ #: admin/wizard/pwizard-autofix.php:1435
8465
+ msgid ""
8466
+ "Bookly Booking Plugin wp-admin skip/bypass rule AutoWhitelist successful"
8467
  msgstr ""
8468
 
8469
+ #: admin/wizard/pwizard-autofix.php:1453
8470
  msgid ""
8471
+ "Easy Media Gallery Pro Plugin wp-admin skip/bypass rule AutoWhitelist "
8472
+ "successful"
 
 
 
 
 
8473
  msgstr ""
8474
 
8475
+ #: admin/wizard/pwizard-autofix.php:1471
8476
  msgid ""
8477
+ "NextGen Gallery Plugin wp-admin skip/bypass rule AutoWhitelist successful"
8478
+ msgstr ""
8479
+
8480
+ #: admin/wizard/pwizard-autofix.php:1488
8481
+ msgid "OptimizePress Theme wp-admin skip/bypass rule AutoWhitelist successful"
8482
  msgstr ""
8483
 
8484
+ #: admin/wizard/pwizard-autofix.php:1506
8485
  msgid ""
8486
+ "tribulant Shopping Cart (WP Checkout) Plugin wp-admin skip/bypass rule "
8487
+ "AutoWhitelist successful"
8488
  msgstr ""
8489
 
8490
+ #: admin/wizard/pwizard-autofix.php:1524
8491
  msgid ""
8492
+ "ithemes Video Showcase Plugin wp-admin skip/bypass rule AutoWhitelist "
8493
+ "successful"
 
8494
  msgstr ""
8495
 
8496
+ #: admin/wizard/pwizard-autofix.php:1542
8497
  msgid ""
8498
+ "WP-Invoice - Web Invoice and Billing Plugin wp-admin skip/bypass rule "
8499
+ "AutoWhitelist successful"
8500
  msgstr ""
8501
 
8502
+ #: admin/wizard/pwizard-autofix.php:1560
8503
+ msgid "Yoast SEO Plugin wp-admin skip/bypass rule AutoWhitelist successful"
8504
  msgstr ""
8505
 
8506
+ #: admin/wizard/pwizard-autofix.php:1577
8507
+ msgid ""
8508
+ "Formidable Pro Plugin wp-admin skip/bypass rule AutoWhitelist successful"
8509
  msgstr ""
8510
 
8511
+ #: admin/wizard/pwizard-autofix.php:1595
8512
  msgid ""
8513
+ "Google Typography Plugin wp-admin skip/bypass rule AutoWhitelist successful"
 
8514
  msgstr ""
8515
 
8516
+ #: admin/wizard/pwizard-autofix.php:1613
8517
+ msgid "Flare Plugin wp-admin skip/bypass rule AutoWhitelist successful"
8518
  msgstr ""
8519
 
8520
+ #: admin/wizard/pwizard-autofix.php:1631
8521
+ msgid "bbPress Plugin wp-admin skip/bypass rule AutoWhitelist successful"
8522
  msgstr ""
8523
 
8524
+ #: admin/wizard/pwizard-autofix.php:1649
8525
+ msgid ""
8526
+ "Spider Event Calendar (WordPress Event Calendar) Plugin wp-admin skip/bypass "
8527
+ "rule AutoWhitelist successful"
8528
  msgstr ""
8529
 
8530
+ #: admin/wizard/pwizard-autofix.php:1671
8531
+ msgid "BuddyPress Plugin wp-admin skip/bypass rule AutoWhitelist successful"
8532
  msgstr ""
8533
 
8534
+ #: admin/wizard/pwizard-autofix.php:1691
8535
  msgid ""
8536
+ "WPML Translation Management Plugin wp-admin skip/bypass rule AutoWhitelist "
8537
+ "successful"
 
 
 
8538
  msgstr ""
8539
 
8540
+ #: admin/wizard/pwizard-autofix.php:1709
8541
+ msgid ""
8542
+ "Events Manager Plugin wp-admin skip/bypass rule AutoWhitelist successful"
8543
  msgstr ""
8544
 
8545
+ #: admin/wizard/pwizard-autofix.php:1727
8546
+ msgid ""
8547
+ "MailPoet Newsletters (wysija newsletters) Plugin wp-admin skip/bypass rule "
8548
+ "AutoWhitelist successful"
8549
  msgstr ""
8550
 
8551
+ #: admin/wizard/pwizard-autofix.php:1747
8552
  msgid ""
8553
+ "Event Espresso Plugin wp-admin skip/bypass rule AutoWhitelist successful"
 
 
 
8554
  msgstr ""
8555
 
8556
+ #: admin/wizard/pwizard-autofix.php:1764
8557
+ msgid "Content Egg Plugin wp-admin skip/bypass rule AutoWhitelist successful"
8558
+ msgstr ""
8559
+
8560
+ #: admin/wizard/pwizard-autofix.php:1882
8561
+ msgid "Content Egg Plugin wp-admin BPSQSE AutoWhitelist successful"
8562
+ msgstr ""
8563
+
8564
+ #: admin/wizard/pwizard-autofix.php:1900
8565
+ msgid "Event Espresso Plugin wp-admin BPSQSE AutoWhitelist successful"
8566
  msgstr ""
8567
 
8568
+ #: admin/wizard/pwizard-autofix.php:1915
8569
  msgid ""
8570
+ "Open Web Analytics (github) Plugin wp-admin BPSQSE AutoWhitelist successful"
 
 
8571
  msgstr ""
8572
 
8573
+ #: admin/wizard/pwizard-autofix.php:1931
8574
+ msgid "UberGrid (code canyon) Plugin wp-admin BPSQSE AutoWhitelist successful"
8575
  msgstr ""
8576
 
8577
+ #: admin/wizard/wizard-backup.php:187 admin/wizard/wizard-backup.php:221
8578
  msgid ""
8579
+ "Custom additional htaccess code was found in your current root htaccess "
8580
+ "file. Your root htaccess file has been backed up and zipped in this zip "
8581
+ "file: /bulletproof-security/admin/wizard/root-htaccess-file.zip. Click the "
8582
+ "Download Root htaccess File button to download your root-htaccess-file.zip "
8583
+ "file to your computer."
 
 
 
 
 
 
 
8584
  msgstr ""
8585
 
8586
+ #: admin/wizard/wizard-backup.php:187 admin/wizard/wizard-backup.php:221
8587
+ msgid "Click this forum link: "
8588
+ msgstr ""
8589
+
8590
+ #: admin/wizard/wizard-backup.php:187 admin/wizard/wizard-backup.php:221
8591
+ msgid "Setup Wizard Root htaccess File Backup"
8592
+ msgstr ""
8593
+
8594
+ #: admin/wizard/wizard-backup.php:187 admin/wizard/wizard-backup.php:221
8595
+ msgid " for help information about what this means and what to do."
8596
  msgstr ""
8597
 
8598
+ #: admin/wizard/wizard-backup.php:187 admin/wizard/wizard-backup.php:221
8599
  msgid ""
8600
+ " and select the Zip File Download Fix On setting for the Zile File Download "
8601
+ "Fix option. You should now be able to download the root-htaccess-file.zip "
8602
+ "file."
 
 
 
 
 
 
 
 
 
 
8603
  msgstr ""
8604
 
8605
+ #: admin/wizard/wizard-backup.php:187 admin/wizard/wizard-backup.php:221
8606
+ msgid "Download Root htaccess File"
8607
  msgstr ""
8608
 
8609
+ #: admin/wizard/wizard-functions.php:42
8610
+ msgid ""
8611
+ "htaccess Files Disabled: Existing BPS htaccess files have been deleted and "
8612
+ "new BPS htaccess files will not be created. All BPS htaccess features are "
8613
+ "disabled."
8614
+ msgstr ""
8615
+
8616
+ #: admin/wizard/wizard-functions.php:106
8617
+ msgid "The secure.htaccess Root Master htaccess file was created successfully."
8618
+ msgstr ""
8619
+
8620
+ #: admin/wizard/wizard-functions.php:106
8621
+ msgid "Root Folder BulletProof Mode activated successfully."
8622
  msgstr ""
8623
 
8624
+ #: admin/wizard/wizard-functions.php:108
8625
  msgid ""
8626
+ "Error: The secure.htaccess Root Master htaccess file and root .htaccess file "
8627
+ "cannot be created. Root Folder BulletProof Mode has NOT been activated."
8628
  msgstr ""
8629
 
8630
+ #: admin/wizard/wizard-functions.php:108 admin/wizard/wizard-functions.php:628
8631
+ #: admin/wizard/wizard-functions.php:721
8632
+ msgid ""
8633
+ "If your Server configuration is DSO you must first make some one-time manual "
8634
+ "changes to your website before running the Setup Wizard. Please click this "
8635
+ "Forum Link for instructions: "
8636
  msgstr ""
8637
 
8638
+ #: admin/wizard/wizard-functions.php:108 admin/wizard/wizard-functions.php:628
8639
+ #: admin/wizard/wizard-functions.php:721 admin/wizard/wizard.php:237
8640
+ #: admin/wizard/wizard.php:302 admin/wizard/wizard.php:308
8641
+ #: admin/wizard/wizard.php:314 admin/wizard/wizard.php:320
8642
+ #: admin/wizard/wizard.php:326
8643
+ msgid "DSO Setup Steps"
8644
  msgstr ""
8645
 
8646
+ #: admin/wizard/wizard-functions.php:507
8647
+ msgid " Root .htaccess File backup Successful!"
8648
  msgstr ""
8649
 
8650
+ #: admin/wizard/wizard-functions.php:517
8651
+ msgid "Error: PHP/php.ini handler htaccess code check"
8652
  msgstr ""
8653
 
8654
+ #: admin/wizard/wizard-functions.php:517
8655
+ msgid ""
8656
+ "PHP/php.ini handler htaccess code was found in your root .htaccess file, but "
8657
+ "was NOT found in BPS Custom Code. A new root .htaccess file was NOT created "
8658
+ "to prevent a possible problem occurring on your website. Click this Forum "
8659
+ "Link "
8660
  msgstr ""
8661
 
8662
+ #: admin/wizard/wizard-functions.php:517
8663
+ msgid "Add PHP/php.ini handler htaccess code to BPS Custom Code"
8664
  msgstr ""
8665
 
8666
+ #: admin/wizard/wizard-functions.php:517
8667
+ msgid ""
8668
+ " for instructions on how to copy your PHP/php.ini handler htaccess code to "
8669
+ "BPS Custom Code."
8670
  msgstr ""
8671
 
8672
+ #: admin/wizard/wizard-functions.php:556 admin/wizard/wizard-functions.php:585
8673
  msgid ""
8674
+ "Root .htaccess File writing completed. File Locked with 404 file permissions."
 
 
 
8675
  msgstr ""
8676
 
8677
+ #: admin/wizard/wizard-functions.php:560 admin/wizard/wizard-functions.php:589
8678
+ msgid ""
8679
+ "Root .htaccess File writing completed. File Locked with 444 file permissions."
8680
  msgstr ""
8681
 
8682
+ #: admin/wizard/wizard-functions.php:607 admin/wizard/wizard-functions.php:616
8683
+ #: admin/wizard/wizard-functions.php:815 admin/wizard/wizard.php:593
8684
+ #: admin/wizard/wizard.php:612 admin/wizard/wizard.php:671
8685
+ #: admin/wizard/wizard.php:707
8686
+ msgid " DB Option created or updated Successfully!"
8687
+ msgstr ""
8688
+
8689
+ #: admin/wizard/wizard-functions.php:626
8690
  msgid ""
8691
+ "The wpadmin-secure.htaccess wp-admin Master htaccess file was created "
8692
+ "successfully."
8693
+ msgstr ""
8694
+
8695
+ #: admin/wizard/wizard-functions.php:626
8696
+ msgid "wp-admin Folder BulletProof Mode activated successfully."
8697
+ msgstr ""
8698
+
8699
+ #: admin/wizard/wizard-functions.php:628
8700
+ msgid ""
8701
+ "Error: The wpadmin-secure.htaccess wp-admin Master htaccess file and wp-"
8702
+ "admin .htaccess file cannot be created. wp-admin Folder BulletProof Mode has "
8703
+ "NOT been activated."
8704
+ msgstr ""
8705
+
8706
+ #: admin/wizard/wizard-functions.php:634
8707
+ msgid ""
8708
+ "Go Daddy Managed WordPress Hosting option is set to Yes or Enable|Disable wp-"
8709
+ "admin BulletProof Mode option is set to disabled. GDMW hosting does not "
8710
+ "allow wp-admin htaccess files."
8711
+ msgstr ""
8712
+
8713
+ #: admin/wizard/wizard-functions.php:658
8714
+ msgid " wp-admin .htaccess File backup Successful!"
8715
+ msgstr ""
8716
+
8717
+ #: admin/wizard/wizard-functions.php:719
8718
+ msgid "The default.htaccess Master htaccess file was created successfully."
8719
+ msgstr ""
8720
+
8721
+ #: admin/wizard/wizard-functions.php:721
8722
+ msgid "Error: The default.htaccess Master htaccess file cannot be created."
8723
+ msgstr ""
8724
+
8725
+ #: admin/wizard/wizard-functions.php:816 admin/wizard/wizard.php:435
8726
+ msgid " Folder created Successfully!"
8727
+ msgstr ""
8728
+
8729
+ #: admin/wizard/wizard-functions.php:913
8730
+ msgid ""
8731
+ "Security Log User Agent Filter Check Successful! 0 User Agent Filters to "
8732
+ "update."
8733
+ msgstr ""
8734
+
8735
+ #: admin/wizard/wizard-functions.php:923
8736
+ msgid "Security Log User Agent Filter "
8737
+ msgstr ""
8738
+
8739
+ #: admin/wizard/wizard-functions.php:923
8740
+ msgid " created or updated Successfully!"
8741
+ msgstr ""
8742
+
8743
+ #: admin/wizard/wizard.php:161
8744
+ msgid ""
8745
+ "Pass! PHP/php.ini handler htaccess code check: Not in use, required or "
8746
+ "needed for your website/Server"
8747
+ msgstr ""
8748
+
8749
+ #: admin/wizard/wizard.php:166
8750
+ msgid ""
8751
+ "Pass! PHP/php.ini handler htaccess code was found in your root .htaccess "
8752
+ "file AND in BPS Pro Custom Code"
8753
+ msgstr ""
8754
+
8755
+ #: admin/wizard/wizard.php:176
8756
+ msgid ""
8757
+ "Wordfence PHP/php.ini handler htaccess code was found in your root .htaccess "
8758
+ "file, but was NOT found in BPS Custom Code. "
8759
+ msgstr ""
8760
+
8761
+ #: admin/wizard/wizard.php:176 includes/hud-dismiss-functions.php:341
8762
+ msgid ""
8763
+ " for the steps to fix this Wordfence problem before running the Setup Wizard."
8764
+ msgstr ""
8765
+
8766
+ #: admin/wizard/wizard.php:189
8767
+ msgid ""
8768
+ "Pass! PHP/php.ini handler root htaccess code added/created in BPS Pro Custom "
8769
+ "Code"
8770
+ msgstr ""
8771
+
8772
+ #: admin/wizard/wizard.php:210 admin/wizard/wizard.php:357
8773
+ msgid " DB Table created Successfully!"
8774
+ msgstr ""
8775
+
8776
+ #: admin/wizard/wizard.php:213 admin/wizard/wizard.php:360
8777
+ msgid "Error: Unable to create DB Table "
8778
+ msgstr ""
8779
+
8780
+ #: admin/wizard/wizard.php:217
8781
+ msgid "Setup Wizard Pre-Installation Checks:"
8782
+ msgstr ""
8783
+
8784
+ #: admin/wizard/wizard.php:218
8785
+ msgid ""
8786
+ "If you see any Red font or Blue font messages displayed below, click the "
8787
+ "Read Me help button above and read the \"Notes\" help section before "
8788
+ "clicking the Setup Wizard button."
8789
+ msgstr ""
8790
+
8791
+ #: admin/wizard/wizard.php:224
8792
+ msgid "Compatibility & Basic Checks"
8793
+ msgstr ""
8794
+
8795
+ #: admin/wizard/wizard.php:228
8796
+ msgid ""
8797
+ "Pass! Compatible Server Configuration: Server API: CGI | WP Filesystem API "
8798
+ "Method: direct."
8799
+ msgstr ""
8800
+
8801
+ #: admin/wizard/wizard.php:231
8802
+ msgid ""
8803
+ "Pass! Compatible Server Configuration: Server Type Apache: XAMPP, WAMP, MAMP "
8804
+ "or LAMP | WP Filesystem API Method: direct."
8805
+ msgstr ""
8806
+
8807
+ #: admin/wizard/wizard.php:234
8808
+ msgid ""
8809
+ "Pass! Compatible Server Configuration: Server API: DSO | WP Filesystem API "
8810
+ "Method: direct."
8811
+ msgstr ""
8812
+
8813
+ #: admin/wizard/wizard.php:237
8814
+ msgid ""
8815
+ "Server API: Apache DSO Server Configuration | WP Filesystem API Method: "
8816
+ msgstr ""
8817
+
8818
+ #: admin/wizard/wizard.php:237
8819
+ msgid ""
8820
+ "Your Server type is DSO and the WP Filesystem API Method is NOT \"direct\". "
8821
+ "You can use the Setup Wizard, but you must first make some one-time manual "
8822
+ "changes to your website before running the Setup Wizard. Please click this "
8823
+ "Forum Link for instructions: "
8824
+ msgstr ""
8825
+
8826
+ #: admin/wizard/wizard.php:250 admin/wizard/wizard.php:253
8827
+ msgid "Pass! PHP Configuration Memory Limit is set to: "
8828
+ msgstr ""
8829
+
8830
+ #: admin/wizard/wizard.php:253
8831
+ msgid ""
8832
+ "It is recommended that you increase your memory limit to at least 128M. "
8833
+ "Contact your Web Host and ask them to increase your memory limit to the "
8834
+ "maximum memory limit setting allowed by your Host."
8835
+ msgstr ""
8836
+
8837
+ #: admin/wizard/wizard.php:256
8838
+ msgid "Error: Your PHP Configuration Memory Limit is set to: "
8839
+ msgstr ""
8840
+
8841
+ #: admin/wizard/wizard.php:256
8842
+ msgid ""
8843
+ "WordPress needs a bare minimum Memory Limit setting of 64M to perform well. "
8844
+ "Contact your Web Host and ask them to increase your memory limit to the "
8845
+ "maximum memory limit setting allowed by your Host."
8846
+ msgstr ""
8847
+
8848
+ #: admin/wizard/wizard.php:267 includes/functions.php:1076
8849
+ msgid ""
8850
+ "mod_authz_core is Loaded|Order, Allow, Deny directives are supported|BC: Yes|"
8851
+ "IfModule: Yes"
8852
+ msgstr ""
8853
+
8854
+ #: admin/wizard/wizard.php:274
8855
+ msgid ""
8856
+ "Enable|Disable htaccess Files Option set to Enabled: mod_access_compat "
8857
+ "htaccess files will be created."
8858
+ msgstr ""
8859
+
8860
+ #: admin/wizard/wizard.php:276 includes/functions.php:1061
8861
+ msgid ""
8862
+ "mod_access_compat is Loaded|Order, Allow, Deny directives are supported|"
8863
+ "IfModule: No"
8864
+ msgstr ""
8865
+
8866
+ #: admin/wizard/wizard.php:280
8867
+ msgid ""
8868
+ "Enable|Disable htaccess Files Option set to Disabled: All BPS htaccess "
8869
+ "features will be disabled."
8870
+ msgstr ""
8871
+
8872
+ #: admin/wizard/wizard.php:300 admin/wizard/wizard.php:306
8873
+ #: admin/wizard/wizard.php:312 admin/wizard/wizard.php:318
8874
+ #: admin/wizard/wizard.php:324
8875
+ msgid "Pass! The "
8876
+ msgstr ""
8877
+
8878
+ #: admin/wizard/wizard.php:300 admin/wizard/wizard.php:306
8879
+ msgid " Folder is writable."
8880
+ msgstr ""
8881
+
8882
+ #: admin/wizard/wizard.php:302 admin/wizard/wizard.php:308
8883
+ msgid ""
8884
+ " Folder is NOT writable. If your Server type is DSO and the WP Filesystem "
8885
+ "API Method is NOT \"direct\" you can use the Setup Wizard, but you must "
8886
+ "first make some one-time manual changes to your website before running the "
8887
+ "Setup Wizard. Please click this Forum Link for instructions: "
8888
+ msgstr ""
8889
+
8890
+ #: admin/wizard/wizard.php:302 admin/wizard/wizard.php:308
8891
+ msgid ""
8892
+ " If your Server type is CGI check the folder permissions. Folder permissions "
8893
+ "should be either 755 or 705."
8894
+ msgstr ""
8895
+
8896
+ #: admin/wizard/wizard.php:312 admin/wizard/wizard.php:318
8897
+ #: admin/wizard/wizard.php:324
8898
+ msgid " File is writable."
8899
+ msgstr ""
8900
+
8901
+ #: admin/wizard/wizard.php:314 admin/wizard/wizard.php:320
8902
+ #: admin/wizard/wizard.php:326
8903
+ msgid ""
8904
+ " File is NOT writable. If your Server type is DSO and the WP Filesystem API "
8905
+ "Method is NOT \"direct\" you can use the Setup Wizard, but you must first "
8906
+ "make some one-time manual changes to your website before running the Setup "
8907
+ "Wizard. Please click this Forum Link for instructions: "
8908
+ msgstr ""
8909
+
8910
+ #: admin/wizard/wizard.php:314 admin/wizard/wizard.php:320
8911
+ #: admin/wizard/wizard.php:326
8912
+ msgid ""
8913
+ " If your Server type is CGI check the file permissions. File permissions "
8914
+ "should be either 644 or 604."
8915
+ msgstr ""
8916
+
8917
+ #: admin/wizard/wizard.php:380
8918
+ msgid "BPS Setup Verification & Error Checks"
8919
+ msgstr ""
8920
+
8921
+ #: admin/wizard/wizard.php:382
8922
+ msgid ""
8923
+ "If you see all Green font messages displayed below, the Setup Wizard setup "
8924
+ "completed successfully."
8925
+ msgstr ""
8926
+
8927
+ #: admin/wizard/wizard.php:382
8928
+ msgid ""
8929
+ "If you see any Red font or Blue font messages displayed below, click the "
8930
+ "Read Me help button above and read the \"Notes\" help section."
8931
+ msgstr ""
8932
+
8933
+ #: admin/wizard/wizard.php:382
8934
+ msgid ""
8935
+ "Click the Read Me help button above for a list of recommended BPS Video "
8936
+ "Tutorials to watch."
8937
+ msgstr ""
8938
+
8939
+ #: admin/wizard/wizard.php:389 admin/wizard/wizard.php:968
8940
+ msgid "AutoFix (AutoWhitelist|AutoSetup|AutoCleanup)"
8941
+ msgstr ""
8942
+
8943
+ #: admin/wizard/wizard.php:409
8944
+ msgid "BulletProof Security Database Tables Setup"
8945
+ msgstr ""
8946
+
8947
+ #: admin/wizard/wizard.php:432
8948
+ msgid "BulletProof Security Core Folders Setup"
8949
+ msgstr ""
8950
+
8951
+ #: admin/wizard/wizard.php:436
8952
+ msgid "Error: Unable to create Folder "
8953
+ msgstr ""
8954
+
8955
+ #: admin/wizard/wizard.php:458
8956
+ msgid "BulletProof Security Core Files Setup"
8957
+ msgstr ""
8958
+
8959
+ #: admin/wizard/wizard.php:461
8960
+ msgid " File created or updated Successfully!"
8961
+ msgstr ""
8962
+
8963
+ #: admin/wizard/wizard.php:462
8964
+ msgid "Error: Unable to create or update File "
8965
+ msgstr ""
8966
+
8967
+ #: admin/wizard/wizard.php:588
8968
+ msgid "BulletProof Security DB Backup Setup"
8969
+ msgstr ""
8970
+
8971
+ #: admin/wizard/wizard.php:609
8972
+ msgid "BulletProof Security Hidden Plugin Folders|Files (HPF) Setup"
8973
+ msgstr ""
8974
+
8975
+ #: admin/wizard/wizard.php:642
8976
+ msgid ""
8977
+ "Hidden Plugin Folders|Files (HPF) DB Options created or updated Successfully!"
8978
+ msgstr ""
8979
+
8980
+ #: admin/wizard/wizard.php:645
8981
+ msgid "BulletProof Security Security Log User Agent Filter Setup"
8982
+ msgstr ""
8983
+
8984
+ #: admin/wizard/wizard.php:667
8985
+ msgid "BulletProof Security Email Alerting & Log File Options Setup"
8986
+ msgstr ""
8987
+
8988
+ #: admin/wizard/wizard.php:704
8989
+ msgid "BulletProof Security Login Security & Monitoring Options Setup"
8990
+ msgstr ""
8991
+
8992
+ #: admin/wizard/wizard.php:773
8993
+ msgid "The Setup Wizard has completed BPS Setup."
8994
+ msgstr ""
8995
+
8996
+ #: admin/wizard/wizard.php:773
8997
+ msgid ""
8998
+ "Check the \"BPS Setup Verification & Error Checks\" section below for any "
8999
+ "errors in Red Font."
9000
+ msgstr ""
9001
+
9002
+ #: admin/wizard/wizard.php:779
9003
+ msgid "Setup Wizard Completion Time: "
9004
+ msgstr ""
9005
+
9006
+ #: admin/wizard/wizard.php:796
9007
+ msgid "BulletProof Security ~ Setup Wizard"
9008
+ msgstr ""
9009
+
9010
+ #: admin/wizard/wizard.php:855
9011
+ msgid "Setup Wizard ~ "
9012
+ msgstr ""
9013
+
9014
+ #: admin/wizard/wizard.php:855
9015
+ msgid "One-Click Complete Setup"
9016
+ msgstr ""
9017
+
9018
+ #: admin/wizard/wizard.php:863
9019
+ msgid "htaccess Files Disabled Notice: "
9020
+ msgstr ""
9021
+
9022
+ #: admin/wizard/wizard.php:863
9023
+ msgid ""
9024
+ "BPS has detected that htaccess files cannot be used on your website/server. "
9025
+ "Click this "
9026
+ msgstr ""
9027
+
9028
+ #: admin/wizard/wizard.php:863
9029
+ msgid "htaccess Files Disabled Forum Topic"
9030
+ msgstr ""
9031
+
9032
+ #: admin/wizard/wizard.php:863
9033
+ msgid " link for more information before running the Wizards."
9034
+ msgstr ""
9035
+
9036
+ #: admin/wizard/wizard.php:890
9037
+ msgid "Recommended Video Tutorials: "
9038
+ msgstr ""
9039
+
9040
+ #: admin/wizard/wizard.php:895
9041
+ msgid "Security Log Video Tutorial"
9042
+ msgstr ""
9043
+
9044
+ #: admin/wizard/wizard.php:898
9045
+ msgid "Setup Wizard Steps: "
9046
+ msgstr ""
9047
+
9048
+ #: admin/wizard/wizard.php:898
9049
+ msgid "1. Click the Setup Wizard button."
9050
+ msgstr ""
9051
+
9052
+ #: admin/wizard/wizard.php:902
9053
+ msgid ""
9054
+ "Setup Wizard Pre-Installation Checks are automatically performed and "
9055
+ "displayed on the Setup Wizard page. Green font messages mean everything is "
9056
+ "good. Red and blue font messages are displayed with an exact description of "
9057
+ "the issue and how to correct the issue. Red font error messages need to be "
9058
+ "fixed before running the Setup Wizard. Blue font messages can either be a "
9059
+ "recommendation or a notice about something. Blue font messages do not need "
9060
+ "to be fixed before running the Setup Wizard."
9061
+ msgstr ""
9062
+
9063
+ #: admin/wizard/wizard.php:902
9064
+ msgid ""
9065
+ "You can re-run the Setup Wizard again at any time. Your existing settings "
9066
+ "will NOT be overwritten and will be re-saved. Any new or additional settings "
9067
+ "that the Setup Wizard finds on your website will be saved/setup."
9068
+ msgstr ""
9069
+
9070
+ #: admin/wizard/wizard.php:902
9071
+ msgid ""
9072
+ "When the Setup Wizard has completed you will see \"The Setup Wizard has "
9073
+ "completed BPS Setup.\""
9074
+ msgstr ""
9075
+
9076
+ #: admin/wizard/wizard.php:902
9077
+ msgid ""
9078
+ "Your existing Root and wp-admin htaccess files are backed up before new Root "
9079
+ "and wp-admin htaccess files are created by the Setup Wizard. The BPS backup "
9080
+ "folder is here: "
9081
+ msgstr ""
9082
+
9083
+ #: admin/wizard/wizard.php:905
9084
+ msgid ""
9085
+ " and the backed up htaccess file names are: root.htaccess and wpadmin."
9086
+ "htaccess."
9087
+ msgstr ""
9088
+
9089
+ #: admin/wizard/wizard.php:915
9090
+ msgid "Setup Wizard & Overview Video Tutorial"
9091
+ msgstr ""
9092
+
9093
+ #: admin/wizard/wizard.php:940
9094
+ msgid "Setup Wizard Options ~ "
9095
+ msgstr ""
9096
+
9097
+ #: admin/wizard/wizard.php:940
9098
+ msgid ""
9099
+ "Click the Setup Wizard Options Read Me help button for help info about each "
9100
+ "option setting"
9101
+ msgstr ""
9102
+
9103
+ #: admin/wizard/wizard.php:959
9104
+ msgid "Forum Help Links:"
9105
+ msgstr ""
9106
+
9107
+ #: admin/wizard/wizard.php:963
9108
+ msgid "Go Daddy Managed WordPress Hosting (GDMW)"
9109
+ msgstr ""
9110
+
9111
+ #: admin/wizard/wizard.php:964 admin/wizard/wizard.php:968
9112
+ msgid "Enable|Disable htaccess Files"
9113
+ msgstr ""
9114
+
9115
+ #: admin/wizard/wizard.php:965
9116
+ msgid "AutoFix Forum Topic"
9117
+ msgstr ""
9118
+
9119
+ #: admin/wizard/wizard.php:968
9120
+ msgid ""
9121
+ "Setup Wizard AutoFix is turned On by default. When AutoFix is turned On the "
9122
+ "Setup Wizard will automatically create htaccess whitelist rules in BPS "
9123
+ "Custom Code and your Live htaccess files for other plugins and themes that "
9124
+ "you have installed that require htaccess code whitelist rules. Setup Wizard "
9125
+ "AutoFix will also automatically setup or cleanup htaccess code in BPS Custom "
9126
+ "Code for these caching plugins: WP Super Cache, W3 Total Cache, Comet Cache "
9127
+ "Plugin (free & Pro), WP Fastest Cache Plugin (free & Premium), Endurance "
9128
+ "Page Cache and WP Rocket. If a problem occurs with AutoFix you can turn On "
9129
+ "the AutoFix Debugger on the BPS UI|UX Settings page > BPS UI|UX|AutoFix "
9130
+ "Debug option to check the plugin or theme name and the BPS Custom Code text "
9131
+ "box where the problem is occurring. You can also turn Off AutoFix and "
9132
+ "AutoFix will not try to detect or create Custom Code whitelist rules or "
9133
+ "setup or cleanup caching plugins htaccess code. If a problem does occur with "
9134
+ "AutoFix turn On the BPS UI|UX|AutoFix Debug option, copy the AutoFix Debug "
9135
+ "information that is displayed to you and then click the AutoFix Forum Topic "
9136
+ "link at the top of this Read Me help window and post a forum Reply with your "
9137
+ "AutoFix Debug information so that we can figure out what the problem is."
9138
+ msgstr ""
9139
+
9140
+ #: admin/wizard/wizard.php:968 admin/wizard/wizard.php:993
9141
+ msgid "Go Daddy Managed WordPress Hosting (GDMW):"
9142
+ msgstr ""
9143
+
9144
+ #: admin/wizard/wizard.php:968
9145
+ msgid ""
9146
+ "This option is ONLY for a special type of Go Daddy Hosting account called "
9147
+ "\"Managed WordPress Hosting\" and is NOT for regular/standard Go Daddy "
9148
+ "Hosting account types. Leave the default setting set to No, unless you have "
9149
+ "a Go Daddy Managed WordPress Hosting account. See the Forum Help Links "
9150
+ "section above for more information."
9151
+ msgstr ""
9152
+
9153
+ #: admin/wizard/wizard.php:968 admin/wizard/wizard.php:1005
9154
+ msgid "Enable|Disable htaccess Files:"
9155
+ msgstr ""
9156
+
9157
+ #: admin/wizard/wizard.php:968
9158
+ msgid "Before changing this option setting, click the "
9159
+ msgstr ""
9160
+
9161
+ #: admin/wizard/wizard.php:968
9162
+ msgid ""
9163
+ " Forum Help Link at the top of this Read Me help window to find out exactly "
9164
+ "what this option setting does and when it should or should not be used. "
9165
+ "htaccess Files Disabled: Will disable all BPS htaccess features and files. "
9166
+ "htaccess Files Enabled: Will enable all BPS htaccess freatures and files."
9167
+ msgstr ""
9168
+
9169
+ #: admin/wizard/wizard.php:968
9170
+ msgid "Enable|Disable wp-admin BulletProof Mode"
9171
+ msgstr ""
9172
+
9173
+ #: admin/wizard/wizard.php:968
9174
+ msgid ""
9175
+ "The default setting is already set to: wp-admin BulletProof Mode Enabled. If "
9176
+ "you would like to disable wp-admin BulletProof Mode select wp-admin "
9177
+ "BulletProof Mode Disabled."
9178
+ msgstr ""
9179
+
9180
+ #: admin/wizard/wizard.php:968 admin/wizard/wizard.php:1029
9181
+ msgid "Zip File Download Fix (Incapsula, Proxy, Other Cause):"
9182
+ msgstr ""
9183
+
9184
+ #: admin/wizard/wizard.php:968
9185
+ msgid ""
9186
+ "This option should only be set to On if you are seeing a 403 error and/or "
9187
+ "unable to download these Zip files: Custom Code Export Zip file, Login "
9188
+ "Security Table Export Zip file or the Setup Wizard Root htaccess file backup "
9189
+ "Zip file. The Setup Wizard Root htaccess file backup Zip file link is only "
9190
+ "displayed if BPS detects that your current Root htaccess file is not a BPS "
9191
+ "Root htaccess file. If you are still unable to download zip files after "
9192
+ "setting this option to On then you will need to whitelist your Proxy IP "
9193
+ "address in the Plugin Firewall Whitelist by Hostname (domain name) and IP "
9194
+ "Address tool under the Plugin Firewall Additional Whitelist Tools accordion "
9195
+ "tab. If that does not work then you will need to deactivate the Plugin "
9196
+ "Firewall temporarily, download the zip file and then activate the Plugin "
9197
+ "Firewall again."
9198
+ msgstr ""
9199
+
9200
+ #: admin/wizard/wizard.php:968 admin/wizard/wizard.php:1040
9201
+ msgid "Network|Multisite Sitewide Login Security Settings"
9202
+ msgstr ""
9203
+
9204
+ #: admin/wizard/wizard.php:968
9205
+ msgid ""
9206
+ "This option is for Network|Multisite sites ONLY. This is an independent "
9207
+ "option Form that creates and saves Login Security DB option settings for all "
9208
+ "Network sites when you click the Save Network LSM Options Sitewide button. "
9209
+ "If Login Security option settings have already been setup and saved for any "
9210
+ "Network site then those Login Security option settings will NOT be changed. "
9211
+ "If Login Security options settings have NOT already been setup and saved for "
9212
+ "any Network site then those Login Security option settings will be created "
9213
+ "and saved with these default settings: Max Login Attempts: 3, Automatic "
9214
+ "Lockout Time: 60, Manual Lockout Time: 60, Max DB Rows To Show: blank show "
9215
+ "all rows, Turn On|Turn Off: Turn On Login Security, Logging Options: Log "
9216
+ "Only Account Lockouts, Error Messages: Standard WP Login Errors, Attempts "
9217
+ "Remaining: Show Login Attempts Remaining, Password Reset: Enable Password "
9218
+ "Reset, Sort DB Rows: Ascending - Show Oldest Login First."
9219
+ msgstr ""
9220
+
9221
+ #: admin/wizard/wizard.php:981
9222
+ msgid "AutoFix (AutoWhitelist|AutoSetup|AutoCleanup):"
9223
+ msgstr ""
9224
+
9225
+ #: admin/wizard/wizard.php:983
9226
+ msgid "AutoFix On"
9227
+ msgstr ""
9228
+
9229
+ #: admin/wizard/wizard.php:984
9230
+ msgid "AutoFix Off"
9231
+ msgstr ""
9232
+
9233
+ #: admin/wizard/wizard.php:995
9234
+ msgid "No (default setting)"
9235
+ msgstr ""
9236
+
9237
+ #: admin/wizard/wizard.php:996
9238
+ msgid "Yes (ONLY if you have Managed WordPress Hosting)"
9239
+ msgstr ""
9240
+
9241
+ #: admin/wizard/wizard.php:1006
9242
+ msgid ""
9243
+ "CAUTION: Click the Read Me help button before changing this option setting"
9244
+ msgstr ""
9245
+
9246
+ #: admin/wizard/wizard.php:1008
9247
+ msgid "htaccess Files Enabled"
9248
+ msgstr ""
9249
+
9250
+ #: admin/wizard/wizard.php:1009
9251
+ msgid "htaccess Files Disabled"
9252
+ msgstr ""
9253
+
9254
+ #: admin/wizard/wizard.php:1017
9255
+ msgid "Enable|Disable wp-admin BulletProof Mode:"
9256
+ msgstr ""
9257
+
9258
+ #: admin/wizard/wizard.php:1019
9259
+ msgid "wp-admin BulletProof Mode Enabled"
9260
+ msgstr ""
9261
+
9262
+ #: admin/wizard/wizard.php:1020
9263
+ msgid "wp-admin BulletProof Mode Disabled"
9264
+ msgstr ""
9265
+
9266
+ #: admin/wizard/wizard.php:1031
9267
+ msgid "Zip File Download Fix Off"
9268
+ msgstr ""
9269
+
9270
+ #: admin/wizard/wizard.php:1032
9271
+ msgid "Zip File Download Fix On"
9272
+ msgstr ""
9273
+
9274
+ #: admin/wizard/wizard.php:1071
9275
+ msgid ""
9276
+ "The Zip File Download Fix option is set to On. This option should only be "
9277
+ "set to On if you are unable to download these Zip files: Custom Code Export "
9278
+ "Zip file, Login Security Table Export Zip file or the Setup Wizard Root "
9279
+ "htaccess file backup Zip file."
9280
+ msgstr ""
9281
+
9282
+ #: admin/wizard/wizard.php:1084
9283
+ msgid "The Zip File Download Fix option is set to Off."
9284
+ msgstr ""
9285
+
9286
+ #: admin/wizard/wizard.php:1098
9287
+ msgid ""
9288
+ "Error: Your Network site exceeds the default WP criteria for a large network "
9289
+ "site. Either you have more than 10,000 users or more than 10,000 sites. "
9290
+ "Please post a new forum thread in the BPS plugin support forum on wordpress."
9291
+ "org for assistance."
9292
+ msgstr ""
9293
+
9294
+ #: admin/wizard/wizard.php:1105
9295
+ msgid " LSM DB Options created or updated Successfully!"
9296
+ msgstr ""
9297
+
9298
+ #: bulletproof-security.php:99
9299
+ msgid "Uninstall Options"
9300
+ msgstr ""
9301
+
9302
+ #: bulletproof-security.php:120
9303
+ msgid "Forum - Support"
9304
+ msgstr ""
9305
+
9306
+ #: bulletproof-security.php:121
9307
+ msgid "Upgrade"
9308
+ msgstr ""
9309
+
9310
+ #: includes/db-security.php:18
9311
+ msgid "Hourly"
9312
+ msgstr ""
9313
+
9314
+ #: includes/functions.php:208
9315
+ msgid "Reload BPS Status Display"
9316
+ msgstr ""
9317
+
9318
+ #: includes/functions.php:252
9319
+ msgid "The BPS Status Display is set to Off by default on the System Info page"
9320
+ msgstr ""
9321
+
9322
+ #: includes/functions.php:316
9323
+ msgid "BPS "
9324
+ msgstr ""
9325
+
9326
+ #: includes/functions.php:322 includes/functions.php:347
9327
+ msgid "BPS Setup Wizard Notification"
9328
+ msgstr ""
9329
+
9330
+ #: includes/functions.php:322 includes/functions.php:347
9331
+ msgid ""
9332
+ " to go to the BPS Setup Wizard page and click the Setup Wizard button to "
9333
+ "setup the BPS plugin."
9334
+ msgstr ""
9335
+
9336
+ #: includes/functions.php:327
9337
+ msgid "BPS Alert! An htaccess file was NOT found in your WordPress root folder"
9338
+ msgstr ""
9339
+
9340
+ #: includes/functions.php:327
9341
+ msgid ""
9342
+ "If you have deleted the root htaccess file for troubleshooting purposes you "
9343
+ "can disregard this Alert."
9344
+ msgstr ""
9345
+
9346
+ #: includes/functions.php:327 includes/functions.php:547
9347
+ #: includes/functions.php:604 includes/hud-autofix-setup.php:68
9348
+ #: includes/hud-dismiss-functions.php:592
9349
+ msgid "Go to the "
9350
+ msgstr ""
9351
+
9352
+ #: includes/functions.php:327 includes/functions.php:547
9353
+ msgid " and click the Root Folder BulletProof Mode Activate button."
9354
+ msgstr ""
9355
+
9356
+ #: includes/functions.php:352
9357
+ msgid "BPS Alert! Your site may not be protected by BulletProof Security"
9358
+ msgstr ""
9359
+
9360
+ #: includes/functions.php:352
9361
+ msgid ""
9362
+ "The BPS version: BULLETPROOF x.x SECURE .HTACCESS line of code was not found "
9363
+ "at the top of your Root htaccess file."
9364
+ msgstr ""
9365
+
9366
+ #: includes/functions.php:352
9367
+ msgid ""
9368
+ "The BPS version line of code MUST be at the very top of your Root htaccess "
9369
+ "file."
9370
+ msgstr ""
9371
+
9372
+ #: includes/functions.php:352 includes/functions.php:626
9373
+ msgid ""
9374
+ " to go to the BPS Setup Wizard page and click the Setup Wizard button to "
9375
+ "setup the BPS plugin again."
9376
+ msgstr ""
9377
+
9378
+ #: includes/functions.php:352
9379
+ msgid ""
9380
+ "Important Note: If you manually added other htaccess code above the BPS "
9381
+ "version line of code in your root htaccess file, you can copy that code to "
9382
+ "BPS Root Custom Code so that your code is saved in the correct place in the "
9383
+ "BPS root htaccess file. "
9384
+ msgstr ""
9385
+
9386
+ #: includes/functions.php:352
9387
+ msgid ""
9388
+ " to go to the BPS Custom Code page, add your Root custom htaccess code in an "
9389
+ "appropriate Root Custom Code text box and click the Save Root Custom Code "
9390
+ "button before running the Setup Wizard again."
9391
+ msgstr ""
9392
+
9393
+ #: includes/functions.php:523
9394
+ msgid "The BPS Automatic htaccess File Update Completed Successfully!"
9395
+ msgstr ""
9396
+
9397
+ #: includes/functions.php:536
9398
+ msgid "RBM"
9399
+ msgstr ""
9400
+
9401
+ #: includes/functions.php:547
9402
+ msgid ""
9403
+ "BPS Alert! Your site does not appear to be protected by BulletProof Security"
9404
+ msgstr ""
9405
+
9406
+ #: includes/functions.php:604
9407
+ msgid ""
9408
+ "BPS Alert! An htaccess file was NOT found in your WordPress wp-admin folder"
9409
+ msgstr ""
9410
+
9411
+ #: includes/functions.php:604
9412
+ msgid ""
9413
+ "If you have deleted the wp-admin htaccess file for troubleshooting purposes "
9414
+ "you can disregard this Alert."
9415
+ msgstr ""
9416
+
9417
+ #: includes/functions.php:604
9418
+ msgid " and click the wp-admin Folder BulletProof Mode Activate button."
9419
+ msgstr ""
9420
+
9421
+ #: includes/functions.php:626
9422
+ msgid ""
9423
+ "BPS Alert! Your wp-admin folder may not be protected by BulletProof Security"
9424
+ msgstr ""
9425
+
9426
+ #: includes/functions.php:626
9427
+ msgid ""
9428
+ "The BPS version: BULLETPROOF .xx.x WP-ADMIN SECURE .HTACCESS line of code "
9429
+ "was not found at the top of your wp-admin htaccess file."
9430
+ msgstr ""
9431
+
9432
+ #: includes/functions.php:626
9433
+ msgid ""
9434
+ "The BPS version line of code MUST be at the very top of your wp-admin "
9435
+ "htaccess file."
9436
+ msgstr ""
9437
+
9438
+ #: includes/functions.php:626
9439
+ msgid ""
9440
+ "Important Note: If you manually added other htaccess code above the BPS "
9441
+ "version line of code in your wp-admin htaccess file, you can copy that code "
9442
+ "to BPS wp-admin Custom Code so that your code is saved in the correct place "
9443
+ "in the BPS wp-admin htaccess file. "
9444
+ msgstr ""
9445
+
9446
+ #: includes/functions.php:626
9447
+ msgid ""
9448
+ " to go to the BPS Custom Code page, add your wp-admin custom htaccess code "
9449
+ "in an appropriate wp-admin Custom Code text box and click the Save wp-admin "
9450
+ "Custom Code button before running the Setup Wizard again."
9451
+ msgstr ""
9452
+
9453
+ #: includes/functions.php:711
9454
+ msgid "WBM"
9455
+ msgstr ""
9456
+
9457
+ #: includes/functions.php:722
9458
+ msgid ""
9459
+ "BPS Alert! A valid BPS htaccess file was NOT found in your wp-admin folder"
9460
+ msgstr ""
9461
+
9462
+ #: includes/functions.php:722
9463
+ msgid ""
9464
+ "BulletProof Mode for the wp-admin folder should also be activated when you "
9465
+ "have BulletProof Mode activated for the Root folder."
9466
+ msgstr ""
9467
+
9468
+ #: includes/functions.php:763
9469
+ msgid "LSM"
9470
+ msgstr ""
9471
+
9472
+ #: includes/functions.php:812
9473
+ msgid "No DB Backups"
9474
+ msgstr ""
9475
+
9476
+ #: includes/functions.php:817
9477
+ msgid "Backup Job Created"
9478
+ msgstr ""
9479
+
9480
+ #: includes/functions.php:870 includes/functions.php:876
9481
+ msgid "ISL"
9482
+ msgstr ""
9483
+
9484
+ #: includes/functions.php:916 includes/functions.php:922
9485
+ msgid "ACE"
9486
+ msgstr ""
9487
+
9488
+ #: includes/functions.php:980
9489
+ msgid ""
9490
+ "Apache Modules|Directives|Backward Compatibility(Yes|No)|IfModule(Yes|No): "
9491
+ msgstr ""
9492
+
9493
+ #: includes/functions.php:1026
9494
+ msgid ""
9495
+ "ERROR: wp_remote_get() function is blocked or unable to get the URL path"
9496
+ msgstr ""
9497
+
9498
+ #: includes/functions.php:1044
9499
+ msgid "mod_access_compat and mod_authz_core or mod_rewrite is NOT Loaded"
9500
+ msgstr ""
9501
+
9502
+ #: includes/functions.php:1054
9503
+ msgid ""
9504
+ "mod_access_compat is Loaded|Order, Allow, Deny directives are supported|"
9505
+ "IfModule: Yes"
9506
+ msgstr ""
9507
+
9508
+ #: includes/functions.php:1068
9509
+ msgid "mod_access_compat is Loaded"
9510
+ msgstr ""
9511
+
9512
+ #: includes/functions.php:1081
9513
+ msgid ""
9514
+ "mod_authz_core is Loaded|Order, Allow, Deny directives are NOT supported|BC: "
9515
+ "No|IfModule: Yes"
9516
+ msgstr ""
9517
+
9518
+ #: includes/functions.php:1086
9519
+ msgid "mod_authz_core is Loaded|IfModule: No"
9520
+ msgstr ""
9521
+
9522
+ #: includes/functions.php:1091
9523
+ msgid "mod_authz_core is NOT Loaded|IfModule: Yes"
9524
+ msgstr ""
9525
+
9526
+ #: includes/functions.php:1097
9527
+ msgid "mod_authz_core is NOT Loaded"
9528
+ msgstr ""
9529
+
9530
+ #: includes/functions.php:1104
9531
+ msgid ""
9532
+ "mod_authz_host is Loaded|Order, Allow, Deny directives are supported|BC: Yes|"
9533
+ "IfModule: Yes"
9534
+ msgstr ""
9535
+
9536
+ #: includes/functions.php:1109
9537
+ msgid ""
9538
+ "mod_authz_host is Loaded|Order, Allow, Deny directives are NOT supported|BC: "
9539
+ "No|IfModule: Yes"
9540
+ msgstr ""
9541
+
9542
+ #: includes/functions.php:1114
9543
+ msgid "mod_authz_host is Loaded|IfModule: No"
9544
+ msgstr ""
9545
+
9546
+ #: includes/functions.php:1119
9547
+ msgid "mod_authz_host is NOT Loaded|IfModule: Yes"
9548
+ msgstr ""
9549
+
9550
+ #: includes/functions.php:1124
9551
+ msgid "mod_authz_host is NOT Loaded"
9552
+ msgstr ""
9553
+
9554
+ #: includes/functions.php:1131
9555
+ msgid "mod_rewrite Module is Loaded"
9556
+ msgstr ""
9557
+
9558
+ #: includes/functions.php:1136
9559
+ msgid "mod_rewrite Inconclusive: Status is not 200, 301, 302, 403 or 404"
9560
+ msgstr ""
9561
+
9562
+ #: includes/general-functions.php:25 includes/general-functions.php:45
9563
+ msgid "Peak Memory Usage: "
9564
+ msgstr ""
9565
+
9566
+ #: includes/general-functions.php:25 includes/general-functions.php:45
9567
+ msgid "MB|"
9568
+ msgstr ""
9569
+
9570
+ #: includes/general-functions.php:25 includes/general-functions.php:45
9571
+ msgid "KB"
9572
+ msgstr ""
9573
+
9574
+ #: includes/general-functions.php:25 includes/general-functions.php:45
9575
+ msgid "Initial Memory in Use: "
9576
+ msgstr ""
9577
+
9578
+ #: includes/general-functions.php:25 includes/general-functions.php:45
9579
+ msgid "Total Memory Used: "
9580
+ msgstr ""
9581
+
9582
+ #: includes/general-functions.php:59
9583
+ msgid ""
9584
+ "The secure.htaccess file either does not exist or is not named correctly. "
9585
+ "Check the /"
9586
+ msgstr ""
9587
+
9588
+ #: includes/general-functions.php:59
9589
+ msgid ""
9590
+ "/bulletproof-security/admin/htaccess/ folder to make sure the secure."
9591
+ "htaccess file exists and is named secure.htaccess."
9592
+ msgstr ""
9593
+
9594
+ #: includes/general-functions.php:71
9595
+ msgid ""
9596
+ "The default.htaccess file either does not exist or is not named correctly. "
9597
+ "Check the /"
9598
+ msgstr ""
9599
+
9600
+ #: includes/general-functions.php:71
9601
+ msgid ""
9602
+ "/bulletproof-security/admin/htaccess/ folder to make sure the default."
9603
+ "htaccess file exists and is named default.htaccess."
9604
+ msgstr ""
9605
+
9606
+ #: includes/general-functions.php:83
9607
+ msgid ""
9608
+ "The wpadmin-secure.htaccess file either does not exist or is not named "
9609
+ "correctly. Check the /"
9610
+ msgstr ""
9611
+
9612
+ #: includes/general-functions.php:83
9613
+ msgid ""
9614
+ "/bulletproof-security/admin/htaccess/ folder to make sure the wpadmin-secure."
9615
+ "htaccess file exists and is named wpadmin-secure.htaccess."
9616
+ msgstr ""
9617
+
9618
+ #: includes/general-functions.php:95
9619
+ msgid "An htaccess file was not found in your website root folder."
9620
+ msgstr ""
9621
+
9622
+ #: includes/general-functions.php:107
9623
+ msgid "An htaccess file was not found in your wp-admin folder."
9624
+ msgstr ""
9625
+
9626
+ #: includes/general-functions.php:116
9627
+ msgid ""
9628
+ "Cannot write to the secure.htaccess file. Cause: file Permission or file "
9629
+ "Ownership problem."
9630
+ msgstr ""
9631
+
9632
+ #: includes/general-functions.php:126
9633
+ msgid ""
9634
+ "Cannot write to the default.htaccess file. Cause: file Permission or file "
9635
+ "Ownership problem."
9636
+ msgstr ""
9637
+
9638
+ #: includes/general-functions.php:136
9639
+ msgid ""
9640
+ "Cannot write to the wpadmin-secure.htaccess file. Cause: file Permission or "
9641
+ "file Ownership problem."
9642
+ msgstr ""
9643
+
9644
+ #: includes/general-functions.php:146
9645
+ msgid ""
9646
+ "Cannot write to the Root htaccess file. Cause: file Permission or file "
9647
+ "Ownership problem."
9648
+ msgstr ""
9649
+
9650
+ #: includes/general-functions.php:156
9651
+ msgid ""
9652
+ "Cannot write to the wp-admin htaccess file. Cause: file Permission or file "
9653
+ "Ownership problem."
9654
+ msgstr ""
9655
+
9656
+ #: includes/general-functions.php:215
9657
+ msgid "Subfolder Installation"
9658
+ msgstr ""
9659
+
9660
+ #: includes/general-functions.php:217
9661
+ msgid "Root Folder Installation"
9662
+ msgstr ""
9663
+
9664
+ #: includes/general-functions.php:227
9665
+ msgid "Standard WP Site Type"
9666
+ msgstr ""
9667
+
9668
+ #: includes/general-functions.php:229
9669
+ msgid "GWIOD WP Site Type"
9670
+ msgstr ""
9671
+
9672
+ #: includes/general-functions.php:230
9673
+ msgid "WordPress Address (URL): "
9674
+ msgstr ""
9675
+
9676
+ #: includes/general-functions.php:231
9677
+ msgid "Site Address (URL): "
9678
+ msgstr ""
9679
+
9680
+ #: includes/general-functions.php:239
9681
+ msgid "BuddyPress is installed|enabled"
9682
+ msgstr ""
9683
+
9684
+ #: includes/general-functions.php:241
9685
+ msgid "BuddyPress is not installed|enabled"
9686
+ msgstr ""
9687
+
9688
+ #: includes/general-functions.php:249
9689
+ msgid "bbPress is installed|enabled"
9690
+ msgstr ""
9691
+
9692
+ #: includes/general-functions.php:251
9693
+ msgid "bbPress is not installed|enabled"
9694
+ msgstr ""
9695
+
9696
+ #: includes/general-functions.php:259
9697
+ msgid "Network|Multisite is not installed|enabled"
9698
+ msgstr ""
9699
+
9700
+ #: includes/general-functions.php:265
9701
+ msgid "Subdirectory Site Type"
9702
+ msgstr ""
9703
+
9704
+ #: includes/general-functions.php:268
9705
+ msgid "Subdomain Site Type"
9706
+ msgstr ""
9707
+
9708
+ #: includes/general-functions.php:297
9709
+ msgid "DB Show Errors: On. DB errors will be displayed"
9710
+ msgstr ""
9711
+
9712
+ #: includes/general-functions.php:300
9713
+ msgid "DB Show Errors: "
9714
+ msgstr ""
9715
+
9716
+ #: includes/general-functions.php:333 includes/general-functions.php:378
9717
+ #: includes/general-functions.php:416
9718
+ msgid "Reminder: Frontend Maintenance Mode is Turned On."
9719
+ msgstr ""
9720
+
9721
+ #: includes/general-functions.php:336 includes/general-functions.php:381
9722
+ #: includes/general-functions.php:419
9723
+ msgid "Reminder: Backend Maintenance Mode is Turned On."
9724
+ msgstr ""
9725
+
9726
+ #: includes/general-functions.php:339 includes/general-functions.php:384
9727
+ #: includes/general-functions.php:422
9728
+ msgid "Reminder: Frontend & Backend Maintenance Modes are Turned On."
9729
+ msgstr ""
9730
+
9731
+ #: includes/general-functions.php:366 includes/general-functions.php:404
9732
+ msgid ""
9733
+ "Reminder: Frontend Maintenance Mode is Turned On for The Primary Site and "
9734
+ "All Subsites."
9735
+ msgstr ""
9736
+
9737
+ #: includes/general-functions.php:371 includes/general-functions.php:409
9738
+ msgid ""
9739
+ "Reminder: Frontend Maintenance Mode is Turned On for All Subsites, but Not "
9740
+ "The Primary Site."
9741
+ msgstr ""
9742
+
9743
+ #: includes/general-functions.php:445
9744
+ msgid ""
9745
+ "BPS Login Security Disable Password Reset Frontend & Backend is turned On."
9746
+ msgstr ""
9747
+
9748
+ #: includes/general-functions.php:445
9749
+ msgid ""
9750
+ "Backend Password Reset has been disabled. To enable Backend Password Reset "
9751
+ "click "
9752
+ msgstr ""
9753
+
9754
+ #: includes/general-functions.php:509
9755
+ msgid "BPS Notice: One-time Update Steps Required"
9756
+ msgstr ""
9757
+
9758
+ #: includes/general-functions.php:509
9759
+ msgid ""
9760
+ "Significant changes were made to the root and wp-admin htaccess files that "
9761
+ "require doing the one-time Update Steps below."
9762
+ msgstr ""
9763
+
9764
+ #: includes/general-functions.php:509
9765
+ msgid ""
9766
+ "All future BPS upgrades will not require these one-time Update Steps to be "
9767
+ "performed."
9768
+ msgstr ""
9769
+
9770
+ #: includes/general-functions.php:509
9771
+ msgid ""
9772
+ " If you would like to know what changes were made to the root and wp-admin "
9773
+ "htaccess files."
9774
+ msgstr ""
9775
+
9776
+ #: includes/general-functions.php:509
9777
+ msgid ""
9778
+ "This Notice will go away automatically after doing all of the steps below."
9779
+ msgstr ""
9780
+
9781
+ #: includes/general-functions.php:509
9782
+ msgid " to go to the BPS Security Modes page."
9783
+ msgstr ""
9784
+
9785
+ #: includes/general-functions.php:509
9786
+ msgid "1. Click the Root Folder BulletProof Mode Activate button."
9787
+ msgstr ""
9788
+
9789
+ #: includes/general-functions.php:509
9790
+ msgid "2. Click the wp-admin Folder BulletProof Mode Activate button."
9791
+ msgstr ""
9792
+
9793
+ #: includes/general-functions.php:609
9794
+ msgid "WordPress Debugging is turned On in your wp-config.php file"
9795
+ msgstr ""
9796
+
9797
+ #: includes/general-functions.php:609 includes/general-functions.php:615
9798
+ msgid "You are currently using "
9799
+ msgstr ""
9800
+
9801
+ #: includes/general-functions.php:609
9802
+ msgid ""
9803
+ " in your wp-config.php file. To turn WP Debugging Off, change true to false "
9804
+ "in your wp-config.php file."
9805
+ msgstr ""
9806
+
9807
+ #: includes/general-functions.php:615
9808
+ msgid "WordPress Debug Logging is turned On in your wp-config.php file"
9809
+ msgstr ""
9810
+
9811
+ #: includes/general-functions.php:615
9812
+ msgid ""
9813
+ " in your wp-config.php file to log errors to the WordPress debug.log file. "
9814
+ "To turn WP Debug Logging Off, change true to false in your wp-config.php "
9815
+ "file."
9816
+ msgstr ""
9817
+
9818
+ #: includes/hidden-plugin-folders-cron.php:21
9819
+ msgid "Once every minute"
9820
+ msgstr ""
9821
+
9822
+ #: includes/hidden-plugin-folders-cron.php:25
9823
+ msgid "Once every 2 minutes"
9824
+ msgstr ""
9825
+
9826
+ #: includes/hidden-plugin-folders-cron.php:29
9827
+ msgid "Once every 3 minutes"
9828
+ msgstr ""
9829
+
9830
+ #: includes/hidden-plugin-folders-cron.php:33
9831
+ msgid "Once every 4 minutes"
9832
+ msgstr ""
9833
+
9834
+ #: includes/hidden-plugin-folders-cron.php:37
9835
+ msgid "Once every 5 minutes"
9836
+ msgstr ""
9837
+
9838
+ #: includes/hidden-plugin-folders-cron.php:41
9839
+ msgid "Once every 10 minutes"
9840
+ msgstr ""
9841
+
9842
+ #: includes/hidden-plugin-folders-cron.php:45
9843
+ msgid "Once every 15 minutes"
9844
+ msgstr ""
9845
+
9846
+ #: includes/hidden-plugin-folders-cron.php:49
9847
+ msgid "Once every 30 minutes"
9848
+ msgstr ""
9849
+
9850
+ #: includes/hidden-plugin-folders-cron.php:53
9851
+ msgid "Once every 60 minutes"
9852
+ msgstr ""
9853
+
9854
+ #: includes/hidden-plugin-folders-cron.php:57
9855
+ msgid "Once Daily"
9856
+ msgstr ""
9857
+
9858
+ #: includes/hidden-plugin-folders-cron.php:249
9859
+ #: includes/hidden-plugin-folders-cron.php:264
9860
+ #: includes/hidden-plugin-folders-cron.php:279
9861
+ #: includes/hidden-plugin-folders-cron.php:294
9862
+ #: includes/hidden-plugin-folders-cron.php:323
9863
+ msgid "BPS Hidden Plugin Folder|Files (HPF) Alert"
9864
+ msgstr ""
9865
+
9866
+ #: includes/hidden-plugin-folders-cron.php:249
9867
+ msgid ""
9868
+ "A non-standard WP hello.php file (Hello Dolly Plugin) was found in your /"
9869
+ "plugins/ folder and it is hidden/not displayed on the WordPress Plugins "
9870
+ "page. Most likely the hello.php file is a hacker file or contains hacker "
9871
+ "code. If you have modified the hello.php file and/or it is safe to ignore "
9872
+ "this file you can ignore this file check by adding the HPF Ignore Rule shown "
9873
+ "below in the "
9874
+ msgstr ""
9875
+
9876
+ #: includes/hidden-plugin-folders-cron.php:249
9877
+ #: includes/hidden-plugin-folders-cron.php:264
9878
+ #: includes/hidden-plugin-folders-cron.php:279
9879
+ #: includes/hidden-plugin-folders-cron.php:294
9880
+ #: includes/hidden-plugin-folders-cron.php:323
9881
+ msgid "Ignore Hidden Plugin Folders & Files"
9882
+ msgstr ""
9883
+
9884
+ #: includes/hidden-plugin-folders-cron.php:249
9885
+ #: includes/hidden-plugin-folders-cron.php:264
9886
+ #: includes/hidden-plugin-folders-cron.php:279
9887
+ #: includes/hidden-plugin-folders-cron.php:294
9888
+ #: includes/hidden-plugin-folders-cron.php:323
9889
+ msgid " textarea box option to make this Alert go away."
9890
+ msgstr ""
9891
+
9892
+ #: includes/hidden-plugin-folders-cron.php:249
9893
+ #: includes/hidden-plugin-folders-cron.php:264
9894
+ #: includes/hidden-plugin-folders-cron.php:279
9895
+ #: includes/hidden-plugin-folders-cron.php:294
9896
+ msgid "File Path: "
9897
+ msgstr ""
9898
+
9899
+ #: includes/hidden-plugin-folders-cron.php:249
9900
+ #: includes/hidden-plugin-folders-cron.php:264
9901
+ #: includes/hidden-plugin-folders-cron.php:279
9902
+ #: includes/hidden-plugin-folders-cron.php:294
9903
+ #: includes/hidden-plugin-folders-cron.php:323
9904
+ msgid "HPF Ignore Rule: "
9905
+ msgstr ""
9906
+
9907
+ #: includes/hidden-plugin-folders-cron.php:249
9908
+ #: includes/hidden-plugin-folders-cron.php:264
9909
+ #: includes/hidden-plugin-folders-cron.php:279
9910
+ #: includes/hidden-plugin-folders-cron.php:294
9911
+ #: includes/hidden-plugin-folders-cron.php:323
9912
+ msgid "Last Modified Time: "
9913
+ msgstr ""
9914
+
9915
+ #: includes/hidden-plugin-folders-cron.php:249
9916
+ #: includes/hidden-plugin-folders-cron.php:264
9917
+ #: includes/hidden-plugin-folders-cron.php:279
9918
+ #: includes/hidden-plugin-folders-cron.php:294
9919
+ #: includes/hidden-plugin-folders-cron.php:323
9920
+ msgid "Last Change Time: "
9921
+ msgstr ""
9922
+
9923
+ #: includes/hidden-plugin-folders-cron.php:249
9924
+ #: includes/hidden-plugin-folders-cron.php:264
9925
+ #: includes/hidden-plugin-folders-cron.php:279
9926
+ #: includes/hidden-plugin-folders-cron.php:294
9927
+ #: includes/hidden-plugin-folders-cron.php:323
9928
+ msgid "Last Access Time: "
9929
+ msgstr ""
9930
+
9931
+ #: includes/hidden-plugin-folders-cron.php:249
9932
+ #: includes/hidden-plugin-folders-cron.php:264
9933
+ #: includes/hidden-plugin-folders-cron.php:279
9934
+ #: includes/hidden-plugin-folders-cron.php:294
9935
+ msgid "File Contents: "
9936
+ msgstr ""
9937
+
9938
+ #: includes/hidden-plugin-folders-cron.php:264
9939
+ msgid ""
9940
+ "A non-standard WP index.php file found in your /plugins/ folder appears to "
9941
+ "have been altered/tampered with. Most likely the index.php file is a hacker "
9942
+ "file or contains hacker code. If you have modified the index.php file and/or "
9943
+ "it is safe to ignore this file you can ignore this file check by adding the "
9944
+ "HPF Ignore Rule shown below in the "
9945
+ msgstr ""
9946
+
9947
+ #: includes/hidden-plugin-folders-cron.php:279
9948
+ msgid ""
9949
+ "An htaccess file was found in your /plugins/ folder and it does not appear "
9950
+ "to be a BPS htaccess file. Most likely the htaccess file is a hacker file or "
9951
+ "contains hacker code. If you have modified the htaccess file and/or it is "
9952
+ "safe to ignore this file you can ignore this file check by adding the HPF "
9953
+ "Ignore Rule shown below in the "
9954
+ msgstr ""
9955
+
9956
+ #: includes/hidden-plugin-folders-cron.php:294
9957
+ msgid ""
9958
+ "An unrecognized/non-standard WP file was found in your /plugins/ folder. "
9959
+ "This file may be a hacker file or contain hacker code. If you recognize this "
9960
+ "file and/or it is safe to ignore this file you can ignore this file check by "
9961
+ "adding the HPF Ignore Rule shown below in the "
9962
  msgstr ""
9963
 
9964
+ #: includes/hidden-plugin-folders-cron.php:323
9965
+ msgid ""
9966
+ "A plugin folder was found in your /plugins/ folder that is either a hidden "
9967
+ "plugin (plugin that is not displayed on the WordPress Plugins page) or an "
9968
+ "empty plugin folder. You can either delete this folder or if you recognize "
9969
+ "this folder and/or it is safe to ignore this folder you can ignore this "
9970
+ "folder check by adding the HPF Ignore Rule shown below in the "
9971
  msgstr ""
9972
 
9973
+ #: includes/hidden-plugin-folders-cron.php:323
9974
+ msgid "Plugin Folder Path: "
9975
  msgstr ""
9976
 
9977
+ #: includes/hud-autofix-setup.php:68
9978
+ msgid "BPS Notice: The Endurance Page Cache (EPC) must-use plugin is installed"
9979
  msgstr ""
9980
 
9981
+ #: includes/hud-autofix-setup.php:68
9982
+ msgid ""
9983
+ "The EPC must-use plugin has been automatically installed by your Web Host "
9984
+ "and requires these additional BPS setup steps to make sure everything is "
9985
+ "setup correctly:"
9986
  msgstr ""
9987
 
9988
+ #: includes/hud-autofix-setup.php:68 includes/hud-autofix-setup.php:252
9989
+ #: includes/hud-autofix-setup.php:318 includes/hud-autofix-setup.php:382
9990
+ msgid "BPS htaccess File Editor page"
9991
  msgstr ""
9992
 
9993
+ #: includes/hud-autofix-setup.php:68
9994
+ msgid ""
9995
+ " click the Unlock htaccess File button, go to the WordPress Settings > "
9996
+ "General page, scroll down to Endurance Cache settings,"
9997
  msgstr ""
9998
 
9999
+ #: includes/hud-autofix-setup.php:68
10000
+ msgid "click the Save Changes button, click this link: "
10001
  msgstr ""
10002
 
10003
+ #: includes/hud-autofix-setup.php:68 includes/hud-autofix-setup.php:118
10004
+ #: includes/hud-autofix-setup.php:142 includes/hud-autofix-setup.php:184
10005
+ #: includes/hud-autofix-setup.php:208 includes/hud-autofix-setup.php:252
10006
+ #: includes/hud-autofix-setup.php:277 includes/hud-autofix-setup.php:318
10007
+ #: includes/hud-autofix-setup.php:342 includes/hud-autofix-setup.php:382
10008
+ #: includes/hud-autofix-setup.php:406
10009
+ msgid "BPS Setup Wizard"
10010
  msgstr ""
10011
 
10012
+ #: includes/hud-autofix-setup.php:68
10013
+ msgid " and click the Setup Wizard button."
10014
  msgstr ""
10015
 
10016
+ #: includes/hud-autofix-setup.php:68 includes/hud-dismiss-functions.php:63
10017
+ #: includes/hud-dismiss-functions.php:97 includes/hud-dismiss-functions.php:130
10018
+ #: includes/hud-dismiss-functions.php:341
10019
+ #: includes/hud-dismiss-functions.php:346
10020
+ #: includes/hud-dismiss-functions.php:384
10021
+ #: includes/hud-dismiss-functions.php:389
10022
+ #: includes/hud-dismiss-functions.php:445
10023
+ #: includes/hud-dismiss-functions.php:488
10024
+ #: includes/hud-dismiss-functions.php:541
10025
+ #: includes/hud-dismiss-functions.php:697
10026
  msgid ""
10027
+ "To Dismiss this Notice click the Dismiss Notice button below. To Reset "
10028
+ "Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Custom "
10029
+ "Code page."
10030
  msgstr ""
10031
 
10032
+ #: includes/hud-autofix-setup.php:68 includes/hud-dismiss-functions.php:63
10033
+ #: includes/hud-dismiss-functions.php:97 includes/hud-dismiss-functions.php:130
10034
+ #: includes/hud-dismiss-functions.php:195
10035
+ #: includes/hud-dismiss-functions.php:210
10036
+ #: includes/hud-dismiss-functions.php:216
10037
+ #: includes/hud-dismiss-functions.php:222
10038
+ #: includes/hud-dismiss-functions.php:228
10039
+ #: includes/hud-dismiss-functions.php:242
10040
+ #: includes/hud-dismiss-functions.php:248
10041
+ #: includes/hud-dismiss-functions.php:253
10042
+ #: includes/hud-dismiss-functions.php:341
10043
+ #: includes/hud-dismiss-functions.php:346
10044
+ #: includes/hud-dismiss-functions.php:384
10045
+ #: includes/hud-dismiss-functions.php:389
10046
+ #: includes/hud-dismiss-functions.php:445
10047
+ #: includes/hud-dismiss-functions.php:488
10048
+ #: includes/hud-dismiss-functions.php:541
10049
+ #: includes/hud-dismiss-functions.php:630
10050
+ #: includes/hud-dismiss-functions.php:697
10051
+ msgid "Dismiss Notice"
10052
  msgstr ""
10053
 
10054
+ #: includes/hud-autofix-setup.php:118
10055
  msgid ""
10056
+ "W3 Total Cache (W3TC) htaccess code was not found in your Root htaccess file"
 
 
 
 
 
 
10057
  msgstr ""
10058
 
10059
+ #: includes/hud-autofix-setup.php:118 includes/hud-autofix-setup.php:184
10060
+ #: includes/hud-autofix-setup.php:252 includes/hud-autofix-setup.php:318
10061
+ #: includes/hud-autofix-setup.php:382
10062
+ msgid ""
10063
+ "If you have deactivated Root Folder BulletProof Mode temporarily then "
10064
+ "disregard this message. When you activate Root Folder BulletProof Mode again "
10065
+ "this message will go away automatically."
10066
  msgstr ""
10067
 
10068
+ #: includes/hud-autofix-setup.php:118 includes/hud-autofix-setup.php:184
10069
+ #: includes/hud-autofix-setup.php:252 includes/hud-autofix-setup.php:318
10070
+ #: includes/hud-autofix-setup.php:382
10071
+ msgid ""
10072
+ "Or you can run the BPS Setup Wizard now to make this message go away now."
10073
  msgstr ""
10074
 
10075
+ #: includes/hud-autofix-setup.php:118
10076
  msgid ""
10077
+ "If you just installed W3 Total Cache then go to the W3TC plugin settings "
10078
+ "page, choose and save the W3TC plugin settings that you want to use and then "
10079
+ "run the "
10080
  msgstr ""
10081
 
10082
+ #: includes/hud-autofix-setup.php:118
10083
+ msgid " to automatically setup/combine W3TC and BPS htaccess code together."
 
 
10084
  msgstr ""
10085
 
10086
+ #: includes/hud-autofix-setup.php:142
10087
  msgid ""
10088
+ "W3 Total Cache (W3TC) is deactivated and W3TC htaccess code was found in "
10089
+ "your Root htaccess file"
10090
  msgstr ""
10091
 
10092
+ #: includes/hud-autofix-setup.php:142
10093
  msgid ""
10094
+ "If you have deactivated W3TC temporarily then disregard this message or you "
10095
+ "can run the BPS Setup Wizard now to make this message go away now."
 
 
10096
  msgstr ""
10097
 
10098
+ #: includes/hud-autofix-setup.php:142
10099
+ msgid "If you are planning on permanently uninstalling W3TC then run the "
 
 
 
10100
  msgstr ""
10101
 
10102
+ #: includes/hud-autofix-setup.php:142
10103
+ msgid " after you have uninstalled/deleted the W3TC plugin."
10104
  msgstr ""
10105
 
10106
+ #: includes/hud-autofix-setup.php:184
10107
+ msgid ""
10108
+ "WP Super Cache (WPSC) htaccess code was not found in your Root htaccess file"
10109
  msgstr ""
10110
 
10111
+ #: includes/hud-autofix-setup.php:184
10112
  msgid ""
10113
+ "If you just installed WP Super Cache then go to the WPSC plugin settings "
10114
+ "page, choose and save the WPSC plugin settings that you want to use and then "
10115
+ "run the "
10116
  msgstr ""
10117
 
10118
+ #: includes/hud-autofix-setup.php:184
10119
+ msgid " to automatically setup/combine WPSC and BPS htaccess code together."
10120
+ msgstr ""
10121
+
10122
+ #: includes/hud-autofix-setup.php:208
10123
  msgid ""
10124
+ "WP Super Cache (WPSC) is deactivated and WPSC htaccess code was found in "
10125
+ "your Root htaccess file"
10126
  msgstr ""
10127
 
10128
+ #: includes/hud-autofix-setup.php:208
10129
  msgid ""
10130
+ "If you have deactivated WPSC temporarily then disregard this message or you "
10131
+ "can run the BPS Setup Wizard now to make this message go away now."
10132
  msgstr ""
10133
 
10134
+ #: includes/hud-autofix-setup.php:208
10135
+ msgid "If you are planning on permanently uninstalling WPSC then run the "
10136
  msgstr ""
10137
 
10138
+ #: includes/hud-autofix-setup.php:208
10139
+ msgid " after you have uninstalled/deleted the WPSC plugin."
 
10140
  msgstr ""
10141
 
10142
+ #: includes/hud-autofix-setup.php:252
10143
+ msgid "Comet Cache htaccess code was not found in your Root htaccess file"
 
 
10144
  msgstr ""
10145
 
10146
+ #: includes/hud-autofix-setup.php:252
10147
+ msgid "If you just installed Comet Cache then go to the "
 
 
10148
  msgstr ""
10149
 
10150
+ #: includes/hud-autofix-setup.php:252
10151
  msgid ""
10152
+ " click the Unlock htaccess File button, go to the Comet Cache plugin "
10153
+ "settings page, choose and save the Comet Cache plugin settings that you want "
10154
+ "to use and then run the "
 
10155
  msgstr ""
10156
 
10157
+ #: includes/hud-autofix-setup.php:252
10158
  msgid ""
10159
+ " to automatically setup/combine Comet Cache and BPS htaccess code together."
 
 
10160
  msgstr ""
10161
 
10162
+ #: includes/hud-autofix-setup.php:277
10163
+ msgid ""
10164
+ "Comet Cache is deactivated and Comet Cache htaccess code was found in your "
10165
+ "Root htaccess file"
10166
  msgstr ""
10167
 
10168
+ #: includes/hud-autofix-setup.php:277
10169
  msgid ""
10170
+ "If you have deactivated Comet Cache temporarily then disregard this message "
10171
+ "or you can run the BPS Setup Wizard now to make this message go away now."
10172
  msgstr ""
10173
 
10174
+ #: includes/hud-autofix-setup.php:277
10175
  msgid ""
10176
+ "If you are planning on permanently uninstalling Comet Cache then run the "
 
10177
  msgstr ""
10178
 
10179
+ #: includes/hud-autofix-setup.php:277
10180
+ msgid " after you have uninstalled/deleted the Comet Cache plugin."
10181
  msgstr ""
10182
 
10183
+ #: includes/hud-autofix-setup.php:318
10184
+ msgid ""
10185
+ "WP Fastest Cache (WPFC) htaccess code was not found in your Root htaccess "
10186
+ "file"
10187
  msgstr ""
10188
 
10189
+ #: includes/hud-autofix-setup.php:318
10190
+ msgid "If you just installed WP Fastest Cache then go to the "
10191
  msgstr ""
10192
 
10193
+ #: includes/hud-autofix-setup.php:318
10194
+ msgid ""
10195
+ " click the Unlock htaccess File button, then go to the WPFC plugin settings "
10196
+ "page, choose and save the WPFC plugin settings that you want to use and then "
10197
+ "run the "
10198
  msgstr ""
10199
 
10200
+ #: includes/hud-autofix-setup.php:318
10201
+ msgid " to automatically setup/combine WPFC and BPS htaccess code together."
10202
  msgstr ""
10203
 
10204
+ #: includes/hud-autofix-setup.php:342
10205
  msgid ""
10206
+ "WP Fastest Cache (WPFC) is deactivated and WPFC htaccess code was found in "
10207
+ "your Root htaccess file"
10208
  msgstr ""
10209
 
10210
+ #: includes/hud-autofix-setup.php:342
10211
  msgid ""
10212
+ "If you have deactivated WPFC temporarily then disregard this message or you "
10213
+ "can run the BPS Setup Wizard now to make this message go away now."
10214
  msgstr ""
10215
 
10216
+ #: includes/hud-autofix-setup.php:342
10217
+ msgid "If you are planning on permanently uninstalling WPFC then run the "
10218
  msgstr ""
10219
 
10220
+ #: includes/hud-autofix-setup.php:342
10221
+ msgid " after you have uninstalled/deleted the WPFC plugin."
 
 
10222
  msgstr ""
10223
 
10224
+ #: includes/hud-autofix-setup.php:382
10225
+ msgid "WP Rocket htaccess code was not found in your Root htaccess file"
10226
  msgstr ""
10227
 
10228
+ #: includes/hud-autofix-setup.php:382
10229
+ msgid "If you just installed WP Rocket then go to the "
 
 
10230
  msgstr ""
10231
 
10232
+ #: includes/hud-autofix-setup.php:382
10233
+ msgid ""
10234
+ " click the Unlock htaccess File button, then go to the WP Rocket plugin "
10235
+ "settings page, choose and save the WP Rocket plugin settings that you want "
10236
+ "to use and then run the "
10237
  msgstr ""
10238
 
10239
+ #: includes/hud-autofix-setup.php:382
10240
+ msgid ""
10241
+ " to automatically setup/combine WP Rocket and BPS htaccess code together."
10242
  msgstr ""
10243
 
10244
+ #: includes/hud-autofix-setup.php:406
10245
+ msgid ""
10246
+ "WP Rocket is deactivated and WP Rocket htaccess code was found in your Root "
10247
+ "htaccess file"
10248
  msgstr ""
10249
 
10250
+ #: includes/hud-autofix-setup.php:406
10251
  msgid ""
10252
+ "If you have deactivated WP Rocket temporarily then disregard this message or "
10253
+ "you can run the BPS Setup Wizard now to make this message go away now."
10254
  msgstr ""
10255
 
10256
+ #: includes/hud-autofix-setup.php:406
10257
+ msgid "If you are planning on permanently uninstalling WP Rocket then run the "
 
 
10258
  msgstr ""
10259
 
10260
+ #: includes/hud-autofix-setup.php:406
10261
+ msgid " after you have uninstalled/deleted the WP Rocket plugin."
10262
  msgstr ""
10263
 
10264
+ #: includes/hud-autofix-whitelist.php:67
10265
+ msgid ""
10266
+ "CC Root Text Box 9: Allow HEAD Requests General Rule for Jetpack, Marmoset "
10267
+ "Viewer, BackWPup, MailPoet Newsletters (wysija newsletters), "
10268
+ "BackUpWordPress, Broken Link Checker, MailChimp for WordPress Plugins"
10269
  msgstr ""
10270
 
10271
+ #: includes/hud-autofix-whitelist.php:115
10272
+ msgid "CC Root Text Box 10: WooCommerce Plugin"
10273
  msgstr ""
10274
 
10275
+ #: includes/hud-autofix-whitelist.php:121
10276
+ msgid "CC Root Text Box 10: Simple Lightbox Plugin"
10277
  msgstr ""
10278
 
10279
+ #: includes/hud-autofix-whitelist.php:127
10280
+ msgid "CC Root Text Box 10: WPBakery Visual Composer Plugin"
10281
  msgstr ""
10282
 
10283
+ #: includes/hud-autofix-whitelist.php:133
10284
+ msgid "CC Root Text Box 10: Event Espresso Attendee Mover Plugin"
10285
  msgstr ""
10286
 
10287
+ #: includes/hud-autofix-whitelist.php:139
10288
+ msgid "CC Root Text Box 10: WP Rocket Plugin"
10289
  msgstr ""
10290
 
10291
+ #: includes/hud-autofix-whitelist.php:145
10292
+ msgid "CC Root Text Box 10: Easy Media Gallery Pro Plugin"
10293
  msgstr ""
10294
 
10295
+ #: includes/hud-autofix-whitelist.php:151
10296
+ msgid "CC Root Text Box 10: Nextend Facebook Connect Plugin"
10297
  msgstr ""
10298
 
10299
+ #: includes/hud-autofix-whitelist.php:157
10300
+ msgid "CC Root Text Box 10: Shashin Plugin"
10301
  msgstr ""
10302
 
10303
+ #: includes/hud-autofix-whitelist.php:163
10304
+ msgid "CC Root Text Box 10: Nocturnal Theme"
 
 
10305
  msgstr ""
10306
 
10307
+ #: includes/hud-autofix-whitelist.php:169
10308
+ msgid "CC Root Text Box 10: Shopp Plugin"
 
 
10309
  msgstr ""
10310
 
10311
+ #: includes/hud-autofix-whitelist.php:175
10312
+ msgid "CC Root Text Box 10: WP-Invoice - Web Invoice and Billing Plugin"
 
 
10313
  msgstr ""
10314
 
10315
+ #: includes/hud-autofix-whitelist.php:181
10316
+ msgid "CC Root Text Box 10: wp-greet Plugin"
 
 
10317
  msgstr ""
10318
 
10319
+ #: includes/hud-autofix-whitelist.php:187
10320
+ msgid "CC Root Text Box 10: WP-Juicebox Plugin"
 
 
10321
  msgstr ""
10322
 
10323
+ #: includes/hud-autofix-whitelist.php:193
10324
+ msgid "CC Root Text Box 10: Prayer Engine Plugin"
 
 
10325
  msgstr ""
10326
 
10327
+ #: includes/hud-autofix-whitelist.php:199
10328
+ msgid "CC Root Text Box 10: Appointment Calendar Plugin"
10329
  msgstr ""
10330
 
10331
+ #: includes/hud-autofix-whitelist.php:205
10332
+ msgid "CC Root Text Box 10: ThirstyAffiliates Plugin"
10333
  msgstr ""
10334
 
10335
+ #: includes/hud-autofix-whitelist.php:211
10336
+ msgid "CC Root Text Box 10: WooCommerce Ogone Payment Gateway Plugin"
 
 
10337
  msgstr ""
10338
 
10339
+ #: includes/hud-autofix-whitelist.php:217
10340
+ msgid "CC Root Text Box 10: OIOpublisher Ad Manager Plugin"
 
 
10341
  msgstr ""
10342
 
10343
+ #: includes/hud-autofix-whitelist.php:248
10344
+ msgid "CC Root Text Box 11: PDF Viewer (Envigeek Web Services) Plugin"
 
 
10345
  msgstr ""
10346
 
10347
+ #: includes/hud-autofix-whitelist.php:254
10348
+ msgid "CC Root Text Box 11: Marmoset Viewer Plugin"
 
 
10349
  msgstr ""
10350
 
10351
+ #: includes/hud-autofix-whitelist.php:260
10352
  msgid ""
10353
+ "CC Root Text Box 11: PDF viewer for WordPress (ThemeNcode code canyon) Plugin"
 
10354
  msgstr ""
10355
 
10356
+ #: includes/hud-autofix-whitelist.php:266
10357
+ msgid "CC Root Text Box 11: jupdf pdf viewer Plugin"
10358
  msgstr ""
10359
 
10360
+ #: includes/hud-autofix-whitelist.php:272
10361
+ msgid "CC Root Text Box 11: UserPro (code canyon) Plugin"
10362
  msgstr ""
10363
 
10364
+ #: includes/hud-autofix-whitelist.php:278
10365
+ msgid "CC Root Text Box 11: NativeChurch Theme"
10366
  msgstr ""
10367
 
10368
+ #: includes/hud-autofix-whitelist.php:284
10369
+ msgid "CC Root Text Box 11: User Avatar (CTLT DEV) Plugin"
10370
  msgstr ""
10371
 
10372
+ #: includes/hud-autofix-whitelist.php:290
10373
+ msgid "CC Root Text Box 11: OIOpublisher Ad Manager Plugin"
10374
  msgstr ""
10375
 
10376
+ #: includes/hud-autofix-whitelist.php:296
10377
+ msgid "CC Root Text Box 11: Digital Access Pass (DAP) Plugin"
10378
  msgstr ""
10379
 
10380
+ #: includes/hud-autofix-whitelist.php:302
10381
+ msgid "CC Root Text Box 11: Easy Pagination (code canyon) Plugin"
10382
  msgstr ""
10383
 
10384
+ #: includes/hud-autofix-whitelist.php:308
10385
+ msgid "CC Root Text Box 11: iTheme2 Theme"
10386
  msgstr ""
10387
 
10388
+ #: includes/hud-autofix-whitelist.php:314
10389
+ msgid "CC Root Text Box 11: SmoothV4.1 Theme"
10390
  msgstr ""
10391
 
10392
+ #: includes/hud-autofix-whitelist.php:387
10393
+ msgid "CC Root Text Box 12: WooCommerce PagSeguro Plugin"
10394
  msgstr ""
10395
 
10396
+ #: includes/hud-autofix-whitelist.php:393
10397
+ msgid "CC Root Text Box 12: Event Espresso Plugin"
10398
  msgstr ""
10399
 
10400
+ #: includes/hud-autofix-whitelist.php:399
10401
+ msgid "CC Root Text Box 12: WooCommerce Serial Key Plugin"
10402
  msgstr ""
10403
 
10404
+ #: includes/hud-autofix-whitelist.php:405
10405
+ msgid "CC Root Text Box 12: WooCommerce WorldPay Extension"
10406
  msgstr ""
10407
 
10408
+ #: includes/hud-autofix-whitelist.php:411
10409
+ msgid "CC Root Text Box 12: Kama Click Counter Plugin"
10410
  msgstr ""
10411
 
10412
+ #: includes/hud-autofix-whitelist.php:417
10413
+ msgid "CC Root Text Box 12: Riva Slider Pro Plugin"
10414
  msgstr ""
10415
 
10416
+ #: includes/hud-autofix-whitelist.php:423
10417
+ msgid "CC Root Text Box 12: WordPress Auto Spinner Plugin"
 
10418
  msgstr ""
10419
 
10420
+ #: includes/hud-autofix-whitelist.php:429
10421
+ msgid "CC Root Text Box 12: AgriTurismo Theme"
 
10422
  msgstr ""
10423
 
10424
+ #: includes/hud-autofix-whitelist.php:435
10425
+ msgid "CC Root Text Box 12: WP Content Copy Protection Plugin"
 
10426
  msgstr ""
10427
 
10428
+ #: includes/hud-autofix-whitelist.php:441
10429
+ msgid "CC Root Text Box 12: PanoPress Plugin"
 
 
10430
  msgstr ""
10431
 
10432
+ #: includes/hud-autofix-whitelist.php:447
10433
+ msgid "CC Root Text Box 12: Easy Social Share Buttons (Code Canyon) Plugin"
 
 
10434
  msgstr ""
10435
 
10436
+ #: includes/hud-autofix-whitelist.php:453
10437
+ msgid "CC Root Text Box 12: MainWP Plugin"
 
10438
  msgstr ""
10439
 
10440
+ #: includes/hud-autofix-whitelist.php:459
10441
+ msgid "CC Root Text Box 12: Clever Course Theme"
 
 
10442
  msgstr ""
10443
 
10444
+ #: includes/hud-autofix-whitelist.php:465
10445
+ msgid "CC Root Text Box 12: WP eStore (WP Cart for Digital Products) Plugin"
10446
  msgstr ""
10447
 
10448
+ #: includes/hud-autofix-whitelist.php:471
10449
+ msgid "CC Root Text Box 12: WP eMember Plugin"
 
 
10450
  msgstr ""
10451
 
10452
+ #: includes/hud-autofix-whitelist.php:477
10453
+ msgid "CC Root Text Box 12: Easy Digital Downloads Plugin"
 
 
10454
  msgstr ""
10455
 
10456
+ #: includes/hud-autofix-whitelist.php:483
10457
+ msgid "CC Root Text Box 12: MailPoet Newsletters (wysija newsletters) Plugin"
 
 
10458
  msgstr ""
10459
 
10460
+ #: includes/hud-autofix-whitelist.php:489
10461
+ msgid "CC Root Text Box 12: MailChimp for WordPress Plugin"
 
10462
  msgstr ""
10463
 
10464
+ #: includes/hud-autofix-whitelist.php:495
10465
+ msgid "CC Root Text Box 12: Digital Access Pass (DAP) Plugin"
10466
+ msgstr ""
10467
+
10468
+ #: includes/hud-autofix-whitelist.php:501
10469
+ msgid "CC Root Text Box 12: WordPress Newsletter (tribulant) Plugin"
10470
  msgstr ""
10471
 
10472
+ #: includes/hud-autofix-whitelist.php:559
10473
+ msgid "CC wp-admin Text Box 3: WooCommerce Product Feed Pro Plugin"
10474
  msgstr ""
10475
 
10476
+ #: includes/hud-autofix-whitelist.php:565
10477
+ msgid "CC wp-admin Text Box 3: WPBakery Visual Composer Plugin"
10478
  msgstr ""
10479
 
10480
+ #: includes/hud-autofix-whitelist.php:571
10481
+ msgid "CC wp-admin Text Box 3: Bookly Booking Plugin"
10482
  msgstr ""
10483
 
10484
+ #: includes/hud-autofix-whitelist.php:577
10485
+ msgid "CC wp-admin Text Box 3: Easy Media Gallery Pro Plugin"
10486
  msgstr ""
10487
 
10488
+ #: includes/hud-autofix-whitelist.php:583
10489
+ msgid "CC wp-admin Text Box 3: NextGen Gallery Plugin"
 
 
10490
  msgstr ""
10491
 
10492
+ #: includes/hud-autofix-whitelist.php:589
10493
+ msgid "CC wp-admin Text Box 3: OptimizePress Theme"
10494
  msgstr ""
10495
 
10496
+ #: includes/hud-autofix-whitelist.php:595
10497
+ msgid "CC wp-admin Text Box 3: tribulant Shopping Cart (WP Checkout) Plugin"
 
 
 
10498
  msgstr ""
10499
 
10500
+ #: includes/hud-autofix-whitelist.php:601
10501
+ msgid "CC wp-admin Text Box 3: ithemes Video Showcase Plugin"
10502
  msgstr ""
10503
 
10504
+ #: includes/hud-autofix-whitelist.php:607
10505
+ msgid "CC wp-admin Text Box 3: WP-Invoice - Web Invoice and Billing Plugin"
10506
  msgstr ""
10507
 
10508
+ #: includes/hud-autofix-whitelist.php:613
10509
+ msgid "CC wp-admin Text Box 3: Yoast SEO Plugin"
10510
  msgstr ""
10511
 
10512
+ #: includes/hud-autofix-whitelist.php:619
10513
+ msgid "CC wp-admin Text Box 3: Formidable Pro Plugin"
10514
  msgstr ""
10515
 
10516
+ #: includes/hud-autofix-whitelist.php:625
10517
+ msgid "CC wp-admin Text Box 3: Google Typography Plugin"
10518
  msgstr ""
10519
 
10520
+ #: includes/hud-autofix-whitelist.php:631
10521
+ msgid "CC wp-admin Text Box 3: Flare Plugin"
10522
  msgstr ""
10523
 
10524
+ #: includes/hud-autofix-whitelist.php:637
10525
+ msgid "CC wp-admin Text Box 3: bbPress Plugin"
10526
  msgstr ""
10527
 
10528
+ #: includes/hud-autofix-whitelist.php:643
10529
+ msgid ""
10530
+ "CC wp-admin Text Box 3: Spider Event Calendar (WordPress Event Calendar) "
10531
+ "Plugin"
10532
  msgstr ""
10533
 
10534
+ #: includes/hud-autofix-whitelist.php:652
10535
+ msgid "CC wp-admin Text Box 3: BuddyPress Plugin"
10536
  msgstr ""
10537
 
10538
+ #: includes/hud-autofix-whitelist.php:660
10539
+ msgid "CC wp-admin Text Box 3: WPML Translation Management Plugin"
10540
  msgstr ""
10541
 
10542
+ #: includes/hud-autofix-whitelist.php:666
10543
+ msgid "CC wp-admin Text Box 3: Events Manager Plugin"
 
 
 
 
10544
  msgstr ""
10545
 
10546
+ #: includes/hud-autofix-whitelist.php:672
10547
  msgid ""
10548
+ "CC wp-admin Text Box 3: MailPoet Newsletters (wysija newsletters) Plugin"
 
 
 
 
 
10549
  msgstr ""
10550
 
10551
+ #: includes/hud-autofix-whitelist.php:678
10552
+ msgid "CC wp-admin Text Box 3: Event Espresso Plugin"
 
 
 
 
10553
  msgstr ""
10554
 
10555
+ #: includes/hud-autofix-whitelist.php:684
10556
+ msgid "CC wp-admin Text Box 3: Content Egg (Free and Pro) Plugin"
 
 
 
 
10557
  msgstr ""
10558
 
10559
+ #: includes/hud-autofix-whitelist.php:712
10560
+ msgid "CC wp-admin Text Box 4: Content Egg (Free and Pro) Plugin"
 
 
 
10561
  msgstr ""
10562
 
10563
+ #: includes/hud-autofix-whitelist.php:718
10564
+ msgid "CC wp-admin Text Box 4: Event Espresso Plugin"
 
 
 
 
10565
  msgstr ""
10566
 
10567
+ #: includes/hud-autofix-whitelist.php:725
10568
+ msgid "CC wp-admin Text Box 4: Open Web Analytics (github) Plugin"
 
 
 
 
10569
  msgstr ""
10570
 
10571
+ #: includes/hud-autofix-whitelist.php:732
10572
+ msgid "CC wp-admin Text Box 4: UberGrid (code canyon) Plugin"
 
 
 
 
10573
  msgstr ""
10574
 
10575
+ #: includes/hud-autofix-whitelist.php:738
10576
+ msgid "BPS Setup Wizard AutoFix (AutoWhitelist|AutoSetup|AutoCleanup) Notice"
 
 
 
 
10577
  msgstr ""
10578
 
10579
+ #: includes/hud-autofix-whitelist.php:738
10580
+ msgid ""
10581
+ "One or more of your plugins or your theme requires a BPS Custom Code "
10582
+ "whitelist rule to be automatically created by the Setup Wizard."
 
10583
  msgstr ""
10584
 
10585
+ #: includes/hud-autofix-whitelist.php:738
10586
+ msgid "Setup Wizard link"
 
 
 
 
 
10587
  msgstr ""
10588
 
10589
+ #: includes/hud-autofix-whitelist.php:738
10590
  msgid ""
10591
+ " and click the Setup Wizard button to automatically create BPS Custom Code "
10592
+ "whitelist rules."
 
 
 
10593
  msgstr ""
10594
 
10595
+ #: includes/hud-autofix-whitelist.php:738
10596
+ msgid "This BPS AutoFix check can be turned Off on the "
 
 
 
 
10597
  msgstr ""
10598
 
10599
+ #: includes/hud-autofix-whitelist.php:738
10600
  msgid ""
10601
+ " page if you do not want BPS to check for any plugin or theme whitelist "
10602
+ "rules."
 
 
 
10603
  msgstr ""
10604
 
10605
+ #: includes/hud-autofix-whitelist.php:747
10606
+ msgid "BPS AutoFix Debug: Custom Code Text Box Number and Plugin or Theme Name"
10607
+ msgstr ""
10608
+
10609
+ #: includes/hud-autofix-whitelist.php:750
10610
+ msgid "No Plugin or Theme AutoFix Custom Code Whitelist Rules were found"
10611
  msgstr ""
10612
 
10613
+ #: includes/hud-dismiss-functions.php:41
10614
  msgid ""
10615
  "WARNING! BPS requires at least PHP5 to function correctly. Your PHP version "
10616
  "is: "
10617
  msgstr ""
10618
 
10619
+ #: includes/hud-dismiss-functions.php:41
10620
  msgid "BPS Guide - PHP5 Solution"
10621
  msgstr ""
10622
 
10623
+ #: includes/hud-dismiss-functions.php:41
10624
  msgid ""
10625
  "The BPS Guide will open in a new browser window. You will not be directed "
10626
  "away from your WordPress Dashboard."
10627
  msgstr ""
10628
 
10629
+ #: includes/hud-dismiss-functions.php:63
10630
  msgid ""
10631
  "WARNING! BPS has detected that Safe Mode is set to On in your php.ini file."
10632
  msgstr ""
10633
 
10634
+ #: includes/hud-dismiss-functions.php:63
10635
  msgid ""
10636
  "If you see errors that BPS was unable to automatically create the backup "
10637
  "folders this is probably the reason why."
10638
  msgstr ""
10639
 
10640
+ #: includes/hud-dismiss-functions.php:97
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10641
  msgid "HUD Check: Custom Permalinks are NOT being used."
10642
  msgstr ""
10643
 
10644
+ #: includes/hud-dismiss-functions.php:97
10645
  msgid "It is recommended that you use Custom Permalinks: "
10646
  msgstr ""
10647
 
10648
+ #: includes/hud-dismiss-functions.php:97
10649
  msgid "How to setup Custom Permalinks"
10650
  msgstr ""
10651
 
10652
+ #: includes/hud-dismiss-functions.php:130
10653
  msgid ""
10654
  "WARNING! BPS has detected that your Server is a Windows IIS Server that does "
10655
  "not support htaccess rewriting."
10656
  msgstr ""
10657
 
10658
+ #: includes/hud-dismiss-functions.php:130
10659
  msgid "Do NOT activate BulletProof Modes unless you know what you are doing."
10660
  msgstr ""
10661
 
10662
+ #: includes/hud-dismiss-functions.php:130
10663
  msgid "Your Server Type is: "
10664
  msgstr ""
10665
 
10666
+ #: includes/hud-dismiss-functions.php:130
10667
  msgid "WordPress Codex - Using Permalinks - see IIS section"
10668
  msgstr ""
10669
 
10670
+ #: includes/hud-dismiss-functions.php:153
10671
+ #: includes/hud-dismiss-functions.php:158
10672
  msgid "WARNING! BPS was unable to automatically create the /"
10673
  msgstr ""
10674
 
10675
+ #: includes/hud-dismiss-functions.php:153
10676
  msgid "/bps-backup folder."
10677
  msgstr ""
10678
 
10679
+ #: includes/hud-dismiss-functions.php:153
10680
+ #: includes/hud-dismiss-functions.php:158
10681
  msgid "You will need to create the /"
10682
  msgstr ""
10683
 
10684
+ #: includes/hud-dismiss-functions.php:153
10685
  msgid ""
10686
  "/bps-backup folder manually via FTP. The folder permissions for the bps-"
10687
  "backup folder need to be set to 755 in order to successfully perform "
10688
  "permanent online backups."
10689
  msgstr ""
10690
 
10691
+ #: includes/hud-dismiss-functions.php:153
10692
+ #: includes/hud-dismiss-functions.php:158
10693
  msgid "To remove this message permanently click "
10694
  msgstr ""
10695
 
10696
+ #: includes/hud-dismiss-functions.php:153
10697
+ #: includes/hud-dismiss-functions.php:158
10698
  msgid "here."
10699
  msgstr ""
10700
 
10701
+ #: includes/hud-dismiss-functions.php:158
10702
  msgid "/bps-backup/master-backups folder."
10703
  msgstr ""
10704
 
10705
+ #: includes/hud-dismiss-functions.php:158
10706
  msgid ""
10707
  "/bps-backup/master-backups folder manually via FTP. The folder permissions "
10708
  "for the master-backups folder need to be set to 755 in order to successfully "
10709
  "perform permanent online backups."
10710
  msgstr ""
10711
 
10712
+ #: includes/hud-dismiss-functions.php:192
10713
+ #: includes/hud-dismiss-functions.php:204
10714
  msgid "Bonus Custom Code:"
10715
  msgstr ""
10716
 
10717
+ #: includes/hud-dismiss-functions.php:192
10718
+ #: includes/hud-dismiss-functions.php:204
10719
  msgid ""
10720
  "Click the links below to get Bonus Custom Code or click the Dismiss Notice "
10721
  "links or click this "
10722
  msgstr ""
10723
 
10724
+ #: includes/hud-dismiss-functions.php:192
10725
+ #: includes/hud-dismiss-functions.php:204
10726
  msgid "Dismiss All Notices"
10727
  msgstr ""
10728
 
10729
+ #: includes/hud-dismiss-functions.php:192
10730
+ #: includes/hud-dismiss-functions.php:204
10731
  msgid ""
10732
  " link. To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices "
10733
  "button on the Custom Code page."
10734
  msgstr ""
10735
 
10736
+ #: includes/hud-dismiss-functions.php:195
10737
+ #: includes/hud-dismiss-functions.php:210
10738
+ #: includes/hud-dismiss-functions.php:216
10739
+ #: includes/hud-dismiss-functions.php:222
10740
+ #: includes/hud-dismiss-functions.php:228
10741
+ #: includes/hud-dismiss-functions.php:242
10742
+ #: includes/hud-dismiss-functions.php:248
10743
+ #: includes/hud-dismiss-functions.php:253
10744
  msgid "Get "
10745
  msgstr ""
10746
 
10747
+ #: includes/hud-dismiss-functions.php:195
10748
+ #: includes/hud-dismiss-functions.php:242
10749
  msgid "POST Request Attack Protection Code"
10750
  msgstr ""
10751
 
10752
+ #: includes/hud-dismiss-functions.php:195
10753
+ #: includes/hud-dismiss-functions.php:210
10754
+ #: includes/hud-dismiss-functions.php:216
10755
+ #: includes/hud-dismiss-functions.php:222
10756
+ #: includes/hud-dismiss-functions.php:228
10757
+ #: includes/hud-dismiss-functions.php:242
10758
+ #: includes/hud-dismiss-functions.php:248
10759
+ #: includes/hud-dismiss-functions.php:253
10760
  msgid " or "
10761
  msgstr ""
10762
 
10763
+ #: includes/hud-dismiss-functions.php:210
10764
  msgid "Brute Force Login Protection Code"
10765
  msgstr ""
10766
 
10767
+ #: includes/hud-dismiss-functions.php:216
10768
  msgid "Speed Boost Cache Code"
10769
  msgstr ""
10770
 
10771
+ #: includes/hud-dismiss-functions.php:222
10772
  msgid "Author Enumeration BOT Probe Code"
10773
  msgstr ""
10774
 
10775
+ #: includes/hud-dismiss-functions.php:228
10776
  msgid "XML-RPC DDoS Protection Code"
10777
  msgstr ""
10778
 
10779
+ #: includes/hud-dismiss-functions.php:248
10780
  msgid "Mime Sniffing|Drive-by Download Attack Protection Code"
10781
  msgstr ""
10782
 
10783
+ #: includes/hud-dismiss-functions.php:253
10784
  msgid "External iFrame|Clickjacking Protection Code"
10785
  msgstr ""
10786
 
10787
+ #: includes/hud-dismiss-functions.php:341
10788
+ #: includes/hud-dismiss-functions.php:384
10789
  msgid "HUD Check: Wordfence PHP/php.ini handler htaccess code detected"
10790
  msgstr ""
10791
 
10792
+ #: includes/hud-dismiss-functions.php:341
10793
+ #: includes/hud-dismiss-functions.php:384
10794
  msgid ""
10795
  "Wordfence PHP/php.ini handler htaccess code was found in your root .htaccess "
10796
  "file, but was NOT found in BPS Custom Code."
10797
  msgstr ""
10798
 
10799
+ #: includes/hud-dismiss-functions.php:341
10800
+ #: includes/hud-dismiss-functions.php:384
10801
  msgid ""
10802
  "Using the Wordfence WAF Firewall may cause serious/critical problems for "
10803
  "your website and BPS."
10804
  msgstr ""
10805
 
10806
+ #: includes/hud-dismiss-functions.php:346
10807
+ #: includes/hud-dismiss-functions.php:389
10808
  msgid "HUD Check: PHP/php.ini handler htaccess code check"
10809
  msgstr ""
10810
 
10811
+ #: includes/hud-dismiss-functions.php:346
10812
+ #: includes/hud-dismiss-functions.php:389
10813
  msgid ""
10814
  "PHP/php.ini handler htaccess code was found in your root .htaccess file, but "
10815
  "was NOT found in BPS Custom Code."
10816
  msgstr ""
10817
 
10818
+ #: includes/hud-dismiss-functions.php:346
10819
+ #: includes/hud-dismiss-functions.php:389
10820
  msgid "To automatically fix this click here: "
10821
  msgstr ""
10822
 
10823
+ #: includes/hud-dismiss-functions.php:346
10824
+ #: includes/hud-dismiss-functions.php:389
10825
  msgid ""
10826
  "The Setup Wizard Pre-Installation Checks feature will automatically fix this "
10827
  "just by visiting the Setup Wizard page."
10828
  msgstr ""
10829
 
10830
+ #: includes/hud-dismiss-functions.php:384
10831
  msgid " for the steps to fix this Wordfence problem."
10832
  msgstr ""
10833
 
10834
+ #: includes/hud-dismiss-functions.php:445
10835
  msgid "Sucuri Restrict wp-content access Hardening Option problem detected"
10836
  msgstr ""
10837
 
10838
+ #: includes/hud-dismiss-functions.php:445
10839
  msgid ""
10840
  "Using the Sucuri Restrict wp-content access Hardening Option breaks BPS "
10841
  "Security Logging, Plugin Firewall, Uploads Anti-Exploit Guard & probably "
10842
  "other things in BPS and other plugins as well."
10843
  msgstr ""
10844
 
10845
+ #: includes/hud-dismiss-functions.php:445
10846
  msgid "To fix this problem click this link: "
10847
  msgstr ""
10848
 
10849
+ #: includes/hud-dismiss-functions.php:445
10850
  msgid "Sucuri Hardening Options"
10851
  msgstr ""
10852
 
10853
+ #: includes/hud-dismiss-functions.php:445
10854
  msgid ""
10855
  " and click the Sucuri Restrict wp-content access Revert hardening button."
10856
  msgstr ""
10857
 
10858
+ #: includes/hud-dismiss-functions.php:488
10859
  msgid "The WordPress Firewall 2 plugin is installed and activated"
10860
  msgstr ""
10861
 
10862
+ #: includes/hud-dismiss-functions.php:488
10863
  msgid "It is recommended that you delete the WordPress Firewall 2 plugin."
10864
  msgstr ""
10865
 
10866
+ #: includes/hud-dismiss-functions.php:488
10867
  msgid " for more information."
10868
  msgstr ""
10869
 
10870
+ #: includes/hud-dismiss-functions.php:541
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10871
  msgid "BPS WooCommerce Options Notice: Enable Login Security for WooCommerce"
10872
  msgstr ""
10873
 
10874
+ #: includes/hud-dismiss-functions.php:541
10875
  msgid ""
10876
  "BPS Login Security & Monitoring (LSM) can be enabled/disabled for the "
10877
  "WooCommerce custom login page by checking or unchecking the "
10878
  msgstr ""
10879
 
10880
+ #: includes/hud-dismiss-functions.php:541
10881
  msgid "Enable Login Security for WooCommerce"
10882
  msgstr ""
10883
 
10884
+ #: includes/hud-dismiss-functions.php:541
10885
  msgid ""
10886
  " checkbox option setting. The LSM WooCommerce option is automatically "
10887
  "enabled during the BPS upgrade if you already had WooCommerce installed "
10891
  "LSM for WooCommerce."
10892
  msgstr ""
10893
 
10894
+ #: includes/hud-dismiss-functions.php:573
10895
  msgid "Notice: BPS Query String Exploits Code Changes"
10896
  msgstr ""
10897
 
10898
+ #: includes/hud-dismiss-functions.php:573
10899
  msgid ""
10900
  "Older BPS Query String Exploits code was found in BPS Custom Code. Several "
10901
  "Query String Exploits rules were changed/added/modified in the root ."
10902
  "htaccess file in BPS .49.6, .50.2 & .50.3."
10903
  msgstr ""
10904
 
10905
+ #: includes/hud-dismiss-functions.php:573
10906
  msgid ""
10907
  "Copy the new Query String Exploits section of code from your root .htaccess "
10908
  "file and paste it into this BPS Custom Code text box: CUSTOM CODE BPSQSE BPS "
10909
  "QUERY STRING EXPLOITS and click the Save Root Custom Code button."
10910
  msgstr ""
10911
 
10912
+ #: includes/hud-dismiss-functions.php:573
10913
  msgid ""
10914
  "This Notice will go away once you have copied the new Query String Exploits "
10915
  "code to BPS Custom Code and clicked the Save Root Custom Code button."
10916
  msgstr ""
10917
 
10918
+ #: includes/hud-dismiss-functions.php:592
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10919
  msgid "BPS Alert! A BPS htaccess file was NOT found in the BPS Backup folder: "
10920
  msgstr ""
10921
 
10922
+ #: includes/hud-dismiss-functions.php:592
10923
  msgid " and click the BPS Backup Folder BulletProof Mode Activate button."
10924
  msgstr ""
10925
 
10926
+ #: includes/hud-dismiss-functions.php:630
10927
  msgid "New Improved BPS Speed Boost Cache Code"
10928
  msgstr ""
10929
 
10930
+ #: includes/hud-dismiss-functions.php:630
10931
  msgid ""
10932
  "Older BPS Speed Boost Cache Code was found saved in this BPS Custom Code "
10933
  "text box: CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE"
10934
  msgstr ""
10935
 
10936
+ #: includes/hud-dismiss-functions.php:630
10937
  msgid ""
10938
  "Newer improved BPS Speed Boost Cache Code has been created, which should "
10939
  "improve website load speed performance even more."
10940
  msgstr ""
10941
 
10942
+ #: includes/hud-dismiss-functions.php:630
10943
  msgid "Get The New Improved BPS Speed Boost Cache Code"
10944
  msgstr ""
10945
 
10946
+ #: includes/hud-dismiss-functions.php:630
10947
  msgid ". To dismiss this Notice click the Dismiss Notice button below."
10948
  msgstr ""
10949
 
10950
+ #: includes/hud-dismiss-functions.php:630
10951
  msgid ""
10952
  "To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on "
10953
  "the Custom Code page."
10954
  msgstr ""
10955
 
10956
+ #: includes/hud-dismiss-functions.php:637
10957
+ msgid "BPS Speed Boost Cache Custom Code Notice"
10958
  msgstr ""
10959
 
10960
+ #: includes/hud-dismiss-functions.php:637
10961
  msgid ""
10962
+ "BPS Speed Boost Cache Code was found in this BPS Custom Code text box: "
10963
+ "CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE"
10964
  msgstr ""
10965
 
10966
+ #: includes/hud-dismiss-functions.php:637
10967
+ msgid ""
10968
+ "and another caching plugin's Marker text was also found in this BPS Custom "
10969
+ "Code text box."
10970
  msgstr ""
10971
 
10972
+ #: includes/hud-dismiss-functions.php:637
10973
+ msgid "Click this link: "
10974
  msgstr ""
10975
 
10976
+ #: includes/hud-dismiss-functions.php:637
10977
+ msgid "BPS Speed Boost Cache Custom Code Notice Forum Topic"
 
 
 
10978
  msgstr ""
10979
 
10980
+ #: includes/hud-dismiss-functions.php:637
10981
+ msgid " for help information on what this Notice means and what to do next."
10982
  msgstr ""
10983
 
10984
+ #: includes/hud-dismiss-functions.php:697
10985
+ msgid "BPS Plugin Automatic Update Notice"
10986
  msgstr ""
10987
 
10988
+ #: includes/hud-dismiss-functions.php:697
10989
  msgid ""
10990
+ "Would you like to have BPS plugin updates installed automatically? Click "
10991
+ "this link: "
10992
+ msgstr ""
10993
+
10994
+ #: includes/hud-dismiss-functions.php:697
10995
+ msgid " and click the BPS MU Tools Enable BPS Plugin AutoUpdates link."
10996
  msgstr ""
10997
 
10998
+ #: includes/login-security.php:89 includes/login-security.php:95
10999
+ #: includes/login-security.php:292 includes/login-security.php:422
11000
+ #: includes/login-security.php:428 includes/login-security.php:538
11001
+ #: includes/login-security.php:661 includes/login-security.php:667
11002
+ #: includes/login-security.php:671 includes/login-security.php:677
11003
+ #: includes/login-security.php:681 includes/login-security.php:691
11004
+ #: includes/login-security.php:699 includes/login-security.php:703
11005
+ #: includes/login-security.php:710 includes/login-security.php:714
11006
+ #: includes/login-security.php:724 includes/login-security.php:728
11007
+ #: includes/login-security.php:737 includes/login-security.php:741
11008
  msgid "ERROR:"
11009
  msgstr ""
11010
 
11011
+ #: includes/login-security.php:89 includes/login-security.php:292
11012
+ #: includes/login-security.php:422 includes/login-security.php:538
11013
  msgid " This user account has been locked until "
11014
  msgstr ""
11015
 
11016
+ #: includes/login-security.php:89 includes/login-security.php:292
11017
+ #: includes/login-security.php:422 includes/login-security.php:538
11018
  msgid ""
11019
  " due to too many failed login attempts. You can login again after the "
11020
  "Lockout Time above has expired."
11021
  msgstr ""
11022
 
11023
+ #: includes/login-security.php:95 includes/login-security.php:428
11024
+ #: includes/login-security.php:677 includes/login-security.php:681
11025
+ #: includes/login-security.php:724 includes/login-security.php:728
11026
+ #: includes/login-security.php:737 includes/login-security.php:741
11027
  msgid " Invalid Entry."
11028
  msgstr ""
11029
 
11030
+ #: includes/login-security.php:95 includes/login-security.php:428
11031
+ #: includes/login-security.php:661 includes/login-security.php:667
11032
+ #: includes/login-security.php:671 includes/login-security.php:677
11033
+ #: includes/login-security.php:681 includes/login-security.php:691
11034
+ #: includes/login-security.php:699 includes/login-security.php:703
11035
+ #: includes/login-security.php:710 includes/login-security.php:714
11036
+ #: includes/login-security.php:724 includes/login-security.php:728
11037
+ #: includes/login-security.php:737 includes/login-security.php:741
11038
  msgid "Lost your password?"
11039
  msgstr ""
11040
 
11041
+ #: includes/login-security.php:113 includes/login-security.php:252
11042
+ #: includes/login-security.php:496
11043
  msgid "A User has logged in on website: "
11044
  msgstr ""
11045
 
11046
+ #: includes/login-security.php:114 includes/login-security.php:130
11047
+ #: includes/login-security.php:161 includes/login-security.php:177
11048
+ #: includes/login-security.php:253 includes/login-security.php:269
11049
+ #: includes/login-security.php:497 includes/login-security.php:514
11050
  msgid ""
11051
  "To take further action go to the Login Security page. If you do not want to "
11052
  "receive further email alerts change or turn off Login Security Email Alerts."
11053
  msgstr ""
11054
 
11055
+ #: includes/login-security.php:115 includes/login-security.php:131
11056
+ #: includes/login-security.php:162 includes/login-security.php:178
11057
+ #: includes/login-security.php:212 includes/login-security.php:254
11058
+ #: includes/login-security.php:270 includes/login-security.php:366
11059
+ #: includes/login-security.php:451 includes/login-security.php:499
11060
+ #: includes/login-security.php:516 includes/login-security.php:612
11061
  msgid "Username:"
11062
  msgstr ""
11063
 
11064
+ #: includes/login-security.php:116 includes/login-security.php:132
11065
+ #: includes/login-security.php:163 includes/login-security.php:179
11066
+ #: includes/login-security.php:213 includes/login-security.php:255
11067
+ #: includes/login-security.php:271 includes/login-security.php:367
11068
+ #: includes/login-security.php:452 includes/login-security.php:500
11069
+ #: includes/login-security.php:517 includes/login-security.php:613
11070
  msgid "Status:"
11071
  msgstr ""
11072
 
11073
+ #: includes/login-security.php:117 includes/login-security.php:133
11074
+ #: includes/login-security.php:164 includes/login-security.php:180
11075
+ #: includes/login-security.php:214 includes/login-security.php:256
11076
+ #: includes/login-security.php:272 includes/login-security.php:368
11077
+ #: includes/login-security.php:453 includes/login-security.php:501
11078
+ #: includes/login-security.php:518 includes/login-security.php:614
11079
  msgid "User Role:"
11080
  msgstr ""
11081
 
11082
+ #: includes/login-security.php:118 includes/login-security.php:134
11083
+ #: includes/login-security.php:165 includes/login-security.php:181
11084
+ #: includes/login-security.php:215 includes/login-security.php:257
11085
+ #: includes/login-security.php:273 includes/login-security.php:369
11086
+ #: includes/login-security.php:454 includes/login-security.php:502
11087
+ #: includes/login-security.php:519 includes/login-security.php:615
11088
  msgid "Email:"
11089
  msgstr ""
11090
 
11091
+ #: includes/login-security.php:119 includes/login-security.php:135
11092
+ #: includes/login-security.php:166 includes/login-security.php:182
11093
+ #: includes/login-security.php:218 includes/login-security.php:258
11094
+ #: includes/login-security.php:274 includes/login-security.php:372
11095
+ #: includes/login-security.php:457 includes/login-security.php:503
11096
+ #: includes/login-security.php:520 includes/login-security.php:618
11097
  msgid "User IP Address:"
11098
  msgstr ""
11099
 
11100
+ #: includes/login-security.php:120 includes/login-security.php:136
11101
+ #: includes/login-security.php:167 includes/login-security.php:183
11102
+ #: includes/login-security.php:219 includes/login-security.php:259
11103
+ #: includes/login-security.php:275 includes/login-security.php:373
11104
+ #: includes/login-security.php:458 includes/login-security.php:504
11105
+ #: includes/login-security.php:521 includes/login-security.php:619
11106
  msgid "User Hostname:"
11107
  msgstr ""
11108
 
11109
+ #: includes/login-security.php:121 includes/login-security.php:137
11110
+ #: includes/login-security.php:168 includes/login-security.php:184
11111
+ #: includes/login-security.php:220 includes/login-security.php:260
11112
+ #: includes/login-security.php:276 includes/login-security.php:374
11113
+ #: includes/login-security.php:459 includes/login-security.php:505
11114
+ #: includes/login-security.php:522 includes/login-security.php:620
11115
  msgid "Request URI:"
11116
  msgstr ""
11117
 
11118
+ #: includes/login-security.php:122 includes/login-security.php:138
11119
+ #: includes/login-security.php:169 includes/login-security.php:185
11120
+ #: includes/login-security.php:221 includes/login-security.php:261
11121
+ #: includes/login-security.php:277 includes/login-security.php:375
11122
+ #: includes/login-security.php:460 includes/login-security.php:506
11123
+ #: includes/login-security.php:523 includes/login-security.php:621
11124
  msgid "Website:"
11125
  msgstr ""
11126
 
11127
+ #: includes/login-security.php:129 includes/login-security.php:176
11128
+ #: includes/login-security.php:268 includes/login-security.php:513
11129
  msgid "An Administrator has logged in on website: "
11130
  msgstr ""
11131
 
11132
+ #: includes/login-security.php:160
11133
  msgid "Test A User has logged in on website: "
11134
  msgstr ""
11135
 
11136
+ #: includes/login-security.php:207 includes/login-security.php:361
11137
+ #: includes/login-security.php:446 includes/login-security.php:607
11138
  msgid "A User Account has been locked on website: "
11139
  msgstr ""
11140
 
11141
+ #: includes/login-security.php:208 includes/login-security.php:362
11142
+ #: includes/login-security.php:447 includes/login-security.php:608
11143
  msgid ""
11144
  "To take further action go to the Login Security page. If no action is taken "
11145
  "then the User will be able to try and login again after the Lockout Time has "
11147
  "off Login Security Email Alerts."
11148
  msgstr ""
11149
 
11150
+ #: includes/login-security.php:209 includes/login-security.php:363
11151
+ #: includes/login-security.php:448 includes/login-security.php:609
11152
  msgid ""
11153
  "What to do if your User Account is locked and you are unable to login to "
11154
  "your website:"
11155
  msgstr ""
11156
 
11157
+ #: includes/login-security.php:209 includes/login-security.php:363
11158
+ #: includes/login-security.php:448 includes/login-security.php:609
11159
  msgid ""
11160
  " Use FTP or your web host control panel file manager and rename the /"
11161
  "bulletproof-security plugin folder name to /_bulletproof-security. Log into "
11164
  "Account."
11165
  msgstr ""
11166
 
11167
+ #: includes/login-security.php:210 includes/login-security.php:364
11168
+ #: includes/login-security.php:449 includes/login-security.php:610
11169
  msgid "What to do if your User Account is being locked repeatedly:"
11170
  msgstr ""
11171
 
11172
+ #: includes/login-security.php:210 includes/login-security.php:364
11173
+ #: includes/login-security.php:449 includes/login-security.php:610
11174
  msgid ""
11175
  " Additional things that you can do to protect publicly displayed usernames, "
11176
  "not exposing author names/user account names, etc."
11177
  msgstr ""
11178
 
11179
+ #: includes/login-security.php:216 includes/login-security.php:370
11180
+ #: includes/login-security.php:455 includes/login-security.php:616
11181
  msgid "Lockout Time:"
11182
  msgstr ""
11183
 
11184
+ #: includes/login-security.php:217 includes/login-security.php:371
11185
+ #: includes/login-security.php:456 includes/login-security.php:617
11186
  msgid "Lockout Time Expires:"
11187
  msgstr ""
11188
 
11189
+ #: includes/login-security.php:661 includes/login-security.php:671
11190
  msgid " Invalid username."
11191
  msgstr ""
11192
 
11193
+ #: includes/login-security.php:667
11194
  msgid " Invalid email address."
11195
  msgstr ""
11196
 
11197
+ #: includes/login-security.php:691 includes/login-security.php:703
11198
+ #: includes/login-security.php:714
11199
  msgid " The password you entered for the username "
11200
  msgstr ""
11201
 
11202
+ #: includes/login-security.php:691 includes/login-security.php:699
11203
+ #: includes/login-security.php:703 includes/login-security.php:710
11204
+ #: includes/login-security.php:714
11205
  msgid " is incorrect. "
11206
  msgstr ""
11207
 
11208
+ #: includes/login-security.php:699 includes/login-security.php:710
11209
  msgid " The password you entered for the email address "
11210
  msgstr ""
11211
 
11212
+ #: includes/login-security.php:699 includes/login-security.php:703
11213
+ #: includes/login-security.php:724 includes/login-security.php:737
11214
  msgid " Login Attempts Remaining "
11215
  msgstr ""
11216
 
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://wordpress.org/support/view/plugin-reviews/bulletproof-secur
4
  Tags: 400, 401, 403, 404, 405, 410, 503, apache, antivirus, attack, auth cookie, authenticate, authentication, authentication cookie, author, author id, auto-logout, automatic, backdoor, backup, ban, base64, block, blocked, Bot, brute force, bruteforce, bulletproof, chmod, code, coming soon, cookie, cookie expiration, crack, cracking, crlf, csrf, database backup, database table prefix, db backup, db table backup, db table prefix, developer, development, directory traversal, dos, ddos, dump, empty plugin, encode, enumeration, error log, event listener, expire, exploit, exploitation, file inclusion, firewall, hack, hackers, hidden file, hidden plugin, htaccess, http log, idle, idle logout, idle time, idle user, idle session, inactive logout, inactive time, inactive user, inactive session, infect, infected, infection, injection, lfi, linux, litespeed, lock, log, log off, logging, login alerts, login security, login, maintenance mode, maintenance, malicious, malware, multisite, mysql, mysql backup, network, offline, optimize, optimization, path traversal, performance, permissions, pingback, prevent, prevention, privacy, private, protection, remember me, rfi, safe, safety, schedule backup, script, secure, security log, security, session, signout, spam, spammers, speed increase, speed boost, sql injection, system information, system info, timeout, trackback, unavailable, under construction, user id, user account, user role, username, users, virus, viruses, vulnerable, vulnerability, website backup, wordpress backup, website security, windows, wordpress security, xmlrpc, xml-rpc, xss
5
  Requires at least: 3.7
6
  Tested up to: 4.8
7
- Stable tag: 1.1
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -12,11 +12,12 @@ Secure WordPress Website Security Protection: Firewall Security, Login Security,
12
 
13
  == Description ==
14
 
15
- Secure WordPress Website Security Protection: Firewall Security, Login Security, Database Security & Backup... View Security feature highlights below. <a href="https://wordpress.org/plugins/bulletproof-security/other_notes/" title="BulletProof Security feature details">View BulletProof Security feature details</a> for specific details about security features. Secure your WordPress website even further by adding additional BulletProof Security Bonus Custom Code (See the BulletProof Security Bonus Custom Code help section). Effective, Reliable & Easy to use WordPress Security Plugin.
16
 
17
  = BulletProof Security Feature Highlights =
18
 
19
  * One-Click Setup Wizard
 
20
  * .htaccess Website Security Protection (Firewalls)
21
  * Hidden Plugin Folders|Files Cron (HPF)
22
  * Login Security & Monitoring
@@ -34,6 +35,7 @@ Secure WordPress Website Security Protection: Firewall Security, Login Security,
34
  = BulletProof Security Pro Feature Highlights =
35
 
36
  * One-Click Setup Wizard
 
37
  * AutoRestore Intrusion Detection & Prevention System (ARQ IDPS)
38
  * Quarantine Intrusion Detection & Prevention System (ARQ IDPS)
39
  * Real-time File Monitor (IDPS)
@@ -73,6 +75,10 @@ https://www.youtube.com/watch?v=qTX-SjOVZdw
73
  * <a href="https://forum.ait-pro.com/video-tutorials/#custom-code" title="BulletProof Security Custom Code Video Tutorial" rel="nofollow" target="_blank">BulletProof Security Custom Code Video Tutorial</a>
74
  * <a href="https://forum.ait-pro.com/video-tutorials/#security-log-firewall" title="BulletProof Security Security Log Video Tutorial" rel="nofollow" target="_blank">BulletProof Security Security Log Video Tutorial</a>
75
 
 
 
 
 
76
  = Why .htaccess Website Security So Much Better Than Other Types of Website Security =
77
 
78
  The answer is very simple - .htaccess files (distributed Server configuration files) are processed by your server first before any other code on your website. In other words, hackers malicious scripts are stopped by BulletProof Security .htaccess files/Firewalls before those scripts even have a chance to reach the php code in WordPress.
@@ -85,59 +91,170 @@ WordPress is already very secure, but every website, no matter what type of plat
85
 
86
  Website performance is just as important as website security. BulletProof Security is website performance optimized with website owners best interests at heart. BulletProof Security does NOT abuse the WordPress Database by making excessive MySQL Queries. BulletProof Security does NOT store excessive & non-essential data in your WordPress Database. BulletProof Security does NOT use excessive Server Memory & Resources. BulletProof Security does NOT use any gimmicks or bells & whistles that will cost website owners their website performance. The benefits of having website security protection are negated if your website is performing poorly/slowly, continually experiencing out of memory errors/running out of memory, database size growing exponentially with non-essential stored data, etc. BulletProof Security can actually speed up & improve your website performance by using the Speed Boost Cache Bonus Code. See the BulletProof Security Bonus Custom Code help section below.
87
 
88
- = htaccess Core Website Security (Security|Firewalls) =
89
- <a href="https://wordpress.org/plugins/bulletproof-security/other_notes/" title="BulletProof Security Features">View BulletProof Security Feature Details</a>
90
 
91
- WordPress Website Security Protection: BulletProof Security protects your website against 100,000's of different hacking attempts/attacks. The .htaccess security filters in BulletProof Security are designed to match malicious and nuisance attack patterns. The most important benefits of using a finite pattern matching method vs infinite banning/blocking individual IP's, Host's, Referer's, etc. is that your website performance and Server resources are not negatively impacted. In general, BulletProof Security takes an "Action Approach" to website security. Hacker X, Spammer X, Bad Bot X does bad Action Y = Forbidden/Blocked. An "Action Approach" is a much more effective and performance optimized approach to website security since the bad action itself is being blocked/forbidden instead of attempting to block an individual hacker/spammer that performed a bad action. Example: BulletProof Security blocks all SQL Injection hacking attempts/attacks no matter who (IP Address, hostname, Bot name, etc.) performed the SQL Injection hacking attempt/attack. See the BulletProof Security Login Security & Monitoring Features section for additional features and options. See the BulletProof Security htaccess Core (Firewalls, etc.) Features section for additional features and options.
 
 
 
 
 
 
 
 
92
 
93
- = Hidden Plugin Folders|Files Cron (HPF) (Security|Monitoring) =
94
- <a href="https://wordpress.org/plugins/bulletproof-security/other_notes/" title="BulletProof Security Features">View BulletProof Security Feature Details</a>
95
 
96
- The HPF Cron checks the WordPress /plugins/ folder for hidden or empty plugin folders and any non-standard WP files or altered files in the /plugins/ folder. If a hidden or empty plugin folder or non-standard WP file is found in the WordPress /plugins/ folder, BPS displays a Dashboard Alert and sends an Email Alert. A hidden or empty plugin folder is a plugin the exists in your /plugins/ folder, but is not displayed on the WordPress Plugins page. A hidden plugin can be used as a hacker backdoor to gain access to your WP Dashboard, hosting account, create user accounts, completely control your website and hosting account, etc. A non-standard WP file or modified/altered file in your /plugins/ folder can also do all of the things a hidden plugin can do.
97
 
98
- = Login Security & Monitoring Website Security (Security|Monitoring) =
99
- <a href="https://wordpress.org/plugins/bulletproof-security/other_notes/" title="BulletProof Security Features">View BulletProof Security Feature Details</a>
100
 
101
- Login Security & Login Monitoring: Log All User Account Logins or Log Only User Account Lockouts (see Screenshot). Brute Force Login Security Protection. Email alerting options allow you to choose 5 different email alerting options: Choose to have email alerts sent when a User Account is locked out, An Administrator Logs in, An Administrator Logs in and when a User Account is locked out, Any User logs in and when a User Account is locked out or Do Not Send Email Alerts. Choose Standard WP Error Messages or Generic Error Messages for Login Security Stealth Mode. Choose to Enable or Disable Login Password Reset capability for Login Security Stealth Mode. See the BulletProof Security Login Security & Monitoring Features section for additional features and options.
102
 
103
- = Idle Session Logout (ISL) (Security|Performance|Optimization) =
104
- <a href="https://wordpress.org/plugins/bulletproof-security/other_notes/" title="BulletProof Security Features">View BulletProof Security Feature Details</a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
105
 
106
- Automatically logout idle/inactive Users. ISL uses javascript Event Listeners to monitor Users activity for these ISL events: keyboard key is pressed, mouse button is pressed, mouse is moved, mouse wheel is rolled up or down, finger is placed on the touch surface/screen and finger already placed on the screen is moved across the screen. Option Settings: Turn On|Off, Idle Session Logout Time in Minutes, Idle Session Logout Page URL, Idle Session Logout Page Login URL, Idle Session Logout Page Custom Message, Idle Session Logout Page Custom CSS Style, User Account Exceptions, Enable|Disable Idle Session Logouts For These User Roles: Administrator, Editor, Author, Contributor, Subscriber & Custom User Roles, Enable|Disable Idle Session Logouts For TinyMCE Editors. See the BulletProof Security Idle Session Logout (ISL) Features section for additional features and options info.
107
 
108
- = Auth Cookie Expiration (ACE) (Security|Performance|Optimization) =
109
- <a href="https://wordpress.org/plugins/bulletproof-security/other_notes/" title="BulletProof Security Features">View BulletProof Security Feature Details</a>
 
 
110
 
111
- Change the WordPress Authentication Cookie Expiration time. The default WordPress Authentication Cookie Expiration time is 2880 Minutes/2 Days and 20160 Minutes/14 Days if a User checks the Remember Me checkbox when they login. You can change the WordPress Authentication Cookie Expiration time to whatever expiration time setting that you choose. Option Settings: Turn On|Off, Auth Cookie Expiration Time in Minutes, Remember Me Auth Cookie Expiration Time in Minutes, User Account Exceptions, Enable|Disable Auth Cookie Expiration Time For These User Roles: Administrator, Editor, Author, Contributor, Subscriber & Custom User Roles. See the BulletProof Security Auth Cookie Expiration (ACE) Features section for additional features and options info.
112
 
113
- = DB Backup: Database Backup Website Security (Security|Backup) =
114
- <a href="https://wordpress.org/plugins/bulletproof-security/other_notes/" title="BulletProof Security Features">View BulletProof Security Feature Details</a>
115
 
116
- DB Backup: Create manual and scheduled Backup Jobs. Selective database table backup and full database backup. Scheduled backup job options: Hourly, Daily, Weekly and Monthly. Send scheduled backup zip file via email or just send email only, automatically delete old backup files after a certain period of time, etc., etc., etc. All DB Backup options/settings and default setup is done automatically during upgrades and new installations. See the BulletProof Security DB Backup|Database Backup Features section for additional features and options.
 
 
 
 
 
 
 
117
 
118
- = FrontEnd|BackEnd Maintenance Mode (Security|Development) =
119
- <a href="https://wordpress.org/plugins/bulletproof-security/other_notes/" title="BulletProof Security Features">View BulletProof Security Feature Details</a>
120
 
121
- Display a website under maintenance page with Countdown Timer to website visitors while the website displays and functions normally for you. When the Countdown Timer has completed (reached 0) an email reminder is sent to you to remind you that the Countdown Timer has completed. The new BPS Maintenance Mode design includes 20 background images, 15 center images (text box image), allows you to embed image files and YouTube videos, FrontEnd Maintenance Mode, BackEnd Maintenance Mode or both FrontEnd & BackEnd Maintenance Modes and most importantly is fast and simple to use so that you can switch in and out of Maintenance mode quickly and easily. FrontEnd Maintenance mode is primarily designed for development/maintenance purposes and BackEnd Maintenance Mode is technically a security feature since enabling BackEnd Maintenance Mode allows you to deny access to the /wp-admin folder/WP Dashboard by IP address. See the BulletProof Security FrontEnd|BackEnd Maintenance Mode Features section for additional features and options.
122
 
123
- = Translations =
 
 
 
 
 
 
 
 
 
 
124
 
125
- * Language Packs: <a href="https://translate.wordpress.org/projects/wp-plugins/bulletproof-security" title="Translate BulletProof Security">Translate BulletProof Security</a>
126
- * 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.
127
 
128
- = BulletProof Security Bonus Custom Code =
129
 
130
- * <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>
131
- * <a href="https://forum.ait-pro.com/forums/topic/htaccess-caching-code-speed-boost-cache-code/" title="Speed Boost Cache .htaccess code" rel="nofollow" target="_blank">Speed Boost Cache .htaccess Code</a>
132
- * <a href="https://forum.ait-pro.com/forums/topic/hotlink-protection-do-not-block-google-bing-or-yahoo/" title="HotLink Protection .htaccess code - Google, Yahoo, Bing safe" rel="nofollow" target="_blank">HotLink Protection .htaccess Code - Google, Yahoo, Bing safe</a>
133
- * <a href="https://forum.ait-pro.com/forums/topic/wordpress-author-enumeration-bot-probe-protection-author-id-user-id/" title="Author ID|Username Bot Probe Protection Code" rel="nofollow" target="_blank">Author ID|Username Bot Probe Protection .htaccess Code</a>
134
- * <a href="https://forum.ait-pro.com/forums/topic/wordpress-xml-rpc-ddos-protection-protect-xmlrpc-php-block-xmlrpc-php-forbid-xmlrpc-php/" title="XML-RPC DDoS Protection" rel="nofollow" target="_blank">XML-RPC DDoS Protection .htaccess Code</a> (Double Bonus: Trackback|Pingback Protection)
135
- * <a href="https://forum.ait-pro.com/forums/topic/block-referer-spammers-semalt-kambasoft-ranksonic-buttons-for-website/" title="Referer Spammers|Phishing Protection .htaccess Code" rel="nofollow" target="_blank">Referer Spammers|Phishing Protection .htaccess Code</a>
136
- * <a href="https://forum.ait-pro.com/forums/topic/mime-sniffing-data-sniffing-content-sniffing-drive-by-download-attack-protection/" title="Mime Sniffing|Drive-by Download Attack Protection .htaccess Code" rel="nofollow" target="_blank">Mime Sniffing|Drive-by Download Attack Protection .htaccess Code</a>
137
- * <a href="https://forum.ait-pro.com/forums/topic/rssing-com-good-or-bad/" title="External iFrame and Clickjacking Protection .htaccess Code" rel="nofollow" target="_blank">External iFrame and Clickjacking Protection .htaccess Code</a>
138
- * <a href="https://forum.ait-pro.com/forums/topic/post-request-protection-post-attack-protection-post-request-blocker/" title="POST Request Attack Protection .htaccess Code" rel="nofollow" target="_blank">POST Request Attack Protection .htaccess Code</a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
139
 
140
- == Installation ==
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
141
 
142
  * <strong>Automated Setup Steps</strong>
143
  1. Click the Setup Wizard button.
@@ -203,7 +320,22 @@ Display a website under maintenance page with Countdown Timer to website visitor
203
  7. BPS UI|UX Debug: Turn On for debugging.
204
  8. BPS Plugin AutoUpdate: Turn On to allow BPS plugin automatic updates.
205
 
206
- == Frequently Asked Questions ==
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
207
 
208
  = Where can I find BulletProof Security additional troubleshooting steps & support? =
209
 
@@ -330,157 +462,10 @@ If a hidden or empty plugin folder is detected or a non-standard WP file is dete
330
  Yes. BulletProof Security works with Git, but does require some additional set up steps. Please see this thread for the setup steps
331
  <a href="http://wordpress.org/support/topic/plugin-bulletproof-security-bps-and-folder-locations?replies=15#post-2979555" title="Git distributed version control system setup steps" rel="nofollow" target="_blank">Git distributed version control system setup steps</a>
332
 
333
- == Screenshots ==
334
-
335
- 1. BulletProof Security - Setup Wizard
336
- 2. BulletProof Security - Security Log: Logs blocked hackers/spammers & troubleshooting tool
337
- 3. BulletProof Security - htaccess Core Security Modes (Firewalls)
338
- 4. BulletProof Security - System Info: Extensive website/server information
339
- 5. BulletProof Security - Login Security and Monitoring: Log all logins or only locked accounts
340
- 6. BulletProof Security - Idle Session Logout (ISL)|Auth Cookie Expiration (ACE)
341
- 7. BulletProof Security - DB Backup: Scheduled/manual DB Backups
342
- 8. BulletProof Security - Maintenance Mode
343
- 9. BulletProof Security - Maintenance Mode examples
344
-
345
  == Changelog ==
346
 
347
  <a href="https://forum.ait-pro.com/forums/topic/bps-changelog/" title="BPS Changelog" rel="nofollow" target="_blank">View BPS Changelog - Version History - Whats New</a>
348
 
349
  == Upgrade Notice ==
350
 
351
- View BPS Changelog|Whats New: https://forum.ait-pro.com/forums/topic/bps-changelog/
352
-
353
- == Help Info ==
354
-
355
- Extensive Help Info can be found on the <a href="https://forum.ait-pro.com/forums/topic/read-me-first-free/#bps-free-general-troubleshooting" title="AIT-pro.com Forum" rel="nofollow" target="_blank">AIT-pro.com Forum</a> website and by clicking the Read Me Help buttons on BulletProof Security pages themselves. The BPS Help and FAQ tab pages contain additional help links.
356
-
357
- = BulletProof Security htaccess Core (Firewalls, etc.) Features =
358
-
359
- * Root Folder BulletProof Mode|Firewall
360
- * wp-admin Folder BulletProof Mode|Firewall
361
- * Built-in .htaccess File Editor & File Manager
362
- * Built-in .htaccess Backup and Restore
363
- * One-click .htaccess website security protection from within the WP Dashboard
364
- * .htaccess security protection against hacking attempts: XSS|RFI|CRLF|CSRF|Base64|Code Injection|SQL Injection
365
- * TimThumb Vulnerability|Exploit .htaccess security protection (Firewall)
366
- * .htaccess Lock|Unlock (404 Read-Only)
367
- * .htaccess AutoLock On|Off
368
- * Security|HTTP Error Logging: 400|403|404|405|410 HTTP Status Codes
369
- * Security Log: Add|Remove User Agents|Bots to Ignore|Not Log or Allow|Log
370
- * Security Log: Turn On|Turn Off|Delete Log
371
- * Security Log: Limit POST Request Body Data - capture or do not capture hacker scripts used in attacks. Note: See BPS POST Request Attack Protection Bonus Custom Code
372
- * Security Log Automation: Automatically zipped, emailed and replaced based on file size
373
- * Automatic .htaccess file updating on BPS upgrade installation
374
- * New .htaccess security filters automatically added during upgrade
375
- * WP Dashboard Alerts|WP Dashboard Dismiss Notices
376
- * Anti Comment Spam .htaccess code - works together with Akismet or other Spam plugins to keep Comment Spam at a minimum
377
- * Anti Comment Spambot .htaccess code - Forbid Empty Referrer Spambots
378
- * Author ID|User ID|Username Bot Probe Protection
379
- * Custom Code feature: Add|Edit|Modify|Save|Export|Import additional Bonus or personal custom .htaccess code
380
- * WordPress and other files protected with .htaccess security protection: readme.html, /wp-admin/install.php, wp-config.php, bb-config.php, php.ini and php5.ini files
381
- * Help & FAQ page: links to BPS Guide and other detailed Help & Info pages
382
- * Extensive jQuery UI Dialog Read Me Help buttons throughout the BulletProof Security plugin pages
383
- * HUD Success|Error message display
384
-
385
- = BulletProof Security System Info =
386
-
387
- * PHP|MySQL|MySQLi|OS|Server|Memory Usage and Limits|IP|SAPI|WP Filesystem API Method|DNS|Apache Modules|Directives Compatibility Checks|Max Upload|Zend Engine Version|Zend Guard|Loader|Optimizer|ionCube Loader|Suhosin|APC|eAccelerator|XCache|Varnish|cURL|OpenSSL Library|cURL OpenSSL Version|Memcache|Memcached|Plugins|Versions Installed|Activated|Get Plugins List|Browser Compression|GD Library|ImageMagick|WP Temp Dir|PHP Temp Dir|PHP Upload Temp Dir|Session Save Path|WP_TEMP_DIR constant|php.ini file path, etc.
388
- * File|Folder Permissions (CGI or DSO)|Script Owner User ID (UID)|File Owner User ID
389
- * PHP Server|PHP.ini|PHP directives Info
390
- * Website Headers Check Tool: Check your website Headers or another website's Headers remotely by making a GET or HEAD Request
391
-
392
- = BulletProof Security Hidden Plugin Folders|Files Cron (HPF) =
393
-
394
- * A hidden or empty plugin folder is a plugin the exists in your /plugins/ folder, but is not displayed on the WordPress Plugins page. A hidden plugin can be used as a hacker backdoor to gain access to your WP Dashboard, hosting account, create user accounts, completely control your website and hosting account, etc. A non-standard WP file or modified/altered file in your /plugins/ folder can also do all of the things a hidden plugin can do.
395
- * Automated Cron check that checks the WordPress /plugins folder for hidden plugins or non-standard WP file
396
- * Displays Dashboard Alerts
397
- * Sends Email Alerts
398
- * HPF Cron Check Frequency settings: 1, 5, 10, 15, 30 or 60 minutes
399
- * HPF Cron On|Off: Turn the HPF Cron On or Off
400
- * Ignore Hidden Plugin Folders & Files: Whitelisting tool to ignore plugin folders or non-standard WP files
401
- * HPF is automatically setup during BPS Upgrades or when running the BPS Setup Wizard
402
-
403
- = BulletProof Security Login Security & Monitoring Features =
404
-
405
- * Brute Force Login Security Protection
406
- * Log All User Account Logins or Log Only User Account Lockouts
407
- * Logged DB Fields: User ID|Username|Display Name|Email|Role|Login Time|Lockout Expires|IP Address|Hostname|Request URI
408
- * Email Alerting Options: User Account is locked out|An Administrator Logs in|An Administrator Logs in and when a User Account is locked out|Any User logs in and when a User Account is locked out|Do Not Send Email Alerts
409
- * Login Security Additional Options: Max Login Attempts|Automatic Lockout Time|Manual Lockout Time|Max DB Rows To Show|Enable Login Security for WooCommerce|Turn On|Turn Off
410
- * Login Security Stealth Mode: Standard WP Error Messages or Generic Error Messages.
411
- * Login Security Attempts Remaining: Display a "Login Attempts Remaining X" message when an incorrect password is entered.
412
- * Login Security Stealth Mode: Enable or Disable Login Password Reset capability and links.
413
- * Dynamic DB Form: Lock|Unlock|Delete
414
- * Enhanced Search: Allows you to search all of the Login Security database rows/Fields
415
- * Click the Login Security Read Me help button for full descriptions of all features and options.
416
-
417
- = BulletProof Security Idle Session Logout (ISL) Features =
418
-
419
- * Turn On|Turn Off: ISL is Turned Off by default. Select Turn On ISL to turn ISL On.
420
- * Idle Session Logout Time in Minutes: Time in minutes for when an idle/inactive User should be logged out of your site.
421
- * Idle Session Logout Page URL: Defaults to BPS ISL Logout page URL or choose to redirect logged out users to any URL that you want to redirect them to.
422
- * Idle Session Logout Page Login URL: Displays a clickable Login URL/link to your WP Login page or you can choose not to display a Login URL/link.
423
- * Idle Session Logout Exclude URLs|URIs: This option allows you to exclude any pages or posts that you do not want ISL to check/monitor.
424
- * Idle Session Logout Page Custom Message: Use the default BPS ISL message/text or you can create your own custom ISL message/text.
425
- * Idle Session Logout Page Custom CSS Style: Use the default BPS CSS Style code or enter your own custom CSS Style customizations.
426
- * User Account Exceptions: Disable ISL by User Account names. User Account Exceptions override the User Roles option setting.
427
- * Enable|Disable Idle Session Logouts For These User Roles: Enable ISL for Users by User Role: Administrator, Editor, Author, Contributor, Subscriber & Custom User Roles.
428
- * Enable|Disable Idle Session Logouts For TinyMCE Editors: Disable ISL for any/all pages that have a TinyMCE Editor on them.
429
-
430
- = BulletProof Security Auth Cookie Expiration (ACE) Features =
431
-
432
- * Turn On|Turn Off: ACE is Turned Off by default. Select Turn On ACE to turn ACE On.
433
- * Auth Cookie Expiration Time in Minutes: Time in minutes for when a User should be logged out of your site.
434
- * Remember Me Auth Cookie Expiration Time in Minutes: Time in minutes for when a User should be logged out of your site when the User has checked the Remember Me checkbox.
435
- * Enable|Disable Remember Me Checkbox: Disable and do not display the Remember Me checkbox on your login page.
436
- * User Account Exceptions: Disable ACE by User Account names. User Account Exceptions override the User Roles option setting.
437
- * Enable|Disable Auth Cookie Expiration Time For These User Roles: Enable ACE for Users by User Role: Administrator, Editor, Author, Contributor, Subscriber & Custom User Roles.
438
-
439
- = BulletProof Security DB Backup|Database Backup Features =
440
-
441
- * Manual or scheduled database backups
442
- * Scheduled backup job options: Hourly, Daily, Weekly and Monthly
443
- * Send scheduled backup zip file via email or just send email only
444
- * Selective database table backup and full database backup
445
- * Automatically deletion of old backup files after a certain period of time
446
- * Backup Jobs - Manual|Scheduled Accordion Tab
447
- * Displays the Description|Job Name, Delete and Run Checkboxes, Job Type, Frequency, Last Backup, Next Backup, Email Backup and Job Created table columns.
448
- * Backup Files - Download|Delete Accordion Tab
449
- * Displays the Backup Filename, Delete Checkbox, Download Links, Backup Folder, Size and Date|Time table columns.
450
- * Create Backup Jobs Accordion Tab
451
- * Displays a dynamic DB Table Name checkbox form, Description|Backup Job Name, DB Backup Folder Location (default Obfuscated & Secure BPS Backup Folder location), DB Backup File Download Link|URL, Backup Job Type: Manual or Scheduled, Frequency of Scheduled Backup Job (recurring - Hourly, Daily, Weekly or Monthly), Hour When Scheduled Backup is Run (recurring - start time for a scheduled backup job), Day of Week When Scheduled Backup is Run (recurring - weekday day), Day of Month When Scheduled Backup is Run (recurring - day of the month), Send Scheduled Backup Zip File Via Email or Just Email Only - email zip backup file, do not email backup zip file, email and delete zip backup file or just send an email, Automatically Delete Old Backup Files (Never delete old backup files, delete backup files older than 1 day, 5 days, 10 days, 15 days, 30 days, 60 days, 90 days or 180 days), - Turn On|Off All Scheduled Backups (override - turn on all scheduled backups or turn off all scheduled backups).
452
- * Rename|Create|Reset Tool: Rename|Create|Reset DB Backup Folder Name
453
- * DB Backup Logging
454
- * Depending on your DB Backup settings, log entries will be logged anytime you run a Manual Backup Job or whenever a Scheduled Cron Backup Job is run. The Backup Job Completion Time, Zip Backup File Name, timestamp and other information is logged. If you have chosen the option to automatically delete old zip backup files then the zip backup file name and timestamp will be logged when old zip backup files are automatically deleted. When you create a new Backup Job your Backup Job Settings are logged/saved in the DB Backup Log.
455
- * DB Backup Log Automation: Automatically zipped, emailed and replaced based on file size
456
- * Click the DB Backup Read Me help button for full descriptions of all features and options.
457
-
458
- = BulletProof Security FrontEnd|BackEnd Maintenance Mode Features =
459
-
460
- * FrontEnd Maintenance Mode|BackEnd Maintenance Mode or both FrontEnd & BackEnd Maintenance Modes
461
- * Website displays & functions normally while visitors see a website under maintenance page
462
- * TinyMCE WYSIWYG Editor - Create Customizable Website Under Maintenance page
463
- * Embed image files and YouTube videos
464
- * 20 background images|15 center images (text box image)|Roll Your Own Design|Under Maintenance Page
465
- * Background image files/options and Center images (text box image) are independent of each other so that you can mix and match different background images with different Center images (text box image)
466
- * Enable Countdown Timer
467
- * Countdown Timer Text Color
468
- * Maintenance Mode Time in Minutes
469
- * Header Retry-After in Minutes ~ 503 HTTP Status Code
470
- * Enable FrontEnd Maintenance Mode ~ site development, maintenance, coming soon, under construction, etc.
471
- * Enable BackEnd Maintenance Mode ~ Deny All IP address .htaccess protection for the wp-admin folder/WP Dashboard
472
- * Maintenance Mode IP Address Whitelist Text Box: Enter The IP Addresses That Can View The Website Normally (not in Maintenance Mode)
473
- * Maintenance Mode Text|Images|Videos Displayed To Website Visitors
474
- * Background Images: 20 background images ~ mix and match with center images ~ see screenshot
475
- * Center Images: 15 center images ~ mix and match with background images ~ see screenshot
476
- * Background Colors (If not using a Background Image)
477
- * Display Visitor IP Address
478
- * Display Admin|Login Link
479
- * Enable Visitor Logging
480
- * Display Dashboard Reminder Message when site is in Maintenance Mode
481
- * Send Email Reminder when Maintenance Mode Countdown Timer has completed
482
- * Email: To|From|cc|bcc
483
- * Network|Multisite Primary Site Options ONLY
484
- * Put The Primary Site And All Subsites In Maintenance Mode
485
- * Put All Subsites In Maintenance Mode, But Not The Primary Site
486
- * Click the Maintenance Mode Read Me help button for full descriptions of all features and options.
4
  Tags: 400, 401, 403, 404, 405, 410, 503, apache, antivirus, attack, auth cookie, authenticate, authentication, authentication cookie, author, author id, auto-logout, automatic, backdoor, backup, ban, base64, block, blocked, Bot, brute force, bruteforce, bulletproof, chmod, code, coming soon, cookie, cookie expiration, crack, cracking, crlf, csrf, database backup, database table prefix, db backup, db table backup, db table prefix, developer, development, directory traversal, dos, ddos, dump, empty plugin, encode, enumeration, error log, event listener, expire, exploit, exploitation, file inclusion, firewall, hack, hackers, hidden file, hidden plugin, htaccess, http log, idle, idle logout, idle time, idle user, idle session, inactive logout, inactive time, inactive user, inactive session, infect, infected, infection, injection, lfi, linux, litespeed, lock, log, log off, logging, login alerts, login security, login, maintenance mode, maintenance, malicious, malware, multisite, mysql, mysql backup, network, offline, optimize, optimization, path traversal, performance, permissions, pingback, prevent, prevention, privacy, private, protection, remember me, rfi, safe, safety, schedule backup, script, secure, security log, security, session, signout, spam, spammers, speed increase, speed boost, sql injection, system information, system info, timeout, trackback, unavailable, under construction, user id, user account, user role, username, users, virus, viruses, vulnerable, vulnerability, website backup, wordpress backup, website security, windows, wordpress security, xmlrpc, xml-rpc, xss
5
  Requires at least: 3.7
6
  Tested up to: 4.8
7
+ Stable tag: 2.0
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
12
 
13
  == Description ==
14
 
15
+ Secure WordPress Website Security Protection: Firewall Security, Login Security, Database Security & Backup... View Security feature highlights below. View BulletProof Security feature details for specific details about security features. Secure your WordPress website even further by adding additional BulletProof Security Bonus Custom Code (See the BulletProof Security Bonus Custom Code help section). Effective, Reliable & Easy to use WordPress Security Plugin.
16
 
17
  = BulletProof Security Feature Highlights =
18
 
19
  * One-Click Setup Wizard
20
+ * Setup Wizard AutoFix (AutoWhitelist|AutoSetup|AutoCleanup)
21
  * .htaccess Website Security Protection (Firewalls)
22
  * Hidden Plugin Folders|Files Cron (HPF)
23
  * Login Security & Monitoring
35
  = BulletProof Security Pro Feature Highlights =
36
 
37
  * One-Click Setup Wizard
38
+ * Setup Wizard AutoFix (AutoWhitelist|AutoSetup|AutoCleanup)
39
  * AutoRestore Intrusion Detection & Prevention System (ARQ IDPS)
40
  * Quarantine Intrusion Detection & Prevention System (ARQ IDPS)
41
  * Real-time File Monitor (IDPS)
75
  * <a href="https://forum.ait-pro.com/video-tutorials/#custom-code" title="BulletProof Security Custom Code Video Tutorial" rel="nofollow" target="_blank">BulletProof Security Custom Code Video Tutorial</a>
76
  * <a href="https://forum.ait-pro.com/video-tutorials/#security-log-firewall" title="BulletProof Security Security Log Video Tutorial" rel="nofollow" target="_blank">BulletProof Security Security Log Video Tutorial</a>
77
 
78
+ = Setup Wizard AutoFix (AutoWhitelist|AutoSetup|AutoCleanup) =
79
+
80
+ Setup Wizard AutoFix checks which plugins and themes you currently have installed and will display a BPS Setup Wizard AutoFix Notice to run the BPS Setup Wizard if any currently installed plugins or themes require Custom Code whitelist rules or AutoSetup. The BPS Setup Wizard automatically creates BPS Custom Code whitelist rules for known issues with any plugins and themes that need Custom Code whitelist rules. Setup Wizard AutoFix also automatically sets up and cleans up caching plugin's htaccess code for these WordPress 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. For more detailed help information and a list of all plugins and themes that have AutoFixes click this link: <a href="https://forum.ait-pro.com/forums/topic/setup-wizard-autofix/" title="Setup Wizard AutoFix Forum Topic" rel="nofollow" target="_blank">Setup Wizard AutoFix Forum Topic</a>.
81
+
82
  = Why .htaccess Website Security So Much Better Than Other Types of Website Security =
83
 
84
  The answer is very simple - .htaccess files (distributed Server configuration files) are processed by your server first before any other code on your website. In other words, hackers malicious scripts are stopped by BulletProof Security .htaccess files/Firewalls before those scripts even have a chance to reach the php code in WordPress.
91
 
92
  Website performance is just as important as website security. BulletProof Security is website performance optimized with website owners best interests at heart. BulletProof Security does NOT abuse the WordPress Database by making excessive MySQL Queries. BulletProof Security does NOT store excessive & non-essential data in your WordPress Database. BulletProof Security does NOT use excessive Server Memory & Resources. BulletProof Security does NOT use any gimmicks or bells & whistles that will cost website owners their website performance. The benefits of having website security protection are negated if your website is performing poorly/slowly, continually experiencing out of memory errors/running out of memory, database size growing exponentially with non-essential stored data, etc. BulletProof Security can actually speed up & improve your website performance by using the Speed Boost Cache Bonus Code. See the BulletProof Security Bonus Custom Code help section below.
93
 
94
+ == Screenshots ==
 
95
 
96
+ 1. BulletProof Security - Setup Wizard
97
+ 2. BulletProof Security - Security Log: Logs blocked hackers/spammers & troubleshooting tool
98
+ 3. BulletProof Security - htaccess Core Security Modes (Firewalls)
99
+ 4. BulletProof Security - System Info: Extensive website/server information
100
+ 5. BulletProof Security - Login Security and Monitoring: Log all logins or only locked accounts
101
+ 6. BulletProof Security - Idle Session Logout (ISL)|Auth Cookie Expiration (ACE)
102
+ 7. BulletProof Security - DB Backup: Scheduled/manual DB Backups
103
+ 8. BulletProof Security - Maintenance Mode
104
+ 9. BulletProof Security - Maintenance Mode examples
105
 
106
+ == Help Info ==
 
107
 
108
+ Extensive Help Info can be found on the <a href="https://forum.ait-pro.com/forums/topic/read-me-first-free/#bps-free-general-troubleshooting" title="AIT-pro.com Forum" rel="nofollow" target="_blank">AIT-pro.com Forum</a> website and by clicking the Read Me Help buttons on BulletProof Security pages themselves. The BPS Help and FAQ tab pages contain additional help links.
109
 
110
+ = BulletProof Security htaccess Core (Firewalls, etc.) Features =
 
111
 
112
+ <strong>Description:</strong> WordPress Website Security Protection: BulletProof Security protects your website against 100,000's of different hacking attempts/attacks. The .htaccess security filters in BulletProof Security are designed to match malicious and nuisance attack patterns. The most important benefits of using a finite pattern matching method vs infinite banning/blocking individual IP's, Host's, Referer's, etc. is that your website performance and Server resources are not negatively impacted. In general, BulletProof Security takes an "Action Approach" to website security. Hacker X, Spammer X, Bad Bot X does bad Action Y = Forbidden/Blocked. An "Action Approach" is a much more effective and performance optimized approach to website security since the bad action itself is being blocked/forbidden instead of attempting to block an individual hacker/spammer that performed a bad action. Example: BulletProof Security blocks all SQL Injection hacking attempts/attacks no matter who (IP Address, hostname, Bot name, etc.) performed the SQL Injection hacking attempt/attack. See the BulletProof Security Login Security & Monitoring Features section for additional features and options. See the BulletProof Security htaccess Core (Firewalls, etc.) Features section for additional features and options.
113
 
114
+ * Root Folder BulletProof Mode|Firewall
115
+ * wp-admin Folder BulletProof Mode|Firewall
116
+ * Built-in .htaccess File Editor & File Manager
117
+ * Built-in .htaccess Backup and Restore
118
+ * One-click .htaccess website security protection from within the WP Dashboard
119
+ * .htaccess security protection against hacking attempts: XSS|RFI|CRLF|CSRF|Base64|Code Injection|SQL Injection
120
+ * TimThumb Vulnerability|Exploit .htaccess security protection (Firewall)
121
+ * .htaccess Lock|Unlock (404 Read-Only)
122
+ * .htaccess AutoLock On|Off
123
+ * Security|HTTP Error Logging: 400|403|404|405|410 HTTP Status Codes
124
+ * Security Log: Add|Remove User Agents|Bots to Ignore|Not Log or Allow|Log
125
+ * Security Log: Turn On|Turn Off|Delete Log
126
+ * Security Log: Limit POST Request Body Data - capture or do not capture hacker scripts used in attacks. Note: See BPS POST Request Attack Protection Bonus Custom Code
127
+ * Security Log Automation: Automatically zipped, emailed and replaced based on file size
128
+ * Automatic .htaccess file updating on BPS upgrade installation
129
+ * New .htaccess security filters automatically added during upgrade
130
+ * WP Dashboard Alerts|WP Dashboard Dismiss Notices
131
+ * Anti Comment Spam .htaccess code - works together with Akismet or other Spam plugins to keep Comment Spam at a minimum
132
+ * Anti Comment Spambot .htaccess code - Forbid Empty Referrer Spambots
133
+ * Author ID|User ID|Username Bot Probe Protection
134
+ * Custom Code feature: Add|Edit|Modify|Save|Export|Import additional Bonus or personal custom .htaccess code
135
+ * WordPress and other files protected with .htaccess security protection: readme.html, /wp-admin/install.php, wp-config.php, bb-config.php, php.ini and php5.ini files
136
+ * Help & FAQ page: links to BPS Guide and other detailed Help & Info pages
137
+ * Extensive jQuery UI Dialog Read Me Help buttons throughout the BulletProof Security plugin pages
138
+ * HUD Success|Error message display
139
 
140
+ = BulletProof Security System Info =
141
 
142
+ * PHP|MySQL|MySQLi|OS|Server|Memory Usage and Limits|IP|SAPI|WP Filesystem API Method|DNS|Apache Modules|Directives Compatibility Checks|Max Upload|Zend Engine Version|Zend Guard|Loader|Optimizer|ionCube Loader|Suhosin|APC|eAccelerator|XCache|Varnish|cURL|OpenSSL Library|cURL OpenSSL Version|Memcache|Memcached|Plugins|Versions Installed|Activated|Get Plugins List|Browser Compression|GD Library|ImageMagick|WP Temp Dir|PHP Temp Dir|PHP Upload Temp Dir|Session Save Path|WP_TEMP_DIR constant|php.ini file path, etc.
143
+ * File|Folder Permissions (CGI or DSO)|Script Owner User ID (UID)|File Owner User ID
144
+ * PHP Server|PHP.ini|PHP directives Info
145
+ * Website Headers Check Tool: Check your website Headers or another website's Headers remotely by making a GET or HEAD Request
146
 
147
+ = BulletProof Security Hidden Plugin Folders|Files Cron (HPF) =
148
 
149
+ <strong>Description:</strong> The HPF Cron checks the WordPress /plugins/ folder for hidden or empty plugin folders and any non-standard WP files or altered files in the /plugins/ folder. If a hidden or empty plugin folder or non-standard WP file is found in the WordPress /plugins/ folder, BPS displays a Dashboard Alert and sends an Email Alert. A hidden or empty plugin folder is a plugin the exists in your /plugins/ folder, but is not displayed on the WordPress Plugins page. A hidden plugin can be used as a hacker backdoor to gain access to your WP Dashboard, hosting account, create user accounts, completely control your website and hosting account, etc. A non-standard WP file or modified/altered file in your /plugins/ folder can also do all of the things a hidden plugin can do.
 
150
 
151
+ * A hidden or empty plugin folder is a plugin the exists in your /plugins/ folder, but is not displayed on the WordPress Plugins page. A hidden plugin can be used as a hacker backdoor to gain access to your WP Dashboard, hosting account, create user accounts, completely control your website and hosting account, etc. A non-standard WP file or modified/altered file in your /plugins/ folder can also do all of the things a hidden plugin can do.
152
+ * Automated Cron check that checks the WordPress /plugins folder for hidden plugins or non-standard WP file
153
+ * Displays Dashboard Alerts
154
+ * Sends Email Alerts
155
+ * HPF Cron Check Frequency settings: 1, 5, 10, 15, 30 or 60 minutes
156
+ * HPF Cron On|Off: Turn the HPF Cron On or Off
157
+ * Ignore Hidden Plugin Folders & Files: Whitelisting tool to ignore plugin folders or non-standard WP files
158
+ * HPF is automatically setup during BPS Upgrades or when running the BPS Setup Wizard
159
 
160
+ = BulletProof Security Login Security & Monitoring Features =
 
161
 
162
+ <strong>Description:</strong> Login Security & Login Monitoring: Log All User Account Logins or Log Only User Account Lockouts (see Screenshot). Brute Force Login Security Protection. Email alerting options allow you to choose 5 different email alerting options: Choose to have email alerts sent when a User Account is locked out, An Administrator Logs in, An Administrator Logs in and when a User Account is locked out, Any User logs in and when a User Account is locked out or Do Not Send Email Alerts. Choose Standard WP Error Messages or Generic Error Messages for Login Security Stealth Mode. Choose to Enable or Disable Login Password Reset capability for Login Security Stealth Mode. See the BulletProof Security Login Security & Monitoring Features section for additional features and options.
163
 
164
+ * Brute Force Login Security Protection
165
+ * Log All User Account Logins or Log Only User Account Lockouts
166
+ * Logged DB Fields: User ID|Username|Display Name|Email|Role|Login Time|Lockout Expires|IP Address|Hostname|Request URI
167
+ * Email Alerting Options: User Account is locked out|An Administrator Logs in|An Administrator Logs in and when a User Account is locked out|Any User logs in and when a User Account is locked out|Do Not Send Email Alerts
168
+ * Login Security Additional Options: Max Login Attempts|Automatic Lockout Time|Manual Lockout Time|Max DB Rows To Show|Enable Login Security for WooCommerce|Turn On|Turn Off
169
+ * Login Security Stealth Mode: Standard WP Error Messages or Generic Error Messages.
170
+ * Login Security Attempts Remaining: Display a "Login Attempts Remaining X" message when an incorrect password is entered.
171
+ * Login Security Stealth Mode: Enable or Disable Login Password Reset capability and links.
172
+ * Dynamic DB Form: Lock|Unlock|Delete
173
+ * Enhanced Search: Allows you to search all of the Login Security database rows/Fields
174
+ * Click the Login Security Read Me help button for full descriptions of all features and options.
175
 
176
+ = BulletProof Security Idle Session Logout (ISL) Features =
 
177
 
178
+ <strong>Description:</strong> Automatically logout idle/inactive Users. ISL uses javascript Event Listeners to monitor Users activity for these ISL events: keyboard key is pressed, mouse button is pressed, mouse is moved, mouse wheel is rolled up or down, finger is placed on the touch surface/screen and finger already placed on the screen is moved across the screen. Option Settings: Turn On|Off, Idle Session Logout Time in Minutes, Idle Session Logout Page URL, Idle Session Logout Page Login URL, Idle Session Logout Page Custom Message, Idle Session Logout Page Custom CSS Style, User Account Exceptions, Enable|Disable Idle Session Logouts For These User Roles: Administrator, Editor, Author, Contributor, Subscriber & Custom User Roles, Enable|Disable Idle Session Logouts For TinyMCE Editors. See the BulletProof Security Idle Session Logout (ISL) Features section for additional features and options info.
179
 
180
+ * Turn On|Turn Off: ISL is Turned Off by default. Select Turn On ISL to turn ISL On.
181
+ * Idle Session Logout Time in Minutes: Time in minutes for when an idle/inactive User should be logged out of your site.
182
+ * Idle Session Logout Page URL: Defaults to BPS ISL Logout page URL or choose to redirect logged out users to any URL that you want to redirect them to.
183
+ * Idle Session Logout Page Login URL: Displays a clickable Login URL/link to your WP Login page or you can choose not to display a Login URL/link.
184
+ * Idle Session Logout Exclude URLs|URIs: This option allows you to exclude any pages or posts that you do not want ISL to check/monitor.
185
+ * Idle Session Logout Page Custom Message: Use the default BPS ISL message/text or you can create your own custom ISL message/text.
186
+ * Idle Session Logout Page Custom CSS Style: Use the default BPS CSS Style code or enter your own custom CSS Style customizations.
187
+ * User Account Exceptions: Disable ISL by User Account names. User Account Exceptions override the User Roles option setting.
188
+ * Enable|Disable Idle Session Logouts For These User Roles: Enable ISL for Users by User Role: Administrator, Editor, Author, Contributor, Subscriber & Custom User Roles.
189
+ * Enable|Disable Idle Session Logouts For TinyMCE Editors: Disable ISL for any/all pages that have a TinyMCE Editor on them.
190
+
191
+ = BulletProof Security Auth Cookie Expiration (ACE) Features =
192
+
193
+ <strong>Description:</strong> Change the WordPress Authentication Cookie Expiration time. The default WordPress Authentication Cookie Expiration time is 2880 Minutes/2 Days and 20160 Minutes/14 Days if a User checks the Remember Me checkbox when they login. You can change the WordPress Authentication Cookie Expiration time to whatever expiration time setting that you choose. Option Settings: Turn On|Off, Auth Cookie Expiration Time in Minutes, Remember Me Auth Cookie Expiration Time in Minutes, User Account Exceptions, Enable|Disable Auth Cookie Expiration Time For These User Roles: Administrator, Editor, Author, Contributor, Subscriber & Custom User Roles. See the BulletProof Security Auth Cookie Expiration (ACE) Features section for additional features and options info.
194
+
195
+ * Turn On|Turn Off: ACE is Turned Off by default. Select Turn On ACE to turn ACE On.
196
+ * Auth Cookie Expiration Time in Minutes: Time in minutes for when a User should be logged out of your site.
197
+ * Remember Me Auth Cookie Expiration Time in Minutes: Time in minutes for when a User should be logged out of your site when the User has checked the Remember Me checkbox.
198
+ * Enable|Disable Remember Me Checkbox: Disable and do not display the Remember Me checkbox on your login page.
199
+ * User Account Exceptions: Disable ACE by User Account names. User Account Exceptions override the User Roles option setting.
200
+ * Enable|Disable Auth Cookie Expiration Time For These User Roles: Enable ACE for Users by User Role: Administrator, Editor, Author, Contributor, Subscriber & Custom User Roles.
201
+
202
+ = BulletProof Security DB Backup|Database Backup Features =
203
 
204
+ <strong>Description:</strong> DB Backup: Create manual and scheduled Backup Jobs. Selective database table backup and full database backup. Scheduled backup job options: Hourly, Daily, Weekly and Monthly. Send scheduled backup zip file via email or just send email only, automatically delete old backup files after a certain period of time, etc., etc., etc. All DB Backup options/settings and default setup is done automatically during upgrades and new installations. See the BulletProof Security DB Backup|Database Backup Features section for additional features and options.
205
+
206
+ * Manual or scheduled database backups
207
+ * Scheduled backup job options: Hourly, Daily, Weekly and Monthly
208
+ * Send scheduled backup zip file via email or just send email only
209
+ * Selective database table backup and full database backup
210
+ * Automatically deletion of old backup files after a certain period of time
211
+ * Backup Jobs - Manual|Scheduled Accordion Tab
212
+ * Displays the Description|Job Name, Delete and Run Checkboxes, Job Type, Frequency, Last Backup, Next Backup, Email Backup and Job Created table columns.
213
+ * Backup Files - Download|Delete Accordion Tab
214
+ * Displays the Backup Filename, Delete Checkbox, Download Links, Backup Folder, Size and Date|Time table columns.
215
+ * Create Backup Jobs Accordion Tab
216
+ * Displays a dynamic DB Table Name checkbox form, Description|Backup Job Name, DB Backup Folder Location (default Obfuscated & Secure BPS Backup Folder location), DB Backup File Download Link|URL, Backup Job Type: Manual or Scheduled, Frequency of Scheduled Backup Job (recurring - Hourly, Daily, Weekly or Monthly), Hour When Scheduled Backup is Run (recurring - start time for a scheduled backup job), Day of Week When Scheduled Backup is Run (recurring - weekday day), Day of Month When Scheduled Backup is Run (recurring - day of the month), Send Scheduled Backup Zip File Via Email or Just Email Only - email zip backup file, do not email backup zip file, email and delete zip backup file or just send an email, Automatically Delete Old Backup Files (Never delete old backup files, delete backup files older than 1 day, 5 days, 10 days, 15 days, 30 days, 60 days, 90 days or 180 days), - Turn On|Off All Scheduled Backups (override - turn on all scheduled backups or turn off all scheduled backups).
217
+ * Rename|Create|Reset Tool: Rename|Create|Reset DB Backup Folder Name
218
+ * DB Backup Logging
219
+ * Depending on your DB Backup settings, log entries will be logged anytime you run a Manual Backup Job or whenever a Scheduled Cron Backup Job is run. The Backup Job Completion Time, Zip Backup File Name, timestamp and other information is logged. If you have chosen the option to automatically delete old zip backup files then the zip backup file name and timestamp will be logged when old zip backup files are automatically deleted. When you create a new Backup Job your Backup Job Settings are logged/saved in the DB Backup Log.
220
+ * DB Backup Log Automation: Automatically zipped, emailed and replaced based on file size
221
+ * Click the DB Backup Read Me help button for full descriptions of all features and options.
222
+
223
+ = BulletProof Security FrontEnd|BackEnd Maintenance Mode Features =
224
+
225
+ <strong>Description:</strong> Display a website under maintenance page with Countdown Timer to website visitors while the website displays and functions normally for you. When the Countdown Timer has completed (reached 0) an email reminder is sent to you to remind you that the Countdown Timer has completed. The new BPS Maintenance Mode design includes 20 background images, 15 center images (text box image), allows you to embed image files and YouTube videos, FrontEnd Maintenance Mode, BackEnd Maintenance Mode or both FrontEnd & BackEnd Maintenance Modes and most importantly is fast and simple to use so that you can switch in and out of Maintenance mode quickly and easily. FrontEnd Maintenance mode is primarily designed for development/maintenance purposes and BackEnd Maintenance Mode is technically a security feature since enabling BackEnd Maintenance Mode allows you to deny access to the /wp-admin folder/WP Dashboard by IP address. See the BulletProof Security FrontEnd|BackEnd Maintenance Mode Features section for additional features and options.
226
+
227
+ * FrontEnd Maintenance Mode|BackEnd Maintenance Mode or both FrontEnd & BackEnd Maintenance Modes
228
+ * Website displays & functions normally while visitors see a website under maintenance page
229
+ * TinyMCE WYSIWYG Editor - Create Customizable Website Under Maintenance page
230
+ * Embed image files and YouTube videos
231
+ * 20 background images|15 center images (text box image)|Roll Your Own Design|Under Maintenance Page
232
+ * Background image files/options and Center images (text box image) are independent of each other so that you can mix and match different background images with different Center images (text box image)
233
+ * Enable Countdown Timer
234
+ * Countdown Timer Text Color
235
+ * Maintenance Mode Time in Minutes
236
+ * Header Retry-After in Minutes ~ 503 HTTP Status Code
237
+ * Enable FrontEnd Maintenance Mode ~ site development, maintenance, coming soon, under construction, etc.
238
+ * Enable BackEnd Maintenance Mode ~ Deny All IP address .htaccess protection for the wp-admin folder/WP Dashboard
239
+ * Maintenance Mode IP Address Whitelist Text Box: Enter The IP Addresses That Can View The Website Normally (not in Maintenance Mode)
240
+ * Maintenance Mode Text|Images|Videos Displayed To Website Visitors
241
+ * Background Images: 20 background images ~ mix and match with center images ~ see screenshot
242
+ * Center Images: 15 center images ~ mix and match with background images ~ see screenshot
243
+ * Background Colors (If not using a Background Image)
244
+ * Display Visitor IP Address
245
+ * Display Admin|Login Link
246
+ * Enable Visitor Logging
247
+ * Display Dashboard Reminder Message when site is in Maintenance Mode
248
+ * Send Email Reminder when Maintenance Mode Countdown Timer has completed
249
+ * Email: To|From|cc|bcc
250
+ * Network|Multisite Primary Site Options ONLY
251
+ * Put The Primary Site And All Subsites In Maintenance Mode
252
+ * Put All Subsites In Maintenance Mode, But Not The Primary Site
253
+ * Click the Maintenance Mode Read Me help button for full descriptions of all features and options.
254
+
255
+ == Frequently Asked Questions ==
256
+
257
+ = Installation =
258
 
259
  * <strong>Automated Setup Steps</strong>
260
  1. Click the Setup Wizard button.
320
  7. BPS UI|UX Debug: Turn On for debugging.
321
  8. BPS Plugin AutoUpdate: Turn On to allow BPS plugin automatic updates.
322
 
323
+ = Translations =
324
+
325
+ * Language Packs: <a href="https://translate.wordpress.org/projects/wp-plugins/bulletproof-security" title="Translate BulletProof Security">Translate BulletProof Security</a>
326
+ * 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.
327
+
328
+ = BulletProof Security Bonus Custom Code =
329
+
330
+ * <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>
331
+ * <a href="https://forum.ait-pro.com/forums/topic/htaccess-caching-code-speed-boost-cache-code/" title="Speed Boost Cache .htaccess code" rel="nofollow" target="_blank">Speed Boost Cache .htaccess Code</a>
332
+ * <a href="https://forum.ait-pro.com/forums/topic/hotlink-protection-do-not-block-google-bing-or-yahoo/" title="HotLink Protection .htaccess code - Google, Yahoo, Bing safe" rel="nofollow" target="_blank">HotLink Protection .htaccess Code - Google, Yahoo, Bing safe</a>
333
+ * <a href="https://forum.ait-pro.com/forums/topic/wordpress-author-enumeration-bot-probe-protection-author-id-user-id/" title="Author ID|Username Bot Probe Protection Code" rel="nofollow" target="_blank">Author ID|Username Bot Probe Protection .htaccess Code</a>
334
+ * <a href="https://forum.ait-pro.com/forums/topic/wordpress-xml-rpc-ddos-protection-protect-xmlrpc-php-block-xmlrpc-php-forbid-xmlrpc-php/" title="XML-RPC DDoS Protection" rel="nofollow" target="_blank">XML-RPC DDoS Protection .htaccess Code</a> (Double Bonus: Trackback|Pingback Protection)
335
+ * <a href="https://forum.ait-pro.com/forums/topic/block-referer-spammers-semalt-kambasoft-ranksonic-buttons-for-website/" title="Referer Spammers|Phishing Protection .htaccess Code" rel="nofollow" target="_blank">Referer Spammers|Phishing Protection .htaccess Code</a>
336
+ * <a href="https://forum.ait-pro.com/forums/topic/mime-sniffing-data-sniffing-content-sniffing-drive-by-download-attack-protection/" title="Mime Sniffing|Drive-by Download Attack Protection .htaccess Code" rel="nofollow" target="_blank">Mime Sniffing|Drive-by Download Attack Protection .htaccess Code</a>
337
+ * <a href="https://forum.ait-pro.com/forums/topic/rssing-com-good-or-bad/" title="External iFrame and Clickjacking Protection .htaccess Code" rel="nofollow" target="_blank">External iFrame and Clickjacking Protection .htaccess Code</a>
338
+ * <a href="https://forum.ait-pro.com/forums/topic/post-request-protection-post-attack-protection-post-request-blocker/" title="POST Request Attack Protection .htaccess Code" rel="nofollow" target="_blank">POST Request Attack Protection .htaccess Code</a>
339
 
340
  = Where can I find BulletProof Security additional troubleshooting steps & support? =
341
 
462
  Yes. BulletProof Security works with Git, but does require some additional set up steps. Please see this thread for the setup steps
463
  <a href="http://wordpress.org/support/topic/plugin-bulletproof-security-bps-and-folder-locations?replies=15#post-2979555" title="Git distributed version control system setup steps" rel="nofollow" target="_blank">Git distributed version control system setup steps</a>
464
 
 
 
 
 
 
 
 
 
 
 
 
 
465
  == Changelog ==
466
 
467
  <a href="https://forum.ait-pro.com/forums/topic/bps-changelog/" title="BPS Changelog" rel="nofollow" target="_blank">View BPS Changelog - Version History - Whats New</a>
468
 
469
  == Upgrade Notice ==
470
 
471
+ View BPS Changelog|Whats New: https://forum.ait-pro.com/forums/topic/bps-changelog/