BulletProof Security - Version 2.4

Version Description

Download this release

Release Info

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

Code changes from version 2.3 to 2.4

Files changed (48) hide show
  1. 403.php +4 -4
  2. 405.php +4 -4
  3. admin/core/core-custom-code.php +1 -1
  4. admin/core/core-forms.php +8 -9
  5. admin/core/core.php +29 -25
  6. admin/css/bps-black-ui-theme.css +33 -14
  7. admin/css/bps-blue-ui-theme.css +34 -15
  8. admin/css/bps-grey-ui-theme.css +33 -14
  9. admin/db-backup-security/db-backup-help-text.php +1 -1
  10. admin/db-backup-security/db-backup-security.php +9 -89
  11. admin/email-log-settings/email-log-settings.php +231 -0
  12. admin/htaccess/bps-mu-tools.php +74 -32
  13. admin/htaccess/mscan_log.txt +4 -0
  14. admin/htaccess/secure.htaccess +1 -1
  15. admin/htaccess/wp-hashes.php +1 -0
  16. admin/htaccess/wpadmin-secure.htaccess +1 -1
  17. admin/images/bps-free-logo.gif +0 -0
  18. admin/images/bps-pro-logo.png +0 -0
  19. admin/images/bps-security-shield.gif +0 -0
  20. admin/images/bps-security-shield.png +0 -0
  21. admin/images/bps-shield-logo.png +0 -0
  22. admin/images/dashboard-status-display.jpg +0 -0
  23. admin/includes/admin.php +164 -19
  24. admin/js/bps-mscan-ajax.js +42 -0
  25. admin/js/bps-ui-accordion.js +3 -16
  26. admin/js/bps-ui-tabs.js +1 -15
  27. admin/login/login.php +208 -94
  28. admin/login/lsm-help-text.php +11 -2
  29. admin/maintenance/maintenance.php +7 -7
  30. admin/mscan/mscan-help-text.php +46 -0
  31. admin/mscan/mscan.php +1890 -0
  32. admin/security-log/security-log.php +14 -89
  33. admin/system-info/system-info.php +17 -4
  34. admin/theme-skin/theme-skin.php +3 -3
  35. admin/wizard/pwizard-autofix.php +35 -4
  36. admin/wizard/wizard-functions.php +5 -3
  37. admin/wizard/wizard.php +349 -119
  38. bulletproof-security.php +7 -5
  39. includes/functions.php +181 -68
  40. includes/general-functions.php +334 -135
  41. includes/hidden-plugin-folders-cron.php +13 -7
  42. includes/hud-autofix-whitelist.php +12 -3
  43. includes/hud-dismiss-functions.php +28 -54
  44. includes/login-security.php +188 -17
  45. includes/mscan-ajax-functions.php +1756 -0
  46. includes/zip-email-cron-functions.php +109 -0
  47. languages/bulletproof-security.pot +3032 -1519
  48. readme.txt +136 -123
403.php CHANGED
@@ -95,11 +95,11 @@ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
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/';
101
  }
102
- elseif ( preg_match('/(.*)\/wp-admin\/(.*)\.php/', $_SERVER['REQUEST_URI'], $matches ) || @preg_match('/(.*)\/wp-admin\/(.*)\.php/', $_SERVER['HTTP_REFERER'], $matches ) ) {
103
  $event = 'WPADMIN-SBR';
104
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
105
 
@@ -129,11 +129,11 @@ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
129
  if ( @!preg_match('/BPSUserAgentPlaceHolder/', $_SERVER['HTTP_USER_AGENT']) ) {
130
  # END USERAGENT FILTER
131
 
132
- if ( preg_match_all('/(.*)\/plugins\/(.*)\.js|(.*)\/plugins\/(.*)\.php|(.*)\/plugins\/(.*)\.swf/', $_SERVER['REQUEST_URI'], $matches ) ) {
133
  $event = 'PSBR-HPRA';
134
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
135
  }
136
- elseif ( preg_match('/(.*)\/wp-admin\/(.*)\.php/', $_SERVER['REQUEST_URI'], $matches ) || @preg_match('/(.*)\/wp-admin\/(.*)\.php/', $_SERVER['HTTP_REFERER'], $matches ) ) {
137
  $event = 'WPADMIN-SBR';
138
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
139
 
95
  $request_body = 'BPS Security Log option set to: Do Not Log POST Request Body Data';
96
  }
97
 
98
+ if ( preg_match_all('/(.*)\/plugins\/(.*)\.[a-zA-Z0-9]/', $_SERVER['REQUEST_URI'], $matches ) ) {
99
  $event = 'PSBR-HPRA';
100
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
101
  }
102
+ elseif ( preg_match('/(.*)\/wp-admin\/(.*)\.[a-zA-Z0-9]/', $_SERVER['REQUEST_URI'], $matches ) || @preg_match('/(.*)\/wp-admin\/(.*)\.[a-zA-Z0-9]/', $_SERVER['HTTP_REFERER'], $matches ) ) {
103
  $event = 'WPADMIN-SBR';
104
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
105
 
129
  if ( @!preg_match('/BPSUserAgentPlaceHolder/', $_SERVER['HTTP_USER_AGENT']) ) {
130
  # END USERAGENT FILTER
131
 
132
+ if ( preg_match_all('/(.*)\/plugins\/(.*)\.[a-zA-Z0-9]/', $_SERVER['REQUEST_URI'], $matches ) ) {
133
  $event = 'PSBR-HPRA';
134
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
135
  }
136
+ elseif ( preg_match('/(.*)\/wp-admin\/(.*)\.[a-zA-Z0-9]/', $_SERVER['REQUEST_URI'], $matches ) || @preg_match('/(.*)\/wp-admin\/(.*)\.[a-zA-Z0-9]/', $_SERVER['HTTP_REFERER'], $matches ) ) {
137
  $event = 'WPADMIN-SBR';
138
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
139
 
405.php CHANGED
@@ -94,11 +94,11 @@ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
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/';
100
  }
101
- elseif ( preg_match('/(.*)\/wp-admin\/(.*)\.php/', $_SERVER['REQUEST_URI'], $matches ) || @preg_match('/(.*)\/wp-admin\/(.*)\.php/', $_SERVER['HTTP_REFERER'], $matches ) ) {
102
  $event = 'WPADMIN-SBR-HEAD';
103
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
104
 
@@ -126,11 +126,11 @@ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
126
  // All legitmate HEAD Requests should not have a Body and should only be logged by this condition.
127
  if ( empty($request_body) ) {
128
 
129
- if ( preg_match_all('/(.*)\/plugins\/(.*)\.js|(.*)\/plugins\/(.*)\.php|(.*)\/plugins\/(.*)\.swf/', $_SERVER['REQUEST_URI'], $matches ) ) {
130
  $event = 'PSBR-HPRA-HEAD';
131
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
132
  }
133
- elseif ( preg_match('/(.*)\/wp-admin\/(.*)\.php/', $_SERVER['REQUEST_URI'], $matches ) || @preg_match('/(.*)\/wp-admin\/(.*)\.php/', $_SERVER['HTTP_REFERER'], $matches ) ) {
134
  $event = 'WPADMIN-SBR-HEAD';
135
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
136
 
94
  $request_body = 'BPS Security Log option set to: Do Not Log POST Request Body Data';
95
  }
96
 
97
+ if ( preg_match_all('/(.*)\/plugins\/(.*)\.[a-zA-Z0-9]/', $_SERVER['REQUEST_URI'], $matches ) ) {
98
  $event = 'PSBR-HPRA-HEAD';
99
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
100
  }
101
+ elseif ( preg_match('/(.*)\/wp-admin\/(.*)\.[a-zA-Z0-9]/', $_SERVER['REQUEST_URI'], $matches ) || @preg_match('/(.*)\/wp-admin\/(.*)\.[a-zA-Z0-9]/', $_SERVER['HTTP_REFERER'], $matches ) ) {
102
  $event = 'WPADMIN-SBR-HEAD';
103
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
104
 
126
  // All legitmate HEAD Requests should not have a Body and should only be logged by this condition.
127
  if ( empty($request_body) ) {
128
 
129
+ if ( preg_match_all('/(.*)\/plugins\/(.*)\.[a-zA-Z0-9]/', $_SERVER['REQUEST_URI'], $matches ) ) {
130
  $event = 'PSBR-HPRA-HEAD';
131
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
132
  }
133
+ elseif ( preg_match('/(.*)\/wp-admin\/(.*)\.[a-zA-Z0-9]/', $_SERVER['REQUEST_URI'], $matches ) || @preg_match('/(.*)\/wp-admin\/(.*)\.[a-zA-Z0-9]/', $_SERVER['HTTP_REFERER'], $matches ) ) {
134
  $event = 'WPADMIN-SBR-HEAD';
135
  $solution = 'https://forum.ait-pro.com/forums/topic/security-log-event-codes/';
136
 
admin/core/core-custom-code.php CHANGED
@@ -140,7 +140,7 @@ global $bps_topDiv, $bps_bottomDiv;
140
  $Apache_Mod_options = get_option('bulletproof_security_options_apache_modules');
141
  ?>
142
 
143
- <div id="bps-accordion-2" class="bps-accordion-main-2">
144
  <h3><?php _e('Root htaccess File Custom Code', 'bulletproof-security'); ?></h3>
145
  <div id="cc-accordion-inner">
146
 
140
  $Apache_Mod_options = get_option('bulletproof_security_options_apache_modules');
141
  ?>
142
 
143
+ <div id="bps-accordion-2" class="bps-accordion-main-2" style="display:none">
144
  <h3><?php _e('Root htaccess File Custom Code', 'bulletproof-security'); ?></h3>
145
  <div id="cc-accordion-inner">
146
 
admin/core/core-forms.php CHANGED
@@ -614,15 +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_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;
620
- } else {
621
- $text = '<span style="color:#008000;">'.__('Success! The BPS WooCommerce Options Notice: Enable Login Security for WooCommerce is reset.', 'bulletproof-security').'</span><br>';
622
- echo $text;
623
- delete_option('bulletproof_security_options_setup_wizard_woo');
624
- }
625
-
626
  if ( ! delete_user_meta($user_id, 'bpsPro_ignore_speed_boost_notice') ) {
627
  $text = __('The New Improved BPS Speed Boost Cache Code Notice is NOT set. Nothing to reset.', 'bulletproof-security').'<br>';
628
  echo $text;
@@ -647,6 +638,14 @@ if ( isset( $_POST['bpsResetDismissSubmit'] ) && current_user_can('manage_option
647
  echo $text;
648
  }
649
 
 
 
 
 
 
 
 
 
650
  echo '<div class="bps-message-button" style="width:90px;margin-bottom:9px;"><a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/core/core.php#bps-tabs-7' ).'">'.__('Refresh Status', 'bulletproof-security').'</a></div>';
651
  echo '</p></div>';
652
  }
614
  echo $text;
615
  }
616
 
 
 
 
 
 
 
 
 
 
617
  if ( ! delete_user_meta($user_id, 'bpsPro_ignore_speed_boost_notice') ) {
618
  $text = __('The New Improved BPS Speed Boost Cache Code Notice is NOT set. Nothing to reset.', 'bulletproof-security').'<br>';
619
  echo $text;
638
  echo $text;
639
  }
640
 
641
+ if ( ! delete_user_meta($user_id, 'bps_ignore_mscan_notice') ) {
642
+ $text = __('The MScan First Run Notice is NOT set. Nothing to reset.', 'bulletproof-security').'<br>';
643
+ echo $text;
644
+ } else {
645
+ $text = '<span style="color:#008000;">'.__('Success! The MScan First Run Notice is reset.', 'bulletproof-security').'</span><br>';
646
+ echo $text;
647
+ }
648
+
649
  echo '<div class="bps-message-button" style="width:90px;margin-bottom:9px;"><a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/core/core.php#bps-tabs-7' ).'">'.__('Refresh Status', 'bulletproof-security').'</a></div>';
650
  echo '</p></div>';
651
  }
admin/core/core.php CHANGED
@@ -142,6 +142,7 @@ $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
142
  // Replace ABSPATH = wp-content/uploads
143
  $wp_upload_dir = wp_upload_dir();
144
  $bps_uploads_dir = str_replace( ABSPATH, '', $wp_upload_dir['basedir'] );
 
145
  $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>';
146
  $bps_bottomDiv = '</p></div>';
147
 
@@ -172,7 +173,7 @@ $bpsSpacePop = '-------------------------------------------------------------';
172
 
173
  <!-- jQuery UI Tabs Menu -->
174
  <div id="bps-tabs" class="bps-menu">
175
- <div id="bpsHead"><img src="<?php echo plugins_url('/bulletproof-security/admin/images/bps-security-shield.gif'); ?>" /></div>
176
 
177
  <ul>
178
  <li><a href="#bps-tabs-1"><?php _e('Security Modes', 'bulletproof-security'); ?></a></li>
@@ -201,7 +202,7 @@ $bpsSpacePop = '-------------------------------------------------------------';
201
 
202
  <h3><?php _e('Root Folder BulletProof Mode (RBM)', 'bulletproof-security'); ?> <button id="bps-open-modal1" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
203
 
204
- <div id="bps-modal-content1" title="<?php _e('Root Folder BulletProof Mode (RBM)', 'bulletproof-security'); ?>">
205
  <p>
206
  <?php
207
  $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
@@ -275,7 +276,7 @@ global $bps_version;
275
  <?php wp_nonce_field('bulletproof_security_rbm_activate'); ?>
276
 
277
  <div id="RBM-buttons" style="float:left;padding-right:20px;">
278
- <input type="submit" name="Submit-RBM-Activate" style="margin:10px 0px 10px 0px;" value="<?php esc_attr_e('Activate', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Click OK to Activate Root Folder BulletProof Mode or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
279
  </div>
280
  </form>
281
 
@@ -283,7 +284,7 @@ global $bps_version;
283
  <?php wp_nonce_field('bulletproof_security_rbm_deactivate'); ?>
284
 
285
  <div id="RBM-buttons" style="">
286
- <input type="submit" name="Submit-RBM-Deactivate" style="margin:10px 0px 10px 0px;" value="<?php esc_attr_e('Deactivate', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Click OK to Deactivate Root Folder BulletProof Mode or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
287
  </div>
288
  </form>
289
 
@@ -293,7 +294,7 @@ global $bps_version;
293
  <?php wp_nonce_field('bulletproof_security_rbm_activate_network'); ?>
294
 
295
  <div id="RBM-buttons" style="float:left;padding-right:20px;">
296
- <input type="submit" name="Submit-RBM-Activate-Network" style="margin:10px 0px 10px 0px;" value="<?php esc_attr_e('Activate', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Click OK to Activate Root Folder BulletProof Mode or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
297
  </div>
298
  </form>
299
 
@@ -301,7 +302,7 @@ global $bps_version;
301
  <?php wp_nonce_field('bulletproof_security_rbm_deactivate_network'); ?>
302
 
303
  <div id="RBM-buttons" style="">
304
- <input type="submit" name="Submit-RBM-Deactivate-Network" style="margin:10px 0px 10px 0px;" value="<?php esc_attr_e('Deactivate', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Click OK to Deactivate Root Folder BulletProof Mode or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
305
  </div>
306
  </form>
307
 
@@ -311,7 +312,7 @@ global $bps_version;
311
 
312
  <h3><?php _e('wp-admin Folder BulletProof Mode (WBM)', 'bulletproof-security'); ?> <button id="bps-open-modal2" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
313
 
314
- <div id="bps-modal-content2" title="<?php _e('Root Folder BulletProof Mode (RBM)', 'bulletproof-security'); ?>">
315
  <p>
316
  <?php
317
  $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
@@ -382,7 +383,7 @@ global $bps_version;
382
  <?php wp_nonce_field('bulletproof_security_wbm_activate'); ?>
383
 
384
  <div id="WBM-buttons" style="float:left;padding-right:20px;">
385
- <input type="submit" name="Submit-WBM-Activate" style="margin:10px 0px 10px 0px;" value="<?php esc_attr_e('Activate', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Click OK to Activate wp-admin Folder BulletProof Mode or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
386
  </div>
387
  </form>
388
 
@@ -390,7 +391,7 @@ global $bps_version;
390
  <?php wp_nonce_field('bulletproof_security_wbm_deactivate'); ?>
391
 
392
  <div id="WBM-buttons" style="">
393
- <input type="submit" name="Submit-WBM-Deactivate" style="margin:10px 0px 10px 0px;" value="<?php esc_attr_e('Deactivate', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Click OK to Deactivate wp-admin Folder BulletProof Mode or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
394
  </div>
395
  </form>
396
 
@@ -400,7 +401,7 @@ global $bps_version;
400
 
401
  <h3><?php _e('Hidden Plugin Folders|Files Cron (HPF)', 'bulletproof-security'); ?> <button id="bps-open-modal5" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
402
 
403
- <div id="bps-modal-content5" title="<?php _e('Hidden Plugin Folders|Files Cron (HPF)', 'bulletproof-security'); ?>">
404
  <p>
405
  <?php
406
  $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
@@ -512,7 +513,7 @@ jQuery(document).ready(function($){
512
 
513
  <h3><?php _e('Master htaccess Folder BulletProof Mode (MBM)', 'bulletproof-security'); ?> <button id="bps-open-modal6" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
514
 
515
- <div id="bps-modal-content6" title="<?php _e('MBM BulletProof Modes', 'bulletproof-security'); ?>">
516
  <p>
517
  <?php
518
  $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
@@ -569,7 +570,7 @@ function bpsPro_mbm_status() {
569
  <?php wp_nonce_field('bulletproof_security_mbm_activate'); ?>
570
 
571
  <div id="MBM-buttons" style="float:left;padding-right:20px;">
572
- <input type="submit" name="Submit-MBM-Activate" style="margin:10px 0px 10px 0px;" value="<?php esc_attr_e('Activate', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Click OK to Activate MBM BulletProof Mode or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
573
  </div>
574
  </form>
575
 
@@ -577,7 +578,7 @@ function bpsPro_mbm_status() {
577
  <?php wp_nonce_field('bulletproof_security_mbm_deactivate'); ?>
578
 
579
  <div id="MBM-buttons" style="float:left;padding-right:20px;">
580
- <input type="submit" name="Submit-MBM-Deactivate" style="margin:10px 0px 10px 0px;" value="<?php esc_attr_e('Deactivate', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Click OK to Deactivate MBM BulletProof Mode or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
581
  </div>
582
  </form>
583
 
@@ -588,7 +589,7 @@ function bpsPro_mbm_status() {
588
 
589
  <h3><?php _e('BPS Backup Folder BulletProof Mode (BBM)', 'bulletproof-security'); ?> <button id="bps-open-modal7" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
590
 
591
- <div id="bps-modal-content7" title="<?php _e('BBM BulletProof Modes', 'bulletproof-security'); ?>">
592
  <p>
593
  <?php
594
  $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
@@ -645,7 +646,7 @@ function bpsPro_bbm_status() {
645
  <?php wp_nonce_field('bulletproof_security_bbm_activate'); ?>
646
 
647
  <div id="BBM-buttons" style="float:left;padding-right:20px;">
648
- <input type="submit" name="Submit-BBM-Activate" style="margin:10px 0px 10px 0px;" value="<?php esc_attr_e('Activate', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Click OK to Activate BBM BulletProof Mode or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
649
  </div>
650
  </form>
651
 
@@ -653,7 +654,7 @@ function bpsPro_bbm_status() {
653
  <?php wp_nonce_field('bulletproof_security_bbm_deactivate'); ?>
654
 
655
  <div id="BBM-buttons" style="float:left;padding-right:20px;">
656
- <input type="submit" name="Submit-BBM-Deactivate" style="margin:10px 0px 10px 0px;" value="<?php esc_attr_e('Deactivate', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Caution: BPS Backup Folder BulletProof Mode (BBM) should only be deactivated for testing or troubleshooting. Be sure to activate BBM BulletProof Mode after you are done testing or troubleshooting.', 'bulletproof-security').'\n\n'.$bpsSpacePop.'\n\n'.__('Click OK to Deactivate BBM BulletProof Mode or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
657
  </div>
658
  </form>
659
 
@@ -664,7 +665,7 @@ function bpsPro_bbm_status() {
664
 
665
  <h3><?php _e('Backup & Restore BPS htaccess Files', 'bulletproof-security'); ?> <button id="bps-open-modal8" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
666
 
667
- <div id="bps-modal-content8" title="<?php _e('Backup & Restore BPS htaccess Files', 'bulletproof-security'); ?>">
668
  <p>
669
  <?php
670
  $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
@@ -715,7 +716,7 @@ function bpsPro_bbm_status() {
715
 
716
  <h3 style="margin:0px 0px 5px 5px;"><?php _e('htaccess File Editing', 'bulletproof-security'); ?> <button id="bps-open-modal9" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
717
 
718
- <div id="bps-modal-content9" title="<?php _e('htaccess File Editing', 'bulletproof-security'); ?>">
719
  <p><?php echo $bps_hfe_content; ?></p>
720
  </div>
721
 
@@ -1211,7 +1212,7 @@ if ( isset( $_POST['submit-ProFlockUnLock'] ) && current_user_can('manage_option
1211
  <div id="bpsLockHtaccess">
1212
  <form name="bpsFlockLockForm" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/core/core.php#bps-tabs-6' ); ?>" method="post">
1213
  <?php wp_nonce_field('bulletproof_security_flock_lock'); ?>
1214
- <input type="submit" name="submit-ProFlockLock" value="<?php esc_attr_e('Lock htaccess File', 'bulletproof-security'); ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Click OK to Lock your Root htaccess file or click Cancel.', 'bulletproof-security').'\n\n'.$bpsSpacePop.'\n\n'.__('Note: The File Open and Write Test window will still display the last status of the file as Unlocked. To see the current status refresh your browser.', 'bulletproof-security'); echo $text; ?>')" />
1215
  </form>
1216
  </div>
1217
 
@@ -1219,7 +1220,7 @@ if ( isset( $_POST['submit-ProFlockUnLock'] ) && current_user_can('manage_option
1219
  <form name="bpsFlockUnLockForm" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/core/core.php#bps-tabs-6' ); ?>" method="post">
1220
  <?php wp_nonce_field('bulletproof_security_flock_unlock'); ?>
1221
 
1222
- <input type="submit" name="submit-ProFlockUnLock" value="<?php esc_attr_e('Unlock htaccess File', 'bulletproof-security'); ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Click OK to Unlock your Root htaccess file or click Cancel.', 'bulletproof-security').'\n\n'.$bpsSpacePop.'\n\n'.__('Note: The File Open and Write Test window will still display the last status of the file as Locked. To see the current status refresh your browser.', 'bulletproof-security'); echo $text; ?>')" />
1223
  </form>
1224
  </div>
1225
 
@@ -1228,7 +1229,7 @@ if ( isset( $_POST['submit-ProFlockUnLock'] ) && current_user_can('manage_option
1228
  <?php settings_fields('bulletproof_security_options_autolock'); ?>
1229
  <?php $options = get_option('bulletproof_security_options_autolock'); ?>
1230
  <input type="hidden" name="bulletproof_security_options_autolock[bps_root_htaccess_autolock]" value="On" />
1231
- <input type="submit" name="submit-RootHtaccessAutoLock-On" value="<?php esc_attr_e('Turn On AutoLock', 'bulletproof-security'); ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Turning AutoLock On will allow BPS Pro to automatically lock your Root .htaccess file. For some folks this causes a problem because their Web Hosts do not allow the Root .htaccess file to be locked. For most folks allowing BPS Pro to AutoLock the Root .htaccess file works fine.', 'bulletproof-security').'\n\n'.$bpsSpacePop.'\n\n'.__('Click OK to Turn AutoLock On or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
1232
 
1233
  <?php if ( $options['bps_root_htaccess_autolock'] == '' || $options['bps_root_htaccess_autolock'] == 'On' ) { echo '<label class="autolock_status" style="font-weight:bold;">'.__('On', 'bulletproof-security').'</label>'; } ?>
1234
 
@@ -1240,7 +1241,7 @@ if ( isset( $_POST['submit-ProFlockUnLock'] ) && current_user_can('manage_option
1240
  <?php settings_fields('bulletproof_security_options_autolock'); ?>
1241
  <?php $options = get_option('bulletproof_security_options_autolock'); ?>
1242
  <input type="hidden" name="bulletproof_security_options_autolock[bps_root_htaccess_autolock]" value="Off" />
1243
- <input type="submit" name="submit-RootHtaccessAutoLock-Off" value="<?php esc_attr_e('Turn Off AutoLock', 'bulletproof-security'); ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Turning AutoLock Off will prevent BPS Pro from automatically locking your Root .htaccess file. For some folks this is necessary because their Web Hosts do not allow the Root .htaccess file to be locked. For most folks allowing BPS Pro to AutoLock the Root .htaccess file works fine.', 'bulletproof-security').'\n\n'.$bpsSpacePop.'\n\n'.__('Click OK to Turn AutoLock Off or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
1244
 
1245
  <?php if ( $options['bps_root_htaccess_autolock'] == 'Off') { echo '<label class="autolock_status" style="font-weight:bold;">'.__('Off', 'bulletproof-security').'</label>'; } ?>
1246
 
@@ -1438,7 +1439,7 @@ jQuery(document).ready(function($){
1438
  </form>
1439
  </div>
1440
 
1441
- <div id="bps-modal-content10" title="<?php _e('Custom Code', 'bulletproof-security'); ?>">
1442
  <p>
1443
  <?php
1444
  $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
@@ -1682,9 +1683,11 @@ $text = '<h3><span class="blue-bold">'.__('The Complete Website Security Solutio
1682
 
1683
  <?php echo '<p><span class="blue-bold">'; _e('AutoRestore|Quarantine Intrusion Detection and Prevention System (ARQ IDPS): ', 'bulletproof-security'); echo '</span>'; _e('ARQ IDPS is a real-time file scanner that automatically quarantines malicious hacker files and autorestores legitimate website files if they have been altered or tampered with. ARQ IDPS uses a much more effective and reliable method of checking and monitoring website files instead of scanning file contents for malicious code. Hacker files that do not contain any malicious code will never be detected by any/all scanners, but will be detected by ARQ IDPS. ARQ IDPS quarantines all hacker files whether or not they contain malicious code. Quarantine Options: Quarantined files can be viewed, restored or deleted. ARQ IDPS works seamlessly with WordPress, Plugin and Theme Automatic, Manual and Shiny installations and updates.', 'bulletproof-security').'</p>'; ?>
1684
 
1685
- <?php echo '<p><span class="blue-bold">'; _e('Plugin Firewall|Plugin Firewall AutoPilot Mode: ', 'bulletproof-security'); echo '</span>'; _e('The Plugin Firewall protects all of your Plugins (plugin folders and files) with an IP Address Firewall, which prevents/blocks/forbids Remote Access to the plugins folder from external sources (remote script execution, hacker recon, remote scanning, remote accessibility, etc.) and only allows internal access to the plugins folder based on this criteria: Domain name, Server IP Address and Public IP|Your Computer IP Address. The Plugin Firewall uses a true IP Address based Firewall that automatically updates your IP Address in real-time when your IP Address changes. Plugin Firewall AutoPilot Mode automatically creates Plugin Firewall whitelist rules in real-time for any Plugins that require whitelist rules.', 'bulletproof-security').'</p>'; ?>
 
 
1686
 
1687
- <?php echo '<p><span class="blue-bold">'; _e('JTC Anti-Spam|Anti-Hacker (JTC): ', 'bulletproof-security'); echo '</span>'; _e('Blocks 100% of all SpamBot and HackerBot Brute Force Login attacks (auto-registering, auto-logins, auto-posting, auto-commenting). 99% of all spamming and hacking is automated with SpamBots and HackerBots. JTC provides website security protection as well as website Anti-Spam protection. JTC protects these website Pages|Forms: Login Page|Form, Registration Page|Form, Lost Password Page|Form, Comment Page|Form, BuddyPress Register Page|Form and the BuddyPress Sidebar Login Form with a user friendly & customizable jQuery ToolTip CAPTCHA. JTC also includes a SpamBot Trap.', 'bulletproof-security').'</p>'; ?>
1688
 
1689
  <?php echo '<p><span class="blue-bold">'; _e('Uploads Folder Anti-Exploit Guard (UAEG): ', 'bulletproof-security'); echo '</span>'; _e('Protects the WordPress Uploads folder. ONLY safe image files with valid image file extensions such as jpg, gif, png, etc. can be accessed, opened or viewed from the uploads folder. UAEG blocks files by file extension names in the uploads folder from being accessed, opened, viewed, processed or executed. Malicious files cannot be accessed, opened, viewed, processed or executed in the WordPress Uploads folder.', 'bulletproof-security').'</p>'; ?>
1690
 
@@ -1713,6 +1716,7 @@ $text = '<h3><span class="blue-bold">'.__('The Complete Website Security Solutio
1713
  <div id="milestone" style="margin-top:5px">6 Year Milestone: 8-1-2017 | First Public Release: 8-1-2011</div>
1714
  <div class="pro-links">
1715
  <?php
 
1716
  echo sprintf( __( '<a href="%2$s" target="_blank" title="Link Opens in New Browser Window">Whats New in BPS Pro %1$s</a>' ), '13.2', 'https://www.ait-pro.com/aitpro-blog/5466/bulletproof-security-pro/whats-new-in-bulletproof-security-pro-13-2/' ).'<br>';
1717
  echo sprintf( __( '<a href="%2$s" target="_blank" title="Link Opens in New Browser Window">Whats New in BPS Pro %1$s</a>' ), '13/13.1', 'https://www.ait-pro.com/aitpro-blog/5457/bulletproof-security-pro/whats-new-in-bulletproof-security-pro-13/' ).'<br>';
1718
  echo sprintf( __( '<a href="%2$s" target="_blank" title="Link Opens in New Browser Window">Whats New in BPS Pro %1$s</a>' ), '12.9/12.9.1', 'https://www.ait-pro.com/aitpro-blog/5446/bulletproof-security-pro/whats-new-in-bulletproof-security-pro-12-9/' ).'<br>';
142
  // Replace ABSPATH = wp-content/uploads
143
  $wp_upload_dir = wp_upload_dir();
144
  $bps_uploads_dir = str_replace( ABSPATH, '', $wp_upload_dir['basedir'] );
145
+
146
  $bps_topDiv = '<div id="message" class="updated" style="background-color:#dfecf2;border:1px solid #999;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><p>';
147
  $bps_bottomDiv = '</p></div>';
148
 
173
 
174
  <!-- jQuery UI Tabs Menu -->
175
  <div id="bps-tabs" class="bps-menu">
176
+ <div id="bpsHead"><img src="<?php echo plugins_url('/bulletproof-security/admin/images/bps-free-logo.gif'); ?>" /></div>
177
 
178
  <ul>
179
  <li><a href="#bps-tabs-1"><?php _e('Security Modes', 'bulletproof-security'); ?></a></li>
202
 
203
  <h3><?php _e('Root Folder BulletProof Mode (RBM)', 'bulletproof-security'); ?> <button id="bps-open-modal1" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
204
 
205
+ <div id="bps-modal-content1" class="bps-dialog-hide" title="<?php _e('Root Folder BulletProof Mode (RBM)', 'bulletproof-security'); ?>">
206
  <p>
207
  <?php
208
  $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
276
  <?php wp_nonce_field('bulletproof_security_rbm_activate'); ?>
277
 
278
  <div id="RBM-buttons" style="float:left;padding-right:20px;">
279
+ <input type="submit" name="Submit-RBM-Activate" style="margin:10px 0px 10px 0px;width:84px" value="<?php esc_attr_e('Activate', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Click OK to Activate Root Folder BulletProof Mode or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
280
  </div>
281
  </form>
282
 
284
  <?php wp_nonce_field('bulletproof_security_rbm_deactivate'); ?>
285
 
286
  <div id="RBM-buttons" style="">
287
+ <input type="submit" name="Submit-RBM-Deactivate" style="margin:10px 0px 10px 0px;width:84px" value="<?php esc_attr_e('Deactivate', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Click OK to Deactivate Root Folder BulletProof Mode or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
288
  </div>
289
  </form>
290
 
294
  <?php wp_nonce_field('bulletproof_security_rbm_activate_network'); ?>
295
 
296
  <div id="RBM-buttons" style="float:left;padding-right:20px;">
297
+ <input type="submit" name="Submit-RBM-Activate-Network" style="margin:10px 0px 10px 0px;width:84px" value="<?php esc_attr_e('Activate', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Click OK to Activate Root Folder BulletProof Mode or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
298
  </div>
299
  </form>
300
 
302
  <?php wp_nonce_field('bulletproof_security_rbm_deactivate_network'); ?>
303
 
304
  <div id="RBM-buttons" style="">
305
+ <input type="submit" name="Submit-RBM-Deactivate-Network" style="margin:10px 0px 10px 0px;width:84px" value="<?php esc_attr_e('Deactivate', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Click OK to Deactivate Root Folder BulletProof Mode or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
306
  </div>
307
  </form>
308
 
312
 
313
  <h3><?php _e('wp-admin Folder BulletProof Mode (WBM)', 'bulletproof-security'); ?> <button id="bps-open-modal2" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
314
 
315
+ <div id="bps-modal-content2" class="bps-dialog-hide" title="<?php _e('Root Folder BulletProof Mode (RBM)', 'bulletproof-security'); ?>">
316
  <p>
317
  <?php
318
  $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
383
  <?php wp_nonce_field('bulletproof_security_wbm_activate'); ?>
384
 
385
  <div id="WBM-buttons" style="float:left;padding-right:20px;">
386
+ <input type="submit" name="Submit-WBM-Activate" style="margin:10px 0px 10px 0px;width:84px" value="<?php esc_attr_e('Activate', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Click OK to Activate wp-admin Folder BulletProof Mode or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
387
  </div>
388
  </form>
389
 
391
  <?php wp_nonce_field('bulletproof_security_wbm_deactivate'); ?>
392
 
393
  <div id="WBM-buttons" style="">
394
+ <input type="submit" name="Submit-WBM-Deactivate" style="margin:10px 0px 10px 0px;width:84px" value="<?php esc_attr_e('Deactivate', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Click OK to Deactivate wp-admin Folder BulletProof Mode or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
395
  </div>
396
  </form>
397
 
401
 
402
  <h3><?php _e('Hidden Plugin Folders|Files Cron (HPF)', 'bulletproof-security'); ?> <button id="bps-open-modal5" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
403
 
404
+ <div id="bps-modal-content5" class="bps-dialog-hide" title="<?php _e('Hidden Plugin Folders|Files Cron (HPF)', 'bulletproof-security'); ?>">
405
  <p>
406
  <?php
407
  $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
513
 
514
  <h3><?php _e('Master htaccess Folder BulletProof Mode (MBM)', 'bulletproof-security'); ?> <button id="bps-open-modal6" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
515
 
516
+ <div id="bps-modal-content6" class="bps-dialog-hide" title="<?php _e('MBM BulletProof Modes', 'bulletproof-security'); ?>">
517
  <p>
518
  <?php
519
  $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
570
  <?php wp_nonce_field('bulletproof_security_mbm_activate'); ?>
571
 
572
  <div id="MBM-buttons" style="float:left;padding-right:20px;">
573
+ <input type="submit" name="Submit-MBM-Activate" style="margin:10px 0px 10px 0px;width:84px" value="<?php esc_attr_e('Activate', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Click OK to Activate MBM BulletProof Mode or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
574
  </div>
575
  </form>
576
 
578
  <?php wp_nonce_field('bulletproof_security_mbm_deactivate'); ?>
579
 
580
  <div id="MBM-buttons" style="float:left;padding-right:20px;">
581
+ <input type="submit" name="Submit-MBM-Deactivate" style="margin:10px 0px 10px 0px;width:84px" value="<?php esc_attr_e('Deactivate', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Click OK to Deactivate MBM BulletProof Mode or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
582
  </div>
583
  </form>
584
 
589
 
590
  <h3><?php _e('BPS Backup Folder BulletProof Mode (BBM)', 'bulletproof-security'); ?> <button id="bps-open-modal7" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
591
 
592
+ <div id="bps-modal-content7" class="bps-dialog-hide" title="<?php _e('BBM BulletProof Modes', 'bulletproof-security'); ?>">
593
  <p>
594
  <?php
595
  $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
646
  <?php wp_nonce_field('bulletproof_security_bbm_activate'); ?>
647
 
648
  <div id="BBM-buttons" style="float:left;padding-right:20px;">
649
+ <input type="submit" name="Submit-BBM-Activate" style="margin:10px 0px 10px 0px;width:84px" value="<?php esc_attr_e('Activate', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Click OK to Activate BBM BulletProof Mode or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
650
  </div>
651
  </form>
652
 
654
  <?php wp_nonce_field('bulletproof_security_bbm_deactivate'); ?>
655
 
656
  <div id="BBM-buttons" style="float:left;padding-right:20px;">
657
+ <input type="submit" name="Submit-BBM-Deactivate" style="margin:10px 0px 10px 0px;width:84px" value="<?php esc_attr_e('Deactivate', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Caution: BPS Backup Folder BulletProof Mode (BBM) should only be deactivated for testing or troubleshooting. Be sure to activate BBM BulletProof Mode after you are done testing or troubleshooting.', 'bulletproof-security').'\n\n'.$bpsSpacePop.'\n\n'.__('Click OK to Deactivate BBM BulletProof Mode or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
658
  </div>
659
  </form>
660
 
665
 
666
  <h3><?php _e('Backup & Restore BPS htaccess Files', 'bulletproof-security'); ?> <button id="bps-open-modal8" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
667
 
668
+ <div id="bps-modal-content8" class="bps-dialog-hide" title="<?php _e('Backup & Restore BPS htaccess Files', 'bulletproof-security'); ?>">
669
  <p>
670
  <?php
671
  $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
716
 
717
  <h3 style="margin:0px 0px 5px 5px;"><?php _e('htaccess File Editing', 'bulletproof-security'); ?> <button id="bps-open-modal9" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
718
 
719
+ <div id="bps-modal-content9" class="bps-dialog-hide" title="<?php _e('htaccess File Editing', 'bulletproof-security'); ?>">
720
  <p><?php echo $bps_hfe_content; ?></p>
721
  </div>
722
 
1212
  <div id="bpsLockHtaccess">
1213
  <form name="bpsFlockLockForm" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/core/core.php#bps-tabs-6' ); ?>" method="post">
1214
  <?php wp_nonce_field('bulletproof_security_flock_lock'); ?>
1215
+ <input type="submit" name="submit-ProFlockLock" value="<?php esc_attr_e('Lock htaccess File', 'bulletproof-security'); ?>" class="button bps-button" style="width:138px" onclick="return confirm('<?php $text = __('Click OK to Lock your Root htaccess file or click Cancel.', 'bulletproof-security').'\n\n'.$bpsSpacePop.'\n\n'.__('Note: The File Open and Write Test window will still display the last status of the file as Unlocked. To see the current status refresh your browser.', 'bulletproof-security'); echo $text; ?>')" />
1216
  </form>
1217
  </div>
1218
 
1220
  <form name="bpsFlockUnLockForm" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/core/core.php#bps-tabs-6' ); ?>" method="post">
1221
  <?php wp_nonce_field('bulletproof_security_flock_unlock'); ?>
1222
 
1223
+ <input type="submit" name="submit-ProFlockUnLock" value="<?php esc_attr_e('Unlock htaccess File', 'bulletproof-security'); ?>" class="button bps-button" style="width:138px" onclick="return confirm('<?php $text = __('Click OK to Unlock your Root htaccess file or click Cancel.', 'bulletproof-security').'\n\n'.$bpsSpacePop.'\n\n'.__('Note: The File Open and Write Test window will still display the last status of the file as Locked. To see the current status refresh your browser.', 'bulletproof-security'); echo $text; ?>')" />
1224
  </form>
1225
  </div>
1226
 
1229
  <?php settings_fields('bulletproof_security_options_autolock'); ?>
1230
  <?php $options = get_option('bulletproof_security_options_autolock'); ?>
1231
  <input type="hidden" name="bulletproof_security_options_autolock[bps_root_htaccess_autolock]" value="On" />
1232
+ <input type="submit" name="submit-RootHtaccessAutoLock-On" value="<?php esc_attr_e('Turn On AutoLock', 'bulletproof-security'); ?>" class="button bps-button" style="width:138px" onclick="return confirm('<?php $text = __('Turning AutoLock On will allow BPS Pro to automatically lock your Root .htaccess file. For some folks this causes a problem because their Web Hosts do not allow the Root .htaccess file to be locked. For most folks allowing BPS Pro to AutoLock the Root .htaccess file works fine.', 'bulletproof-security').'\n\n'.$bpsSpacePop.'\n\n'.__('Click OK to Turn AutoLock On or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
1233
 
1234
  <?php if ( $options['bps_root_htaccess_autolock'] == '' || $options['bps_root_htaccess_autolock'] == 'On' ) { echo '<label class="autolock_status" style="font-weight:bold;">'.__('On', 'bulletproof-security').'</label>'; } ?>
1235
 
1241
  <?php settings_fields('bulletproof_security_options_autolock'); ?>
1242
  <?php $options = get_option('bulletproof_security_options_autolock'); ?>
1243
  <input type="hidden" name="bulletproof_security_options_autolock[bps_root_htaccess_autolock]" value="Off" />
1244
+ <input type="submit" name="submit-RootHtaccessAutoLock-Off" value="<?php esc_attr_e('Turn Off AutoLock', 'bulletproof-security'); ?>" class="button bps-button" style="width:138px" onclick="return confirm('<?php $text = __('Turning AutoLock Off will prevent BPS Pro from automatically locking your Root .htaccess file. For some folks this is necessary because their Web Hosts do not allow the Root .htaccess file to be locked. For most folks allowing BPS Pro to AutoLock the Root .htaccess file works fine.', 'bulletproof-security').'\n\n'.$bpsSpacePop.'\n\n'.__('Click OK to Turn AutoLock Off or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
1245
 
1246
  <?php if ( $options['bps_root_htaccess_autolock'] == 'Off') { echo '<label class="autolock_status" style="font-weight:bold;">'.__('Off', 'bulletproof-security').'</label>'; } ?>
1247
 
1439
  </form>
1440
  </div>
1441
 
1442
+ <div id="bps-modal-content10" class="bps-dialog-hide" title="<?php _e('Custom Code', 'bulletproof-security'); ?>">
1443
  <p>
1444
  <?php
1445
  $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
1683
 
1684
  <?php echo '<p><span class="blue-bold">'; _e('AutoRestore|Quarantine Intrusion Detection and Prevention System (ARQ IDPS): ', 'bulletproof-security'); echo '</span>'; _e('ARQ IDPS is a real-time file scanner that automatically quarantines malicious hacker files and autorestores legitimate website files if they have been altered or tampered with. ARQ IDPS uses a much more effective and reliable method of checking and monitoring website files instead of scanning file contents for malicious code. Hacker files that do not contain any malicious code will never be detected by any/all scanners, but will be detected by ARQ IDPS. ARQ IDPS quarantines all hacker files whether or not they contain malicious code. Quarantine Options: Quarantined files can be viewed, restored or deleted. ARQ IDPS works seamlessly with WordPress, Plugin and Theme Automatic, Manual and Shiny installations and updates.', 'bulletproof-security').'</p>'; ?>
1685
 
1686
+ <?php echo '<p><span class="blue-bold">'; _e('MScan Malware Scanner: ', 'bulletproof-security'); echo '</span>'; _e('MScan Scheduled Scans are available in BPS Pro only. The BPS Pro ARQ IDPS scanner is far superior to malware scanners including MScan, but both the MScan and ARQ IDPS scanners can be scheduled to automatically run on a website if someone would like to do that.', 'bulletproof-security').'</p>'; ?>
1687
+
1688
+ <?php echo '<p><span class="blue-bold">'; _e('Plugin Firewall|Plugin Firewall AutoPilot Mode: ', 'bulletproof-security'); echo '</span>'; _e('The Plugin Firewall protects all of your Plugins (plugin folders and files) with an IP Address Firewall, which prevents/blocks/forbids Remote Access to the plugins folder from external sources (remote script execution, hacker recon, remote scanning, remote accessibility, etc.) and only allows internal access to the plugins folder based on this criteria: Domain name, Server IP Address and Public IP|Your Computer IP Address. The Plugin Firewall uses a true IP Address based Firewall that automatically updates your IP Address in real-time. Plugin Firewall AutoPilot Mode automatically detects and creates Plugin Firewall whitelist rules in real-time for any Plugins that require firewall whitelist rules.', 'bulletproof-security').'</p>'; ?>
1689
 
1690
+ <?php echo '<p><span class="blue-bold">'; _e('JTC Anti-Spam|Anti-Hacker (JTC): ', 'bulletproof-security'); echo '</span>'; _e('Blocks 100% of all SpamBot and HackerBot Brute Force Login attacks (auto-registering, auto-logins, auto-posting, auto-commenting). 99% of all spamming and hacking is automated with SpamBots and HackerBots. JTC provides website security protection as well as website Anti-Spam protection. JTC protects these website Pages|Forms: Login Page|Form, Registration Page|Form, Lost Password Page|Form, Comment Page|Form, BuddyPress Register Page|Form, BuddyPress Sidebar Login Form and WooCommerce Login and Registration Pages|Forms with a user friendly & customizable jQuery ToolTip CAPTCHA. JTC also includes a SpamBot Trap.', 'bulletproof-security').'</p>'; ?>
1691
 
1692
  <?php echo '<p><span class="blue-bold">'; _e('Uploads Folder Anti-Exploit Guard (UAEG): ', 'bulletproof-security'); echo '</span>'; _e('Protects the WordPress Uploads folder. ONLY safe image files with valid image file extensions such as jpg, gif, png, etc. can be accessed, opened or viewed from the uploads folder. UAEG blocks files by file extension names in the uploads folder from being accessed, opened, viewed, processed or executed. Malicious files cannot be accessed, opened, viewed, processed or executed in the WordPress Uploads folder.', 'bulletproof-security').'</p>'; ?>
1693
 
1716
  <div id="milestone" style="margin-top:5px">6 Year Milestone: 8-1-2017 | First Public Release: 8-1-2011</div>
1717
  <div class="pro-links">
1718
  <?php
1719
+ echo sprintf( __( '<a href="%2$s" target="_blank" title="Link Opens in New Browser Window">Whats New in BPS Pro %1$s</a>' ), '13.3/13.3.1', 'https://www.ait-pro.com/aitpro-blog/5471/bulletproof-security-pro/whats-new-in-bulletproof-security-pro-13-3/' ).'<br>';
1720
  echo sprintf( __( '<a href="%2$s" target="_blank" title="Link Opens in New Browser Window">Whats New in BPS Pro %1$s</a>' ), '13.2', 'https://www.ait-pro.com/aitpro-blog/5466/bulletproof-security-pro/whats-new-in-bulletproof-security-pro-13-2/' ).'<br>';
1721
  echo sprintf( __( '<a href="%2$s" target="_blank" title="Link Opens in New Browser Window">Whats New in BPS Pro %1$s</a>' ), '13/13.1', 'https://www.ait-pro.com/aitpro-blog/5457/bulletproof-security-pro/whats-new-in-bulletproof-security-pro-13/' ).'<br>';
1722
  echo sprintf( __( '<a href="%2$s" target="_blank" title="Link Opens in New Browser Window">Whats New in BPS Pro %1$s</a>' ), '12.9/12.9.1', 'https://www.ait-pro.com/aitpro-blog/5446/bulletproof-security-pro/whats-new-in-bulletproof-security-pro-12-9/' ).'<br>';
admin/css/bps-black-ui-theme.css CHANGED
@@ -89,11 +89,10 @@ span.blue-bold {color:#dfdfdf;font-weight:bold;font-size:16px;}
89
  #bps-tabs-11 div#bpsProFeatures p {font-weight:normal}
90
  div#milestone {font-weight:bold;height:20px;background-color:#CCC;border:1px solid #999;padding:3px 0px 0px 5px;margin-bottom:2px;}
91
  /** Login Security **/
92
- #EmailOptionsLSM {margin:15px 0px 15px 0px}
93
  #LoginSecurityOptions {width:340px;}
94
  #LoginSecurityCheckall {max-height:600px;width:100%;overflow:auto;margin:0px 0px 20px 0px;}
95
  #LoginSecurityCheckall .widefat td {font-size:12px;}
96
- #LoginSecuritySearch {float:right;position:relative;top:0px;right:0px;margin:0px 20px 0px 0px;}
97
  .LSSearch-text {width:187px;margin:0px 5px 0px 0px;}
98
  #LSMExportButton {float:right;max-width:300px;}
99
  #LoginSecurityResetButton {position:relative;bottom:52px;left:115px;margin:0px 0px -30px 0px;max-width:300px;}
@@ -135,12 +134,30 @@ span.arq-tooltip-sw-60:hover {z-index:10;}
135
  span.arq-tooltip-sw-60 img:hover {z-index:10;}
136
  span.arq-tooltip-sw-60 span {display:none;position:absolute;bottom:0;left:0;right:0;}
137
  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);}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
138
  /** Security Log **/
139
  #SecLogCounter {float:right;background-color:#000;border:1px solid #999;padding:5px;margin: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);}
140
  div#SecLogCounter div.sec-log-counter-text-title {font-weight:600;color:#dfdfdf;font-size:16px;padding-bottom:5px;border-bottom:2px solid #999;}
141
  span.sec-log-counter-text {font-weight:600;font-size:13px;color:#dfdfdf;}
142
  span.sec-log-counter-text-blue {font-weight:600;font-size:13px;color:#00a0d2;}
143
- #SecurityLogTable {position:relative;top:0px;left:0px;margin:15px 0px 15px -3px;}
144
  #SecLogPostLimit {position:relative;top:0px;left:0px;margin:0px 0px 15px 0px;}
145
  /** B-Core & BPS htaccess File Editor **/
146
  .core-status-disabled {color:#00a0d2;background:#000;padding:0px 5px 2px 5px;border:1px solid #999}
@@ -177,7 +194,6 @@ label[for=mmode], label[for=mmode-email] {font-size:1em;}
177
  .bps-dbb-small-text {font-size:12px;}
178
  .dbb-text-500 {width:500px;margin:0px 0px 10px 0px;}
179
  .table-prefix-changer {width:215px;}
180
- #DBBLogDelete {margin:0px 0px 10px 600px;}
181
  /** Buttons **/
182
  #bps-container .button {height:28px;}
183
  /* Form Submit buttons */
@@ -186,6 +202,7 @@ label[for=mmode], label[for=mmode-email] {font-size:1em;}
186
  #bps-container .bps-button:focus {-webkit-box-shadow:inset 0 1px 0 #999, 0 0 0 1px #999, 0 0 2px 1px rgba(30, 140, 190, 0.8);box-shadow:inset 0 1px 0 #999, 0 0 0 1px #999, 0 0 2px 1px rgba(30, 140, 190, 0.8);}
187
  #bps-container .bps-button:active {background:#037c9a;border-color:#036881;color:white;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);box-shadow:inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);}
188
  /* Read Me Dialog buttons */
 
189
  #bps-container .bps-modal-button {font-size:.75em;line-height:22px;height:24px;margin:-3px 0px 0px 0px;background:#222222;border-color:#999;color:#999;-webkit-box-shadow: inset 0 1px 0 #999, 0 1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 1px 0 #999, 0 1px 0 rgba(0, 0, 0, 0.15);}
190
  #bps-container .bps-modal-button:hover, #bps-container .bps-modal-button:focus {color:#2ea2cc;background-color:#111111;border-color:#dfdfdf;-webkit-box-shadow:inset 0 1px 0 #dfdfdf;box-shadow:inset 0 1px 0 #999;}
191
  #bps-container .bps-modal-button:focus {-webkit-box-shadow:inset 0 1px 0 #999, 0 0 0 1px #999, 0 0 2px 1px rgba(30, 140, 190, 0.8);box-shadow:inset 0 1px 0 #999, 0 0 0 1px #999, 0 0 2px 1px rgba(30, 140, 190, 0.8);}
@@ -399,16 +416,14 @@ td.bps-table_cell_help_custom_code pre {width:95%;}
399
  #LoginSecurityCheckall .widefat tbody tr th {width:100%;}
400
  #LoginSecurityCheckall .widefat tbody tr td {width:100%;}
401
  select.form-220 {width:90%;}
402
- #LoginSecuritySearch {float:right;position:relative;top:0px;right:0px;margin:0px 20px 20px 0px;}
403
- #LSMExportButton {float:right;max-width:300px;margin-bottom:15px}
404
  #LoginSecurityDBRowCount {position:relative;left:0px;bottom:5px;color:#2ea2cc;font-weight:bold;font-size:14px;max-width:400px}
405
  #LoginSecurityResetButton {position:relative;bottom:10px;left:0px;margin:0px 0px 0px 0px;max-width:300px;}
406
  #LoginSecurityDBRowCount {float:left;position:relative;left:0px;bottom:20px;height:20px;}
407
  .button.bps-button.lsmreset {margin:0px 0px 0px 0px;}
408
  #LoginSecurityOptions select.form-220 {width:150px}
409
- #EmailOptionsLSM select.form-340 {width:90%}
410
- #EmailOptionsSecLog select.form-340 {width:90%}
411
- #EmailOptionsDBB select.form-340 {width:90%}
412
  #LoginSecurityJTC select.form-250 {width:90%}
413
  #LoginSecurityJTC input.regular-text-250 {width:90%}
414
  #Idle-Session-Logout .PFW-Allow-From-Text-Area {margin-top:5px;max-width:250px;}
@@ -452,6 +467,12 @@ span.arq-tooltip-sw-20 {float:left;clear:left}
452
  span.arq-tooltip-sw-60 {float:left;clear:left}
453
  span.arq-tooltip-sw-20:hover span {width:220px;height:100px;}
454
  span.arq-tooltip-sw-60:hover span {width:220px;height:200px;}
 
 
 
 
 
 
455
  }
456
 
457
  /* Larger mobile phone, tablets and iPads common viewport sizes: 496, *533, *540, *600, 601, 602, 603, 604, 640, 648, *720, 731, 758, *768 */
@@ -478,16 +499,12 @@ table.bps-help_faq_table {width:100%;}
478
  #LoginSecurityCheckall .widefat thead tr th {width:100%;text-align:left;white-space:normal;font-weight:bold;}
479
  #LoginSecurityCheckall .widefat tbody tr th {width:100%;}
480
  #LoginSecurityCheckall .widefat tbody tr td {width:100%;}
481
- #LoginSecuritySearch {float:right;position:relative;top:0px;right:0px;margin:0px 20px 20px 0px;}
482
- #LSMExportButton {float:right;max-width:300px;margin-bottom:15px}
483
  #LoginSecurityDBRowCount {position:relative;left:0px;bottom:5px;color:#2ea2cc;font-weight:bold;font-size:14px;max-width:400px}
484
  #LoginSecurityResetButton {position:relative;bottom:10px;left:0px;margin:0px 0px 0px 0px;max-width:300px;}
485
  #LoginSecurityDBRowCount {float:left;position:relative;left:0px;bottom:20px;height:20px;}
486
  .button.bps-button.lsmreset {margin:0px 0px 0px 0px;}
487
  #LoginSecurityOptions select.form-220 {width:220px}
488
- #EmailOptionsLSM select.form-340 {width:90%}
489
- #EmailOptionsSecLog select.form-340 {width:90%}
490
- #EmailOptionsDBB select.form-340 {width:90%}
491
  .button.bps-button.lsmreset {margin:0px 0px 0px 0px;}
492
  #Idle-Session-Logout .PFW-Allow-From-Text-Area {margin-top:5px;width:450px}
493
  .bps_isl_custom_css_1 {width:400px}
@@ -515,6 +532,7 @@ span.arq-tooltip-sw-20 {float:left;clear:left}
515
  span.arq-tooltip-sw-60 {float:left;clear:left}
516
  span.arq-tooltip-sw-20:hover span {width:220px;height:100px;}
517
  span.arq-tooltip-sw-60:hover span {width:220px;height:200px;}
 
518
  }
519
 
520
  /* tablets, laptops and pcs with smaller viewport sizes: *800, 854, 900, 960, *1024 */
@@ -550,6 +568,7 @@ span.arq-tooltip-sw-20 {float:left;clear:left}
550
  span.arq-tooltip-sw-60 {float:left;clear:left}
551
  span.arq-tooltip-sw-20:hover span {width:220px;height:100px;}
552
  span.arq-tooltip-sw-60:hover span {width:220px;height:200px;}
 
553
  }
554
 
555
  /* laptops and pcs with larger viewports */
89
  #bps-tabs-11 div#bpsProFeatures p {font-weight:normal}
90
  div#milestone {font-weight:bold;height:20px;background-color:#CCC;border:1px solid #999;padding:3px 0px 0px 5px;margin-bottom:2px;}
91
  /** Login Security **/
 
92
  #LoginSecurityOptions {width:340px;}
93
  #LoginSecurityCheckall {max-height:600px;width:100%;overflow:auto;margin:0px 0px 20px 0px;}
94
  #LoginSecurityCheckall .widefat td {font-size:12px;}
95
+ #LoginSecuritySearch {float:right;position:relative;bottom:35px;left:258px;margin:0px 20px 0px 0px;}
96
  .LSSearch-text {width:187px;margin:0px 5px 0px 0px;}
97
  #LSMExportButton {float:right;max-width:300px;}
98
  #LoginSecurityResetButton {position:relative;bottom:52px;left:115px;margin:0px 0px -30px 0px;max-width:300px;}
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
+ /** MScan **/
138
+ .text-area-340x60 {width:340px;height:60px;}
139
+ #MScan-Time-Container {position:relative;top:0px;left:0px;}
140
+ div#mscantimer {color:#dfdfdf;font-size:14px!important;font-weight:600!important;padding:4px;position:relative;top:0px;left:0px;}
141
+ #MscanProgressBar {width:100%;height:30px;background-color:#e8e8e8;border-radius:2px;-webkit-box-shadow:inset 0 2px 3px rgba(0, 0, 0, 0.25);-moz-box-shadow:inset 0 2px 3px rgba(0, 0, 0, 0.25);box-shadow:inset 0 2px 3px rgba(0, 0, 0, 0.25);}
142
+ #MscanBar {width:0%;height:30px;font-weight:bold;text-align:center;line-height:30px;color:white;}
143
+ .mscan-progress-bar {width:0;height:100%;background:#0e8bcb;background:-moz-linear-gradient(top, #0e8bcb 0%, #08496b 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%,#0e8bcb), color-stop(100%,#08496b));background:-webkit-linear-gradient(top, #0e8bcb 0%,#08496b 100%);background:-o-linear-gradient(top, #0e8bcb 0%,#08496b 100%);background:-ms-linear-gradient(top, #0e8bcb 0%,#08496b 100%);background:linear-gradient(to bottom, #0e8bcb 0%,#08496b 100%);-webkit-transition:width 1s ease-in-out;-moz-transition:width 1s ease-in-out;-o-transition:width 1s ease-in-out;transition:width 1s ease-in-out;}
144
+ span.tooltip-250-80 {display:inline-block;position:relative;}
145
+ span.tooltip-250-80:hover {z-index:10;}
146
+ span.tooltip-250-80 img:hover {z-index:10;}
147
+ span.tooltip-250-80 span {display:none;position:absolute;bottom:0;left:0;right:0;}
148
+ span.tooltip-250-80:hover span {width:250px;height:80px;display:block;position:absolute;top:0px;left:30px;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);}
149
+ span.tooltip-350-120 {display:inline-block;position:relative;}
150
+ span.tooltip-350-120:hover {z-index:10;}
151
+ span.tooltip-350-120 img:hover {z-index:10;}
152
+ span.tooltip-350-120 span {display:none;position:absolute;bottom:0;left:0;right:0;}
153
+ span.tooltip-350-120:hover span {width:350px;height:120px;display:block;position:absolute;top:0px;left:30px;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);}
154
+ #MScanSuspectcheckall, #MScanSuspectDBcheckall {max-height:400px;width:100%;overflow:auto;margin:0px 0px 20px 0px;}
155
  /** Security Log **/
156
  #SecLogCounter {float:right;background-color:#000;border:1px solid #999;padding:5px;margin: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);}
157
  div#SecLogCounter div.sec-log-counter-text-title {font-weight:600;color:#dfdfdf;font-size:16px;padding-bottom:5px;border-bottom:2px solid #999;}
158
  span.sec-log-counter-text {font-weight:600;font-size:13px;color:#dfdfdf;}
159
  span.sec-log-counter-text-blue {font-weight:600;font-size:13px;color:#00a0d2;}
160
+ #SecurityLogTable {position:relative;top:0px;left:0px;margin:0px 0px 15px -3px;}
161
  #SecLogPostLimit {position:relative;top:0px;left:0px;margin:0px 0px 15px 0px;}
162
  /** B-Core & BPS htaccess File Editor **/
163
  .core-status-disabled {color:#00a0d2;background:#000;padding:0px 5px 2px 5px;border:1px solid #999}
194
  .bps-dbb-small-text {font-size:12px;}
195
  .dbb-text-500 {width:500px;margin:0px 0px 10px 0px;}
196
  .table-prefix-changer {width:215px;}
 
197
  /** Buttons **/
198
  #bps-container .button {height:28px;}
199
  /* Form Submit buttons */
202
  #bps-container .bps-button:focus {-webkit-box-shadow:inset 0 1px 0 #999, 0 0 0 1px #999, 0 0 2px 1px rgba(30, 140, 190, 0.8);box-shadow:inset 0 1px 0 #999, 0 0 0 1px #999, 0 0 2px 1px rgba(30, 140, 190, 0.8);}
203
  #bps-container .bps-button:active {background:#037c9a;border-color:#036881;color:white;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);box-shadow:inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);}
204
  /* Read Me Dialog buttons */
205
+ .bps-dialog-hide {display:none}
206
  #bps-container .bps-modal-button {font-size:.75em;line-height:22px;height:24px;margin:-3px 0px 0px 0px;background:#222222;border-color:#999;color:#999;-webkit-box-shadow: inset 0 1px 0 #999, 0 1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 1px 0 #999, 0 1px 0 rgba(0, 0, 0, 0.15);}
207
  #bps-container .bps-modal-button:hover, #bps-container .bps-modal-button:focus {color:#2ea2cc;background-color:#111111;border-color:#dfdfdf;-webkit-box-shadow:inset 0 1px 0 #dfdfdf;box-shadow:inset 0 1px 0 #999;}
208
  #bps-container .bps-modal-button:focus {-webkit-box-shadow:inset 0 1px 0 #999, 0 0 0 1px #999, 0 0 2px 1px rgba(30, 140, 190, 0.8);box-shadow:inset 0 1px 0 #999, 0 0 0 1px #999, 0 0 2px 1px rgba(30, 140, 190, 0.8);}
416
  #LoginSecurityCheckall .widefat tbody tr th {width:100%;}
417
  #LoginSecurityCheckall .widefat tbody tr td {width:100%;}
418
  select.form-220 {width:90%;}
419
+ #LoginSecuritySearch {float:right;position:relative;bottom:35px;left:20px;margin:0px 20px 0px 0px;}
420
+ #LSMExportButton {margin-bottom:-50px}
421
  #LoginSecurityDBRowCount {position:relative;left:0px;bottom:5px;color:#2ea2cc;font-weight:bold;font-size:14px;max-width:400px}
422
  #LoginSecurityResetButton {position:relative;bottom:10px;left:0px;margin:0px 0px 0px 0px;max-width:300px;}
423
  #LoginSecurityDBRowCount {float:left;position:relative;left:0px;bottom:20px;height:20px;}
424
  .button.bps-button.lsmreset {margin:0px 0px 0px 0px;}
425
  #LoginSecurityOptions select.form-220 {width:150px}
426
+ #EmailOptions select.form-340 {width:90%}
 
 
427
  #LoginSecurityJTC select.form-250 {width:90%}
428
  #LoginSecurityJTC input.regular-text-250 {width:90%}
429
  #Idle-Session-Logout .PFW-Allow-From-Text-Area {margin-top:5px;max-width:250px;}
467
  span.arq-tooltip-sw-60 {float:left;clear:left}
468
  span.arq-tooltip-sw-20:hover span {width:220px;height:100px;}
469
  span.arq-tooltip-sw-60:hover span {width:220px;height:200px;}
470
+ span.tooltip-250-80:hover span {visibility:hidden;display:none;}
471
+ }
472
+
473
+ @media screen and (min-width: 496px) and (max-width: 632px){
474
+ #LoginSecuritySearch {float:right;position:relative;bottom:35px;left:20px;margin:0px 20px 0px 0px;}
475
+ #LSMExportButton {margin-bottom:-50px}
476
  }
477
 
478
  /* Larger mobile phone, tablets and iPads common viewport sizes: 496, *533, *540, *600, 601, 602, 603, 604, 640, 648, *720, 731, 758, *768 */
499
  #LoginSecurityCheckall .widefat thead tr th {width:100%;text-align:left;white-space:normal;font-weight:bold;}
500
  #LoginSecurityCheckall .widefat tbody tr th {width:100%;}
501
  #LoginSecurityCheckall .widefat tbody tr td {width:100%;}
 
 
502
  #LoginSecurityDBRowCount {position:relative;left:0px;bottom:5px;color:#2ea2cc;font-weight:bold;font-size:14px;max-width:400px}
503
  #LoginSecurityResetButton {position:relative;bottom:10px;left:0px;margin:0px 0px 0px 0px;max-width:300px;}
504
  #LoginSecurityDBRowCount {float:left;position:relative;left:0px;bottom:20px;height:20px;}
505
  .button.bps-button.lsmreset {margin:0px 0px 0px 0px;}
506
  #LoginSecurityOptions select.form-220 {width:220px}
507
+ #EmailOptions select.form-340 {width:90%}
 
 
508
  .button.bps-button.lsmreset {margin:0px 0px 0px 0px;}
509
  #Idle-Session-Logout .PFW-Allow-From-Text-Area {margin-top:5px;width:450px}
510
  .bps_isl_custom_css_1 {width:400px}
532
  span.arq-tooltip-sw-60 {float:left;clear:left}
533
  span.arq-tooltip-sw-20:hover span {width:220px;height:100px;}
534
  span.arq-tooltip-sw-60:hover span {width:220px;height:200px;}
535
+ span.tooltip-250-80:hover span {visibility:hidden;display:none;}
536
  }
537
 
538
  /* tablets, laptops and pcs with smaller viewport sizes: *800, 854, 900, 960, *1024 */
568
  span.arq-tooltip-sw-60 {float:left;clear:left}
569
  span.arq-tooltip-sw-20:hover span {width:220px;height:100px;}
570
  span.arq-tooltip-sw-60:hover span {width:220px;height:200px;}
571
+ span.tooltip-250-80:hover span {width:80px;height:285px;}
572
  }
573
 
574
  /* laptops and pcs with larger viewports */
admin/css/bps-blue-ui-theme.css CHANGED
@@ -84,15 +84,14 @@ p.blue-bold {color:#000066;font-weight:bold;}
84
  span.blue-bold {color:#000066;font-weight:bold;font-size:16px;}
85
  div#milestone {font-weight:bold;height:20px;background-color:#CCC;border:1px solid #999;padding:3px 0px 0px 5px;margin-bottom:2px;}
86
  /** Login Security **/
87
- #EmailOptionsLSM {margin:15px 0px 15px 0px}
88
  #LoginSecurityOptions {width:340px;}
89
  #LoginSecurityCheckall {max-height:600px;width:100%;overflow:auto;margin:0px 0px 20px 0px;}
90
  #LoginSecurityCheckall .widefat td {font-size:12px;}
91
- #LoginSecuritySearch {float:right;position:relative;top:0px;right:0px;margin:0px 20px 0px 0px;}
92
  .LSSearch-text {width:187px;margin:0px 5px 0px 0px;}
93
  #LSMExportButton {float:right;max-width:300px;}
94
  #LoginSecurityResetButton {position:relative;bottom:52px;left:115px;margin:0px 0px -30px 0px;max-width:300px;}
95
- #LoginSecurityDBRowCount {position:relative;left:0px;bottom:5px;color:#2ea2cc;font-weight:bold;font-size:14px;max-width:400px}
96
  .button.bps-button.lsmreset {margin:6px 0px 0px 8px;}
97
  /** Idle Session Logout **/
98
  #Idle-Session-Logout {position:relative;top:0px;left:0px;margin:0px 0px 0px 0px;}
@@ -130,12 +129,30 @@ span.arq-tooltip-sw-60:hover {z-index:10;}
130
  span.arq-tooltip-sw-60 img:hover {z-index:10;}
131
  span.arq-tooltip-sw-60 span {display:none;position:absolute;bottom:0;left:0;right:0;}
132
  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);}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
  /** Security Log **/
134
  #SecLogCounter {float:right;background-color:#dfecf2;border:1px solid #999;padding:5px;margin: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);}
135
  div#SecLogCounter div.sec-log-counter-text-title {font-weight:600;color:#000;font-size:16px;padding-bottom:5px;border-bottom:2px solid #999;}
136
  span.sec-log-counter-text {font-weight:600;font-size:13px;color:#000;}
137
  span.sec-log-counter-text-blue {font-weight:600;font-size:13px;color:#2ea2cc;}
138
- #SecurityLogTable {position:relative;top:0px;left:0px;margin:15px 0px 15px -3px;}
139
  #SecLogPostLimit {position:relative;top:0px;left:0px;margin:0px 0px 15px 0px;}
140
  /** B-Core & BPS htaccess File Editor **/
141
  .core-status-disabled {color:blue;background:#fff;padding:0px 3px 0px 3px;}
@@ -166,7 +183,6 @@ pre {position:relative;z-index:50;background:#fff url(../images/pre_bg.png) top
166
  #DBBcheckall {margin:0px 15px 0px -20px;float:left;overflow:auto;width:400px;max-height:600px;border:1px solid #e5e5e5;}
167
  .dbb-text-500 {width:500px;margin:0px 0px 10px 0px;}
168
  .table-prefix-changer {width:215px;}
169
- #DBBLogDelete {margin:0px 0px 10px 600px;}
170
  /** Buttons **/
171
  #bps-container .button {height:28px;}
172
  /* Form Submit buttons */
@@ -175,6 +191,7 @@ pre {position:relative;z-index:50;background:#fff url(../images/pre_bg.png) top
175
  #bps-container .bps-button:focus {-webkit-box-shadow:inset 0 1px 0 #09cafa, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);box-shadow:inset 0 1px 0 #09cafa, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);}
176
  #bps-container .bps-button:active {background:#037c9a;border-color:#036881;color:white;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);box-shadow:inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);}
177
  /* Read Me Dialog buttons */
 
178
  #bps-container .bps-modal-button {font-size:.75em;line-height:22px;height:24px;margin:-3px 0px 0px 0px;background:#047d9b;border-color:#037c9a;color:white;-webkit-box-shadow: inset 0 1px 0 #19acd2, 0 1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 1px 0 #19acd2, 0 1px 0 rgba(0, 0, 0, 0.15);}
179
  #bps-container .bps-modal-button:hover, #bps-container .bps-modal-button:focus {background:#05b5e1;border-color:#036881;color:white;-webkit-box-shadow:inset 0 1px 0 #09cafa; box-shadow:inset 0 1px 0 #09cafa;}
180
  #bps-container .bps-modal-button:focus {-webkit-box-shadow:inset 0 1px 0 #09cafa, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);box-shadow:inset 0 1px 0 #09cafa, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);}
@@ -352,16 +369,14 @@ td.bps-table_cell_help_custom_code pre {width:95%;}
352
  #LoginSecurityCheckall .widefat tbody tr th {width:100%;}
353
  #LoginSecurityCheckall .widefat tbody tr td {width:100%;}
354
  select.form-220 {width:90%;}
355
- #LoginSecuritySearch {float:right;position:relative;top:0px;right:0px;margin:0px 20px 20px 0px;}
356
- #LSMExportButton {float:right;max-width:300px;margin-bottom:15px}
357
  #LoginSecurityDBRowCount {position:relative;left:0px;bottom:5px;color:#2ea2cc;font-weight:bold;font-size:14px;max-width:400px}
358
  #LoginSecurityResetButton {position:relative;bottom:10px;left:0px;margin:0px 0px 0px 0px;max-width:300px;}
359
  #LoginSecurityDBRowCount {float:left;position:relative;left:0px;bottom:20px;height:20px;}
360
  .button.bps-button.lsmreset {margin:0px 0px 0px 0px;}
361
  #LoginSecurityOptions select.form-220 {width:150px}
362
- #EmailOptionsLSM select.form-340 {width:90%}
363
- #EmailOptionsSecLog select.form-340 {width:90%}
364
- #EmailOptionsDBB select.form-340 {width:90%}
365
  #LoginSecurityJTC select.form-250 {width:90%}
366
  #LoginSecurityJTC input.regular-text-250 {width:90%}
367
  #Idle-Session-Logout .PFW-Allow-From-Text-Area {margin-top:5px;max-width:250px;}
@@ -406,6 +421,12 @@ span.arq-tooltip-sw-20 {float:left;clear:left}
406
  span.arq-tooltip-sw-60 {float:left;clear:left}
407
  span.arq-tooltip-sw-20:hover span {width:220px;height:100px;}
408
  span.arq-tooltip-sw-60:hover span {width:220px;height:200px;}
 
 
 
 
 
 
409
  }
410
 
411
  /* Larger mobile phone, tablets and iPads common viewport sizes: 496, *533, *540, *600, 601, 602, 603, 604, 640, 648, *720, 731, 758, *768 */
@@ -433,16 +454,12 @@ td.bps-table_cell_help_custom_code pre {width:95%;}
433
  #LoginSecurityCheckall .widefat thead tr th {width:100%;text-align:left;white-space:normal;font-weight:bold;}
434
  #LoginSecurityCheckall .widefat tbody tr th {width:100%;}
435
  #LoginSecurityCheckall .widefat tbody tr td {width:100%;}
436
- #LoginSecuritySearch {float:right;position:relative;top:0px;right:0px;margin:0px 20px 20px 0px;}
437
- #LSMExportButton {float:right;max-width:300px;margin-bottom:15px}
438
  #LoginSecurityDBRowCount {position:relative;left:0px;bottom:5px;color:#2ea2cc;font-weight:bold;font-size:14px;max-width:400px}
439
  #LoginSecurityResetButton {position:relative;bottom:10px;left:0px;margin:0px 0px 0px 0px;max-width:300px;}
440
  #LoginSecurityDBRowCount {float:left;position:relative;left:0px;bottom:20px;height:20px;}
441
  .button.bps-button.lsmreset {margin:0px 0px 0px 0px;}
442
  #LoginSecurityOptions select.form-220 {width:220px}
443
- #EmailOptionsLSM select.form-340 {width:90%}
444
- #EmailOptionsSecLog select.form-340 {width:90%}
445
- #EmailOptionsDBB select.form-340 {width:90%}
446
  #Idle-Session-Logout .PFW-Allow-From-Text-Area {margin-top:5px;width:450px}
447
  .bps_isl_custom_css_1 {width:400px}
448
  .bps_isl_custom_css_2 {width:350px}
@@ -469,6 +486,7 @@ span.arq-tooltip-sw-20 {float:left;clear:left}
469
  span.arq-tooltip-sw-60 {float:left;clear:left}
470
  span.arq-tooltip-sw-20:hover span {width:220px;height:100px;}
471
  span.arq-tooltip-sw-60:hover span {width:220px;height:200px;}
 
472
  }
473
 
474
  /* tablets, laptops and pcs with smaller viewport sizes: *800, 854, 900, 960, *1024 */
@@ -502,6 +520,7 @@ span.arq-tooltip-sw-20 {float:left;clear:left}
502
  span.arq-tooltip-sw-60 {float:left;clear:left}
503
  span.arq-tooltip-sw-20:hover span {width:220px;height:100px;}
504
  span.arq-tooltip-sw-60:hover span {width:220px;height:200px;}
 
505
  }
506
 
507
  /* laptops and pcs with larger viewports */
84
  span.blue-bold {color:#000066;font-weight:bold;font-size:16px;}
85
  div#milestone {font-weight:bold;height:20px;background-color:#CCC;border:1px solid #999;padding:3px 0px 0px 5px;margin-bottom:2px;}
86
  /** Login Security **/
 
87
  #LoginSecurityOptions {width:340px;}
88
  #LoginSecurityCheckall {max-height:600px;width:100%;overflow:auto;margin:0px 0px 20px 0px;}
89
  #LoginSecurityCheckall .widefat td {font-size:12px;}
90
+ #LoginSecuritySearch {float:right;position:relative;bottom:35px;left:258px;margin:0px 20px 0px 0px;}
91
  .LSSearch-text {width:187px;margin:0px 5px 0px 0px;}
92
  #LSMExportButton {float:right;max-width:300px;}
93
  #LoginSecurityResetButton {position:relative;bottom:52px;left:115px;margin:0px 0px -30px 0px;max-width:300px;}
94
+ #LoginSecurityDBRowCount {position:relative;left:0px;top:5px;color:#2ea2cc;font-weight:bold;font-size:14px;max-width:400px}
95
  .button.bps-button.lsmreset {margin:6px 0px 0px 8px;}
96
  /** Idle Session Logout **/
97
  #Idle-Session-Logout {position:relative;top:0px;left:0px;margin:0px 0px 0px 0px;}
129
  span.arq-tooltip-sw-60 img:hover {z-index:10;}
130
  span.arq-tooltip-sw-60 span {display:none;position:absolute;bottom:0;left:0;right:0;}
131
  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);}
132
+ /** MScan **/
133
+ .text-area-340x60 {width:340px;height:60px;}
134
+ #MScan-Time-Container {position:relative;top:0px;left:0px;}
135
+ div#mscantimer {color:#000;font-size:14px!important;font-weight:600!important;padding:4px;position:relative;top:0px;left:0px;}
136
+ #MscanProgressBar {width:100%;height:30px;background-color:#e8e8e8;border-radius:2px;-webkit-box-shadow:inset 0 2px 3px rgba(0, 0, 0, 0.25);-moz-box-shadow:inset 0 2px 3px rgba(0, 0, 0, 0.25);box-shadow:inset 0 2px 3px rgba(0, 0, 0, 0.25);}
137
+ #MscanBar {width:0%;height:30px;font-weight:bold;text-align:center;line-height:30px;color:white;}
138
+ .mscan-progress-bar {width:0;height:100%;background:#0e8bcb;background:-moz-linear-gradient(top, #0e8bcb 0%, #08496b 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%,#0e8bcb), color-stop(100%,#08496b));background:-webkit-linear-gradient(top, #0e8bcb 0%,#08496b 100%);background:-o-linear-gradient(top, #0e8bcb 0%,#08496b 100%);background:-ms-linear-gradient(top, #0e8bcb 0%,#08496b 100%);background:linear-gradient(to bottom, #0e8bcb 0%,#08496b 100%);-webkit-transition:width 1s ease-in-out;-moz-transition:width 1s ease-in-out;-o-transition:width 1s ease-in-out;transition:width 1s ease-in-out;}
139
+ span.tooltip-250-80 {display:inline-block;position:relative;}
140
+ span.tooltip-250-80:hover {z-index:10;}
141
+ span.tooltip-250-80 img:hover {z-index:10;}
142
+ span.tooltip-250-80 span {display:none;position:absolute;bottom:0;left:0;right:0;}
143
+ span.tooltip-250-80:hover span {width:250px;height:80px;display:block;position:absolute;top:0px;left:30px;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);}
144
+ span.tooltip-350-120 {display:inline-block;position:relative;}
145
+ span.tooltip-350-120:hover {z-index:10;}
146
+ span.tooltip-350-120 img:hover {z-index:10;}
147
+ span.tooltip-350-120 span {display:none;position:absolute;bottom:0;left:0;right:0;}
148
+ span.tooltip-350-120:hover span {width:350px;height:120px;display:block;position:absolute;top:0px;left:30px;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);}
149
+ #MScanSuspectcheckall, #MScanSuspectDBcheckall {max-height:400px;width:100%;overflow:auto;margin:0px 0px 20px 0px;}
150
  /** Security Log **/
151
  #SecLogCounter {float:right;background-color:#dfecf2;border:1px solid #999;padding:5px;margin: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);}
152
  div#SecLogCounter div.sec-log-counter-text-title {font-weight:600;color:#000;font-size:16px;padding-bottom:5px;border-bottom:2px solid #999;}
153
  span.sec-log-counter-text {font-weight:600;font-size:13px;color:#000;}
154
  span.sec-log-counter-text-blue {font-weight:600;font-size:13px;color:#2ea2cc;}
155
+ #SecurityLogTable {position:relative;top:0px;left:0px;margin:0px 0px 15px -3px;}
156
  #SecLogPostLimit {position:relative;top:0px;left:0px;margin:0px 0px 15px 0px;}
157
  /** B-Core & BPS htaccess File Editor **/
158
  .core-status-disabled {color:blue;background:#fff;padding:0px 3px 0px 3px;}
183
  #DBBcheckall {margin:0px 15px 0px -20px;float:left;overflow:auto;width:400px;max-height:600px;border:1px solid #e5e5e5;}
184
  .dbb-text-500 {width:500px;margin:0px 0px 10px 0px;}
185
  .table-prefix-changer {width:215px;}
 
186
  /** Buttons **/
187
  #bps-container .button {height:28px;}
188
  /* Form Submit buttons */
191
  #bps-container .bps-button:focus {-webkit-box-shadow:inset 0 1px 0 #09cafa, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);box-shadow:inset 0 1px 0 #09cafa, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);}
192
  #bps-container .bps-button:active {background:#037c9a;border-color:#036881;color:white;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);box-shadow:inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);}
193
  /* Read Me Dialog buttons */
194
+ .bps-dialog-hide {display:none}
195
  #bps-container .bps-modal-button {font-size:.75em;line-height:22px;height:24px;margin:-3px 0px 0px 0px;background:#047d9b;border-color:#037c9a;color:white;-webkit-box-shadow: inset 0 1px 0 #19acd2, 0 1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 1px 0 #19acd2, 0 1px 0 rgba(0, 0, 0, 0.15);}
196
  #bps-container .bps-modal-button:hover, #bps-container .bps-modal-button:focus {background:#05b5e1;border-color:#036881;color:white;-webkit-box-shadow:inset 0 1px 0 #09cafa; box-shadow:inset 0 1px 0 #09cafa;}
197
  #bps-container .bps-modal-button:focus {-webkit-box-shadow:inset 0 1px 0 #09cafa, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);box-shadow:inset 0 1px 0 #09cafa, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);}
369
  #LoginSecurityCheckall .widefat tbody tr th {width:100%;}
370
  #LoginSecurityCheckall .widefat tbody tr td {width:100%;}
371
  select.form-220 {width:90%;}
372
+ #LoginSecuritySearch {float:right;position:relative;bottom:35px;left:20px;margin:0px 20px 0px 0px;}
373
+ #LSMExportButton {margin-bottom:-50px}
374
  #LoginSecurityDBRowCount {position:relative;left:0px;bottom:5px;color:#2ea2cc;font-weight:bold;font-size:14px;max-width:400px}
375
  #LoginSecurityResetButton {position:relative;bottom:10px;left:0px;margin:0px 0px 0px 0px;max-width:300px;}
376
  #LoginSecurityDBRowCount {float:left;position:relative;left:0px;bottom:20px;height:20px;}
377
  .button.bps-button.lsmreset {margin:0px 0px 0px 0px;}
378
  #LoginSecurityOptions select.form-220 {width:150px}
379
+ #EmailOptions select.form-340 {width:90%}
 
 
380
  #LoginSecurityJTC select.form-250 {width:90%}
381
  #LoginSecurityJTC input.regular-text-250 {width:90%}
382
  #Idle-Session-Logout .PFW-Allow-From-Text-Area {margin-top:5px;max-width:250px;}
421
  span.arq-tooltip-sw-60 {float:left;clear:left}
422
  span.arq-tooltip-sw-20:hover span {width:220px;height:100px;}
423
  span.arq-tooltip-sw-60:hover span {width:220px;height:200px;}
424
+ span.tooltip-250-80:hover span {visibility:hidden;display:none;}
425
+ }
426
+
427
+ @media screen and (min-width: 496px) and (max-width: 632px){
428
+ #LoginSecuritySearch {float:right;position:relative;bottom:35px;left:20px;margin:0px 20px 0px 0px;}
429
+ #LSMExportButton {margin-bottom:-50px}
430
  }
431
 
432
  /* Larger mobile phone, tablets and iPads common viewport sizes: 496, *533, *540, *600, 601, 602, 603, 604, 640, 648, *720, 731, 758, *768 */
454
  #LoginSecurityCheckall .widefat thead tr th {width:100%;text-align:left;white-space:normal;font-weight:bold;}
455
  #LoginSecurityCheckall .widefat tbody tr th {width:100%;}
456
  #LoginSecurityCheckall .widefat tbody tr td {width:100%;}
 
 
457
  #LoginSecurityDBRowCount {position:relative;left:0px;bottom:5px;color:#2ea2cc;font-weight:bold;font-size:14px;max-width:400px}
458
  #LoginSecurityResetButton {position:relative;bottom:10px;left:0px;margin:0px 0px 0px 0px;max-width:300px;}
459
  #LoginSecurityDBRowCount {float:left;position:relative;left:0px;bottom:20px;height:20px;}
460
  .button.bps-button.lsmreset {margin:0px 0px 0px 0px;}
461
  #LoginSecurityOptions select.form-220 {width:220px}
462
+ #EmailOptions select.form-340 {width:90%}
 
 
463
  #Idle-Session-Logout .PFW-Allow-From-Text-Area {margin-top:5px;width:450px}
464
  .bps_isl_custom_css_1 {width:400px}
465
  .bps_isl_custom_css_2 {width:350px}
486
  span.arq-tooltip-sw-60 {float:left;clear:left}
487
  span.arq-tooltip-sw-20:hover span {width:220px;height:100px;}
488
  span.arq-tooltip-sw-60:hover span {width:220px;height:200px;}
489
+ span.tooltip-250-80:hover span {visibility:hidden;display:none;}
490
  }
491
 
492
  /* tablets, laptops and pcs with smaller viewport sizes: *800, 854, 900, 960, *1024 */
520
  span.arq-tooltip-sw-60 {float:left;clear:left}
521
  span.arq-tooltip-sw-20:hover span {width:220px;height:100px;}
522
  span.arq-tooltip-sw-60:hover span {width:220px;height:200px;}
523
+ span.tooltip-250-80:hover span {width:80px;height:285px;}
524
  }
525
 
526
  /* laptops and pcs with larger viewports */
admin/css/bps-grey-ui-theme.css CHANGED
@@ -89,11 +89,10 @@ span.blue-bold {color:#000;font-weight:bold;font-size:16px;}
89
  #bps-tabs-11 div#bpsProFeatures p {font-weight:normal}
90
  div#milestone {font-weight:bold;height:20px;background-color:#e2e2e2;border:1px solid #999;padding:3px 0px 0px 5px;margin-bottom:2px;}
91
  /** Login Security **/
92
- #EmailOptionsLSM {margin:15px 0px 15px 0px}
93
  #LoginSecurityOptions {width:340px;}
94
  #LoginSecurityCheckall {max-height:600px;width:100%;overflow:auto;margin:0px 0px 20px 0px;}
95
  #LoginSecurityCheckall .widefat td {font-size:12px;}
96
- #LoginSecuritySearch {float:right;position:relative;top:0px;right:0px;margin:0px 20px 0px 0px;}
97
  .LSSearch-text {width:187px;margin:0px 5px 0px 0px;}
98
  #LSMExportButton {float:right;max-width:300px;}
99
  #LoginSecurityResetButton {position:relative;bottom:52px;left:115px;margin:0px 0px -30px 0px;max-width:300px;}
@@ -136,12 +135,30 @@ span.arq-tooltip-sw-60:hover {z-index:10;}
136
  span.arq-tooltip-sw-60 img:hover {z-index:10;}
137
  span.arq-tooltip-sw-60 span {display:none;position:absolute;bottom:0;left:0;right:0;}
138
  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);}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
139
  /** Security Log **/
140
  #SecLogCounter {float:right;background-color:#f7f7f7;border:1px solid #999;padding:5px;margin: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);}
141
  div#SecLogCounter div.sec-log-counter-text-title {font-weight:600;color:#000;font-size:16px;padding-bottom:5px;border-bottom:2px solid #999;}
142
  span.sec-log-counter-text {font-weight:600;font-size:13px;color:#000;}
143
  span.sec-log-counter-text-blue {font-weight:600;font-size:13px;color:#2ea2cc;}
144
- #SecurityLogTable {position:relative;top:0px;left:0px;margin:15px 0px 15px -3px;}
145
  #SecLogPostLimit {position:relative;top:0px;left:0px;margin:0px 0px 15px 0px;}
146
  /** B-Core & BPS htaccess File Editor **/
147
  .core-status-disabled {color:#00a0d2;background:#f7f7f7;padding:0px 5px 2px 5px;border:1px solid #999}
@@ -174,7 +191,6 @@ label[for=mmode], label[for=mmode-email] {font-size:1em;}
174
  .bps-dbb-small-text {font-size:12px;}
175
  .dbb-text-500 {width:500px;margin:0px 0px 10px 0px;}
176
  .table-prefix-changer {width:215px;}
177
- #DBBLogDelete {margin:0px 0px 10px 600px;}
178
  /** Buttons **/
179
  #bps-container .button {height:28px;}
180
  /* Form Submit buttons */
@@ -182,6 +198,7 @@ label[for=mmode], label[for=mmode-email] {font-size:1em;}
182
  #bps-container .bps-button:hover {color:#000;font-weight:bold;border-color:#666;}
183
  #bps-container .bps-button:active {background:#eee url(../images/white-grad-active.png) repeat-x scroll left top;}
184
  /* Dialog Read Me help buttons */
 
185
  #bps-container .bps-modal-button {font-size:.75em;line-height:22px;height:24px;margin:-3px 0px 0px 0px;}
186
  /* Messages / message buttons */
187
  /* buttons in displayed messages? check if these are obsolete */
@@ -371,16 +388,14 @@ td.bps-table_cell_help_custom_code pre {width:95%;}
371
  #LoginSecurityCheckall .widefat tbody tr th {width:100%;}
372
  #LoginSecurityCheckall .widefat tbody tr td {width:100%;}
373
  select.form-220 {width:90%;}
374
- #LoginSecuritySearch {float:right;position:relative;top:0px;right:0px;margin:0px 20px 20px 0px;}
375
- #LSMExportButton {float:right;max-width:300px;margin-bottom:15px}
376
  #LoginSecurityDBRowCount {position:relative;left:0px;bottom:5px;color:#2ea2cc;font-weight:bold;font-size:14px;max-width:400px}
377
  #LoginSecurityResetButton {position:relative;bottom:10px;left:0px;margin:0px 0px 0px 0px;max-width:300px;}
378
  #LoginSecurityDBRowCount {float:left;position:relative;left:0px;bottom:20px;height:20px;}
379
  .button.bps-button.lsmreset {margin:0px 0px 0px 0px;}
380
  #LoginSecurityOptions select.form-220 {width:150px}
381
- #EmailOptionsLSM select.form-340 {width:90%}
382
- #EmailOptionsSecLog select.form-340 {width:90%}
383
- #EmailOptionsDBB select.form-340 {width:90%}
384
  #LoginSecurityJTC select.form-250 {width:90%}
385
  #LoginSecurityJTC input.regular-text-250 {width:90%}
386
  #Idle-Session-Logout .PFW-Allow-From-Text-Area {margin-top:5px;max-width:250px;}
@@ -424,6 +439,12 @@ span.arq-tooltip-sw-20 {float:left;clear:left}
424
  span.arq-tooltip-sw-60 {float:left;clear:left}
425
  span.arq-tooltip-sw-20:hover span {width:220px;height:100px;}
426
  span.arq-tooltip-sw-60:hover span {width:220px;height:200px;}
 
 
 
 
 
 
427
  }
428
 
429
  /* Larger mobile phone, tablets and iPads common viewport sizes: 496, *533, *540, *600, 601, 602, 603, 604, 640, 648, *720, 731, 758, *768 */
@@ -450,16 +471,12 @@ table.bps-help_faq_table {width:100%;}
450
  #LoginSecurityCheckall .widefat thead tr th {width:100%;text-align:left;white-space:normal;font-weight:bold;}
451
  #LoginSecurityCheckall .widefat tbody tr th {width:100%;}
452
  #LoginSecurityCheckall .widefat tbody tr td {width:100%;}
453
- #LoginSecuritySearch {float:right;position:relative;top:0px;right:0px;margin:0px 20px 20px 0px;}
454
- #LSMExportButton {float:right;max-width:300px;margin-bottom:15px}
455
  #LoginSecurityDBRowCount {position:relative;left:0px;bottom:5px;color:#2ea2cc;font-weight:bold;font-size:14px;max-width:400px}
456
  #LoginSecurityResetButton {position:relative;bottom:10px;left:0px;margin:0px 0px 0px 0px;max-width:300px;}
457
  #LoginSecurityDBRowCount {float:left;position:relative;left:0px;bottom:20px;height:20px;}
458
  .button.bps-button.lsmreset {margin:0px 0px 0px 0px;}
459
  #LoginSecurityOptions select.form-220 {width:220px}
460
- #EmailOptionsLSM select.form-340 {width:90%}
461
- #EmailOptionsSecLog select.form-340 {width:90%}
462
- #EmailOptionsDBB select.form-340 {width:90%}
463
  .button.bps-button.lsmreset {margin:0px 0px 0px 0px;}
464
  #Idle-Session-Logout .PFW-Allow-From-Text-Area {margin-top:5px;width:450px}
465
  .bps_isl_custom_css_1 {width:400px}
@@ -487,6 +504,7 @@ span.arq-tooltip-sw-20 {float:left;clear:left}
487
  span.arq-tooltip-sw-60 {float:left;clear:left}
488
  span.arq-tooltip-sw-20:hover span {width:220px;height:100px;}
489
  span.arq-tooltip-sw-60:hover span {width:220px;height:200px;}
 
490
  }
491
 
492
  /* tablets, laptops and pcs with smaller viewport sizes: *800, 854, 900, 960, *1024 */
@@ -522,6 +540,7 @@ span.arq-tooltip-sw-20 {float:left;clear:left}
522
  span.arq-tooltip-sw-60 {float:left;clear:left}
523
  span.arq-tooltip-sw-20:hover span {width:220px;height:100px;}
524
  span.arq-tooltip-sw-60:hover span {width:220px;height:200px;}
 
525
  }
526
 
527
  /* laptops and pcs with larger viewports */
89
  #bps-tabs-11 div#bpsProFeatures p {font-weight:normal}
90
  div#milestone {font-weight:bold;height:20px;background-color:#e2e2e2;border:1px solid #999;padding:3px 0px 0px 5px;margin-bottom:2px;}
91
  /** Login Security **/
 
92
  #LoginSecurityOptions {width:340px;}
93
  #LoginSecurityCheckall {max-height:600px;width:100%;overflow:auto;margin:0px 0px 20px 0px;}
94
  #LoginSecurityCheckall .widefat td {font-size:12px;}
95
+ #LoginSecuritySearch {float:right;position:relative;bottom:35px;left:258px;margin:0px 20px 0px 0px;}
96
  .LSSearch-text {width:187px;margin:0px 5px 0px 0px;}
97
  #LSMExportButton {float:right;max-width:300px;}
98
  #LoginSecurityResetButton {position:relative;bottom:52px;left:115px;margin:0px 0px -30px 0px;max-width:300px;}
135
  span.arq-tooltip-sw-60 img:hover {z-index:10;}
136
  span.arq-tooltip-sw-60 span {display:none;position:absolute;bottom:0;left:0;right:0;}
137
  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);}
138
+ /** MScan **/
139
+ .text-area-340x60 {width:340px;height:60px;}
140
+ #MScan-Time-Container {position:relative;top:0px;left:0px;}
141
+ div#mscantimer {color:#000;font-size:14px!important;font-weight:600!important;padding:4px;position:relative;top:0px;left:0px;}
142
+ #MscanProgressBar {width:100%;height:30px;background-color:#e8e8e8;border-radius:2px;-webkit-box-shadow:inset 0 2px 3px rgba(0, 0, 0, 0.25);-moz-box-shadow:inset 0 2px 3px rgba(0, 0, 0, 0.25);box-shadow:inset 0 2px 3px rgba(0, 0, 0, 0.25);}
143
+ #MscanBar {width:0%;height:30px;font-weight:bold;text-align:center;line-height:30px;color:white;}
144
+ .mscan-progress-bar {width:0;height:100%;background:#0e8bcb;background:-moz-linear-gradient(top, #0e8bcb 0%, #08496b 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%,#0e8bcb), color-stop(100%,#08496b));background:-webkit-linear-gradient(top, #0e8bcb 0%,#08496b 100%);background:-o-linear-gradient(top, #0e8bcb 0%,#08496b 100%);background:-ms-linear-gradient(top, #0e8bcb 0%,#08496b 100%);background:linear-gradient(to bottom, #0e8bcb 0%,#08496b 100%);-webkit-transition:width 1s ease-in-out;-moz-transition:width 1s ease-in-out;-o-transition:width 1s ease-in-out;transition:width 1s ease-in-out;}
145
+ span.tooltip-250-80 {display:inline-block;position:relative;}
146
+ span.tooltip-250-80:hover {z-index:10;}
147
+ span.tooltip-250-80 img:hover {z-index:10;}
148
+ span.tooltip-250-80 span {display:none;position:absolute;bottom:0;left:0;right:0;}
149
+ span.tooltip-250-80:hover span {width:250px;height:80px;display:block;position:absolute;top:0px;left:30px;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);}
150
+ span.tooltip-350-120 {display:inline-block;position:relative;}
151
+ span.tooltip-350-120:hover {z-index:10;}
152
+ span.tooltip-350-120 img:hover {z-index:10;}
153
+ span.tooltip-350-120 span {display:none;position:absolute;bottom:0;left:0;right:0;}
154
+ span.tooltip-350-120:hover span {width:350px;height:120px;display:block;position:absolute;top:0px;left:30px;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);}
155
+ #MScanSuspectcheckall, #MScanSuspectDBcheckall {max-height:400px;width:100%;overflow:auto;margin:0px 0px 20px 0px;}
156
  /** Security Log **/
157
  #SecLogCounter {float:right;background-color:#f7f7f7;border:1px solid #999;padding:5px;margin: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);}
158
  div#SecLogCounter div.sec-log-counter-text-title {font-weight:600;color:#000;font-size:16px;padding-bottom:5px;border-bottom:2px solid #999;}
159
  span.sec-log-counter-text {font-weight:600;font-size:13px;color:#000;}
160
  span.sec-log-counter-text-blue {font-weight:600;font-size:13px;color:#2ea2cc;}
161
+ #SecurityLogTable {position:relative;top:0px;left:0px;margin:0px 0px 15px -3px;}
162
  #SecLogPostLimit {position:relative;top:0px;left:0px;margin:0px 0px 15px 0px;}
163
  /** B-Core & BPS htaccess File Editor **/
164
  .core-status-disabled {color:#00a0d2;background:#f7f7f7;padding:0px 5px 2px 5px;border:1px solid #999}
191
  .bps-dbb-small-text {font-size:12px;}
192
  .dbb-text-500 {width:500px;margin:0px 0px 10px 0px;}
193
  .table-prefix-changer {width:215px;}
 
194
  /** Buttons **/
195
  #bps-container .button {height:28px;}
196
  /* Form Submit buttons */
198
  #bps-container .bps-button:hover {color:#000;font-weight:bold;border-color:#666;}
199
  #bps-container .bps-button:active {background:#eee url(../images/white-grad-active.png) repeat-x scroll left top;}
200
  /* Dialog Read Me help buttons */
201
+ .bps-dialog-hide {display:none}
202
  #bps-container .bps-modal-button {font-size:.75em;line-height:22px;height:24px;margin:-3px 0px 0px 0px;}
203
  /* Messages / message buttons */
204
  /* buttons in displayed messages? check if these are obsolete */
388
  #LoginSecurityCheckall .widefat tbody tr th {width:100%;}
389
  #LoginSecurityCheckall .widefat tbody tr td {width:100%;}
390
  select.form-220 {width:90%;}
391
+ #LoginSecuritySearch {float:right;position:relative;bottom:35px;left:20px;margin:0px 20px 0px 0px;}
392
+ #LSMExportButton {margin-bottom:-50px}
393
  #LoginSecurityDBRowCount {position:relative;left:0px;bottom:5px;color:#2ea2cc;font-weight:bold;font-size:14px;max-width:400px}
394
  #LoginSecurityResetButton {position:relative;bottom:10px;left:0px;margin:0px 0px 0px 0px;max-width:300px;}
395
  #LoginSecurityDBRowCount {float:left;position:relative;left:0px;bottom:20px;height:20px;}
396
  .button.bps-button.lsmreset {margin:0px 0px 0px 0px;}
397
  #LoginSecurityOptions select.form-220 {width:150px}
398
+ #EmailOptions select.form-340 {width:90%}
 
 
399
  #LoginSecurityJTC select.form-250 {width:90%}
400
  #LoginSecurityJTC input.regular-text-250 {width:90%}
401
  #Idle-Session-Logout .PFW-Allow-From-Text-Area {margin-top:5px;max-width:250px;}
439
  span.arq-tooltip-sw-60 {float:left;clear:left}
440
  span.arq-tooltip-sw-20:hover span {width:220px;height:100px;}
441
  span.arq-tooltip-sw-60:hover span {width:220px;height:200px;}
442
+ span.tooltip-250-80:hover span {visibility:hidden;display:none;}
443
+ }
444
+
445
+ @media screen and (min-width: 496px) and (max-width: 632px){
446
+ #LoginSecuritySearch {float:right;position:relative;bottom:35px;left:20px;margin:0px 20px 0px 0px;}
447
+ #LSMExportButton {margin-bottom:-50px}
448
  }
449
 
450
  /* Larger mobile phone, tablets and iPads common viewport sizes: 496, *533, *540, *600, 601, 602, 603, 604, 640, 648, *720, 731, 758, *768 */
471
  #LoginSecurityCheckall .widefat thead tr th {width:100%;text-align:left;white-space:normal;font-weight:bold;}
472
  #LoginSecurityCheckall .widefat tbody tr th {width:100%;}
473
  #LoginSecurityCheckall .widefat tbody tr td {width:100%;}
 
 
474
  #LoginSecurityDBRowCount {position:relative;left:0px;bottom:5px;color:#2ea2cc;font-weight:bold;font-size:14px;max-width:400px}
475
  #LoginSecurityResetButton {position:relative;bottom:10px;left:0px;margin:0px 0px 0px 0px;max-width:300px;}
476
  #LoginSecurityDBRowCount {float:left;position:relative;left:0px;bottom:20px;height:20px;}
477
  .button.bps-button.lsmreset {margin:0px 0px 0px 0px;}
478
  #LoginSecurityOptions select.form-220 {width:220px}
479
+ #EmailOptions select.form-340 {width:90%}
 
 
480
  .button.bps-button.lsmreset {margin:0px 0px 0px 0px;}
481
  #Idle-Session-Logout .PFW-Allow-From-Text-Area {margin-top:5px;width:450px}
482
  .bps_isl_custom_css_1 {width:400px}
504
  span.arq-tooltip-sw-60 {float:left;clear:left}
505
  span.arq-tooltip-sw-20:hover span {width:220px;height:100px;}
506
  span.arq-tooltip-sw-60:hover span {width:220px;height:200px;}
507
+ span.tooltip-250-80:hover span {visibility:hidden;display:none;}
508
  }
509
 
510
  /* tablets, laptops and pcs with smaller viewport sizes: *800, 854, 900, 960, *1024 */
540
  span.arq-tooltip-sw-60 {float:left;clear:left}
541
  span.arq-tooltip-sw-20:hover span {width:220px;height:100px;}
542
  span.arq-tooltip-sw-60:hover span {width:220px;height:200px;}
543
+ span.tooltip-250-80:hover span {width:80px;height:285px;}
544
  }
545
 
546
  /* laptops and pcs with larger viewports */
admin/db-backup-security/db-backup-help-text.php CHANGED
@@ -9,7 +9,7 @@ if ( !current_user_can('manage_options') ) {
9
  $bps_modal_content1 = '<strong><font color="blue">'.__('Backup Job settings and other information about backups are logged in the DB backup Log. The sql dump backup file in the DB Backup zip file/archive also contains information about the Backup Job. You can Export your Backup Jobs by doing a backup of only the xx_bpspro_db_backup DB Table, which you can then Import to another website by using phpMyAdmin. Important Note: Your DB Table Prefix name in your sql dump backup file MUST match the DB Table Prefix name for the site you are importing it too. You can manually edit the sql dump file on your computer to change the DB Table Prefix name before importing it to a new site with phpMyAdmin.', 'bulletproof-security').'</font></strong><br><br><strong>'.__('DB Backup Job Completion Time Estimates: ', 'bulletproof-security').'</strong>'.__('DB Size before zip: 10MB: 3 Seconds - 100MB: 30 Seconds', 'bulletproof-security').'<br><br><strong>'.__('How To Create a Backup Job, Run a Backup Job, Download a Backup File and Delete a Backup File', 'bulletproof-security').'</strong><br><strong>'.__('NOTE: ', 'bulletproof-security').'</strong>'.__('Before creating a Scheduled Backup Job please read the - ', 'bulletproof-security').'<strong>'.__('Scheduled Backup Jobs General Information and Notes', 'bulletproof-security').'</strong>'.__(' help section.', 'bulletproof-security').'<br><br>'.__('1. Click the Create Backup Jobs accordion tab.', 'bulletproof-security').'<br>'.__('2. Enter a Description|Backup Job Name and select the Form option choices that you want.', 'bulletproof-security').'<br>'.__('3. Click the Create Backup Job|Save Settings button to save your Form option choices and create your Backup Job.', 'bulletproof-security').'<br>'.__('4. Click the Backup Jobs - Manual|Scheduled accordion tab, click on the Run checkbox for the Backup Job that you want to run and click the Run Job|Delete Job button.', 'bulletproof-security').'<br>'.__('5. Your Backup files are displayed under the Backup Files - Download|Delete accordion tab.', 'bulletproof-security').'<br>'.__('6. You can Download Backup files to your computer by clicking the Download link for that Backup file.', 'bulletproof-security').'<br>'.__('7. You can delete Backup files by clicking the checkbox for the Backup file that you want to delete and then click the Delete Files button.', 'bulletproof-security').'<br><br><strong>'.__('Backup Jobs - Manual|Scheduled Accordion Tab', 'bulletproof-security').'</strong><br>'.__('- Displays the Description|Job Name, Delete and Run Checkboxes, Job Type, Frequency, Last Backup, Next Backup, Email Backup and Job Created table columns.', 'bulletproof-security').'<br>'.__('- Job Type displays either Manual or Scheduled.', 'bulletproof-security').'<br>'.__('- Frequency displays either Manual, Hourly, Daily, Weekly or Monthly.', 'bulletproof-security').'<br>'.__('- Last Backup displays either Backup Job Created or a timestamp when the last backup job was run.', 'bulletproof-security').'<br>'.__('- Next Backup displays either Manual, Hourly or a combination of user-friendly next job run times: 5PM, Sunday 5PM, 30th 5PM.', 'bulletproof-security').'<br>'.__('- Email Backup displays either Manual, Yes, Yes & Delete, No or Send Email Only.', 'bulletproof-security').'<br>'.__('- Job Created displays the timestamp for when the Backup Job was created.', 'bulletproof-security').'<br><br><strong>'.__('Backup Files - Download|Delete Accordion Tab', 'bulletproof-security').'</strong><br>'.__('- Displays the Backup Filename, Delete Checkbox, Download Links, Backup Folder, Size and Date|Time table columns.', 'bulletproof-security').'<br>'.__('- Backup Filename displays the name of the backup zip file.', 'bulletproof-security').'<br>'.__('- Backup Folder displays the backup folder path.', 'bulletproof-security').'<br>'.__('- Size displays the size of the backup zip file.', 'bulletproof-security').'<br>'.__('- Date|Time displays the date and time that the backup zip file was created.', 'bulletproof-security').'<br><br><strong>'.__('Create Backup Jobs Accordion Tab', 'bulletproof-security').'</strong><br>'.__('- Displays a dynamic DB Table Name checkbox form used to select the database tables that you want to backup.', 'bulletproof-security').'<br>'.__('- Description|Backup Job Name textbox to enter a description for your Backup Job.', 'bulletproof-security').'<br>'.__('- DB Backup Folder Location textbox with a default Obfuscated & Secure BPS Backup Folder location.', 'bulletproof-security').'<br>'.__('- DB Backup File Download Link|URL textbox with a default download URL path.', 'bulletproof-security').'<br>'.__('- Backup Job Type: Manual or Scheduled select dropdown option to choose either a Manual or Scheduled Backup job type.', 'bulletproof-security').'<br>'.__('- Frequency of Scheduled Backup Job (recurring) select dropdown option to choose either N/A, Hourly, Daily, Weekly or Monthly backup job frequency.', 'bulletproof-security').'<br>'.__('- Hour When Scheduled Backup is Run (recurring) select dropdown option to choose a start time for a scheduled backup job: N/A and 12AM through 11PM.', 'bulletproof-security').'<br>'.__('- Day of Week When Scheduled Backup is Run (recurring) select dropdown option to choose a weekday day when a scheduled backup job is run: N/A and Sunday through Monday.', 'bulletproof-security').'<br>'.__('- Day of Month When Scheduled Backup is Run (recurring) select dropdown option to choose a day of the month for a start time when a backup job is run: N/A and 1st through 30th.', 'bulletproof-security').'<br>'.__('- Send Scheduled Backup Zip File Via Email or Just Email Only select dropdown option to choose either to email a zip backup file, do not email backup zip file, email and delete zip backup file or just send an email that backup job has completed/been run. ', 'bulletproof-security').'<strong>'.__('Note: This option is ONLY for Scheduled backup jobs and is NOT for Manual backup jobs.', 'bulletproof-security').'</strong><br>'.__('- Automatically Delete Old Backup Files select dropdown option to choose 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. This is an independent option meaning that it can be set/changed/saved independently and is not specific to any created Backup Jobs.', 'bulletproof-security').'<br>'.__('- Turn On|Off All Scheduled Backups (override) select dropdown option to choose either turn on all scheduled backups or turn off all scheduled backups. This an override option that prevent any/all scheduled backup jobs from being run. This is an independent option meaning that it can be set/changed/saved independently and is not specific to any created Backup Jobs.', 'bulletproof-security').'<br><br><strong>'.__('Rename|Create|Reset Tool', 'bulletproof-security').'</strong><br>'.__('If you would like to change/rename the default BPS DB Backup folder name either use the automatically randomly generated new DB Backup folder name or you can edit the new DB Backup folder name in the Rename|Create|Reset DB Backup Folder Name: text box and click the Rename|Create|Reset button. Only use these valid characters: Letters A to Z uppercase or lowercase, Numbers 0-9 and/or a dash "-" or an underscore "_". If you have DB Backup files they will not be affected/changed. The DB Backup File Download Link|URL path will also be changed and have the new DB Backup folder name in the URL path.', 'bulletproof-security').'<br><br>'.__('The Rename|Create|Reset Tool can also be used for troubleshooting problems with the automatic BPS DB Backup folder creation. If the BPS DB Backup folder was not automatically created already then use this tool to try and create a new DB Backup folder. You will see an error message displayed with things to check that could be preventing the DB Backup folder from being successfully created.', 'bulletproof-security').'<br><br><strong>'.__('Scheduled Backup Jobs General Information and Notes', 'bulletproof-security').'</strong><br>'.__('- The Send Scheduled Backup Zip File Via Email or Just Email Only option is ONLY for Scheduled backup jobs and is NOT for Manual backup jobs.', 'bulletproof-security').'<br><br>'.__('- Scheduled Backup Cron Jobs are synchronized to run exactly on the hour: 5:00pm, 6:00pm, 7:00pm. The Backup Cron job actual run times may fluctuate slightly. That is just the normal nature of WordPress Crons. The DB Backup Cron is designed to resynchronize itself to the top of the hour on the hour.', 'bulletproof-security').'<br><br>'.__('- Today is 12AM to 11:59PM. If you want a Daily scheduled backup job to start running for the first time at 12AM tomorrow (which seems like today, but is actually tomorrow) then choose the Day of the Week that is tomorrow. 12AM tomorrow is the start time and the Daily scheduled backup job will continue to be run at 12AM every day after the start time that you choose.', 'bulletproof-security').'<br><br>'.__('- The Create Backup Jobs Form allows for the widest possible combinations of start times for scheduled backup jobs. The start time choices are: Frequency, Hour, Day of Week and Day of Month and have many different possible logical combinations that can be chosen. See this help section before creating any scheduled backup jobs - ', 'bulletproof-security').'<strong>'.__('Best Logical Choices For Start Times When Scheduling Backup Jobs With the Create Backup Jobs Form', 'bulletproof-security').'</strong><br><br>'.__('- You can schedule multiple backup jobs for the same frequency. Example: You can create/schedule a backup job to run Weekly at 8PM on Sunday and can create/schedule a backup job to run Weekly at 10PM on Wednesday. Scheduled backup jobs run based on the time the scheduled backup job is scheduled to run - there are no limitations with scheduling multiple backup jobs.', 'bulletproof-security').'<br><br><strong>'.__('Best Logical Choices For Start Times When Scheduling Backup Jobs With the Create Backup Jobs Form', 'bulletproof-security').'</strong><br>'.__('These are some common logical option choices for Creating/Scheduling Backup Jobs. There are other possible combinations of option settings/start times, but these are intended to be simple examples of common logical option setting choices.', 'bulletproof-security').'<br><br><strong>'.__('Hourly Backup Job', 'bulletproof-security').'</strong><br>'.__('- If you choose Hourly for the Frequency and you do not pick a start Time/Hour when the Backup Job is next run. The next Backup Job will be run at the top of the next hour. Example: If the time now is 4:30PM then the next backup job will be run at 5PM, then 6PM, then 7PM, etc.', 'bulletproof-security').'<br>'.__('- If you choose Hourly for the Frequency and pick a start Time/Hour when the Backup Job is next run. The next Backup Job will be run at the start Time/Hour that you chose. Example: If the time now is 4:30PM and you chose 8PM for the start Time/Hour then the next backup job will be run at 8PM, then 9PM, then 10PM, etc.', 'bulletproof-security').'<br><br><strong>'.__('Daily Backup Job', 'bulletproof-security').'</strong><br>'.__('- If today is Tuesday and you want to schedule a Backup Job to run at 12AM daily/every night. You would choose Daily for the Frequency, start Time/Hour of 12AM (12AM is tomorrow) and Wednesday for the day of the week for the start time when the Backup Job is next run. The next Backup Job will be run at 12AM Wednesday tonight/tomorrow and at 12AM every night/morning.', 'bulletproof-security').'<br><br><strong>'.__('Weekly Backup Job', 'bulletproof-security').'</strong><br>'.__('- If you want to schedule a Backup Job to run Weekly at 12AM every Sunday. You would choose Weekly for the Frequency, start Time/Hour of 12AM and Sunday for the day of the week for the start time when the Backup Job is next run. The next Backup Job will be run at 12AM next Sunday and every Sunday at 12AM.', 'bulletproof-security').'<br><br><strong>'.__('Monthly Backup Job', 'bulletproof-security').'</strong><br>'.__('- If you want to schedule a Backup Job to run Monthly on the 30th of each month at 11PM. You would choose Monthly for the Frequency, start Time/Hour of 11PM and 30th for the day of the month for the start time when the Backup Job is next run. The next Backup Job will be run on the 30th of this month at 11PM and each month on the 30th at 11PM.', 'bulletproof-security').'<br><br><strong>'.__('404 errors when trying to download zip files or if you have changed the DB Backup Folder Location', 'bulletproof-security').'</strong><br>'.__('On some web hosts (Go Daddy) if you have a WordPress subfolder website installation: Example: Main domain is example.com and Subfolder WordPress site is example.com/wordpress-subfolder-website/ then the download link will not work correctly and you will see 404 errors when trying to download zip backup files. Your options are to not change the default backup folder path for your subfolder site and download zip backup files via FTP or you can use/add the backup folder path for your main site instead of the default backup folder path for your subfolder site. You would also change the DB Backup File Download Link|URL to your main site\'s backup folder Link/URL path. What this means is that DB Backups for both your main site and your subfolder site will be saved/stored under your main site\'s backup folder.', 'bulletproof-security').'<br><br>'.__('If you are seeing 404 errors after changing the DB Backup File Download Link|URL and/or the DB Backup Folder Location then make sure that you have entered the correct folder path and also the correct link/URL paths for where your DB backup files are being saved/stored. The DB Backup File Download Link|URL path MUST end with/have a trailing slash. Example: http://www.example.com/wp-content/bps-backup/backups_xxxxxxxxxx/', 'bulletproof-security');
10
 
11
  /** DB Backup Log **/
12
- $bps_modal_content2 = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br><strong>'.__('DB Backup Log General Information', 'bulletproof-security').'</strong><br>'.__('Your DB Backup 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>'.__('What is Logged in The DB Backup Log?', 'bulletproof-security').'</strong><br>'.__('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. Logs Backup Job Settings, Completion Time, Memory Usage, Zip Backup File Name, Timestamp and other DB Backup information. 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.', 'bulletproof-security').'<strong><br><br>'.__('DB Backup Log File Size', 'bulletproof-security').'</strong><br>'.__('Displays the size of your DB Backup 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 DB Backup Log file.', 'bulletproof-security').'<br><br><strong>'.__('DB Backup Log Last Modified Time', 'bulletproof-security').'</strong><br>'.__('Displays the last time a DB Backup Log entry was logged.', 'bulletproof-security').'<br><br><strong>'.__('Delete Log Button', 'bulletproof-security').'</strong><br>'.__('Clicking the Delete Log button will delete the entire contents of your DB Backup Log File.', 'bulletproof-security');
13
 
14
  /** DB Table Prefix Changer **/
15
  $bps_modal_content3 = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br><strong>'.__('Safety Precautions & Procedures', 'bulletproof-security').'</strong><br>'.__('Changing the DB Table Prefix name is a very simple thing to automate. This tool has been extensively tested and is safe and reliable, but anytime you are modifying your database you should ALWAYS perform a database backup as a safety precaution.', 'bulletproof-security').'<br><br><strong>'.__('Compatibility', 'bulletproof-security').'</strong><br>'.__('Works on all WordPress, BuddyPress and bbPress site types: Single standard WordPress installations and Network/Multisite installations.', 'bulletproof-security').'<br><br><strong><font color="blue">'.__('Note: The DB Table Names & Character Length Table needs to be a clickable Form button and is not displayed permanently open because that would cause the entire DB Backup & Security page (all Tab pages) to perform poorly/sluggishly on large websites.', 'bulletproof-security').'</font></strong><br><br><strong>'.__('Other Prefix Changes Explained', 'bulletproof-security').'</strong><br>'.__('In your WordPress xxxxxx_options DB Table there is one value that will be changed in the option_name Column: xxxxxx_user_roles. Note: Network|Multisite sites will have additional xxxxxx_[Site ID]_user_roles Columns for each subsite options DB Table. In your WordPress xxxxxx_usermeta DB Table there are several values that will be changed in the meta_key Column. These are user/user ID specific values based on individual user\'s Metadata stored in the xxxxxx_usermeta DB Table. Metadata is user specific saved settings, such as individual user\'s capabilities, permissions, saved screen options settings, etc.', 'bulletproof-security').'<br><br><strong>'.__('Correct Usage & Technical Info.', 'bulletproof-security').'</strong><br>'.__('If you want to create your own DB Table Prefix name or add additional characters to the randomly generated DB Table Prefix name then ONLY use lowercase letters, numbers and underscores in your DB Table Prefix name. The standard MySQL DB Table naming convention is xxxxxx_ where the x\'s should be ONLY lowercase letters and/or numbers and the DB Table Prefix name should end with an underscore.', 'bulletproof-security').'<br><br>'.__('The maximum length limitation of a DB Table name, including the table prefix is 64 characters. See the DB Table Names & Character Length Table for character lengths of your database table names.', 'bulletproof-security').'<br><br>'.__('If a plugin or theme is using "wp_" in its DB Table naming conventions, example: wp_wp_some_plugin_table_name, then the DB Table Prefix Changer tool will NOT change anything besides the first wp_ in the DB Table name - The DB Table Prefix Change will ONLY change the actual start/prefix of a DB Table name.', 'bulletproof-security').'<br><br>'.__('To change your DB Table Prefix name back to the WordPress default DB Table Prefix name, enter wp_ for the DB Table Prefix name.', 'bulletproof-security').'<br><br><strong>'.__('Network|Multisite Additional Info.', 'bulletproof-security').'</strong><br>'.__('If you have a Network|Multisite site then you will see an additional button: Update Site User Roles button. Click the Change DB Table Prefix button first before clicking the Update Site User Roles button. You must click both buttons to complete all DB Table Prefix Name changes on a Network|Multisite site type. If you forget to click the Update Site User Roles button then users will see this error message when trying to login: You do not have sufficient permissions to access this page. Click the Update Site User Roles button to fix that problem.', 'bulletproof-security').'<br><br><strong>'.__('Security measure vs Anti-nuisance measure', 'bulletproof-security').'</strong><br>'.__('By changing your Database Table Prefix name you will probably stop a lot of random Bot probes from doing any further reconnaissance against your website and causing unnecessary slowness from those random Bot probes. Changing the DB Table Prefix name is not really a security measure since if a hacker wants to find/get your DB Table Prefix name he/she will be able to find/get that information. The Anti-nuisance benefits alone are worth changing your DB Table Prefix name. BPS has many layers of security protection that protect your Database against SQL Injection attacks.', 'bulletproof-security');
9
  $bps_modal_content1 = '<strong><font color="blue">'.__('Backup Job settings and other information about backups are logged in the DB backup Log. The sql dump backup file in the DB Backup zip file/archive also contains information about the Backup Job. You can Export your Backup Jobs by doing a backup of only the xx_bpspro_db_backup DB Table, which you can then Import to another website by using phpMyAdmin. Important Note: Your DB Table Prefix name in your sql dump backup file MUST match the DB Table Prefix name for the site you are importing it too. You can manually edit the sql dump file on your computer to change the DB Table Prefix name before importing it to a new site with phpMyAdmin.', 'bulletproof-security').'</font></strong><br><br><strong>'.__('DB Backup Job Completion Time Estimates: ', 'bulletproof-security').'</strong>'.__('DB Size before zip: 10MB: 3 Seconds - 100MB: 30 Seconds', 'bulletproof-security').'<br><br><strong>'.__('How To Create a Backup Job, Run a Backup Job, Download a Backup File and Delete a Backup File', 'bulletproof-security').'</strong><br><strong>'.__('NOTE: ', 'bulletproof-security').'</strong>'.__('Before creating a Scheduled Backup Job please read the - ', 'bulletproof-security').'<strong>'.__('Scheduled Backup Jobs General Information and Notes', 'bulletproof-security').'</strong>'.__(' help section.', 'bulletproof-security').'<br><br>'.__('1. Click the Create Backup Jobs accordion tab.', 'bulletproof-security').'<br>'.__('2. Enter a Description|Backup Job Name and select the Form option choices that you want.', 'bulletproof-security').'<br>'.__('3. Click the Create Backup Job|Save Settings button to save your Form option choices and create your Backup Job.', 'bulletproof-security').'<br>'.__('4. Click the Backup Jobs - Manual|Scheduled accordion tab, click on the Run checkbox for the Backup Job that you want to run and click the Run Job|Delete Job button.', 'bulletproof-security').'<br>'.__('5. Your Backup files are displayed under the Backup Files - Download|Delete accordion tab.', 'bulletproof-security').'<br>'.__('6. You can Download Backup files to your computer by clicking the Download link for that Backup file.', 'bulletproof-security').'<br>'.__('7. You can delete Backup files by clicking the checkbox for the Backup file that you want to delete and then click the Delete Files button.', 'bulletproof-security').'<br><br><strong>'.__('Backup Jobs - Manual|Scheduled Accordion Tab', 'bulletproof-security').'</strong><br>'.__('- Displays the Description|Job Name, Delete and Run Checkboxes, Job Type, Frequency, Last Backup, Next Backup, Email Backup and Job Created table columns.', 'bulletproof-security').'<br>'.__('- Job Type displays either Manual or Scheduled.', 'bulletproof-security').'<br>'.__('- Frequency displays either Manual, Hourly, Daily, Weekly or Monthly.', 'bulletproof-security').'<br>'.__('- Last Backup displays either Backup Job Created or a timestamp when the last backup job was run.', 'bulletproof-security').'<br>'.__('- Next Backup displays either Manual, Hourly or a combination of user-friendly next job run times: 5PM, Sunday 5PM, 30th 5PM.', 'bulletproof-security').'<br>'.__('- Email Backup displays either Manual, Yes, Yes & Delete, No or Send Email Only.', 'bulletproof-security').'<br>'.__('- Job Created displays the timestamp for when the Backup Job was created.', 'bulletproof-security').'<br><br><strong>'.__('Backup Files - Download|Delete Accordion Tab', 'bulletproof-security').'</strong><br>'.__('- Displays the Backup Filename, Delete Checkbox, Download Links, Backup Folder, Size and Date|Time table columns.', 'bulletproof-security').'<br>'.__('- Backup Filename displays the name of the backup zip file.', 'bulletproof-security').'<br>'.__('- Backup Folder displays the backup folder path.', 'bulletproof-security').'<br>'.__('- Size displays the size of the backup zip file.', 'bulletproof-security').'<br>'.__('- Date|Time displays the date and time that the backup zip file was created.', 'bulletproof-security').'<br><br><strong>'.__('Create Backup Jobs Accordion Tab', 'bulletproof-security').'</strong><br>'.__('- Displays a dynamic DB Table Name checkbox form used to select the database tables that you want to backup.', 'bulletproof-security').'<br>'.__('- Description|Backup Job Name textbox to enter a description for your Backup Job.', 'bulletproof-security').'<br>'.__('- DB Backup Folder Location textbox with a default Obfuscated & Secure BPS Backup Folder location.', 'bulletproof-security').'<br>'.__('- DB Backup File Download Link|URL textbox with a default download URL path.', 'bulletproof-security').'<br>'.__('- Backup Job Type: Manual or Scheduled select dropdown option to choose either a Manual or Scheduled Backup job type.', 'bulletproof-security').'<br>'.__('- Frequency of Scheduled Backup Job (recurring) select dropdown option to choose either N/A, Hourly, Daily, Weekly or Monthly backup job frequency.', 'bulletproof-security').'<br>'.__('- Hour When Scheduled Backup is Run (recurring) select dropdown option to choose a start time for a scheduled backup job: N/A and 12AM through 11PM.', 'bulletproof-security').'<br>'.__('- Day of Week When Scheduled Backup is Run (recurring) select dropdown option to choose a weekday day when a scheduled backup job is run: N/A and Sunday through Monday.', 'bulletproof-security').'<br>'.__('- Day of Month When Scheduled Backup is Run (recurring) select dropdown option to choose a day of the month for a start time when a backup job is run: N/A and 1st through 30th.', 'bulletproof-security').'<br>'.__('- Send Scheduled Backup Zip File Via Email or Just Email Only select dropdown option to choose either to email a zip backup file, do not email backup zip file, email and delete zip backup file or just send an email that backup job has completed/been run. ', 'bulletproof-security').'<strong>'.__('Note: This option is ONLY for Scheduled backup jobs and is NOT for Manual backup jobs.', 'bulletproof-security').'</strong><br>'.__('- Automatically Delete Old Backup Files select dropdown option to choose 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. This is an independent option meaning that it can be set/changed/saved independently and is not specific to any created Backup Jobs.', 'bulletproof-security').'<br>'.__('- Turn On|Off All Scheduled Backups (override) select dropdown option to choose either turn on all scheduled backups or turn off all scheduled backups. This an override option that prevent any/all scheduled backup jobs from being run. This is an independent option meaning that it can be set/changed/saved independently and is not specific to any created Backup Jobs.', 'bulletproof-security').'<br><br><strong>'.__('Rename|Create|Reset Tool', 'bulletproof-security').'</strong><br>'.__('If you would like to change/rename the default BPS DB Backup folder name either use the automatically randomly generated new DB Backup folder name or you can edit the new DB Backup folder name in the Rename|Create|Reset DB Backup Folder Name: text box and click the Rename|Create|Reset button. Only use these valid characters: Letters A to Z uppercase or lowercase, Numbers 0-9 and/or a dash "-" or an underscore "_". If you have DB Backup files they will not be affected/changed. The DB Backup File Download Link|URL path will also be changed and have the new DB Backup folder name in the URL path.', 'bulletproof-security').'<br><br>'.__('The Rename|Create|Reset Tool can also be used for troubleshooting problems with the automatic BPS DB Backup folder creation. If the BPS DB Backup folder was not automatically created already then use this tool to try and create a new DB Backup folder. You will see an error message displayed with things to check that could be preventing the DB Backup folder from being successfully created.', 'bulletproof-security').'<br><br><strong>'.__('Scheduled Backup Jobs General Information and Notes', 'bulletproof-security').'</strong><br>'.__('- The Send Scheduled Backup Zip File Via Email or Just Email Only option is ONLY for Scheduled backup jobs and is NOT for Manual backup jobs.', 'bulletproof-security').'<br><br>'.__('- Scheduled Backup Cron Jobs are synchronized to run exactly on the hour: 5:00pm, 6:00pm, 7:00pm. The Backup Cron job actual run times may fluctuate slightly. That is just the normal nature of WordPress Crons. The DB Backup Cron is designed to resynchronize itself to the top of the hour on the hour.', 'bulletproof-security').'<br><br>'.__('- Today is 12AM to 11:59PM. If you want a Daily scheduled backup job to start running for the first time at 12AM tomorrow (which seems like today, but is actually tomorrow) then choose the Day of the Week that is tomorrow. 12AM tomorrow is the start time and the Daily scheduled backup job will continue to be run at 12AM every day after the start time that you choose.', 'bulletproof-security').'<br><br>'.__('- The Create Backup Jobs Form allows for the widest possible combinations of start times for scheduled backup jobs. The start time choices are: Frequency, Hour, Day of Week and Day of Month and have many different possible logical combinations that can be chosen. See this help section before creating any scheduled backup jobs - ', 'bulletproof-security').'<strong>'.__('Best Logical Choices For Start Times When Scheduling Backup Jobs With the Create Backup Jobs Form', 'bulletproof-security').'</strong><br><br>'.__('- You can schedule multiple backup jobs for the same frequency. Example: You can create/schedule a backup job to run Weekly at 8PM on Sunday and can create/schedule a backup job to run Weekly at 10PM on Wednesday. Scheduled backup jobs run based on the time the scheduled backup job is scheduled to run - there are no limitations with scheduling multiple backup jobs.', 'bulletproof-security').'<br><br><strong>'.__('Best Logical Choices For Start Times When Scheduling Backup Jobs With the Create Backup Jobs Form', 'bulletproof-security').'</strong><br>'.__('These are some common logical option choices for Creating/Scheduling Backup Jobs. There are other possible combinations of option settings/start times, but these are intended to be simple examples of common logical option setting choices.', 'bulletproof-security').'<br><br><strong>'.__('Hourly Backup Job', 'bulletproof-security').'</strong><br>'.__('- If you choose Hourly for the Frequency and you do not pick a start Time/Hour when the Backup Job is next run. The next Backup Job will be run at the top of the next hour. Example: If the time now is 4:30PM then the next backup job will be run at 5PM, then 6PM, then 7PM, etc.', 'bulletproof-security').'<br>'.__('- If you choose Hourly for the Frequency and pick a start Time/Hour when the Backup Job is next run. The next Backup Job will be run at the start Time/Hour that you chose. Example: If the time now is 4:30PM and you chose 8PM for the start Time/Hour then the next backup job will be run at 8PM, then 9PM, then 10PM, etc.', 'bulletproof-security').'<br><br><strong>'.__('Daily Backup Job', 'bulletproof-security').'</strong><br>'.__('- If today is Tuesday and you want to schedule a Backup Job to run at 12AM daily/every night. You would choose Daily for the Frequency, start Time/Hour of 12AM (12AM is tomorrow) and Wednesday for the day of the week for the start time when the Backup Job is next run. The next Backup Job will be run at 12AM Wednesday tonight/tomorrow and at 12AM every night/morning.', 'bulletproof-security').'<br><br><strong>'.__('Weekly Backup Job', 'bulletproof-security').'</strong><br>'.__('- If you want to schedule a Backup Job to run Weekly at 12AM every Sunday. You would choose Weekly for the Frequency, start Time/Hour of 12AM and Sunday for the day of the week for the start time when the Backup Job is next run. The next Backup Job will be run at 12AM next Sunday and every Sunday at 12AM.', 'bulletproof-security').'<br><br><strong>'.__('Monthly Backup Job', 'bulletproof-security').'</strong><br>'.__('- If you want to schedule a Backup Job to run Monthly on the 30th of each month at 11PM. You would choose Monthly for the Frequency, start Time/Hour of 11PM and 30th for the day of the month for the start time when the Backup Job is next run. The next Backup Job will be run on the 30th of this month at 11PM and each month on the 30th at 11PM.', 'bulletproof-security').'<br><br><strong>'.__('404 errors when trying to download zip files or if you have changed the DB Backup Folder Location', 'bulletproof-security').'</strong><br>'.__('On some web hosts (Go Daddy) if you have a WordPress subfolder website installation: Example: Main domain is example.com and Subfolder WordPress site is example.com/wordpress-subfolder-website/ then the download link will not work correctly and you will see 404 errors when trying to download zip backup files. Your options are to not change the default backup folder path for your subfolder site and download zip backup files via FTP or you can use/add the backup folder path for your main site instead of the default backup folder path for your subfolder site. You would also change the DB Backup File Download Link|URL to your main site\'s backup folder Link/URL path. What this means is that DB Backups for both your main site and your subfolder site will be saved/stored under your main site\'s backup folder.', 'bulletproof-security').'<br><br>'.__('If you are seeing 404 errors after changing the DB Backup File Download Link|URL and/or the DB Backup Folder Location then make sure that you have entered the correct folder path and also the correct link/URL paths for where your DB backup files are being saved/stored. The DB Backup File Download Link|URL path MUST end with/have a trailing slash. Example: http://www.example.com/wp-content/bps-backup/backups_xxxxxxxxxx/', 'bulletproof-security');
10
 
11
  /** DB Backup Log **/
12
+ $bps_modal_content2 = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br><strong>'.__('DB Backup Log General Information', 'bulletproof-security').'</strong><br>'.__('Your DB Backup 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>'.__('DB Backup Log Email Alert and Log file option settings are on the Email|Log Settings page.', 'bulletproof-security').'<strong><br><br>'.__('What is Logged in The DB Backup Log?', 'bulletproof-security').'</strong><br>'.__('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. Logs Backup Job Settings, Completion Time, Memory Usage, Zip Backup File Name, Timestamp and other DB Backup information. 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.', 'bulletproof-security').'<strong><br><br>'.__('DB Backup Log File Size', 'bulletproof-security').'</strong><br>'.__('Displays the size of your DB Backup 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 DB Backup Log file.', 'bulletproof-security').'<br><br><strong>'.__('DB Backup Log Last Modified Time', 'bulletproof-security').'</strong><br>'.__('Displays the last time a DB Backup Log entry was logged.', 'bulletproof-security').'<br><br><strong>'.__('Delete Log Button', 'bulletproof-security').'</strong><br>'.__('Clicking the Delete Log button will delete the entire contents of your DB Backup Log File.', 'bulletproof-security');
13
 
14
  /** DB Table Prefix Changer **/
15
  $bps_modal_content3 = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br><strong>'.__('Safety Precautions & Procedures', 'bulletproof-security').'</strong><br>'.__('Changing the DB Table Prefix name is a very simple thing to automate. This tool has been extensively tested and is safe and reliable, but anytime you are modifying your database you should ALWAYS perform a database backup as a safety precaution.', 'bulletproof-security').'<br><br><strong>'.__('Compatibility', 'bulletproof-security').'</strong><br>'.__('Works on all WordPress, BuddyPress and bbPress site types: Single standard WordPress installations and Network/Multisite installations.', 'bulletproof-security').'<br><br><strong><font color="blue">'.__('Note: The DB Table Names & Character Length Table needs to be a clickable Form button and is not displayed permanently open because that would cause the entire DB Backup & Security page (all Tab pages) to perform poorly/sluggishly on large websites.', 'bulletproof-security').'</font></strong><br><br><strong>'.__('Other Prefix Changes Explained', 'bulletproof-security').'</strong><br>'.__('In your WordPress xxxxxx_options DB Table there is one value that will be changed in the option_name Column: xxxxxx_user_roles. Note: Network|Multisite sites will have additional xxxxxx_[Site ID]_user_roles Columns for each subsite options DB Table. In your WordPress xxxxxx_usermeta DB Table there are several values that will be changed in the meta_key Column. These are user/user ID specific values based on individual user\'s Metadata stored in the xxxxxx_usermeta DB Table. Metadata is user specific saved settings, such as individual user\'s capabilities, permissions, saved screen options settings, etc.', 'bulletproof-security').'<br><br><strong>'.__('Correct Usage & Technical Info.', 'bulletproof-security').'</strong><br>'.__('If you want to create your own DB Table Prefix name or add additional characters to the randomly generated DB Table Prefix name then ONLY use lowercase letters, numbers and underscores in your DB Table Prefix name. The standard MySQL DB Table naming convention is xxxxxx_ where the x\'s should be ONLY lowercase letters and/or numbers and the DB Table Prefix name should end with an underscore.', 'bulletproof-security').'<br><br>'.__('The maximum length limitation of a DB Table name, including the table prefix is 64 characters. See the DB Table Names & Character Length Table for character lengths of your database table names.', 'bulletproof-security').'<br><br>'.__('If a plugin or theme is using "wp_" in its DB Table naming conventions, example: wp_wp_some_plugin_table_name, then the DB Table Prefix Changer tool will NOT change anything besides the first wp_ in the DB Table name - The DB Table Prefix Change will ONLY change the actual start/prefix of a DB Table name.', 'bulletproof-security').'<br><br>'.__('To change your DB Table Prefix name back to the WordPress default DB Table Prefix name, enter wp_ for the DB Table Prefix name.', 'bulletproof-security').'<br><br><strong>'.__('Network|Multisite Additional Info.', 'bulletproof-security').'</strong><br>'.__('If you have a Network|Multisite site then you will see an additional button: Update Site User Roles button. Click the Change DB Table Prefix button first before clicking the Update Site User Roles button. You must click both buttons to complete all DB Table Prefix Name changes on a Network|Multisite site type. If you forget to click the Update Site User Roles button then users will see this error message when trying to login: You do not have sufficient permissions to access this page. Click the Update Site User Roles button to fix that problem.', 'bulletproof-security').'<br><br><strong>'.__('Security measure vs Anti-nuisance measure', 'bulletproof-security').'</strong><br>'.__('By changing your Database Table Prefix name you will probably stop a lot of random Bot probes from doing any further reconnaissance against your website and causing unnecessary slowness from those random Bot probes. Changing the DB Table Prefix name is not really a security measure since if a hacker wants to find/get your DB Table Prefix name he/she will be able to find/get that information. The Anti-nuisance benefits alone are worth changing your DB Table Prefix name. BPS has many layers of security protection that protect your Database against SQL Injection attacks.', 'bulletproof-security');
admin/db-backup-security/db-backup-security.php CHANGED
@@ -151,7 +151,7 @@ bpsPro_DBBackup_deny_all();
151
 
152
  <!-- jQuery UI Tab Menu -->
153
  <div id="bps-tabs" class="bps-menu">
154
- <div id="bpsHead"><img src="<?php echo plugins_url('/bulletproof-security/admin/images/bps-security-shield.gif'); ?>" />
155
 
156
  <style>
157
  <!--
@@ -275,7 +275,7 @@ function bpsSpinnerTableRefresh() {
275
 
276
  <h3 style="margin:0px 0px 15px 0px;"><?php _e('DB Backup', 'bulletproof-security'); ?> <button id="bps-open-modal1" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
277
 
278
- <div id="bps-modal-content1" title="<?php _e('DB Backup', 'bulletproof-security'); ?>">
279
  <p>
280
  <?php
281
  $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
@@ -290,7 +290,7 @@ function bpsSpinnerTableRefresh() {
290
  </p>
291
  </div>
292
 
293
- <div id="bps-accordion-1" class="bps-accordion-main-2" style="margin:0px 0px 20px 0px;">
294
  <h3><?php _e('Backup Jobs ~ Manual|Scheduled', 'bulletproof-security'); ?></h3>
295
  <div id="dbb-accordion-inner">
296
 
@@ -923,7 +923,7 @@ jQuery(document).ready(function($){
923
  if ( isset($_POST['Submit-DBB-Create-Job']) && current_user_can('manage_options') ) {
924
  check_admin_referer('bulletproof_security_db_backup_create_job');
925
 
926
- if ( $DBBoptions['bps_db_backup_status_display'] == 'No DB Backups' ) {
927
  $bps_db_backup_status_display = 'Backup Job Created';
928
  } else {
929
  $bps_db_backup_status_display = $DBBoptions['bps_db_backup_status_display'];
@@ -1139,7 +1139,7 @@ if ( isset($_POST['Submit-DBB-Create-Job']) && current_user_can('manage_options'
1139
 
1140
  <h3 style="margin:0px 0px 10px 0px;"><?php _e('DB Backup Log', 'bulletproof-security'); ?> <button id="bps-open-modal2" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
1141
 
1142
- <div id="bps-modal-content2" title="<?php _e('DB Backup Log', 'bulletproof-security'); ?>">
1143
  <p><?php echo $bps_modal_content2; ?></p>
1144
  </div>
1145
 
@@ -1153,10 +1153,10 @@ if ( file_exists($filename) ) {
1153
  $logSize = filesize($filename);
1154
 
1155
  if ( $logSize < 2097152 ) {
1156
- $text = '<strong>'. __('DB Backup Log File Size: ', 'bulletproof-security').'<font color="#2ea2cc">'. round($logSize / 1024, 2) .' KB</font></strong><br>';
1157
  echo $text;
1158
  } else {
1159
- $text = '<strong>'. __('DB Backup Log File Size: ', 'bulletproof-security').'<font color="#fb0101">'. round($logSize / 1024, 2) .' KB<br>'.__('The Email Logging options will only send log files up to 2MB in size.', 'bulletproof-security').'</font></strong><br>'.__('Copy and paste the DB Backup Log file contents into a Notepad text file on your computer and save it.', 'bulletproof-security').'<br>'.__('Then click the Delete Log button to delete the contents of this Log file.', 'bulletproof-security').'<br>';
1160
  echo $text;
1161
  }
1162
  }
@@ -1176,84 +1176,7 @@ $filename = WP_CONTENT_DIR . '/bps-backup/logs/db_backup_log.txt';
1176
  }
1177
  }
1178
  bpsPro_DBB_Log_LastMod();
1179
- ?>
1180
-
1181
- <div id="EmailOptionsDBB" style="width:100%;">
1182
-
1183
- <form name="bpsEmailAlerts" action="options.php" method="post">
1184
- <?php settings_fields('bulletproof_security_options_email'); ?>
1185
- <?php $options = get_option('bulletproof_security_options_email'); ?>
1186
- <?php $admin_email = get_option('admin_email'); ?>
1187
-
1188
- <table border="0">
1189
- <tr>
1190
- <td><label for="bps-monitor-email"><?php _e('Send Email Alerts & Log Files To:', 'bulletproof-security'); ?> </label></td>
1191
- <td><input type="text" name="bulletproof_security_options_email[bps_send_email_to]" class="regular-text-200" value="<?php if ( $options['bps_send_email_to'] != '' ) { echo esc_html( $options['bps_send_email_to'] ); } else { echo esc_html( $admin_email ); } ?>" /></td>
1192
- </tr>
1193
- <tr>
1194
- <td><label for="bps-monitor-email"><?php _e('Send Email Alerts & Log Files From:', 'bulletproof-security'); ?> </label></td>
1195
- <td><input type="text" name="bulletproof_security_options_email[bps_send_email_from]" class="regular-text-200" value="<?php if ( $options['bps_send_email_from'] != '' ) { echo esc_html( $options['bps_send_email_from'] ); } else { echo esc_html( $admin_email ); } ?>" /></td>
1196
- </tr>
1197
- <tr>
1198
- <td><label for="bps-monitor-email"><?php _e('Send Email Alerts & Log Files Cc:', 'bulletproof-security'); ?> </label></td>
1199
- <td><input type="text" name="bulletproof_security_options_email[bps_send_email_cc]" class="regular-text-200" value="<?php echo esc_html( $options['bps_send_email_cc'] ); ?>" /></td>
1200
- </tr>
1201
- <tr>
1202
- <td><label for="bps-monitor-email"><?php _e('Send Email Alerts & Log Files Bcc:', 'bulletproof-security'); ?> </label></td>
1203
- <td><input type="text" name="bulletproof_security_options_email[bps_send_email_bcc]" class="regular-text-200" value="<?php echo esc_html( $options['bps_send_email_bcc'] ); ?>" /></td>
1204
- </tr>
1205
- </table>
1206
- <br />
1207
-
1208
- <table border="0">
1209
- <tr>
1210
- <td><strong><label for="bps-monitor-email"><?php _e('Login Security: Send Login Security Email Alert When...', 'bulletproof-security'); ?></label></strong><br />
1211
- <select name="bulletproof_security_options_email[bps_login_security_email]" class="form-340">
1212
- <option value="lockoutOnly" <?php selected( $options['bps_login_security_email'], 'lockoutOnly'); ?>><?php _e('A User Account Is Locked Out', 'bulletproof-security'); ?></option>
1213
- <option value="adminLoginOnly" <?php selected( $options['bps_login_security_email'], 'adminLoginOnly'); ?>><?php _e('An Administrator Logs In', 'bulletproof-security'); ?></option>
1214
- <option value="adminLoginLock" <?php selected( $options['bps_login_security_email'], 'adminLoginLock'); ?>><?php _e('An Administrator Logs In & A User Account is Locked Out', 'bulletproof-security'); ?></option>
1215
- <option value="anyUserLoginLock" <?php selected( $options['bps_login_security_email'], 'anyUserLoginLock'); ?>><?php _e('Any User Logs In & A User Account is Locked Out', 'bulletproof-security'); ?></option>
1216
- <option value="no" <?php selected( $options['bps_login_security_email'], 'no'); ?>><?php _e('Do Not Send Email Alerts', 'bulletproof-security'); ?></option>
1217
- </select></td>
1218
- </tr>
1219
- <tr>
1220
- <td style="padding-top:5px;"><strong><label for="bps-monitor-email-log"><?php _e('Security Log: Email|Delete Security Log File When...', 'bulletproof-security'); ?></label></strong><br />
1221
- <select name="bulletproof_security_options_email[bps_security_log_size]" class="form-80">
1222
- <option value="500KB" <?php selected( $options['bps_security_log_size'], '500KB' ); ?>><?php _e('500KB', 'bulletproof-security'); ?></option>
1223
- <option value="256KB" <?php selected( $options['bps_security_log_size'], '256KB'); ?>><?php _e('256KB', 'bulletproof-security'); ?></option>
1224
- <option value="1MB" <?php selected( $options['bps_security_log_size'], '1MB' ); ?>><?php _e('1MB', 'bulletproof-security'); ?></option>
1225
- </select>
1226
- <select name="bulletproof_security_options_email[bps_security_log_emailL]" class="form-255">
1227
- <option value="email" <?php selected( $options['bps_security_log_emailL'], 'email' ); ?>><?php _e('Email Log & Then Delete Log File', 'bulletproof-security'); ?></option>
1228
- <option value="delete" <?php selected( $options['bps_security_log_emailL'], 'delete' ); ?>><?php _e('Delete Log File', 'bulletproof-security'); ?></option>
1229
- </select></td>
1230
- </tr>
1231
- <tr>
1232
- <td style="padding-top:5px;"><strong><label for="bps-monitor-email-log"><?php _e('DB Backup Log: Email|Delete DB Backup Log File When...', 'bulletproof-security'); ?></label></strong><br />
1233
- <select name="bulletproof_security_options_email[bps_dbb_log_size]" class="form-80">
1234
- <option value="500KB" <?php selected( $options['bps_dbb_log_size'], '500KB' ); ?>><?php _e('500KB', 'bulletproof-security'); ?></option>
1235
- <option value="256KB" <?php selected( $options['bps_dbb_log_size'], '256KB'); ?>><?php _e('256KB', 'bulletproof-security'); ?></option>
1236
- <option value="1MB" <?php selected( $options['bps_dbb_log_size'], '1MB' ); ?>><?php _e('1MB', 'bulletproof-security'); ?></option>
1237
- </select>
1238
- <select name="bulletproof_security_options_email[bps_dbb_log_email]" class="form-255">
1239
- <option value="email" <?php selected( $options['bps_dbb_log_email'], 'email' ); ?>><?php _e('Email Log & Then Delete Log File', 'bulletproof-security'); ?></option>
1240
- <option value="delete" <?php selected( $options['bps_dbb_log_email'], 'delete' ); ?>><?php _e('Delete Log File', 'bulletproof-security'); ?></option>
1241
- </select></td>
1242
- </tr>
1243
- </table>
1244
 
1245
- <!-- <strong><label for="bps-monitor-email" style="margin:0px 0px 0px 0px;"><?php //_e('BPS Plugin Upgrade Email Notification', 'bulletproof-security'); ?></label></strong><br />
1246
- <select name="bulletproof_security_options_email[bps_upgrade_email]" class="form-340">
1247
- <option value="yes" <?php //selected( @$options['bps_upgrade_email'], 'yes'); ?>><?php //_e('Send Email Alerts', 'bulletproof-security'); ?></option>
1248
- <option value="no" <?php //selected( @$options['bps_upgrade_email'], 'no'); ?>><?php //_e('Do Not Send Email Alerts', 'bulletproof-security'); ?></option>
1249
- </select><br /><br /> -->
1250
-
1251
- <input type="hidden" name="bpsEMA" value="bps-EMA" />
1252
- <input type="submit" name="bpsEmailAlertSubmit" class="button bps-button" style="margin:15px 0px 0px 0px;" value="<?php esc_attr_e('Save Options', 'bulletproof-security') ?>" />
1253
- </form>
1254
- </div>
1255
-
1256
- <?php
1257
  if ( isset( $_POST['Submit-Delete-DBB-Log'] ) && current_user_can('manage_options') ) {
1258
  check_admin_referer( 'bulletproof_security_delete_dbb_log' );
1259
 
@@ -1268,13 +1191,10 @@ if ( isset( $_POST['Submit-Delete-DBB-Log'] ) && current_user_can('manage_option
1268
  }
1269
  ?>
1270
 
1271
- <div id="DBBLogDelete">
1272
-
1273
  <form name="DeleteDBBLogForm" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/db-backup-security/db-backup-security.php#bps-tabs-2' ); ?>" method="post">
1274
  <?php wp_nonce_field('bulletproof_security_delete_dbb_log'); ?>
1275
- <input type="submit" name="Submit-Delete-DBB-Log" value="<?php esc_attr_e('Delete Log', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Clicking OK will delete the contents of your DB Backup Log file.', 'bulletproof-security').'\n\n'.$bpsSpacePop.'\n\n'.__('Click OK to Delete the Log file contents or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
1276
  </form>
1277
- </div>
1278
 
1279
  <div id="messageinner" class="updatedinner">
1280
  <?php
@@ -1375,7 +1295,7 @@ jQuery(document).ready(function($){
1375
 
1376
  <h3 style="margin:0px 0px 10px 0px;"><?php _e('DB Table Prefix Changer', 'bulletproof-security'); ?> <button id="bps-open-modal3" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
1377
 
1378
- <div id="bps-modal-content3" title="<?php _e('DB Table Prefix Changer', 'bulletproof-security'); ?>">
1379
  <p><?php echo $bps_modal_content3; ?>
1380
  </div>
1381
 
151
 
152
  <!-- jQuery UI Tab Menu -->
153
  <div id="bps-tabs" class="bps-menu">
154
+ <div id="bpsHead"><img src="<?php echo plugins_url('/bulletproof-security/admin/images/bps-free-logo.gif'); ?>" />
155
 
156
  <style>
157
  <!--
275
 
276
  <h3 style="margin:0px 0px 15px 0px;"><?php _e('DB Backup', 'bulletproof-security'); ?> <button id="bps-open-modal1" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
277
 
278
+ <div id="bps-modal-content1" class="bps-dialog-hide" title="<?php _e('DB Backup', 'bulletproof-security'); ?>">
279
  <p>
280
  <?php
281
  $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
290
  </p>
291
  </div>
292
 
293
+ <div id="bps-accordion-1" class="bps-accordion-main-2" style="margin:0px 0px 20px 0px;display:none">
294
  <h3><?php _e('Backup Jobs ~ Manual|Scheduled', 'bulletproof-security'); ?></h3>
295
  <div id="dbb-accordion-inner">
296
 
923
  if ( isset($_POST['Submit-DBB-Create-Job']) && current_user_can('manage_options') ) {
924
  check_admin_referer('bulletproof_security_db_backup_create_job');
925
 
926
+ if ( $DBBoptions['bps_db_backup_status_display'] == 'No DB Backups' || $DBBoptions['bps_db_backup_status_display'] == '' ) {
927
  $bps_db_backup_status_display = 'Backup Job Created';
928
  } else {
929
  $bps_db_backup_status_display = $DBBoptions['bps_db_backup_status_display'];
1139
 
1140
  <h3 style="margin:0px 0px 10px 0px;"><?php _e('DB Backup Log', 'bulletproof-security'); ?> <button id="bps-open-modal2" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
1141
 
1142
+ <div id="bps-modal-content2" class="bps-dialog-hide" title="<?php _e('DB Backup Log', 'bulletproof-security'); ?>">
1143
  <p><?php echo $bps_modal_content2; ?></p>
1144
  </div>
1145
 
1153
  $logSize = filesize($filename);
1154
 
1155
  if ( $logSize < 2097152 ) {
1156
+ $text = '<span style="font-size:13px;"><strong>'. __('DB Backup Log File Size: ', 'bulletproof-security').'<font color="#2ea2cc">'. round($logSize / 1024, 2) .' KB</font></strong></span><br>';
1157
  echo $text;
1158
  } else {
1159
+ $text = '<span style="font-size:13px;"><strong>'. __('DB Backup Log File Size: ', 'bulletproof-security').'<font color="#fb0101">'. round($logSize / 1024, 2) .' KB<br>'.__('The Email Logging options will only send log files up to 2MB in size.', 'bulletproof-security').'</font></strong><br>'.__('Copy and paste the DB Backup Log file contents into a Notepad text file on your computer and save it.', 'bulletproof-security').'<br>'.__('Then click the Delete Log button to delete the contents of this Log file.', 'bulletproof-security').'</span><br>';
1160
  echo $text;
1161
  }
1162
  }
1176
  }
1177
  }
1178
  bpsPro_DBB_Log_LastMod();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1179
 
 
 
 
 
 
 
 
 
 
 
 
 
1180
  if ( isset( $_POST['Submit-Delete-DBB-Log'] ) && current_user_can('manage_options') ) {
1181
  check_admin_referer( 'bulletproof_security_delete_dbb_log' );
1182
 
1191
  }
1192
  ?>
1193
 
 
 
1194
  <form name="DeleteDBBLogForm" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/db-backup-security/db-backup-security.php#bps-tabs-2' ); ?>" method="post">
1195
  <?php wp_nonce_field('bulletproof_security_delete_dbb_log'); ?>
1196
+ <input type="submit" name="Submit-Delete-DBB-Log" value="<?php esc_attr_e('Delete Log', 'bulletproof-security') ?>" class="button bps-button" style="margin:15px 0px 15px 0px" onclick="return confirm('<?php $text = __('Clicking OK will delete the contents of your DB Backup Log file.', 'bulletproof-security').'\n\n'.$bpsSpacePop.'\n\n'.__('Click OK to Delete the Log file contents or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
1197
  </form>
 
1198
 
1199
  <div id="messageinner" class="updatedinner">
1200
  <?php
1295
 
1296
  <h3 style="margin:0px 0px 10px 0px;"><?php _e('DB Table Prefix Changer', 'bulletproof-security'); ?> <button id="bps-open-modal3" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
1297
 
1298
+ <div id="bps-modal-content3" class="bps-dialog-hide" title="<?php _e('DB Table Prefix Changer', 'bulletproof-security'); ?>">
1299
  <p><?php echo $bps_modal_content3; ?>
1300
  </div>
1301
 
admin/email-log-settings/email-log-settings.php ADDED
@@ -0,0 +1,231 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ <div id="bps-container" class="wrap" style="margin:45px 20px 5px 0px;">
11
+
12
+ <noscript><div id="message" class="updated" style="font-weight:600;font-size:13px;padding:5px;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);"><span style="color:blue">BPS Warning: JavaScript is disabled in your Browser</span><br />BPS plugin pages will not display visually correct and all BPS JavaScript functionality will not work correctly.</div></noscript>
13
+
14
+ <?php
15
+ $ScrollTop_options = get_option('bulletproof_security_options_scrolltop');
16
+
17
+ if ( $ScrollTop_options['bps_scrolltop'] != 'Off' ) {
18
+
19
+ if ( esc_html($_SERVER['REQUEST_METHOD']) == 'POST' && ! isset( $_POST['Submit-SecLog-Search'] ) || isset( $_GET['settings-updated'] ) && @$_GET['settings-updated'] == true ) {
20
+
21
+ bpsPro_Browser_UA_scroll_animation();
22
+ }
23
+ }
24
+ ?>
25
+
26
+ <?php
27
+ if ( function_exists('get_transient') ) {
28
+ require_once( ABSPATH . 'wp-admin/includes/plugin-install.php' );
29
+
30
+ if ( false === ( $bps_api = get_transient('bulletproof-security_info') ) ) {
31
+ $bps_api = plugins_api( 'plugin_information', array( 'slug' => stripslashes( 'bulletproof-security' ) ) );
32
+
33
+ if ( ! is_wp_error( $bps_api ) ) {
34
+ $bps_expire = 60 * 30; // Cache downloads data for 30 minutes
35
+ $bps_downloaded = array( 'downloaded' => $bps_api->downloaded );
36
+ maybe_serialize( $bps_downloaded );
37
+ set_transient( 'bulletproof-security_info', $bps_downloaded, $bps_expire );
38
+ }
39
+ }
40
+
41
+ $bps_transient = get_transient( 'bulletproof-security_info' );
42
+
43
+ echo '<div class="bps-star-container">';
44
+ echo '<div class="bps-star"><img src="'.plugins_url('/bulletproof-security/admin/images/star.png').'" /></div>';
45
+ echo '<div class="bps-downloaded">';
46
+
47
+ foreach ( $bps_transient as $key => $value ) {
48
+ echo number_format_i18n( $value ) .' '. str_replace( 'downloaded', "Downloads", $key );
49
+ }
50
+
51
+ echo '<div class="bps-star-link"><a href="https://wordpress.org/support/view/plugin-reviews/bulletproof-security#postform" target="_blank" title="Add a Star Rating for the BPS plugin">'.__('Rate BPS', 'bulletproof-security').'</a><br><a href="https://affiliates.ait-pro.com/po/" target="_blank" title="Upgrade to BulletProof Security Pro">Upgrade to Pro</a></div>';
52
+ echo '</div>';
53
+ echo '</div>';
54
+ }
55
+ ?>
56
+
57
+ <h2 class="bps-tab-title"><?php _e('BulletProof Security ~ Email Alerts & Log File Settings', 'bulletproof-security'); ?></h2>
58
+ <div id="message" class="updated" style="border:1px solid #999;background-color:#000;">
59
+
60
+ <?php
61
+ // General all purpose "Settings Saved." message for forms
62
+ if ( current_user_can('manage_options') && wp_script_is( 'bps-accordion', $list = 'queue' ) ) {
63
+ if ( isset( $_GET['settings-updated'] ) && @$_GET['settings-updated'] == true ) {
64
+ $text = '<p style="font-size:1em;font-weight:bold;padding:2px 0px 2px 5px;margin:0px -11px 0px -11px;background-color:#dfecf2;-webkit-box-shadow: 3px 3px 5px 0px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px 0px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px 0px rgba(153,153,153,0.7);""><font color="green"><strong>'.__('Settings Saved', 'bulletproof-security').'</strong></font></p>';
65
+ echo $text;
66
+ }
67
+ }
68
+
69
+ $bpsSpacePop = '-------------------------------------------------------------';
70
+
71
+ // Replace ABSPATH = wp-content/plugins
72
+ $bps_plugin_dir = str_replace( ABSPATH, '', WP_PLUGIN_DIR );
73
+ // Replace ABSPATH = wp-content
74
+ $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
75
+
76
+ // Top div echo & bottom div echo
77
+ $bps_topDiv = '<div id="message" class="updated" style="background-color:#dfecf2;border:1px solid #999;-moz-border-radius-topleft:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-topright:3px;-webkit-border-top-right-radius:3px;-khtml-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px -1px rgba(153,153,153,0.7);"><p>';
78
+ $bps_bottomDiv = '</p></div>';
79
+
80
+ ?>
81
+ </div>
82
+
83
+ <!-- jQuery UI Tab Menu -->
84
+ <div id="bps-tabs" class="bps-menu">
85
+ <div id="bpsHead"><img src="<?php echo plugins_url('/bulletproof-security/admin/images/bps-free-logo.gif'); ?>" /></div>
86
+ <ul>
87
+ <li><a href="#bps-tabs-1"><?php _e('Email & Log Settings', 'bulletproof-security'); ?></a></li>
88
+ <li><a href="#bps-tabs-2"><?php _e('Help &amp; FAQ', 'bulletproof-security'); ?></a></li>
89
+ </ul>
90
+
91
+ <div id="bps-tabs-1" class="bps-tab-page">
92
+
93
+ <table width="100%" border="0" cellspacing="0" cellpadding="0" class="bps-help_faq_table">
94
+ <tr>
95
+ <td class="bps-table_title">
96
+ <?php $text = '<h2>'.__('Email Alerts & Log File Settings ~ ', 'bulletproof-security').'<span style="font-size:.75em;">'.__('For Login Security, Security Log & DB Backup Log', 'bulletproof-security').'</span></h2><div class="promo-text">'.__('Want even more security protection?', 'bulletproof-security').'<br>'.__('Protect all of your website files with AutoRestore|Quarantine Intrusion Detection & Prevention System: ', 'bulletproof-security').'<a href="https://affiliates.ait-pro.com/po/" target="_blank" title="BPS Pro ARQ IDPS">'.__('Get BPS Pro ARQ IDPS', 'bulletproof-security').'</a><br>'.__('Protect against SpamBot & HackerBot (auto-registering, auto-logins, auto-posting, auto-commenting): ', 'bulletproof-security').'<a href="https://affiliates.ait-pro.com/po/" target="_blank" title="BPS Pro JTC Anti-Spam|Anti-Hacker">'.__('Get BPS Pro JTC Anti-Spam|Anti-Hacker', 'bulletproof-security').'</a><br>'.__('Protect all of your Plugins (plugin folders and files) with an IP Firewall: ', 'bulletproof-security').'<a href="https://affiliates.ait-pro.com/po/" target="_blank" title="BPS Pro Plugin Firewall">'.__('Get BPS Pro Plugin Firewall', 'bulletproof-security').'</a><br>'.__('Protect your WordPress uploads folder against remote access or execution of files: ', 'bulletproof-security').'<a href="https://affiliates.ait-pro.com/po/" target="_blank" title="BPS Pro Uploads Anti-Exploit Guard">'.__('Get BPS Pro Uploads Anti-Exploit Guard', 'bulletproof-security').'</a></div>'; echo $text; ?>
97
+ </td>
98
+ </tr>
99
+ <tr>
100
+ <td class="bps-table_cell_help">
101
+
102
+ <h3 style="margin:0px 0px 10px 0px;"><?php _e('Email|Log Settings', 'bulletproof-security'); ?> <button id="bps-open-modal1" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
103
+
104
+ <div id="bps-modal-content1" class="bps-dialog-hide" title="<?php _e('Email|Log Settings', 'bulletproof-security'); ?>">
105
+ <p>
106
+ <?php
107
+ $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
108
+ echo $text;
109
+ // Forum Help Links or of course both
110
+ $text = '<strong><font color="blue">'.__('Forum Help Links: ', 'bulletproof-security').'</font></strong><br>';
111
+ echo $text;
112
+ ?>
113
+ <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 /><br />
114
+
115
+ <?php $text = '<strong>'.__('Email Alerts & Log File Settings', 'bulletproof-security').'</strong><br>'.__('The email address fields To, From, Cc and Bcc can be email addresses for your hosting account, your WordPress Administrator email address or 3rd party email addresses like gmail or yahoo email. If you are sending emails to multiple email recipients then separate the email addresses with a comma. Example: someone@somewhere.com, someoneelse@somewhereelse.com. You can add a space or not add a space after the comma between email addresses.', 'bulletproof-security').'<br><br><strong>'.__('Note: ', 'bulletproof-security').'</strong>'.__('Email Alerting and Log file options are located in S-Monitor in BPS Pro.', 'bulletproof-security').'<br><br><strong>'.__('Login Security: Send Email Alert When...', 'bulletproof-security').'</strong><br>'.__('There are 5 different email 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.', 'bulletproof-security').'<br><br>'.__('The email alerts contain the action that occurred with Timestamp and these fields: Username, Status, Role, Email, Lockout Time, Lockout Time Expires, User IP Address, User Hostname, Request URI and URL link for the website where the action occurred.', 'bulletproof-security').'<br><br><strong>'.__('Security Log File Email|Delete Log File When...', 'bulletproof-security').'</strong><br>'.__('Select the maximum Log File size that you want to allow for your Security Log File and then select the option that you want when your log file reaches that maximum size. Choose to either automatically Email the Log file to you and delete it or just delete it without emailing the log file to you first.', 'bulletproof-security').'<br><br><strong>'.__('DB Backup Log File Email|Delete Log File When...', 'bulletproof-security').'</strong><br>'.__('Select the maximum Log File size that you want to allow for your DB Backup Log File and then select the option that you want when your log file reaches that maximum size. Choose to either automatically Email the Log file to you and delete it or just delete it without emailing the log file to you first.', 'bulletproof-security'); echo $text; ?></p>
116
+ </div>
117
+
118
+ <div id="EmailOptions" style="width:100%;">
119
+
120
+ <form name="bpsEmailAlerts" action="options.php" method="post">
121
+ <?php settings_fields('bulletproof_security_options_email'); ?>
122
+ <?php $options = get_option('bulletproof_security_options_email'); ?>
123
+ <?php $admin_email = get_option('admin_email'); ?>
124
+
125
+ <table border="0">
126
+ <tr>
127
+ <td><label for="bps-monitor-email"><?php _e('Send Email Alerts & Log Files To:', 'bulletproof-security'); ?> </label></td>
128
+ <td><input type="text" name="bulletproof_security_options_email[bps_send_email_to]" class="regular-text-200" value="<?php if ( $options['bps_send_email_to'] != '' ) { echo esc_html( $options['bps_send_email_to'] ); } else { echo esc_html( $admin_email ); } ?>" /></td>
129
+ </tr>
130
+ <tr>
131
+ <td><label for="bps-monitor-email"><?php _e('Send Email Alerts & Log Files From:', 'bulletproof-security'); ?> </label></td>
132
+ <td><input type="text" name="bulletproof_security_options_email[bps_send_email_from]" class="regular-text-200" value="<?php if ( $options['bps_send_email_from'] != '' ) { echo esc_html( $options['bps_send_email_from'] ); } else { echo esc_html( $admin_email ); } ?>" /></td>
133
+ </tr>
134
+ <tr>
135
+ <td><label for="bps-monitor-email"><?php _e('Send Email Alerts & Log Files Cc:', 'bulletproof-security'); ?> </label></td>
136
+ <td><input type="text" name="bulletproof_security_options_email[bps_send_email_cc]" class="regular-text-200" value="<?php echo esc_html( $options['bps_send_email_cc'] ); ?>" /></td>
137
+ </tr>
138
+ <tr>
139
+ <td><label for="bps-monitor-email"><?php _e('Send Email Alerts & Log Files Bcc:', 'bulletproof-security'); ?> </label></td>
140
+ <td><input type="text" name="bulletproof_security_options_email[bps_send_email_bcc]" class="regular-text-200" value="<?php echo esc_html( $options['bps_send_email_bcc'] ); ?>" /></td>
141
+ </tr>
142
+ </table>
143
+ <br />
144
+
145
+ <table border="0">
146
+ <tr>
147
+ <td><strong><label for="bps-monitor-email"><?php _e('Login Security: Send Login Security Email Alert When...', 'bulletproof-security'); ?></label></strong><br />
148
+ <select name="bulletproof_security_options_email[bps_login_security_email]" class="form-340">
149
+ <option value="lockoutOnly" <?php selected( $options['bps_login_security_email'], 'lockoutOnly'); ?>><?php _e('A User Account Is Locked Out', 'bulletproof-security'); ?></option>
150
+ <option value="adminLoginOnly" <?php selected( $options['bps_login_security_email'], 'adminLoginOnly'); ?>><?php _e('An Administrator Logs In', 'bulletproof-security'); ?></option>
151
+ <option value="adminLoginLock" <?php selected( $options['bps_login_security_email'], 'adminLoginLock'); ?>><?php _e('An Administrator Logs In & A User Account is Locked Out', 'bulletproof-security'); ?></option>
152
+ <option value="anyUserLoginLock" <?php selected( $options['bps_login_security_email'], 'anyUserLoginLock'); ?>><?php _e('Any User Logs In & A User Account is Locked Out', 'bulletproof-security'); ?></option>
153
+ <option value="no" <?php selected( $options['bps_login_security_email'], 'no'); ?>><?php _e('Do Not Send Email Alerts', 'bulletproof-security'); ?></option>
154
+ </select></td>
155
+ </tr>
156
+ <tr>
157
+ <td style="padding-top:5px;"><strong><label for="bps-monitor-email-log"><?php _e('Security Log: Email|Delete Security Log File When...', 'bulletproof-security'); ?></label></strong><br />
158
+ <select name="bulletproof_security_options_email[bps_security_log_size]" class="form-80">
159
+ <option value="500KB" <?php selected( $options['bps_security_log_size'], '500KB' ); ?>><?php _e('500KB', 'bulletproof-security'); ?></option>
160
+ <option value="256KB" <?php selected( $options['bps_security_log_size'], '256KB'); ?>><?php _e('256KB', 'bulletproof-security'); ?></option>
161
+ <option value="1MB" <?php selected( $options['bps_security_log_size'], '1MB' ); ?>><?php _e('1MB', 'bulletproof-security'); ?></option>
162
+ </select>
163
+ <select name="bulletproof_security_options_email[bps_security_log_emailL]" class="form-255">
164
+ <option value="email" <?php selected( $options['bps_security_log_emailL'], 'email' ); ?>><?php _e('Email Log & Then Delete Log File', 'bulletproof-security'); ?></option>
165
+ <option value="delete" <?php selected( $options['bps_security_log_emailL'], 'delete' ); ?>><?php _e('Delete Log File', 'bulletproof-security'); ?></option>
166
+ </select></td>
167
+ </tr>
168
+ <tr>
169
+ <td style="padding-top:5px;"><strong><label for="bps-monitor-email-log"><?php _e('DB Backup Log: Email|Delete DB Backup Log File When...', 'bulletproof-security'); ?></label></strong><br />
170
+ <select name="bulletproof_security_options_email[bps_dbb_log_size]" class="form-80">
171
+ <option value="500KB" <?php selected( $options['bps_dbb_log_size'], '500KB' ); ?>><?php _e('500KB', 'bulletproof-security'); ?></option>
172
+ <option value="256KB" <?php selected( $options['bps_dbb_log_size'], '256KB'); ?>><?php _e('256KB', 'bulletproof-security'); ?></option>
173
+ <option value="1MB" <?php selected( $options['bps_dbb_log_size'], '1MB' ); ?>><?php _e('1MB', 'bulletproof-security'); ?></option>
174
+ </select>
175
+ <select name="bulletproof_security_options_email[bps_dbb_log_email]" class="form-255">
176
+ <option value="email" <?php selected( $options['bps_dbb_log_email'], 'email' ); ?>><?php _e('Email Log & Then Delete Log File', 'bulletproof-security'); ?></option>
177
+ <option value="delete" <?php selected( $options['bps_dbb_log_email'], 'delete' ); ?>><?php _e('Delete Log File', 'bulletproof-security'); ?></option>
178
+ </select>
179
+ </td>
180
+ <tr>
181
+ <td style="padding-top:5px;"><strong><label for="bps-monitor-email-log"><?php _e('MScan Malware Scanner Email|Delete Log File When...', 'bulletproof-security'); ?></label></strong><br />
182
+ <select name="bulletproof_security_options_email[bps_mscan_log_size]" class="form-80">
183
+ <option value="500KB" <?php selected( $options['bps_mscan_log_size'], '500KB' ); ?>><?php _e('500KB', 'bulletproof-security'); ?></option>
184
+ <option value="256KB" <?php selected( $options['bps_mscan_log_size'], '256KB'); ?>><?php _e('256KB', 'bulletproof-security'); ?></option>
185
+ <option value="1MB" <?php selected( $options['bps_mscan_log_size'], '1MB' ); ?>><?php _e('1MB', 'bulletproof-security'); ?></option>
186
+ </select>
187
+ <select name="bulletproof_security_options_email[bps_mscan_log_email]" class="form-255">
188
+ <option value="email" <?php selected( $options['bps_mscan_log_email'], 'email' ); ?>><?php _e('Email Log & Then Delete Log File', 'bulletproof-security'); ?></option>
189
+ <option value="delete" <?php selected( $options['bps_mscan_log_email'], 'delete' ); ?>><?php _e('Delete Log File', 'bulletproof-security'); ?></option>
190
+ </select>
191
+ </td>
192
+ </tr>
193
+ </table>
194
+
195
+ <!-- <strong><label for="bps-monitor-email" style="margin:0px 0px 0px 0px;"><?php //_e('BPS Plugin Upgrade Email Notification', 'bulletproof-security'); ?></label></strong><br />
196
+ <select name="bulletproof_security_options_email[bps_upgrade_email]" class="form-340">
197
+ <option value="yes" <?php //selected( @$options['bps_upgrade_email'], 'yes'); ?>><?php //_e('Send Email Alerts', 'bulletproof-security'); ?></option>
198
+ <option value="no" <?php //selected( @$options['bps_upgrade_email'], 'no'); ?>><?php //_e('Do Not Send Email Alerts', 'bulletproof-security'); ?></option>
199
+ </select><br /><br /> -->
200
+
201
+ <input type="hidden" name="bpsEMA" value="bps-EMA" />
202
+ <input type="submit" name="bpsEmailAlertSubmit" class="button bps-button" style="margin:15px 0px 20px 0px;" value="<?php esc_attr_e('Save Options', 'bulletproof-security') ?>" />
203
+ </form>
204
+ </div>
205
+
206
+ </td>
207
+ </tr>
208
+ </table>
209
+
210
+ </div>
211
+
212
+ <div id="bps-tabs-2" class="bps-tab-page">
213
+
214
+ <table width="100%" border="0" cellspacing="0" cellpadding="0" class="bps-help_faq_table">
215
+ <tr>
216
+ <td class="bps-table_title"><h2><?php _e('BulletProof Security Help &amp; FAQ', 'bulletproof-security'); ?></h2></td>
217
+ </tr>
218
+ <tr>
219
+ <td class="bps-table_cell_help_links">
220
+ <a href="https://forum.ait-pro.com/forums/topic/security-log-event-codes/" target="_blank"><?php _e('Security Log Event Codes', 'bulletproof-security'); ?></a><br /><br />
221
+ <a href="https://www.ait-pro.com/aitpro-blog/category/bulletproof-security-contributors/" target="_blank"><?php _e('Contributors Page', 'bulletproof-security'); ?></a><br /><br />
222
+ <a href="https://forum.ait-pro.com/forums/topic/plugin-conflicts-actively-blocked-plugins-plugin-compatibility/" target="_blank"><?php _e('Forum: Search, Troubleshooting Steps & Post Questions For Assistance', 'bulletproof-security'); ?></a>
223
+ </td>
224
+ </tr>
225
+ </table>
226
+ </div>
227
+
228
+ <div id="AITpro-link">BulletProof Security <?php echo BULLETPROOF_VERSION; ?> Plugin by <a href="https://www.ait-pro.com/" target="_blank" title="AITpro Website Security">AITpro Website Security</a>
229
+ </div>
230
+ </div>
231
+ </div>
admin/htaccess/bps-mu-tools.php CHANGED
@@ -2,7 +2,7 @@
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
@@ -13,7 +13,9 @@ License URI: http://www.gnu.org/licenses/gpl-2.0.html
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.
@@ -208,34 +210,68 @@ bpsPro_plugin_deactivation_check();
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
  }
@@ -250,13 +286,19 @@ function bpsPro_mu_plugin_actlinks( $links, $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 {
@@ -264,9 +306,9 @@ function bpsPro_mu_plugin_actlinks( $links, $file ) {
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
  }
@@ -274,9 +316,9 @@ function bpsPro_mu_plugin_actlinks( $links, $file ) {
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 {
@@ -284,9 +326,9 @@ function bpsPro_mu_plugin_actlinks( $links, $file ) {
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
  }
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: 2.0
6
  Author: AITpro
7
  Author URI: https://forum.ait-pro.com/forums/forum/bulletproof-security-free/
8
  License: GPLv2 or later
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
+ ## The MU Tools auto-update function: bpsPro_mu_tools_plugin_copy() is located in general-functions.php at code line: 816
17
  ## 1.0: Added Toggle Action Links and DB options so that BPS MU Tools can be enabled or disabled.
18
+ ## 2.0: Added CSRF Nonce verification to Toggle GET links.
19
 
20
  ## Uncommenting these filters below and commenting out this BPS filter: add_filter( 'auto_update_plugin', 'bpsPro_autoupdate_bps_plugin', 10, 2 );
21
  ## 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.
210
  // Note: you cannot use current_user_can('manage_options') in a must-use plugin.
211
  function bpsPro_toggle_links() {
212
 
213
+ if ( is_admin() && preg_match( '/\/wp-admin\/plugins\.php/', esc_html($_SERVER['REQUEST_URI']) ) || is_network_admin() && preg_match( '/\/wp-admin\/network\/plugins\.php/', esc_html($_SERVER['REQUEST_URI']) ) ) {
214
 
215
+ if ( isset( $_GET['bps_toggle_a'] ) || isset( $_GET['bps_toggle_d'] ) ) {
216
+
217
+ if ( ! function_exists( 'wp_verify_nonce' ) ) {
218
+ require_once( ABSPATH . '/wp-includes/pluggable.php' );
219
+ }
220
 
221
+ if ( ! defined( 'COOKIEHASH' ) ) {
222
+ $siteurl = get_site_option( 'siteurl' );
223
+
224
+ if ( $siteurl )
225
+ define( 'COOKIEHASH', md5( $siteurl ) );
226
+ else
227
+ define( 'COOKIEHASH', '' );
228
+ }
229
 
230
+ if ( ! defined('AUTH_COOKIE') )
231
+ define('AUTH_COOKIE', 'wordpress_' . COOKIEHASH);
232
+
233
+ if ( ! defined('LOGGED_IN_COOKIE') )
234
+ define('LOGGED_IN_COOKIE', 'wordpress_logged_in_' . COOKIEHASH);
 
 
235
 
236
+ if ( empty($_GET['_wpnonce']) ) {
237
+ $nonce = '';
238
+ } else {
239
+ $nonce = $_GET['_wpnonce'];
240
+ }
241
+
242
+ if ( ! wp_verify_nonce( $nonce, 'bps-anti-csrf' ) ) {
243
+ die( 'CSRF Error: Invalid Nonce used in BPS MU Tools must-use plugin GET Request' );
244
+
245
+ } else {
246
+
247
+ $MUTools_Options = get_option('bulletproof_security_options_MU_tools_free');
248
+
249
+ if ( ! isset( $_GET['bps_toggle_a'] ) ) {
250
+ $bps_toggle_a = $MUTools_Options['bps_mu_tools_enable_disable_autoupdate'];
251
+ } elseif ( 'enable' == $_GET['bps_toggle_a'] ) {
252
+ $bps_toggle_a = 'enable';
253
+ } elseif ( 'disable' == $_GET['bps_toggle_a'] ) {
254
+ $bps_toggle_a = 'disable';
255
+ }
256
 
257
+ if ( ! isset( $_GET['bps_toggle_d'] ) ) {
258
+ $bps_toggle_d = $MUTools_Options['bps_mu_tools_enable_disable_deactivation'];
259
+ } elseif ( 'enable' == $_GET['bps_toggle_d'] ) {
260
+ $bps_toggle_d = 'enable';
261
+ } elseif ( 'disable' == $_GET['bps_toggle_d'] ) {
262
+ $bps_toggle_d = 'disable';
263
+ }
264
+
265
+ $MUTools_Option_settings = array(
266
+ 'bps_mu_tools_timestamp' => time() + 300,
267
+ 'bps_mu_tools_enable_disable_autoupdate' => $bps_toggle_a,
268
+ 'bps_mu_tools_enable_disable_deactivation' => $bps_toggle_d
269
+ );
270
+
271
+ foreach ( $MUTools_Option_settings as $key => $value ) {
272
+ update_option('bulletproof_security_options_MU_tools_free', $MUTools_Option_settings);
273
+ }
274
+ }
275
  }
276
  }
277
  }
286
  if ( $file == $this_plugin ) {
287
 
288
  $MUTools_Options = get_option('bulletproof_security_options_MU_tools_free');
289
+
290
+ if ( ! function_exists( 'wp_create_nonce' ) ) {
291
+ require_once( ABSPATH . '/wp-includes/pluggable.php' );
292
+ }
293
+
294
+ $nonce = wp_create_nonce( 'bps-anti-csrf' );
295
 
296
  if ( $MUTools_Options['bps_mu_tools_enable_disable_autoupdate'] == 'enable' ) {
297
 
298
  if ( is_multisite() ) {
299
+ $links[] = '<a href="'.network_admin_url( "plugins.php?plugin_status=mustuse&bps_toggle_a=disable&_wpnonce=$nonce" ).'">Disable BPS Plugin AutoUpdates</a>';
300
  } else {
301
+ $links[] = '<a href="'.admin_url( "plugins.php?plugin_status=mustuse&bps_toggle_a=disable&_wpnonce=$nonce" ).'">Disable BPS Plugin AutoUpdates</a>';
302
  }
303
 
304
  } else {
306
  if ( $MUTools_Options['bps_mu_tools_enable_disable_autoupdate'] == 'disable' ) {
307
 
308
  if ( is_multisite() ) {
309
+ $links[] = '<a href="'.network_admin_url( "plugins.php?plugin_status=mustuse&bps_toggle_a=enable&_wpnonce=$nonce" ).'">Enable BPS Plugin AutoUpdates</a>';
310
  } else {
311
+ $links[] = '<a href="'.admin_url( "plugins.php?plugin_status=mustuse&bps_toggle_a=enable&_wpnonce=$nonce" ).'">Enable BPS Plugin AutoUpdates</a>';
312
  }
313
  }
314
  }
316
  if ( $MUTools_Options['bps_mu_tools_enable_disable_deactivation'] == 'enable' ) {
317
 
318
  if ( is_multisite() ) {
319
+ $links[] = '<br><a href="'.network_admin_url( "plugins.php?plugin_status=mustuse&bps_toggle_d=disable&_wpnonce=$nonce" ).'">Disable BPS Folder|Deactivation Checks</a>';
320
  } else {
321
+ $links[] = '<br><a href="'.admin_url( "plugins.php?plugin_status=mustuse&bps_toggle_d=disable&_wpnonce=$nonce" ).'">Disable BPS Folder|Deactivation Checks</a>';
322
  }
323
 
324
  } else {
326
  if ( $MUTools_Options['bps_mu_tools_enable_disable_deactivation'] == 'disable' ) {
327
 
328
  if ( is_multisite() ) {
329
+ $links[] = '<br><a href="'.network_admin_url( "plugins.php?plugin_status=mustuse&bps_toggle_d=enable&_wpnonce=$nonce" ).'">Enable BPS Folder|Deactivation Checks</a>';
330
  } else {
331
+ $links[] = '<br><a href="'.admin_url( "plugins.php?plugin_status=mustuse&bps_toggle_d=enable&_wpnonce=$nonce" ).'">Enable BPS Folder|Deactivation Checks</a>';
332
  }
333
  }
334
  }
admin/htaccess/mscan_log.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ BPS MSCAN LOG
2
+ ======================
3
+ ======================
4
+
admin/htaccess/secure.htaccess CHANGED
@@ -1,4 +1,4 @@
1
- # BULLETPROOF 2.3 SECURE .HTACCESS
2
 
3
  # PHP/PHP.INI HANDLER/CACHE CODE
4
  # Use BPS Custom Code to add php/php.ini Handler and Cache htaccess code and to save it permanently.
1
+ # BULLETPROOF 2.4 SECURE .HTACCESS
2
 
3
  # PHP/PHP.INI HANDLER/CACHE CODE
4
  # Use BPS Custom Code to add php/php.ini Handler and Cache htaccess code and to save it permanently.
admin/htaccess/wp-hashes.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php
admin/htaccess/wpadmin-secure.htaccess CHANGED
@@ -1,4 +1,4 @@
1
- # BULLETPROOF 2.3 WP-ADMIN SECURE .HTACCESS
2
 
3
  # DO NOT ADD URL REWRITING IN THIS FILE OR WORDPRESS WILL BREAK
4
  # RewriteRule ^(.*)$ - [F] works in /wp-admin without breaking WordPress
1
+ # BULLETPROOF 2.4 WP-ADMIN SECURE .HTACCESS
2
 
3
  # DO NOT ADD URL REWRITING IN THIS FILE OR WORDPRESS WILL BREAK
4
  # RewriteRule ^(.*)$ - [F] works in /wp-admin without breaking WordPress
admin/images/bps-free-logo.gif ADDED
Binary file
admin/images/bps-pro-logo.png CHANGED
Binary file
admin/images/bps-security-shield.gif DELETED
Binary file
admin/images/bps-security-shield.png DELETED
Binary file
admin/images/bps-shield-logo.png DELETED
Binary file
admin/images/dashboard-status-display.jpg CHANGED
Binary file
admin/includes/admin.php CHANGED
@@ -42,6 +42,29 @@ global $wpdb, $wp_version, $blog_id;
42
  $Stable_name = $wpdb->prefix . "bpspro_seclog_ignore";
43
  $Ltable_name = $wpdb->prefix . "bpspro_login_security";
44
  $DBBtable_name = $wpdb->prefix . "bpspro_db_backup";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
 
46
  if ( $wpdb->get_var( $wpdb->prepare( "SHOW TABLES LIKE %s", $Stable_name ) ) != $Stable_name ) {
47
 
@@ -101,8 +124,8 @@ global $wpdb, $wp_version, $blog_id;
101
  dbDelta($sql);
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');
@@ -112,13 +135,14 @@ register_setting('bulletproof_security_options_db_backup', 'bulletproof_security
112
  register_setting('bulletproof_security_options_wpt_nodes', 'bulletproof_security_options_wpt_nodes', 'bulletproof_security_options_validate_wpt_nodes');
113
  register_setting('bulletproof_security_options_customcode', 'bulletproof_security_options_customcode', 'bulletproof_security_options_validate_customcode');
114
  register_setting('bulletproof_security_options_autoupdate', 'bulletproof_security_options_autoupdate', 'bulletproof_security_options_validate_autoupdate');
115
- register_setting('bulletproof_security_options_wizard_free', 'bulletproof_security_options_wizard_free', 'bulletproof_security_options_validate_wizard_free');
 
116
  register_setting('bulletproof_security_options_pop_uninstall', 'bulletproof_security_options_pop_uninstall', 'bulletproof_security_options_validate_pop_uninstall');
117
  register_setting('bulletproof_security_options_customcode_WPA', 'bulletproof_security_options_customcode_WPA', 'bulletproof_security_options_validate_customcode_WPA');
118
  register_setting('bulletproof_security_options_apache_modules', 'bulletproof_security_options_apache_modules', 'bulletproof_security_options_validate_apache_modules');
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');
@@ -129,11 +153,13 @@ register_setting('bulletproof_security_options_htaccess_res', 'bulletproof_secur
129
  register_setting('bulletproof_security_options_auth_cookie', 'bulletproof_security_options_auth_cookie', 'bulletproof_security_options_validate_auth_cookie');
130
  register_setting('bulletproof_security_options_maint_mode', 'bulletproof_security_options_maint_mode', 'bulletproof_security_options_validate_maint_mode');
131
  register_setting('bulletproof_security_options_theme_skin', 'bulletproof_security_options_theme_skin', 'bulletproof_security_options_validate_theme_skin');
 
132
  register_setting('bulletproof_security_options_scrolltop', 'bulletproof_security_options_scrolltop', 'bulletproof_security_options_validate_scrolltop');
133
  register_setting('bulletproof_security_options_hpf_cron', 'bulletproof_security_options_hpf_cron', 'bulletproof_security_options_validate_hpf_cron');
134
  register_setting('bulletproof_security_options_spinner', 'bulletproof_security_options_spinner', 'bulletproof_security_options_validate_spinner');
135
  register_setting('bulletproof_security_options_mynotes', 'bulletproof_security_options_mynotes', 'bulletproof_security_options_validate_mynotes');
136
  register_setting('bulletproof_security_options_zip_fix', 'bulletproof_security_options_zip_fix', 'bulletproof_security_options_validate_zip_fix');
 
137
  register_setting('bulletproof_security_options_email', 'bulletproof_security_options_email', 'bulletproof_security_options_validate_email');
138
  register_setting('bulletproof_security_options_GDMW', 'bulletproof_security_options_GDMW', 'bulletproof_security_options_validate_GDMW');
139
 
@@ -155,6 +181,35 @@ register_setting('bulletproof_security_options_GDMW', 'bulletproof_security_opti
155
  @chmod( WP_CONTENT_DIR . '/bps-backup/logs/', 0755 );
156
  }
157
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
158
  // Create backups folder with randomly generated folder name & save the backups folder name to the DB
159
  bpsPro_create_db_backup_folder();
160
 
@@ -244,8 +299,10 @@ global $blog_id;
244
 
245
  add_menu_page(__('BulletProof Security ~ htaccess Core', 'bulletproof-security'), __('BPS Security', 'bulletproof-security'), 'manage_options', 'bulletproof-security/admin/core/core.php', '', plugins_url('bulletproof-security/admin/images/bps-icon-small.png'));
246
  add_submenu_page('bulletproof-security/admin/core/core.php', __('BulletProof Security ~ htaccess Core', 'bulletproof-security'), __('htaccess Core', 'bulletproof-security'), 'manage_options', 'bulletproof-security/admin/core/core.php' );
247
- add_submenu_page('bulletproof-security/admin/core/core.php', __('Login Security ~ ISL ~ ACE', 'bulletproof-security'), __('Login Security', 'bulletproof-security'), 'manage_options', 'bulletproof-security/admin/login/login.php' );
248
- add_submenu_page('bulletproof-security/admin/core/core.php', __('Login Security ~ ISL ~ ACE', 'bulletproof-security'), __('Idle Session Logout<br>Cookie Expiration', 'bulletproof-security'), 'manage_options', 'admin.php?page=bulletproof-security/admin/login/login.php#bps-tabs-2' );
 
 
249
  add_submenu_page('bulletproof-security/admin/core/core.php', __('DB Backup & Security', 'bulletproof-security'), __('DB Backup', 'bulletproof-security'), 'manage_options', 'bulletproof-security/admin/db-backup-security/db-backup-security.php' );
250
  add_submenu_page('bulletproof-security/admin/core/core.php', __('Security Log', 'bulletproof-security'), __('Security Log', 'bulletproof-security'), 'manage_options', 'bulletproof-security/admin/security-log/security-log.php' );
251
 
@@ -257,6 +314,7 @@ global $blog_id;
257
  }
258
 
259
  add_submenu_page('bulletproof-security/admin/core/core.php', __('System Info', 'bulletproof-security'), __('System Info', 'bulletproof-security'), 'manage_options', 'bulletproof-security/admin/system-info/system-info.php' );
 
260
  add_submenu_page('bulletproof-security/admin/core/core.php', __('UI|UX Settings', 'bulletproof-security'), __('UI|UX Settings', 'bulletproof-security'), 'manage_options', 'bulletproof-security/admin/theme-skin/theme-skin.php' );
261
  add_submenu_page('bulletproof-security/admin/core/core.php', __('Setup Wizard', 'bulletproof-security'), __('Setup Wizard', 'bulletproof-security'), 'manage_options', 'bulletproof-security/admin/wizard/wizard.php' );
262
 
@@ -361,9 +419,15 @@ add_action( 'admin_enqueue_scripts', 'bpsPro_register_enqueue_scripts_styles' );
361
  // Register scripts and styles, Enqueue scripts and styles, Dequeue any plugin or theme scripts and styles loading in BPS plugin pages
362
  // .53.8: BugFix: script handles & dependencies code was fubar. Added: ver Query Strings * load scripts in footer * Debug option
363
  // 2.3: Remove all version compare conditions for >= 3.8. Minimum WP version required is now WP 3.8.
 
364
  function bpsPro_register_enqueue_scripts_styles() {
365
  global $wp_scripts, $wp_styles, $bulletproof_security, $wp_version, $bps_version;
366
 
 
 
 
 
 
367
  // Register & Load BPS scripts and styles on BPS plugin pages ONLY
368
  if ( preg_match( '/page=bulletproof-security/', esc_html($_SERVER['REQUEST_URI']), $matches ) ) {
369
 
@@ -411,7 +475,7 @@ global $wp_scripts, $wp_styles, $bulletproof_security, $wp_version, $bps_version
411
  }
412
 
413
  // Dequeue any other plugin or theme scripts that should not be loading on BPS plugin pages
414
- $script_handles = array( 'bps-tabs', 'bps-dialog', 'bps-accordion', 'admin-bar', 'jquery', 'jquery-ui-core', 'jquery-ui-tabs', 'jquery-ui-dialog', 'jquery-ui-widget', 'jquery-ui-mouse', 'jquery-ui-resizable', 'jquery-ui-draggable', 'jquery-ui-button', 'jquery-ui-position', 'jquery-ui-accordion', 'jquery-effects-core', 'jquery-effects-blind', 'jquery-effects-explode', 'common', 'utils', 'svg-painter', 'wp-auth-check', 'heartbeat', 'debug-bar' );
415
 
416
  $style_handles = array( 'bps-css', 'bps-css-38', 'admin-bar', 'colors', 'ie', 'wp-auth-check', 'debug-bar' );
417
 
@@ -626,11 +690,12 @@ $previous_install = get_option('bulletproof_security_options');
626
  }
627
  }
628
 
629
- // On BPS Plugin Deactivation: remove/unschedule all scheduled Cron jobs: 3 total
630
  function bulletproof_security_deactivation() {
631
  wp_clear_scheduled_hook('bpsPro_DBB_check');
632
  wp_clear_scheduled_hook('bpsPro_email_log_files');
633
  wp_clear_scheduled_hook('bpsPro_HPF_check');
 
634
  }
635
 
636
  // Delete the /bps-backup/ files and folder
@@ -679,6 +744,7 @@ require_once( ABSPATH . 'wp-admin/includes/plugin.php');
679
  $Stable_name = $wpdb->prefix . "bpspro_seclog_ignore";
680
  $Ltable_name = $wpdb->prefix . "bpspro_login_security";
681
  $DBBtable_name = $wpdb->prefix . "bpspro_db_backup";
 
682
  $RootHtaccess = ABSPATH . '.htaccess';
683
  $RootHtaccessBackup = WP_CONTENT_DIR . '/bps-backup/master-backups/root.htaccess';
684
  $wpadminHtaccess = ABSPATH . 'wp-admin/.htaccess';
@@ -728,13 +794,18 @@ require_once( ABSPATH . 'wp-admin/includes/plugin.php');
728
  delete_option('bulletproof_security_options_MU_tools_free');
729
  delete_option('bulletproof_security_options_htaccess_files');
730
  delete_option('bulletproof_security_options_wizard_autofix');
 
 
 
 
731
  // will be adding this new upgrade notice option later
732
  // delete_option('bulletproof_security_options_upgrade_notice');
733
 
734
  $wpdb->query("DROP TABLE IF EXISTS $Stable_name");
735
  $wpdb->query("DROP TABLE IF EXISTS $Ltable_name");
736
  $wpdb->query("DROP TABLE IF EXISTS $DBBtable_name");
737
-
 
738
  delete_user_meta($user_id, 'bps_ignore_iis_notice');
739
  delete_user_meta($user_id, 'bps_ignore_sucuri_notice');
740
  delete_user_meta($user_id, 'bps_ignore_BLC_notice');
@@ -756,6 +827,7 @@ require_once( ABSPATH . 'wp-admin/includes/plugin.php');
756
  delete_user_meta($user_id, 'bps_ignore_woocommerce_lsm_jtc_notice');
757
  delete_user_meta($user_id, 'bps_ignore_autoupdate_notice');
758
  delete_user_meta($user_id, 'bpsPro_ignore_EPC_plugin_notice');
 
759
 
760
  @unlink($wpadminHtaccess);
761
 
@@ -964,7 +1036,9 @@ function bulletproof_security_options_validate_email($input) {
964
  $options['bps_security_log_emailL'] = wp_filter_nohtml_kses($input['bps_security_log_emailL']);
965
  $options['bps_dbb_log_email'] = wp_filter_nohtml_kses($input['bps_dbb_log_email']);
966
  $options['bps_dbb_log_size'] = wp_filter_nohtml_kses($input['bps_dbb_log_size']);
967
-
 
 
968
  return $options;
969
  }
970
 
@@ -1067,15 +1141,6 @@ function bulletproof_security_options_validate_wizard_free($input) {
1067
  return $options;
1068
  }
1069
 
1070
- // Setup Wizard New BPS Installations: Used in WooCommerce Dismiss Notice.
1071
- // New installations of BPS should not display the WooCommerce Enable LSM option Dismiss Notice.
1072
- function bulletproof_security_options_validate_setup_wizard_woo($input) {
1073
- $options = get_option('bulletproof_security_options_setup_wizard_woo');
1074
- $options['bps_wizard_woo'] = wp_filter_nohtml_kses($input['bps_wizard_woo']);
1075
-
1076
- return $options;
1077
- }
1078
-
1079
  // Setup Wizard AutoFix On/Off: Automatically creates fixes/setups or whitelist rules for any known issues with other plugins.
1080
  function bulletproof_security_options_validate_wizard_autofix($input) {
1081
  $options = get_option('bulletproof_security_options_wizard_autofix');
@@ -1175,4 +1240,84 @@ function bulletproof_security_options_validate_MU_tools_free($input) {
1175
  return $options;
1176
  }
1177
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1178
  ?>
42
  $Stable_name = $wpdb->prefix . "bpspro_seclog_ignore";
43
  $Ltable_name = $wpdb->prefix . "bpspro_login_security";
44
  $DBBtable_name = $wpdb->prefix . "bpspro_db_backup";
45
+ $MStable_name = $wpdb->prefix . "bpspro_mscan";
46
+
47
+ if ( $wpdb->get_var( $wpdb->prepare( "SHOW TABLES LIKE %s", $MStable_name ) ) != $MStable_name ) {
48
+
49
+ $sql = "CREATE TABLE $MStable_name (
50
+ mscan_id bigint(20) NOT NULL auto_increment,
51
+ mscan_status varchar(8) NOT NULL default '',
52
+ mscan_type varchar(16) NOT NULL default '',
53
+ mscan_path text NOT NULL,
54
+ mscan_pattern text NOT NULL,
55
+ mscan_skipped varchar(7) NOT NULL default '',
56
+ mscan_ignored varchar(6) NOT NULL default '',
57
+ mscan_db_table varchar(64) NOT NULL default '',
58
+ mscan_db_column varchar(64) NOT NULL default '',
59
+ mscan_db_pkid text NOT NULL,
60
+ mscan_time datetime NOT NULL default '0000-00-00 00:00:00',
61
+ PRIMARY KEY (mscan_id),
62
+ UNIQUE KEY id (mscan_id)
63
+ );";
64
+
65
+ require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
66
+ dbDelta($sql);
67
+ }
68
 
69
  if ( $wpdb->get_var( $wpdb->prepare( "SHOW TABLES LIKE %s", $Stable_name ) ) != $Stable_name ) {
70
 
124
  dbDelta($sql);
125
  }
126
  }
127
+
128
+ // Whitelist BPS DB options: Total: 36
129
  register_setting('bulletproof_security_options', 'bulletproof_security_options', 'bulletproof_security_options_validate');
130
  register_setting('bulletproof_security_options_SLF', 'bulletproof_security_options_SLF', 'bulletproof_security_options_validate_SLF');
131
  register_setting('bulletproof_security_options_debug', 'bulletproof_security_options_debug', 'bulletproof_security_options_validate_debug');
135
  register_setting('bulletproof_security_options_wpt_nodes', 'bulletproof_security_options_wpt_nodes', 'bulletproof_security_options_validate_wpt_nodes');
136
  register_setting('bulletproof_security_options_customcode', 'bulletproof_security_options_customcode', 'bulletproof_security_options_validate_customcode');
137
  register_setting('bulletproof_security_options_autoupdate', 'bulletproof_security_options_autoupdate', 'bulletproof_security_options_validate_autoupdate');
138
+ register_setting('bulletproof_security_options_wizard_free', 'bulletproof_security_options_wizard_free', 'bulletproof_security_options_validate_wizard_free');
139
+ register_setting('bulletproof_security_options_MScan_status', 'bulletproof_security_options_MScan_status', 'bulletproof_security_options_validate_MScan_status');
140
  register_setting('bulletproof_security_options_pop_uninstall', 'bulletproof_security_options_pop_uninstall', 'bulletproof_security_options_validate_pop_uninstall');
141
  register_setting('bulletproof_security_options_customcode_WPA', 'bulletproof_security_options_customcode_WPA', 'bulletproof_security_options_validate_customcode_WPA');
142
  register_setting('bulletproof_security_options_apache_modules', 'bulletproof_security_options_apache_modules', 'bulletproof_security_options_validate_apache_modules');
143
  register_setting('bulletproof_security_options_hidden_plugins', 'bulletproof_security_options_hidden_plugins', 'bulletproof_security_options_validate_hidden_plugins');
 
144
  register_setting('bulletproof_security_options_sec_log_post_limit', 'bulletproof_security_options_sec_log_post_limit', 'bulletproof_security_options_validate_sec_log_post_limit');
145
+ register_setting('bulletproof_security_options_login_security_jtc', 'bulletproof_security_options_login_security_jtc', 'bulletproof_security_options_validate_login_security_jtc');
146
  register_setting('bulletproof_security_options_wizard_autofix', 'bulletproof_security_options_wizard_autofix', 'bulletproof_security_options_validate_wizard_autofix');
147
  register_setting('bulletproof_security_options_status_display', 'bulletproof_security_options_status_display', 'bulletproof_security_options_validate_status_display');
148
  register_setting('bulletproof_security_options_login_security', 'bulletproof_security_options_login_security', 'bulletproof_security_options_validate_login_security');
153
  register_setting('bulletproof_security_options_auth_cookie', 'bulletproof_security_options_auth_cookie', 'bulletproof_security_options_validate_auth_cookie');
154
  register_setting('bulletproof_security_options_maint_mode', 'bulletproof_security_options_maint_mode', 'bulletproof_security_options_validate_maint_mode');
155
  register_setting('bulletproof_security_options_theme_skin', 'bulletproof_security_options_theme_skin', 'bulletproof_security_options_validate_theme_skin');
156
+ register_setting('bulletproof_security_options_MScan_log', 'bulletproof_security_options_MScan_log', 'bulletproof_security_options_validate_MScan_log');
157
  register_setting('bulletproof_security_options_scrolltop', 'bulletproof_security_options_scrolltop', 'bulletproof_security_options_validate_scrolltop');
158
  register_setting('bulletproof_security_options_hpf_cron', 'bulletproof_security_options_hpf_cron', 'bulletproof_security_options_validate_hpf_cron');
159
  register_setting('bulletproof_security_options_spinner', 'bulletproof_security_options_spinner', 'bulletproof_security_options_validate_spinner');
160
  register_setting('bulletproof_security_options_mynotes', 'bulletproof_security_options_mynotes', 'bulletproof_security_options_validate_mynotes');
161
  register_setting('bulletproof_security_options_zip_fix', 'bulletproof_security_options_zip_fix', 'bulletproof_security_options_validate_zip_fix');
162
+ register_setting('bulletproof_security_options_MScan', 'bulletproof_security_options_MScan', 'bulletproof_security_options_validate_MScan');
163
  register_setting('bulletproof_security_options_email', 'bulletproof_security_options_email', 'bulletproof_security_options_validate_email');
164
  register_setting('bulletproof_security_options_GDMW', 'bulletproof_security_options_GDMW', 'bulletproof_security_options_validate_GDMW');
165
 
181
  @chmod( WP_CONTENT_DIR . '/bps-backup/logs/', 0755 );
182
  }
183
 
184
+ // Create the wp-hashes folder
185
+ if ( ! is_dir( WP_CONTENT_DIR . '/bps-backup/wp-hashes' ) ) {
186
+ @mkdir( WP_CONTENT_DIR . '/bps-backup/wp-hashes', 0755, true );
187
+ @chmod( WP_CONTENT_DIR . '/bps-backup/wp-hashes/', 0755 );
188
+ }
189
+
190
+ // Copy the blank wp-hashes.php file to the /wp-hashes/ folder
191
+ $wp_hashes_file_master = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/wp-hashes.php';
192
+ $wp_hashes_file = WP_CONTENT_DIR . '/bps-backup/wp-hashes/wp-hashes.php';
193
+
194
+ if ( ! file_exists($wp_hashes_file) ) {
195
+ copy($wp_hashes_file_master, $wp_hashes_file);
196
+ }
197
+
198
+ // Create the MScan log file in /logs
199
+ $bpsProMScanLog = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/mscan_log.txt';
200
+ $bpsProMScanLogARQ = WP_CONTENT_DIR . '/bps-backup/logs/mscan_log.txt';
201
+
202
+ if ( ! file_exists($bpsProMScanLogARQ) ) {
203
+ @copy($bpsProMScanLog, $bpsProMScanLogARQ);
204
+ }
205
+
206
+ // Copy and rename the blank.txt file to /master-backups - used for MScan Stop Scan
207
+ $MScanStop = WP_CONTENT_DIR . '/bps-backup/master-backups/mscan-stop.txt';
208
+
209
+ if ( ! file_exists($MScanStop) ) {
210
+ @copy($BPSblank, $MScanStop);
211
+ }
212
+
213
  // Create backups folder with randomly generated folder name & save the backups folder name to the DB
214
  bpsPro_create_db_backup_folder();
215
 
299
 
300
  add_menu_page(__('BulletProof Security ~ htaccess Core', 'bulletproof-security'), __('BPS Security', 'bulletproof-security'), 'manage_options', 'bulletproof-security/admin/core/core.php', '', plugins_url('bulletproof-security/admin/images/bps-icon-small.png'));
301
  add_submenu_page('bulletproof-security/admin/core/core.php', __('BulletProof Security ~ htaccess Core', 'bulletproof-security'), __('htaccess Core', 'bulletproof-security'), 'manage_options', 'bulletproof-security/admin/core/core.php' );
302
+ add_submenu_page('bulletproof-security/admin/core/core.php', __('MScan ~ Malware Scanner', 'bulletproof-security'), __('MScan', 'bulletproof-security'), 'manage_options', 'bulletproof-security/admin/mscan/mscan.php' );
303
+ add_submenu_page('bulletproof-security/admin/core/core.php', __('Login Security ~ JTC-Lite ~ ISL ~ ACE', 'bulletproof-security'), __('Login Security', 'bulletproof-security'), 'manage_options', 'bulletproof-security/admin/login/login.php' );
304
+ add_submenu_page('bulletproof-security/admin/core/core.php', __('Login Security ~ JTC-Lite ~ ISL ~ ACE', 'bulletproof-security'), __('JTC-Lite', 'bulletproof-security'), 'manage_options', 'admin.php?page=bulletproof-security/admin/login/login.php#bps-tabs-2' );
305
+ add_submenu_page('bulletproof-security/admin/core/core.php', __('Login Security ~ JTC-Lite ~ ISL ~ ACE', 'bulletproof-security'), __('Idle Session Logout<br>Cookie Expiration', 'bulletproof-security'), 'manage_options', 'admin.php?page=bulletproof-security/admin/login/login.php#bps-tabs-3' );
306
  add_submenu_page('bulletproof-security/admin/core/core.php', __('DB Backup & Security', 'bulletproof-security'), __('DB Backup', 'bulletproof-security'), 'manage_options', 'bulletproof-security/admin/db-backup-security/db-backup-security.php' );
307
  add_submenu_page('bulletproof-security/admin/core/core.php', __('Security Log', 'bulletproof-security'), __('Security Log', 'bulletproof-security'), 'manage_options', 'bulletproof-security/admin/security-log/security-log.php' );
308
 
314
  }
315
 
316
  add_submenu_page('bulletproof-security/admin/core/core.php', __('System Info', 'bulletproof-security'), __('System Info', 'bulletproof-security'), 'manage_options', 'bulletproof-security/admin/system-info/system-info.php' );
317
+ add_submenu_page('bulletproof-security/admin/core/core.php', __('Email|Log Settings', 'bulletproof-security'), __('Email|Log Settings', 'bulletproof-security'), 'manage_options', 'bulletproof-security/admin/email-log-settings/email-log-settings.php' );
318
  add_submenu_page('bulletproof-security/admin/core/core.php', __('UI|UX Settings', 'bulletproof-security'), __('UI|UX Settings', 'bulletproof-security'), 'manage_options', 'bulletproof-security/admin/theme-skin/theme-skin.php' );
319
  add_submenu_page('bulletproof-security/admin/core/core.php', __('Setup Wizard', 'bulletproof-security'), __('Setup Wizard', 'bulletproof-security'), 'manage_options', 'bulletproof-security/admin/wizard/wizard.php' );
320
 
419
  // Register scripts and styles, Enqueue scripts and styles, Dequeue any plugin or theme scripts and styles loading in BPS plugin pages
420
  // .53.8: BugFix: script handles & dependencies code was fubar. Added: ver Query Strings * load scripts in footer * Debug option
421
  // 2.3: Remove all version compare conditions for >= 3.8. Minimum WP version required is now WP 3.8.
422
+ // 2.4: register and enqueue new BPS MScan AJAX script
423
  function bpsPro_register_enqueue_scripts_styles() {
424
  global $wp_scripts, $wp_styles, $bulletproof_security, $wp_version, $bps_version;
425
 
426
+ // Register and Load the BPS MScan AJAX script sitewide
427
+ wp_register_script( 'bps-mscan-ajax', plugins_url( '/bulletproof-security/admin/js/bps-mscan-ajax.js' ), array( 'jquery' ), $bps_version, true );
428
+ wp_enqueue_script( 'bps-mscan-ajax' );
429
+ wp_localize_script( 'bps-mscan-ajax', 'bps_mscan_ajax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) );
430
+
431
  // Register & Load BPS scripts and styles on BPS plugin pages ONLY
432
  if ( preg_match( '/page=bulletproof-security/', esc_html($_SERVER['REQUEST_URI']), $matches ) ) {
433
 
475
  }
476
 
477
  // Dequeue any other plugin or theme scripts that should not be loading on BPS plugin pages
478
+ $script_handles = array( 'bps-mscan-ajax', 'bps-tabs', 'bps-dialog', 'bps-accordion', 'admin-bar', 'jquery', 'jquery-ui-core', 'jquery-ui-tabs', 'jquery-ui-dialog', 'jquery-ui-widget', 'jquery-ui-mouse', 'jquery-ui-resizable', 'jquery-ui-draggable', 'jquery-ui-button', 'jquery-ui-position', 'jquery-ui-accordion', 'jquery-effects-core', 'jquery-effects-blind', 'jquery-effects-explode', 'common', 'utils', 'svg-painter', 'wp-auth-check', 'heartbeat', 'debug-bar' );
479
 
480
  $style_handles = array( 'bps-css', 'bps-css-38', 'admin-bar', 'colors', 'ie', 'wp-auth-check', 'debug-bar' );
481
 
690
  }
691
  }
692
 
693
+ // On BPS Plugin Deactivation: remove/unschedule all scheduled Cron jobs: 4 total
694
  function bulletproof_security_deactivation() {
695
  wp_clear_scheduled_hook('bpsPro_DBB_check');
696
  wp_clear_scheduled_hook('bpsPro_email_log_files');
697
  wp_clear_scheduled_hook('bpsPro_HPF_check');
698
+ wp_clear_scheduled_hook('bpsPro_MScan_check');
699
  }
700
 
701
  // Delete the /bps-backup/ files and folder
744
  $Stable_name = $wpdb->prefix . "bpspro_seclog_ignore";
745
  $Ltable_name = $wpdb->prefix . "bpspro_login_security";
746
  $DBBtable_name = $wpdb->prefix . "bpspro_db_backup";
747
+ $MStable_name = $wpdb->prefix . "bpspro_mscan";
748
  $RootHtaccess = ABSPATH . '.htaccess';
749
  $RootHtaccessBackup = WP_CONTENT_DIR . '/bps-backup/master-backups/root.htaccess';
750
  $wpadminHtaccess = ABSPATH . 'wp-admin/.htaccess';
794
  delete_option('bulletproof_security_options_MU_tools_free');
795
  delete_option('bulletproof_security_options_htaccess_files');
796
  delete_option('bulletproof_security_options_wizard_autofix');
797
+ delete_option('bulletproof_security_options_MScan_log');
798
+ delete_option('bulletproof_security_options_MScan_status');
799
+ delete_option('bulletproof_security_options_MScan');
800
+ delete_option('bulletproof_security_options_login_security_jtc');
801
  // will be adding this new upgrade notice option later
802
  // delete_option('bulletproof_security_options_upgrade_notice');
803
 
804
  $wpdb->query("DROP TABLE IF EXISTS $Stable_name");
805
  $wpdb->query("DROP TABLE IF EXISTS $Ltable_name");
806
  $wpdb->query("DROP TABLE IF EXISTS $DBBtable_name");
807
+ $wpdb->query("DROP TABLE IF EXISTS $MStable_name");
808
+
809
  delete_user_meta($user_id, 'bps_ignore_iis_notice');
810
  delete_user_meta($user_id, 'bps_ignore_sucuri_notice');
811
  delete_user_meta($user_id, 'bps_ignore_BLC_notice');
827
  delete_user_meta($user_id, 'bps_ignore_woocommerce_lsm_jtc_notice');
828
  delete_user_meta($user_id, 'bps_ignore_autoupdate_notice');
829
  delete_user_meta($user_id, 'bpsPro_ignore_EPC_plugin_notice');
830
+ delete_user_meta($user_id, 'bps_ignore_mscan_notice');
831
 
832
  @unlink($wpadminHtaccess);
833
 
1036
  $options['bps_security_log_emailL'] = wp_filter_nohtml_kses($input['bps_security_log_emailL']);
1037
  $options['bps_dbb_log_email'] = wp_filter_nohtml_kses($input['bps_dbb_log_email']);
1038
  $options['bps_dbb_log_size'] = wp_filter_nohtml_kses($input['bps_dbb_log_size']);
1039
+ $options['bps_mscan_log_size'] = wp_filter_nohtml_kses($input['bps_mscan_log_size']);
1040
+ $options['bps_mscan_log_email'] = wp_filter_nohtml_kses($input['bps_mscan_log_email']);
1041
+
1042
  return $options;
1043
  }
1044
 
1141
  return $options;
1142
  }
1143
 
 
 
 
 
 
 
 
 
 
1144
  // Setup Wizard AutoFix On/Off: Automatically creates fixes/setups or whitelist rules for any known issues with other plugins.
1145
  function bulletproof_security_options_validate_wizard_autofix($input) {
1146
  $options = get_option('bulletproof_security_options_wizard_autofix');
1240
  return $options;
1241
  }
1242
 
1243
+ // MScan Log Last Modified Time DB
1244
+ function bulletproof_security_options_validate_MScan_log($input) {
1245
+ $options = get_option('bulletproof_security_options_MScan_log');
1246
+ $options['bps_mscan_log_date_mod'] = wp_filter_nohtml_kses($input['bps_mscan_log_date_mod']);
1247
+
1248
+ return $options;
1249
+ }
1250
+
1251
+ // MScan Scan: time, file counts & other stats
1252
+ // Note: Infected, Suspicious, skipped & ignored files can be outputted via a DB Query, but save these values statically as well
1253
+ function bulletproof_security_options_validate_MScan_status($input) {
1254
+ $options = get_option('bulletproof_security_options_MScan_status');
1255
+ $options['bps_mscan_time_start'] = wp_filter_nohtml_kses($input['bps_mscan_time_start']);
1256
+ $options['bps_mscan_time_stop'] = wp_filter_nohtml_kses($input['bps_mscan_time_stop']);
1257
+ $options['bps_mscan_time_end'] = wp_filter_nohtml_kses($input['bps_mscan_time_end']);
1258
+ $options['bps_mscan_time_remaining'] = wp_filter_nohtml_kses($input['bps_mscan_time_remaining']);
1259
+ $options['bps_mscan_status'] = wp_filter_nohtml_kses($input['bps_mscan_status']);
1260
+ $options['bps_mscan_last_scan_timestamp'] = wp_filter_nohtml_kses($input['bps_mscan_last_scan_timestamp']);
1261
+ $options['bps_mscan_total_time'] = wp_filter_nohtml_kses($input['bps_mscan_total_time']);
1262
+ $options['bps_mscan_total_website_files'] = wp_filter_nohtml_kses($input['bps_mscan_total_website_files']);
1263
+ $options['bps_mscan_total_wp_core_files'] = wp_filter_nohtml_kses($input['bps_mscan_total_wp_core_files']);
1264
+ $options['bps_mscan_total_non_image_files'] = wp_filter_nohtml_kses($input['bps_mscan_total_non_image_files']);
1265
+ $options['bps_mscan_total_image_files'] = wp_filter_nohtml_kses($input['bps_mscan_total_image_files']);
1266
+ $options['bps_mscan_total_all_scannable_files'] = wp_filter_nohtml_kses($input['bps_mscan_total_all_scannable_files']);
1267
+ $options['bps_mscan_total_skipped_files'] = wp_filter_nohtml_kses($input['bps_mscan_total_skipped_files']);
1268
+ $options['bps_mscan_total_suspect_files'] = wp_filter_nohtml_kses($input['bps_mscan_total_suspect_files']);
1269
+ @$options['bps_mscan_suspect_skipped_files'] = wp_filter_nohtml_kses($input['bps_mscan_suspect_skipped_files']);
1270
+ @$options['bps_mscan_total_suspect_db'] = wp_filter_nohtml_kses($input['bps_mscan_total_suspect_db']);
1271
+ $options['bps_mscan_total_ignored_files'] = wp_filter_nohtml_kses($input['bps_mscan_total_ignored_files']);
1272
+
1273
+ return $options;
1274
+ }
1275
+
1276
+ // MScan Scan Options: folders to scan, cron schedules, etc.
1277
+ function bulletproof_security_options_validate_MScan($input) {
1278
+ $options = get_option('bulletproof_security_options_MScan');
1279
+ // Note: You cannot use: wp_filter_nohtml_kses for multidimensional arrays - it will strip out the inner array code.
1280
+ $options['bps_mscan_dirs'] = $input['bps_mscan_dirs'];
1281
+ $options['mscan_max_file_size'] = wp_filter_nohtml_kses($input['mscan_max_file_size']);
1282
+ $options['mscan_max_time_limit'] = wp_filter_nohtml_kses($input['mscan_max_time_limit']);
1283
+ $options['mscan_scan_database'] = wp_filter_nohtml_kses($input['mscan_scan_database']);
1284
+ $options['mscan_scan_images'] = wp_filter_nohtml_kses($input['mscan_scan_images']);
1285
+ $options['mscan_scan_skipped_files'] = wp_filter_nohtml_kses($input['mscan_scan_skipped_files']);
1286
+ $options['mscan_scan_delete_tmp_files'] = wp_filter_nohtml_kses($input['mscan_scan_delete_tmp_files']);
1287
+ $options['mscan_scan_frequency'] = wp_filter_nohtml_kses($input['mscan_scan_frequency']);
1288
+ // keep this option last since I am using newlines
1289
+ @$options['mscan_exclude_dirs'] = wp_filter_nohtml_kses($input['mscan_exclude_dirs']);
1290
+
1291
+ return $options;
1292
+ }
1293
+
1294
+ // JTC-Lite a stripped down version of the BEAST > JTC Anti-Spam|Anti-Hacker
1295
+ function bulletproof_security_options_validate_login_security_jtc($input) {
1296
+ $BPSoptionsJTC = get_option('bulletproof_security_options_login_security_jtc');
1297
+ $BPSoptionsJTC['bps_tooltip_captcha_key'] = trim(wp_filter_nohtml_kses($input['bps_tooltip_captcha_key']));
1298
+ $BPSoptionsJTC['bps_tooltip_captcha_hover_text'] = wp_filter_nohtml_kses($input['bps_tooltip_captcha_hover_text']);
1299
+ $BPSoptionsJTC['bps_tooltip_captcha_title'] = wp_filter_nohtml_kses($input['bps_tooltip_captcha_title']);
1300
+ $BPSoptionsJTC['bps_tooltip_captcha_logging'] = wp_filter_nohtml_kses($input['bps_tooltip_captcha_logging']);
1301
+ $BPSoptionsJTC['bps_jtc_login_form'] = wp_filter_nohtml_kses($input['bps_jtc_login_form']);
1302
+ $BPSoptionsJTC['bps_jtc_register_form'] = wp_filter_nohtml_kses($input['bps_jtc_register_form']);
1303
+ $BPSoptionsJTC['bps_jtc_lostpassword_form'] = wp_filter_nohtml_kses($input['bps_jtc_lostpassword_form']);
1304
+ $BPSoptionsJTC['bps_jtc_comment_form'] = wp_filter_nohtml_kses($input['bps_jtc_comment_form']);
1305
+ $BPSoptionsJTC['bps_jtc_buddypress_register_form'] = wp_filter_nohtml_kses($input['bps_jtc_buddypress_register_form']);
1306
+ $BPSoptionsJTC['bps_jtc_buddypress_sidebar_form'] = wp_filter_nohtml_kses($input['bps_jtc_buddypress_sidebar_form']);
1307
+ $BPSoptionsJTC['bps_jtc_administrator'] = wp_filter_nohtml_kses($input['bps_jtc_administrator']);
1308
+ $BPSoptionsJTC['bps_jtc_editor'] = wp_filter_nohtml_kses($input['bps_jtc_editor']);
1309
+ $BPSoptionsJTC['bps_jtc_author'] = wp_filter_nohtml_kses($input['bps_jtc_author']);
1310
+ $BPSoptionsJTC['bps_jtc_contributor'] = wp_filter_nohtml_kses($input['bps_jtc_contributor']);
1311
+ $BPSoptionsJTC['bps_jtc_subscriber'] = wp_filter_nohtml_kses($input['bps_jtc_subscriber']);
1312
+ $BPSoptionsJTC['bps_jtc_comment_form_error'] = $input['bps_jtc_comment_form_error'];
1313
+ $BPSoptionsJTC['bps_jtc_comment_form_label'] = $input['bps_jtc_comment_form_label'];
1314
+ $BPSoptionsJTC['bps_jtc_comment_form_input'] = $input['bps_jtc_comment_form_input'];
1315
+ //$BPSoptionsJTC['bps_jtc_hide_ghost_text'] = wp_filter_nohtml_kses($input['bps_jtc_hide_ghost_text']);
1316
+ // Note: You cannot use: wp_filter_nohtml_kses for multidimensional arrays - it will strip out the inner array code.
1317
+ @$BPSoptionsJTC['bps_jtc_custom_roles'] = $input['bps_jtc_custom_roles'];
1318
+ $BPSoptionsJTC['bps_enable_jtc_woocommerce'] = wp_filter_nohtml_kses($input['bps_enable_jtc_woocommerce']);
1319
+
1320
+ return $BPSoptionsJTC;
1321
+ }
1322
+
1323
  ?>
admin/js/bps-mscan-ajax.js ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // BPS MScan AJAX
2
+ // CAUTION: The AJAX post var: $.post(bps_mscan_ajax.ajaxurl is different than BPS Pro.
3
+ jQuery(document).ready( function($) {
4
+
5
+ // MScan Malware Scanner: Start
6
+ $( "input#bps-mscan-start-button" ).on({ "click": function() {
7
+
8
+ var data = {
9
+ action: 'bps_mscan_scan_processing',
10
+ post_var: 'bps_mscan'
11
+ };
12
+
13
+ $.post(bps_mscan_ajax.ajaxurl, data, function(response) {
14
+ // Object {action: "bps_mscan_scan_processing", post_var: "bps_mscan"}
15
+ //console.log( data );
16
+ });
17
+ console.log( "clicked!" );
18
+ },
19
+ "mouseover": function() {
20
+ console.log( "hovered!" );
21
+ }
22
+ });
23
+
24
+ // MScan Malware Scanner: Scan Time Estimate Tool
25
+ $( "input#bps-mscan-time-estimate-button" ).on({ "click": function() {
26
+
27
+ var data = {
28
+ action: 'bps_mscan_scan_estimate',
29
+ post_var: 'bps_mscan_estimate'
30
+ };
31
+
32
+ $.post(bps_mscan_ajax.ajaxurl, data, function(response) {
33
+ // Object {action: "bps_mscan_scan_estimate", post_var: "bps_mscan_estimate"}
34
+ //console.log( data );
35
+ });
36
+ console.log( "clicked!" );
37
+ },
38
+ "mouseover": function() {
39
+ console.log( "hovered!" );
40
+ }
41
+ });
42
+ });
admin/js/bps-ui-accordion.js CHANGED
@@ -1,21 +1,8 @@
1
- /* ________ ____________ _____ ________ ________
2
- # ___ __ )____ _____ /___ /_____ __ /____ __ \______________ ______ ___ __/
3
- # __ __ |_ / / /__ / __ / _ _ \_ __/__ /_/ /__ ___/_ __ \_ __ \__ /_
4
- # _ /_/ / / /_/ / _ / _ / / __// /_ _ ____/ _ / / /_/ // /_/ /_ __/
5
- # /_____/ \__,_/ /_/ /_/ \___/ \__/ /_/ /_/ \____/ \____/ /_/
6
- # ________ _____ _____ ________
7
- # __ ___/_____ ___________ _____________(_)__ /______ __ ___ __ \______________
8
- # _____ \ _ _ \_ ___/_ / / /__ ___/__ / _ __/__ / / / __ /_/ /__ ___/_ __ \
9
- # ____/ / / __// /__ / /_/ / _ / _ / / /_ _ /_/ / _ ____/ _ / / /_/ /
10
- # /____/ \___/ \___/ \__,_/ /_/ /_/ \__/ _\__, / /_/ /_/ \____/
11
- # /____/
12
- # 42756C6C657450726F6F66 5365637572697479 50726F
13
- */
14
  // BPS jQuery Accordion
15
  jQuery(document).ready(function($){
16
 
17
  $( '#bps-accordion-1' ).addClass( "bps-accordion" );
18
- $( "#bps-accordion-1" ).accordion({
19
  collapsible: true,
20
  autoHeight: false,
21
  clearStyle: true,
@@ -24,7 +11,7 @@ jQuery(document).ready(function($){
24
 
25
  // not displayed open by default - slower/smoother animation
26
  $( '#bps-accordion-2' ).addClass( "bps-accordion" );
27
- $( "#bps-accordion-2" ).accordion({
28
  active: false,
29
  animate: 1500,
30
  collapsible: true,
@@ -35,7 +22,7 @@ jQuery(document).ready(function($){
35
 
36
  // displayed open by default - slower/smoother animation
37
  $( '#bps-accordion-3' ).addClass( "bps-accordion" );
38
- $( "#bps-accordion-3" ).accordion({
39
  animate: 1400,
40
  collapsible: true,
41
  autoHeight: false,
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  // BPS jQuery Accordion
2
  jQuery(document).ready(function($){
3
 
4
  $( '#bps-accordion-1' ).addClass( "bps-accordion" );
5
+ $( "#bps-accordion-1" ).show().accordion({
6
  collapsible: true,
7
  autoHeight: false,
8
  clearStyle: true,
11
 
12
  // not displayed open by default - slower/smoother animation
13
  $( '#bps-accordion-2' ).addClass( "bps-accordion" );
14
+ $( "#bps-accordion-2" ).show().accordion({
15
  active: false,
16
  animate: 1500,
17
  collapsible: true,
22
 
23
  // displayed open by default - slower/smoother animation
24
  $( '#bps-accordion-3' ).addClass( "bps-accordion" );
25
+ $( "#bps-accordion-3" ).show().accordion({
26
  animate: 1400,
27
  collapsible: true,
28
  autoHeight: false,
admin/js/bps-ui-tabs.js CHANGED
@@ -1,16 +1,3 @@
1
- /* ________ ____________ _____ ________ ________
2
- # ___ __ )____ _____ /___ /_____ __ /____ __ \______________ ______ ___ __/
3
- # __ __ |_ / / /__ / __ / _ _ \_ __/__ /_/ /__ ___/_ __ \_ __ \__ /_
4
- # _ /_/ / / /_/ / _ / _ / / __// /_ _ ____/ _ / / /_/ // /_/ /_ __/
5
- # /_____/ \__,_/ /_/ /_/ \___/ \__/ /_/ /_/ \____/ \____/ /_/
6
- # ________ _____ _____ ________
7
- # __ ___/_____ ___________ _____________(_)__ /______ __ ___ __ \______________
8
- # _____ \ _ _ \_ ___/_ / / /__ ___/__ / _ __/__ / / / __ /_/ /__ ___/_ __ \
9
- # ____/ / / __// /__ / /_/ / _ / _ / / /_ _ /_/ / _ ____/ _ / / /_/ /
10
- # /____/ \___/ \___/ \__,_/ /_/ /_/ \__/ _\__, / /_/ /_/ \____/
11
- # /____/
12
- # 42756C6C657450726F6F66 5365637572697479 50726F
13
- */
14
  // BPS jQuery Tabs Menus with Toggle/Opacity
15
  jQuery(document).ready(function($){
16
 
@@ -19,8 +6,7 @@ jQuery(document).ready(function($){
19
  show: {
20
  opacity: "toggle",
21
  duration: 400
22
- }
23
-
24
  });
25
 
26
  // toggle causes undesirable effects/results for inpage tabs
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  // BPS jQuery Tabs Menus with Toggle/Opacity
2
  jQuery(document).ready(function($){
3
 
6
  show: {
7
  opacity: "toggle",
8
  duration: 400
9
+ }
 
10
  });
11
 
12
  // toggle causes undesirable effects/results for inpage tabs
admin/login/login.php CHANGED
@@ -152,15 +152,16 @@ if ( ! current_user_can('manage_options') ) {
152
 
153
  <!-- jQuery UI Tab Menu -->
154
  <div id="bps-tabs" class="bps-menu">
155
- <div id="bpsHead"><img src="<?php echo plugins_url('/bulletproof-security/admin/images/bps-security-shield.gif'); ?>" /></div>
156
  <ul>
157
  <li><a href="#bps-tabs-1"><?php _e('Login Security & Monitoring', 'bulletproof-security'); ?></a></li>
 
158
  <?php if ( is_multisite() && $blog_id != 1 ) { ?>
159
  <!-- <li><a href="#bps-tabs-3"><?php //_e('Idle Session Logout', 'bulletproof-security'); ?></a></li> -->
160
  <?php } else { ?>
161
- <li><a href="#bps-tabs-2"><?php _e('Idle Session Logout|Auth Cookie Expiration', 'bulletproof-security'); ?></a></li>
162
  <?php } ?>
163
- <li><a href="#bps-tabs-3"><?php _e('Help &amp; FAQ', 'bulletproof-security'); ?></a></li>
164
  </ul>
165
 
166
  <div id="bps-tabs-1" class="bps-tab-page">
@@ -185,7 +186,7 @@ if ( ! current_user_can('manage_options') ) {
185
 
186
  <h3 style="margin:0px 0px 10px 0px;"><?php _e('Login Security & Monitoring', 'bulletproof-security'); ?> <button id="bps-open-modal1" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
187
 
188
- <div id="bps-modal-content1" title="<?php _e('Login Security & Monitoring', 'bulletproof-security'); ?>">
189
  <p>
190
  <?php
191
  $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
@@ -211,7 +212,7 @@ if ( ! current_user_can('manage_options') ) {
211
  </tr>
212
  <tr>
213
  <td><label for="LSLog"><?php _e('Automatic Lockout Time:', 'bulletproof-security'); ?></label></td>
214
- <td><input type="text" name="bulletproof_security_options_login_security[bps_lockout_duration]" class="regular-text-50-fixed" value="<?php if ( $BPSoptions['bps_lockout_duration'] != '' ) { echo esc_html( $BPSoptions['bps_lockout_duration'] ); } else { echo esc_html('60'); } ?>" /></td>
215
  <td><label for="LSLog" style="margin:0px 0px 0px 5px;"><strong><?php _e('Minutes', 'bulletproof-security'); ?></strong></label></td>
216
  </tr>
217
  <tr>
@@ -227,7 +228,7 @@ if ( ! current_user_can('manage_options') ) {
227
  </table>
228
 
229
  <div id="LSM-woocommerce" style="margin:10px 0px 10px 0px">
230
- <input type="checkbox" name="bulletproof_security_options_login_security[bps_enable_lsm_woocommerce]" value="1" <?php checked( $BPSoptions['bps_enable_lsm_woocommerce'], 1 ); ?> /><label><?php _e(' Enable Login Security for WooCommerce', 'bulletproof-security'); ?></label>
231
  </div>
232
 
233
  <table border="0">
@@ -288,87 +289,6 @@ if ( ! current_user_can('manage_options') ) {
288
  </form>
289
  </div>
290
 
291
- <?php if ( is_multisite() && $blog_id != 1 ) { echo '<div style="margin:10px 0px 0px 0px;"></div>'; } else { ?>
292
-
293
- <div id="EmailOptionsLSM" style="width:100%;">
294
-
295
- <form name="bpsEmailAlerts" action="options.php" method="post">
296
- <?php settings_fields('bulletproof_security_options_email'); ?>
297
- <?php $options = get_option('bulletproof_security_options_email'); ?>
298
- <?php $admin_email = get_option('admin_email'); ?>
299
-
300
- <table border="0">
301
- <tr>
302
- <td><label for="bps-monitor-email"><?php _e('Send Email Alerts & Log Files To:', 'bulletproof-security'); ?> </label></td>
303
- <td><input type="text" name="bulletproof_security_options_email[bps_send_email_to]" class="regular-text-200" value="<?php if ( $options['bps_send_email_to'] != '' ) { echo esc_html( $options['bps_send_email_to'] ); } else { echo esc_html( $admin_email ); } ?>" /></td>
304
- </tr>
305
- <tr>
306
- <td><label for="bps-monitor-email"><?php _e('Send Email Alerts & Log Files From:', 'bulletproof-security'); ?> </label></td>
307
- <td><input type="text" name="bulletproof_security_options_email[bps_send_email_from]" class="regular-text-200" value="<?php if ( $options['bps_send_email_from'] != '' ) { echo esc_html( $options['bps_send_email_from'] ); } else { echo esc_html( $admin_email ); } ?>" /></td>
308
- </tr>
309
- <tr>
310
- <td><label for="bps-monitor-email"><?php _e('Send Email Alerts & Log Files Cc:', 'bulletproof-security'); ?> </label></td>
311
- <td><input type="text" name="bulletproof_security_options_email[bps_send_email_cc]" class="regular-text-200" value="<?php echo esc_html( $options['bps_send_email_cc'] ); ?>" /></td>
312
- </tr>
313
- <tr>
314
- <td><label for="bps-monitor-email"><?php _e('Send Email Alerts & Log Files Bcc:', 'bulletproof-security'); ?> </label></td>
315
- <td><input type="text" name="bulletproof_security_options_email[bps_send_email_bcc]" class="regular-text-200" value="<?php echo esc_html( $options['bps_send_email_bcc'] ); ?>" /></td>
316
- </tr>
317
- </table>
318
- <br />
319
-
320
- <table border="0">
321
- <tr>
322
- <td><strong><label for="bps-monitor-email"><?php _e('Login Security: Send Login Security Email Alert When...', 'bulletproof-security'); ?></label></strong><br />
323
- <select name="bulletproof_security_options_email[bps_login_security_email]" class="form-340">
324
- <option value="lockoutOnly" <?php selected( $options['bps_login_security_email'], 'lockoutOnly'); ?>><?php _e('A User Account Is Locked Out', 'bulletproof-security'); ?></option>
325
- <option value="adminLoginOnly" <?php selected( $options['bps_login_security_email'], 'adminLoginOnly'); ?>><?php _e('An Administrator Logs In', 'bulletproof-security'); ?></option>
326
- <option value="adminLoginLock" <?php selected( $options['bps_login_security_email'], 'adminLoginLock'); ?>><?php _e('An Administrator Logs In & A User Account is Locked Out', 'bulletproof-security'); ?></option>
327
- <option value="anyUserLoginLock" <?php selected( $options['bps_login_security_email'], 'anyUserLoginLock'); ?>><?php _e('Any User Logs In & A User Account is Locked Out', 'bulletproof-security'); ?></option>
328
- <option value="no" <?php selected( $options['bps_login_security_email'], 'no'); ?>><?php _e('Do Not Send Email Alerts', 'bulletproof-security'); ?></option>
329
- </select></td>
330
- </tr>
331
- <tr>
332
- <td style="padding-top:5px;"><strong><label for="bps-monitor-email-log"><?php _e('Security Log: Email|Delete Security Log File When...', 'bulletproof-security'); ?></label></strong><br />
333
- <select name="bulletproof_security_options_email[bps_security_log_size]" class="form-80">
334
- <option value="500KB" <?php selected( $options['bps_security_log_size'], '500KB' ); ?>><?php _e('500KB', 'bulletproof-security'); ?></option>
335
- <option value="256KB" <?php selected( $options['bps_security_log_size'], '256KB'); ?>><?php _e('256KB', 'bulletproof-security'); ?></option>
336
- <option value="1MB" <?php selected( $options['bps_security_log_size'], '1MB' ); ?>><?php _e('1MB', 'bulletproof-security'); ?></option>
337
- </select>
338
- <select name="bulletproof_security_options_email[bps_security_log_emailL]" class="form-255">
339
- <option value="email" <?php selected( $options['bps_security_log_emailL'], 'email' ); ?>><?php _e('Email Log & Then Delete Log File', 'bulletproof-security'); ?></option>
340
- <option value="delete" <?php selected( $options['bps_security_log_emailL'], 'delete' ); ?>><?php _e('Delete Log File', 'bulletproof-security'); ?></option>
341
- </select></td>
342
- </tr>
343
- <tr>
344
- <td style="padding-top:5px;"><strong><label for="bps-monitor-email-log"><?php _e('DB Backup Log: Email|Delete DB Backup Log File When...', 'bulletproof-security'); ?></label></strong><br />
345
- <select name="bulletproof_security_options_email[bps_dbb_log_size]" class="form-80">
346
- <option value="500KB" <?php selected( $options['bps_dbb_log_size'], '500KB' ); ?>><?php _e('500KB', 'bulletproof-security'); ?></option>
347
- <option value="256KB" <?php selected( $options['bps_dbb_log_size'], '256KB'); ?>><?php _e('256KB', 'bulletproof-security'); ?></option>
348
- <option value="1MB" <?php selected( $options['bps_dbb_log_size'], '1MB' ); ?>><?php _e('1MB', 'bulletproof-security'); ?></option>
349
- </select>
350
- <select name="bulletproof_security_options_email[bps_dbb_log_email]" class="form-255">
351
- <option value="email" <?php selected( $options['bps_dbb_log_email'], 'email' ); ?>><?php _e('Email Log & Then Delete Log File', 'bulletproof-security'); ?></option>
352
- <option value="delete" <?php selected( $options['bps_dbb_log_email'], 'delete' ); ?>><?php _e('Delete Log File', 'bulletproof-security'); ?></option>
353
- </select></td>
354
- </tr>
355
- </table>
356
-
357
- <div id="LSM-DB-Table"></div>
358
-
359
- <!-- <strong><label for="bps-monitor-email" style="margin:0px 0px 0px 0px;"><?php //_e('BPS Plugin Upgrade Email Notification', 'bulletproof-security'); ?></label></strong><br />
360
- <select name="bulletproof_security_options_email[bps_upgrade_email]" class="form-340">
361
- <option value="yes" <?php //selected( @$options['bps_upgrade_email'], 'yes'); ?>><?php //_e('Send Email Alerts', 'bulletproof-security'); ?></option>
362
- <option value="no" <?php //selected( @$options['bps_upgrade_email'], 'no'); ?>><?php //_e('Do Not Send Email Alerts', 'bulletproof-security'); ?></option>
363
- </select><br /><br /> -->
364
-
365
- <input type="hidden" name="bpsEMA" value="bps-EMA" />
366
- <input type="submit" name="bpsEmailAlertSubmit" class="button bps-button" style="margin:15px 0px 0px 0px;" value="<?php esc_attr_e('Save Options', 'bulletproof-security') ?>" />
367
- </form>
368
- </div>
369
-
370
- <?php } ?>
371
-
372
  <div id="LSMExportButton">
373
  <form name="bpsLSMExport" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/login/login.php' ); ?>" method="post">
374
  <?php wp_nonce_field('bulletproof_security_lsm_export'); ?>
@@ -863,9 +783,203 @@ if ( isset($_POST['Submit-Login-Search-Radio'] ) && current_user_can('manage_opt
863
  </table>
864
  </div>
865
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
866
  <?php if ( is_multisite() && $blog_id != 1 ) { echo '<div style="margin:0px 0px 0px 0px;"></div>'; } else { ?>
867
 
868
- <div id="bps-tabs-2" class="bps-tab-page">
869
 
870
  <table width="100%" border="0" cellspacing="0" cellpadding="0" class="bps-help_faq_table">
871
  <tr>
@@ -874,9 +988,9 @@ if ( isset($_POST['Submit-Login-Search-Radio'] ) && current_user_can('manage_opt
874
  <tr>
875
  <td class="bps-table_cell_help">
876
 
877
- <h3 style="margin:0px 0px 5px 0px;"><?php _e('Idle Session Logout|Auth Cookie Expiration', 'bulletproof-security'); ?> <button id="bps-open-modal2" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
878
 
879
- <div id="bps-modal-content2" title="<?php _e('Idle Session Logout|Auth Cookie Expiration', 'bulletproof-security'); ?>">
880
 
881
  <table width="100%" border="0" cellspacing="0" cellpadding="0" class="bps-readme-table">
882
  <tr>
@@ -893,7 +1007,7 @@ if ( isset($_POST['Submit-Login-Search-Radio'] ) && current_user_can('manage_opt
893
  <?php _e('ISL and ACE Forum Topic', 'bulletproof-security'); ?></a></strong><br /><br />
894
 
895
  <?php
896
- echo $bps_modal_content2;
897
  $text = '<strong>'.__('The Help & FAQ tab pages contain help links.', 'bulletproof-security').'</strong>';
898
  echo $text;
899
  ?>
@@ -974,7 +1088,7 @@ if ( isset( $_POST['Submit-ISL-Options'] ) && current_user_can('manage_options')
974
 
975
  <div id="Idle-Session-Logout">
976
 
977
- <form name="IdleSessionLogout" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/login/login.php#bps-tabs-2' ); ?>" method="post">
978
  <?php wp_nonce_field('bps_isl_logout'); ?>
979
  <?php $BPS_ISL_options = get_option('bulletproof_security_options_idle_session'); ?>
980
 
@@ -1146,7 +1260,7 @@ if ( isset( $_POST['Submit-ACE-Options'] ) && current_user_can('manage_options')
1146
  }
1147
  ?>
1148
 
1149
- <form name="ACELogout" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/login/login.php#bps-tabs-2' ); ?>" method="post">
1150
  <?php wp_nonce_field('bps_auth_cookie_expiration'); ?>
1151
  <?php $BPS_ACE_options = get_option('bulletproof_security_options_auth_cookie'); ?>
1152
 
@@ -1231,7 +1345,7 @@ if ( isset( $_POST['Submit-ACE-Options'] ) && current_user_can('manage_options')
1231
 
1232
  <?php } ?>
1233
 
1234
- <div id="bps-tabs-3" class="bps-tab-page">
1235
 
1236
  <table width="100%" border="0" cellspacing="0" cellpadding="0" class="bps-help_faq_table">
1237
  <tr>
152
 
153
  <!-- jQuery UI Tab Menu -->
154
  <div id="bps-tabs" class="bps-menu">
155
+ <div id="bpsHead"><img src="<?php echo plugins_url('/bulletproof-security/admin/images/bps-free-logo.gif'); ?>" /></div>
156
  <ul>
157
  <li><a href="#bps-tabs-1"><?php _e('Login Security & Monitoring', 'bulletproof-security'); ?></a></li>
158
+ <li><a href="#bps-tabs-2"><?php _e('JTC-Lite', 'bulletproof-security'); ?></a></li>
159
  <?php if ( is_multisite() && $blog_id != 1 ) { ?>
160
  <!-- <li><a href="#bps-tabs-3"><?php //_e('Idle Session Logout', 'bulletproof-security'); ?></a></li> -->
161
  <?php } else { ?>
162
+ <li><a href="#bps-tabs-3"><?php _e('Idle Session Logout|Auth Cookie Expiration', 'bulletproof-security'); ?></a></li>
163
  <?php } ?>
164
+ <li><a href="#bps-tabs-4"><?php _e('Help &amp; FAQ', 'bulletproof-security'); ?></a></li>
165
  </ul>
166
 
167
  <div id="bps-tabs-1" class="bps-tab-page">
186
 
187
  <h3 style="margin:0px 0px 10px 0px;"><?php _e('Login Security & Monitoring', 'bulletproof-security'); ?> <button id="bps-open-modal1" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
188
 
189
+ <div id="bps-modal-content1" class="bps-dialog-hide" title="<?php _e('Login Security & Monitoring', 'bulletproof-security'); ?>">
190
  <p>
191
  <?php
192
  $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
212
  </tr>
213
  <tr>
214
  <td><label for="LSLog"><?php _e('Automatic Lockout Time:', 'bulletproof-security'); ?></label></td>
215
+ <td><input type="text" name="bulletproof_security_options_login_security[bps_lockout_duration]" class="regular-text-50-fixed" value="<?php if ( $BPSoptions['bps_lockout_duration'] != '' ) { echo esc_html( $BPSoptions['bps_lockout_duration'] ); } else { echo esc_html('15'); } ?>" /></td>
216
  <td><label for="LSLog" style="margin:0px 0px 0px 5px;"><strong><?php _e('Minutes', 'bulletproof-security'); ?></strong></label></td>
217
  </tr>
218
  <tr>
228
  </table>
229
 
230
  <div id="LSM-woocommerce" style="margin:10px 0px 10px 0px">
231
+ <input type="checkbox" name="bulletproof_security_options_login_security[bps_enable_lsm_woocommerce]" value="" <?php checked( $BPSoptions['bps_enable_lsm_woocommerce'], 1 ); ?> /><label><?php _e(' Enable Login Security for WooCommerce (BPS Pro Only)', 'bulletproof-security'); ?></label>
232
  </div>
233
 
234
  <table border="0">
289
  </form>
290
  </div>
291
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
292
  <div id="LSMExportButton">
293
  <form name="bpsLSMExport" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/login/login.php' ); ?>" method="post">
294
  <?php wp_nonce_field('bulletproof_security_lsm_export'); ?>
783
  </table>
784
  </div>
785
 
786
+ <div id="bps-tabs-2" class="bps-tab-page">
787
+
788
+ <?php
789
+ $GDMW_options = get_option('bulletproof_security_options_GDMW');
790
+
791
+ if ( $GDMW_options['bps_gdmw_hosting'] == 'yes' ) {
792
+ $text = '<h3><strong><span style="font-size:1em;"><font color="blue">'.__('Notice: ', 'bulletproof-security').'</font></span><span style="font-size:.75em;">'.__('The Setup Wizard Go Daddy "Managed WordPress Hosting" option is set to Yes.', 'bulletproof-security').'<br>'.__('If you have Go Daddy "Managed WordPress Hosting" click this link: ', 'bulletproof-security').'<a href="https://forum.ait-pro.com/forums/topic/gdmw/" target="_blank" title="Link opens in a new Browser window">'.__('Go Daddy Managed WordPress Hosting', 'bulletproof-security').'</a>.<br>'.__('If you do not have Go Daddy "Managed WordPress Hosting" then change the Go Daddy "Managed WordPress Hosting" Setup Wizard option to No.', 'bulletproof-security').'</span></strong></h3>';
793
+ echo $text;
794
+ }
795
+ ?>
796
+
797
+ <table width="100%" border="0" cellspacing="0" cellpadding="0" class="bps-help_faq_table">
798
+ <tr>
799
+ <td class="bps-table_title">
800
+ <?php $text = '<h2>'.__('jQuery ToolTip CAPTCHA-Lite (JTC-Lite) ~ ', 'bulletproof-security').'<span style="font-size:.75em;">'.__('Protects the WP Login Form against constant lockouts by Bots trying to Brute Force Login to your website', 'bulletproof-security').'</span></h2><div class="promo-text">'.__('Want even more security protection?', 'bulletproof-security').'<br>'.__('Get the full version of JTC Anti-Spam|Anti-Hacker that protects all of your WP Forms', 'bulletproof-security').'<br>'.__('against SpamBots & HackerBots (auto-registering, auto-logins, auto-posting, auto-commenting) & User Account Lockouts: ', 'bulletproof-security').'<a href="https://affiliates.ait-pro.com/po/" target="_blank" title="BPS Pro JTC Anti-Spam|Anti-Hacker">'.__('Get BPS Pro JTC Anti-Spam|Anti-Hacker', 'bulletproof-security').'</a>'; echo $text; ?>
801
+ </td>
802
+ </tr>
803
+ <tr>
804
+ <td class="bps-table_cell_help">
805
+
806
+ <h3 style="margin:0px 0px 5px 0px;"><?php _e('JTC-Lite', 'bulletproof-security'); ?> <button id="bps-open-modal2" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
807
+
808
+ <div id="bps-modal-content2" class="bps-dialog-hide" title="<?php _e('JTC-Lite', 'bulletproof-security'); ?>">
809
+ <p>
810
+ <?php
811
+ $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
812
+ echo $text;
813
+ echo $bps_modal_content2;
814
+ ?>
815
+ </p>
816
+ </div>
817
+
818
+ <?php
819
+ // JTC Form processing
820
+ if ( isset( $_POST['Submit-Security-Log-Options-JTC'] ) && current_user_can('manage_options') ) {
821
+ check_admin_referer( 'bps_login_security_jtc' );
822
+
823
+ $Custom_Roles = $_POST['bps_jtc_custom_roles'];
824
+
825
+ switch( $_POST['Submit-Security-Log-Options-JTC'] ) {
826
+ case __('Save Options', 'bulletproof-security'):
827
+
828
+ if ( ! empty($Custom_Roles) ) {
829
+
830
+ $Custom_Roles_array = array();
831
+
832
+ foreach ( $Custom_Roles as $key => $value ) {
833
+
834
+ if ( $value == '1' ) {
835
+ $Custom_Roles_array[$key] = '';
836
+ }
837
+ }
838
+
839
+ } else {
840
+
841
+ $Custom_Roles_array = array( 'bps', '' );
842
+ }
843
+ }
844
+
845
+ $JTC_Options = array(
846
+ 'bps_tooltip_captcha_key' => esc_html($_POST['bps_tooltip_captcha_key']),
847
+ 'bps_tooltip_captcha_hover_text' => esc_html($_POST['bps_tooltip_captcha_hover_text']),
848
+ 'bps_tooltip_captcha_title' => esc_html($_POST['bps_tooltip_captcha_title']),
849
+ 'bps_tooltip_captcha_logging' => 'Off',
850
+ 'bps_jtc_login_form' => $_POST['bps_jtc_login_form'],
851
+ 'bps_jtc_register_form' => '',
852
+ 'bps_jtc_lostpassword_form' => '',
853
+ 'bps_jtc_comment_form' => '',
854
+ 'bps_jtc_buddypress_register_form' => '',
855
+ 'bps_jtc_buddypress_sidebar_form' => '',
856
+ 'bps_jtc_administrator' => '',
857
+ 'bps_jtc_editor' => '',
858
+ 'bps_jtc_author' => '',
859
+ 'bps_jtc_contributor' => '',
860
+ 'bps_jtc_subscriber' => '',
861
+ 'bps_jtc_comment_form_error' => stripslashes($_POST['bps_jtc_comment_form_error']),
862
+ 'bps_jtc_comment_form_label' => esc_html($_POST['bps_jtc_comment_form_label']),
863
+ 'bps_jtc_comment_form_input' => esc_html($_POST['bps_jtc_comment_form_input']),
864
+ 'bps_jtc_custom_roles' => $Custom_Roles_array,
865
+ 'bps_enable_jtc_woocommerce' => ''
866
+ );
867
+
868
+ foreach( $JTC_Options as $key => $value ) {
869
+ update_option('bulletproof_security_options_login_security_jtc', $JTC_Options);
870
+ }
871
+
872
+ echo $bps_topDiv;
873
+ echo '<strong><font color="green">'.__('JTC-Lite Settings Saved.', 'bulletproof-security').'</font></strong><br>';
874
+ echo $bps_bottomDiv;
875
+ }
876
+
877
+ if ( ! current_user_can('manage_options') ) { _e('Permission Denied', 'bulletproof-security'); } else {
878
+
879
+ ?>
880
+
881
+ <div id="LoginSecurityJTC" style="position:relative;top:0px;left:0px;margin:0px 0px 0px 0px;">
882
+
883
+ <form name="LoginSecurityJTC" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/login/login.php#bps-tabs-2' ); ?>" method="post">
884
+ <?php wp_nonce_field('bps_login_security_jtc'); ?>
885
+ <?php $BPSoptionsJTC = get_option('bulletproof_security_options_login_security_jtc'); ?>
886
+
887
+ <h3><?php _e('JTC-Lite Settings', 'bulletproof-security'); ?></h3>
888
+
889
+ <table border="0">
890
+ <tr>
891
+ <td><label for="LSLog"><?php _e('JTC CAPTCHA:', 'bulletproof-security'); ?></label></td>
892
+ <td><input type="text" name="bps_tooltip_captcha_key" class="regular-text-250" value="<?php if ( $BPSoptionsJTC['bps_tooltip_captcha_key'] != '' ) { echo $BPSoptionsJTC['bps_tooltip_captcha_key']; } else { echo ''; } ?>" /></td>
893
+ <td><label for="LSLog" style="margin:0px 0px 0px 5px;font-style:italic;font-weight:normal;"><?php _e('jtc', 'bulletproof-security'); ?></label></td>
894
+ </tr>
895
+ <tr>
896
+ <td><label for="LSLog"><?php _e('JTC ToolTip:', 'bulletproof-security'); ?></label></td>
897
+ <td><input type="text" name="bps_tooltip_captcha_hover_text" class="regular-text-250" value="<?php if ( $BPSoptionsJTC['bps_tooltip_captcha_hover_text'] != '' ) { echo $BPSoptionsJTC['bps_tooltip_captcha_hover_text']; } else { echo 'Type/Enter: '; } ?>" /></td>
898
+ <td><label for="LSLog" style="margin:0px 0px 0px 5px;font-style:italic;font-weight:normal;"><?php _e('Type/Enter: jtc', 'bulletproof-security'); ?></label></td>
899
+ </tr>
900
+ <tr>
901
+ <td><label for="LSLog"><?php _e('JTC Title|Text:', 'bulletproof-security'); ?></label></td>
902
+ <td><input type="text" name="bps_tooltip_captcha_title" class="regular-text-250" value="<?php if ( $BPSoptionsJTC['bps_tooltip_captcha_title'] != '' ) { echo $BPSoptionsJTC['bps_tooltip_captcha_title']; } else { echo 'Hover or click the text box below'; } ?>" /></td>
903
+ <td><label for="LSLog" style="margin:0px 0px 0px 5px;font-style:italic;font-weight:normal;"><?php _e('Enter a blank space for no text', 'bulletproof-security'); ?></label></td>
904
+ </tr>
905
+
906
+
907
+ <?php if ( is_multisite() && $blog_id != 1 ) { echo '<div style="margin:0px 0px 0px 0px;"></div>'; } else { ?>
908
+
909
+ <tr>
910
+ <td><label for="LSLog"><?php _e('JTC Logging:', 'bulletproof-security'); ?></label></td>
911
+ <td><select name="bps_tooltip_captcha_logging" class="form-250">
912
+ <option value="Off" <?php selected('Off', $BPSoptionsJTC['bps_tooltip_captcha_logging']); ?>><?php _e('JTC Logging Off', 'bulletproof-security'); ?></option>
913
+ </select>
914
+ </td>
915
+ <td><label for="LSLog" style="margin:0px 0px 0px 5px; font-style:italic;font-weight:normal;"><?php _e('Logged in the Security Log (BPS Pro Only)', 'bulletproof-security'); ?></label></td>
916
+ </tr>
917
+
918
+ <?php } ?>
919
+ <!-- Important: </table> needs to come after the closing php tag above for Network subsites -->
920
+ </table>
921
+
922
+ <div id="JTC-woocommerce" style="margin:10px 0px 10px 0px">
923
+ <input type="checkbox" name="bps_enable_jtc_woocommerce" value="1" <?php checked( $BPSoptionsJTC['bps_enable_jtc_woocommerce'], 1 ); ?> /><label><?php _e(' Enable JTC for WooCommerce (BPS Pro Only)', 'bulletproof-security'); ?></label>
924
+ </div>
925
+
926
+ <label><strong><?php _e('Enable|Disable JTC For These Forms: ', 'bulletproof-security'); ?></strong></label><br />
927
+ <label><i><?php _e('Check to Enable. Uncheck to Disable.', 'bulletproof-security'); ?></i></label><br />
928
+ <input type="checkbox" name="bps_jtc_login_form" value="1" <?php checked( $BPSoptionsJTC['bps_jtc_login_form'], 1 ); ?> /><label><?php _e(' Login Form', 'bulletproof-security'); ?></label><br />
929
+ <input type="checkbox" name="bps_jtc_register_form" value="1" <?php checked( $BPSoptionsJTC['bps_jtc_register_form'], 1 ); ?> /><label><?php _e(' Register Form (BPS Pro Only)', 'bulletproof-security'); ?></label><br />
930
+ <input type="checkbox" name="bps_jtc_lostpassword_form" value="1" <?php checked( $BPSoptionsJTC['bps_jtc_lostpassword_form'], 1 ); ?> /><label><?php _e(' Lost Password Form (BPS Pro Only)', 'bulletproof-security'); ?></label><br />
931
+ <input type="checkbox" name="bps_jtc_comment_form" value="1" <?php checked( $BPSoptionsJTC['bps_jtc_comment_form'], 1 ); ?> /><label><?php _e(' Comment Form (BPS Pro Only)', 'bulletproof-security'); ?></label><br />
932
+ <input type="checkbox" name="bps_jtc_buddypress_register_form" value="1" <?php checked( $BPSoptionsJTC['bps_jtc_buddypress_register_form'], 1 ); ?> /><label><?php _e(' BuddyPress Register Form (BPS Pro Only)', 'bulletproof-security'); ?></label><br />
933
+ <input type="checkbox" name="bps_jtc_buddypress_sidebar_form" value="1" <?php checked( $BPSoptionsJTC['bps_jtc_buddypress_sidebar_form'], 1 ); ?> /><label><?php _e(' BuddyPress Sidebar Login Form (BPS Pro Only)', 'bulletproof-security'); ?></label><br /><br />
934
+
935
+ <label><strong><?php _e('Comment Form: (BPS Pro Only)', 'bulletproof-security'); ?></strong></label><br />
936
+ <label><strong><?php _e('Enable|Disable JTC For These Registered/Logged In User Roles (BPS Pro Only): ', 'bulletproof-security'); ?></strong></label><br />
937
+ <label><i><?php _e('Check to Enable. Uncheck to Disable.', 'bulletproof-security'); ?></i></label><br />
938
+ <div id="Roles-scroller">
939
+ <input type="checkbox" name="bps_jtc_administrator" value="1" <?php checked( $BPSoptionsJTC['bps_jtc_administrator'], 1 ); ?> /><label><?php _e(' Administrator', 'bulletproof-security'); ?></label><br />
940
+ <input type="checkbox" name="bps_jtc_editor" value="1" <?php checked( $BPSoptionsJTC['bps_jtc_editor'], 1 ); ?> /><label><?php _e(' Editor', 'bulletproof-security'); ?></label><br />
941
+ <input type="checkbox" name="bps_jtc_author" value="1" <?php checked( $BPSoptionsJTC['bps_jtc_author'], 1 ); ?> /><label><?php _e(' Author', 'bulletproof-security'); ?></label><br />
942
+ <input type="checkbox" name="bps_jtc_contributor" value="1" <?php checked( $BPSoptionsJTC['bps_jtc_contributor'], 1 ); ?> /><label><?php _e(' Contributor', 'bulletproof-security'); ?></label><br />
943
+ <input type="checkbox" name="bps_jtc_subscriber" value="1" <?php checked( $BPSoptionsJTC['bps_jtc_subscriber'], 1 ); ?> /><label><?php _e(' Subscriber', 'bulletproof-security'); ?></label><br />
944
+
945
+ <?php
946
+
947
+ foreach ( get_editable_roles() as $role_name => $role_info ) {
948
+
949
+ if ( $role_name != 'administrator' && $role_name != 'editor' && $role_name != 'author' && $role_name != 'contributor' && $role_name != 'subscriber' ) {
950
+
951
+ echo "<input type=\"checkbox\" name=\"bps_jtc_custom_roles[$role_name]\" value=\"1\""; @checked( $BPSoptionsJTC['bps_jtc_custom_roles'][$role_name], 1 ); echo " /><label> ". $role_info['name'] ."</label>".'<br>';
952
+
953
+ }
954
+ }
955
+ ?>
956
+ </div>
957
+
958
+ <br />
959
+ <label for="LSLog13"><?php _e('Comment Form: CAPTCHA Error message (BPS Pro Only)', 'bulletproof-security'); ?></label><br />
960
+ <input type="text" name="bps_jtc_comment_form_error" class="regular-text-short-fixed" style="width:75%;" value="<?php if ($BPSoptionsJTC['bps_jtc_comment_form_error'] != '') { echo $BPSoptionsJTC['bps_jtc_comment_form_error']; } else { echo '<strong>ERROR</strong>: Incorrect JTC CAPTCHA Entered. Click your Browser back button and re-enter the JTC CAPTCHA.'; } ?>" /><br /><br />
961
+
962
+ <label><strong><?php _e('Comment Form: CSS Styling (BPS Pro Only)', 'bulletproof-security'); ?></strong></label><br />
963
+ <label><?php _e('Comment Form Label (BPS Pro Only): <i>The JTC Title|Text above the Form Input text box</i>', 'bulletproof-security'); ?></label><br />
964
+ <input type="text" name="bps_jtc_comment_form_label" class="regular-text-short-fixed" style="width:75%;" value="<?php if ($BPSoptionsJTC['bps_jtc_comment_form_label'] != '') { echo $BPSoptionsJTC['bps_jtc_comment_form_label']; } else { echo 'position:relative;top:0px;left:0px;padding:0px 0px 0px 0px;margin:0px 0px 0px 0px;'; } ?>" /><br />
965
+ <label><?php _e('Comment Form Input Text Box (BPS Pro Only): <i>The JTC CAPTCHA Form Input text box</i>', 'bulletproof-security'); ?></label><br />
966
+ <input type="text" name="bps_jtc_comment_form_input" class="regular-text-short-fixed" style="width:75%;" value="<?php if ($BPSoptionsJTC['bps_jtc_comment_form_input'] != '') { echo $BPSoptionsJTC['bps_jtc_comment_form_input']; } else { echo 'position:relative;top:0px;left:0px;padding:0px 0px 0px 0px;margin:0px 0px 0px 0px;'; } ?>" /><br /><br />
967
+
968
+ <input type="submit" name="Submit-Security-Log-Options-JTC" class="button bps-button" style="margin-top:5px;" value="<?php esc_attr_e('Save Options', 'bulletproof-security') ?>" onclick="return confirm('<?php $text = __('Click OK to Proceed or click Cancel.', 'bulletproof-security'); echo $text; ?>')"/>
969
+ </form><br />
970
+ </div>
971
+
972
+ <?php } ?>
973
+
974
+ </td>
975
+ </tr>
976
+ </table>
977
+
978
+ </div>
979
+
980
  <?php if ( is_multisite() && $blog_id != 1 ) { echo '<div style="margin:0px 0px 0px 0px;"></div>'; } else { ?>
981
 
982
+ <div id="bps-tabs-3" class="bps-tab-page">
983
 
984
  <table width="100%" border="0" cellspacing="0" cellpadding="0" class="bps-help_faq_table">
985
  <tr>
988
  <tr>
989
  <td class="bps-table_cell_help">
990
 
991
+ <h3 style="margin:0px 0px 5px 0px;"><?php _e('Idle Session Logout|Auth Cookie Expiration', 'bulletproof-security'); ?> <button id="bps-open-modal3" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
992
 
993
+ <div id="bps-modal-content3" class="bps-dialog-hide" title="<?php _e('Idle Session Logout|Auth Cookie Expiration', 'bulletproof-security'); ?>">
994
 
995
  <table width="100%" border="0" cellspacing="0" cellpadding="0" class="bps-readme-table">
996
  <tr>
1007
  <?php _e('ISL and ACE Forum Topic', 'bulletproof-security'); ?></a></strong><br /><br />
1008
 
1009
  <?php
1010
+ echo $bps_modal_content3;
1011
  $text = '<strong>'.__('The Help & FAQ tab pages contain help links.', 'bulletproof-security').'</strong>';
1012
  echo $text;
1013
  ?>
1088
 
1089
  <div id="Idle-Session-Logout">
1090
 
1091
+ <form name="IdleSessionLogout" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/login/login.php#bps-tabs-3' ); ?>" method="post">
1092
  <?php wp_nonce_field('bps_isl_logout'); ?>
1093
  <?php $BPS_ISL_options = get_option('bulletproof_security_options_idle_session'); ?>
1094
 
1260
  }
1261
  ?>
1262
 
1263
+ <form name="ACELogout" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/login/login.php#bps-tabs-3' ); ?>" method="post">
1264
  <?php wp_nonce_field('bps_auth_cookie_expiration'); ?>
1265
  <?php $BPS_ACE_options = get_option('bulletproof_security_options_auth_cookie'); ?>
1266
 
1345
 
1346
  <?php } ?>
1347
 
1348
+ <div id="bps-tabs-4" class="bps-tab-page">
1349
 
1350
  <table width="100%" border="0" cellspacing="0" cellpadding="0" class="bps-help_faq_table">
1351
  <tr>
admin/login/lsm-help-text.php CHANGED
@@ -7,9 +7,18 @@ if ( ! current_user_can('manage_options') ) {
7
  }
8
 
9
  /** Login Security & Monitoring **/
10
- $bps_modal_content1 = '<strong>'.__('Click both Save Options buttons to save the best pre-selected Login Security settings or choose your own Login Security option settings.', 'bulletproof-security').'</strong><br><br><strong>'.__('What to do if your User Account is locked and you are unable to login to your website', 'bulletproof-security').'</strong><br>'.__('Use FTP or your web host control panel file manager and rename the /bulletproof-security plugin folder name to /_bulletproof-security. Log into your website. Rename the /_bulletproof-security plugin folder name back to /bulletproof-security. Go to the BPS Login Security page and unlock your User Account.', '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').'<br><br><strong>'.__('Max Login Attempts: ', 'bulletproof-security').'</strong><br>'.__('Type in the maximum number of failed login attempts allowed before a User Account is automatically Locked out. After making any setting changes click the Save Options button to save your new option settings.', 'bulletproof-security').'<br><br><strong>'.__('NOTE: ', 'bulletproof-security').'</strong>'.__('The Max Login Attempts setting range is from 1 - 10. Minimum is 1 failed login attempt - Maximum is 10 failed login attempts. Setting this to 1 failed login attempt is NOT recommended. The default is 3 failed login attempts before locking the User Account.', 'bulletproof-security').'<br><br><strong>'.__('Automatic Lockout Time: ', 'bulletproof-security').'</strong><br>'.__('Type in the number of minutes that you would like the User Account to be locked out for when the maximum number of failed login attempts have been made. After making any setting changes click the Save Options button to save your new option settings.', 'bulletproof-security').'<br><br><strong>'.__('Manual Lockout Time: ', 'bulletproof-security').'</strong><br>'.__('Type in the number of minutes that you would like the User Account to be locked out for when you manually lock a User Account using Lock checkbox options in the Dynamic Login Security form. After making any setting changes click the Save Options button to save your new option settings.', 'bulletproof-security').'<br><br><strong>'.__('Max DB Rows To Show: ', 'bulletproof-security').'</strong><br>'.__('Type in the maximum number of database rows that you would like to display in the Dynamic Login Security form. Leaving this text box blank means display all database rows. After making any setting changes click the Save Options button to save your new option settings.', 'bulletproof-security').'<br><br><strong>'.__('Enable Login Security for WooCommerce:', 'bulletproof-security').'</strong><br>'.__('Check this checkbox if you have the WooCommerce plugin installed if you would like to use BPS Login Security on the WooCommerce custom login page. BPS Login Security will still continue to work normally on the standard WordPress Login page when you check this checkbox. This checkbox option setting is not for turning Login Security On or Off if you are using WooCommerce. Use the Login Security Turn On|Turn Off option to turn Login Security On or Off.', 'bulletproof-security').'<br><br><strong>'.__('Turn On|Turn Off: ', 'bulletproof-security').'</strong><br>'.__('Turn On Login Security or Turn Off Login Security or Turn Off Login Security and Use the Password Reset Option ONLY. The Turn Off Login Security|Use Password Reset Option ONLY setting means that all Login Security features are turned Off except for the Password Reset Option, which can be used independently by itself. After making any setting changes click the Save Options button to save your new option settings.', 'bulletproof-security').'<br><br><strong>'.__('Logging Options: ', 'bulletproof-security').'</strong><br>'.__('You can choose to Log All User Account Logins or Log Only User Account Lockouts. After making any setting changes click the Save Options button to save your new option settings. ', 'bulletproof-security').'<strong>'.__('Important Note: ', 'bulletproof-security').'</strong>'.__('If you switch the Logging Options: Log All Account Logins to Log Only Account Lockouts then be sure to delete any locked user accounts that you want to allow to be able to login or those Users will not be able to login until you delete those locked User Accounts.', 'bulletproof-security').'<br><br><strong>'.__('Error Messages: ', 'bulletproof-security').'</strong><br><br><strong>'.__('Standard WP Login Errors: ', 'bulletproof-security').'</strong>'.__('will display the normal WP login errors. Example1: ERROR: The password you entered for the username X is incorrect. BPS Example2: ERROR: This user account has been locked until May 14, 2013 9:31 am due to too many failed login attempts. You can login again after the Lockout Time above has expired.', 'bulletproof-security').'<br><br><strong>'.__('User|Pass Invalid Entry Error: ', 'bulletproof-security').'</strong>'.__('will display a generic Invalid Entry error message instead of displaying normal WP login errors for incorrect username or incorrect password, but if a user account is locked out then the BPS timestamp and Lockout Time error message will be displayed. Example: ERROR: Invalid Entry for either incorrect username or incorrect password. BPS Example2: ERROR: This user account has been locked until May 14, 2013 9:31 am due to too many failed login attempts. You can login again after the Lockout Time above has expired.', 'bulletproof-security').'<br><br><strong>'.__('User|Pass|Lock Invalid Entry Error: ', 'bulletproof-security').'</strong>'.__('will display a generic Invalid Entry error message instead of displaying normal WP login errors for incorrect username, incorrect password and when the user account is locked out - the BPS Lockout Time error message will NOT be displayed. ', 'bulletproof-security').'<br><strong>'.__('CAUTION: ', 'bulletproof-security').'</strong>'.__('If the user account is locked out then no indication will be given that the user account is locked out and only a generic ERROR: Invalid Entry message will be displayed.', 'bulletproof-security').'<br><br><strong>'.__('Attempts Remaining: ', 'bulletproof-security').'</strong><br>'.__('You can choose to display a "Login Attempts Remaining X" message when an incorrect password is entered. X is the number of login attempts left/remaining before the User Account is locked. After making any setting changes click the Save Options button to save your new option settings.', 'bulletproof-security').'<br><br><strong>'.__('Password Reset: ', 'bulletproof-security').'</strong><br>'.__('The Enable Password Reset option will allow the normal WP Lost Password link to be displayed and allow locked out users to reset their passwords. The Disable Password Reset Frontend Only option disables the WP Login reset password feature and displays this error message - Password reset is not allowed for this user. This error message is displayed for valid or invalid user accounts or email addresses. In other words, there is no indication of whether or not a valid username or email address is being entered. This of course disables a lot of cool WordPress login features, but if you want complete Login Stealth Mode then this is the option for you. Disable Password Reset Frontend & Backend disables password reset on the frontend and backend (WP Dashboard) of your website.', 'bulletproof-security').'<br><br><strong>'.__('Sort DB Rows: ', 'bulletproof-security').'</strong><br>'.__('The Ascending Show Oldest Login First option displays logins from the oldest logins to your site to the newest logins to your site. The Descending Show Newest Login First option displays logins from the newest logins to your site to the oldest logins to your site. Example usage: Enter 50 for the Max DB Rows To Show option, which will show a maximum of 50 database rows/logins to your site and set Sort DB Rows option to Descending Show Newest Login First. You will see the last 50 most current/newest logins to your site in descending order.', 'bulletproof-security').'<br><br><strong>'.__('Search feature: ', 'bulletproof-security').'</strong><br>'.__('The search feature allows you to search all of the Login Security database rows. To search for all Locked User accounts enter Locked, to search for a username enter that username, to search for an IP address enter that IP address, etc.', 'bulletproof-security').'<br><br><strong>'.__('Export|Download Login Security Table Tool:', 'bulletproof-security').'</strong><br>'.__('The Export|Download Login Security Table tool exports (copies) the Login Security Table into the lsm-master.zip file, which you can then download to your computer by clicking the Download Zip Export button displayed in the Login Security Table Export success message. The lsm-master.zip file contains the lsm-master.csv file. The CSV (Comma Separated Values) file format can be opened with Microsoft Excel or other applications that can open/use CSV files. If you want to dump/export the Login Security Table in SQL format then use BPS DB Backup and dump/export the BPS Login Security Database Table: xx_bpspro_login_security', 'bulletproof-security').'<br><br><strong>'.__('The Dynamic Login Security Form: ', 'bulletproof-security').'</strong><br>'.__('You have 3 options: Lock, Unlock or Delete database rows. The Login Security database table is hooked into the WordPress Users database table, but they are 2 completely separate database tables. If you lock a User Account then BPS Pro will enforce that lock on that User Account and the User will not be able to log in. If you unlock a User Account then the User will be able to login. Deleting database rows in the Login Security database table does NOT delete the User Account from the WordPress Users database table. When you delete a User Account it is pretty much the same thing as unlocking a User Account. To delete actual User Accounts you would go to the WordPress Users page and delete that User Account.', 'bulletproof-security').'<br><br><strong>'.__('BPS Video Tutorial links can be found in the Help & FAQ pages.', 'bulletproof-security').'</strong>';
11
 
 
 
 
 
 
 
 
 
 
12
  /** Idle Session Logout|Auth Cookie Expiration **/
13
- $bps_modal_content2 = '<strong>'.__('Idle Session Logout (ISL) General Info:', 'bulletproof-security').'</strong><br>'.__('Idle Session Logout (ISL) can be considered a "soft" setting vs ACE being a "hard" setting. 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.', 'bulletproof-security').'<br><br>'.__('If you set the Idle Session Logout Time to 60 minutes and the User is idle/inactive for 10 minutes and becomes active again then the Idle Session Logout Time starts all over again/is reset to 60 minutes. If a User is idle/inactive for 60 continuous minutes then that User will be automatically logged out of the site and redirected to the BPS Idle Session Logout Page.', 'bulletproof-security').'<br><br>'.__('When an idle/inactive User is logged out of the site they are redirected to the BPS Idle Session Logout Page URL if their Browser is still open. If the User\'s Browser is still open and the User is on another Browser tab window then the Browser tab window where they are logged into your site will be redirected to the BPS Idle Session Logout Page URL. If the User has closed their Browser without logging out of your site then that User will not be logged out of your site. You can use ACE to log User\'s out of your site whether or not they have closed their Browser. Idle Session Logouts are logged in the BPS Security Log file.', 'bulletproof-security').'<br><br><strong><font color="blue">'.__('After making any option setting changes click the Save Options button to save your new option settings. To reset ISL option settings back to the default ISL option settings, delete any custom values/entries you have entered in any text/textarea boxes and click the Save Options button.', 'bulletproof-security').'</font></strong><br><br><strong>'.__('Turn On|Turn Off:', 'bulletproof-security').'</strong><br>'.__('ISL is Turned Off by default. Select ISL On to turn ISL On. Select ISL Off to turn ISL Off.', 'bulletproof-security').'<br><br><strong>'.__('Idle Session Logout Time in Minutes:', 'bulletproof-security').'</strong><br>'.__('Enter the time in minutes for when an idle/inactive User should be logged out of your site. Example: Entering 60 will automatically logout Users who have been idle/inactive for 60 continuous minutes. Only enter numbers and not any other characters. If you accidently enter a blank value for the Idle Session Logout Time then ISL will be disabled automatically.', 'bulletproof-security').'<br><br><strong>'.__('Idle Session Logout Page URL:', 'bulletproof-security').'</strong><br>'.__('When an idle/inactive User is logged out of your site they are redirected to the BPS Idle Session Logout Page URL by default. You can choose to redirect logged out users to any URL that you want to redirect them to by entering the URL in this text box. Example: If you enter the URL path to your WP Login page then user\'s will be redirected to your WP Login page instead of the default BPS Idle Session Logout Page.', 'bulletproof-security').'<br><br><strong>'.__('Idle Session Logout Page Login URL:', 'bulletproof-security').'</strong><br>'.__('This option displays a clickable Login URL/link to your WP Login page. If your Login page URL is different than the default URL that you see displayed in the Idle Session Logout Page Login URL text box then change the URL to the URL for your site\'s Login page. You can choose not to display a Login URL/link by entering "No" (without quotes) if you do not want a Login URL/link displayed.', 'bulletproof-security').'<br><br><strong>'.__('Idle Session Logout Exclude URLs|URIs:', 'bulletproof-security').'</strong><br>'.__('This option allows you to exclude any pages or posts that you do not want ISL to check/monitor. Important: The URI path is everything after the root portion or your domain URL. Example: If the page/post you want to exclude is here: www.example.com/some-post/ then the URI Exclusion that you would use/enter is: /some-post/. If the page/post you want to exclude is here: www.example.com/category/some-post/ then the URI Exclusion that you would use/enter is: /category/some-post/.', 'bulletproof-security').'<br><br><strong>'.__('Idle Session Logout Page Custom Message:', 'bulletproof-security').'</strong><br>'.__('You can either use the default BPS ISL message/text by leaving the textarea box blank or you can enter your own custom ISL message/text in this textarea box that you want displayed to logged out users. Your custom message will be displayed on the default BPS ISL Logout page unless you choose to redirect users to a different URL/link using the Idle Session Logout Page URL option setting.', 'bulletproof-security').'<br><br><strong>'.__('Idle Session Logout Page Custom CSS Style:', 'bulletproof-security').'</strong><br>'.__('You can either use the default BPS CSS Style code or enter your own custom CSS Style customizations.', 'bulletproof-security').'<br><br><strong>'.__('User Account Exceptions:', 'bulletproof-security').'</strong><br>'.__('To create exceptions for User Account names enter User Account names (case-insensitive) separated by a comma and a space: johnDoe, janeDoe. ISL will be turned Off/disabled for any User Account names that you add in this text box. User Account Exceptions override the User Roles option setting. Example: If johnDoe is an Administrator and you have enabled ISL for the Administrator User Role and you have added johnDoe in the User Account Exceptions text box then the johnDoe User Account Exception will override the Administrator User Role option setting and ISL will still be disabled for the johnDoe User Account. It is recommended that you add your User Account name, but if you also want to be automatically logged out when your User Account is idle/inactive then do not add your User Account name.', 'bulletproof-security').'<br><br><strong>'.__('Enable|Disable Idle Session Logouts For These User Roles:', 'bulletproof-security').'</strong><br>'.__('Checking a User Role checkbox will enable ISL for all Users with that User Role (See User Account Exceptions). Unchecking a User Role checkbox will disable ISL for all Users with that User Role. Example: If you only check the Subscriber checkbox then ISL will only be enabled for Users that are Subscribers. If your website is using/has Custom User Roles, your Custom User Roles will be displayed in a scrollable box below the standard WP User Roles: Administrator, Editor, Author, Contributor, Subscriber.', 'bulletproof-security').'<br><br><strong>'.__('Enable|Disable Idle Session Logouts For TinyMCE Editors:', 'bulletproof-security').'</strong><br>'.__('Please read all of the TinyMCE Editor Important Notes below. Checking the Enable|Disable ISL For TinyMCE Editor checkbox will disable ISL for any/all pages that have a TinyMCE Editor on them.', 'bulletproof-security').'<br><br><strong>'.__('TinyMCE Editor Important Notes:', 'bulletproof-security').'</strong><br><br><strong>'.__('ISL and TinyMCE javascript Event Listeners:', 'bulletproof-security').'</strong><br>'.__('ISL uses javascript Event Listeners to monitor User 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. The TinyMCE Editor also uses javascript Event Listeners in the Visual Editor window. ISL can monitor User activity in the Text tab Editor window and the Editor Toolbar buttons or menus for any of the ISL events listed above, but cannot monitor any User activity in the TinyMCE Visual tab Editor window.', 'bulletproof-security').'<br><br><strong>'.__('TinyMCE Editor on WordPress Post, Page and Comments pages:', 'bulletproof-security').'</strong><br>'.__('This example is using an Idle Session Logout Time of 60 minutes. If the User is typing content/text for 60 continuous minutes in the WordPress Post, Page or Comments TinyMCE Visual Editor window and has not clicked or moved their mouse outside of the TinyMCE Visual Editor window for 60 continuous minutes and the Enable|Disable ISL For TinyMCE Editor checkbox option is not checked to disable ISL for TinyMCE Editors, then the User will see the native WP Confirm Navigation alert popup window with buttons to either Leave this Page or Stay on this Page. Clicking the Stay on this Page button resets the ISL timer again to 60 minutes and the User will not lose any of their content/text.', 'bulletproof-security').'<br><br><strong>'.__('TinyMCE Editor Instances used in other plugins and themes:', 'bulletproof-security').'</strong><br>'.__('If another plugin or theme is using instances of the TinyMCE Editor, like BPS Maintenance Mode MMode Editor TinyMCE Editor instance for example, then if all of the same conditions stated above for the WordPress Post, Page and Comments pages TinyMCE Visual Editor are the same then instead of seeing the native WP Confirm Navigation alert popup window, the User will be logged out automatically and the User\'s content/text will not be saved. If you are using TinyMCE Editor Instances in another plugin or theme that Users can use to add/edit content/text and you do not want to risk a User being logged out and losing any of their content/text then check the Enable|Disable ISL For TinyMCE Editor checkbox to disable ISL on any pages that contain a TinyMCE Editor Instance.', 'bulletproof-security').'<br><br><strong>'.__('Auth Cookie Expiration (ACE) General Info:', 'bulletproof-security').'</strong><br>'.__('The WordPress Authentication Cookie Expiration (ACE) time can be considered a "hard" setting vs ISL being a "soft" setting. If you set the Cookie Expiration to 60 minutes then 60 consecutive minutes after a User has logged in, that user will be logged out automatically whether that User is idle/inactive or not. The WordPress Authentication Cookie Expiration (ACE) time is set when a User logs in. 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. The WordPress Authentication Cookie Expiration time is set/reset each time a User logs in. So if a User logs out and then logs back into the site then the Cookie Expiration time for that User is set again to whatever Auth Cookie Expiration Time that you choose or the WordPress default Cookie Expiration time if you do not use or turn On ACE.', 'bulletproof-security').'<br><br><strong>'.__('Turn On|Turn Off:', 'bulletproof-security').'</strong><br>'.__('ACE is Turned Off by default. Select ACE On to turn ACE On. Select ACE Off to turn ACE Off.', 'bulletproof-security').'<br><br><strong>'.__('Auth Cookie Expiration Time in Minutes:', 'bulletproof-security').'</strong><br>'.__('Enter the time in minutes for when a User should be logged out of your site. Example: Entering 720 will automatically logout Users who have been logged in for 720 consecutive minutes/12 hours. Only enter numbers and not any other characters. If you accidently enter a blank value for the for Auth Cookie Expiration Time or Remember Me Auth Cookie Expiration Time then ACE will use the default WordPress Authentication Cookie Expiration time.', 'bulletproof-security').'<br><br><strong>'.__('Remember Me Auth Cookie Expiration Time in Minutes:', 'bulletproof-security').'</strong><br>'.__('Enter the time in minutes for when a User should be logged out of your site when the User has checked the Remember Me checkbox on the WordPress Login page. Example: Entering 720 will automatically logout Users who have been logged in for 720 consecutive minutes/12 hours. Only enter numbers and not any other characters. If you accidently enter a blank value for the for Auth Cookie Expiration Time or Remember Me Auth Cookie Expiration Time then ACE will use the default WordPress Authentication Cookie Expiration time.', 'bulletproof-security').'<br><br><strong>'.__('Enable|Disable Remember Me Checkbox:', 'bulletproof-security').'</strong><br>'.__('Checking the Disable & do not display the Remember Me checkbox option will disable and not display the Remember Me checkbox for everyone including you. If you want to set and control the WordPress Remember Me setting then use the Remember Me Auth Cookie Expiration Time in Minutes option setting instead and choose an amount of time you would like to use for the Cookie expiration time.', 'bulletproof-security').'<br><br><strong>'.__('User Account Exceptions:', 'bulletproof-security').'</strong><br>'.__('To create exceptions for User Account names enter User Account names (case-insensitive) separated by a comma and a space: johnDoe, janeDoe. Auth Cookie Expiration Time settings will not be applied to any User Account names that you add in this text box and these User Accounts will instead use the default WordPress Authentication Cookie Expiration time. User Account Exceptions override the User Roles option setting. Example: If johnDoe is an Administrator and you have enabled ACE for the Administrator User Role and you have added johnDoe in the User Account Exceptions text box then the johnDoe User Account Exception will override the Administrator User Role option setting and the johnDoe User Account will use the default WordPress Authentication Cookie Expiration time. It is recommended that you add your User Account name, but if you also want to be automatically logged out for the Auth Cookie Expiration time that you choose then do not add your User Account name.', 'bulletproof-security').'<br><br><strong>'.__('Enable|Disable Auth Cookie Expiration Time For These User Roles:', 'bulletproof-security').'</strong><br>'.__('Checking a User Role checkbox will apply the Auth Cookie Expiration Time that you choose for all Users with that User Role (See User Account Exceptions). Unchecking a User Role checkbox will apply the default WordPress Authentication Cookie Expiration time for all Users with that User Role. Example: If you only check the Subscriber checkbox then ACE will only apply the Auth Cookie Expiration Time setting that you choose for Users that are Subscribers. If your website is using/has Custom User Roles, your Custom User Roles will be displayed in a scrollable box below the standard WP User Roles: Administrator, Editor, Author, Contributor, Subscriber.', 'bulletproof-security').'<br><br>';
14
 
15
  ?>
7
  }
8
 
9
  /** Login Security & Monitoring **/
10
+ $bps_modal_content1 = '<strong>'.__('Click both Save Options buttons to save the best pre-selected Login Security settings or choose your own Login Security option settings.', 'bulletproof-security').'</strong><br><br><strong>'.__('What to do if your User Account is locked and you are unable to login to your website', 'bulletproof-security').'</strong><br>'.__('Use FTP or your web host control panel file manager and rename the /bulletproof-security plugin folder name to /_bulletproof-security. Log into your website. Rename the /_bulletproof-security plugin folder name back to /bulletproof-security. Go to the BPS Login Security page and unlock your User Account.', 'bulletproof-security').'<br><br><strong>'.__('Note: ', 'bulletproof-security').'</strong>'.__('Login Security Email Alert and Log file option settings are on the Email|Log Settings page.', 'bulletproof-security').'<br><br><strong>'.__('Max Login Attempts: ', 'bulletproof-security').'</strong><br>'.__('Type in the maximum number of failed login attempts allowed before a User Account is automatically Locked out. After making any setting changes click the Save Options button to save your new option settings.', 'bulletproof-security').'<br><br><strong>'.__('NOTE: ', 'bulletproof-security').'</strong>'.__('The Max Login Attempts setting range is from 1 - 10. Minimum is 1 failed login attempt - Maximum is 10 failed login attempts. Setting this to 1 failed login attempt is NOT recommended. The default is 3 failed login attempts before locking the User Account.', 'bulletproof-security').'<br><br><strong>'.__('Automatic Lockout Time: ', 'bulletproof-security').'</strong><br>'.__('Type in the number of minutes that you would like the User Account to be locked out for when the maximum number of failed login attempts have been made. After making any setting changes click the Save Options button to save your new option settings.', 'bulletproof-security').'<br><br><strong>'.__('Manual Lockout Time: ', 'bulletproof-security').'</strong><br>'.__('Type in the number of minutes that you would like the User Account to be locked out for when you manually lock a User Account using Lock checkbox options in the Dynamic Login Security form. After making any setting changes click the Save Options button to save your new option settings.', 'bulletproof-security').'<br><br><strong>'.__('Max DB Rows To Show: ', 'bulletproof-security').'</strong><br>'.__('Type in the maximum number of database rows that you would like to display in the Dynamic Login Security form. Leaving this text box blank means display all database rows. After making any setting changes click the Save Options button to save your new option settings.', 'bulletproof-security').'<br><br><strong>'.__('Enable Login Security for WooCommerce (BPS Pro Only):', 'bulletproof-security').'</strong><br>'.__('Check this checkbox if you have the WooCommerce plugin installed if you would like to use BPS Login Security on the WooCommerce custom login page. BPS Login Security will still continue to work normally on the standard WordPress Login page when you check this checkbox. This checkbox option setting is not for turning Login Security On or Off if you are using WooCommerce. Use the Login Security Turn On|Turn Off option to turn Login Security On or Off.', 'bulletproof-security').'<br><br><strong>'.__('Turn On|Turn Off: ', 'bulletproof-security').'</strong><br>'.__('Turn On Login Security or Turn Off Login Security or Turn Off Login Security and Use the Password Reset Option ONLY. The Turn Off Login Security|Use Password Reset Option ONLY setting means that all Login Security features are turned Off except for the Password Reset Option, which can be used independently by itself. After making any setting changes click the Save Options button to save your new option settings.', 'bulletproof-security').'<br><br><strong>'.__('Logging Options: ', 'bulletproof-security').'</strong><br>'.__('You can choose to Log All User Account Logins or Log Only User Account Lockouts. After making any setting changes click the Save Options button to save your new option settings. ', 'bulletproof-security').'<strong>'.__('Important Note: ', 'bulletproof-security').'</strong>'.__('If you switch the Logging Options: Log All Account Logins to Log Only Account Lockouts then be sure to delete any locked user accounts that you want to allow to be able to login or those Users will not be able to login until you delete those locked User Accounts.', 'bulletproof-security').'<br><br><strong>'.__('Error Messages: ', 'bulletproof-security').'</strong><br><br><strong>'.__('Standard WP Login Errors: ', 'bulletproof-security').'</strong>'.__('will display the normal WP login errors. Example1: ERROR: The password you entered for the username X is incorrect. BPS Example2: ERROR: This user account has been locked until May 14, 2013 9:31 am due to too many failed login attempts. You can login again after the Lockout Time above has expired.', 'bulletproof-security').'<br><br><strong>'.__('User|Pass Invalid Entry Error: ', 'bulletproof-security').'</strong>'.__('will display a generic Invalid Entry error message instead of displaying normal WP login errors for incorrect username or incorrect password, but if a user account is locked out then the BPS timestamp and Lockout Time error message will be displayed. Example: ERROR: Invalid Entry for either incorrect username or incorrect password. BPS Example2: ERROR: This user account has been locked until May 14, 2013 9:31 am due to too many failed login attempts. You can login again after the Lockout Time above has expired.', 'bulletproof-security').'<br><br><strong>'.__('User|Pass|Lock Invalid Entry Error: ', 'bulletproof-security').'</strong>'.__('will display a generic Invalid Entry error message instead of displaying normal WP login errors for incorrect username, incorrect password and when the user account is locked out - the BPS Lockout Time error message will NOT be displayed. ', 'bulletproof-security').'<br><strong>'.__('CAUTION: ', 'bulletproof-security').'</strong>'.__('If the user account is locked out then no indication will be given that the user account is locked out and only a generic ERROR: Invalid Entry message will be displayed.', 'bulletproof-security').'<br><br><strong>'.__('Attempts Remaining: ', 'bulletproof-security').'</strong><br>'.__('You can choose to display a "Login Attempts Remaining X" message when an incorrect password is entered. X is the number of login attempts left/remaining before the User Account is locked. After making any setting changes click the Save Options button to save your new option settings.', 'bulletproof-security').'<br><br><strong>'.__('Password Reset: ', 'bulletproof-security').'</strong><br>'.__('The Enable Password Reset option will allow the normal WP Lost Password link to be displayed and allow locked out users to reset their passwords. The Disable Password Reset Frontend Only option disables the WP Login reset password feature and displays this error message - Password reset is not allowed for this user. This error message is displayed for valid or invalid user accounts or email addresses. In other words, there is no indication of whether or not a valid username or email address is being entered. This of course disables a lot of cool WordPress login features, but if you want complete Login Stealth Mode then this is the option for you. Disable Password Reset Frontend & Backend disables password reset on the frontend and backend (WP Dashboard) of your website.', 'bulletproof-security').'<br><br><strong>'.__('Sort DB Rows: ', 'bulletproof-security').'</strong><br>'.__('The Ascending Show Oldest Login First option displays logins from the oldest logins to your site to the newest logins to your site. The Descending Show Newest Login First option displays logins from the newest logins to your site to the oldest logins to your site. Example usage: Enter 50 for the Max DB Rows To Show option, which will show a maximum of 50 database rows/logins to your site and set Sort DB Rows option to Descending Show Newest Login First. You will see the last 50 most current/newest logins to your site in descending order.', 'bulletproof-security').'<br><br><strong>'.__('Search feature: ', 'bulletproof-security').'</strong><br>'.__('The search feature allows you to search all of the Login Security database rows. To search for all Locked User accounts enter Locked, to search for a username enter that username, to search for an IP address enter that IP address, etc.', 'bulletproof-security').'<br><br><strong>'.__('Export|Download Login Security Table Tool:', 'bulletproof-security').'</strong><br>'.__('The Export|Download Login Security Table tool exports (copies) the Login Security Table into the lsm-master.zip file, which you can then download to your computer by clicking the Download Zip Export button displayed in the Login Security Table Export success message. The lsm-master.zip file contains the lsm-master.csv file. The CSV (Comma Separated Values) file format can be opened with Microsoft Excel or other applications that can open/use CSV files. If you want to dump/export the Login Security Table in SQL format then use BPS DB Backup and dump/export the BPS Login Security Database Table: xx_bpspro_login_security', 'bulletproof-security').'<br><br><strong>'.__('The Dynamic Login Security Form: ', 'bulletproof-security').'</strong><br>'.__('You have 3 options: Lock, Unlock or Delete database rows. The Login Security database table is hooked into the WordPress Users database table, but they are 2 completely separate database tables. If you lock a User Account then BPS Pro will enforce that lock on that User Account and the User will not be able to log in. If you unlock a User Account then the User will be able to login. Deleting database rows in the Login Security database table does NOT delete the User Account from the WordPress Users database table. When you delete a User Account it is pretty much the same thing as unlocking a User Account. To delete actual User Accounts you would go to the WordPress Users page and delete that User Account.', 'bulletproof-security').'<br><br><strong>'.__('BPS Video Tutorial links can be found in the Help & FAQ pages.', 'bulletproof-security').'</strong>';
11
 
12
+ if ( is_multisite() && $blog_id != 1 ) {
13
+ $networkMUJTCText = '';
14
+ } else {
15
+ $networkMUJTCText = '<br><br><strong>'.__('JTC Logging (BPS Pro Only): ', 'bulletproof-security').'</strong><br>'.__('Turn On or Turn Off JTC logging. JTC log entries are logged in the BPS Pro Security Log file. The JTC log entries include the Form name for whichever Form the CAPTCHA was not successfully entered, CAPTCHA value that was entered, BOT/HUMAN value, Username/Display Name (Comment Form only) and all the other standard Security Log entry values/fields.', 'bulletproof-security');
16
+ }
17
+
18
+ /** JTC-Lite stripped down version of the BEAST - BPS Pro JTC Anti-Spam|Anti-Hacker **/
19
+ $bps_modal_content2 = '<strong>'.__('If you forget what the CAPTCHA is and cannot login to your website use FTP or your web host control panel file manager and rename the /bulletproof-security/ plugin folder name to /_bulletproof-security/. Login to your website, go to the BPS JTC-Lite page and correct the CAPTCHA issue/problem. Rename the /_bulletproof-security/ plugin folder name back to /bulletproof-security/.', 'bulletproof-security').'</strong><br><br><strong>'.__('JTC-Lite Manual Setup Steps', 'bulletproof-security').'</strong><br>'.__('1. Enter a user friendly CAPTCHA in the JTC CAPTCHA text box.', 'bulletproof-security').'<br>'.__('2. Copy and paste the CAPTCHA you entered in the JTC CAPTCHA text box into the JTC ToolTip text box.', 'bulletproof-security').'<br>'.__('3. Either keep this default text "Hover or click the text box below" that will be displayed on all your forms or edit this text and add the message you want to add.', 'bulletproof-security').'<br>'.__('4. Check the Login Form checkbox and click the Save Options button.', 'bulletproof-security').'<br><br><strong>'.__('General Info about JTC-Lite', 'bulletproof-security').'</strong><br>'.__('JTC-Lite protects the WordPress Login form against automated SpamBot and HackerBot Brute Force Login attacks. Prevents User Accounts from being locked repeatedly by constant Brute Force Login attacks on your Login page. If you would like to protect all of your WordPress forms get the full version of JTC - BPS Pro JTC Anti-Spam|Anti-Hacker.', 'bulletproof-security').'<br><br><strong>'.__('JTC CAPTCHA: ', 'bulletproof-security').'</strong><br>'.__('This is the CAPTCHA that users will enter to Login to your website. You can use any numbers or characters and spaces in the CAPTCHA. You can even use HTML code characters except for these HTML code characters: < > \' " &. You can use a phrase for the CAPTCHA or it can be a single word or you can use your own original combination of words, numbers and HTML characters.', 'bulletproof-security').'<br><br><strong>'.__('Note: ', 'bulletproof-security').'</strong>'.__('It is recommended that you make your CAPTCHA user friendly, simple, clear and easy to understand for your users.', 'bulletproof-security').'<br><br><strong>'.__('JTC ToolTip: ', 'bulletproof-security').'</strong><br>'.__('This is the jQuery ToolTip message that is displayed to users when they hover or click on the CAPTCHA text box. This is where you will tell your users what they need to enter for the CAPTCHA. It can be a phrase, complete this sentence, a Hint or simply just Type/Enter: xxxxx or you can get as creative as you want to get with your jQuery ToolTip. Randomness is what makes a CAPTCHA very effective. JTC is designed with CAPTCHA randomness capability as one of its primary features.', 'bulletproof-security').'<br><br><strong>'.__('JTC Title|Text: ', 'bulletproof-security').'</strong><br>'.__('This is the text that is displayed to users above the CAPTCHA text box/Form Field.', 'bulletproof-security').$networkMUJTCText.'<br><br><strong>'.__('Enable JTC for WooCommerce (BPS Pro Only):', 'bulletproof-security').'</strong><br>'.__('Check this checkbox if you have the WooCommerce plugin installed if you would like to use BPS JTC on the WooCommerce custom login page. BPS JTC will still continue to work normally on the standard WordPress Forms: Login, Register, Lost Password, Comment, BuddyPress Register and BuddyPress Sidebar Login Forms when you check this checkbox. This checkbox option setting is not for turning JTC On or Off if you are using WooCommerce. Use the JTC Enable|Disable JTC For These Forms option checkboxes to enable or disable JTC on each of your Forms.', 'bulletproof-security').'<br><br><strong>'.__('Enable|Disable JTC For These Forms (Only the Login Form CAPTCHA is available in BPS Free): ', 'bulletproof-security').'</strong><br>'.__('Checking a Form checkbox will display a CAPTCHA on that Form to all users. Unchecking a Form checkbox will remove the CAPTCHA on that Form for all users. The Comment Form is a special case and the CAPTCHA can be displayed based on the User Roles that you choose. See the Comment Form help section below.', 'bulletproof-security').'<br><br><strong>'.__('Comment Form: (only applies if Comment Form CAPTCHA is enabled/checked) ', 'bulletproof-security').'<br>'.__('Enable|Disable JTC For These Registered/Logged In User Roles (BPS Pro Only:', 'bulletproof-security').'</strong><br>'.__('Users must be logged into your website for the Comment Form User Roles to work. If you do not require that users are registered and logged in to post comments on your website then these JTC options will not have any effect. These options are only for registered and logged in users and only for your Comment Form if you are using this WordPress Discussion setting: Users must be registered and logged in to comment. If you do not want to require that users are registered and logged in to comment then the JTC Comment Form CAPTCHA will still work as long as you have this WordPress Discussion setting checked: Comment author must fill out name and email.', 'bulletproof-security').'<br><br>'.__('Checking a User Role checkbox will display a CAPTCHA to all users with that User Role on your website\'s Comment Form. Unchecking a User Role checkbox will remove the CAPTCHA from displaying to users with that User Role on your website\'s Comment Form. If your website is using/has Custom User Roles, your Custom User Roles will be displayed in a scrollable box below the standard WP User Roles: Administrator, Editor, Author, Contributor, Subscriber.', 'bulletproof-security').'<br><br><strong>'.__('Comment Form CAPTCHA Error message (BPS Pro Only):', 'bulletproof-security').'</strong><br>'.__('The Default JTC Comment Form CAPTCHA error message is: <strong>ERROR</strong>: Incorrect JTC CAPTCHA Entered. Click your Browser\'s back button and re-enter the JTC CAPTCHA. You can change or add to the default error message. This error message only applies to the Comment Form CAPTCHA error message and does not affect or change any of the other Form CAPTCHA error messages.', 'bulletproof-security').'<br><br><strong>'.__('Comment Form: CSS Styling (BPS Pro Only)', 'bulletproof-security').'</strong><br>'.__('You can position the JTC Title|Text Form label and the JTC CAPTCHA Form Input text box by editing the CSS in these text boxes. By default the position of the JTC Title|Text label and the JTC CAPTCHA Form Input text box is below your Comment Form submit button. For CSS code styling examples (see Forum Help Links at the top of this Read Me help window).', 'bulletproof-security').'<br><br><strong>'.__('Comment Form Label (BPS Pro Only):', 'bulletproof-security').'</strong><br>'.__('This is the JTC Title|Text label above the Form Input text box.', 'bulletproof-security').'<br><strong>'.__('Comment Form Input Text Box (BPS Pro Only):', 'bulletproof-security').'</strong><br>'.__('This is the JTC CAPTCHA Form Input text box.', 'bulletproof-security').'<br><br><strong>'.__('Additional Brute Force CAPTCHA Option: ', 'bulletproof-security').'</strong><br>'.__('If you do not allow anyone else to log into your website then here is an example of how JTC could be used as an additional Brute Force Login Protection feature.', 'bulletproof-security').'<br><br>'.__('Example: You create a JTC CAPTCHA: My Example CAPTCHA, you either leave the JTC ToolTip: text box blank or you create a Hint for yourself - JTC ToolTip: My Example Hint. If your JTC ToolTip: text box is blank then the CAPTCHA will not be displayed - only you will know what the CAPTCHA is. If you create a personal Hint for yourself then only you will know what the answer to the Hint is.', 'bulletproof-security').'</strong>';
20
+
21
  /** Idle Session Logout|Auth Cookie Expiration **/
22
+ $bps_modal_content3 = '<strong>'.__('Idle Session Logout (ISL) General Info:', 'bulletproof-security').'</strong><br>'.__('Idle Session Logout (ISL) can be considered a "soft" setting vs ACE being a "hard" setting. 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.', 'bulletproof-security').'<br><br>'.__('If you set the Idle Session Logout Time to 60 minutes and the User is idle/inactive for 10 minutes and becomes active again then the Idle Session Logout Time starts all over again/is reset to 60 minutes. If a User is idle/inactive for 60 continuous minutes then that User will be automatically logged out of the site and redirected to the BPS Idle Session Logout Page.', 'bulletproof-security').'<br><br>'.__('When an idle/inactive User is logged out of the site they are redirected to the BPS Idle Session Logout Page URL if their Browser is still open. If the User\'s Browser is still open and the User is on another Browser tab window then the Browser tab window where they are logged into your site will be redirected to the BPS Idle Session Logout Page URL. If the User has closed their Browser without logging out of your site then that User will not be logged out of your site. You can use ACE to log User\'s out of your site whether or not they have closed their Browser. Idle Session Logouts are logged in the BPS Security Log file.', 'bulletproof-security').'<br><br><strong><font color="blue">'.__('After making any option setting changes click the Save Options button to save your new option settings. To reset ISL option settings back to the default ISL option settings, delete any custom values/entries you have entered in any text/textarea boxes and click the Save Options button.', 'bulletproof-security').'</font></strong><br><br><strong>'.__('Turn On|Turn Off:', 'bulletproof-security').'</strong><br>'.__('ISL is Turned Off by default. Select ISL On to turn ISL On. Select ISL Off to turn ISL Off.', 'bulletproof-security').'<br><br><strong>'.__('Idle Session Logout Time in Minutes:', 'bulletproof-security').'</strong><br>'.__('Enter the time in minutes for when an idle/inactive User should be logged out of your site. Example: Entering 60 will automatically logout Users who have been idle/inactive for 60 continuous minutes. Only enter numbers and not any other characters. If you accidently enter a blank value for the Idle Session Logout Time then ISL will be disabled automatically.', 'bulletproof-security').'<br><br><strong>'.__('Idle Session Logout Page URL:', 'bulletproof-security').'</strong><br>'.__('When an idle/inactive User is logged out of your site they are redirected to the BPS Idle Session Logout Page URL by default. You can choose to redirect logged out users to any URL that you want to redirect them to by entering the URL in this text box. Example: If you enter the URL path to your WP Login page then user\'s will be redirected to your WP Login page instead of the default BPS Idle Session Logout Page.', 'bulletproof-security').'<br><br><strong>'.__('Idle Session Logout Page Login URL:', 'bulletproof-security').'</strong><br>'.__('This option displays a clickable Login URL/link to your WP Login page. If your Login page URL is different than the default URL that you see displayed in the Idle Session Logout Page Login URL text box then change the URL to the URL for your site\'s Login page. You can choose not to display a Login URL/link by entering "No" (without quotes) if you do not want a Login URL/link displayed.', 'bulletproof-security').'<br><br><strong>'.__('Idle Session Logout Exclude URLs|URIs:', 'bulletproof-security').'</strong><br>'.__('This option allows you to exclude any pages or posts that you do not want ISL to check/monitor. Important: The URI path is everything after the root portion or your domain URL. Example: If the page/post you want to exclude is here: www.example.com/some-post/ then the URI Exclusion that you would use/enter is: /some-post/. If the page/post you want to exclude is here: www.example.com/category/some-post/ then the URI Exclusion that you would use/enter is: /category/some-post/.', 'bulletproof-security').'<br><br><strong>'.__('Idle Session Logout Page Custom Message:', 'bulletproof-security').'</strong><br>'.__('You can either use the default BPS ISL message/text by leaving the textarea box blank or you can enter your own custom ISL message/text in this textarea box that you want displayed to logged out users. Your custom message will be displayed on the default BPS ISL Logout page unless you choose to redirect users to a different URL/link using the Idle Session Logout Page URL option setting.', 'bulletproof-security').'<br><br><strong>'.__('Idle Session Logout Page Custom CSS Style:', 'bulletproof-security').'</strong><br>'.__('You can either use the default BPS CSS Style code or enter your own custom CSS Style customizations.', 'bulletproof-security').'<br><br><strong>'.__('User Account Exceptions:', 'bulletproof-security').'</strong><br>'.__('To create exceptions for User Account names enter User Account names (case-insensitive) separated by a comma and a space: johnDoe, janeDoe. ISL will be turned Off/disabled for any User Account names that you add in this text box. User Account Exceptions override the User Roles option setting. Example: If johnDoe is an Administrator and you have enabled ISL for the Administrator User Role and you have added johnDoe in the User Account Exceptions text box then the johnDoe User Account Exception will override the Administrator User Role option setting and ISL will still be disabled for the johnDoe User Account. It is recommended that you add your User Account name, but if you also want to be automatically logged out when your User Account is idle/inactive then do not add your User Account name.', 'bulletproof-security').'<br><br><strong>'.__('Enable|Disable Idle Session Logouts For These User Roles:', 'bulletproof-security').'</strong><br>'.__('Checking a User Role checkbox will enable ISL for all Users with that User Role (See User Account Exceptions). Unchecking a User Role checkbox will disable ISL for all Users with that User Role. Example: If you only check the Subscriber checkbox then ISL will only be enabled for Users that are Subscribers. If your website is using/has Custom User Roles, your Custom User Roles will be displayed in a scrollable box below the standard WP User Roles: Administrator, Editor, Author, Contributor, Subscriber.', 'bulletproof-security').'<br><br><strong>'.__('Enable|Disable Idle Session Logouts For TinyMCE Editors:', 'bulletproof-security').'</strong><br>'.__('Please read all of the TinyMCE Editor Important Notes below. Checking the Enable|Disable ISL For TinyMCE Editor checkbox will disable ISL for any/all pages that have a TinyMCE Editor on them.', 'bulletproof-security').'<br><br><strong>'.__('TinyMCE Editor Important Notes:', 'bulletproof-security').'</strong><br><br><strong>'.__('ISL and TinyMCE javascript Event Listeners:', 'bulletproof-security').'</strong><br>'.__('ISL uses javascript Event Listeners to monitor User 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. The TinyMCE Editor also uses javascript Event Listeners in the Visual Editor window. ISL can monitor User activity in the Text tab Editor window and the Editor Toolbar buttons or menus for any of the ISL events listed above, but cannot monitor any User activity in the TinyMCE Visual tab Editor window.', 'bulletproof-security').'<br><br><strong>'.__('TinyMCE Editor on WordPress Post, Page and Comments pages:', 'bulletproof-security').'</strong><br>'.__('This example is using an Idle Session Logout Time of 60 minutes. If the User is typing content/text for 60 continuous minutes in the WordPress Post, Page or Comments TinyMCE Visual Editor window and has not clicked or moved their mouse outside of the TinyMCE Visual Editor window for 60 continuous minutes and the Enable|Disable ISL For TinyMCE Editor checkbox option is not checked to disable ISL for TinyMCE Editors, then the User will see the native WP Confirm Navigation alert popup window with buttons to either Leave this Page or Stay on this Page. Clicking the Stay on this Page button resets the ISL timer again to 60 minutes and the User will not lose any of their content/text.', 'bulletproof-security').'<br><br><strong>'.__('TinyMCE Editor Instances used in other plugins and themes:', 'bulletproof-security').'</strong><br>'.__('If another plugin or theme is using instances of the TinyMCE Editor, like BPS Maintenance Mode MMode Editor TinyMCE Editor instance for example, then if all of the same conditions stated above for the WordPress Post, Page and Comments pages TinyMCE Visual Editor are the same then instead of seeing the native WP Confirm Navigation alert popup window, the User will be logged out automatically and the User\'s content/text will not be saved. If you are using TinyMCE Editor Instances in another plugin or theme that Users can use to add/edit content/text and you do not want to risk a User being logged out and losing any of their content/text then check the Enable|Disable ISL For TinyMCE Editor checkbox to disable ISL on any pages that contain a TinyMCE Editor Instance.', 'bulletproof-security').'<br><br><strong>'.__('Auth Cookie Expiration (ACE) General Info:', 'bulletproof-security').'</strong><br>'.__('The WordPress Authentication Cookie Expiration (ACE) time can be considered a "hard" setting vs ISL being a "soft" setting. If you set the Cookie Expiration to 60 minutes then 60 consecutive minutes after a User has logged in, that user will be logged out automatically whether that User is idle/inactive or not. The WordPress Authentication Cookie Expiration (ACE) time is set when a User logs in. 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. The WordPress Authentication Cookie Expiration time is set/reset each time a User logs in. So if a User logs out and then logs back into the site then the Cookie Expiration time for that User is set again to whatever Auth Cookie Expiration Time that you choose or the WordPress default Cookie Expiration time if you do not use or turn On ACE.', 'bulletproof-security').'<br><br><strong>'.__('Turn On|Turn Off:', 'bulletproof-security').'</strong><br>'.__('ACE is Turned Off by default. Select ACE On to turn ACE On. Select ACE Off to turn ACE Off.', 'bulletproof-security').'<br><br><strong>'.__('Auth Cookie Expiration Time in Minutes:', 'bulletproof-security').'</strong><br>'.__('Enter the time in minutes for when a User should be logged out of your site. Example: Entering 720 will automatically logout Users who have been logged in for 720 consecutive minutes/12 hours. Only enter numbers and not any other characters. If you accidently enter a blank value for the for Auth Cookie Expiration Time or Remember Me Auth Cookie Expiration Time then ACE will use the default WordPress Authentication Cookie Expiration time.', 'bulletproof-security').'<br><br><strong>'.__('Remember Me Auth Cookie Expiration Time in Minutes:', 'bulletproof-security').'</strong><br>'.__('Enter the time in minutes for when a User should be logged out of your site when the User has checked the Remember Me checkbox on the WordPress Login page. Example: Entering 720 will automatically logout Users who have been logged in for 720 consecutive minutes/12 hours. Only enter numbers and not any other characters. If you accidently enter a blank value for the for Auth Cookie Expiration Time or Remember Me Auth Cookie Expiration Time then ACE will use the default WordPress Authentication Cookie Expiration time.', 'bulletproof-security').'<br><br><strong>'.__('Enable|Disable Remember Me Checkbox:', 'bulletproof-security').'</strong><br>'.__('Checking the Disable & do not display the Remember Me checkbox option will disable and not display the Remember Me checkbox for everyone including you. If you want to set and control the WordPress Remember Me setting then use the Remember Me Auth Cookie Expiration Time in Minutes option setting instead and choose an amount of time you would like to use for the Cookie expiration time.', 'bulletproof-security').'<br><br><strong>'.__('User Account Exceptions:', 'bulletproof-security').'</strong><br>'.__('To create exceptions for User Account names enter User Account names (case-insensitive) separated by a comma and a space: johnDoe, janeDoe. Auth Cookie Expiration Time settings will not be applied to any User Account names that you add in this text box and these User Accounts will instead use the default WordPress Authentication Cookie Expiration time. User Account Exceptions override the User Roles option setting. Example: If johnDoe is an Administrator and you have enabled ACE for the Administrator User Role and you have added johnDoe in the User Account Exceptions text box then the johnDoe User Account Exception will override the Administrator User Role option setting and the johnDoe User Account will use the default WordPress Authentication Cookie Expiration time. It is recommended that you add your User Account name, but if you also want to be automatically logged out for the Auth Cookie Expiration time that you choose then do not add your User Account name.', 'bulletproof-security').'<br><br><strong>'.__('Enable|Disable Auth Cookie Expiration Time For These User Roles:', 'bulletproof-security').'</strong><br>'.__('Checking a User Role checkbox will apply the Auth Cookie Expiration Time that you choose for all Users with that User Role (See User Account Exceptions). Unchecking a User Role checkbox will apply the default WordPress Authentication Cookie Expiration time for all Users with that User Role. Example: If you only check the Subscriber checkbox then ACE will only apply the Auth Cookie Expiration Time setting that you choose for Users that are Subscribers. If your website is using/has Custom User Roles, your Custom User Roles will be displayed in a scrollable box below the standard WP User Roles: Administrator, Editor, Author, Contributor, Subscriber.', 'bulletproof-security').'<br><br>';
23
 
24
  ?>
admin/maintenance/maintenance.php CHANGED
@@ -158,7 +158,7 @@ $bps_bottomDiv = '</p></div>';
158
 
159
  <!-- jQuery UI Tab Menu -->
160
  <div id="bps-tabs" class="bps-menu">
161
- <div id="bpsHead"><img src="<?php echo plugins_url('/bulletproof-security/admin/images/bps-security-shield.gif'); ?>" /></div>
162
  <ul>
163
  <li><a href="#bps-tabs-1"><?php _e('Maintenance Mode', 'bulletproof-security'); ?></a></li>
164
  <li><a href="#bps-tabs-2"><?php _e('Help &amp; FAQ', 'bulletproof-security'); ?></a></li>
@@ -194,7 +194,7 @@ $bps_bottomDiv = '</p></div>';
194
 
195
  <h3 style="margin:0px 0px 10px 0px;"><?php _e('Maintenance Mode', 'bulletproof-security'); ?> <button id="bps-open-modal1" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
196
 
197
- <div id="bps-modal-content1" style="background-color:#fff; padding:0px 10px 10px 10px;" title="<?php _e('Maintenance Mode', 'bulletproof-security'); ?>">
198
  <p>
199
  <?php
200
  $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
@@ -499,7 +499,7 @@ bpsPro_maintenance_mode_values_form();
499
  $MMoptions = get_option('bulletproof_security_options_maint_mode');
500
  ?>
501
 
502
- <div id="bps-accordion-3" class="bps-accordion-main-2">
503
  <h3><?php _e('MMode Editor', 'bulletproof-security'); ?></h3>
504
  <div id="mmode-accordion-inner">
505
 
@@ -693,7 +693,7 @@ if ( isset( $_POST['maintenance-mode-preview-submit'] ) && current_user_can('man
693
  <form name="MaintenanceModePreview" method="post" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/maintenance/maintenance.php' ); ?>" target="" onSubmit="window.open('<?php echo plugins_url('/bulletproof-security/admin/htaccess/bps-maintenance-'.$subsite_remove_slashes.'.php'); ?>','','scrollbars=yes,menubar=yes,width=800,height=600,resizable=yes,status=yes,toolbar=yes')">
694
  <?php wp_nonce_field('bulletproof_security_maintenance_preview'); ?>
695
  <p class="submit" style="float:left;margin:15px 10px 0px 0px;">
696
- <input type="submit" name="maintenance-mode-preview-submit" class="button bps-button" value="<?php esc_attr_e('Preview', 'bulletproof-security') ?>" />
697
  </p>
698
  </form>
699
 
@@ -702,7 +702,7 @@ if ( isset( $_POST['maintenance-mode-preview-submit'] ) && current_user_can('man
702
  <form name="MaintenanceModePreview" method="post" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/maintenance/maintenance.php' ); ?>" target="" onSubmit="window.open('<?php echo plugins_url('/bulletproof-security/admin/htaccess/bps-maintenance.php'); ?>','','scrollbars=yes,menubar=yes,width=800,height=600,resizable=yes,status=yes,toolbar=yes')">
703
  <?php wp_nonce_field('bulletproof_security_maintenance_preview'); ?>
704
  <p class="submit" style="float:left;margin:15px 10px 0px 0px;">
705
- <input type="submit" name="maintenance-mode-preview-submit" class="button bps-button" value="<?php esc_attr_e('Preview', 'bulletproof-security') ?>" />
706
  </p>
707
  </form>
708
 
@@ -711,14 +711,14 @@ if ( isset( $_POST['maintenance-mode-preview-submit'] ) && current_user_can('man
711
  <form name="bpsMaintenanceModeOn" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/maintenance/maintenance.php' ); ?>" method="post">
712
  <?php wp_nonce_field('bulletproof_security_mmode_on'); ?>
713
  <p class="submit" style="float:left;margin:15px 10px 0px 0px;">
714
- <input type="submit" name="Submit-maintenance-mode-on" class="button bps-button" value="<?php esc_attr_e('Turn On', 'bulletproof-security') ?>" />
715
  </p>
716
  </form>
717
 
718
  <form name="bpsMaintenanceModeOff" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/maintenance/maintenance.php' ); ?>" method="post">
719
  <?php wp_nonce_field('bulletproof_security_mmode_off'); ?>
720
  <p class="submit" style="float:left;margin:15px 10px 0px 0px;">
721
- <input type="submit" name="Submit-maintenance-mode-off" class="button bps-button" value="<?php esc_attr_e('Turn Off', 'bulletproof-security') ?>" />
722
  </p>
723
  </form>
724
 
158
 
159
  <!-- jQuery UI Tab Menu -->
160
  <div id="bps-tabs" class="bps-menu">
161
+ <div id="bpsHead"><img src="<?php echo plugins_url('/bulletproof-security/admin/images/bps-free-logo.gif'); ?>" /></div>
162
  <ul>
163
  <li><a href="#bps-tabs-1"><?php _e('Maintenance Mode', 'bulletproof-security'); ?></a></li>
164
  <li><a href="#bps-tabs-2"><?php _e('Help &amp; FAQ', 'bulletproof-security'); ?></a></li>
194
 
195
  <h3 style="margin:0px 0px 10px 0px;"><?php _e('Maintenance Mode', 'bulletproof-security'); ?> <button id="bps-open-modal1" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
196
 
197
+ <div id="bps-modal-content1" class="bps-dialog-hide" style="background-color:#fff; padding:0px 10px 10px 10px;" title="<?php _e('Maintenance Mode', 'bulletproof-security'); ?>">
198
  <p>
199
  <?php
200
  $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
499
  $MMoptions = get_option('bulletproof_security_options_maint_mode');
500
  ?>
501
 
502
+ <div id="bps-accordion-3" class="bps-accordion-main-2" style="display:none">
503
  <h3><?php _e('MMode Editor', 'bulletproof-security'); ?></h3>
504
  <div id="mmode-accordion-inner">
505
 
693
  <form name="MaintenanceModePreview" method="post" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/maintenance/maintenance.php' ); ?>" target="" onSubmit="window.open('<?php echo plugins_url('/bulletproof-security/admin/htaccess/bps-maintenance-'.$subsite_remove_slashes.'.php'); ?>','','scrollbars=yes,menubar=yes,width=800,height=600,resizable=yes,status=yes,toolbar=yes')">
694
  <?php wp_nonce_field('bulletproof_security_maintenance_preview'); ?>
695
  <p class="submit" style="float:left;margin:15px 10px 0px 0px;">
696
+ <input type="submit" name="maintenance-mode-preview-submit" class="button bps-button" style="width:72px" value="<?php esc_attr_e('Preview', 'bulletproof-security') ?>" />
697
  </p>
698
  </form>
699
 
702
  <form name="MaintenanceModePreview" method="post" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/maintenance/maintenance.php' ); ?>" target="" onSubmit="window.open('<?php echo plugins_url('/bulletproof-security/admin/htaccess/bps-maintenance.php'); ?>','','scrollbars=yes,menubar=yes,width=800,height=600,resizable=yes,status=yes,toolbar=yes')">
703
  <?php wp_nonce_field('bulletproof_security_maintenance_preview'); ?>
704
  <p class="submit" style="float:left;margin:15px 10px 0px 0px;">
705
+ <input type="submit" name="maintenance-mode-preview-submit" class="button bps-button" style="width:72px" value="<?php esc_attr_e('Preview', 'bulletproof-security') ?>" />
706
  </p>
707
  </form>
708
 
711
  <form name="bpsMaintenanceModeOn" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/maintenance/maintenance.php' ); ?>" method="post">
712
  <?php wp_nonce_field('bulletproof_security_mmode_on'); ?>
713
  <p class="submit" style="float:left;margin:15px 10px 0px 0px;">
714
+ <input type="submit" name="Submit-maintenance-mode-on" class="button bps-button" style="width:72px" value="<?php esc_attr_e('Turn On', 'bulletproof-security') ?>" />
715
  </p>
716
  </form>
717
 
718
  <form name="bpsMaintenanceModeOff" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/maintenance/maintenance.php' ); ?>" method="post">
719
  <?php wp_nonce_field('bulletproof_security_mmode_off'); ?>
720
  <p class="submit" style="float:left;margin:15px 10px 0px 0px;">
721
+ <input type="submit" name="Submit-maintenance-mode-off" class="button bps-button" style="width:72px" value="<?php esc_attr_e('Turn Off', 'bulletproof-security') ?>" />
722
  </p>
723
  </form>
724
 
admin/mscan/mscan-help-text.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ # ________ ____________ _____ ________ ________
3
+ # ___ __ )____ _____ /___ /_____ __ /____ __ \______________ ______ ___ __/
4
+ # __ __ |_ / / /__ / __ / _ _ \_ __/__ /_/ /__ ___/_ __ \_ __ \__ /_
5
+ # _ /_/ / / /_/ / _ / _ / / __// /_ _ ____/ _ / / /_/ // /_/ /_ __/
6
+ # /_____/ \__,_/ /_/ /_/ \___/ \__/ /_/ /_/ \____/ \____/ /_/
7
+ # ________ _____ _____ ________
8
+ # __ ___/_____ ___________ _____________(_)__ /______ __ ___ __ \______________
9
+ # _____ \ _ _ \_ ___/_ / / /__ ___/__ / _ __/__ / / / __ /_/ /__ ___/_ __ \
10
+ # ____/ / / __// /__ / /_/ / _ / _ / / /_ _ /_/ / _ ____/ _ / / /_/ /
11
+ # /____/ \___/ \___/ \__,_/ /_/ /_/ \__/ _\__, / /_/ /_/ \____/
12
+ # /____/
13
+ # 42756C6C657450726F6F66 5365637572697479 50726F
14
+ #
15
+ /* The Copyright, AITpro Software Products License Information must remain
16
+ intact or all BulletProof Security Pro warranties, guarantees, liabilities are void.
17
+
18
+ Copyright (C) 2011-2017 Edward Alexander, AIT-pro.com. All rights reserved.
19
+
20
+ AITpro Software Products License Information:
21
+ BY DOWNLOADING, INSTALLING, COPYING, ACCESSING, OR USING BulletProof Security Pro YOU AGREE TO THE TERMS OF THIS AGREEMENT.
22
+ IF YOU ARE ACCEPTING THESE TERMS ON BEHALF OF ANOTHER PERSON OR A COMPANY OR OTHER LEGAL ENTITY, YOU REPRESENT AND WARRANT
23
+ THAT YOU HAVE FULL AUTHORITY TO BIND THAT PERSON, COMPANY, OR LEGAL ENTITY TO THESE TERMS. IF YOU DO NOT AGREE TO THESE TERMS,
24
+ * DO NOT DOWNLOAD, INSTALL, COPY, ACCESS, OR USE BulletProof Security Pro; AND
25
+ * PROMPTLY RETURN BulletProof Security Pro TO THE PARTY FROM WHOM YOU ACQUIRED IT. IF YOU DOWNLOADED BulletProof Security Pro
26
+ FROM THE AITPRO WEBSITE, CONTACT AITPRO FOR A REFUND IF APPLICABLE.
27
+
28
+ AITpro Software Products License Information continued:
29
+ You agree to keep the AITpro Software Products License for BulletProof Security Pro, unmodified or altered in any way,
30
+ with the original copy of BulletProof Security Pro that you have and any and all copies or partial copies of BulletProof
31
+ Security Pro that You make.
32
+ */
33
+ // Direct calls to this file are Forbidden when core files are not present
34
+ if ( ! current_user_can('manage_options') ) {
35
+ header('Status: 403 Forbidden');
36
+ header('HTTP/1.1 403 Forbidden');
37
+ exit();
38
+ }
39
+
40
+ /** MScan **/
41
+ $bps_modal_content1 = '<strong><font color="blue">'.__('For more extensive help info and answers to common issues or problems click the MScan Malware Scanner Guide link above. For troubleshooting help or to post suspicious code click the MScan Troubleshooting & Code Posting link above.', 'bulletproof-security').'</font></strong><br><br><strong>'.__('Start Scan', 'bulletproof-security').'</strong><br>'.__('Clicking the Start Scan button starts a scan.', 'bulletproof-security').'<br><br><strong>'.__('Stop Scan', 'bulletproof-security').'</strong><br>'.__('Clicking the Stop Scan button stops a scan.', 'bulletproof-security').'<br><br><strong>'.__('Hosting Account Root Folders', 'bulletproof-security').'</strong><br>'.__('All of your hosting account folders are checked/selected by default and will be scanned. Checking a checkbox means scan that folder. Unchecking a checkbox means do not scan that folder.', 'bulletproof-security').'<br><br><strong>'.__('Max File Size Limit to Scan', 'bulletproof-security').'</strong><br>'.__('Files that are larger than 400KB will be skipped by default in a regular scan and can be scanned using a Skipped File scan.', 'bulletproof-security').'<br><br><strong>'.__('Max Time Limit to Scan', 'bulletproof-security').'</strong><br>'.__('The default time limit for script execution on most web hosts is 300 seconds. The default time limit setting for MScan scanning is also set to 300 seconds. It is not recommended that you increase the time limit higher than 300 seconds.', 'bulletproof-security').'<br><br><strong>'.__('Scan Database', 'bulletproof-security').'</strong><br>'.__('When Database scan is turned on your WordPress database will be scanned for suspicious code.', 'bulletproof-security').'<br><br><strong>'.__('Scan Image Files (Stegosploit|Exif Hack)', 'bulletproof-security').'</strong><br>'.__('WARNING: Scanning image files may cause scanning to stop or fail. Most web hosts already have security protection against Stegosploit and Exif image hacks. It is recommended that you do not scan image files.', 'bulletproof-security').'<br><br><strong>'.__('Scan Skipped Files Only', 'bulletproof-security').'</strong><br>'.__('When Skipped File Scan is On only skipped files will be scanned. Note: The only MScan option setting that has any effect while Skipped File Scan is On is Image File Scan On or Off. You do not need to change any of your other MScan option settings when running a Skipped File scan.', 'bulletproof-security').'<br><br><strong>'.__('Automatically Delete /tmp Files', 'bulletproof-security').'</strong><br>'.__('When Delete Tmp Files is On, all temporary files will be deleted. Hackers commonly hide hacker files in the /tmp folder.', 'bulletproof-security').'<br><br><strong>'.__('Scheduled Scan Frequency (BPS Pro only)', 'bulletproof-security').'</strong><br>'.__('You can choose to schedule ongoing automated scans (BPS Pro Only). Note: The BPS Pro ARQ IDPS scanner is far superior to any/all Malware scanners including BPS Pro MScan. Click the MScan Malware Scanner Guide link above for more information regarding using ARQ IDPS and MScan together.', 'bulletproof-security').'<br><br><strong>'.__('Scan Time Estimate Tool', 'bulletproof-security').'</strong><br>'.__('IMPORTANT: You can stop the scan time estimate if it hangs or is taking too long by clicking the Stop Scan button. This tool allows you to check the estimated total scan time of a scan based on your MScan option settings without actually performing/running a scan. Note: This tool does not affect or change any previous scan results except for the Total Scan Time, which will be changed to the estimated scan time. Example Usage: You can check or uncheck Hosting Account Root Folders checkboxes and change any other MScan option settings, save your MScan option settings and then run the Scan Time Estimate Tool to get the total estimated time that the actual scan will take.', 'bulletproof-security').'<br><br><strong>'.__('Delete Scan Status Tool', 'bulletproof-security').'</strong><br>'.__('This tool allows you to delete all of the MScan Status option values. The Scan Completed timestamp, Total Scan Time, Total Files Scanned, Skipped Files, Suspicious Files and Suspicious DB Entries status values will be deleted and will either display blank or 0.', 'bulletproof-security').'<br><br><strong>'.__('Delete DB Scan Data Tool', 'bulletproof-security').'</strong><br>'.__('This tool allows you to delete/reset all of the database scan data in the View|Ignore|Delete Suspicious Files and View|Ignore Suspicious DB Entries Forms. Note: Any/all changes you have made and saved in these Forms will be deleted. You may want to use BPS DB Backup and do a database backup before using this tool.', 'bulletproof-security').'<br><br><strong>'.__('View|Ignore|Delete Suspicious Files', 'bulletproof-security').'</strong><br>'.__('This form allows you to view, ignore, unignore or delete suspicious and skipped files. If you are not sure if code is malicious or safe you can copy the code and post the code in the MScan Troubleshooting & Code Posting form topic. See the link above. If you are unsure if a file is a hacker file or not then download a copy of that file before deleting it. When you ignore a file it will no longer be scanned in any future scans. When you unignore an ignored file it will be scanned in future scans.', 'bulletproof-security').'<br><br><strong>'.__('View|Ignore Suspicious DB Entries', 'bulletproof-security').'</strong><br>'.__('This form allows you to view, ignore or unignore suspicious DB Entries. Note: The view option displays the DB Table, Column, Row ID and the MScan Pattern Match that was detected by the MScan scan. Use phpMyAdmin or a similar tool to check your database Row where the suspicious code was found. When you ignore a DB Entry it will no longer be scanned in any future scans. When you unignore an ignored DB Entry it will be scanned in future scans.', 'bulletproof-security');
42
+
43
+ /** MScan Log **/
44
+ $bps_modal_content2 = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br><strong>'.__('MScan Log General Information', 'bulletproof-security').'</strong><br>'.__('Your MScan 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. You can choose S-Monitor Email Alerting & Log File Options to automatically email your MScan Log file to you and delete it when it reaches a certain size (256KB, 500KB or 1MB).', 'bulletproof-security').'<strong><br><br>'.__('MScan Logging', 'bulletproof-security').'</strong><br>'.__('Logs extensive details about each scan that you run.', 'bulletproof-security').'<strong><br><br>'.__('MScan Log File Size', 'bulletproof-security').'</strong><br>'.__('Displays the size of your MScan Log file. If your log file is larger than 2MB then you will see a Red warning message displayed: The S-Monitor Email Alerting & Log File Options will only send log files up to 2MB in size. Copy and paste the MScan Log file contents into a Notepad text file on your computer and save it. Then click the Delete Log button to delete the contents of this Log file.', 'bulletproof-security').'<br><br><strong>'.__('MScan Log Last Modified Time', 'bulletproof-security').'</strong><br>'.__('The Reset Last Modified Time in DB option/feature is currently completely automated and does not require any manual steps performed by you.', 'bulletproof-security').'<br><br><strong>'.__('Delete Log Button', 'bulletproof-security').'</strong><br>'.__('Clicking the Delete Log button will delete the entire contents of your MScan Log File. If you have setup S-Monitor Email Alerting & Log Options then the only time you would probably need to use the Delete Log button is if your MScan Log file exceeds 2MB in size.', 'bulletproof-security');
45
+
46
+ ?>
admin/mscan/mscan.php ADDED
@@ -0,0 +1,1890 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ if ( ! current_user_can('manage_options') ) {
10
+ header('Status: 403 Forbidden');
11
+ header('HTTP/1.1 403 Forbidden');
12
+ exit();
13
+ }
14
+ ?>
15
+
16
+ <div id="bps-container" class="wrap" style="margin:45px 20px 5px 0px;">
17
+
18
+ <noscript><div id="message" class="updated" style="font-weight:600;font-size:13px;padding:5px;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);"><span style="color:blue">BPS Warning: JavaScript is disabled in your Browser</span><br />BPS plugin pages will not display visually correct and all BPS JavaScript functionality will not work correctly.</div></noscript>
19
+
20
+ <?php
21
+ if ( function_exists('get_transient') ) {
22
+ require_once( ABSPATH . 'wp-admin/includes/plugin-install.php' );
23
+
24
+ if ( false === ( $bps_api = get_transient('bulletproof-security_info') ) ) {
25
+ $bps_api = plugins_api( 'plugin_information', array( 'slug' => stripslashes( 'bulletproof-security' ) ) );
26
+
27
+ if ( ! is_wp_error( $bps_api ) ) {
28
+ $bps_expire = 60 * 30; // Cache downloads data for 30 minutes
29
+ $bps_downloaded = array( 'downloaded' => $bps_api->downloaded );
30
+ maybe_serialize( $bps_downloaded );
31
+ set_transient( 'bulletproof-security_info', $bps_downloaded, $bps_expire );
32
+ }
33
+ }
34
+
35
+ $bps_transient = get_transient( 'bulletproof-security_info' );
36
+
37
+ echo '<div class="bps-star-container">';
38
+ echo '<div class="bps-star"><img src="'.plugins_url('/bulletproof-security/admin/images/star.png').'" /></div>';
39
+ echo '<div class="bps-downloaded">';
40
+
41
+ foreach ( $bps_transient as $key => $value ) {
42
+ echo number_format_i18n( $value ) .' '. str_replace( 'downloaded', "Downloads", $key );
43
+ }
44
+
45
+ echo '<div class="bps-star-link"><a href="https://wordpress.org/support/view/plugin-reviews/bulletproof-security#postform" target="_blank" title="Add a Star Rating for the BPS plugin">'.__('Rate BPS', 'bulletproof-security').'</a><br><a href="https://affiliates.ait-pro.com/po/" target="_blank" title="Upgrade to BulletProof Security Pro">Upgrade to Pro</a></div>';
46
+ echo '</div>';
47
+ echo '</div>';
48
+ }
49
+ ?>
50
+
51
+ <h2 class="bps-tab-title"><?php _e('BulletProof Security ~ MScan Malware Scanner', 'bulletproof-security'); ?></h2>
52
+
53
+ <div id="message" class="updated" style="border:1px solid #999;background-color:#000;">
54
+
55
+ <?php
56
+ // Top div echo & bottom div echo
57
+ $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>';
58
+ $bps_bottomDiv = '</p></div>';
59
+
60
+ // General all purpose "Settings Saved." message for forms
61
+ if ( current_user_can('manage_options') && wp_script_is( 'bps-accordion', $list = 'queue' ) ) {
62
+ if ( isset( $_GET['settings-updated'] ) && @$_GET['settings-updated'] == true) {
63
+ $text = '<p style="font-size:1em;font-weight:bold;padding:2px 0px 2px 5px;margin:0px -11px 0px -11px;background-color:#dfecf2;-webkit-box-shadow: 3px 3px 5px 0px rgba(153,153,153,0.7);-moz-box-shadow: 3px 3px 5px 0px rgba(153,153,153,0.7);box-shadow: 3px 3px 5px 0px rgba(153,153,153,0.7);""><font color="green"><strong>'.__('Settings Saved', 'bulletproof-security').'</strong></font></p>';
64
+ echo $text;
65
+ }
66
+ }
67
+
68
+ $bpsSpacePop = '-------------------------------------------------------------';
69
+
70
+ require_once( WP_PLUGIN_DIR . '/bulletproof-security/admin/mscan/mscan-help-text.php' );
71
+
72
+ // Replace ABSPATH = wp-content/plugins
73
+ $bps_plugin_dir = str_replace( ABSPATH, '', WP_PLUGIN_DIR );
74
+ // Replace ABSPATH = wp-content
75
+ $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
76
+ // Replace ABSPATH = wp-content/uploads
77
+ $wp_upload_dir = wp_upload_dir();
78
+ $bps_uploads_dir = str_replace( ABSPATH, '', $wp_upload_dir['basedir'] );
79
+
80
+ ?>
81
+
82
+ </div>
83
+
84
+ <!-- jQuery UI Tab Menu -->
85
+ <div id="bps-tabs" class="bps-menu">
86
+ <div id="bpsHead"><img src="<?php echo plugins_url('/bulletproof-security/admin/images/bps-free-logo.gif'); ?>" /></div>
87
+ <ul>
88
+ <li><a href="#bps-tabs-1"><?php _e('MScan', 'bulletproof-security'); ?></a></li>
89
+ <li><a href="#bps-tabs-2"><?php _e('MScan Log', 'bulletproof-security'); ?></a></li>
90
+ <li><a href="#bps-tabs-3"><?php _e('Help &amp; FAQ', 'bulletproof-security'); ?></a></li>
91
+ </ul>
92
+
93
+ <div id="bps-tabs-1" class="bps-tab-page">
94
+
95
+ <table width="100%" border="0" cellspacing="0" cellpadding="0" class="bps-help_faq_table">
96
+ <tr>
97
+ <td class="bps-table_title">
98
+ <?php $text = '<h2>'.__('MScan ~ ', 'bulletproof-security').'<span style="font-size:.75em;">'.__('Scans website files for hacker files or code ~ Scans the WP database for hacker code.', 'bulletproof-security').'</span></h2><div class="promo-text">'.__('Want even more security protection?', 'bulletproof-security').'<br>'.__('Get real-time automated security protection that is far superior to all malware scanners: ', 'bulletproof-security').'<a href="https://affiliates.ait-pro.com/po/" target="_blank" title="ARQ IDPS">'.__('Get BPS Pro ARQ IDPS', 'bulletproof-security').'</a></div>'; echo $text; ?>
99
+ </td>
100
+ </tr>
101
+ <tr>
102
+ <td class="bps-table_cell_help">
103
+
104
+ <h3 style="margin:0px 0px 10px 0px;"><?php _e('MScan', 'bulletproof-security'); ?> <button id="bps-open-modal1" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
105
+
106
+ <div id="bps-modal-content1" class="bps-dialog-hide" title="<?php _e('MScan', 'bulletproof-security'); ?>">
107
+ <p>
108
+ <?php
109
+ $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
110
+ echo $text;
111
+ $text = '<strong><font color="blue">'.__('Forum Help Links: ', 'bulletproof-security').'</font></strong><br>';
112
+ echo $text;
113
+ ?>
114
+ <strong><a href="https://forum.ait-pro.com/forums/topic/mscan-malware-scanner-guide/" title="MScan Malware Scanner Guide" target="_blank"><?php _e('MScan Malware Scanner Guide', 'bulletproof-security'); ?></a></strong><br />
115
+ <strong><a href="https://forum.ait-pro.com/forums/topic/mscan-troubleshooting-questions-problems-and-code-posting/" title="MScan Troubleshooting & Code Posting" target="_blank"><?php _e('MScan Troubleshooting & Code Posting', 'bulletproof-security'); ?></a></strong><br />
116
+ <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 /><br />
117
+
118
+ <?php echo $bps_modal_content1; ?>
119
+ </p>
120
+ </div>
121
+
122
+
123
+ <?php
124
+
125
+ // Form Processing: Delete DB Scan Data Tool Form
126
+ if ( isset( $_POST['Submit-MScan-Delete-All-Scan-Data'] ) && current_user_can('manage_options') ) {
127
+ check_admin_referer('bulletproof_security_mscan_delete_all_scan_data');
128
+
129
+ $MStable_name = $wpdb->prefix . "bpspro_mscan";
130
+
131
+ $wpdb->query("DROP TABLE IF EXISTS $MStable_name");
132
+
133
+ if ( $wpdb->get_var( $wpdb->prepare( "SHOW TABLES LIKE %s", $MStable_name ) ) != $MStable_name ) {
134
+
135
+ $sql = "CREATE TABLE $MStable_name (
136
+ mscan_id bigint(20) NOT NULL auto_increment,
137
+ mscan_status varchar(8) NOT NULL default '',
138
+ mscan_type varchar(16) NOT NULL default '',
139
+ mscan_path text NOT NULL,
140
+ mscan_pattern text NOT NULL,
141
+ mscan_skipped varchar(7) NOT NULL default '',
142
+ mscan_ignored varchar(6) NOT NULL default '',
143
+ mscan_db_table varchar(64) NOT NULL default '',
144
+ mscan_db_column varchar(64) NOT NULL default '',
145
+ mscan_db_pkid text NOT NULL,
146
+ mscan_time datetime NOT NULL default '0000-00-00 00:00:00',
147
+ PRIMARY KEY (mscan_id),
148
+ UNIQUE KEY id (mscan_id)
149
+ );";
150
+
151
+ require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
152
+ dbDelta($sql);
153
+ }
154
+
155
+ echo $bps_topDiv;
156
+ $text = '<font color="green"><strong>'.__('The MScan Database Table: ', 'bulletproof-security').$MStable_name.__(' data has been deleted.', 'bulletproof-security').'</strong></font>';
157
+ echo $text;
158
+ echo $bps_bottomDiv;
159
+ }
160
+
161
+ // Form Processing: Delete Scan Status Tool Form
162
+ if ( isset( $_POST['Submit-MScan-Delete-Status'] ) && current_user_can('manage_options') ) {
163
+ check_admin_referer('bulletproof_security_mscan_delete_status');
164
+
165
+ $MScan_status = get_option('bulletproof_security_options_MScan_status');
166
+
167
+ $MScan_status_db = array(
168
+ 'bps_mscan_time_start' => '',
169
+ 'bps_mscan_time_stop' => '',
170
+ 'bps_mscan_time_end' => '',
171
+ 'bps_mscan_time_remaining' => '',
172
+ 'bps_mscan_status' => '4',
173
+ 'bps_mscan_last_scan_timestamp' => '',
174
+ 'bps_mscan_total_time' => '',
175
+ 'bps_mscan_total_website_files' => '',
176
+ 'bps_mscan_total_wp_core_files' => '',
177
+ 'bps_mscan_total_non_image_files' => '',
178
+ 'bps_mscan_total_image_files' => '',
179
+ 'bps_mscan_total_all_scannable_files' => '',
180
+ 'bps_mscan_total_skipped_files' => '',
181
+ 'bps_mscan_total_suspect_files' => '',
182
+ 'bps_mscan_suspect_skipped_files' => '',
183
+ 'bps_mscan_total_suspect_db' => '',
184
+ 'bps_mscan_total_ignored_files' => ''
185
+ );
186
+
187
+ foreach( $MScan_status_db as $key => $value ) {
188
+ update_option('bulletproof_security_options_MScan_status', $MScan_status_db);
189
+ }
190
+
191
+ echo $bps_topDiv;
192
+ $text = '<font color="green"><strong>'.__('MScan Status option values have been deleted. The Scan Completed timestamp, Total Scan Time, Total Files Scanned, Skipped Files, Suspicious Files and Suspicious DB Entries status values have been deleted and will either display blank or 0', 'bulletproof-security').'</strong></font>';
193
+ echo $text;
194
+ echo $bps_bottomDiv;
195
+ }
196
+
197
+ // Form Processing: MScan Stop
198
+ if ( isset( $_POST['Submit-MScan-Stop'] ) && current_user_can('manage_options') ) {
199
+ check_admin_referer( 'bulletproof_security_mscan_stop' );
200
+
201
+ $MScanStop = WP_CONTENT_DIR . '/bps-backup/master-backups/mscan-stop.txt';
202
+ file_put_contents($MScanStop, "");
203
+
204
+ $MScan_status = get_option('bulletproof_security_options_MScan_status');
205
+ $MScan_options = get_option('bulletproof_security_options_MScan');
206
+
207
+ $MScan_status_db = array(
208
+ 'bps_mscan_time_start' => $MScan_status['bps_mscan_time_start'],
209
+ 'bps_mscan_time_stop' => 'stop',
210
+ 'bps_mscan_time_end' => time(),
211
+ 'bps_mscan_time_remaining' => time(),
212
+ 'bps_mscan_status' => '4',
213
+ 'bps_mscan_last_scan_timestamp' => $MScan_status['bps_mscan_last_scan_timestamp'],
214
+ 'bps_mscan_total_time' => $MScan_status['bps_mscan_total_time'],
215
+ 'bps_mscan_total_website_files' => $MScan_status['bps_mscan_total_website_files'],
216
+ 'bps_mscan_total_wp_core_files' => $MScan_status['bps_mscan_total_wp_core_files'],
217
+ 'bps_mscan_total_non_image_files' => $MScan_status['bps_mscan_total_non_image_files'],
218
+ 'bps_mscan_total_image_files' => $MScan_status['bps_mscan_total_image_files'],
219
+ 'bps_mscan_total_all_scannable_files' => $MScan_status['bps_mscan_total_all_scannable_files'],
220
+ 'bps_mscan_total_skipped_files' => $MScan_status['bps_mscan_total_skipped_files'],
221
+ 'bps_mscan_total_suspect_files' => $MScan_status['bps_mscan_total_suspect_files'],
222
+ 'bps_mscan_total_ignored_files' => $MScan_status['bps_mscan_total_ignored_files']
223
+ );
224
+
225
+ foreach( $MScan_status_db as $key => $value ) {
226
+ update_option('bulletproof_security_options_MScan_status', $MScan_status_db);
227
+ }
228
+
229
+ $mscan_scan_skipped_files_message = '';
230
+ $mscan_image_files_message = '';
231
+
232
+ if ( $MScan_options['mscan_scan_skipped_files'] == 'On' ) {
233
+ $mscan_scan_skipped_files_message = '<br><font color="blue"><strong>'.__('Skipped file scanning is turned On. Only skipped files will be scanned.', 'bulletproof-security').'</strong></font>';
234
+ }
235
+
236
+ if ( $MScan_options['mscan_scan_images'] == 'On' ) {
237
+ $mscan_image_files_message = '<br><font color="blue"><strong>'.__('Image file scanning is turned On. On some web hosts scanning image files will cause the scan to stop/fail.', 'bulletproof-security').'</strong></font>';
238
+ }
239
+
240
+ echo $bps_topDiv;
241
+ $text = '<font color="green"><strong>'.__('MScan scanning has been stopped. Note: The Stop Scan button also stops the Scan Time Estimate Tool from calculating estimated scan time.', 'bulletproof-security').'</strong></font>'.$mscan_scan_skipped_files_message.$mscan_image_files_message;
242
+ echo $text;
243
+ echo $bps_bottomDiv;
244
+ }
245
+
246
+ // Creates a Time Loop scenario if bpsPro_mscan_calculate_scan_time() function does not complete in 30 seconds.
247
+ // This function serves 1 purpose only: Reset time calculation DB status value to 1 during scan time calculation to create a Time Loop/more time if needed.
248
+ // This function is only executed in js when the estimated scan time has completed & when actual scan time has completed.
249
+ // IMPORTANT: Do not echo anything directly in this function. It will break the js timer. Do not add any other status value conditions.
250
+ function bpsPro_mscan_completed() {
251
+
252
+ $MScan_status = get_option('bulletproof_security_options_MScan_status');
253
+ $MScan_options = get_option('bulletproof_security_options_MScan');
254
+ $mstime = $MScan_options['mscan_max_time_limit'];
255
+ ini_set('max_execution_time', $mstime);
256
+
257
+ if ( $MScan_status['bps_mscan_status'] == '1' ) {
258
+
259
+ $MScan_status_db = array(
260
+ 'bps_mscan_time_start' => time(),
261
+ 'bps_mscan_time_stop' => $MScan_status['bps_mscan_time_stop'],
262
+ 'bps_mscan_time_end' => time() + 30,
263
+ 'bps_mscan_time_remaining' => time() + 30,
264
+ 'bps_mscan_status' => '1',
265
+ 'bps_mscan_last_scan_timestamp' => $MScan_status['bps_mscan_last_scan_timestamp'],
266
+ 'bps_mscan_total_time' => $MScan_status['bps_mscan_total_time'],
267
+ 'bps_mscan_total_website_files' => $MScan_status['bps_mscan_total_website_files'],
268
+ 'bps_mscan_total_wp_core_files' => $MScan_status['bps_mscan_total_wp_core_files'],
269
+ 'bps_mscan_total_non_image_files' => $MScan_status['bps_mscan_total_non_image_files'],
270
+ 'bps_mscan_total_image_files' => $MScan_status['bps_mscan_total_image_files'],
271
+ 'bps_mscan_total_all_scannable_files' => $MScan_status['bps_mscan_total_all_scannable_files'],
272
+ 'bps_mscan_total_skipped_files' => $MScan_status['bps_mscan_total_skipped_files'],
273
+ 'bps_mscan_total_suspect_files' => $MScan_status['bps_mscan_total_suspect_files'],
274
+ 'bps_mscan_suspect_skipped_files' => $MScan_status['bps_mscan_suspect_skipped_files'],
275
+ 'bps_mscan_total_suspect_db' => $MScan_status['bps_mscan_total_suspect_db'],
276
+ 'bps_mscan_total_ignored_files' => $MScan_status['bps_mscan_total_ignored_files']
277
+ );
278
+
279
+ foreach( $MScan_status_db as $key => $value ) {
280
+ update_option('bulletproof_security_options_MScan_status', $MScan_status_db);
281
+ }
282
+ }
283
+ }
284
+
285
+ function bpsPro_mscan_displayed_messages() {
286
+ global $bps_topDiv, $bps_bottomDiv;
287
+
288
+ $MScan_status = get_option('bulletproof_security_options_MScan_status');
289
+ $MScan_options = get_option('bulletproof_security_options_MScan');
290
+
291
+ $mscan_scan_skipped_files_message = '';
292
+ $mscan_image_files_message = '';
293
+
294
+ if ( $MScan_options['mscan_scan_skipped_files'] == 'On' ) {
295
+ $mscan_scan_skipped_files_message = '<br><font color="blue"><strong>'.__('Skipped file scanning is turned On. Only skipped files will be scanned.', 'bulletproof-security').'</strong></font>';
296
+ }
297
+
298
+ if ( $MScan_options['mscan_scan_images'] == 'On' ) {
299
+ $mscan_image_files_message = '<br><font color="blue"><strong>'.__('Image file scanning is turned On. On some web hosts scanning image files will cause the scan to stop/fail.', 'bulletproof-security').'</strong></font>';
300
+ }
301
+
302
+ // This message is only displayed if scan time calculation takes longer than 30 seconds. ie Time Loop.
303
+ // The bpsPro_mscan_completed() function is executed in js when the estimated time countdown has completed.
304
+ // IMPORTANT: The Refresh button is necessary here. Do not automate this refresh/reload with js. If excessive files are attempting to be scanned then this
305
+ // will be an important clue in troubleshooting problems. The User will hopefully understand that they are attempting to scan too many files at one time.
306
+ // On some Browsers the Time Loop misfires randomly. It must be related to Browser cache, but all attempts to make sense of this irratic and illogical random
307
+ // Browser behaviour have failed to conclusively isolate the Browser malfunction. Revisit this Twilight Zone Browser problem at a later time.
308
+ if ( $MScan_status['bps_mscan_status'] == '1' ) {
309
+
310
+ echo $bps_topDiv;
311
+ $text = '<font color="green"><strong>'.__('Calculating Scan Time. The default scan time calculation time of 30 seconds was exceeded. If it takes longer than 30 seconds to calculate total scan time, an additional 30 seconds will be added to the scan time calculation time until actual file scanning starts. Click the Refresh button to refresh the MScan Progress Bar if it is not automatically refreshed. If you see this message more than five times, click the Stop Scan button to stop the scan. Either you are attempting to scan too many files at one time or the scan time calculation is stuck in a time reset loop. Check your MScan Log file to see if the the estimated scan time was successfully logged.', 'bulletproof-security').'</strong></font>'.$mscan_scan_skipped_files_message.$mscan_image_files_message.'<div class="bps-message-button" style="width:60px;"><a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/mscan/mscan.php' ).'">'.__('Refresh', 'bulletproof-security').'</a></div>';
312
+ echo $text;
313
+ echo $bps_bottomDiv;
314
+ }
315
+
316
+ if ( $MScan_status['bps_mscan_status'] == '2' ) {
317
+
318
+ if ( $MScan_status['bps_mscan_total_time'] > $MScan_options['mscan_max_time_limit'] ) {
319
+ $mscan_over_time_limit = '<br><strong><font color="#fb0101">'.__('The estimated total scan time is more than the Max Time Limit to Scan option setting time limit.', 'bulletproof-security').'</font><br>'.__('The scan will automatically end/stop when the Max Time Limit to Scan option setting time limit is reached.', 'bulletproof-security').'<br>'.__('Estimated Total Scan Time: ', 'bulletproof-security').number_format_i18n($MScan_status['bps_mscan_total_time']).'<br>'.__('Max Time Limit to Scan: ', 'bulletproof-security').number_format_i18n($MScan_options['mscan_max_time_limit']).'<br>'.__('Click the MScan Read Me help button for a recommended solution.', 'bulletproof-security').'</strong>';
320
+ } else {
321
+ $mscan_over_time_limit = '';
322
+ }
323
+
324
+ echo $bps_topDiv;
325
+ $text = '<font color="green"><strong>'.__('MScan Scanning has started. You can leave the MScan page while a scan is in progress and the scan will continue until it is completed or you can open another Browser Tab/Window and leave this Browser Tab/Window open.', 'bulletproof-security').'</strong></font>'.$mscan_scan_skipped_files_message.$mscan_image_files_message.$mscan_over_time_limit;
326
+ echo $text;
327
+ echo $bps_bottomDiv;
328
+ }
329
+
330
+ if ( @$_POST['Submit-MScan-Start'] != true && $MScan_status['bps_mscan_status'] == '3' ) {
331
+
332
+ $suspect_files_message = '';
333
+ $suspect_db_message = '';
334
+
335
+ if ( $MScan_options['mscan_scan_skipped_files'] == 'On' ) {
336
+
337
+ if ( $MScan_status['bps_mscan_suspect_skipped_files'] > 0 ) {
338
+ $suspect_files_message = '<br><strong><font color="blue">'.__('Suspicious code or files were detected.', 'bulletproof-security').'</font><br>'.__('Click the View|Ignore|Delete Suspicious Files accordion tab to View, Ignore or Delete suspicious files. For additional help information click the MScan Read Me help button.', 'bulletproof-security').'</strong>';
339
+ }
340
+
341
+ } else {
342
+
343
+ if ( $MScan_status['bps_mscan_total_suspect_files'] > 0 ) {
344
+ $suspect_files_message = '<br><strong><font color="blue">'.__('Suspicious code or files were detected.', 'bulletproof-security').'</font><br>'.__('Click the View|Ignore|Delete Suspicious Files accordion tab to View, Ignore or Delete suspicious files. For additional help information click the MScan Read Me help button.', 'bulletproof-security').'</strong>';
345
+ }
346
+
347
+ if ( $MScan_options['mscan_scan_database'] == 'On' && $MScan_status['bps_mscan_total_suspect_db'] > 0 ) {
348
+ $suspect_db_message = '<br><strong><font color="blue">'.__('Suspicious code was detected in your database.', 'bulletproof-security').'</font><br>'.__('Click the View|Ignore Suspicious DB Entries accordion tab to view and ignore suspicious db entries. For additional help information click the MScan Read Me help button.', 'bulletproof-security').'</strong>';
349
+ }
350
+ }
351
+
352
+ echo $bps_topDiv;
353
+ $text = '<font color="green"><strong>'.__('MScan Scan has completed. To view extensive details of all scanning phases view the MScan Log file.', 'bulletproof-security').'</strong></font>'.$mscan_scan_skipped_files_message.$suspect_files_message.$suspect_db_message;
354
+ echo $text;
355
+ echo $bps_bottomDiv;
356
+
357
+ $MScan_status = get_option('bulletproof_security_options_MScan_status');
358
+
359
+ $MScan_status_db = array(
360
+ 'bps_mscan_time_start' => $MScan_status['bps_mscan_time_start'],
361
+ 'bps_mscan_time_stop' => $MScan_status['bps_mscan_time_stop'],
362
+ 'bps_mscan_time_end' => $MScan_status['bps_mscan_time_end'],
363
+ 'bps_mscan_time_remaining' => $MScan_status['bps_mscan_time_remaining'],
364
+ 'bps_mscan_status' => '4',
365
+ 'bps_mscan_last_scan_timestamp' => $MScan_status['bps_mscan_last_scan_timestamp'],
366
+ 'bps_mscan_total_time' => $MScan_status['bps_mscan_total_time'],
367
+ 'bps_mscan_total_website_files' => $MScan_status['bps_mscan_total_website_files'],
368
+ 'bps_mscan_total_wp_core_files' => $MScan_status['bps_mscan_total_wp_core_files'],
369
+ 'bps_mscan_total_non_image_files' => $MScan_status['bps_mscan_total_non_image_files'],
370
+ 'bps_mscan_total_image_files' => $MScan_status['bps_mscan_total_image_files'],
371
+ 'bps_mscan_total_all_scannable_files' => $MScan_status['bps_mscan_total_all_scannable_files'],
372
+ 'bps_mscan_total_skipped_files' => $MScan_status['bps_mscan_total_skipped_files'],
373
+ 'bps_mscan_total_suspect_files' => $MScan_status['bps_mscan_total_suspect_files'],
374
+ 'bps_mscan_suspect_skipped_files' => $MScan_status['bps_mscan_suspect_skipped_files'],
375
+ 'bps_mscan_total_suspect_db' => $MScan_status['bps_mscan_total_suspect_db'],
376
+ 'bps_mscan_total_ignored_files' => $MScan_status['bps_mscan_total_ignored_files']
377
+ );
378
+
379
+ foreach( $MScan_status_db as $key => $value ) {
380
+ update_option('bulletproof_security_options_MScan_status', $MScan_status_db);
381
+ }
382
+ }
383
+
384
+ if ( $MScan_status['bps_mscan_status'] == '5' ) {
385
+
386
+ $MScan_status = get_option('bulletproof_security_options_MScan_status');
387
+
388
+ $mscan_scan_skipped_files_message = '';
389
+ $mscan_image_files_message = '';
390
+
391
+ if ( $MScan_options['mscan_scan_skipped_files'] == 'On' ) {
392
+ $mscan_scan_skipped_files_message = '<br><font color="blue"><strong>'.__('Skipped file scanning is turned On. The scan time estimate is for scanning skipped files only.', 'bulletproof-security').'</strong></font>';
393
+ }
394
+
395
+ if ( $MScan_options['mscan_scan_images'] == 'On' ) {
396
+ $mscan_image_files_message = '<br><font color="blue"><strong>'.__('Image file scanning is turned On. On some web hosts scanning image files will cause the scan to stop/fail.', 'bulletproof-security').'</strong></font>';
397
+ }
398
+
399
+ echo $bps_topDiv;
400
+ $text = '<strong><font color="green">'.__('The total estimated time of an actual scan based on your MScan option settings is: ', 'bulletproof-security').'<span style="color:blue">'.number_format_i18n($MScan_status['bps_mscan_total_time']).'</span> '.__('Seconds. The MScan Log file contains extensive details about the estimated scan time. Note: The Scan Time Estimate Tool does not affect or change any previous scan results except for the Total Scan Time, which will be changed to the estimated scan time.', 'bulletproof-security').'</font></strong>'.$mscan_scan_skipped_files_message.$mscan_image_files_message;
401
+ echo $text;
402
+ echo $bps_bottomDiv;
403
+
404
+ $MScan_status_db = array(
405
+ 'bps_mscan_time_start' => $MScan_status['bps_mscan_time_start'],
406
+ 'bps_mscan_time_stop' => $MScan_status['bps_mscan_time_stop'],
407
+ 'bps_mscan_time_end' => $MScan_status['bps_mscan_time_end'],
408
+ 'bps_mscan_time_remaining' => $MScan_status['bps_mscan_time_remaining'],
409
+ 'bps_mscan_status' => '4',
410
+ 'bps_mscan_last_scan_timestamp' => $MScan_status['bps_mscan_last_scan_timestamp'],
411
+ 'bps_mscan_total_time' => $MScan_status['bps_mscan_total_time'],
412
+ 'bps_mscan_total_website_files' => $MScan_status['bps_mscan_total_website_files'],
413
+ 'bps_mscan_total_wp_core_files' => $MScan_status['bps_mscan_total_wp_core_files'],
414
+ 'bps_mscan_total_non_image_files' => $MScan_status['bps_mscan_total_non_image_files'],
415
+ 'bps_mscan_total_image_files' => $MScan_status['bps_mscan_total_image_files'],
416
+ 'bps_mscan_total_all_scannable_files' => $MScan_status['bps_mscan_total_all_scannable_files'],
417
+ 'bps_mscan_total_skipped_files' => $MScan_status['bps_mscan_total_skipped_files'],
418
+ 'bps_mscan_total_suspect_files' => $MScan_status['bps_mscan_total_suspect_files'],
419
+ 'bps_mscan_suspect_skipped_files' => $MScan_status['bps_mscan_suspect_skipped_files'],
420
+ 'bps_mscan_total_suspect_db' => $MScan_status['bps_mscan_total_suspect_db'],
421
+ 'bps_mscan_total_ignored_files' => $MScan_status['bps_mscan_total_ignored_files']
422
+ );
423
+
424
+ foreach( $MScan_status_db as $key => $value ) {
425
+ update_option('bulletproof_security_options_MScan_status', $MScan_status_db);
426
+ }
427
+ }
428
+ }
429
+
430
+ bpsPro_mscan_displayed_messages();
431
+
432
+ // Form Processing: Scan Time Estimate Tool Form > Start
433
+ if ( isset( $_POST['Submit-MScan-Time-Estimate'] ) && current_user_can('manage_options') ) {
434
+ check_admin_referer('bulletproof_security_mscan_time_estimate');
435
+
436
+ $MScan_status = get_option('bulletproof_security_options_MScan_status');
437
+ $MScan_options = get_option('bulletproof_security_options_MScan');
438
+ $mstime = $MScan_options['mscan_max_time_limit'];
439
+ ini_set('max_execution_time', $mstime);
440
+
441
+ $MScan_status_db = array(
442
+ 'bps_mscan_time_start' => time(),
443
+ 'bps_mscan_time_stop' => '',
444
+ 'bps_mscan_time_end' => time() + 30,
445
+ 'bps_mscan_time_remaining' => time() + 30,
446
+ 'bps_mscan_status' => '1',
447
+ 'bps_mscan_last_scan_timestamp' => $MScan_status['bps_mscan_last_scan_timestamp'],
448
+ 'bps_mscan_total_time' => $MScan_status['bps_mscan_total_time'],
449
+ 'bps_mscan_total_website_files' => $MScan_status['bps_mscan_total_website_files'],
450
+ 'bps_mscan_total_wp_core_files' => $MScan_status['bps_mscan_total_wp_core_files'],
451
+ 'bps_mscan_total_non_image_files' => $MScan_status['bps_mscan_total_non_image_files'],
452
+ 'bps_mscan_total_image_files' => $MScan_status['bps_mscan_total_image_files'],
453
+ 'bps_mscan_total_all_scannable_files' => $MScan_status['bps_mscan_total_all_scannable_files'],
454
+ 'bps_mscan_total_skipped_files' => $MScan_status['bps_mscan_total_skipped_files'],
455
+ 'bps_mscan_total_suspect_files' => $MScan_status['bps_mscan_total_suspect_files'],
456
+ 'bps_mscan_suspect_skipped_files' => $MScan_status['bps_mscan_suspect_skipped_files'],
457
+ 'bps_mscan_total_suspect_db' => $MScan_status['bps_mscan_total_suspect_db'],
458
+ 'bps_mscan_total_ignored_files' => $MScan_status['bps_mscan_total_ignored_files']
459
+ );
460
+
461
+ foreach( $MScan_status_db as $key => $value ) {
462
+ update_option('bulletproof_security_options_MScan_status', $MScan_status_db);
463
+ }
464
+
465
+ $mscan_scan_skipped_files_message = '';
466
+ $mscan_image_files_message = '';
467
+
468
+ if ( $MScan_options['mscan_scan_skipped_files'] == 'On' ) {
469
+ $mscan_scan_skipped_files_message = '<br><font color="blue"><strong>'.__('Skipped file scanning is turned On. The scan time estimate will be for scanning skipped files only.', 'bulletproof-security').'</strong></font>';
470
+ }
471
+
472
+ if ( $MScan_options['mscan_scan_images'] == 'On' ) {
473
+ $mscan_image_files_message = '<br><font color="blue"><strong>'.__('Image file scanning is turned On. On some web hosts scanning image files will cause the scan to stop/fail.', 'bulletproof-security').'</strong></font>';
474
+ }
475
+
476
+ echo $bps_topDiv;
477
+ $text = '<font color="green"><strong>'.__('Calculating Estimated Scan Time. Notes: The Scan Time Estimate Tool does not affect or change any previous scan results except for the Total Scan Time, which will be changed to the estimated scan time. If the scan time estimate hangs or is taking too long click the Stop Scan button to stop calculating the estimated scan time.', 'bulletproof-security').'</strong></font>'.$mscan_scan_skipped_files_message.$mscan_image_files_message;
478
+ echo $text;
479
+ echo $bps_bottomDiv;
480
+ }
481
+
482
+ // Form Processing: MScan Start
483
+ if ( isset( $_POST['Submit-MScan-Start'] ) && current_user_can('manage_options') ) {
484
+ check_admin_referer( 'bulletproof_security_mscan_start' );
485
+
486
+ $MScan_status = get_option('bulletproof_security_options_MScan_status');
487
+ $MScan_options = get_option('bulletproof_security_options_MScan');
488
+ $mstime = $MScan_options['mscan_max_time_limit'];
489
+ ini_set('max_execution_time', $mstime);
490
+
491
+ $MScan_status_db = array(
492
+ 'bps_mscan_time_start' => time(),
493
+ 'bps_mscan_time_stop' => '',
494
+ 'bps_mscan_time_end' => time() + 30,
495
+ 'bps_mscan_time_remaining' => time() + 30,
496
+ 'bps_mscan_status' => '1',
497
+ 'bps_mscan_last_scan_timestamp' => $MScan_status['bps_mscan_last_scan_timestamp'],
498
+ 'bps_mscan_total_time' => $MScan_status['bps_mscan_total_time'],
499
+ 'bps_mscan_total_website_files' => $MScan_status['bps_mscan_total_website_files'],
500
+ 'bps_mscan_total_wp_core_files' => $MScan_status['bps_mscan_total_wp_core_files'],
501
+ 'bps_mscan_total_non_image_files' => $MScan_status['bps_mscan_total_non_image_files'],
502
+ 'bps_mscan_total_image_files' => $MScan_status['bps_mscan_total_image_files'],
503
+ 'bps_mscan_total_all_scannable_files' => $MScan_status['bps_mscan_total_all_scannable_files'],
504
+ 'bps_mscan_total_skipped_files' => $MScan_status['bps_mscan_total_skipped_files'],
505
+ 'bps_mscan_total_suspect_files' => $MScan_status['bps_mscan_total_suspect_files'],
506
+ 'bps_mscan_suspect_skipped_files' => $MScan_status['bps_mscan_suspect_skipped_files'],
507
+ 'bps_mscan_total_suspect_db' => $MScan_status['bps_mscan_total_suspect_db'],
508
+ 'bps_mscan_total_ignored_files' => $MScan_status['bps_mscan_total_ignored_files']
509
+ );
510
+
511
+ foreach( $MScan_status_db as $key => $value ) {
512
+ update_option('bulletproof_security_options_MScan_status', $MScan_status_db);
513
+ }
514
+
515
+ $mscan_scan_skipped_files_message = '';
516
+
517
+ if ( $MScan_options['mscan_scan_skipped_files'] == 'On' ) {
518
+ $mscan_scan_skipped_files_message = '<br><font color="blue"><strong>'.__('Skipped file scanning is turned On. Only skipped files will be scanned.', 'bulletproof-security').'</strong></font>';
519
+ }
520
+
521
+ echo $bps_topDiv;
522
+ $text = '<font color="green"><strong>'.__('Calculating Scan Time. You can leave the MScan page while a scan is in progress and the scan will continue until it is completed or you can open another Browser Tab/Window and leave this Browser Tab/Window open.', 'bulletproof-security').'</strong></font>'.$mscan_scan_skipped_files_message;
523
+ echo $text;
524
+ echo $bps_bottomDiv;
525
+ }
526
+
527
+ $MScan_status = get_option('bulletproof_security_options_MScan_status');
528
+ $MScan_options = get_option('bulletproof_security_options_MScan');
529
+
530
+ $mscan_start_time = $MScan_status['bps_mscan_time_start'];
531
+ $mscan_future_time = $MScan_status['bps_mscan_time_remaining'];
532
+ $mscan_status = $MScan_status['bps_mscan_status'];
533
+ $mscan_timestamp = $MScan_status['bps_mscan_last_scan_timestamp'];
534
+ $mscan_total_time = $MScan_status['bps_mscan_total_time'];
535
+ $mscan_suspect_files = $MScan_status['bps_mscan_total_suspect_files'];
536
+ $mscan_suspect_skipped_files = $MScan_status['bps_mscan_suspect_skipped_files'];
537
+ $mscan_suspect_db = $MScan_status['bps_mscan_total_suspect_db'];
538
+ $mscan_skipped_files = $MScan_status['bps_mscan_total_skipped_files'];
539
+
540
+ if ( $MScan_options['mscan_scan_skipped_files'] == 'On' ) {
541
+ $mscan_total_files = $MScan_status['bps_mscan_total_skipped_files'];
542
+ $skipped_scan = 1;
543
+ } else {
544
+ $mscan_total_files = $MScan_status['bps_mscan_total_all_scannable_files'];
545
+ $skipped_scan = 0;
546
+ }
547
+
548
+ if ( $MScan_options['mscan_scan_database'] == 'On' ) {
549
+ $mscan_db_scan = 1;
550
+ } else {
551
+ $mscan_db_scan = 0;
552
+ }
553
+
554
+ if ( $MScan_status['bps_mscan_status'] == '1' || $MScan_status['bps_mscan_status'] == '2' || $MScan_status['bps_mscan_status'] == '3' ) { ?>
555
+
556
+ <div id="MscanProgressBar">
557
+ <div id="MscanBar" class="mscan-progress-bar"></div>
558
+ </div>
559
+
560
+ <?php } ?>
561
+
562
+ <div id="MScan-Time-Container">
563
+ <div id="mscantimer"></div>
564
+ </div>
565
+
566
+ <script type="text/javascript">
567
+ /* <![CDATA[ */
568
+ var mscanStatusI = <?php echo json_encode( $mscan_status, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE ); ?>;
569
+ var timeStampI = <?php echo json_encode( $mscan_timestamp, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE ); ?>;
570
+ var totalScanTimeI = <?php echo json_encode( $mscan_total_time, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE ); ?>;
571
+ var totalFilesI = <?php echo json_encode( $mscan_total_files, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE ); ?>;
572
+ var skippedFilesI = <?php echo json_encode( $mscan_skipped_files, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE ); ?>;
573
+ var skippedScanI = <?php echo json_encode( $skipped_scan, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE ); ?>;
574
+ var dbScanI = <?php echo json_encode( $mscan_db_scan, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE ); ?>;
575
+ var suspectI = <?php echo json_encode( $mscan_suspect_files, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE ); ?>;
576
+ var suspectSkipI = <?php echo json_encode( $mscan_suspect_skipped_files, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE ); ?>;
577
+ var suspectDBI = <?php echo json_encode( $mscan_suspect_db, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE ); ?>;
578
+
579
+ var minuteI = 60;
580
+ var hourI = 60 * 60;
581
+ var dayI = 60 * 60 * 24;
582
+ var dayFloorI = Math.floor(totalScanTimeI / dayI);
583
+ var hourFloorI = Math.floor((totalScanTimeI - dayFloorI * dayI) / hourI);
584
+ var minuteFloorI = Math.floor((totalScanTimeI - dayFloorI * dayI - hourFloorI * hourI) / minuteI);
585
+ var secondFloorI = Math.floor((totalScanTimeI - dayFloorI * dayI - hourFloorI * hourI - minuteFloorI * minuteI));
586
+ var hourFloorFI = ("0" + hourFloorI).slice(-2);
587
+ var minuteFloorFI = ("0" + minuteFloorI).slice(-2);
588
+ var secondFloorFI = ("0" + secondFloorI).slice(-2);
589
+
590
+ if ( totalFilesI == "" ) {
591
+ totalFilesI = 0;
592
+ }
593
+
594
+ if ( skippedFilesI == "" ) {
595
+ skippedFilesI = 0;
596
+ }
597
+
598
+ if ( suspectI == "" ) {
599
+ suspectI = 0;
600
+ }
601
+
602
+ if ( suspectSkipI == "" ) {
603
+ suspectSkipI = 0;
604
+ }
605
+
606
+ if ( suspectDBI == "" ) {
607
+ suspectDBI = 0;
608
+ }
609
+
610
+ if ( mscanStatusI == 4 && skippedScanI == 0 ) {
611
+
612
+ if ( dbScanI == 1 ) {
613
+ document.getElementById("mscantimer").innerHTML = "Scan Completed [" + timeStampI + "] : Total Scan Time: " + hourFloorFI + ":" + minuteFloorFI + ":" + secondFloorFI + " : Total Files Scanned: " + totalFilesI + " : Skipped Files: " + skippedFilesI + " : Suspicious Files: " + suspectI + " : Suspicious DB Entries: " + suspectDBI;
614
+ } else {
615
+ document.getElementById("mscantimer").innerHTML = "Scan Completed [" + timeStampI + "] : Total Scan Time: " + hourFloorFI + ":" + minuteFloorFI + ":" + secondFloorFI + " : Total Files Scanned: " + totalFilesI + " : Skipped Files: " + skippedFilesI + " : Suspicious Files: " + suspectI;
616
+ }
617
+ }
618
+
619
+ if ( mscanStatusI == 4 && skippedScanI == 1 ) {
620
+ document.getElementById("mscantimer").innerHTML = "Skipped File Scan Completed [" + timeStampI + "] : Total Scan Time: " + hourFloorFI + ":" + minuteFloorFI + ":" + secondFloorFI + " : Total Files Scanned: " + totalFilesI + " : Suspicious Files: " + suspectSkipI;
621
+ }
622
+
623
+ var MScan = setInterval(function(){ MScanTimer() }, 1000);
624
+
625
+ function MScanTimer() {
626
+
627
+ var currentTime = new Date().getTime() / 1000;
628
+ var futureTime = <?php echo json_encode( $mscan_future_time, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE ); ?>;
629
+ var scanStart = <?php echo json_encode( $mscan_start_time, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE ); ?>;
630
+ var mscanStatus = <?php echo json_encode( $mscan_status, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE ); ?>;
631
+ var totalFiles = <?php echo json_encode( $mscan_total_files, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE ); ?>;
632
+ var timeRemaining = futureTime - currentTime;
633
+ var minute = 60;
634
+ var hour = 60 * 60;
635
+ var day = 60 * 60 * 24;
636
+ // Right to left direction decrease - 100% to 0% width
637
+ var pBarPercentWidthDecrease = Math.round(timeRemaining/(futureTime - scanStart) * 100);
638
+ // Left to right direction increase - 0% to 100% width
639
+ var pBarPercentWidthIncrease = 100 - pBarPercentWidthDecrease;
640
+ var dayFloor = Math.floor(timeRemaining / day);
641
+ var hourFloor = Math.floor((timeRemaining - dayFloor * day) / hour);
642
+ var minuteFloor = Math.floor((timeRemaining - dayFloor * day - hourFloor * hour) / minute);
643
+ var secondFloor = Math.floor((timeRemaining - dayFloor * day - hourFloor * hour - minuteFloor * minute));
644
+ var hourFloorF = ("0" + hourFloor).slice(-2);
645
+ var minuteFloorF = ("0" + minuteFloor).slice(-2);
646
+ var secondFloorF = ("0" + secondFloor).slice(-2);
647
+ var ScanCompleted = "<?php bpsPro_mscan_completed(); ?>";
648
+
649
+ if (secondFloor <= 0 && minuteFloor <= 0 && hourFloor <= 0 ) {
650
+ window.location.reload(true);
651
+ document.getElementById("mscantimer").innerHTML = ScanCompleted;
652
+ clearInterval(MScan);
653
+
654
+ } else {
655
+
656
+ if (futureTime > currentTime) {
657
+
658
+ if ( mscanStatus == 1 ) {
659
+ document.getElementById("mscantimer").innerHTML = "Calculating Scan Time: " + hourFloorF + ":" + minuteFloorF + ":" + secondFloorF;
660
+ document.getElementById("MscanBar").style.width = pBarPercentWidthDecrease + '%';
661
+ document.getElementById("MscanBar").innerHTML = pBarPercentWidthDecrease + '%';
662
+ }
663
+
664
+ if ( mscanStatus == 2 || mscanStatus == 3 ) {
665
+ document.getElementById("mscantimer").innerHTML = "Scan Completion Time Remaining: " + hourFloorF + ":" + minuteFloorF + ":" + secondFloorF + " : Scanning " + totalFiles + " Files";
666
+ document.getElementById("MscanBar").style.width = pBarPercentWidthIncrease + '%';
667
+ document.getElementById("MscanBar").innerHTML = pBarPercentWidthIncrease + '%';
668
+ }
669
+ }
670
+ }
671
+ }
672
+ /* ]]> */
673
+ </script>
674
+
675
+ <div id="mscan-start" style="float:left;margin-right:20px">
676
+ <form name="MScanStart" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/mscan/mscan.php' ); ?>" method="post">
677
+ <?php wp_nonce_field('bulletproof_security_mscan_start'); ?>
678
+ <input type="submit" id="bps-mscan-start-button" name="Submit-MScan-Start" style="margin:10px 0px 10px 0px;" value="<?php esc_attr_e('Start Scan', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Click OK to start scanning or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
679
+ </form>
680
+ </div>
681
+
682
+ <div id="mscan-stop">
683
+ <form name="MScanStop" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/mscan/mscan.php' ); ?>" method="post">
684
+ <?php wp_nonce_field('bulletproof_security_mscan_stop'); ?>
685
+ <input type="submit" id="bps-mscan-stop-button" name="Submit-MScan-Stop" style="margin:10px 0px 10px 0px;" value="<?php esc_attr_e('Stop Scan', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Click OK to stop scanning or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
686
+ </form>
687
+ </div>
688
+
689
+ <div id="bps-accordion-1" class="bps-accordion-main-2" style="margin:0px 0px 20px 0px;display:none">
690
+ <h3 id="mscan-accordion-1"><?php _e('MScan Options & Tools', 'bulletproof-security'); ?></h3>
691
+ <div id="mscan-accordion-inner">
692
+
693
+ <?php
694
+
695
+ // Form Processing: MScan Options Form
696
+ // Important: This Form processing code MUST be above the Form & bpsPro_save_mscan_options() function so that new DB option values are current.
697
+ if ( isset( $_POST['Submit-MScan-Options'] ) && current_user_can('manage_options') ) {
698
+ check_admin_referer('bulletproof_security_mscan_options');
699
+
700
+ $mscan_dirs = $_POST['mscan'];
701
+
702
+ switch( $_POST['Submit-MScan-Options'] ) {
703
+ case __('Save MScan Options', 'bulletproof-security'):
704
+
705
+ $mscan_dirs_checked = array();
706
+
707
+ if ( ! empty( $mscan_dirs ) ) {
708
+
709
+ foreach ( $mscan_dirs as $key => $value ) {
710
+
711
+ if ( $value == '1' ) {
712
+ $mscan_dirs_checked[$key] = $value;
713
+ }
714
+ }
715
+ }
716
+
717
+ $source = $_SERVER['DOCUMENT_ROOT'];
718
+
719
+ if ( is_dir($source) ) {
720
+
721
+ $iterator = new DirectoryIterator($source);
722
+ $dir_array = array();
723
+
724
+ foreach ( $iterator as $files ) {
725
+
726
+ if ( $files->isDir() && ! $files->isDot() ) {
727
+
728
+ if ( ! empty( $files ) ) {
729
+ $dir_array[] = $files->getFilename();
730
+ }
731
+ }
732
+ }
733
+
734
+ $dir_flip = array_flip($dir_array);
735
+
736
+ // replace values in the flipped array with blank values.
737
+ $mscan_actual_dirs = array();
738
+
739
+ foreach ( $dir_flip as $key => $value ) {
740
+ $mscan_actual_dirs[$key] = preg_replace( '/\d/', "", $value );
741
+ }
742
+
743
+ // get dirs that do not exist in the bps_mscan_dirs db option. ie an unchecked form checkbox.
744
+ $mscan_diff_key_dir = array_diff_key( $mscan_actual_dirs, $mscan_dirs_checked );
745
+
746
+ // merge checked form checkboxes and dir array with blank values
747
+ $mscan_array_merge = array_merge( $mscan_diff_key_dir, $mscan_dirs_checked );
748
+ ksort($mscan_array_merge);
749
+
750
+ }
751
+ break;
752
+ }
753
+
754
+ $MS_Options = array(
755
+ 'bps_mscan_dirs' => $mscan_array_merge,
756
+ 'mscan_max_file_size' => esc_html($_POST['mscan_max_file_size']),
757
+ 'mscan_max_time_limit' => esc_html($_POST['mscan_max_time_limit']),
758
+ 'mscan_scan_database' => $_POST['mscan_scan_database_select'],
759
+ 'mscan_scan_images' => $_POST['mscan_scan_images_select'],
760
+ 'mscan_scan_skipped_files' => $_POST['mscan_scan_skipped_files_select'],
761
+ 'mscan_scan_delete_tmp_files' => $_POST['mscan_scan_delete_tmp_files_select'],
762
+ 'mscan_scan_frequency' => 'Off',
763
+ 'mscan_exclude_dirs' => $_POST['mscan_exclude_dirs']
764
+ );
765
+
766
+ foreach( $MS_Options as $key => $value ) {
767
+ update_option('bulletproof_security_options_MScan', $MS_Options);
768
+ }
769
+
770
+ $MScan_options = get_option('bulletproof_security_options_MScan');
771
+ $MScan_status = get_option('bulletproof_security_options_MScan_status');
772
+ $mscan_scan_skipped_files_message = '';
773
+ $mscan_image_files_message = '';
774
+
775
+ if ( $MScan_options['mscan_scan_skipped_files'] == 'On' && $MScan_status['bps_mscan_total_skipped_files'] > 0 ) {
776
+ $mscan_scan_skipped_files_message = '<br><font color="blue"><strong>'.__('Skipped file scanning is turned On. Only skipped files will be scanned.', 'bulletproof-security').'</strong></font>';
777
+ }
778
+
779
+ if ( $MScan_options['mscan_scan_skipped_files'] == 'On' && $MScan_status['bps_mscan_total_skipped_files'] <= 0 ) {
780
+ $mscan_scan_skipped_files_message = '<br><font color="blue"><strong>'.__('Skipped file scanning is turned On. There are no skipped files to be scanned. Either there really are not any skipped files to scan or you have not run a regular scan yet with the Skipped File Scan option turned Off.', 'bulletproof-security').'</strong></font>';
781
+ }
782
+
783
+ if ( $MScan_options['mscan_scan_images'] == 'On' ) {
784
+ $mscan_image_files_message = '<br><font color="blue"><strong>'.__('Image file scanning is turned On. On some web hosts scanning image files will cause the scan to stop/fail.', 'bulletproof-security').'</strong></font>';
785
+ }
786
+
787
+ echo $bps_topDiv;
788
+ $text = '<font color="green"><strong>'.__('MScan Options saved.', 'bulletproof-security').'</strong></font>'.$mscan_scan_skipped_files_message.$mscan_image_files_message;
789
+ echo $text;
790
+ echo $bps_bottomDiv;
791
+ }
792
+
793
+ // Get any new dirs that have been created and remove any old dirs from the bps_mscan_dirs db option.
794
+ // Update the bps_mscan_dirs db option for use in the MscanOptions Form.
795
+ function bpsPro_save_mscan_options() {
796
+
797
+ $source = $_SERVER['DOCUMENT_ROOT'];
798
+
799
+ if ( is_dir($source) ) {
800
+
801
+ $MScan_options = get_option('bulletproof_security_options_MScan');
802
+ $iterator = new DirectoryIterator($source);
803
+ $dir_array = array();
804
+
805
+ foreach ( $iterator as $files ) {
806
+
807
+ if ( $files->isDir() && ! $files->isDot() ) {
808
+
809
+ if ( ! empty( $files ) ) {
810
+ $dir_array[] = $files->getFilename();
811
+ }
812
+ }
813
+ }
814
+
815
+ $dir_flip = array_flip($dir_array);
816
+
817
+ // replace values in the flipped array, good for bulk replacing all values. ie all dirs found.
818
+ $mscan_actual_dirs = array();
819
+
820
+ foreach ( $dir_flip as $key => $value ) {
821
+ $mscan_actual_dirs[$key] = preg_replace( '/\d+/', "1", $value );
822
+ }
823
+
824
+ $MScan_options = get_option('bulletproof_security_options_MScan');
825
+
826
+ $mscan_dirs_options_inner_array = array();
827
+
828
+ foreach ( $MScan_options['bps_mscan_dirs'] as $key => $value ) {
829
+ $mscan_dirs_options_inner_array[$key] = $value;
830
+ }
831
+
832
+ // get new dirs found that do not exist in the bps_mscan_dirs db option. ie a new dir has been created.
833
+ $mscan_diff_key_dir = array_diff_key($mscan_actual_dirs, $mscan_dirs_options_inner_array);
834
+
835
+ // get old dirs that still exist in the bps_mscan_dirs db option. ie a dir has been deleted.
836
+ $mscan_diff_key_options = array_diff_key($mscan_dirs_options_inner_array, $dir_flip);
837
+
838
+ if ( ! empty($mscan_diff_key_options) ) {
839
+
840
+ foreach ( $mscan_diff_key_options as $key => $value ) {
841
+ unset($mscan_dirs_options_inner_array[$key]);
842
+ }
843
+
844
+ // merge any new dirs found
845
+ $mscan_array_merge = array_merge( $mscan_diff_key_dir, $mscan_dirs_options_inner_array );
846
+ ksort($mscan_array_merge);
847
+
848
+ } else {
849
+
850
+ // merge any new dirs found
851
+ $mscan_array_merge = array_merge( $mscan_diff_key_dir, $mscan_dirs_options_inner_array );
852
+ ksort($mscan_array_merge);
853
+ }
854
+
855
+ $MS_Options = array(
856
+ 'bps_mscan_dirs' => $mscan_array_merge,
857
+ 'mscan_max_file_size' => $MScan_options['mscan_max_file_size'],
858
+ 'mscan_max_time_limit' => $MScan_options['mscan_max_time_limit'],
859
+ 'mscan_scan_database' => $MScan_options['mscan_scan_database'],
860
+ 'mscan_scan_images' => $MScan_options['mscan_scan_images'],
861
+ 'mscan_scan_skipped_files' => $MScan_options['mscan_scan_skipped_files'],
862
+ 'mscan_scan_delete_tmp_files' => $MScan_options['mscan_scan_delete_tmp_files'],
863
+ 'mscan_scan_frequency' => 'Off',
864
+ 'mscan_exclude_dirs' => $MScan_options['mscan_exclude_dirs']
865
+ );
866
+
867
+ foreach( $MS_Options as $key => $value ) {
868
+ update_option('bulletproof_security_options_MScan', $MS_Options);
869
+ }
870
+ }
871
+ }
872
+
873
+ bpsPro_save_mscan_options();
874
+
875
+ $scrolltoExcludeDirs = isset($_REQUEST['scrolltoExcludeDirs']) ? (int) $_REQUEST['scrolltoExcludeDirs'] : 0;
876
+
877
+ // Form: MScan Options Form
878
+ echo '<form name="MscanOptions" action="'.admin_url( 'admin.php?page=bulletproof-security/admin/mscan/mscan.php' ).'" method="post">';
879
+ wp_nonce_field('bulletproof_security_mscan_options');
880
+ $MScan_options = get_option('bulletproof_security_options_MScan');
881
+
882
+ echo '<table class="widefat" style="text-align:left;">';
883
+ echo '<thead>';
884
+ echo '<tr>';
885
+ echo '<th scope="col" style="width:40%;font-size:1.13em;background-color:transparent;"><strong>'.__('Hosting Account Root Folders', 'bulletproof-security').'</strong></th>';
886
+ echo '<th scope="col" style="width:30%;font-size:1.13em;background-color:transparent;"><strong>'.__('MScan Options', 'bulletproof-security').'</strong></th>';
887
+ echo '<th scope="col" style="width:30%;font-size:1.13em;background-color:transparent;"><strong>'.__('MScan Tools', 'bulletproof-security').'</strong></th>';
888
+ echo '</tr>';
889
+ echo '</thead>';
890
+ echo '<tbody>';
891
+ echo '<tr>';
892
+
893
+ echo '<th scope="row" style="border-bottom:none;font-size:1.13em;vertical-align:top;">';
894
+
895
+ echo '<div id="MScancheckall" style="max-height:488px;overflow:auto;">';
896
+ echo '<table style="text-align:left;border-right:1px solid #e5e5e5;padding:5px;">';
897
+ echo '<thead>';
898
+ echo '<tr>';
899
+ echo '<th scope="col" style="width:20px;border-bottom:1px solid #e5e5e5;background-color:transparent;"><strong><span style="margin-left:9px;font-size:.88em;">'.__('All', 'bulletproof-security').'</span></strong><br><input type="checkbox" class="checkallMScan" /></th>';
900
+ echo '<th scope="col" style="width:400px;font-size:1em;padding-top:20px;margin-right:20px;border-bottom:1px solid #e5e5e5;background-color:transparent;"><strong>'.__('Folder Name', 'bulletproof-security').'</strong></th>';
901
+ echo '</tr>';
902
+ echo '</thead>';
903
+ echo '<tbody>';
904
+ echo '<tr>';
905
+
906
+ foreach ( $MScan_options['bps_mscan_dirs'] as $key => $value ) {
907
+
908
+ if ( $value == '1' ) {
909
+ $checked = ( isset( $_POST['mscan[$key]'] ) ) ? $_POST['mscan[$key]'] : 'checked';
910
+ } else {
911
+ $checked = ( isset( $_POST['mscan[$key]'] ) ) ? $_POST['mscan[$key]'] : '';
912
+ }
913
+
914
+ if ( ! is_readable( $_SERVER['DOCUMENT_ROOT'] . '/' . $key ) ) {
915
+ echo "<td></td>";
916
+ echo '<td>'.$key.' <strong><font color="blue">'.__('Folder is not readable', 'bulletproof-security').'</font></strong></td>';
917
+ echo '</tr>';
918
+
919
+ } else {
920
+
921
+ $wp_index_file = $_SERVER['DOCUMENT_ROOT'] . '/' . $key . '/index.php';
922
+
923
+ if ( file_exists($wp_index_file) ) {
924
+ $check_string = file_get_contents($wp_index_file);
925
+ }
926
+
927
+ if ( file_exists($wp_index_file) && strpos( $check_string, "define('WP_USE_THEMES" ) ) {
928
+
929
+ $hover_icon = '<strong><font color="black"><span class="tooltip-250-80"><img src="'.plugins_url('/bulletproof-security/admin/images/question-mark.png').'" style="position:relative;top:3px;left:10px;" /><span>'.__('This folder contains another WordPress website. Click the MScan Read Me help button above and read the "Scanning Other WordPress Sites" help section.', 'bulletproof-security').'</span></span></font></strong><br>';
930
+
931
+ echo "<td><input type=\"checkbox\" id=\"mscandirs\" name=\"mscan[$key]\" value=\"1\" class=\"MScanALL\" $checked /></td>";
932
+ echo '<td>'.$key.$hover_icon.'</td>';
933
+ echo '</tr>';
934
+
935
+ } else {
936
+
937
+ echo "<td><input type=\"checkbox\" id=\"mscandirs\" name=\"mscan[$key]\" value=\"1\" class=\"MScanALL\" $checked /></td>";
938
+ echo '<td>'.$key.'</td>';
939
+ echo '</tr>';
940
+ }
941
+ }
942
+ }
943
+
944
+ echo '</tbody>';
945
+ echo '</table>';
946
+ echo '</div>'; // jQuery div parent
947
+ echo '</th>';
948
+
949
+ echo '<td style="border:none">';
950
+ echo '<div id="MScanOptions" style="margin:0px 0px 0px 0px;float:left;">';
951
+
952
+ $max_file_size = ( isset( $_POST['mscan_max_file_size'] ) ) ? $_POST['mscan_max_file_size'] : '400';
953
+ $max_time_limit = ( isset( $_POST['mscan_max_time_limit'] ) ) ? $_POST['mscan_max_time_limit'] : '300';
954
+
955
+ echo '<label for="bps-mscan-label" style="padding-right:5px">'.__('Max File Size Limit to Scan:', 'bulletproof-security').'</label>';
956
+ echo '<input type="text" name="mscan_max_file_size" class="regular-text-50-fixed" style="margin-bottom:5px" value="'; if ( @preg_match( '/\d/', $_POST['mscan_max_file_size'] ) ) { echo esc_html($max_file_size); } else { echo esc_html(trim(stripslashes($max_file_size))); } echo '" /> KB';
957
+ echo '<br>';
958
+
959
+ echo '<label for="bps-mscan-label" style="padding-right:23px">'.__('Max Time Limit to Scan:', 'bulletproof-security').'</label>';
960
+ echo '<input type="text" name="mscan_max_time_limit" class="regular-text-50-fixed" style="margin-bottom:5px" value="'; if ( @preg_match( '/\d/', $_POST['mscan_max_time_limit'] ) ) { echo esc_html($max_time_limit); } else { echo esc_html(trim(stripslashes($max_time_limit))); } echo '" /> Seconds';
961
+ echo '<br>';
962
+
963
+ echo '<label for="bps-mscan-label" style="">'.__('Exclude Individual Folders', 'bulletproof-security').'</label><strong><font color="black"><span class="tooltip-350-120"><img src="'.plugins_url('/bulletproof-security/admin/images/question-mark.png').'" style="position:relative;top:3px;left:10px;" /><span>'.__('Enter one folder path per line. Include folder slashes.', 'bulletproof-security').'<br>'.__('Example:', 'bulletproof-security').'<br>/parent-folder-1/child-folder-1/<br>/parent-folder-2/child-folder-2/<br><br>'.__('Click the MScan Read Me help button for more help info.', 'bulletproof-security').'</span></span></font></strong><br>';
964
+ // trimming whitespace does not work because I am not trimming newlines or returns
965
+ echo '<textarea class="text-area-340x60" name="mscan_exclude_dirs" style="width:340px;height:60px;margin-bottom:5px" tabindex="1">'.esc_html( trim(stripslashes($MScan_options['mscan_exclude_dirs']), " \t\0\x0B") ).'</textarea>';
966
+ echo '<input type="hidden" name="scrolltoExcludeDirs" id="scrolltoExcludeDirs" value="'.esc_html( $scrolltoExcludeDirs ).'" />';
967
+ echo '<br>';
968
+
969
+ echo '<label for="bps-mscan-label">'.__('Scan Database', 'bulletproof-security').'</label><br>';
970
+ echo '<select name="mscan_scan_database_select" class="form-340" style="margin-bottom:10px">';
971
+ echo '<option value="On"'. selected('On', $MScan_options['mscan_scan_database']).'>'.__('Database Scan On', 'bulletproof-security').'</option>';
972
+ echo '<option value="Off"'. selected('Off', $MScan_options['mscan_scan_database']).'>'.__('Database Scan Off', 'bulletproof-security').'</option>';
973
+ echo '</select><br>';
974
+
975
+ echo '<label for="bps-mscan-label">'.__('Scan Image Files (Stegosploit|Exif Hack)', 'bulletproof-security').'</label><br>';
976
+ echo '<select name="mscan_scan_images_select" class="form-340" style="margin-bottom:10px">';
977
+ echo '<option value="Off"'. selected('Off', $MScan_options['mscan_scan_images']).'>'.__('Image File Scan Off', 'bulletproof-security').'</option>';
978
+ echo '<option value="On"'. selected('On', $MScan_options['mscan_scan_images']).'>'.__('Image File Scan On', 'bulletproof-security').'</option>';
979
+ echo '</select><br>';
980
+
981
+ echo '<label for="bps-mscan-label">'.__('Scan Skipped Files Only', 'bulletproof-security').'</label><strong><font color="black"><span class="tooltip-350-120"><img src="'.plugins_url('/bulletproof-security/admin/images/question-mark.png').'" style="position:relative;top:3px;left:10px;" /><span>'.__('When Skipped File Scan is On only skipped files will be scanned. Note: The only MScan option setting that has any affect while Skipped File Scan is On is Image File Scan On or Off.', 'bulletproof-security').'<br><br>'.__('Click the MScan Read Me help button for more help info.', 'bulletproof-security').'</span></span></font></strong><br>';
982
+ echo '<select name="mscan_scan_skipped_files_select" class="form-340" style="margin-bottom:10px">';
983
+ echo '<option value="Off"'. selected('Off', $MScan_options['mscan_scan_skipped_files']).'>'.__('Skipped File Scan Off', 'bulletproof-security').'</option>';
984
+ echo '<option value="On"'. selected('On', $MScan_options['mscan_scan_skipped_files']).'>'.__('Skipped File Scan On', 'bulletproof-security').'</option>';
985
+ echo '</select><br>';
986
+
987
+ echo '<label for="bps-mscan-label">'.__('Automatically Delete /tmp Files', 'bulletproof-security').'</label><br>';
988
+ echo '<select name="mscan_scan_delete_tmp_files_select" class="form-340" style="margin-bottom:10px">';
989
+ echo '<option value="On"'. selected('On', $MScan_options['mscan_scan_delete_tmp_files']).'>'.__('Delete Tmp Files On', 'bulletproof-security').'</option>';
990
+ echo '<option value="Off"'. selected('Off', $MScan_options['mscan_scan_delete_tmp_files']).'>'.__('Delete Tmp Files Off', 'bulletproof-security').'</option>';
991
+ echo '</select><br>';
992
+
993
+ echo '<label for="bps-mscan-label">'.__('Scheduled Scan Frequency (BPS Pro only)', 'bulletproof-security').'</label><br>';
994
+ echo '<select name="mscan_scan_frequency_select" class="form-340" style="margin-bottom:15px">';
995
+ echo '<option value="Off"'. selected('Off', $MScan_options['mscan_scan_frequency']).'>'.__('Scheduled Scan Off', 'bulletproof-security').'</option>';
996
+ echo '<option value="60"'. selected('60', $MScan_options['mscan_scan_frequency']).'>'.__('Run Scan Every 60 Minutes', 'bulletproof-security').'</option>';
997
+ echo '<option value="180"'. selected('180', $MScan_options['mscan_scan_frequency']).'>'.__('Run Scan Every 3 Hours', 'bulletproof-security').'</option>';
998
+ echo '<option value="360"'. selected('360', $MScan_options['mscan_scan_frequency']).'>'.__('Run Scan Every 6 Hours', 'bulletproof-security').'</option>';
999
+ echo '<option value="720"'. selected('720', $MScan_options['mscan_scan_frequency']).'>'.__('Run Scan Every 12 Hours', 'bulletproof-security').'</option>';
1000
+ echo '<option value="1440"'. selected('1440', $MScan_options['mscan_scan_frequency']).'>'.__('Run Scan Every 24 Hours', 'bulletproof-security').'</option>';
1001
+ echo '</select><br>';
1002
+
1003
+ echo "<p><input type=\"submit\" name=\"Submit-MScan-Options\" value=\"".esc_attr__('Save MScan Options', 'bulletproof-security')."\" class=\"button bps-button\" onclick=\"return confirm('".__('Click OK to save MScan Options or click Cancel', 'bulletproof-security')."')\" /></p></form>";
1004
+
1005
+ echo '</div>';
1006
+ echo '</td>';
1007
+ echo '<td style="border:none">';
1008
+ echo '<div id="MScanOptions" style="margin:82px 0px 0px 0px;float:left;">';
1009
+
1010
+ echo '<form name="MScanTimeEstimate" action="'.admin_url( 'admin.php?page=bulletproof-security/admin/mscan/mscan.php' ).'" method="post">';
1011
+ wp_nonce_field('bulletproof_security_mscan_time_estimate');
1012
+ echo "<input type=\"submit\" id=\"bps-mscan-time-estimate-button\" name=\"Submit-MScan-Time-Estimate\" value=\"".esc_attr__('Scan Time Estimate Tool', 'bulletproof-security')."\" class=\"button bps-button\" style=\"width:175px\" onclick=\"return confirm('".__('IMPORTANT: You can stop the scan time estimate if it hangs or is taking too long by clicking the Stop Scan button.\n\n-------------------------------------------------------------\n\nThis tool allows you to check the estimated total scan time of a scan based on your MScan option settings without actually performing/running a scan. Note: This tool does not affect or change any previous scan results except for the Total Scan Time, which will be changed to the estimated scan time.\n\n-------------------------------------------------------------\n\nExample Usage: You can check or uncheck Hosting Account Root Folders checkboxes and change any other MScan option settings, save your MScan option settings and then run the Scan Time Estimate Tool to get the total estimated time that the actual scan will take. For additional help information click the MScan Read Me help button.\n\n-------------------------------------------------------------\n\nClick OK to get a scan time estimate or click Cancel', 'bulletproof-security')."')\" />";
1013
+ echo '</form><br>';
1014
+
1015
+ echo '<form name="MScanDeleteStatus" action="'.admin_url( 'admin.php?page=bulletproof-security/admin/mscan/mscan.php' ).'" method="post">';
1016
+ wp_nonce_field('bulletproof_security_mscan_delete_status');
1017
+ echo "<input type=\"submit\" name=\"Submit-MScan-Delete-Status\" value=\"".esc_attr__('Delete Scan Status Tool', 'bulletproof-security')."\" class=\"button bps-button\" style=\"width:175px\" onclick=\"return confirm('".__('This tool allows you to delete all of the MScan Status option values.\n\n-------------------------------------------------------------\n\nThe Scan Completed timestamp, Total Scan Time, Total Files Scanned, Skipped Files, Suspicious Files and Suspicious DB Entries status values will be deleted and will either display blank or 0. For additional help information click the MScan Read Me help button.\n\n-------------------------------------------------------------\n\nClick OK to delete scan status option values or click Cancel', 'bulletproof-security')."')\" />";
1018
+ echo '</form><br>';
1019
+
1020
+ echo '<form name="MScanDeleteAllScanData" action="'.admin_url( 'admin.php?page=bulletproof-security/admin/mscan/mscan.php' ).'" method="post">';
1021
+ wp_nonce_field('bulletproof_security_mscan_delete_all_scan_data');
1022
+ echo "<input type=\"submit\" name=\"Submit-MScan-Delete-All-Scan-Data\" value=\"".esc_attr__('Delete DB Scan Data Tool', 'bulletproof-security')."\" class=\"button bps-button\" style=\"width:175px\" onclick=\"return confirm('".__('Deleting all database scan data is a reset that deletes any/all changes you have made and saved using the View|Ignore|Delete Suspicious Files and View|Ignore Suspicious DB Entries Forms.\n\n-------------------------------------------------------------\n\nClick OK to delete all database Scan Data or click Cancel', 'bulletproof-security')."')\" />";
1023
+ echo '</form>';
1024
+
1025
+ echo '</div>';
1026
+ echo '</td>';
1027
+ echo '</tr>';
1028
+ echo '</tbody>';
1029
+ echo '</table>';
1030
+
1031
+ $UIoptions = get_option('bulletproof_security_options_theme_skin');
1032
+
1033
+ if ( $UIoptions['bps_ui_theme_skin'] == 'blue' ) { ?>
1034
+
1035
+ <script type="text/javascript">
1036
+ /* <![CDATA[ */
1037
+ jQuery(document).ready(function($) {
1038
+ $( "#MScancheckall tr:odd" ).css( "background-color", "#f9f9f9" );
1039
+ });
1040
+ /* ]]> */
1041
+ </script>
1042
+
1043
+ <?php } ?>
1044
+
1045
+ <script type="text/javascript">
1046
+ /* <![CDATA[ */
1047
+ jQuery(document).ready(function($){
1048
+ $('.checkallMScan').click(function() {
1049
+ $(this).parents('#MScancheckall:eq(0)').find('.MScanALL:checkbox').attr('checked', this.checked);
1050
+ });
1051
+ });
1052
+ /* ]]> */
1053
+ </script>
1054
+
1055
+ </div>
1056
+ <h3 id="mscan-accordion-2"><?php _e('View|Ignore|Delete Suspicious Files', 'bulletproof-security'); ?></h3>
1057
+ <div id="mscan-accordion-inner">
1058
+
1059
+ <?php
1060
+
1061
+ $nonce = wp_create_nonce( 'bps-anti-csrf' );
1062
+
1063
+ if ( isset( $_GET['mscan_view_file'] ) && 'view_file' == $_GET['mscan_view_file'] ) {
1064
+
1065
+ if ( ! wp_verify_nonce( $nonce, 'bps-anti-csrf' ) ) {
1066
+ die( 'CSRF Error: Invalid Nonce used in the MScan View File GET Request' );
1067
+
1068
+ } else {
1069
+
1070
+ ?>
1071
+
1072
+ <style>
1073
+ <!--
1074
+ .ui-accordion.bps-accordion .ui-accordion-content {overflow:hidden;}
1075
+ -->
1076
+ </style>
1077
+
1078
+ <script type="text/javascript">
1079
+ /* <![CDATA[ */
1080
+ jQuery(document).ready(function($){
1081
+ $( "#bps-accordion-1" ).accordion({
1082
+ collapsible: true,
1083
+ active: 1,
1084
+ autoHeight: true,
1085
+ clearStyle: true,
1086
+ heightStyle: "content"
1087
+ });
1088
+ });
1089
+ /* ]]> */
1090
+ </script>
1091
+
1092
+ <?php
1093
+ }
1094
+ }
1095
+
1096
+ // MScan Suspicious Files Form Proccessing - View, Ignore, Unignore or Delete Files
1097
+ // Note: This form processing code must be above the form so that the View File output is displayed above the Suspicious Files form.
1098
+ if ( isset( $_POST['Submit-MScan-Suspect-Form'] ) && current_user_can('manage_options') ) {
1099
+ check_admin_referer('bulletproof_security_mscan_suspicious_files');
1100
+
1101
+ ?>
1102
+
1103
+ <style>
1104
+ <!--
1105
+ .ui-accordion.bps-accordion .ui-accordion-content {overflow:hidden;}
1106
+ -->
1107
+ </style>
1108
+
1109
+ <script type="text/javascript">
1110
+ /* <![CDATA[ */
1111
+ jQuery(document).ready(function($){
1112
+ $( "#bps-accordion-1" ).accordion({
1113
+ collapsible: true,
1114
+ active: 1,
1115
+ autoHeight: true,
1116
+ clearStyle: true,
1117
+ heightStyle: "content"
1118
+ });
1119
+ });
1120
+ /* ]]> */
1121
+ </script>
1122
+
1123
+ <?php
1124
+
1125
+ $mscan_files = $_POST['mscan'];
1126
+ $MStable = $wpdb->prefix . "bpspro_mscan";
1127
+
1128
+ switch( $_POST['Submit-MScan-Suspect-Form'] ) {
1129
+ case __('Submit', 'bulletproof-security'):
1130
+
1131
+ $delete_files = array();
1132
+ $ignore_files = array();
1133
+ $unignore_files = array();
1134
+ $view_files = array();
1135
+
1136
+ if ( ! empty($mscan_files) ) {
1137
+
1138
+ foreach ( $mscan_files as $key => $value ) {
1139
+
1140
+ if ( $value == 'deletefile' ) {
1141
+ $delete_files[] = $key;
1142
+
1143
+ } elseif ( $value == 'ignorefile' ) {
1144
+ $ignore_files[] = $key;
1145
+
1146
+ } elseif ( $value == 'unignorefile' ) {
1147
+ $unignore_files[] = $key;
1148
+
1149
+ } elseif ( $value == 'viewfile' ) {
1150
+ $view_files[] = $key;
1151
+ }
1152
+ }
1153
+ }
1154
+
1155
+ if ( ! empty($delete_files) ) {
1156
+
1157
+ echo '<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>';
1158
+
1159
+ foreach ( $delete_files as $delete_file ) {
1160
+
1161
+ $MScanRowsDelete = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $MStable WHERE mscan_path = %s", $delete_file) );
1162
+
1163
+ foreach ( $MScanRowsDelete as $row ) {
1164
+ $path_parts = pathinfo($row->mscan_path);
1165
+ $filename = $path_parts['basename'];
1166
+
1167
+ @unlink($row->mscan_path);
1168
+ $delete_row = $wpdb->query( $wpdb->prepare( "DELETE FROM $MStable WHERE mscan_path = %s", $delete_file));
1169
+
1170
+ $text = '<strong><font color="green">'.$filename.__(' has been deleted.', 'bulletproof-security').'</font></strong><br>';
1171
+ echo $text;
1172
+ }
1173
+ }
1174
+ echo '</p></div>';
1175
+ }
1176
+
1177
+ if ( ! empty($ignore_files) ) {
1178
+
1179
+ echo '<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>';
1180
+
1181
+ foreach ( $ignore_files as $ignore_file ) {
1182
+
1183
+ $MScanRowsIgnore = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $MStable WHERE mscan_path = %s", $ignore_file) );
1184
+
1185
+ foreach ( $MScanRowsIgnore as $row ) {
1186
+ $path_parts = pathinfo($row->mscan_path);
1187
+ $filename = $path_parts['basename'];
1188
+
1189
+ $update_rows = $wpdb->update( $MStable, array( 'mscan_ignored' => 'ignore' ), array( 'mscan_path' => $row->mscan_path ) );
1190
+
1191
+ $text = '<strong><font color="green">'.$filename.__(' Current Status has been changed to Ignored File and this file will not be scanned in any future MScan Scans.', 'bulletproof-security').'</font></strong><br>';
1192
+ echo $text;
1193
+ }
1194
+ }
1195
+ echo '</p></div>';
1196
+ }
1197
+
1198
+ if ( ! empty($unignore_files) ) {
1199
+
1200
+ echo '<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>';
1201
+
1202
+ foreach ( $unignore_files as $unignore_file ) {
1203
+
1204
+ $MScanRowsUnignore = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $MStable WHERE mscan_path = %s", $unignore_file) );
1205
+
1206
+ foreach ( $MScanRowsUnignore as $row ) {
1207
+ $path_parts = pathinfo($row->mscan_path);
1208
+ $filename = $path_parts['basename'];
1209
+
1210
+ $update_rows = $wpdb->update( $MStable, array( 'mscan_ignored' => '' ), array( 'mscan_path' => $row->mscan_path ) );
1211
+
1212
+ $text = '<strong><font color="green">'.$filename.__(' Ignored File Status has been removed. The previous Status of the file will be displayed again and this file will be scanned in future MScan scans.', 'bulletproof-security').'</font></strong><br>';
1213
+ echo $text;
1214
+ }
1215
+ }
1216
+ echo '</p></div>';
1217
+ }
1218
+
1219
+ if ( ! empty($view_files) ) {
1220
+
1221
+ echo '<div id="message" style="width:97%;margin:-10px 0px 15px 0px;padding:1px 10px 5px 10px;background-color:#dfecf2;-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>';
1222
+
1223
+ foreach ( $view_files as $view_file ) {
1224
+
1225
+ $MScanRowsView = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $MStable WHERE mscan_path = %s", $view_file) );
1226
+
1227
+ foreach ( $MScanRowsView as $row ) {
1228
+ $filename = pathinfo( $row->mscan_path, PATHINFO_BASENAME );
1229
+ $ext = pathinfo( strtolower($row->mscan_path), PATHINFO_EXTENSION );
1230
+ $file_contents = file_get_contents($row->mscan_path);
1231
+
1232
+ if ( $ext == 'png' || $ext == 'gif' || $ext == 'bmp' || $ext == 'jpg' || $ext == 'jpeg' || $ext == 'tif' || $ext == 'tiff' ) {
1233
+
1234
+ $text = '<div style="margin:0px 0px 5px 0px;font-size:1.13em;font-weight:600"><span style="width:100px;margin:0px;padding:0px 6px 0px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.admin_url( "admin.php?page=bulletproof-security/admin/mscan/mscan.php&mscan_view_file=view_file&_wpnonce=$nonce" ).'" style="text-decoration:none;">'.__('Close File', 'bulletproof-security').'</a></span> '.$filename.' : '.__('MScan Pattern Match', 'bulletproof-security').': <span style="background-color:yellow;">'.esc_html($row->mscan_pattern).'</span><br>'.__('Only the MScan Pattern Match is displayed for images instead of the image file code.', 'bulletproof-security').'<br>'.__('Opening image files to view image file code does not work well in a Browser.', 'bulletproof-security').'<br>'.__('You can download suspicious image files and use a code editor like Notepad++ to check image file code for any malicious code.', 'bulletproof-security').'<br>'.__('If you are not sure what to check for or what is and is not malicious code then click the MScan Read Me help button.', 'bulletproof-security').'</div>';
1235
+
1236
+ echo $text;
1237
+ echo '<pre style="max-width:100%;">';
1238
+ echo esc_html($row->mscan_pattern);
1239
+ echo '</pre>';
1240
+
1241
+ } else {
1242
+
1243
+ $text = '<div style="margin:0px 0px 5px 0px;font-size:1.13em;font-weight:600"><span style="width:100px;margin:0px;padding:0px 6px 0px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.admin_url( "admin.php?page=bulletproof-security/admin/mscan/mscan.php&mscan_view_file=view_file&_wpnonce=$nonce" ).'" style="text-decoration:none;">'.__('Close File', 'bulletproof-security').'</a></span> '.$filename.' : '.__('MScan Pattern Match', 'bulletproof-security').': <span style="background-color:yellow;">'.esc_html($row->mscan_pattern).'</span><br>'.__('You can use your Browser\'s Search or Find feature to search the file contents/code displayed below using the MScan Pattern Match above for the suspicious code that was detected by MScan.', 'bulletproof-security').'<br>'.__('You can download suspicious files if you would like to check the file contents/code more extensively with a code editor like Notepad++.', 'bulletproof-security').'<br>'.__('If you are not sure what to check for or what is and is not malicious code then click the MScan Read Me help button.', 'bulletproof-security').'</div>';
1244
+
1245
+ echo $text;
1246
+ echo '<pre style="max-width:70%;height:200px;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;">';
1247
+ echo esc_html($file_contents);
1248
+ echo '</pre>';
1249
+ }
1250
+ }
1251
+ }
1252
+ echo '</p></div>';
1253
+ }
1254
+ break;
1255
+ }
1256
+ }
1257
+
1258
+ echo '<form name="MScanSuspiciousFiles" action="'.admin_url( 'admin.php?page=bulletproof-security/admin/mscan/mscan.php' ).'" method="post">';
1259
+ wp_nonce_field('bulletproof_security_mscan_suspicious_files');
1260
+
1261
+ $MStable = $wpdb->prefix . "bpspro_mscan";
1262
+ $db_rows = 'db';
1263
+ $clean_rows = 'clean';
1264
+ $safe_rows = 'safe';
1265
+ $MScanFilesRows = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $MStable WHERE mscan_type != %s AND mscan_status != %s AND mscan_status != %s", $db_rows, $clean_rows, $safe_rows ) );
1266
+
1267
+ echo '<div id="MScanSuspectcheckall" style="">';
1268
+ echo '<table class="widefat" style="margin-bottom:20px;">';
1269
+ echo '<thead>';
1270
+ echo '<tr>';
1271
+ echo '<th scope="col" style="width:10%;"><strong>'.__('Current Status', 'bulletproof-security').'</strong></th>';
1272
+ echo '<th scope="col" style="width:7%;"><br><strong>'.__('View<br>File', 'bulletproof-security').'</strong></th>';
1273
+ echo '<th scope="col" style="width:7%;"><input type="checkbox" class="checkallIgnore" style="text-align:left;margin-left:2px;" /><br><strong>'.__('Ignore<br>File', 'bulletproof-security').'</strong></th>';
1274
+ echo '<th scope="col" style="width:7%;"><input type="checkbox" class="checkallUnignore" style="text-align:left;margin-left:2px;" /><br><strong>'.__('Unignore<br>File', 'bulletproof-security').'</strong></th>';
1275
+ echo '<th scope="col" style="width:7%;"><input type="checkbox" class="checkallDelete" style="text-align:left;margin-left:2px;" /><br><strong>'.__('Delete<br>File', 'bulletproof-security').'</strong></th>';
1276
+ echo '<th scope="col" style="width:42%;"><strong>'.__('File Path', 'bulletproof-security').'</strong></th>';
1277
+ echo '<th scope="col" style="width:10%;"><strong>'.__('Pattern<br>Match', 'bulletproof-security').'</strong></th>';
1278
+ echo '<th scope="col" style="width:10%;"><strong>'.__('Scan<br>Time', 'bulletproof-security').'</strong></th>';
1279
+ echo '</tr>';
1280
+ echo '</thead>';
1281
+ echo '<tbody>';
1282
+ echo '<tr>';
1283
+
1284
+ if ( $wpdb->num_rows != 0 ) {
1285
+
1286
+ foreach ( $MScanFilesRows as $row ) {
1287
+
1288
+ if ( $row->mscan_status == '' ) {
1289
+
1290
+ if ( $row->mscan_ignored != 'ignore' ) {
1291
+ $status = '<strong><font color="blue">'.__('Skipped File', 'bulletproof-security').'<br>'.__('Not Scanned', 'bulletproof-security').'</font></strong>';
1292
+ }
1293
+
1294
+ if ( $row->mscan_ignored == 'ignore' ) {
1295
+ $status = '<strong><font color="green">'.__('Ignored File', 'bulletproof-security').'</font></strong>';
1296
+ }
1297
+ }
1298
+
1299
+ if ( $row->mscan_status != '' ) {
1300
+
1301
+ if ( $row->mscan_ignored == 'ignore' ) {
1302
+ $status = '<strong><font color="green">'.__('Ignored File', 'bulletproof-security').'</font></strong>';
1303
+
1304
+ } else {
1305
+
1306
+ if ( $row->mscan_status == 'suspect' ) {
1307
+ $status = '<strong><font color="#fb0101">'.__('Suspicious File', 'bulletproof-security').'</font></strong>';
1308
+ }
1309
+ }
1310
+ }
1311
+
1312
+ echo '<th scope="row" style="border-bottom:none;">'.$status.'</th>';
1313
+ echo "<td><input type=\"checkbox\" id=\"viewfile\" name=\"mscan[$row->mscan_path]\" value=\"viewfile\" /><br><span style=\"font-size:10px;\">".__('View', 'bulletproof-security')."</span></td>";
1314
+ echo "<td><input type=\"checkbox\" id=\"ignorefile\" name=\"mscan[$row->mscan_path]\" value=\"ignorefile\" class=\"ignorefileALL\" /><br><span style=\"font-size:10px;\">".__('Ignore', 'bulletproof-security')."</span></td>";
1315
+
1316
+ echo "<td><input type=\"checkbox\" id=\"unignorefile\" name=\"mscan[$row->mscan_path]\" value=\"unignorefile\" class=\"unignorefileALL\" /><br><span style=\"font-size:10px;\">".__('Unignore', 'bulletproof-security')."</span></td>";
1317
+
1318
+ echo "<td><input type=\"checkbox\" id=\"deletefile\" name=\"mscan[$row->mscan_path]\" value=\"deletefile\" class=\"deletefileALL\" /><br><span style=\"font-size:10px;\">".__('Delete', 'bulletproof-security')."</span></td>";
1319
+ echo '<td>'.$row->mscan_path.'</td>';
1320
+ echo '<td style="max-width:200px">'.esc_html($row->mscan_pattern).'</td>';
1321
+ echo '<td>'.$row->mscan_time.'</td>';
1322
+ echo '</tr>';
1323
+ }
1324
+
1325
+ } else {
1326
+
1327
+ echo '<th scope="row" style="border-bottom:none;font-weight:600;color:green">'.__('No Suspicious Files were detected', 'bulletproof-security').'</th>';
1328
+ echo "<td></td>";
1329
+ echo "<td></td>";
1330
+ echo "<td></td>";
1331
+ echo "<td></td>";
1332
+ echo '<td></td>';
1333
+ echo '<td></td>';
1334
+ echo '<td></td>';
1335
+ echo '</tr>';
1336
+ }
1337
+ echo '</tbody>';
1338
+ echo '</table>';
1339
+ echo '</div>';
1340
+
1341
+ echo "<input type=\"submit\" name=\"Submit-MScan-Suspect-Form\" value=\"".__('Submit', 'bulletproof-security')."\" class=\"button bps-button\" onclick=\"return confirm('".__('View File Option: Selecting the View File Checkbox Form option will display the contents of the file that you have selected to view.\n\n-------------------------------------------------------------\n\nIgnore File Option: Selecting the Ignore File Checkbox Form option will change the Current Status of a file to Ignored File and MScan will ignore that file in any future scans.\n\n-------------------------------------------------------------\n\nUnignore File Option: Selecting the Unignore File Checkbox Form option will remove the Ignored File Current Status of a file and MScan will scan that file in any future scans. Note: The previous Status of the file will be displayed again.\n\n-------------------------------------------------------------\n\nDelete File Option: Selecting the Delete File Checkbox Form option will delete the file and delete the database entry for that file.\n\n-------------------------------------------------------------\n\nClick OK to proceed or click Cancel', 'bulletproof-security')."')\" />";
1342
+ echo "<input type=\"button\" name=\"cancel\" value=\"".__('Clear|Refresh', 'bulletproof-security')."\" class=\"button bps-button\" style=\"margin-left:20px\" onclick=\"javascript:history.go(0)\" />";
1343
+ echo '</form>';
1344
+
1345
+ ?>
1346
+
1347
+ <?php
1348
+ $UIoptions = get_option('bulletproof_security_options_theme_skin');
1349
+
1350
+ if ( $UIoptions['bps_ui_theme_skin'] == 'blue' ) { ?>
1351
+
1352
+ <script type="text/javascript">
1353
+ /* <![CDATA[ */
1354
+ jQuery(document).ready(function($) {
1355
+ $( "#MScanSuspectcheckall tr:odd" ).css( "background-color", "#f9f9f9" );
1356
+ });
1357
+ /* ]]> */
1358
+ </script>
1359
+
1360
+ <?php } ?>
1361
+
1362
+ <script type="text/javascript">
1363
+ /* <![CDATA[ */
1364
+ jQuery(document).ready(function($){
1365
+ $('.checkallIgnore').click(function() {
1366
+ $(this).parents('#MScanSuspectcheckall:eq(0)').find('.ignorefileALL:checkbox').attr('checked', this.checked);
1367
+ });
1368
+ });
1369
+ /* ]]> */
1370
+ </script>
1371
+
1372
+ <script type="text/javascript">
1373
+ /* <![CDATA[ */
1374
+ jQuery(document).ready(function($){
1375
+ $('.checkallUnignore').click(function() {
1376
+ $(this).parents('#MScanSuspectcheckall:eq(0)').find('.unignorefileALL:checkbox').attr('checked', this.checked);
1377
+ });
1378
+ });
1379
+ /* ]]> */
1380
+ </script>
1381
+
1382
+ <script type="text/javascript">
1383
+ /* <![CDATA[ */
1384
+ jQuery(document).ready(function($){
1385
+ $('.checkallDelete').click(function() {
1386
+ $(this).parents('#MScanSuspectcheckall:eq(0)').find('.deletefileALL:checkbox').attr('checked', this.checked);
1387
+ });
1388
+ });
1389
+ /* ]]> */
1390
+ </script>
1391
+
1392
+ </div>
1393
+ <h3 id="mscan-accordion-3"><?php _e('View|Ignore Suspicious DB Entries', 'bulletproof-security'); ?></h3>
1394
+ <div id="mscan-accordion-inner">
1395
+
1396
+ <?php
1397
+ if ( isset( $_GET['mscan_view_db'] ) && 'view_db_entry' == $_GET['mscan_view_db'] ) {
1398
+
1399
+ if ( ! wp_verify_nonce( $nonce, 'bps-anti-csrf' ) ) {
1400
+ die( 'CSRF Error: Invalid Nonce used in the MScan View DB Entry GET Request' );
1401
+
1402
+ } else {
1403
+
1404
+ ?>
1405
+
1406
+ <style>
1407
+ <!--
1408
+ .ui-accordion.bps-accordion .ui-accordion-content {overflow:hidden;}
1409
+ -->
1410
+ </style>
1411
+
1412
+ <script type="text/javascript">
1413
+ /* <![CDATA[ */
1414
+ jQuery(document).ready(function($){
1415
+ $( "#bps-accordion-1" ).accordion({
1416
+ collapsible: true,
1417
+ active: 2,
1418
+ autoHeight: true,
1419
+ clearStyle: true,
1420
+ heightStyle: "content"
1421
+ });
1422
+ });
1423
+ /* ]]> */
1424
+ </script>
1425
+
1426
+ <?php
1427
+ }
1428
+ }
1429
+
1430
+ // MScan Suspicious DB Entries Form Proccessing - View, Ignore or Unignore DB Entries
1431
+ // Note: This form processing code must be above the form so that the View DB Entry output is displayed above the Suspicious DB Entries form.
1432
+ if ( isset( $_POST['Submit-MScan-Suspect-DB-Form'] ) && current_user_can('manage_options') ) {
1433
+ check_admin_referer('bulletproof_security_mscan_suspicious_db_entries');
1434
+
1435
+ ?>
1436
+
1437
+ <style>
1438
+ <!--
1439
+ .ui-accordion.bps-accordion .ui-accordion-content {overflow:hidden;}
1440
+ -->
1441
+ </style>
1442
+
1443
+ <script type="text/javascript">
1444
+ /* <![CDATA[ */
1445
+ jQuery(document).ready(function($){
1446
+ $( "#bps-accordion-1" ).accordion({
1447
+ collapsible: true,
1448
+ active: 2,
1449
+ autoHeight: true,
1450
+ clearStyle: true,
1451
+ heightStyle: "content"
1452
+ });
1453
+ });
1454
+ /* ]]> */
1455
+ </script>
1456
+
1457
+ <?php
1458
+
1459
+ $mscan_db_entries = $_POST['mscandb'];
1460
+ $MStable = $wpdb->prefix . "bpspro_mscan";
1461
+
1462
+ switch( $_POST['Submit-MScan-Suspect-DB-Form'] ) {
1463
+ case __('Submit', 'bulletproof-security'):
1464
+
1465
+ $ignore_db_entries = array();
1466
+ $unignore_db_entries = array();
1467
+ $view_db_entries = array();
1468
+
1469
+ if ( ! empty($mscan_db_entries) ) {
1470
+
1471
+ foreach ( $mscan_db_entries as $key => $value ) {
1472
+
1473
+ if ( $value == 'ignoredb' ) {
1474
+ $ignore_db_entries[] = $key;
1475
+
1476
+ } elseif ( $value == 'unignoredb' ) {
1477
+ $unignore_db_entries[] = $key;
1478
+
1479
+ } elseif ( $value == 'viewdb' ) {
1480
+ $view_db_entries[] = $key;
1481
+ }
1482
+ }
1483
+ }
1484
+
1485
+ if ( ! empty($ignore_db_entries) ) {
1486
+
1487
+ echo '<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>';
1488
+
1489
+ foreach ( $ignore_db_entries as $ignore_db_entry ) {
1490
+
1491
+ $MScanRowsIgnore = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $MStable WHERE mscan_db_pkid = %s", $ignore_db_entry) );
1492
+
1493
+ foreach ( $MScanRowsIgnore as $row ) {
1494
+
1495
+ $update_rows = $wpdb->update( $MStable, array( 'mscan_ignored' => 'ignore' ), array( 'mscan_db_pkid' => $row->mscan_db_pkid, 'mscan_db_column' => $row->mscan_db_column ) );
1496
+
1497
+ $text = '<strong><font color="green">'.__('Current Status has been changed to Ignored for DB Row ID', 'bulletproof-security').': '.$row->mscan_db_pkid.' '.__('in DB Column', 'bulletproof-security').': '.$row->mscan_db_column.'.'.__('This DB Entry will not be scanned in any future MScan Scans.', 'bulletproof-security').'</font></strong><br>';
1498
+ echo $text;
1499
+ }
1500
+ }
1501
+ echo '</p></div>';
1502
+ }
1503
+
1504
+ if ( ! empty($unignore_db_entries) ) {
1505
+
1506
+ echo '<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>';
1507
+
1508
+ foreach ( $unignore_db_entries as $unignore_db_entry ) {
1509
+
1510
+ $MScanRowsUnignore = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $MStable WHERE mscan_db_pkid = %s", $unignore_db_entry) );
1511
+
1512
+ foreach ( $MScanRowsUnignore as $row ) {
1513
+
1514
+ $update_rows = $wpdb->update( $MStable, array( 'mscan_ignored' => '' ), array( 'mscan_db_pkid' => $row->mscan_db_pkid, 'mscan_db_column' => $row->mscan_db_column ) );
1515
+
1516
+ $text = '<strong><font color="green">'.__('The Ignored DB Entry Status has been removed for DB Row ID', 'bulletproof-security').': '.$row->mscan_db_pkid.' '.__('in DB Column', 'bulletproof-security').': '.$row->mscan_db_column.'. '.__('The previous Status of the DB Entry will be displayed again and this DB Entry will be scanned in future MScan scans.', 'bulletproof-security').'</font></strong><br>';
1517
+ echo $text;
1518
+ }
1519
+ }
1520
+ echo '</p></div>';
1521
+ }
1522
+
1523
+ if ( ! empty($view_db_entries) ) {
1524
+
1525
+ echo '<div id="message" style="width:97%;margin:-10px 0px 15px 0px;padding:1px 10px 5px 10px;background-color:#dfecf2;-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>';
1526
+
1527
+ foreach ( $view_db_entries as $view_db_entry ) {
1528
+
1529
+ $MScanRowsView = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $MStable WHERE mscan_db_pkid = %s", $view_db_entry) );
1530
+
1531
+ foreach ( $MScanRowsView as $row ) {
1532
+
1533
+ if ( $row->mscan_pattern == 'PharmaHack' ) {
1534
+
1535
+ $text = '<div style="margin:0px 0px 5px 0px;font-size:1.13em;font-weight:600"><span style="width:100px;margin:0px;padding:0px 6px 0px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.admin_url( "admin.php?page=bulletproof-security/admin/mscan/mscan.php&mscan_view_db=view_db_entry&_wpnonce=$nonce" ).'" style="text-decoration:none;">'.__('Close', 'bulletproof-security').'</a></span> '.__('Pharma Hack DB Table and Column', 'bulletproof-security').': <span style="background-color:yellow;">'.esc_html($row->mscan_db_table).' : '.esc_html($row->mscan_db_column).'</span><br>'.__('Pharma Hack cleanup/removal steps', 'bulletproof-security').': '.__('Login to your web host control panel, login to your WP Database using phpMyAdmin and delete these DB option name Rows below from the DB Table and Column shown above. Note: You may or may not see all of these DB option name Rows so just delete any that you do see.', 'bulletproof-security').'<br><br>wp_check_hash<br>class_generic_support<br>widget_generic_support<br>ftp_credentials<br>fwp<br>rss_7988287cd8f4f531c6b94fbdbc4e1caf<br>rss_d77ee8bfba87fa91cd91469a5ba5abea<br>rss_552afe0001e673901a9f2caebdd3141d</div>';
1536
+ echo $text;
1537
+
1538
+ } else {
1539
+
1540
+ $text = '<div style="margin:0px 0px 5px 0px;font-size:1.13em;font-weight:600"><span style="width:100px;margin:0px;padding:0px 6px 0px 6px;background-color:#e8e8e8;border:1px solid gray;"><a href="'.admin_url( "admin.php?page=bulletproof-security/admin/mscan/mscan.php&mscan_view_db=view_db_entry&_wpnonce=$nonce" ).'" style="text-decoration:none;">'.__('Close', 'bulletproof-security').'</a></span> '.__('DB Table, Column and Row ID', 'bulletproof-security').': <span style="background-color:yellow;">'.esc_html($row->mscan_db_table).' : '.esc_html($row->mscan_db_column).' : '.esc_html($row->mscan_db_pkid).'</span> : '.__('MScan Pattern Match', 'bulletproof-security').': <span style="background-color:yellow;">'.esc_html($row->mscan_pattern).'</span><br>'.__('Steps to view the database data that MScan detected as suspicious', 'bulletproof-security').': '.__('Login to your web host control panel, login to your WP Database using phpMyAdmin and check the data in the DB Table, Column and Row ID shown above. Note: Look for code that matches the MScan Pattern Match.', 'bulletproof-security').'<br>'.__('If you are not sure what to check for or what is and is not malicious code then click the MScan Read Me help button.', 'bulletproof-security').'</div>';
1541
+ echo $text;
1542
+ }
1543
+ }
1544
+ }
1545
+ echo '</p></div>';
1546
+ }
1547
+ break;
1548
+ }
1549
+ }
1550
+
1551
+ echo '<form name="MScanSuspiciousDBEntries" action="'.admin_url( 'admin.php?page=bulletproof-security/admin/mscan/mscan.php' ).'" method="post">';
1552
+ wp_nonce_field('bulletproof_security_mscan_suspicious_db_entries');
1553
+
1554
+ $MStable = $wpdb->prefix . "bpspro_mscan";
1555
+ $db_rows = 'db';
1556
+ $MScanDBRows = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $MStable WHERE mscan_type = %s", $db_rows ) );
1557
+
1558
+ echo '<div id="MScanSuspectDBcheckall" style="">';
1559
+ echo '<table class="widefat" style="margin-bottom:20px;">';
1560
+ echo '<thead>';
1561
+ echo '<tr>';
1562
+ echo '<th scope="col" style="width:16%;"><strong>'.__('Current Status', 'bulletproof-security').'</strong></th>';
1563
+ echo '<th scope="col" style="width:7%;"><br><strong>'.__('View<br>DB Entry', 'bulletproof-security').'</strong></th>';
1564
+ echo '<th scope="col" style="width:7%;"><input type="checkbox" class="checkallIgnoreDB" style="text-align:left;margin-left:2px;" /><br><strong>'.__('Ignore<br>DB Entry', 'bulletproof-security').'</strong></th>';
1565
+ echo '<th scope="col" style="width:7%;"><input type="checkbox" class="checkallUnignoreDB" style="text-align:left;margin-left:2px;" /><br><strong>'.__('Unignore<br>DB Entry', 'bulletproof-security').'</strong></th>';
1566
+ echo '<th scope="col" style="width:18%;"><strong>'.__('DB Table', 'bulletproof-security').'</strong></th>';
1567
+ echo '<th scope="col" style="width:18%;"><strong>'.__('DB Column', 'bulletproof-security').'</strong>'.'</th>';
1568
+ echo '<th scope="col" style="width:7%;"><strong>'.__('DB Row ID', 'bulletproof-security').'</strong>'.'</th>';
1569
+ echo '<th scope="col" style="width:10%;"><strong>'.__('Pattern<br>Match', 'bulletproof-security').'</strong></th>';
1570
+ echo '<th scope="col" style="width:10%;"><strong>'.__('Scan<br>Time', 'bulletproof-security').'</strong></th>';
1571
+ echo '</tr>';
1572
+ echo '</thead>';
1573
+ echo '<tbody>';
1574
+ echo '<tr>';
1575
+
1576
+ if ( $wpdb->num_rows != 0 ) {
1577
+
1578
+ foreach ( $MScanDBRows as $row ) {
1579
+
1580
+ if ( $row->mscan_ignored == 'ignore' ) {
1581
+ $status = '<strong><font color="green">'.__('Ignored DB Entry', 'bulletproof-security').'</font></strong>';
1582
+
1583
+ } else {
1584
+
1585
+ if ( $row->mscan_status == 'suspect' ) {
1586
+ $status = '<strong><font color="#fb0101">'.__('Suspicious DB Entry', 'bulletproof-security').'</font></strong>';
1587
+ }
1588
+ }
1589
+
1590
+ echo '<th scope="row" style="border-bottom:none;">'.$status.'</th>';
1591
+ echo "<td><input type=\"checkbox\" id=\"viewdb\" name=\"mscandb[$row->mscan_db_pkid]\" value=\"viewdb\" /><br><span style=\"font-size:10px;\">".__('View', 'bulletproof-security')."</span></td>";
1592
+ echo "<td><input type=\"checkbox\" id=\"ignoredb\" name=\"mscandb[$row->mscan_db_pkid]\" value=\"ignoredb\" class=\"ignoreDBALL\" /><br><span style=\"font-size:10px;\">".__('Ignore', 'bulletproof-security')."</span></td>";
1593
+ echo "<td><input type=\"checkbox\" id=\"unignoredb\" name=\"mscandb[$row->mscan_db_pkid]\" value=\"unignoredb\" class=\"unignoreDBALL\" /><br><span style=\"font-size:10px;\">".__('Unignore', 'bulletproof-security')."</span></td>";
1594
+ echo '<td>'.$row->mscan_db_table.'</td>';
1595
+ echo '<td>'.$row->mscan_db_column.'</td>';
1596
+ echo '<td>'.$row->mscan_db_pkid.'</td>';
1597
+ echo '<td style="max-width:200px">'.esc_html($row->mscan_pattern).'</td>';
1598
+ echo '<td>'.$row->mscan_time.'</td>';
1599
+ echo '</tr>';
1600
+ }
1601
+
1602
+ } else {
1603
+
1604
+ echo '<th scope="row" style="border-bottom:none;font-weight:600;color:green">'.__('No Suspicious DB Entries were detected', 'bulletproof-security').'</th>';
1605
+ echo "<td></td>";
1606
+ echo "<td></td>";
1607
+ echo "<td></td>";
1608
+ echo "<td></td>";
1609
+ echo "<td></td>";
1610
+ echo "<td></td>";
1611
+ echo '<td></td>';
1612
+ echo '<td></td>';
1613
+ echo '</tr>';
1614
+ }
1615
+ echo '</tbody>';
1616
+ echo '</table>';
1617
+ echo '</div>';
1618
+
1619
+ echo "<input type=\"submit\" name=\"Submit-MScan-Suspect-DB-Form\" value=\"".__('Submit', 'bulletproof-security')."\" class=\"button bps-button\" onclick=\"return confirm('".__('View DB Entry Option: Selecting the View DB Entry Checkbox Form option will display the contents of the DB Table, Column and Row ID that you have selected to view.\n\n-------------------------------------------------------------\n\nIgnore DB Entry Option: Selecting the Ignore DB Entry Checkbox Form option will change the Current Status of a DB Entry to Ignored DB Entry and MScan will ignore that DB Entry in any future scans.\n\n-------------------------------------------------------------\n\nUnignore DB Entry Option: Selecting the Unignore DB Entry Checkbox Form option will remove the Ignored DB Entry Current Status of a DB Entry and MScan will scan that DB Entry in any future scans. Note: The previous Status of the DB Entry will be displayed again.\n\n-------------------------------------------------------------\n\nClick OK to proceed or click Cancel', 'bulletproof-security')."')\" />";
1620
+ echo "<input type=\"button\" name=\"cancel\" value=\"".__('Clear|Refresh', 'bulletproof-security')."\" class=\"button bps-button\" style=\"margin-left:20px\" onclick=\"javascript:history.go(0)\" />";
1621
+ echo '</form>';
1622
+
1623
+ $UIoptions = get_option('bulletproof_security_options_theme_skin');
1624
+
1625
+ if ( $UIoptions['bps_ui_theme_skin'] == 'blue' ) { ?>
1626
+
1627
+ <script type="text/javascript">
1628
+ /* <![CDATA[ */
1629
+ jQuery(document).ready(function($) {
1630
+ $( "#MScanSuspectDBcheckall tr:odd" ).css( "background-color", "#f9f9f9" );
1631
+ });
1632
+ /* ]]> */
1633
+ </script>
1634
+
1635
+ <?php } ?>
1636
+
1637
+ <script type="text/javascript">
1638
+ /* <![CDATA[ */
1639
+ jQuery(document).ready(function($){
1640
+ $('.checkallIgnoreDB').click(function() {
1641
+ $(this).parents('#MScanSuspectDBcheckall:eq(0)').find('.ignoreDBALL:checkbox').attr('checked', this.checked);
1642
+ });
1643
+ });
1644
+ /* ]]> */
1645
+ </script>
1646
+
1647
+ <script type="text/javascript">
1648
+ /* <![CDATA[ */
1649
+ jQuery(document).ready(function($){
1650
+ $('.checkallUnignoreDB').click(function() {
1651
+ $(this).parents('#MScanSuspectDBcheckall:eq(0)').find('.unignoreDBALL:checkbox').attr('checked', this.checked);
1652
+ });
1653
+ });
1654
+ /* ]]> */
1655
+ </script>
1656
+
1657
+ </div>
1658
+ </div>
1659
+
1660
+ </td>
1661
+ </tr>
1662
+ </table>
1663
+
1664
+ </div>
1665
+
1666
+ <div id="bps-tabs-2" class="bps-tab-page">
1667
+
1668
+ <table width="100%" border="0" cellspacing="0" cellpadding="0" class="bps-help_faq_table">
1669
+ <tr>
1670
+ <td class="bps-table_title"><h2><?php _e('MScan Log ~ ', 'bulletproof-security'); ?><span style="font-size:.75em;"><?php _e('Logs MScan Settings, Completion Time, Memory Usage, Zip Backup File Name, Timestamp...', 'bulletproof-security'); ?></span></h2></td>
1671
+ </tr>
1672
+ <tr>
1673
+ <td class="bps-table_cell_help">
1674
+
1675
+ <h3 style="margin:0px 0px 10px 0px;"><?php _e('MScan Log', 'bulletproof-security'); ?> <button id="bps-open-modal2" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
1676
+
1677
+ <div id="bps-modal-content2" class="bps-dialog-hide" title="<?php _e('MScan Log', 'bulletproof-security'); ?>">
1678
+ <p><?php echo $bps_modal_content2; ?></p>
1679
+ </div>
1680
+
1681
+ <?php
1682
+
1683
+ // Get the Current / Last Modifed Date of the MScan Log File
1684
+ function bpsPro_MScan_Log_LastMod() {
1685
+ $filename = WP_CONTENT_DIR . '/bps-backup/logs/mscan_log.txt';
1686
+ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
1687
+
1688
+ if ( file_exists($filename) ) {
1689
+ $last_modified = date("F d Y H:i:s", filemtime($filename) + $gmt_offset);
1690
+ return $last_modified;
1691
+ }
1692
+ }
1693
+
1694
+ // String comparison of MScan Last Modified Time and Actual File Last Modified Time
1695
+ function bpsPro_MScan_ModTimeDiff() {
1696
+ $options = get_option('bulletproof_security_options_MScan_log');
1697
+ $last_modified_time = bpsPro_MScan_Log_LastMod();
1698
+ $last_modified_time_db = $options['bps_mscan_log_date_mod'];
1699
+
1700
+ if ( $options['bps_mscan_log_date_mod'] == '' ) {
1701
+ $text = '<font color="#fb0101" style="padding-right:5px;"><strong>'.__('Click the Reset Last Modified Time in DB button', 'bulletproof-security').'<br>'.__('to set the', 'bulletproof-security').'</strong></font>';
1702
+ echo $text;
1703
+ }
1704
+
1705
+ if ( strcmp( $last_modified_time, $last_modified_time_db ) == 0 ) { // 0 is equal
1706
+ $text = '<font color="green" style="padding-right:8px;"><strong>'.__('Last Modified Time in DB:', 'bulletproof-security').' </strong></font>';
1707
+ echo $text;
1708
+
1709
+ } else {
1710
+
1711
+ $text = '<font color="#fb0101" style="padding-right:8px;"><strong>'.__('Last Modified Time in DB:', 'bulletproof-security').' </strong></font>';
1712
+ echo $text;
1713
+ }
1714
+ }
1715
+
1716
+ // Get File Size of the MScan Log File
1717
+ function bpsPro_MScan_LogSize() {
1718
+ $filename = WP_CONTENT_DIR . '/bps-backup/logs/mscan_log.txt';
1719
+
1720
+ if ( file_exists($filename) ) {
1721
+ $logSize = filesize($filename);
1722
+
1723
+ if ( $logSize < 2097152 ) {
1724
+ $text = '<span style="font-size:13px;"><strong>'. __('MScan Log File Size: ', 'bulletproof-security').'<font color="#2ea2cc">'. round($logSize / 1024, 2) .' KB</font></strong></span><br><br>';
1725
+ echo $text;
1726
+ } else {
1727
+ $text = '<span style="font-size:13px;"><strong>'. __('MScan Log File Size: ', 'bulletproof-security').'<font color="#fb0101">'. round($logSize / 1024, 2) .' KB<br>'.__('The S-Monitor Email Logging options will only send log files up to 2MB in size.', 'bulletproof-security').'</font></strong><br>'.__('Copy and paste the MScan Log file contents into a Notepad text file on your computer and save it.', 'bulletproof-security').'<br>'.__('Then click the Delete Log button to delete the contents of this Log file.', 'bulletproof-security').'</span><br><br>';
1728
+ echo $text;
1729
+ }
1730
+ }
1731
+ }
1732
+ bpsPro_MScan_LogSize();
1733
+ ?>
1734
+
1735
+ <form name="MScanLogModDate" action="options.php#bps-tabs-2" method="post">
1736
+ <?php settings_fields('bulletproof_security_options_MScan_log'); ?>
1737
+ <?php $MScanLogoptions = get_option('bulletproof_security_options_MScan_log'); ?>
1738
+ <label for="QLog"><strong><?php _e('MScan Log Last Modified Time:', 'bulletproof-security'); ?></strong></label><br />
1739
+ <label for="QLog"><strong><?php echo bpsPro_MScan_ModTimeDiff(); ?></strong><?php echo $MScanLogoptions['bps_mscan_log_date_mod']; ?></label><br />
1740
+ <label for="QLog" style="vertical-align:top;"><strong><?php _e('Last Modified Time in File:', 'bulletproof-security'); ?></strong></label>
1741
+ <input type="text" name="bulletproof_security_options_MScan_log[bps_mscan_log_date_mod]" style="color:#2ea2cc;font-size:13px;width:200px;padding-left:4px;font-weight:600;border:none;background:none;outline:none;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:none;transition:none;" value="<?php echo bpsPro_MScan_Log_LastMod(); ?>" /><br />
1742
+ <input type="submit" name="Submit-MScan-Mod" class="button bps-button" style="margin:10px 0px 0px 0px;" value="<?php esc_attr_e('Reset Last Modified Time in DB', 'bulletproof-security') ?>" />
1743
+ </form>
1744
+
1745
+ <?php
1746
+ if ( isset( $_POST['Submit-Delete-MScan-Log'] ) && current_user_can('manage_options') ) {
1747
+ check_admin_referer( 'bulletproof_security_delete_mscan_log' );
1748
+
1749
+ $options = get_option('bulletproof_security_options_DBB_log');
1750
+ $last_modified_time_db = $options['bps_dbb_log_date_mod'];
1751
+ $time = strtotime($last_modified_time_db);
1752
+ $DBBLog = WP_CONTENT_DIR . '/bps-backup/logs/db_backup_log.txt';
1753
+ $DBBLogMaster = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/db_backup_log.txt';
1754
+
1755
+ if ( copy($DBBLogMaster, $DBBLog) ) {
1756
+ touch($DBBLog, $time);
1757
+
1758
+ echo $bps_topDiv;
1759
+ $text = '<font color="green"><strong>'.__('Success! Your DB Backup Log has been deleted and replaced with a new blank DB Backup Log file.', 'bulletproof-security').'</strong></font>';
1760
+ echo $text;
1761
+ echo $bps_bottomDiv;
1762
+ }
1763
+ }
1764
+ ?>
1765
+
1766
+ <form name="DeleteMScanLogForm" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/mscan/mscan.php#bps-tabs-2' ); ?>" method="post">
1767
+ <?php wp_nonce_field('bulletproof_security_delete_mscan_log'); ?>
1768
+
1769
+ <input type="submit" name="Submit-Delete-MScan-Log" value="<?php esc_attr_e('Delete Log', 'bulletproof-security') ?>" class="button bps-button" style="margin:15px 0px 15px 0px" onclick="return confirm('<?php $text = __('Clicking OK will delete the contents of your MScan Log file.', 'bulletproof-security').'\n\n'.$bpsSpacePop.'\n\n'.__('Click OK to Delete the Log file contents or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
1770
+ </form>
1771
+
1772
+ <div id="messageinner" class="updatedinner">
1773
+ <?php
1774
+
1775
+ // Get MScan log file contents
1776
+ function bpsPro_MScan_get_contents() {
1777
+
1778
+ if ( current_user_can('manage_options') ) {
1779
+ $mscan_log = WP_CONTENT_DIR . '/bps-backup/logs/mscan_log.txt';
1780
+ $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
1781
+
1782
+ if ( file_exists($mscan_log) ) {
1783
+ $mscan_log = file_get_contents($mscan_log);
1784
+ return htmlspecialchars($mscan_log);
1785
+
1786
+ } else {
1787
+
1788
+ _e('The MScan Log File Was Not Found! Check that the file really exists here - /', 'bulletproof-security').$bps_wpcontent_dir.__('/bps-backup/logs/mscan_log.txt and is named correctly.', 'bulletproof-security');
1789
+ }
1790
+ }
1791
+ }
1792
+
1793
+ // Form: MScan Log editor
1794
+ if ( current_user_can('manage_options') ) {
1795
+ $mscan_log = WP_CONTENT_DIR . '/bps-backup/logs/mscan_log.txt';
1796
+ $write_test = "";
1797
+
1798
+ if ( is_writable($mscan_log) ) {
1799
+ if ( ! $handle = fopen($mscan_log, 'a+b' ) ) {
1800
+ exit;
1801
+ }
1802
+
1803
+ if ( fwrite($handle, $write_test) === FALSE ) {
1804
+ exit;
1805
+ }
1806
+
1807
+ $text = '<font color="green" style="font-size:12px;"><strong>'.__('File Open and Write test successful! Your MScan Log file is writable.', 'bulletproof-security').'</strong></font><br>';
1808
+ echo $text;
1809
+ }
1810
+ }
1811
+
1812
+ if ( isset( $_POST['Submit-MScan-Log'] ) && current_user_can('manage_options') ) {
1813
+ check_admin_referer( 'bulletproof_security_save_mscan_log' );
1814
+ $newcontent_mscan = stripslashes( $_POST['newcontent_mscan'] );
1815
+
1816
+ if ( is_writable($mscan_log) ) {
1817
+ $handle = fopen($mscan_log, 'w+b');
1818
+ fwrite($handle, $newcontent_mscan);
1819
+ $text = '<font color="green" style="font-size:12px;"><strong>'.__('Success! Your MScan Log file has been updated.', 'bulletproof-security').'</strong></font><br>';
1820
+ echo $text;
1821
+
1822
+ echo $bps_topDiv;
1823
+ $text = '<font color="green"><strong>'.__('Success! Your MScan Log file has been updated.', 'bulletproof-security').'</strong></font>';
1824
+ echo $text;
1825
+ echo $bps_bottomDiv;
1826
+
1827
+ fclose($handle);
1828
+
1829
+ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
1830
+ $time_now = date("F d Y H:i:s", time() + $gmt_offset );
1831
+ $MScanLog_Options = array( 'bps_mscan_log_date_mod' => $time_now );
1832
+
1833
+ foreach( $MScanLog_Options as $key => $value ) {
1834
+ update_option('bulletproof_security_options_MScan_log', $MScanLog_Options);
1835
+ }
1836
+ }
1837
+ }
1838
+
1839
+ $scrolltomsblog = isset($_REQUEST['scrolltomsblog']) ? (int) $_REQUEST['scrolltomsblog'] : 0;
1840
+ ?>
1841
+ </div>
1842
+
1843
+ <div id="QLogEditor">
1844
+ <form name="MScanLog" id="MScanLog" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/mscan/mscan.php#bps-tabs-2' ); ?>" method="post">
1845
+ <?php wp_nonce_field('bulletproof_security_save_mscan_log'); ?>
1846
+ <div id="MScanLog">
1847
+ <textarea class="bps-text-area-600x700" name="newcontent_mscan" id="newcontent_mscan" tabindex="1"><?php echo bpsPro_MScan_get_contents(); ?></textarea>
1848
+ <input type="hidden" name="scrolltomsblog" id="scrolltomsblog" value="<?php echo esc_html( $scrolltomsblog ); ?>" />
1849
+ <p class="submit">
1850
+ <input type="submit" name="Submit-MScan-Log" class="button bps-button" value="<?php esc_attr_e('Update File', 'bulletproof-security') ?>" /></p>
1851
+ </div>
1852
+ </form>
1853
+
1854
+ <script type="text/javascript">
1855
+ /* <![CDATA[ */
1856
+ jQuery(document).ready(function($){
1857
+ $('#MScanLog').submit(function(){ $('#scrolltomsblog').val( $('#newcontent_mscan').scrollTop() ); });
1858
+ $('#newcontent_mscan').scrollTop( $('#scrolltomsblog').val() );
1859
+ });
1860
+ /* ]]> */
1861
+ </script>
1862
+ </div>
1863
+
1864
+ </td>
1865
+ </tr>
1866
+ </table>
1867
+
1868
+ </div>
1869
+
1870
+ <div id="bps-tabs-3" class="bps-tab-page">
1871
+
1872
+ <table width="100%" border="0" cellspacing="0" cellpadding="0" class="bps-help_faq_table">
1873
+ <tr>
1874
+ <td class="bps-table_title"><h2><?php _e('Help &amp; FAQ', 'bulletproof-security'); ?></h2></td>
1875
+ </tr>
1876
+ <tr>
1877
+ <td class="bps-table_cell_help_links">
1878
+ <a href="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/whatsnew/whatsnew.php' ); ?>" target="_blank"><?php _e('Whats New in ', 'bulletproof-security'); echo BULLETPROOF_VERSION; ?></a><br /><br />
1879
+ <a href="https://forum.ait-pro.com/forums/topic/bulletproof-security-pro-version-release-dates/" target="_blank"><?php _e('BPS Pro Features & Version Release Dates', 'bulletproof-security'); ?></a><br /><br />
1880
+ <a href="https://forum.ait-pro.com/video-tutorials/" target="_blank"><?php _e('Video Tutorials', 'bulletproof-security'); ?></a><br /><br />
1881
+ <a href="https://forum.ait-pro.com/forums/topic/plugin-conflicts-actively-blocked-plugins-plugin-compatibility/" target="_blank"><?php _e('Forum: Search, Troubleshooting Steps & Post Questions For Assistance', 'bulletproof-security'); ?></a>
1882
+ </td>
1883
+ </tr>
1884
+ </table>
1885
+ </div>
1886
+
1887
+ <div id="AITpro-link">BulletProof Security Pro <?php echo BULLETPROOF_VERSION; ?> Plugin by <a href="https://forum.ait-pro.com/" target="_blank" title="AITpro Website Security">AITpro Website Security</a>
1888
+ </div>
1889
+ </div>
1890
+ </div>
admin/security-log/security-log.php CHANGED
@@ -221,7 +221,7 @@ if ( isset( $_POST['Submit-Error-Log-On'] ) && current_user_can('manage_options'
221
 
222
  <!-- jQuery UI Tab Menu -->
223
  <div id="bps-tabs" class="bps-menu">
224
- <div id="bpsHead"><img src="<?php echo plugins_url('/bulletproof-security/admin/images/bps-security-shield.gif'); ?>" /></div>
225
  <ul>
226
  <li><a href="#bps-tabs-1"><?php _e('Security Log', 'bulletproof-security'); ?></a></li>
227
  <li><a href="#bps-tabs-2"><?php _e('Help &amp; FAQ', 'bulletproof-security'); ?></a></li>
@@ -240,7 +240,7 @@ if ( isset( $_POST['Submit-Error-Log-On'] ) && current_user_can('manage_options'
240
 
241
  <h3 style="margin:0px 0px 10px 0px;"><?php _e('Security Log', 'bulletproof-security'); ?> <button id="bps-open-modal9" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
242
 
243
- <div id="bps-modal-content9" title="<?php _e('Security Log', 'bulletproof-security'); ?>">
244
  <p>
245
  <?php
246
  $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
@@ -252,7 +252,7 @@ if ( isset( $_POST['Submit-Error-Log-On'] ) && current_user_can('manage_options'
252
  <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 />
253
  <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 />
254
 
255
- <?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>
256
  </div>
257
 
258
  <?php
@@ -305,10 +305,10 @@ if ( @file_exists($filename) ) {
305
  $logSize = filesize($filename);
306
 
307
  if ( $logSize < 2097152 ) {
308
- $text = '<strong>'. __('Security Log File Size: ', 'bulletproof-security').'<font color="#2ea2cc">'. round($logSize / 1024, 2) .' KB</font></strong><br>';
309
  echo $text;
310
  } else {
311
- $text = '<strong>'. __('Security Log File Size: ', 'bulletproof-security').'<font color="#fb0101">'. round($logSize / 1024, 2) .' KB<br>'.__('Your Security Log file is larger than 2MB. It appears that BPS is unable to automatically zip, email and delete your Security Log file.', 'bulletproof-security').'</font></strong><br>'.__('Check your Email Alerts & Log File Options.', 'bulletproof-security').'<br>'.__('You can manually delete the contents of this log file by clicking the Delete Log button.', 'bulletproof-security').'<br>';
312
  echo $text;
313
  }
314
  }
@@ -322,10 +322,10 @@ $check_string = file_get_contents($filename);
322
  $pattern = '/#{1,}(\s|){1,}ErrorDocument\s403(.*)\/bulletproof-security\/403\.php/';
323
 
324
  if ( file_exists($filename) && preg_match($pattern, $check_string, $matches) ) {
325
- $text = '<strong>'.__('Security Log Status: ', 'bulletproof-security').'<font color="#2ea2cc">'.__('Logging is Turned Off', 'bulletproof-security').'</font></strong><br>';
326
  echo $text;
327
  } else {
328
- $text = '<strong>'.__('Security Log Status: ', 'bulletproof-security').'<font color="#2ea2cc">'.__('Logging is Turned On', 'bulletproof-security').'</font></strong><br>';
329
  echo $text;
330
  }
331
  }
@@ -339,7 +339,7 @@ $filename = WP_CONTENT_DIR . '/bps-backup/logs/http_error_log.txt';
339
  $gmt_offset = get_option( 'gmt_offset' ) * 3600;
340
  $timestamp = date_i18n(get_option('date_format').' - '.get_option('time_format'), @filemtime($filename) + $gmt_offset);
341
 
342
- $text = '<strong>'. __('Security Log Last Modified Time: ', 'bulletproof-security').'<font color="#2ea2cc">'.$timestamp.'</font></strong><br><br>';
343
  echo $text;
344
  }
345
  }
@@ -441,81 +441,6 @@ $search = '';
441
  }
442
  ?>
443
 
444
- <div id="EmailOptionsSecLog" style="width:100%;">
445
-
446
- <form name="bpsEmailAlerts" action="options.php" method="post">
447
- <?php settings_fields('bulletproof_security_options_email'); ?>
448
- <?php $options = get_option('bulletproof_security_options_email'); ?>
449
- <?php $admin_email = get_option('admin_email'); ?>
450
-
451
- <table border="0">
452
- <tr>
453
- <td><label for="bps-monitor-email"><?php _e('Send Email Alerts & Log Files To:', 'bulletproof-security'); ?> </label></td>
454
- <td><input type="text" name="bulletproof_security_options_email[bps_send_email_to]" class="regular-text-200" value="<?php if ( $options['bps_send_email_to'] != '' ) { echo esc_html( $options['bps_send_email_to'] ); } else { echo esc_html( $admin_email ); } ?>" /></td>
455
- </tr>
456
- <tr>
457
- <td><label for="bps-monitor-email"><?php _e('Send Email Alerts & Log Files From:', 'bulletproof-security'); ?> </label></td>
458
- <td><input type="text" name="bulletproof_security_options_email[bps_send_email_from]" class="regular-text-200" value="<?php if ( $options['bps_send_email_from'] != '' ) { echo esc_html( $options['bps_send_email_from'] ); } else { echo esc_html( $admin_email ); } ?>" /></td>
459
- </tr>
460
- <tr>
461
- <td><label for="bps-monitor-email"><?php _e('Send Email Alerts & Log Files Cc:', 'bulletproof-security'); ?> </label></td>
462
- <td><input type="text" name="bulletproof_security_options_email[bps_send_email_cc]" class="regular-text-200" value="<?php echo esc_html( $options['bps_send_email_cc'] ); ?>" /></td>
463
- </tr>
464
- <tr>
465
- <td><label for="bps-monitor-email"><?php _e('Send Email Alerts & Log Files Bcc:', 'bulletproof-security'); ?> </label></td>
466
- <td><input type="text" name="bulletproof_security_options_email[bps_send_email_bcc]" class="regular-text-200" value="<?php echo esc_html( $options['bps_send_email_bcc'] ); ?>" /></td>
467
- </tr>
468
- </table>
469
- <br />
470
-
471
- <table border="0">
472
- <tr>
473
- <td><strong><label for="bps-monitor-email"><?php _e('Login Security: Send Login Security Email Alert When...', 'bulletproof-security'); ?></label></strong><br />
474
- <select name="bulletproof_security_options_email[bps_login_security_email]" class="form-340">
475
- <option value="lockoutOnly" <?php selected( $options['bps_login_security_email'], 'lockoutOnly'); ?>><?php _e('A User Account Is Locked Out', 'bulletproof-security'); ?></option>
476
- <option value="adminLoginOnly" <?php selected( $options['bps_login_security_email'], 'adminLoginOnly'); ?>><?php _e('An Administrator Logs In', 'bulletproof-security'); ?></option>
477
- <option value="adminLoginLock" <?php selected( $options['bps_login_security_email'], 'adminLoginLock'); ?>><?php _e('An Administrator Logs In & A User Account is Locked Out', 'bulletproof-security'); ?></option>
478
- <option value="anyUserLoginLock" <?php selected( $options['bps_login_security_email'], 'anyUserLoginLock'); ?>><?php _e('Any User Logs In & A User Account is Locked Out', 'bulletproof-security'); ?></option>
479
- <option value="no" <?php selected( $options['bps_login_security_email'], 'no'); ?>><?php _e('Do Not Send Email Alerts', 'bulletproof-security'); ?></option>
480
- </select></td>
481
- </tr>
482
- <tr>
483
- <td style="padding-top:5px;"><strong><label for="bps-monitor-email-log"><?php _e('Security Log: Email|Delete Security Log File When...', 'bulletproof-security'); ?></label></strong><br />
484
- <select name="bulletproof_security_options_email[bps_security_log_size]" class="form-80">
485
- <option value="500KB" <?php selected( $options['bps_security_log_size'], '500KB' ); ?>><?php _e('500KB', 'bulletproof-security'); ?></option>
486
- <option value="256KB" <?php selected( $options['bps_security_log_size'], '256KB'); ?>><?php _e('256KB', 'bulletproof-security'); ?></option>
487
- <option value="1MB" <?php selected( $options['bps_security_log_size'], '1MB' ); ?>><?php _e('1MB', 'bulletproof-security'); ?></option>
488
- </select>
489
- <select name="bulletproof_security_options_email[bps_security_log_emailL]" class="form-255">
490
- <option value="email" <?php selected( $options['bps_security_log_emailL'], 'email' ); ?>><?php _e('Email Log & Then Delete Log File', 'bulletproof-security'); ?></option>
491
- <option value="delete" <?php selected( $options['bps_security_log_emailL'], 'delete' ); ?>><?php _e('Delete Log File', 'bulletproof-security'); ?></option>
492
- </select></td>
493
- </tr>
494
- <tr>
495
- <td style="padding-top:5px;"><strong><label for="bps-monitor-email-log"><?php _e('DB Backup Log: Email|Delete DB Backup Log File When...', 'bulletproof-security'); ?></label></strong><br />
496
- <select name="bulletproof_security_options_email[bps_dbb_log_size]" class="form-80">
497
- <option value="500KB" <?php selected( $options['bps_dbb_log_size'], '500KB' ); ?>><?php _e('500KB', 'bulletproof-security'); ?></option>
498
- <option value="256KB" <?php selected( $options['bps_dbb_log_size'], '256KB'); ?>><?php _e('256KB', 'bulletproof-security'); ?></option>
499
- <option value="1MB" <?php selected( $options['bps_dbb_log_size'], '1MB' ); ?>><?php _e('1MB', 'bulletproof-security'); ?></option>
500
- </select>
501
- <select name="bulletproof_security_options_email[bps_dbb_log_email]" class="form-255">
502
- <option value="email" <?php selected( $options['bps_dbb_log_email'], 'email' ); ?>><?php _e('Email Log & Then Delete Log File', 'bulletproof-security'); ?></option>
503
- <option value="delete" <?php selected( $options['bps_dbb_log_email'], 'delete' ); ?>><?php _e('Delete Log File', 'bulletproof-security'); ?></option>
504
- </select></td>
505
- </tr>
506
- </table>
507
-
508
- <!-- <strong><label for="bps-monitor-email" style="margin:0px 0px 0px 0px;"><?php //_e('BPS Plugin Upgrade Email Notification', 'bulletproof-security'); ?></label></strong><br />
509
- <select name="bulletproof_security_options_email[bps_upgrade_email]" class="form-340">
510
- <option value="yes" <?php //selected( @$options['bps_upgrade_email'], 'yes'); ?>><?php //_e('Send Email Alerts', 'bulletproof-security'); ?></option>
511
- <option value="no" <?php //selected( @$options['bps_upgrade_email'], 'no'); ?>><?php //_e('Do Not Send Email Alerts', 'bulletproof-security'); ?></option>
512
- </select><br /><br /> -->
513
-
514
- <input type="hidden" name="bpsEMA" value="bps-EMA" />
515
- <input type="submit" name="bpsEmailAlertSubmit" class="button bps-button" style="margin:15px 0px 20px 0px;" value="<?php esc_attr_e('Save Options', 'bulletproof-security') ?>" />
516
- </form>
517
- </div>
518
-
519
  <div id="SecLogPostLimit">
520
  <form name="SecLogPostLimit" action="options.php" method="post">
521
  <?php settings_fields('bulletproof_security_options_sec_log_post_limit'); ?>
@@ -537,7 +462,7 @@ $search = '';
537
  <strong><label for="UA-ignore"><?php _e('Add User Agents|Bots to Ignore|Not Log', 'bulletproof-security'); ?></label></strong><br />
538
  <strong><label for="UA-ignore"><?php _e('Click the Read Me Help button for examples', 'bulletproof-security'); ?></label></strong><br />
539
  <input type="text" name="user-agent-ignore" class="regular-text-320" value="" />
540
- <input type="submit" name="Submit-UserAgent-Ignore" value="<?php esc_attr_e('Add|Ignore', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Clicking OK will Add the User Agent|Bot name you have entered to your DB and the 403.php Security Logging template.', 'bulletproof-security').'\n\n'.$bpsSpacePop.'\n\n'.__('Security logging checks are done by the 403.php Security Logging file and not by DB Queries.', 'bulletproof-security').'\n\n'.$bpsSpacePop.'\n\n'.__('To remove User Agents|Bots from being ignored/not logged use the Remove|Allow tool.', 'bulletproof-security').'\n\n'.$bpsSpacePop.'\n\n'.__('Click OK to proceed or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
541
  </form>
542
  </div>
543
 
@@ -550,9 +475,9 @@ $search = '';
550
  // Initial User Agent|Bot Search Form - hands off to Dynamic Radio Button Form
551
  echo '<form name="bpsDB-UA-Search" action="'.admin_url( 'admin.php?page=bulletproof-security/admin/security-log/security-log.php#SecLogRemove-Allow' ).'" method="post">';
552
  wp_nonce_field('bulletproof_security_seclog_db_search');
553
- echo '<strong>'.__('Remove User Agents|Bots to Allow|Log', 'bulletproof-security').'</strong><br>';
554
  echo '<input type="text" name="userAgentSearchRemove" class="regular-text-320" value="" />';
555
- echo '<input type="submit" name="Submit-SecLog-Search" value="'.esc_attr__('Remove|Allow', 'bulletproof-security').'" class="button bps-button" style="margin-left:4px;" onclick="return confirm('."'".__('Clicking OK will search your database and display User Agent|Bot DB search results in a Dynamic Radio button Form.', 'bulletproof-security').'\n\n'.$bpsSpacePop.'\n\n'.__('To search for ALL User Agents|Bots to remove/delete from your database leave the text box blank and click the Remove|Allow button.', 'bulletproof-security').'\n\n'.$bpsSpacePop.'\n\n'.__('Click OK to proceed or click Cancel.', 'bulletproof-security')."'".')" />';
556
  echo '</form><br>';
557
 
558
  ?>
@@ -565,7 +490,7 @@ $search = '';
565
  <div id="SecurityLogTurnOffButton">
566
  <form name="BPSErrorLogOff" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/security-log/security-log.php' ); ?>" method="post">
567
  <?php wp_nonce_field('bps-error-log-off'); ?>
568
- <input type="submit" name="Submit-Error-Log-Off" value="<?php esc_attr_e('Turn Off Logging', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Click OK to Turn Off Error Logging or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
569
  </form>
570
  </div>
571
  </td>
@@ -573,7 +498,7 @@ $search = '';
573
  <div id="SecurityLogTurnOnButton">
574
  <form name="BPSErrorLogOn" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/security-log/security-log.php' ); ?>" method="post">
575
  <?php wp_nonce_field('bps-error-log-on'); ?>
576
- <input type="submit" name="Submit-Error-Log-On" value="<?php esc_attr_e('Turn On Logging', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Click OK to Turn On Logging or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
577
  </form>
578
  </div>
579
  </td>
@@ -581,7 +506,7 @@ $search = '';
581
  <div id="SecurityLogDeleteLogButton">
582
  <form name="DeleteLogForm" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/security-log/security-log.php' ); ?>" method="post">
583
  <?php wp_nonce_field('bps-delete-security-log'); ?>
584
- <input type="submit" name="Submit-Delete-Log" value="<?php esc_attr_e('Delete Log', 'bulletproof-security') ?>" class="button bps-button" onclick="return confirm('<?php $text = __('Clicking OK will delete the contents of your Security Log file.', 'bulletproof-security').'\n\n'.$bpsSpacePop.'\n\n'.__('Click OK to Delete the Log file contents or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
585
  </form>
586
  </div>
587
  </td>
221
 
222
  <!-- jQuery UI Tab Menu -->
223
  <div id="bps-tabs" class="bps-menu">
224
+ <div id="bpsHead"><img src="<?php echo plugins_url('/bulletproof-security/admin/images/bps-free-logo.gif'); ?>" /></div>
225
  <ul>
226
  <li><a href="#bps-tabs-1"><?php _e('Security Log', 'bulletproof-security'); ?></a></li>
227
  <li><a href="#bps-tabs-2"><?php _e('Help &amp; FAQ', 'bulletproof-security'); ?></a></li>
240
 
241
  <h3 style="margin:0px 0px 10px 0px;"><?php _e('Security Log', 'bulletproof-security'); ?> <button id="bps-open-modal9" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
242
 
243
+ <div id="bps-modal-content9" class="bps-dialog-hide" title="<?php _e('Security Log', 'bulletproof-security'); ?>">
244
  <p>
245
  <?php
246
  $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
252
  <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 />
253
  <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 />
254
 
255
+ <?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>'.__('Security Log Email Alert and Log file option settings are on the Email|Log Settings page.', '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>
256
  </div>
257
 
258
  <?php
305
  $logSize = filesize($filename);
306
 
307
  if ( $logSize < 2097152 ) {
308
+ $text = '<span style="font-size:13px;"><strong>'. __('Security Log File Size: ', 'bulletproof-security').'<font color="#2ea2cc">'. round($logSize / 1024, 2) .' KB</font></strong></span><br>';
309
  echo $text;
310
  } else {
311
+ $text = '<span style="font-size:13px;"><strong>'. __('Security Log File Size: ', 'bulletproof-security').'<font color="#fb0101">'. round($logSize / 1024, 2) .' KB<br>'.__('Your Security Log file is larger than 2MB. It appears that BPS is unable to automatically zip, email and delete your Security Log file.', 'bulletproof-security').'</font></strong><br>'.__('Check your Email Alerts & Log File Options.', 'bulletproof-security').'<br>'.__('You can manually delete the contents of this log file by clicking the Delete Log button.', 'bulletproof-security').'</span><br>';
312
  echo $text;
313
  }
314
  }
322
  $pattern = '/#{1,}(\s|){1,}ErrorDocument\s403(.*)\/bulletproof-security\/403\.php/';
323
 
324
  if ( file_exists($filename) && preg_match($pattern, $check_string, $matches) ) {
325
+ $text = '<span style="font-size:13px;"><strong>'.__('Security Log Status: ', 'bulletproof-security').'<font color="#2ea2cc">'.__('Logging is Turned Off', 'bulletproof-security').'</font></strong></span><br>';
326
  echo $text;
327
  } else {
328
+ $text = '<span style="font-size:13px;"><strong>'.__('Security Log Status: ', 'bulletproof-security').'<font color="#2ea2cc">'.__('Logging is Turned On', 'bulletproof-security').'</font></strong></span><br>';
329
  echo $text;
330
  }
331
  }
339
  $gmt_offset = get_option( 'gmt_offset' ) * 3600;
340
  $timestamp = date_i18n(get_option('date_format').' - '.get_option('time_format'), @filemtime($filename) + $gmt_offset);
341
 
342
+ $text = '<span style="font-size:13px;"><strong>'. __('Security Log Last Modified Time: ', 'bulletproof-security').'<font color="#2ea2cc">'.$timestamp.'</font></strong></span><br><br>';
343
  echo $text;
344
  }
345
  }
441
  }
442
  ?>
443
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
444
  <div id="SecLogPostLimit">
445
  <form name="SecLogPostLimit" action="options.php" method="post">
446
  <?php settings_fields('bulletproof_security_options_sec_log_post_limit'); ?>
462
  <strong><label for="UA-ignore"><?php _e('Add User Agents|Bots to Ignore|Not Log', 'bulletproof-security'); ?></label></strong><br />
463
  <strong><label for="UA-ignore"><?php _e('Click the Read Me Help button for examples', 'bulletproof-security'); ?></label></strong><br />
464
  <input type="text" name="user-agent-ignore" class="regular-text-320" value="" />
465
+ <input type="submit" name="Submit-UserAgent-Ignore" value="<?php esc_attr_e('Add|Ignore', 'bulletproof-security') ?>" class="button bps-button" style="width:104px" onclick="return confirm('<?php $text = __('Clicking OK will Add the User Agent|Bot name you have entered to your DB and the 403.php Security Logging template.', 'bulletproof-security').'\n\n'.$bpsSpacePop.'\n\n'.__('Security logging checks are done by the 403.php Security Logging file and not by DB Queries.', 'bulletproof-security').'\n\n'.$bpsSpacePop.'\n\n'.__('To remove User Agents|Bots from being ignored/not logged use the Remove|Allow tool.', 'bulletproof-security').'\n\n'.$bpsSpacePop.'\n\n'.__('Click OK to proceed or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
466
  </form>
467
  </div>
468
 
475
  // Initial User Agent|Bot Search Form - hands off to Dynamic Radio Button Form
476
  echo '<form name="bpsDB-UA-Search" action="'.admin_url( 'admin.php?page=bulletproof-security/admin/security-log/security-log.php#SecLogRemove-Allow' ).'" method="post">';
477
  wp_nonce_field('bulletproof_security_seclog_db_search');
478
+ echo '<span style="font-size:13px;"><strong>'.__('Remove User Agents|Bots to Allow|Log', 'bulletproof-security').'</strong></span><br>';
479
  echo '<input type="text" name="userAgentSearchRemove" class="regular-text-320" value="" />';
480
+ echo '<input type="submit" name="Submit-SecLog-Search" value="'.esc_attr__('Remove|Allow', 'bulletproof-security').'" class="button bps-button" style="margin-left:3px;width:104px" onclick="return confirm('."'".__('Clicking OK will search your database and display User Agent|Bot DB search results in a Dynamic Radio button Form.', 'bulletproof-security').'\n\n'.$bpsSpacePop.'\n\n'.__('To search for ALL User Agents|Bots to remove/delete from your database leave the text box blank and click the Remove|Allow button.', 'bulletproof-security').'\n\n'.$bpsSpacePop.'\n\n'.__('Click OK to proceed or click Cancel.', 'bulletproof-security')."'".')" />';
481
  echo '</form><br>';
482
 
483
  ?>
490
  <div id="SecurityLogTurnOffButton">
491
  <form name="BPSErrorLogOff" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/security-log/security-log.php' ); ?>" method="post">
492
  <?php wp_nonce_field('bps-error-log-off'); ?>
493
+ <input type="submit" name="Submit-Error-Log-Off" value="<?php esc_attr_e('Turn Off Logging', 'bulletproof-security') ?>" class="button bps-button" style="width:120px;margin-right:15px" onclick="return confirm('<?php $text = __('Click OK to Turn Off Error Logging or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
494
  </form>
495
  </div>
496
  </td>
498
  <div id="SecurityLogTurnOnButton">
499
  <form name="BPSErrorLogOn" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/security-log/security-log.php' ); ?>" method="post">
500
  <?php wp_nonce_field('bps-error-log-on'); ?>
501
+ <input type="submit" name="Submit-Error-Log-On" value="<?php esc_attr_e('Turn On Logging', 'bulletproof-security') ?>" class="button bps-button" style="width:120px;margin-right:15px" onclick="return confirm('<?php $text = __('Click OK to Turn On Logging or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
502
  </form>
503
  </div>
504
  </td>
506
  <div id="SecurityLogDeleteLogButton">
507
  <form name="DeleteLogForm" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/security-log/security-log.php' ); ?>" method="post">
508
  <?php wp_nonce_field('bps-delete-security-log'); ?>
509
+ <input type="submit" name="Submit-Delete-Log" value="<?php esc_attr_e('Delete Log', 'bulletproof-security') ?>" class="button bps-button" style="width:120px" onclick="return confirm('<?php $text = __('Clicking OK will delete the contents of your Security Log file.', 'bulletproof-security').'\n\n'.$bpsSpacePop.'\n\n'.__('Click OK to Delete the Log file contents or click Cancel.', 'bulletproof-security'); echo $text; ?>')" />
510
  </form>
511
  </div>
512
  </td>
admin/system-info/system-info.php CHANGED
@@ -83,7 +83,7 @@ $bps_bottomDiv = '</p></div>';
83
 
84
  <!-- jQuery UI Tab Menu -->
85
  <div id="bps-tabs" class="bps-menu">
86
- <div id="bpsHead"><img src="<?php echo plugins_url('/bulletproof-security/admin/images/bps-security-shield.gif'); ?>" /></div>
87
  <ul>
88
  <li><a href="#bps-tabs-1"><?php _e('System Info', 'bulletproof-security'); ?></a></li>
89
  <li><a href="#bps-tabs-2"><?php _e('Website Headers Check Tool', 'bulletproof-security'); ?></a></li>
@@ -97,7 +97,7 @@ $bps_bottomDiv = '</p></div>';
97
 
98
  <h3><?php _e('File|Folder Permissions & UID', 'bulletproof-security'); ?> <button id="bps-open-modal1" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
99
 
100
- <div id="bps-modal-content1" title="<?php _e('File|Folder Permissions & UID', 'bulletproof-security'); ?>">
101
  <p>
102
  <?php
103
  $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
@@ -414,7 +414,20 @@ function bpsPro_count_network_activated_plugins($count) {
414
  }
415
  }
416
  echo '<br>';
417
- echo '<strong><span class="sysinfo-label-text">'.__('ionCube Loader', 'bulletproof-security').':</span></strong> ';
 
 
 
 
 
 
 
 
 
 
 
 
 
418
  if ( extension_loaded('IonCube Loader') && function_exists('ioncube_loader_iversion') ) {
419
  echo __('ionCube Loader Extension is Loaded ', 'bulletproof-security').__('Version: ', 'bulletproof-security') . ioncube_loader_iversion();
420
  } else {
@@ -602,7 +615,7 @@ echo '<strong><span class="sysinfo-label-text">'.__('ionCube Loader', 'bulletpro
602
 
603
  <h3><button id="bps-open-modal600" class="button bps-modal-button"><?php _e('Get Plugins List', 'bulletproof-security'); ?></button></h3>
604
 
605
- <div id="bps-modal-content600" title="<?php _e('Get Plugins List', 'bulletproof-security'); ?>">
606
  <p><?php $text = '<strong>'.__('This window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
607
  echo $text; bpsPro_get_plugins_list(); ?></p>
608
  </div>
83
 
84
  <!-- jQuery UI Tab Menu -->
85
  <div id="bps-tabs" class="bps-menu">
86
+ <div id="bpsHead"><img src="<?php echo plugins_url('/bulletproof-security/admin/images/bps-free-logo.gif'); ?>" /></div>
87
  <ul>
88
  <li><a href="#bps-tabs-1"><?php _e('System Info', 'bulletproof-security'); ?></a></li>
89
  <li><a href="#bps-tabs-2"><?php _e('Website Headers Check Tool', 'bulletproof-security'); ?></a></li>
97
 
98
  <h3><?php _e('File|Folder Permissions & UID', 'bulletproof-security'); ?> <button id="bps-open-modal1" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
99
 
100
+ <div id="bps-modal-content1" class="bps-dialog-hide" title="<?php _e('File|Folder Permissions & UID', 'bulletproof-security'); ?>">
101
  <p>
102
  <?php
103
  $text = '<strong>'.__('This Read Me Help window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
414
  }
415
  }
416
  echo '<br>';
417
+
418
+ if ( function_exists('opcache_get_status') ) {
419
+ $zend_opcache = opcache_get_status();
420
+ echo '<strong><span class="sysinfo-label-text">'.__('Zend OPcache', 'bulletproof-security').':</span></strong> ';
421
+ if ( $zend_opcache['opcache_enabled'] == '1' ) {
422
+ $zend_opcache_config = opcache_get_configuration();
423
+ echo __('Zend OPcache is Enabled', 'bulletproof-security').' '.__('Version: ', 'bulletproof-security') . $zend_opcache_config['version']['version'];
424
+ } else {
425
+ echo __('Zend OPcache is Not Enabled', 'bulletproof-security');
426
+ }
427
+ echo '<br>';
428
+ }
429
+
430
+ echo '<strong><span class="sysinfo-label-text">'.__('ionCube Loader', 'bulletproof-security').':</span></strong> ';
431
  if ( extension_loaded('IonCube Loader') && function_exists('ioncube_loader_iversion') ) {
432
  echo __('ionCube Loader Extension is Loaded ', 'bulletproof-security').__('Version: ', 'bulletproof-security') . ioncube_loader_iversion();
433
  } else {
615
 
616
  <h3><button id="bps-open-modal600" class="button bps-modal-button"><?php _e('Get Plugins List', 'bulletproof-security'); ?></button></h3>
617
 
618
+ <div id="bps-modal-content600" class="bps-dialog-hide" title="<?php _e('Get Plugins List', 'bulletproof-security'); ?>">
619
  <p><?php $text = '<strong>'.__('This window is draggable (top) and resizable (bottom right corner)', 'bulletproof-security').'</strong><br><br>';
620
  echo $text; bpsPro_get_plugins_list(); ?></p>
621
  </div>
admin/theme-skin/theme-skin.php CHANGED
@@ -86,7 +86,7 @@ $bps_bottomDiv = '</p></div>';
86
 
87
  <!-- jQuery UI Tab Menu -->
88
  <div id="bps-tabs" class="bps-menu">
89
- <div id="bpsHead"><img src="<?php echo plugins_url('/bulletproof-security/admin/images/bps-security-shield.gif'); ?>" /></div>
90
  <ul>
91
  <li><a href="#bps-tabs-1"><?php _e('UI|UX Settings', 'bulletproof-security'); ?></a></li>
92
  <li><a href="#bps-tabs-2"><?php _e('Help &amp; FAQ', 'bulletproof-security'); ?></a></li>
@@ -106,7 +106,7 @@ $bps_bottomDiv = '</p></div>';
106
 
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><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
 
@@ -123,7 +123,7 @@ $bps_bottomDiv = '</p></div>';
123
  <option value="grey" <?php selected('grey', $UIoptions['bps_ui_theme_skin']); ?>><?php _e('Grey|Light Grey|Silver|White UI Theme', 'bulletproof-security'); ?></option>
124
  </select>
125
  <div id="ui-ux-div">
126
- <input type="submit" name="Submit-UI-Theme-Skin-Options" class="button bps-button" style="margin:10px 0px 10px 0px;" value="<?php esc_attr_e('Save Skin', 'bulletproof-security') ?>" />
127
  </div>
128
  </form>
129
 
86
 
87
  <!-- jQuery UI Tab Menu -->
88
  <div id="bps-tabs" class="bps-menu">
89
+ <div id="bpsHead"><img src="<?php echo plugins_url('/bulletproof-security/admin/images/bps-free-logo.gif'); ?>" /></div>
90
  <ul>
91
  <li><a href="#bps-tabs-1"><?php _e('UI|UX Settings', 'bulletproof-security'); ?></a></li>
92
  <li><a href="#bps-tabs-2"><?php _e('Help &amp; FAQ', 'bulletproof-security'); ?></a></li>
106
 
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" class="bps-dialog-hide" 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><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
 
123
  <option value="grey" <?php selected('grey', $UIoptions['bps_ui_theme_skin']); ?>><?php _e('Grey|Light Grey|Silver|White UI Theme', 'bulletproof-security'); ?></option>
124
  </select>
125
  <div id="ui-ux-div">
126
+ <input type="submit" name="Submit-UI-Theme-Skin-Options" class="button bps-button" style="margin:10px 0px 10px 0px;" value="<?php esc_attr_e('Save Option', 'bulletproof-security') ?>" />
127
  </div>
128
  </form>
129
 
admin/wizard/pwizard-autofix.php CHANGED
@@ -153,6 +153,20 @@ RewriteRule ^(.*)$ - [F]
153
  }
154
  }
155
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
156
  // cleans up whitespace, newlines, etc in the $bps_customcode_request_methods_array values.
157
  $cc_request_methods_array = array();
158
 
@@ -160,7 +174,7 @@ RewriteRule ^(.*)$ - [F]
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 );
@@ -209,7 +223,7 @@ RewriteRule ^(.*)$ - [F]
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
 
@@ -1771,6 +1785,23 @@ 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);
@@ -1783,7 +1814,7 @@ RewriteRule . - [S=99]";
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 );
@@ -1801,7 +1832,7 @@ RewriteRule . - [S=99]";
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
 
153
  }
154
  }
155
 
156
+ ## PowerPress Podcasting Plugin: whitelist rules
157
+ $powerpress = 'powerpress/powerpress.php';
158
+ $powerpress_active = in_array( $powerpress, apply_filters('active_plugins', get_option('active_plugins')));
159
+ $powerpress_array = array();
160
+ $powerpress_fix = '';
161
+
162
+ if ( $powerpress_active == 1 || is_plugin_active_for_network( $broken_link_checker ) ) {
163
+ $powerpress_fix = __('PowerPress Podcasting Plugin Request Methods AutoWhitelist successful', 'bulletproof-security');
164
+
165
+ if ( ! preg_match( $pattern_rmf, $bps_customcode_request_methods ) ) {
166
+ $powerpress_array[] = $request_methods_code;
167
+ }
168
+ }
169
+
170
  // cleans up whitespace, newlines, etc in the $bps_customcode_request_methods_array values.
171
  $cc_request_methods_array = array();
172
 
174
  $cc_request_methods_array[] = trim( $value, " \t\n\r");
175
  }
176
 
177
+ $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, $powerpress_array);
178
  $cc_request_methods_unique = array_unique($bps_customcode_request_methods_merge);
179
 
180
  $bps_customcode_request_methods_implode = implode( "\n\n", $cc_request_methods_unique );
223
  update_option('bulletproof_security_options_customcode', $Root_CC_Options);
224
  }
225
 
226
+ $success_array = array($jetpack_fix, $marmoset_viewer_fix, $backwpup_fix, $mailpoet_fix, $backupwordpress_fix, $broken_link_checker_fix, $mailchimp_fix, $powerpress_fix);
227
 
228
  foreach ( $success_array as $successMessage ) {
229
 
1785
  }
1786
  }
1787
 
1788
+ ## Flatsome Theme: whitelist rules
1789
+ $flatsome_theme = wp_get_theme( 'flatsome' );
1790
+ $pattern22 = '/RewriteCond\s%{REQUEST_URI}\s\(customize\\\.php\)\s\[NC\]/';
1791
+ $flatsome_theme_array = array();
1792
+ $flatsome_theme_fix = '';
1793
+
1794
+ if ( $flatsome_theme->exists() ) {
1795
+ $flatsome_theme_fix = __('Flatsome Theme wp-admin skip/bypass rule AutoWhitelist successful', 'bulletproof-security');
1796
+
1797
+ if ( ! preg_match( $pattern22, $bps_customcode_two_wpa ) ) {
1798
+
1799
+ $flatsome_theme_array[] = "# Flatsome Theme customize.php skip/bypass rule
1800
+ RewriteCond %{REQUEST_URI} (customize\.php) [NC]
1801
+ RewriteRule . - [S=99]";
1802
+ }
1803
+ }
1804
+
1805
  $bps_customcode_two_wpa_array_impload = implode( "]", $bps_customcode_two_wpa_array );
1806
  $bps_customcode_two_wpa_array_preg_split = preg_split("/\[S=\d{1,2}\]/", $bps_customcode_two_wpa_array_impload);
1807
  $bps_customcode_two_wpa_array_preg_replace = preg_replace("/RewriteRule\s\.\s-\s/", "RewriteRule . - [S=99]", $bps_customcode_two_wpa_array_preg_split);
1814
  $cc2_array[] = trim( $value, " \t\n\r");
1815
  }
1816
 
1817
+ $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, $flatsome_theme_array);
1818
 
1819
  $cc2_unique = array_unique($bps_customcode_two_wpa_array_merge);
1820
  $S_replace = preg_replace_callback( '/(S=\d{1,2})/', 'bpsPro_S_number_count_replace', $cc2_unique );
1832
  update_option('bulletproof_security_options_customcode_WPA', $wpadmin_CC_Options);
1833
  }
1834
 
1835
+ $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, $flatsome_theme_fix);
1836
 
1837
  foreach ( $success_array as $successMessage ) {
1838
 
admin/wizard/wizard-functions.php CHANGED
@@ -25,9 +25,11 @@ function bpsSetupWizard_delete_htaccess_files() {
25
  $core6 = $bpsPro_pf . 'admin/security-log/.htaccess';
26
  $core7 = $bpsPro_pf . 'admin/system-info/.htaccess';
27
  $core8 = $bpsPro_pf . 'admin/theme-skin/.htaccess';
28
- $core9 = $bpsPro_pf . 'admin/wizard/.htaccess';
29
-
30
- $files = array( $bps_backup, $bps_master_backups, $root_htaccess, $wpadmin_htaccess, $core1, $core2, $core3, $core4, $core5, $core6, $core7, $core8, $core9 );
 
 
31
 
32
  $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
33
 
25
  $core6 = $bpsPro_pf . 'admin/security-log/.htaccess';
26
  $core7 = $bpsPro_pf . 'admin/system-info/.htaccess';
27
  $core8 = $bpsPro_pf . 'admin/theme-skin/.htaccess';
28
+ $core9 = $bpsPro_pf . 'admin/wizard/.htaccess';
29
+ $core10 = $bpsPro_pf . 'admin/email-log-settings/.htaccess';
30
+ $core11 = $bpsPro_pf . 'admin/mscan/.htaccess';
31
+
32
+ $files = array( $bps_backup, $bps_master_backups, $root_htaccess, $wpadmin_htaccess, $core1, $core2, $core3, $core4, $core5, $core6, $core7, $core8, $core9, $core10, $core11 );
33
 
34
  $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
35
 
admin/wizard/wizard.php CHANGED
@@ -352,6 +352,7 @@ $time_start = microtime( true );
352
  $Stable_name = $wpdb->prefix . "bpspro_seclog_ignore";
353
  $Ltable_name = $wpdb->prefix . "bpspro_login_security";
354
  $DBBtable_name = $wpdb->prefix . "bpspro_db_backup";
 
355
 
356
  $successTextBegin = '<font color="green"><strong>';
357
  $successMessage = __(' DB Table created Successfully!', 'bulletproof-security');
@@ -427,6 +428,12 @@ $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
427
  echo $failTextBegin.$failMessage.$DBBtable_name.$failTextEnd;
428
  }
429
 
 
 
 
 
 
 
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>';
@@ -453,6 +460,12 @@ $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
453
  echo $failTextBegin.$failMessage2.WP_CONTENT_DIR . '/bps-backup/logs'.$failTextEnd;
454
  }
455
 
 
 
 
 
 
 
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>';
@@ -476,39 +489,40 @@ $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
476
  bpsSetupWizardCreateWpadminHtaccess();
477
  bpsSetupWizardCreateDefaultHtaccess();
478
 
479
- $htaccess_dir = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess';
480
- $secureHtaccess = $htaccess_dir . '/secure.htaccess';
481
- $wpadminHtaccess = $htaccess_dir . '/wpadmin-secure.htaccess';
482
- $defaultHtaccess = $htaccess_dir . '/default.htaccess';
483
- $bps_ARHtaccess = WP_CONTENT_DIR . '/bps-backup/.htaccess';
 
 
 
 
 
 
484
 
485
- if ( is_writable($secureHtaccess) ) {
486
- echo $successTextBegin.$secureHtaccess.$successMessage3.$successTextEnd;
487
- } else {
488
- echo $failTextBegin.$failMessage3.$secureHtaccess.$failTextEnd;
489
- }
490
-
491
- if ( is_writable($wpadminHtaccess) ) {
492
- echo $successTextBegin.$wpadminHtaccess.$successMessage3.$successTextEnd;
493
- } else {
494
- echo $failTextBegin.$failMessage3.$wpadminHtaccess.$failTextEnd;
495
- }
496
-
497
- if ( is_writable($defaultHtaccess) ) {
498
- echo $successTextBegin.$defaultHtaccess.$successMessage3.$successTextEnd;
499
- } else {
500
- echo $failTextBegin.$failMessage3.$defaultHtaccess.$failTextEnd;
501
- }
502
-
503
- if ( file_exists($bps_ARHtaccess) ) {
504
- echo $successTextBegin.$bps_ARHtaccess.$successMessage3.$successTextEnd;
505
- } else {
506
- echo $failTextBegin.$failMessage3.$bps_ARHtaccess.$failTextEnd;
507
- }
508
  } // end if ( $HFiles_options['bps_htaccess_files'] != 'disabled' ) {
509
 
510
  $bpsProDBBLogARQ = WP_CONTENT_DIR . '/bps-backup/logs/db_backup_log.txt';
511
  $bpsProSecLogARQ = WP_CONTENT_DIR . '/bps-backup/logs/http_error_log.txt';
 
512
 
513
  if ( file_exists($bpsProDBBLogARQ) ) {
514
  echo $successTextBegin.$bpsProDBBLogARQ.$successMessage3.$successTextEnd;
@@ -522,75 +536,114 @@ $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
522
  echo $failTextBegin.$failMessage3.$bpsProSecLogARQ.$failTextEnd;
523
  }
524
 
 
 
 
 
 
 
525
  // .53.6: New htaccess files enabled|disabled condition
526
  if ( $HFiles_options['bps_htaccess_files'] != 'disabled' ) {
527
 
528
- $bps_denyall_htaccess_renamed = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/.htaccess';
529
- $security_log_denyall_htaccess = WP_PLUGIN_DIR . '/bulletproof-security/admin/security-log/.htaccess';
530
- $system_info_denyall_htaccess = WP_PLUGIN_DIR . '/bulletproof-security/admin/system-info/.htaccess';
531
- $login_denyall_htaccess = WP_PLUGIN_DIR . '/bulletproof-security/admin/login/.htaccess';
532
- $MMode_denyall_htaccess = WP_PLUGIN_DIR . '/bulletproof-security/admin/maintenance/.htaccess';
533
- $DBB_denyall_htaccess = WP_PLUGIN_DIR . '/bulletproof-security/admin/db-backup-security/.htaccess';
534
- $core_denyall_htaccess = WP_PLUGIN_DIR . '/bulletproof-security/admin/core/.htaccess';
535
- $wizard_denyall_htaccess = WP_PLUGIN_DIR . '/bulletproof-security/admin/wizard/.htaccess';
536
-
537
- if ( file_exists($bps_denyall_htaccess_renamed) ) {
538
- echo $successTextBegin.$bps_denyall_htaccess_renamed.$successMessage3.$successTextEnd;
539
- } else {
540
- echo $failTextBegin.$failMessage3.$bps_denyall_htaccess_renamed.$failTextEnd;
541
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
542
 
543
- if ( file_exists($security_log_denyall_htaccess) ) {
544
- echo $successTextBegin.$security_log_denyall_htaccess.$successMessage3.$successTextEnd;
545
- } else {
546
- echo $failTextBegin.$failMessage3.$security_log_denyall_htaccess.$failTextEnd;
547
- }
548
 
549
- if ( file_exists($system_info_denyall_htaccess) ) {
550
- echo $successTextBegin.$system_info_denyall_htaccess.$successMessage3.$successTextEnd;
551
- } else {
552
- echo $failTextBegin.$failMessage3.$system_info_denyall_htaccess.$failTextEnd;
553
- }
 
 
 
554
 
555
- if ( file_exists($login_denyall_htaccess) ) {
556
- echo $successTextBegin.$login_denyall_htaccess.$successMessage3.$successTextEnd;
557
- } else {
558
- echo $failTextBegin.$failMessage3.$login_denyall_htaccess.$failTextEnd;
559
- }
560
 
561
- if ( file_exists($MMode_denyall_htaccess) ) {
562
- echo $successTextBegin.$MMode_denyall_htaccess.$successMessage3.$successTextEnd;
563
- } else {
564
- echo $failTextBegin.$failMessage3.$MMode_denyall_htaccess.$failTextEnd;
565
- }
566
 
567
- if ( file_exists($DBB_denyall_htaccess) ) {
568
- echo $successTextBegin.$DBB_denyall_htaccess.$successMessage3.$successTextEnd;
569
- } else {
570
- echo $failTextBegin.$failMessage3.$DBB_denyall_htaccess.$failTextEnd;
571
- }
572
 
573
- if ( file_exists($core_denyall_htaccess) ) {
574
- echo $successTextBegin.$core_denyall_htaccess.$successMessage3.$successTextEnd;
 
575
  } else {
576
- echo $failTextBegin.$failMessage3.$core_denyall_htaccess.$failTextEnd;
 
577
  }
578
 
579
- if ( file_exists($wizard_denyall_htaccess) ) {
580
- echo $successTextBegin.$wizard_denyall_htaccess.$successMessage3.$successTextEnd;
581
- } else {
582
- echo $failTextBegin.$failMessage3.$wizard_denyall_htaccess.$failTextEnd;
583
- }
584
- } // end if ( $HFiles_options['bps_htaccess_files'] != 'disabled' ) {
585
-
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
-
593
- $successMessage4 = __(' DB Option created or updated Successfully!', 'bulletproof-security');
594
 
595
  $bps_option_name_dbb = 'bulletproof_security_options_DBB_log';
596
  $bps_new_value_dbb = bpsPro_DBB_LogLastMod_wp_secs();
@@ -680,7 +733,9 @@ $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
680
  $bps_email_options7 = ! $bps_email_options['bps_security_log_emailL'] ? 'email' : $bps_email_options['bps_security_log_emailL'];
681
  $bps_email_options8 = ! $bps_email_options['bps_dbb_log_email'] ? 'email' : $bps_email_options['bps_dbb_log_email'];
682
  $bps_email_options9 = ! $bps_email_options['bps_dbb_log_size'] ? '500KB' : $bps_email_options['bps_dbb_log_size'];
683
-
 
 
684
  $BPS_Options_Email = array(
685
  'bps_send_email_to' => $bps_email_options1,
686
  'bps_send_email_from' => $bps_email_options2,
@@ -690,7 +745,9 @@ $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
690
  'bps_security_log_size' => $bps_email_options6,
691
  'bps_security_log_emailL' => $bps_email_options7,
692
  'bps_dbb_log_email' => $bps_email_options8,
693
- 'bps_dbb_log_size' => $bps_email_options9
 
 
694
  );
695
 
696
  foreach( $BPS_Options_Email as $key => $value ) {
@@ -706,31 +763,12 @@ $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
706
  $successMessage8 = __(' DB Option created or updated Successfully!', 'bulletproof-security');
707
 
708
  $BPS_LSM_Options = get_option('bulletproof_security_options_login_security');
709
- $woo_plugin = 'woocommerce/woocommerce.php';
710
- $woo_plugin_active = in_array( $woo_plugin, apply_filters('active_plugins', get_option('active_plugins')));
711
-
712
  // 2.3: BugFix: Enable Login Security for WooCommerce option being reset on rerun. Only enable once if the option does not exist.
713
- if ( $woo_plugin_active == 1 || is_plugin_active_for_network( $woo_plugin ) ) {
714
- // .54.36: New installations of BPS should not display the WooCommerce Enable LSM option Dismiss Notice if WooCommerce is already installed.
715
- $bps_woo_lsm_jtc_options = array( 'bps_wizard_woo' => '1' );
716
-
717
- if ( $BPS_LSM_Options['bps_enable_lsm_woocommerce'] == '' || $BPS_LSM_Options['bps_enable_lsm_woocommerce'] == '1' ) {
718
- $bps_enable_lsm_woocommerce = $BPS_LSM_Options['bps_enable_lsm_woocommerce'];
719
- } elseif ( ! $BPS_LSM_Options['bps_enable_lsm_woocommerce'] ) {
720
- $bps_enable_lsm_woocommerce = '1';
721
- }
722
-
723
- } else {
724
- $bps_enable_lsm_woocommerce = '';
725
- $bps_woo_lsm_jtc_options = array( 'bps_wizard_woo' => '' );
726
- }
727
-
728
- foreach( $bps_woo_lsm_jtc_options as $key => $value ) {
729
- update_option('bulletproof_security_options_setup_wizard_woo', $bps_woo_lsm_jtc_options);
730
- }
731
-
732
  $bps_login_security1 = ! $BPS_LSM_Options['bps_max_logins'] ? '3' : $BPS_LSM_Options['bps_max_logins'];
733
- $bps_login_security2 = ! $BPS_LSM_Options['bps_lockout_duration'] ? '60' : $BPS_LSM_Options['bps_lockout_duration'];
734
  $bps_login_security3 = ! $BPS_LSM_Options['bps_manual_lockout_duration'] ? '60' : $BPS_LSM_Options['bps_manual_lockout_duration'];
735
  $bps_login_security4 = ! $BPS_LSM_Options['bps_max_db_rows_display'] ? '' : $BPS_LSM_Options['bps_max_db_rows_display'];
736
  $bps_login_security5 = ! $BPS_LSM_Options['bps_login_security_OnOff'] ? 'On' : $BPS_LSM_Options['bps_login_security_OnOff'];
@@ -751,7 +789,7 @@ $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
751
  'bps_login_security_remaining' => $bps_login_security8,
752
  'bps_login_security_pw_reset' => $bps_login_security9,
753
  'bps_login_security_sort' => $bps_login_security10,
754
- 'bps_enable_lsm_woocommerce' => $bps_enable_lsm_woocommerce
755
  );
756
 
757
  foreach( $BPS_Options_LSM as $key => $value ) {
@@ -766,6 +804,94 @@ $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
766
 
767
  echo '</p></div>';
768
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
769
  echo '</span>';
770
 
771
  echo '<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>';
@@ -796,7 +922,7 @@ $HFiles_options = get_option('bulletproof_security_options_htaccess_files');
796
 
797
  <!-- jQuery UI Tab Menu -->
798
  <div id="bps-tabs" class="bps-menu">
799
- <div id="bpsHead"><img src="<?php echo plugins_url('/bulletproof-security/admin/images/bps-security-shield.gif'); ?>" />
800
 
801
  <style>
802
  <!--
@@ -877,7 +1003,7 @@ bpsPro_hfiles_inpage_message();
877
 
878
  <h3 style="margin:0px 0px 5px 0px;"><?php _e('Setup Wizard', 'bulletproof-security'); ?> <button id="bps-open-modal1" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
879
 
880
- <div id="bps-modal-content1" title="<?php _e('Setup Wizard', 'bulletproof-security'); ?>">
881
 
882
  <table width="100%" border="0" cellspacing="0" cellpadding="0" class="bps-readme-table">
883
  <tr>
@@ -946,7 +1072,7 @@ bpsSetupWizardPrechecks();
946
 
947
  <h3 style="margin:0px 0px 5px 0px;"><?php _e('Setup Wizard Options', 'bulletproof-security'); ?> <button id="bps-open-modal2" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
948
 
949
- <div id="bps-modal-content2" title="<?php _e('Setup Wizard Options', 'bulletproof-security'); ?>">
950
 
951
  <table width="100%" border="0" cellspacing="0" cellpadding="0" class="bps-readme-table">
952
  <tr>
@@ -961,9 +1087,10 @@ bpsSetupWizardPrechecks();
961
  <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 />
962
 
963
  <?php
964
- $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');
965
  echo $dialog_text;
966
  ?>
 
967
  </td>
968
  </tr>
969
  </table>
@@ -979,7 +1106,7 @@ bpsSetupWizardPrechecks();
979
  <option value="On" <?php selected('On', $AutoFix_Options['bps_wizard_autofix']); ?>><?php _e('AutoFix On', 'bulletproof-security'); ?></option>
980
  <option value="Off" <?php selected('Off', $AutoFix_Options['bps_wizard_autofix']); ?>><?php _e('AutoFix Off', 'bulletproof-security'); ?></option>
981
  </select><br />
982
- <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') ?>" />
983
  </form>
984
 
985
  <form name="SetupWizardGDMW" action="options.php#bps-tabs-2" method="post">
@@ -991,7 +1118,7 @@ bpsSetupWizardPrechecks();
991
  <option value="no" <?php selected('no', $GDMWoptions['bps_gdmw_hosting']); ?>><?php _e('No (default setting)', 'bulletproof-security'); ?></option>
992
  <option value="yes" <?php selected('yes', $GDMWoptions['bps_gdmw_hosting']); ?>><?php _e('Yes (ONLY if you have Managed WordPress Hosting)', 'bulletproof-security'); ?></option>
993
  </select><br />
994
- <input type="submit" name="Submit-Wizard-GDMW" class="button bps-button" style="margin:10px 0px 20px 0px;" value="<?php esc_attr_e('Save GDMW Option', 'bulletproof-security') ?>" />
995
  </form>
996
 
997
  <form name="SetupWizardHFiles" action="options.php#bps-tabs-2" method="post">
@@ -1004,7 +1131,7 @@ bpsSetupWizardPrechecks();
1004
  <option value="enabled" <?php selected('enabled', $HFiles_options['bps_htaccess_files']); ?>><?php _e('htaccess Files Enabled', 'bulletproof-security'); ?></option>
1005
  <option value="disabled" <?php selected('disabled', $HFiles_options['bps_htaccess_files']); ?>><?php _e('htaccess Files Disabled', 'bulletproof-security'); ?></option>
1006
  </select><br />
1007
- <input type="submit" name="Submit-Wizard-HFiles" class="button bps-button" style="margin:10px 0px 20px 0px;" value="<?php esc_attr_e('Enable|Disable', 'bulletproof-security') ?>" />
1008
  </form>
1009
 
1010
  <form name="wpadminEnableDisable" action="options.php#bps-tabs-2" method="post">
@@ -1015,7 +1142,7 @@ bpsSetupWizardPrechecks();
1015
  <option value="enabled" <?php selected('enabled', $BPS_wpadmin_Options['bps_wpadmin_restriction']); ?>><?php _e('wp-admin BulletProof Mode Enabled', 'bulletproof-security'); ?></option>
1016
  <option value="disabled" <?php selected('disabled', $BPS_wpadmin_Options['bps_wpadmin_restriction']); ?>><?php _e('wp-admin BulletProof Mode Disabled', 'bulletproof-security'); ?></option>
1017
  </select><br />
1018
- <input type="submit" name="Submit-Enable-Disable-wpadmin" class="button bps-button" style="margin:10px 0px 20px 0px;" value="<?php esc_attr_e('Enable|Disable', 'bulletproof-security') ?>" />
1019
  </form>
1020
 
1021
  <form name="ZipDownloadFix" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php#bps-tabs-2' ); ?>" method="post">
@@ -1027,14 +1154,22 @@ bpsSetupWizardPrechecks();
1027
  <option value="Off" <?php selected('Off', $Zip_download_Options['bps_zip_download_fix']); ?>><?php _e('Zip File Download Fix Off', 'bulletproof-security'); ?></option>
1028
  <option value="On" <?php selected('On', $Zip_download_Options['bps_zip_download_fix']); ?>><?php _e('Zip File Download Fix On', 'bulletproof-security'); ?></option>
1029
  </select><br />
1030
- <input type="submit" name="Submit-Zip-Download-Fix" class="button bps-button" style="margin:10px 0px 20px 0px;" value="<?php esc_attr_e('Save Zip File Download Fix Option', 'bulletproof-security') ?>" />
1031
  </form>
1032
 
1033
  <form name="bpsNetLSM" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php#bps-tabs-2' ); ?>" method="post">
1034
  <?php wp_nonce_field('bulletproof_security_net_lsm'); ?>
1035
  <div>
1036
  <strong><label for="NetLSM"><?php _e('Network|Multisite Sitewide Login Security Settings', 'bulletproof-security'); ?></label></strong><br />
1037
- <input type="submit" name="Submit-Net-LSM" class="button bps-button" style="margin:10px 0px 20px 0px;" value="<?php esc_attr_e('Save Network LSM Options Sitewide', 'bulletproof-security') ?>" />
 
 
 
 
 
 
 
 
1038
  </div>
1039
  </form>
1040
 
@@ -1090,10 +1225,10 @@ if ( isset( $_POST['Submit-Net-LSM'] ) && current_user_can('manage_options') ) {
1090
  if ( is_multisite() ) {
1091
 
1092
  if ( wp_is_large_network() ) {
1093
- echo '<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>';
1094
  $text = '<font color="#fb0101"><strong>'.__('Error: Your Network site exceeds the default WP criteria for a large network site. Either you have more than 10,000 users or more than 10,000 sites. Please post a new forum thread in the BPS plugin support forum on wordpress.org for assistance.', 'bulletproof-security').'</strong></font>';
1095
  echo $text;
1096
- echo '</p></div>';
1097
 
1098
  return;
1099
  }
@@ -1112,7 +1247,7 @@ if ( isset( $_POST['Submit-Net-LSM'] ) && current_user_can('manage_options') ) {
1112
 
1113
  $BPS_Net_LSM_Options = array(
1114
  'bps_max_logins' => '3',
1115
- 'bps_lockout_duration' => '60',
1116
  'bps_manual_lockout_duration' => '60',
1117
  'bps_max_db_rows_display' => '',
1118
  'bps_login_security_OnOff' => 'On',
@@ -1147,7 +1282,7 @@ if ( isset( $_POST['Submit-Net-LSM'] ) && current_user_can('manage_options') ) {
1147
  'bps_login_security_remaining' => $BPS_LSM_Options_Net['bps_login_security_remaining'],
1148
  'bps_login_security_pw_reset' => $BPS_LSM_Options_Net['bps_login_security_pw_reset'],
1149
  'bps_login_security_sort' => $BPS_LSM_Options_Net['bps_login_security_sort'],
1150
- 'bps_enable_lsm_woocommerce' => $BPS_LSM_Options_Net['bps_enable_lsm_woocommerce']
1151
  );
1152
 
1153
  foreach( $BPS_Net_Options_lsm as $key => $value ) {
@@ -1159,6 +1294,101 @@ if ( isset( $_POST['Submit-Net-LSM'] ) && current_user_can('manage_options') ) {
1159
  }
1160
  }
1161
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1162
  ?>
1163
 
1164
  </td>
352
  $Stable_name = $wpdb->prefix . "bpspro_seclog_ignore";
353
  $Ltable_name = $wpdb->prefix . "bpspro_login_security";
354
  $DBBtable_name = $wpdb->prefix . "bpspro_db_backup";
355
+ $MStable_name = $wpdb->prefix . "bpspro_mscan";
356
 
357
  $successTextBegin = '<font color="green"><strong>';
358
  $successMessage = __(' DB Table created Successfully!', 'bulletproof-security');
428
  echo $failTextBegin.$failMessage.$DBBtable_name.$failTextEnd;
429
  }
430
 
431
+ if ( $wpdb->get_var( $wpdb->prepare( "SHOW TABLES LIKE %s", $MStable_name ) ) == $MStable_name ) {
432
+ echo $successTextBegin.$MStable_name.$successMessage.$successTextEnd;
433
+ } else {
434
+ echo $failTextBegin.$failMessage.$MStable_name.$failTextEnd;
435
+ }
436
+
437
  echo '</p></div>';
438
 
439
  echo '<div style="color:black;font-size:1.13em;font-weight:bold;margin-bottom:15px;">'.__('BulletProof Security Core Folders Setup', 'bulletproof-security').'</div>';
460
  echo $failTextBegin.$failMessage2.WP_CONTENT_DIR . '/bps-backup/logs'.$failTextEnd;
461
  }
462
 
463
+ if ( is_dir( WP_CONTENT_DIR . '/bps-backup/wp-hashes' ) ) {
464
+ echo $successTextBegin.WP_CONTENT_DIR . '/bps-backup/wp-hashes'.$successMessage2.$successTextEnd;
465
+ } else {
466
+ echo $failTextBegin.$failMessage2.WP_CONTENT_DIR . '/bps-backup/wp-hashes'.$failTextEnd;
467
+ }
468
+
469
  echo '</p></div>';
470
 
471
  echo '<div style="color:black;font-size:1.13em;font-weight:bold;margin-bottom:15px;">'.__('BulletProof Security Core Files Setup', 'bulletproof-security').'</div>';
489
  bpsSetupWizardCreateWpadminHtaccess();
490
  bpsSetupWizardCreateDefaultHtaccess();
491
 
492
+ $htaccess_dir = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess';
493
+ $secureHtaccess = $htaccess_dir . '/secure.htaccess';
494
+ $wpadminHtaccess = $htaccess_dir . '/wpadmin-secure.htaccess';
495
+ $defaultHtaccess = $htaccess_dir . '/default.htaccess';
496
+ $bps_ARHtaccess = WP_CONTENT_DIR . '/bps-backup/.htaccess';
497
+
498
+ if ( is_writable($secureHtaccess) ) {
499
+ echo $successTextBegin.$secureHtaccess.$successMessage3.$successTextEnd;
500
+ } else {
501
+ echo $failTextBegin.$failMessage3.$secureHtaccess.$failTextEnd;
502
+ }
503
 
504
+ if ( is_writable($wpadminHtaccess) ) {
505
+ echo $successTextBegin.$wpadminHtaccess.$successMessage3.$successTextEnd;
506
+ } else {
507
+ echo $failTextBegin.$failMessage3.$wpadminHtaccess.$failTextEnd;
508
+ }
509
+
510
+ if ( is_writable($defaultHtaccess) ) {
511
+ echo $successTextBegin.$defaultHtaccess.$successMessage3.$successTextEnd;
512
+ } else {
513
+ echo $failTextBegin.$failMessage3.$defaultHtaccess.$failTextEnd;
514
+ }
515
+
516
+ if ( file_exists($bps_ARHtaccess) ) {
517
+ echo $successTextBegin.$bps_ARHtaccess.$successMessage3.$successTextEnd;
518
+ } else {
519
+ echo $failTextBegin.$failMessage3.$bps_ARHtaccess.$failTextEnd;
520
+ }
 
 
 
 
 
 
521
  } // end if ( $HFiles_options['bps_htaccess_files'] != 'disabled' ) {
522
 
523
  $bpsProDBBLogARQ = WP_CONTENT_DIR . '/bps-backup/logs/db_backup_log.txt';
524
  $bpsProSecLogARQ = WP_CONTENT_DIR . '/bps-backup/logs/http_error_log.txt';
525
+ $mscan_log = WP_CONTENT_DIR . '/bps-backup/logs/mscan_log.txt';
526
 
527
  if ( file_exists($bpsProDBBLogARQ) ) {
528
  echo $successTextBegin.$bpsProDBBLogARQ.$successMessage3.$successTextEnd;
536
  echo $failTextBegin.$failMessage3.$bpsProSecLogARQ.$failTextEnd;
537
  }
538
 
539
+ if ( file_exists($mscan_log) ) {
540
+ echo $successTextBegin.$mscan_log.$successMessage3.$successTextEnd;
541
+ } else {
542
+ echo $failTextBegin.$failMessage3.$mscan_log.$failTextEnd;
543
+ }
544
+
545
  // .53.6: New htaccess files enabled|disabled condition
546
  if ( $HFiles_options['bps_htaccess_files'] != 'disabled' ) {
547
 
548
+ $bps_denyall_htaccess_renamed = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/.htaccess';
549
+ $security_log_denyall_htaccess = WP_PLUGIN_DIR . '/bulletproof-security/admin/security-log/.htaccess';
550
+ $system_info_denyall_htaccess = WP_PLUGIN_DIR . '/bulletproof-security/admin/system-info/.htaccess';
551
+ $login_denyall_htaccess = WP_PLUGIN_DIR . '/bulletproof-security/admin/login/.htaccess';
552
+ $MMode_denyall_htaccess = WP_PLUGIN_DIR . '/bulletproof-security/admin/maintenance/.htaccess';
553
+ $DBB_denyall_htaccess = WP_PLUGIN_DIR . '/bulletproof-security/admin/db-backup-security/.htaccess';
554
+ $core_denyall_htaccess = WP_PLUGIN_DIR . '/bulletproof-security/admin/core/.htaccess';
555
+ $wizard_denyall_htaccess = WP_PLUGIN_DIR . '/bulletproof-security/admin/wizard/.htaccess';
556
+ $email_denyall_htaccess = WP_PLUGIN_DIR . '/bulletproof-security/admin/email-log-settings/.htaccess';
557
+ $mscan_denyall_htaccess = WP_PLUGIN_DIR . '/bulletproof-security/admin/mscan/.htaccess';
558
+
559
+ if ( file_exists($bps_denyall_htaccess_renamed) ) {
560
+ echo $successTextBegin.$bps_denyall_htaccess_renamed.$successMessage3.$successTextEnd;
561
+ } else {
562
+ echo $failTextBegin.$failMessage3.$bps_denyall_htaccess_renamed.$failTextEnd;
563
+ }
564
+
565
+ if ( file_exists($security_log_denyall_htaccess) ) {
566
+ echo $successTextBegin.$security_log_denyall_htaccess.$successMessage3.$successTextEnd;
567
+ } else {
568
+ echo $failTextBegin.$failMessage3.$security_log_denyall_htaccess.$failTextEnd;
569
+ }
570
+
571
+ if ( file_exists($system_info_denyall_htaccess) ) {
572
+ echo $successTextBegin.$system_info_denyall_htaccess.$successMessage3.$successTextEnd;
573
+ } else {
574
+ echo $failTextBegin.$failMessage3.$system_info_denyall_htaccess.$failTextEnd;
575
+ }
576
+
577
+ if ( file_exists($login_denyall_htaccess) ) {
578
+ echo $successTextBegin.$login_denyall_htaccess.$successMessage3.$successTextEnd;
579
+ } else {
580
+ echo $failTextBegin.$failMessage3.$login_denyall_htaccess.$failTextEnd;
581
+ }
582
+
583
+ if ( file_exists($MMode_denyall_htaccess) ) {
584
+ echo $successTextBegin.$MMode_denyall_htaccess.$successMessage3.$successTextEnd;
585
+ } else {
586
+ echo $failTextBegin.$failMessage3.$MMode_denyall_htaccess.$failTextEnd;
587
+ }
588
+
589
+ if ( file_exists($DBB_denyall_htaccess) ) {
590
+ echo $successTextBegin.$DBB_denyall_htaccess.$successMessage3.$successTextEnd;
591
+ } else {
592
+ echo $failTextBegin.$failMessage3.$DBB_denyall_htaccess.$failTextEnd;
593
+ }
594
+
595
+ if ( file_exists($core_denyall_htaccess) ) {
596
+ echo $successTextBegin.$core_denyall_htaccess.$successMessage3.$successTextEnd;
597
+ } else {
598
+ echo $failTextBegin.$failMessage3.$core_denyall_htaccess.$failTextEnd;
599
+ }
600
+
601
+ if ( file_exists($wizard_denyall_htaccess) ) {
602
+ echo $successTextBegin.$wizard_denyall_htaccess.$successMessage3.$successTextEnd;
603
+ } else {
604
+ echo $failTextBegin.$failMessage3.$wizard_denyall_htaccess.$failTextEnd;
605
+ }
606
 
607
+ if ( file_exists($email_denyall_htaccess) ) {
608
+ echo $successTextBegin.$email_denyall_htaccess.$successMessage3.$successTextEnd;
609
+ } else {
610
+ echo $failTextBegin.$failMessage3.$email_denyall_htaccess.$failTextEnd;
611
+ }
612
 
613
+ if ( file_exists($mscan_denyall_htaccess) ) {
614
+ echo $successTextBegin.$mscan_denyall_htaccess.$successMessage3.$successTextEnd;
615
+ } else {
616
+ echo $failTextBegin.$failMessage3.$mscan_denyall_htaccess.$failTextEnd;
617
+ }
618
+ } // end if ( $HFiles_options['bps_htaccess_files'] != 'disabled' ) {
619
+
620
+ echo '</p></div>';
621
 
622
+ echo '<div style="color:black;font-size:1.13em;font-weight:bold;margin-bottom:15px;">'.__('BulletProof Security MScan Malware Scanner Setup', 'bulletproof-security').'</div>';
623
+ echo '<div id="MScanWizard" style="border-top:3px solid #999999;border-bottom:3px solid #999999;margin-top:-10px;"><p>';
 
 
 
624
 
625
+ bpsPro_presave_mscan_options();
626
+
627
+ $successMessage4 = __(' DB Option created or updated Successfully!', 'bulletproof-security');
 
 
628
 
629
+ $bps_option_name_mscan = 'bulletproof_security_options_MScan_log';
630
+ $bps_new_value_mscan = bpsPro_MScan_LogLastMod_wp_secs();
631
+ $BPS_Options_mscan = array( 'bps_mscan_log_date_mod' => $bps_new_value_mscan );
 
 
632
 
633
+ if ( ! get_option( $bps_option_name_mscan ) ) {
634
+ update_option('bulletproof_security_options_MScan_log', $BPS_Options_mscan);
635
+ echo $successTextBegin.$bps_option_name_mscan.$successMessage4.$successTextEnd;
636
  } else {
637
+ update_option('bulletproof_security_options_MScan_log', $BPS_Options_mscan);
638
+ echo $successTextBegin.$bps_option_name_mscan.$successMessage4.$successTextEnd;
639
  }
640
 
 
 
 
 
 
 
 
641
  echo '</p></div>';
642
 
643
  echo '<div style="color:black;font-size:1.13em;font-weight:bold;margin-bottom:15px;">'.__('BulletProof Security DB Backup Setup', 'bulletproof-security').'</div>';
644
  echo '<div id="DBBackup" style="border-top:3px solid #999999;border-bottom:3px solid #999999;margin-top:-10px;"><p>';
645
 
646
  bpsSetupWizard_dbbackup_folder_check();
 
 
647
 
648
  $bps_option_name_dbb = 'bulletproof_security_options_DBB_log';
649
  $bps_new_value_dbb = bpsPro_DBB_LogLastMod_wp_secs();
733
  $bps_email_options7 = ! $bps_email_options['bps_security_log_emailL'] ? 'email' : $bps_email_options['bps_security_log_emailL'];
734
  $bps_email_options8 = ! $bps_email_options['bps_dbb_log_email'] ? 'email' : $bps_email_options['bps_dbb_log_email'];
735
  $bps_email_options9 = ! $bps_email_options['bps_dbb_log_size'] ? '500KB' : $bps_email_options['bps_dbb_log_size'];
736
+ $bps_email_options10 = ! $bps_email_options['bps_mscan_log_size'] ? '500KB' : $bps_email_options['bps_mscan_log_size'];
737
+ $bps_email_options11 = ! $bps_email_options['bps_mscan_log_email'] ? 'email' : $bps_email_options['bps_mscan_log_email'];
738
+
739
  $BPS_Options_Email = array(
740
  'bps_send_email_to' => $bps_email_options1,
741
  'bps_send_email_from' => $bps_email_options2,
745
  'bps_security_log_size' => $bps_email_options6,
746
  'bps_security_log_emailL' => $bps_email_options7,
747
  'bps_dbb_log_email' => $bps_email_options8,
748
+ 'bps_dbb_log_size' => $bps_email_options9,
749
+ 'bps_mscan_log_size' => $bps_email_options10,
750
+ 'bps_mscan_log_email' => $bps_email_options11
751
  );
752
 
753
  foreach( $BPS_Options_Email as $key => $value ) {
763
  $successMessage8 = __(' DB Option created or updated Successfully!', 'bulletproof-security');
764
 
765
  $BPS_LSM_Options = get_option('bulletproof_security_options_login_security');
766
+ // 2.4: Enable Login Security for WooCommerce option is disabled by default in BPS free and cannot be enabled.
767
+ // 2.4: WooCommerce Enable LSM option Dismiss Notice deleted. bulletproof_security_options_setup_wizard_woo db option deleted.
 
768
  // 2.3: BugFix: Enable Login Security for WooCommerce option being reset on rerun. Only enable once if the option does not exist.
769
+ // .54.3: New installations of BPS should not display the WooCommerce Enable LSM option Dismiss Notice if WooCommerce is already installed.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
770
  $bps_login_security1 = ! $BPS_LSM_Options['bps_max_logins'] ? '3' : $BPS_LSM_Options['bps_max_logins'];
771
+ $bps_login_security2 = ! $BPS_LSM_Options['bps_lockout_duration'] ? '15' : $BPS_LSM_Options['bps_lockout_duration'];
772
  $bps_login_security3 = ! $BPS_LSM_Options['bps_manual_lockout_duration'] ? '60' : $BPS_LSM_Options['bps_manual_lockout_duration'];
773
  $bps_login_security4 = ! $BPS_LSM_Options['bps_max_db_rows_display'] ? '' : $BPS_LSM_Options['bps_max_db_rows_display'];
774
  $bps_login_security5 = ! $BPS_LSM_Options['bps_login_security_OnOff'] ? 'On' : $BPS_LSM_Options['bps_login_security_OnOff'];
789
  'bps_login_security_remaining' => $bps_login_security8,
790
  'bps_login_security_pw_reset' => $bps_login_security9,
791
  'bps_login_security_sort' => $bps_login_security10,
792
+ 'bps_enable_lsm_woocommerce' => ''
793
  );
794
 
795
  foreach( $BPS_Options_LSM as $key => $value ) {
804
 
805
  echo '</p></div>';
806
 
807
+ echo '<div style="color:black;font-size:1.13em;font-weight:bold;margin-bottom:15px;">'.__('BulletProof Security JTC-Lite Options Setup', 'bulletproof-security').'</div>';
808
+ echo '<div id="SWJTC-Lite" style="border-top:3px solid #999999;border-bottom:3px solid #999999;margin-top:-10px;"><p>';
809
+
810
+ $bps_option_name9b = 'bulletproof_security_options_login_security_jtc';
811
+ $successMessage9b = __(' DB Option created or updated Successfully!', 'bulletproof-security');
812
+ $jtc_options = get_option('bulletproof_security_options_login_security_jtc');
813
+
814
+ if ( ! $jtc_options['bps_jtc_custom_roles'] ) {
815
+ $bps_jtc_custom_roles = array( 'bps', '' );
816
+
817
+ } else {
818
+
819
+ foreach ( $jtc_options as $key => $value ) {
820
+
821
+ if ( $key == 'bps_jtc_custom_roles' ) {
822
+
823
+ if ( ! is_array($value) ) {
824
+ $bps_jtc_custom_roles = array( 'bps', '' );
825
+ } else {
826
+ $bps_jtc_custom_roles = $jtc_options['bps_jtc_custom_roles'];
827
+ }
828
+ }
829
+ }
830
+ }
831
+
832
+ $jtc_db_options_new = array(
833
+ 'bps_tooltip_captcha_key' => 'jtc',
834
+ 'bps_tooltip_captcha_hover_text' => 'Type/Enter: jtc',
835
+ 'bps_tooltip_captcha_title' => 'Hover or click the text box below',
836
+ 'bps_tooltip_captcha_logging' => 'Off',
837
+ 'bps_jtc_login_form' => '1',
838
+ 'bps_jtc_register_form' => '',
839
+ 'bps_jtc_lostpassword_form' => '',
840
+ 'bps_jtc_comment_form' => '',
841
+ 'bps_jtc_buddypress_register_form' => '',
842
+ 'bps_jtc_buddypress_sidebar_form' => '',
843
+ 'bps_jtc_administrator' => '',
844
+ 'bps_jtc_editor' => '',
845
+ 'bps_jtc_author' => '',
846
+ 'bps_jtc_contributor' => '',
847
+ 'bps_jtc_subscriber' => '',
848
+ 'bps_jtc_comment_form_error' => '',
849
+ 'bps_jtc_comment_form_label' => '',
850
+ 'bps_jtc_comment_form_input' => '',
851
+ 'bps_jtc_custom_roles' => $bps_jtc_custom_roles,
852
+ 'bps_enable_jtc_woocommerce' => ''
853
+ );
854
+
855
+ if ( ! get_option( $bps_option_name9b ) ) {
856
+
857
+ foreach( $jtc_db_options_new as $key => $value ) {
858
+ update_option('bulletproof_security_options_login_security_jtc', $jtc_db_options_new);
859
+ echo $successTextBegin.$key.$successMessage9b.$successTextEnd;
860
+ }
861
+
862
+ } else {
863
+
864
+ $jtc_db_options = array(
865
+ 'bps_tooltip_captcha_key' => $jtc_options['bps_tooltip_captcha_key'],
866
+ 'bps_tooltip_captcha_hover_text' => $jtc_options['bps_tooltip_captcha_hover_text'],
867
+ 'bps_tooltip_captcha_title' => $jtc_options['bps_tooltip_captcha_title'],
868
+ 'bps_tooltip_captcha_logging' => 'Off',
869
+ 'bps_jtc_login_form' => $jtc_options['bps_jtc_login_form'],
870
+ 'bps_jtc_register_form' => '',
871
+ 'bps_jtc_lostpassword_form' => '',
872
+ 'bps_jtc_comment_form' => '',
873
+ 'bps_jtc_buddypress_register_form' => '',
874
+ 'bps_jtc_buddypress_sidebar_form' => '',
875
+ 'bps_jtc_administrator' => '',
876
+ 'bps_jtc_editor' => '',
877
+ 'bps_jtc_author' => '',
878
+ 'bps_jtc_contributor' => '',
879
+ 'bps_jtc_subscriber' => '',
880
+ 'bps_jtc_comment_form_error' => $jtc_options['bps_jtc_comment_form_error'],
881
+ 'bps_jtc_comment_form_label' => $jtc_options['bps_jtc_comment_form_label'],
882
+ 'bps_jtc_comment_form_input' => $jtc_options['bps_jtc_comment_form_input'],
883
+ 'bps_jtc_custom_roles' => $bps_jtc_custom_roles,
884
+ 'bps_enable_jtc_woocommerce' => ''
885
+ );
886
+
887
+ foreach( $jtc_db_options as $key => $value ) {
888
+ update_option('bulletproof_security_options_login_security_jtc', $jtc_db_options);
889
+ echo $successTextBegin.$key.$successMessage9b.$successTextEnd;
890
+ }
891
+ }
892
+
893
+ echo '</p></div>';
894
+
895
  echo '</span>';
896
 
897
  echo '<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>';
922
 
923
  <!-- jQuery UI Tab Menu -->
924
  <div id="bps-tabs" class="bps-menu">
925
+ <div id="bpsHead"><img src="<?php echo plugins_url('/bulletproof-security/admin/images/bps-free-logo.gif'); ?>" />
926
 
927
  <style>
928
  <!--
1003
 
1004
  <h3 style="margin:0px 0px 5px 0px;"><?php _e('Setup Wizard', 'bulletproof-security'); ?> <button id="bps-open-modal1" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
1005
 
1006
+ <div id="bps-modal-content1" class="bps-dialog-hide" title="<?php _e('Setup Wizard', 'bulletproof-security'); ?>">
1007
 
1008
  <table width="100%" border="0" cellspacing="0" cellpadding="0" class="bps-readme-table">
1009
  <tr>
1072
 
1073
  <h3 style="margin:0px 0px 5px 0px;"><?php _e('Setup Wizard Options', 'bulletproof-security'); ?> <button id="bps-open-modal2" class="button bps-modal-button"><?php _e('Read Me', 'bulletproof-security'); ?></button></h3>
1074
 
1075
+ <div id="bps-modal-content2" class="bps-dialog-hide" title="<?php _e('Setup Wizard Options', 'bulletproof-security'); ?>">
1076
 
1077
  <table width="100%" border="0" cellspacing="0" cellpadding="0" class="bps-readme-table">
1078
  <tr>
1087
  <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 />
1088
 
1089
  <?php
1090
+ $dialog_text = '<strong>'.__('AutoFix (AutoWhitelist|AutoSetup|AutoCleanup)', 'bulletproof-security').'</strong><br>'.__('Setup Wizard AutoFix is turned On by default. When AutoFix is turned On the Setup Wizard will automatically create htaccess whitelist rules in BPS Custom Code and your Live htaccess files for other plugins and themes that you have installed that require htaccess code whitelist rules. Setup Wizard AutoFix will also automatically setup or cleanup htaccess code in BPS Custom Code for these caching plugins: WP Super Cache, W3 Total Cache, Comet Cache Plugin (free & Pro), WP Fastest Cache Plugin (free & Premium), Endurance Page Cache and WP Rocket. If a problem occurs with AutoFix you can turn On the AutoFix Debugger on the BPS UI|UX Settings page > BPS UI|UX|AutoFix Debug option to check the plugin or theme name and the BPS Custom Code text box where the problem is occurring. You can also turn Off AutoFix and AutoFix will not try to detect or create Custom Code whitelist rules or setup or cleanup caching plugins htaccess code. If a problem does occur with AutoFix turn On the BPS UI|UX|AutoFix Debug option, copy the AutoFix Debug information that is displayed to you and then click the AutoFix Forum Topic link at the top of this Read Me help window and post a forum Reply with your AutoFix Debug information so that we can figure out what the problem is.', 'bulletproof-security').'<br><br><strong>'.__('Go Daddy Managed WordPress Hosting (GDMW):', 'bulletproof-security').'</strong><br>'.__('This option is ONLY for a special type of Go Daddy Hosting account called "Managed WordPress Hosting" and is NOT for regular/standard Go Daddy Hosting account types. Leave the default setting set to No, unless you have a Go Daddy Managed WordPress Hosting account. See the Forum Help Links section above for more information.', 'bulletproof-security').'<br><br><strong>'.__('Enable|Disable htaccess Files:', 'bulletproof-security').'</strong><br>'.__('Before changing this option setting, click the ', 'bulletproof-security').'<strong><font color="blue">'.__('Enable|Disable htaccess Files', 'bulletproof-security').'</font></strong>'.__(' Forum Help Link at the top of this Read Me help window to find out exactly what this option setting does and when it should or should not be used. htaccess Files Disabled: Will disable all BPS htaccess features and files. htaccess Files Enabled: Will enable all BPS htaccess freatures and files.', 'bulletproof-security').'<br><br><strong>'.__('Enable|Disable wp-admin BulletProof Mode', 'bulletproof-security').'</strong><br>'.__('The default setting is already set to: wp-admin BulletProof Mode Enabled. If you would like to disable wp-admin BulletProof Mode select wp-admin BulletProof Mode Disabled.', 'bulletproof-security').'<br><br><strong>'.__('Zip File Download Fix (Incapsula, Proxy, Other Cause):', 'bulletproof-security').'</strong><br>'.__('This option should only be set to On if you are seeing a 403 error and/or unable to download these Zip files: Custom Code Export Zip file, Login Security Table Export Zip file or the Setup Wizard Root htaccess file backup Zip file. The Setup Wizard Root htaccess file backup Zip file link is only displayed if BPS detects that your current Root htaccess file is not a BPS Root htaccess file. If you are still unable to download zip files after setting this option to On then you will need to whitelist your Proxy IP address in the Plugin Firewall Whitelist by Hostname (domain name) and IP Address tool under the Plugin Firewall Additional Whitelist Tools accordion tab. If that does not work then you will need to deactivate the Plugin Firewall temporarily, download the zip file and then activate the Plugin Firewall again.', 'bulletproof-security').'<br><br><strong>'.__('Network|Multisite Sitewide Login Security Settings', 'bulletproof-security').'</strong><br>'.__('This option is for Network|Multisite sites only. This is an independent option Form that creates and saves Login Security DB option settings for all Network sites when you click the Save Network LSM Options Sitewide button. If Login Security option settings have already been setup and saved for any Network site then those Login Security option settings will NOT be changed. If Login Security options settings have NOT already been setup and saved for any Network site then those Login Security option settings will be created and saved with these default settings: Max Login Attempts: 3, Automatic Lockout Time: 60, Manual Lockout Time: 60, Max DB Rows To Show: blank show all rows, Turn On|Turn Off: Turn On Login Security, Logging Options: Log Only Account Lockouts, Error Messages: Standard WP Login Errors, Attempts Remaining: Show Login Attempts Remaining, Password Reset: Enable Password Reset, Sort DB Rows: Ascending - Show Oldest Login First.', 'bulletproof-security').'<br><br><strong>'.__('Network|Multisite Sitewide JTC-Lite Settings', 'bulletproof-security').'</strong><br>'.__('This option is for Network|Multisite sites only. This is an independent option Form that creates and saves JTC-Lite DB option settings for all Network sites when you click the Save Network JTC Options Sitewide button. If JTC option settings have already been setup and saved for any Network site then those JTC option settings will not be changed. If JTC options settings have not already been setup and saved for any Network site then those JTC option settings will be created and saved with these default settings: JTC CAPTCHA: jtc, JTC ToolTip: Type/Enter: jtc, JTC Title|Text: Hover or click the text box below, Enable|Disable JTC Anti-Spam For These Forms: Login Form checkbox is checked and will display the JTC CAPTCHA text box on the Login Form.', 'bulletproof-security');
1091
  echo $dialog_text;
1092
  ?>
1093
+
1094
  </td>
1095
  </tr>
1096
  </table>
1106
  <option value="On" <?php selected('On', $AutoFix_Options['bps_wizard_autofix']); ?>><?php _e('AutoFix On', 'bulletproof-security'); ?></option>
1107
  <option value="Off" <?php selected('Off', $AutoFix_Options['bps_wizard_autofix']); ?>><?php _e('AutoFix Off', 'bulletproof-security'); ?></option>
1108
  </select><br />
1109
+ <input type="submit" name="Submit-AutoFix" class="button bps-button" style="margin:10px 0px 20px 0px;width:202px" value="<?php esc_attr_e('Save AutoFix Option', 'bulletproof-security') ?>" />
1110
  </form>
1111
 
1112
  <form name="SetupWizardGDMW" action="options.php#bps-tabs-2" method="post">
1118
  <option value="no" <?php selected('no', $GDMWoptions['bps_gdmw_hosting']); ?>><?php _e('No (default setting)', 'bulletproof-security'); ?></option>
1119
  <option value="yes" <?php selected('yes', $GDMWoptions['bps_gdmw_hosting']); ?>><?php _e('Yes (ONLY if you have Managed WordPress Hosting)', 'bulletproof-security'); ?></option>
1120
  </select><br />
1121
+ <input type="submit" name="Submit-Wizard-GDMW" class="button bps-button" style="margin:10px 0px 20px 0px;width:202px" value="<?php esc_attr_e('Save GDMW Option', 'bulletproof-security') ?>" />
1122
  </form>
1123
 
1124
  <form name="SetupWizardHFiles" action="options.php#bps-tabs-2" method="post">
1131
  <option value="enabled" <?php selected('enabled', $HFiles_options['bps_htaccess_files']); ?>><?php _e('htaccess Files Enabled', 'bulletproof-security'); ?></option>
1132
  <option value="disabled" <?php selected('disabled', $HFiles_options['bps_htaccess_files']); ?>><?php _e('htaccess Files Disabled', 'bulletproof-security'); ?></option>
1133
  </select><br />
1134
+ <input type="submit" name="Submit-Wizard-HFiles" class="button bps-button" style="margin:10px 0px 20px 0px;width:202px" value="<?php esc_attr_e('Enable|Disable', 'bulletproof-security') ?>" />
1135
  </form>
1136
 
1137
  <form name="wpadminEnableDisable" action="options.php#bps-tabs-2" method="post">
1142
  <option value="enabled" <?php selected('enabled', $BPS_wpadmin_Options['bps_wpadmin_restriction']); ?>><?php _e('wp-admin BulletProof Mode Enabled', 'bulletproof-security'); ?></option>
1143
  <option value="disabled" <?php selected('disabled', $BPS_wpadmin_Options['bps_wpadmin_restriction']); ?>><?php _e('wp-admin BulletProof Mode Disabled', 'bulletproof-security'); ?></option>
1144
  </select><br />
1145
+ <input type="submit" name="Submit-Enable-Disable-wpadmin" class="button bps-button" style="margin:10px 0px 20px 0px;width:202px" value="<?php esc_attr_e('Enable|Disable', 'bulletproof-security') ?>" />
1146
  </form>
1147
 
1148
  <form name="ZipDownloadFix" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php#bps-tabs-2' ); ?>" method="post">
1154
  <option value="Off" <?php selected('Off', $Zip_download_Options['bps_zip_download_fix']); ?>><?php _e('Zip File Download Fix Off', 'bulletproof-security'); ?></option>
1155
  <option value="On" <?php selected('On', $Zip_download_Options['bps_zip_download_fix']); ?>><?php _e('Zip File Download Fix On', 'bulletproof-security'); ?></option>
1156
  </select><br />
1157
+ <input type="submit" name="Submit-Zip-Download-Fix" class="button bps-button" style="margin:10px 0px 20px 0px;width:232px" value="<?php esc_attr_e('Save Zip File Download Fix Option', 'bulletproof-security') ?>" />
1158
  </form>
1159
 
1160
  <form name="bpsNetLSM" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php#bps-tabs-2' ); ?>" method="post">
1161
  <?php wp_nonce_field('bulletproof_security_net_lsm'); ?>
1162
  <div>
1163
  <strong><label for="NetLSM"><?php _e('Network|Multisite Sitewide Login Security Settings', 'bulletproof-security'); ?></label></strong><br />
1164
+ <input type="submit" name="Submit-Net-LSM" class="button bps-button" style="margin:10px 0px 20px 0px;width:232px" value="<?php esc_attr_e('Save Network LSM Options Sitewide', 'bulletproof-security') ?>" />
1165
+ </div>
1166
+ </form>
1167
+
1168
+ <form name="bpsNetJTC" action="<?php echo admin_url( 'admin.php?page=bulletproof-security/admin/wizard/wizard.php#bps-tabs-2' ); ?>" method="post">
1169
+ <?php wp_nonce_field('bulletproof_security_net_jtc'); ?>
1170
+ <div>
1171
+ <strong><label for="NetLSM"><?php _e('Network|Multisite Sitewide JTC-Lite Settings', 'bulletproof-security'); ?></label></strong><br />
1172
+ <input type="submit" name="Submit-Net-JTC" class="button bps-button" style="margin:10px 0px 20px 0px;width:232px" value="<?php esc_attr_e('Save Network JTC Options Sitewide', 'bulletproof-security') ?>" />
1173
  </div>
1174
  </form>
1175
 
1225
  if ( is_multisite() ) {
1226
 
1227
  if ( wp_is_large_network() ) {
1228
+ echo $bps_topDiv;
1229
  $text = '<font color="#fb0101"><strong>'.__('Error: Your Network site exceeds the default WP criteria for a large network site. Either you have more than 10,000 users or more than 10,000 sites. Please post a new forum thread in the BPS plugin support forum on wordpress.org for assistance.', 'bulletproof-security').'</strong></font>';
1230
  echo $text;
1231
+ echo $bps_bottomDiv;
1232
 
1233
  return;
1234
  }
1247
 
1248
  $BPS_Net_LSM_Options = array(
1249
  'bps_max_logins' => '3',
1250
+ 'bps_lockout_duration' => '15',
1251
  'bps_manual_lockout_duration' => '60',
1252
  'bps_max_db_rows_display' => '',
1253
  'bps_login_security_OnOff' => 'On',
1282
  'bps_login_security_remaining' => $BPS_LSM_Options_Net['bps_login_security_remaining'],
1283
  'bps_login_security_pw_reset' => $BPS_LSM_Options_Net['bps_login_security_pw_reset'],
1284
  'bps_login_security_sort' => $BPS_LSM_Options_Net['bps_login_security_sort'],
1285
+ 'bps_enable_lsm_woocommerce' => ''
1286
  );
1287
 
1288
  foreach( $BPS_Net_Options_lsm as $key => $value ) {
1294
  }
1295
  }
1296
  }
1297
+
1298
+ // Network|Multisite: update/save JTC-Lite DB option settings for all sites
1299
+ if ( isset( $_POST['Submit-Net-JTC'] ) && current_user_can('manage_options') ) {
1300
+ check_admin_referer( 'bulletproof_security_net_jtc' );
1301
+
1302
+ if ( is_multisite() ) {
1303
+
1304
+ if ( wp_is_large_network() ) {
1305
+ echo $bps_topDiv;
1306
+ $text = '<font color="#fb0101"><strong>'.__('Error: Your Network site exceeds the default WP criteria for a large network site. Either you have more than 10,000 users or more than 10,000 sites. Please send an email to info@ait-pro.com for help. Use this email Subject line: Setup Wizard Options Large Network Site Help.', 'bulletproof-security').'</strong></font>';
1307
+ echo $text;
1308
+ echo $bps_bottomDiv;
1309
+
1310
+ return;
1311
+ }
1312
+
1313
+ $successMessage = __(' JTC DB Options created or updated Successfully!', 'bulletproof-security');
1314
+ $successTextBegin = '<font color="green"><strong>';
1315
+ $successTextEnd = '</strong></font><br>';
1316
+
1317
+ $network_ids = wp_get_sites();
1318
+
1319
+ foreach ( $network_ids as $key => $value ) {
1320
+
1321
+ $net_id = $value['blog_id'];
1322
+
1323
+ $bps_Net_jtc = 'bulletproof_security_options_login_security_jtc';
1324
+
1325
+ $BPS_Net_JTC_Options = array(
1326
+ 'bps_tooltip_captcha_key' => 'jtc',
1327
+ 'bps_tooltip_captcha_hover_text' => 'Type/Enter: jtc',
1328
+ 'bps_tooltip_captcha_title' => 'Hover or click the text box below',
1329
+ 'bps_tooltip_captcha_logging' => 'Off',
1330
+ 'bps_jtc_login_form' => '1',
1331
+ 'bps_jtc_register_form' => '',
1332
+ 'bps_jtc_lostpassword_form' => '',
1333
+ 'bps_jtc_comment_form' => '',
1334
+ 'bps_jtc_buddypress_register_form' => '',
1335
+ 'bps_jtc_buddypress_sidebar_form' => '',
1336
+ 'bps_jtc_administrator' => '',
1337
+ 'bps_jtc_editor' => '',
1338
+ 'bps_jtc_author' => '',
1339
+ 'bps_jtc_contributor' => '',
1340
+ 'bps_jtc_subscriber' => '',
1341
+ 'bps_jtc_comment_form_error' => '',
1342
+ 'bps_jtc_comment_form_label' => '',
1343
+ 'bps_jtc_comment_form_input' => '',
1344
+ 'bps_jtc_custom_roles' => '',
1345
+ 'bps_enable_jtc_woocommerce' => ''
1346
+ );
1347
+
1348
+ if ( ! get_blog_option( $net_id, $bps_Net_jtc ) ) {
1349
+
1350
+ foreach( $BPS_Net_JTC_Options as $key => $value ) {
1351
+ update_blog_option( $net_id, 'bulletproof_security_options_login_security_jtc', $BPS_Net_JTC_Options );
1352
+ }
1353
+
1354
+ echo $successTextBegin.'Site: '.$net_id.$successMessage.$successTextEnd;
1355
+
1356
+ } else {
1357
+
1358
+ $BPS_JTC_Options_Net = get_blog_option( $net_id, 'bulletproof_security_options_login_security_jtc' );
1359
+
1360
+ $BPS_Net_Options_jtc = array(
1361
+ 'bps_tooltip_captcha_key' => $BPS_JTC_Options_Net['bps_tooltip_captcha_key'],
1362
+ 'bps_tooltip_captcha_hover_text' => $BPS_JTC_Options_Net['bps_tooltip_captcha_hover_text'],
1363
+ 'bps_tooltip_captcha_title' => $BPS_JTC_Options_Net['bps_tooltip_captcha_title'],
1364
+ 'bps_tooltip_captcha_logging' => 'Off',
1365
+ 'bps_jtc_login_form' => $BPS_JTC_Options_Net['bps_jtc_login_form'],
1366
+ 'bps_jtc_register_form' => '',
1367
+ 'bps_jtc_lostpassword_form' => '',
1368
+ 'bps_jtc_comment_form' => '',
1369
+ 'bps_jtc_buddypress_register_form' => '',
1370
+ 'bps_jtc_buddypress_sidebar_form' => '',
1371
+ 'bps_jtc_administrator' => '',
1372
+ 'bps_jtc_editor' => '',
1373
+ 'bps_jtc_author' => '',
1374
+ 'bps_jtc_contributor' => '',
1375
+ 'bps_jtc_subscriber' => '',
1376
+ 'bps_jtc_comment_form_error' => $BPS_JTC_Options_Net['bps_jtc_comment_form_error'],
1377
+ 'bps_jtc_comment_form_label' => $BPS_JTC_Options_Net['bps_jtc_comment_form_label'],
1378
+ 'bps_jtc_comment_form_input' => $BPS_JTC_Options_Net['bps_jtc_comment_form_input'],
1379
+ 'bps_jtc_custom_roles' => $BPS_JTC_Options_Net['bps_jtc_custom_roles'],
1380
+ 'bps_enable_jtc_woocommerce' => ''
1381
+ );
1382
+
1383
+ foreach( $BPS_Net_Options_jtc as $key => $value ) {
1384
+ update_blog_option( $net_id, 'bulletproof_security_options_login_security_jtc', $BPS_Net_Options_jtc );
1385
+ }
1386
+ echo $successTextBegin.'Site: '.$net_id.$successMessage.$successTextEnd;
1387
+ }
1388
+ }
1389
+ }
1390
+ }
1391
+
1392
  ?>
1393
 
1394
  </td>
bulletproof-security.php CHANGED
@@ -4,8 +4,8 @@ Plugin Name: BulletProof Security
4
  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: 2.3
9
  Author: AITpro Website Security
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', '2.3' );
32
- $bps_last_version = '2.2';
33
- $bps_version = '2.3';
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,6 +48,8 @@ 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 - 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
4
  Plugin URI: https://forum.ait-pro.com/read-me-first/
5
  Text Domain: bulletproof-security
6
  Domain Path: /languages/
7
+ Description: <strong>Feature Highlights:</strong> Setup Wizard &bull; MScan Malware Scanner &bull; .htaccess Website Security Protection (Firewalls) &bull; Security Logging|HTTP Error Logging &bull; DB Backup &bull; DB Table Prefix Changer &bull; Login Security & Monitoring &bull; JTC-Lite Login Form Bot Lockout Protection &bull; Idle Session Logout (ISL) &bull; Auth Cookie Expiration (ACE) &bull; UI Theme Skin Changer &bull; System Info: Extensive System, Server and Security Status Information &bull; FrontEnd|BackEnd Maintenance Mode
8
+ Version: 2.4
9
  Author: AITpro Website Security
10
  Author URI: https://forum.ait-pro.com/read-me-first/
11
  */
28
  */
29
 
30
  // BPS variables
31
+ define( 'BULLETPROOF_VERSION', '2.4' );
32
+ $bps_last_version = '2.3';
33
+ $bps_version = '2.4';
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
+ // MScan AJAX functions
52
+ require_once( WP_PLUGIN_DIR . '/bulletproof-security/includes/mscan-ajax-functions.php' );
53
  // BPS HUD Dimiss functions - includes AutoFix AutoSetup checks
54
  require_once( WP_PLUGIN_DIR . '/bulletproof-security/includes/hud-autofix-setup.php' );
55
  // BPS HUD Dimiss functions - includes AutoFix AutoWhitelist checks
includes/functions.php CHANGED
@@ -184,6 +184,23 @@ function bpsPro_new_feature_autoupdate() {
184
  bpsPro_new_version_db_options_files_autoupdate();
185
  }
186
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
187
  // BPS Update/Upgrade Status Alert in WP Dashboard|Status Display BPS pages only
188
  function bps_root_htaccess_status_dashboard() {
189
 
@@ -556,8 +573,6 @@ switch ( $bps_version ) {
556
  }
557
  }
558
 
559
- add_action('admin_notices', 'bps_root_htaccess_status_dashboard');
560
-
561
  // BPS Update/Upgrade Status Alert in WP Dashboard|Status Display in BPS pages only
562
  function bps_wpadmin_htaccess_status_dashboard() {
563
 
@@ -731,47 +746,65 @@ switch ( $bps_version ) {
731
  }
732
  }
733
 
734
- add_action('admin_notices', 'bps_wpadmin_htaccess_status_dashboard');
 
 
 
 
735
 
736
- // Login Security Status display - BPS pages ONLY
737
- function bps_Login_Security_admin_notice_status_bps() {
738
- global $aitpro_bullet;
739
-
740
  if ( current_user_can('manage_options') ) {
741
-
742
- if ( esc_html($_SERVER['REQUEST_METHOD']) != 'POST' && esc_html($_SERVER['QUERY_STRING']) != 'page=bulletproof-security/admin/system-info/system-info.php' ) {
743
 
744
- $bps_status_display = get_option('bulletproof_security_options_status_display');
745
-
746
- if ( $bps_status_display['bps_status_display'] == 'Off' ) {
747
- return;
748
- }
749
-
750
- if ( $bps_status_display['bps_status_display'] != 'Off' && preg_match( '/page=bulletproof-security/', esc_html($_SERVER['REQUEST_URI']), $matches ) ) {
751
-
752
- // New BPS installation - do not display status
753
- if ( ! get_option('bulletproof_security_options_wizard_free') ) {
754
- return;
755
- }
 
 
756
 
757
- $BPSoptions = get_option('bulletproof_security_options_login_security');
758
 
759
- if ( $BPSoptions['bps_login_security_OnOff'] == 'On' ) {
760
- $text = '<div id="bps-status-display" style="float:left;font-weight:600;margin:0px;">' . $aitpro_bullet . '<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/login/login.php' ).'" title="Login Security & Monitoring" style="text-decoration:none;">'.esc_attr__('LSM', 'bulletproof-security').'</a>: <font color="green">'.__('On', 'bulletproof-security').'</font></div>';
761
- echo $text;
762
- }
 
 
 
 
 
 
 
 
 
 
763
 
764
- if ( ! $BPSoptions['bps_login_security_OnOff'] || $BPSoptions['bps_login_security_OnOff'] == 'Off' || $BPSoptions['bps_login_security_OnOff'] == '' || $BPSoptions['bps_login_security_OnOff'] == 'pwreset' ) {
765
- $text = '<div id="bps-status-display" style="float:left;font-weight:600;margin:0px;">' . $aitpro_bullet . '<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/login/login.php' ).'" title="Login Security & Monitoring" style="text-decoration:none;">'.__('LSM', 'bulletproof-security').'</a>: <font color="#fb0101">'.__('Off', 'bulletproof-security').'</font></div>';
766
- echo $text;
 
 
 
 
 
 
 
 
 
 
767
  }
768
  }
769
  }
770
- }
771
  }
772
 
773
- add_action('admin_notices', 'bps_Login_Security_admin_notice_status_bps');
774
-
775
  // DB Backup Status display BPS pages only
776
  // First time installations and upgrades the DB option bps_db_backup_status_display has value "No DB Backups"
777
  // When a Backup Job is created for the first time the value is "Backup Job Created" - one time/one-shot option
@@ -780,55 +813,141 @@ function bpsProDBBStatus() {
780
 
781
  if ( current_user_can('manage_options') ) {
782
 
783
- global $aitpro_bullet;
784
 
785
- if ( esc_html($_SERVER['REQUEST_METHOD']) != 'POST' && esc_html($_SERVER['QUERY_STRING']) != 'page=bulletproof-security/admin/system-info/system-info.php' ) {
786
 
787
- $bps_status_display = get_option('bulletproof_security_options_status_display');
788
 
789
- if ( $bps_status_display['bps_status_display'] == 'Off' ) {
790
- return;
791
- }
792
-
793
- if ( $bps_status_display['bps_status_display'] != 'Off' && preg_match( '/page=bulletproof-security/', esc_html($_SERVER['REQUEST_URI']), $matches ) ) {
794
-
795
- // New BPS installation - do not display status
796
- if ( ! get_option('bulletproof_security_options_wizard_free') ) {
797
  return;
798
  }
799
 
800
- $DBBoptions = get_option('bulletproof_security_options_db_backup');
 
 
 
 
 
801
 
802
- if ( ! get_option('bulletproof_security_options_idle_session') && ! get_option('bulletproof_security_options_auth_cookie') ) {
803
-
804
- $status_DDiv = '</div><div style="clear:both;"></div>';
 
 
 
 
 
 
 
 
 
 
 
 
 
805
 
806
- } else {
807
-
808
- $status_DDiv = '</div>';
809
-
810
- }
811
 
812
- if ( $DBBoptions['bps_db_backup_status_display'] == 'No DB Backups' ) {
813
 
814
- $text = '<div id="bps-status-display" style="float:left;font-weight:600;margin:0px;">' . $aitpro_bullet . '<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/db-backup-security/db-backup-security.php' ).'" title="Database Backup" style="text-decoration:none;">'.esc_attr__('DBB', 'bulletproof-security').'</a>: <font color="blue"><strong>'.__('No DB Backups', 'bulletproof-security').'</strong></font>'.$status_DDiv;
815
  echo $text;
816
 
817
  } elseif ( $DBBoptions['bps_db_backup_status_display'] == 'Backup Job Created' ) {
818
 
819
- $text = '<div id="bps-status-display" style="float:left;font-weight:600;margin:0px;">' . $aitpro_bullet . '<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/db-backup-security/db-backup-security.php' ).'" title="Database Backup" style="text-decoration:none;">'.esc_attr__('DBB', 'bulletproof-security').'</a>: <font color="blue"><strong>'.__('Backup Job Created', 'bulletproof-security').'</strong></font>'.$status_DDiv;
820
  echo $text;
821
 
822
  } else {
823
 
824
- $text = '<div id="bps-status-display" style="float:left;font-weight:600;margin:0px;">' . $aitpro_bullet . '<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/db-backup-security/db-backup-security.php' ).'" title="Database Backup" style="text-decoration:none;">'.esc_attr__('DBB', 'bulletproof-security').'</a>: <font color="green"><strong>'.$DBBoptions['bps_db_backup_status_display'].'</strong></font>'.$status_DDiv;
825
  echo $text;
826
  }
827
  }
828
  }
829
  }
830
  }
831
- add_action('admin_notices', 'bpsProDBBStatus');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
832
 
833
  // Idle Session Logout ISL Status display - BPS pages ONLY
834
  function bpsPro_isl_notice_status_bps() {
@@ -858,13 +977,9 @@ global $aitpro_bullet;
858
  $BPSoptionsISL = get_option('bulletproof_security_options_idle_session');
859
 
860
  if ( ! get_option('bulletproof_security_options_auth_cookie') ) {
861
-
862
  $status_DDiv = '</div><div style="clear:both;"></div>';
863
-
864
  } else {
865
-
866
  $status_DDiv = '</div>';
867
-
868
  }
869
 
870
  if ( $BPSoptionsISL['bps_isl'] == 'On' ) {
@@ -883,8 +998,6 @@ global $aitpro_bullet;
883
  }
884
  }
885
 
886
- add_action('admin_notices', 'bpsPro_isl_notice_status_bps');
887
-
888
  // Auth Cookie Expiration ACE Status display - BPS pages ONLY
889
  function bpsPro_ace_notice_status_bps() {
890
  global $aitpro_bullet;
@@ -929,8 +1042,6 @@ global $aitpro_bullet;
929
  }
930
  }
931
 
932
- add_action('admin_notices', 'bpsPro_ace_notice_status_bps');
933
-
934
  // GET HTTP Status Response from /mod-test/ images to determine which Apache Modules are Loaded,
935
  // Directive Backward Compatibility & if Host is allowing/processing IfModule conditions (Known Hosts: HostGator).
936
  // System Info page updates the DB option on page load in real-time, but does not create htaccess files.
@@ -1367,13 +1478,15 @@ function bpsPro_apache_mod_create_htaccess_files() {
1367
  $core7 = $bpsPro_pf . 'admin/system-info/.htaccess';
1368
  $core8 = $bpsPro_pf . 'admin/theme-skin/.htaccess';
1369
  $core9 = $bpsPro_pf . 'admin/wizard/.htaccess';
1370
-
 
 
1371
  $Zip_download_Options = get_option('bulletproof_security_options_zip_fix');
1372
 
1373
  if ( $Zip_download_Options['bps_zip_download_fix'] == 'On' ) {
1374
- $files = array( $bps_backup, $bps_master_backups, $core2, $core3, $core5, $core6, $core7, $core8 );
1375
  } else {
1376
- $files = array( $bps_backup, $bps_master_backups, $core1, $core2, $core3, $core4, $core5, $core6, $core7, $core8, $core9 );
1377
  }
1378
 
1379
  $Apache_Mod_options = get_option('bulletproof_security_options_apache_modules');
184
  bpsPro_new_version_db_options_files_autoupdate();
185
  }
186
 
187
+ // BPS Status Display Admin notices
188
+ function bps_status_display_admin_notices() {
189
+
190
+ if ( current_user_can('manage_options') ) {
191
+ bps_root_htaccess_status_dashboard();
192
+ bps_wpadmin_htaccess_status_dashboard();
193
+ bpsProMScanStatus();
194
+ bpsProDBBStatus();
195
+ bps_Login_Security_admin_notice_status_bps();
196
+ bps_jtc_antispam_admin_notice_status_bps();
197
+ bpsPro_isl_notice_status_bps();
198
+ bpsPro_ace_notice_status_bps();
199
+ }
200
+ }
201
+
202
+ add_action('admin_notices', 'bps_status_display_admin_notices');
203
+
204
  // BPS Update/Upgrade Status Alert in WP Dashboard|Status Display BPS pages only
205
  function bps_root_htaccess_status_dashboard() {
206
 
573
  }
574
  }
575
 
 
 
576
  // BPS Update/Upgrade Status Alert in WP Dashboard|Status Display in BPS pages only
577
  function bps_wpadmin_htaccess_status_dashboard() {
578
 
746
  }
747
  }
748
 
749
+ // MScan Status display BPS pages only
750
+ // Displays the question mark hover icon if a scan has not been run or the Delete Scan Status Tool has been used.
751
+ // Displays last scan timestamp when scheduled scans are Off > MSCAN: August 3, 2017 8:45 am
752
+ // BPS Pro only (code removed): Displays next scheduled cron job when scheduled scan frequency is used > MSCAN: On : 60 Min : 9:30 am
753
+ function bpsProMScanStatus() {
754
 
 
 
 
 
755
  if ( current_user_can('manage_options') ) {
756
+ global $aitpro_bullet;
 
757
 
758
+ if ( esc_html($_SERVER['REQUEST_METHOD']) != 'POST' && esc_html($_SERVER['QUERY_STRING']) != 'page=bulletproof-security/admin/system-info/system-info.php' ) {
759
+
760
+ $bps_status_display = get_option('bulletproof_security_options_status_display');
761
+
762
+ if ( $bps_status_display['bps_status_display'] == 'Off' ) {
763
+ return;
764
+ }
765
+
766
+ if ( $bps_status_display['bps_status_display'] != 'Off' && preg_match( '/page=bulletproof-security/', esc_html($_SERVER['REQUEST_URI']), $matches ) ) {
767
+
768
+ // New BPS installation - do not display status
769
+ if ( ! get_option('bulletproof_security_options_wizard_free') ) {
770
+ return;
771
+ }
772
 
773
+ $MScan_status = get_option('bulletproof_security_options_MScan_status');
774
 
775
+ ?>
776
+
777
+ <style>
778
+ <!--
779
+ div.mscan-tooltip {display:inline-block;position:relative;}
780
+ div.mscan-tooltip:hover {z-index:10;}
781
+ div.mscan-tooltip img:hover {z-index:10;}
782
+ div.mscan-tooltip span {display:none;position:absolute;bottom:0;left:0;right:0;}
783
+ div.mscan-tooltip:hover span {width:500px;height:60px;display:block;position:absolute;top:30px;left:5px;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);}
784
+ -->
785
+ </style>
786
+
787
+ <?php
788
+ $bps_question_mark_mscan = '<div class="mscan-tooltip"><img src="'.plugins_url('/bulletproof-security/admin/images/question-mark.png').'" style="position:relative;top:3px;right:1px;" /><span>An MScan scan has not been run yet or the MScan Delete Scan Status Tool has been used to delete MScan Status values, which deletes the the last MScan scan Timestamp for the last scan that was run.</span></div>';
789
 
790
+ if ( $MScan_status['bps_mscan_status'] == '' || $MScan_status['bps_mscan_last_scan_timestamp'] == '' ) {
791
+ $text = '<div id="bps-status-display" style="float:left;font-weight:600;margin:-2px 0px 0px 0px;">' . $aitpro_bullet . '<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/mscan/mscan.php' ).'" title="MScan Malware Scanner" style="text-decoration:none;">'.esc_attr__('MSCAN', 'bulletproof-security').'</a>: '.$bps_question_mark_mscan.'</div>';
792
+ echo $text;
793
+ return;
794
+ }
795
+
796
+ $MScan_options = get_option('bulletproof_security_options_MScan');
797
+
798
+ if ( $MScan_options['mscan_scan_frequency'] == 'Off' ) {
799
+ $text = '<div id="bps-status-display" style="float:left;font-weight:600;margin:0px;">' . $aitpro_bullet . '<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/mscan/mscan.php' ).'" title="MScan Malware Scanner" style="text-decoration:none;">'.esc_attr__('MSCAN', 'bulletproof-security').'</a>: <font color="green"><strong>'.$MScan_status['bps_mscan_last_scan_timestamp'].'</strong></font></div>';
800
+ echo $text;
801
+
802
+ }
803
  }
804
  }
805
  }
 
806
  }
807
 
 
 
808
  // DB Backup Status display BPS pages only
809
  // First time installations and upgrades the DB option bps_db_backup_status_display has value "No DB Backups"
810
  // When a Backup Job is created for the first time the value is "Backup Job Created" - one time/one-shot option
813
 
814
  if ( current_user_can('manage_options') ) {
815
 
816
+ global $aitpro_bullet;
817
 
818
+ if ( esc_html($_SERVER['REQUEST_METHOD']) != 'POST' && esc_html($_SERVER['QUERY_STRING']) != 'page=bulletproof-security/admin/system-info/system-info.php' ) {
819
 
820
+ $bps_status_display = get_option('bulletproof_security_options_status_display');
821
 
822
+ if ( $bps_status_display['bps_status_display'] == 'Off' ) {
 
 
 
 
 
 
 
823
  return;
824
  }
825
 
826
+ if ( $bps_status_display['bps_status_display'] != 'Off' && preg_match( '/page=bulletproof-security/', esc_html($_SERVER['REQUEST_URI']), $matches ) ) {
827
+
828
+ // New BPS installation - do not display status
829
+ if ( ! get_option('bulletproof_security_options_wizard_free') ) {
830
+ return;
831
+ }
832
 
833
+ $DBBoptions = get_option('bulletproof_security_options_db_backup');
834
+
835
+ ?>
836
+
837
+ <style>
838
+ <!--
839
+ div.dbb-status-tooltip {display:inline-block;position:relative;}
840
+ div.dbb-status-tooltip:hover {z-index:10;}
841
+ div.dbb-status-tooltip img:hover {z-index:10;}
842
+ div.dbb-status-tooltip span {display:none;position:absolute;bottom:0;left:0;right:0;}
843
+ div.dbb-status-tooltip:hover span {width:500px;height:60px;display:block;position:absolute;top:30px;left:5px;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);}
844
+ -->
845
+ </style>
846
+
847
+ <?php
848
+ $bps_qm_dbb1 = '<div class="dbb-status-tooltip"><img src="'.plugins_url('/bulletproof-security/admin/images/question-mark.png').'" style="position:relative;top:3px;right:1px;" /><span>A BPS DB Backup has not been performed yet. To run a DB Backup go to the BPS DB Backup page, create a Backup Job and run the Backup Job or you can just ignore this hover tooltip and not perform a DB Backup.</span></div>';
849
 
850
+ $bps_qm_dbb2 = '<div class="dbb-status-tooltip"><img src="'.plugins_url('/bulletproof-security/admin/images/question-mark.png').'" style="position:relative;top:3px;right:1px;" /><span>A BPS DB Backup Job has been created. To run a DB Backup go to the BPS DB Backup page and run the Backup Job or you can just ignore this hover tooltip and not perform a DB Backup.</span></div>';
 
 
 
 
851
 
852
+ if ( $DBBoptions['bps_db_backup_status_display'] == 'No DB Backups' || $DBBoptions['bps_db_backup_status_display'] == '' ) {
853
 
854
+ $text = '<div id="bps-status-display" style="float:left;font-weight:600;margin:-2px 0px 0px 0px;">' . $aitpro_bullet . '<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/db-backup-security/db-backup-security.php' ).'" title="Database Backup" style="text-decoration:none;">'.esc_attr__('DBB', 'bulletproof-security').'</a>: '.$bps_qm_dbb1.'</div>';
855
  echo $text;
856
 
857
  } elseif ( $DBBoptions['bps_db_backup_status_display'] == 'Backup Job Created' ) {
858
 
859
+ $text = '<div id="bps-status-display" style="float:left;font-weight:600;margin:-2px 0px 0px 0px;">' . $aitpro_bullet . '<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/db-backup-security/db-backup-security.php' ).'" title="Database Backup" style="text-decoration:none;">'.esc_attr__('DBB', 'bulletproof-security').'</a>: '.$bps_qm_dbb2.'</div>';
860
  echo $text;
861
 
862
  } else {
863
 
864
+ $text = '<div id="bps-status-display" style="float:left;font-weight:600;margin:0px;">' . $aitpro_bullet . '<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/db-backup-security/db-backup-security.php' ).'" title="Database Backup" style="text-decoration:none;">'.esc_attr__('DBB', 'bulletproof-security').'</a>: <font color="green"><strong>'.$DBBoptions['bps_db_backup_status_display'].'</strong></font></div>';
865
  echo $text;
866
  }
867
  }
868
  }
869
  }
870
  }
871
+
872
+ // Login Security Status display - BPS pages ONLY
873
+ function bps_Login_Security_admin_notice_status_bps() {
874
+ global $aitpro_bullet;
875
+
876
+ if ( current_user_can('manage_options') ) {
877
+
878
+ if ( esc_html($_SERVER['REQUEST_METHOD']) != 'POST' && esc_html($_SERVER['QUERY_STRING']) != 'page=bulletproof-security/admin/system-info/system-info.php' ) {
879
+
880
+ $bps_status_display = get_option('bulletproof_security_options_status_display');
881
+
882
+ if ( $bps_status_display['bps_status_display'] == 'Off' ) {
883
+ return;
884
+ }
885
+
886
+ if ( $bps_status_display['bps_status_display'] != 'Off' && preg_match( '/page=bulletproof-security/', esc_html($_SERVER['REQUEST_URI']), $matches ) ) {
887
+
888
+ // New BPS installation - do not display status
889
+ if ( ! get_option('bulletproof_security_options_wizard_free') ) {
890
+ return;
891
+ }
892
+
893
+ $BPSoptions = get_option('bulletproof_security_options_login_security');
894
+
895
+ if ( $BPSoptions['bps_login_security_OnOff'] == 'On' ) {
896
+ $text = '<div id="bps-status-display" style="float:left;font-weight:600;margin:0px;">' . $aitpro_bullet . '<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/login/login.php' ).'" title="Login Security & Monitoring" style="text-decoration:none;">'.esc_attr__('LSM', 'bulletproof-security').'</a>: <font color="green">'.__('On', 'bulletproof-security').'</font></div>';
897
+ echo $text;
898
+ }
899
+
900
+ if ( ! $BPSoptions['bps_login_security_OnOff'] || $BPSoptions['bps_login_security_OnOff'] == 'Off' || $BPSoptions['bps_login_security_OnOff'] == '' || $BPSoptions['bps_login_security_OnOff'] == 'pwreset' ) {
901
+ $text = '<div id="bps-status-display" style="float:left;font-weight:600;margin:0px;">' . $aitpro_bullet . '<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/login/login.php' ).'" title="Login Security & Monitoring" style="text-decoration:none;">'.__('LSM', 'bulletproof-security').'</a>: <font color="#fb0101">'.__('Off', 'bulletproof-security').'</font></div>';
902
+ echo $text;
903
+ }
904
+ }
905
+ }
906
+ }
907
+ }
908
+
909
+ // JTC-Lite Status display - BPS pages ONLY
910
+ function bps_jtc_antispam_admin_notice_status_bps() {
911
+ global $aitpro_bullet;
912
+
913
+ if ( current_user_can('manage_options') ) {
914
+
915
+ if ( esc_html($_SERVER['REQUEST_METHOD']) != 'POST' && esc_html($_SERVER['QUERY_STRING']) != 'page=bulletproof-security/admin/system-info/system-info.php' ) {
916
+
917
+ $bps_status_display = get_option('bulletproof_security_options_status_display');
918
+
919
+ if ( $bps_status_display['bps_status_display'] == 'Off' ) {
920
+ return;
921
+ }
922
+
923
+ if ( $bps_status_display['bps_status_display'] != 'Off' && preg_match( '/page=bulletproof-security/', esc_html($_SERVER['REQUEST_URI']), $matches ) ) {
924
+
925
+ // New BPS installation - do not display status
926
+ if ( ! get_option('bulletproof_security_options_wizard_free') ) {
927
+ return;
928
+ }
929
+
930
+ $BPSoptionsJTC = get_option('bulletproof_security_options_login_security_jtc');
931
+
932
+ if ( ! get_option('bulletproof_security_options_idle_session') && ! get_option('bulletproof_security_options_auth_cookie') ) {
933
+ $status_DDiv = '</div><div style="clear:both;"></div>';
934
+ } else {
935
+ $status_DDiv = '</div>';
936
+ }
937
+
938
+ if ( $BPSoptionsJTC['bps_jtc_login_form'] == '1' ) {
939
+ $text = '<div id="bps-status-display" style="float:left;font-weight:600;margin:0px;">' . $aitpro_bullet . '<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/login/login.php#bps-tabs-2' ).'" title="JTC-Lite" style="text-decoration:none;">'.esc_attr__('JTC', 'bulletproof-security').'</a>: <font color="green">'.__('On', 'bulletproof-security').'</font>'.$status_DDiv;
940
+ echo $text;
941
+ }
942
+
943
+ if ( $BPSoptionsJTC['bps_jtc_login_form'] != '1' ) {
944
+ $text = '<div id="bps-status-display" style="float:left;font-weight:600;margin:0px;">' . $aitpro_bullet . '<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/login/login.php#bps-tabs-2' ).'" title="'.esc_attr( 'JTC-Lite' ).'" style="text-decoration:none;">'.__('JTC', 'bulletproof-security').'</a>: <font color="#fb0101">'.__('Off', 'bulletproof-security').'</font>'.$status_DDiv;
945
+ echo $text;
946
+ }
947
+ }
948
+ }
949
+ }
950
+ }
951
 
952
  // Idle Session Logout ISL Status display - BPS pages ONLY
953
  function bpsPro_isl_notice_status_bps() {
977
  $BPSoptionsISL = get_option('bulletproof_security_options_idle_session');
978
 
979
  if ( ! get_option('bulletproof_security_options_auth_cookie') ) {
 
980
  $status_DDiv = '</div><div style="clear:both;"></div>';
 
981
  } else {
 
982
  $status_DDiv = '</div>';
 
983
  }
984
 
985
  if ( $BPSoptionsISL['bps_isl'] == 'On' ) {
998
  }
999
  }
1000
 
 
 
1001
  // Auth Cookie Expiration ACE Status display - BPS pages ONLY
1002
  function bpsPro_ace_notice_status_bps() {
1003
  global $aitpro_bullet;
1042
  }
1043
  }
1044
 
 
 
1045
  // GET HTTP Status Response from /mod-test/ images to determine which Apache Modules are Loaded,
1046
  // Directive Backward Compatibility & if Host is allowing/processing IfModule conditions (Known Hosts: HostGator).
1047
  // System Info page updates the DB option on page load in real-time, but does not create htaccess files.
1478
  $core7 = $bpsPro_pf . 'admin/system-info/.htaccess';
1479
  $core8 = $bpsPro_pf . 'admin/theme-skin/.htaccess';
1480
  $core9 = $bpsPro_pf . 'admin/wizard/.htaccess';
1481
+ $core10 = $bpsPro_pf . 'admin/email-log-settings/.htaccess';
1482
+ $core11 = $bpsPro_pf . 'admin/mscan/.htaccess';
1483
+
1484
  $Zip_download_Options = get_option('bulletproof_security_options_zip_fix');
1485
 
1486
  if ( $Zip_download_Options['bps_zip_download_fix'] == 'On' ) {
1487
+ $files = array( $bps_backup, $bps_master_backups, $core2, $core3, $core5, $core6, $core7, $core8, $core10, $core11 );
1488
  } else {
1489
+ $files = array( $bps_backup, $bps_master_backups, $core1, $core2, $core3, $core4, $core5, $core6, $core7, $core8, $core9, $core10, $core11 );
1490
  }
1491
 
1492
  $Apache_Mod_options = get_option('bulletproof_security_options_apache_modules');
includes/general-functions.php CHANGED
@@ -812,6 +812,182 @@ function bpsPro_upgrade_CC_automatic_fix() {
812
  }
813
  }
814
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
815
  // BPS upgrade: adds/updates/saves any new DB options, does cleanup & everything else.
816
  // This function is executed in this function: bpsPro_new_feature_autoupdate() which is executed ONLY during BPS upgrades.
817
  // .53.1: This function has been completely changed: literally checks if a DB option exists and has a value using ternary operations.
@@ -823,8 +999,83 @@ function bpsPro_new_version_db_options_files_autoupdate() {
823
  if ( current_user_can('manage_options') ) {
824
  global $bps_version, $bps_last_version, $wp_version, $wpdb, $aitpro_bullet, $pagenow, $current_user;
825
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
826
  $user_id = $current_user->ID;
827
 
 
 
 
828
  // 2.0: New SBC Dismiss Notice check created: checks for redundant Browser caching code & the BPS NOCHECK Marker in BPS Custom Code
829
  delete_user_meta($user_id, 'bpsPro_ignore_speed_boost_notice');
830
  // 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
@@ -854,54 +1105,6 @@ function bpsPro_new_version_db_options_files_autoupdate() {
854
  // Add additional https scheme conditions to 3 htaccess security rules and combine 2 rules into 1 rule in Root and wp-admin Custom Code.
855
  bpsPro_upgrade_CC_automatic_fix();
856
 
857
- // 2.3: Always update the mu tools timestamp to time + 5 minutes on BPS upgrade. Hopefully that will prevent email alerts being sent during BPS upgrades.
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_tools3 = ! $MUTools_Options['bps_mu_tools_enable_disable_deactivation'] ? 'enable' : $MUTools_Options['bps_mu_tools_enable_disable_deactivation'];
872
-
873
- $MUTools_Option_settings = array(
874
- 'bps_mu_tools_timestamp' => time() + 300,
875
- 'bps_mu_tools_enable_disable_autoupdate' => $bps_mu_tools2,
876
- 'bps_mu_tools_enable_disable_deactivation' => $bps_mu_tools3
877
- );
878
-
879
- foreach ( $MUTools_Option_settings as $key => $value ) {
880
- update_option('bulletproof_security_options_MU_tools_free', $MUTools_Option_settings);
881
- }
882
-
883
- delete_option('bulletproof_security_options_autoupdate');
884
- $autoupdate_master_file = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-plugin-autoupdate.php';
885
- $autoupdate_muplugins_file = WP_CONTENT_DIR . '/mu-plugins/bps-plugin-autoupdate.php';
886
-
887
- if ( file_exists($autoupdate_master_file) ) {
888
- unlink($autoupdate_master_file);
889
- }
890
-
891
- if ( file_exists($autoupdate_muplugins_file) ) {
892
- unlink($autoupdate_muplugins_file);
893
- }
894
-
895
- if ( ! is_dir( WP_CONTENT_DIR . '/mu-plugins' ) ) {
896
- mkdir( WP_CONTENT_DIR . '/mu-plugins', 0755, true );
897
- chmod( WP_CONTENT_DIR . '/mu-plugins/', 0755 );
898
- }
899
-
900
- $bps_mu_tools_master_file = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-mu-tools.php';
901
- $bps_mu_tools_muplugins_file = WP_CONTENT_DIR . '/mu-plugins/bps-mu-tools.php';
902
-
903
- copy($bps_mu_tools_master_file, $bps_mu_tools_muplugins_file);
904
-
905
  // .54.6: New Sucuri Dismiss Notice check created. Delete the user_meta for this Dismiss Notice.
906
  delete_user_meta($user_id, 'bps_ignore_sucuri_notice');
907
 
@@ -912,48 +1115,48 @@ function bpsPro_new_version_db_options_files_autoupdate() {
912
 
913
  if ( $isl_options['bps_isl'] == 'On' || $isl_options['bps_isl'] == 'Off' ) {
914
 
915
- if ( ! $isl_options['bps_isl_custom_roles'] ) {
916
- $isl_options18 = array( 'bps', '' );
917
-
918
- } else {
919
-
920
- foreach ( $isl_options as $key => $value ) {
921
-
922
- if ( $key == 'bps_isl_custom_roles' ) {
923
-
924
- if ( ! is_array($value) ) {
925
- $isl_options18 = array( 'bps', '' );
926
- } else {
927
- $isl_options18 = $isl_options['bps_isl_custom_roles'];
 
928
  }
929
- }
930
- }
931
- }
932
-
933
- $isl_db_options = array(
934
- 'bps_isl' => $isl_options['bps_isl'],
935
- 'bps_isl_timeout' => $isl_options['bps_isl_timeout'],
936
- 'bps_isl_logout_url' => $isl_options['bps_isl_logout_url'],
937
- 'bps_isl_login_url' => $isl_options['bps_isl_login_url'],
938
- 'bps_isl_custom_message' => $isl_options['bps_isl_custom_message'],
939
- 'bps_isl_custom_css_1' => $isl_options['bps_isl_custom_css_1'],
940
- 'bps_isl_custom_css_2' => $isl_options['bps_isl_custom_css_2'],
941
- 'bps_isl_custom_css_3' => $isl_options['bps_isl_custom_css_3'],
942
- 'bps_isl_custom_css_4' => $isl_options['bps_isl_custom_css_4'],
943
- 'bps_isl_user_account_exceptions' => $isl_options['bps_isl_user_account_exceptions'],
944
- 'bps_isl_administrator' => $isl_options['bps_isl_administrator'],
945
- 'bps_isl_editor' => $isl_options['bps_isl_editor'],
946
- 'bps_isl_author' => $isl_options['bps_isl_author'],
947
- 'bps_isl_contributor' => $isl_options['bps_isl_contributor'],
948
- 'bps_isl_subscriber' => $isl_options['bps_isl_subscriber'],
949
- 'bps_isl_tinymce' => $isl_options['bps_isl_tinymce'],
950
- 'bps_isl_uri_exclusions' => $isl_options['bps_isl_uri_exclusions'],
951
- 'bps_isl_custom_roles' => $isl_options18
952
- );
953
-
954
- foreach( $isl_db_options as $key => $value ) {
955
- update_option('bulletproof_security_options_idle_session', $isl_db_options);
956
- }
957
  }
958
 
959
  // .54.3: BugFix: pre-save ACE db options.
@@ -961,60 +1164,51 @@ function bpsPro_new_version_db_options_files_autoupdate() {
961
 
962
  if ( $ace_options['bps_ace'] == 'On' || $ace_options['bps_ace'] == 'Off' ) {
963
 
964
- if ( ! $ace_options['bps_ace_custom_roles'] ) {
965
- $ace_options11 = array( 'bps', '' );
966
-
967
- } else {
968
 
969
- foreach ( $ace_options as $key => $value ) {
970
-
971
- if ( $key == 'bps_ace_custom_roles' ) {
972
-
973
- if ( ! is_array($value) ) {
974
- $ace_options11 = array( 'bps', '' );
975
- } else {
976
- $ace_options11 = $ace_options['bps_ace_custom_roles'];
 
 
 
977
  }
978
- }
979
- }
980
- }
981
-
982
- $ace_db_options = array(
983
- 'bps_ace' => $ace_options['bps_ace'],
984
- 'bps_ace_expiration' => $ace_options['bps_ace_expiration'],
985
- 'bps_ace_rememberme_expiration' => $ace_options['bps_ace_rememberme_expiration'],
986
- 'bps_ace_user_account_exceptions' => $ace_options['bps_ace_user_account_exceptions'],
987
- 'bps_ace_administrator' => $ace_options['bps_ace_administrator'],
988
- 'bps_ace_editor' => $ace_options['bps_ace_editor'],
989
- 'bps_ace_author' => $ace_options['bps_ace_author'],
990
- 'bps_ace_contributor' => $ace_options['bps_ace_contributor'],
991
- 'bps_ace_subscriber' => $ace_options['bps_ace_subscriber'],
992
- 'bps_ace_rememberme_disable' => $ace_options['bps_ace_rememberme_disable'],
993
- 'bps_ace_custom_roles' => $ace_options11
994
- );
995
-
996
- foreach( $ace_db_options as $key => $value ) {
997
- update_option('bulletproof_security_options_auth_cookie', $ace_db_options);
998
- }
999
  }
1000
 
 
1001
  // 2.3: BugFix: Enable Login Security for WooCommerce option being reset on upgrade. Only enable once if the option does not exist.
1002
  // .54.3: New Enable LSM for WooCommerce option added
1003
  // .51.8: New Login Security Attempts Remaining option added
1004
  $lsm = get_option('bulletproof_security_options_login_security');
1005
 
1006
- if ( $woo_plugin_active == 1 || is_plugin_active_for_network( $woo_plugin ) ) {
1007
- if ( $lsm['bps_enable_lsm_woocommerce'] == '' || $lsm['bps_enable_lsm_woocommerce'] == '1' ) {
1008
- $bps_enable_lsm_woocommerce = $lsm['bps_enable_lsm_woocommerce'];
1009
- } elseif ( ! $lsm['bps_enable_lsm_woocommerce'] ) {
1010
- $bps_enable_lsm_woocommerce = '1';
1011
- }
1012
- } else {
1013
- $bps_enable_lsm_woocommerce = '';
1014
- }
1015
-
1016
  $lsm1 = ! $lsm['bps_max_logins'] ? '3' : $lsm['bps_max_logins'];
1017
- $lsm2 = ! $lsm['bps_lockout_duration'] ? '60' : $lsm['bps_lockout_duration'];
1018
  $lsm3 = ! $lsm['bps_manual_lockout_duration'] ? '60' : $lsm['bps_manual_lockout_duration'];
1019
  $lsm4 = ! $lsm['bps_max_db_rows_display'] ? '' : $lsm['bps_max_db_rows_display'];
1020
  $lsm5 = ! $lsm['bps_login_security_OnOff'] ? 'On' : $lsm['bps_login_security_OnOff'];
@@ -1035,7 +1229,7 @@ function bpsPro_new_version_db_options_files_autoupdate() {
1035
  'bps_login_security_remaining' => $lsm8,
1036
  'bps_login_security_pw_reset' => $lsm9,
1037
  'bps_login_security_sort' => $lsm10,
1038
- 'bps_enable_lsm_woocommerce' => $bps_enable_lsm_woocommerce
1039
  );
1040
 
1041
  foreach( $lsm_options as $key => $value ) {
@@ -1082,6 +1276,7 @@ function bpsPro_new_version_db_options_files_autoupdate() {
1082
  // .53.6: Wordfence WAF mess - Reset php handler dismiss notice.
1083
  bpsPro_php_handler_dismiss_notice_reset();
1084
 
 
1085
  // .53.5: Old obsolete function deleted and code moved here.
1086
  // Email Alerting & Log file zip, email and deleting DB options.
1087
  $email_log = get_option('bulletproof_security_options_email');
@@ -1096,6 +1291,8 @@ function bpsPro_new_version_db_options_files_autoupdate() {
1096
  $email_log7 = ! $email_log['bps_security_log_emailL'] ? 'email' : $email_log['bps_security_log_emailL'];
1097
  $email_log8 = ! $email_log['bps_dbb_log_email'] ? 'email' : $email_log['bps_dbb_log_email'];
1098
  $email_log9 = ! $email_log['bps_dbb_log_size'] ? '500KB' : $email_log['bps_dbb_log_size'];
 
 
1099
 
1100
  $email_log_options = array(
1101
  'bps_send_email_to' => $email_log1,
@@ -1106,7 +1303,9 @@ function bpsPro_new_version_db_options_files_autoupdate() {
1106
  'bps_security_log_size' => $email_log6,
1107
  'bps_security_log_emailL' => $email_log7,
1108
  'bps_dbb_log_email' => $email_log8,
1109
- 'bps_dbb_log_size' => $email_log9
 
 
1110
  );
1111
 
1112
  foreach( $email_log_options as $key => $value ) {
812
  }
813
  }
814
 
815
+ // Copies the new version of BPS MU Tools must-use plugin to the /mu-plugins/ folder on BPS upgrade
816
+ function bpsPro_mu_tools_plugin_copy() {
817
+
818
+ // 2.4: Add strpos Version check
819
+ // 2.3: Always update the mu tools timestamp to time + 5 minutes on BPS upgrade. Hopefully that will prevent email alerts being sent during BPS upgrades.
820
+ // 2.0: Update and Pre-save the new BPS MU Tools DB options
821
+ // Delete the old bulletproof_security_options_autoupdate DB option
822
+ // Delete the old bps-plugin-autoupdate.php files
823
+ // Copy the new BPS MU Tools file to the /mu-plugins/ folder
824
+ $AutoUpdate_options = get_option('bulletproof_security_options_autoupdate');
825
+ $MUTools_Options = get_option('bulletproof_security_options_MU_tools_free');
826
+
827
+ if ( $AutoUpdate_options['bps_autoupdate'] == 'On' ) {
828
+ $bps_mu_tools2 = 'enable';
829
+ } else {
830
+ $bps_mu_tools2 = ! $MUTools_Options['bps_mu_tools_enable_disable_autoupdate'] ? 'disable' : $MUTools_Options['bps_mu_tools_enable_disable_autoupdate'];
831
+ }
832
+
833
+ $bps_mu_tools3 = ! $MUTools_Options['bps_mu_tools_enable_disable_deactivation'] ? 'enable' : $MUTools_Options['bps_mu_tools_enable_disable_deactivation'];
834
+
835
+ $MUTools_Option_settings = array(
836
+ 'bps_mu_tools_timestamp' => time() + 300,
837
+ 'bps_mu_tools_enable_disable_autoupdate' => $bps_mu_tools2,
838
+ 'bps_mu_tools_enable_disable_deactivation' => $bps_mu_tools3
839
+ );
840
+
841
+ foreach ( $MUTools_Option_settings as $key => $value ) {
842
+ update_option('bulletproof_security_options_MU_tools_free', $MUTools_Option_settings);
843
+ }
844
+
845
+ delete_option('bulletproof_security_options_autoupdate');
846
+ $autoupdate_master_file = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-plugin-autoupdate.php';
847
+ $autoupdate_muplugins_file = WP_CONTENT_DIR . '/mu-plugins/bps-plugin-autoupdate.php';
848
+
849
+ if ( file_exists($autoupdate_master_file) ) {
850
+ unlink($autoupdate_master_file);
851
+ }
852
+
853
+ if ( file_exists($autoupdate_muplugins_file) ) {
854
+ unlink($autoupdate_muplugins_file);
855
+ }
856
+
857
+ if ( ! is_dir( WP_CONTENT_DIR . '/mu-plugins' ) ) {
858
+ mkdir( WP_CONTENT_DIR . '/mu-plugins', 0755, true );
859
+ chmod( WP_CONTENT_DIR . '/mu-plugins/', 0755 );
860
+ }
861
+
862
+ $BPS_MU_tools = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/bps-mu-tools.php';
863
+ $BPS_MU_tools_copy = WP_CONTENT_DIR . '/mu-plugins/bps-mu-tools.php';
864
+
865
+ if ( file_exists($BPS_MU_tools_copy) ) {
866
+
867
+ $check_string = @file_get_contents($BPS_MU_tools_copy);
868
+ $pos1 = strpos( $check_string, 'Version: 1.0' );
869
+
870
+ if ( $pos1 !== false ) {
871
+ @copy($BPS_MU_tools, $BPS_MU_tools_copy);
872
+ }
873
+ }
874
+ }
875
+
876
+ // Get any new dirs that have been created and remove any old dirs from the bps_mscan_dirs db option.
877
+ // Also used in Setup Wizard: need to add setup wizard condition to display saved or updated db options etc.
878
+ // Note: MScan Status db options do not need to be pre-saved. Will use bps_mscan_status == '' for display.
879
+ function bpsPro_presave_mscan_options() {
880
+
881
+ $source = $_SERVER['DOCUMENT_ROOT'];
882
+
883
+ if ( is_dir($source) ) {
884
+
885
+ $MScan_options = get_option('bulletproof_security_options_MScan');
886
+ $iterator = new DirectoryIterator($source);
887
+ $dir_array = array();
888
+
889
+ foreach ( $iterator as $files ) {
890
+
891
+ if ( $files->isDir() && ! $files->isDot() ) {
892
+
893
+ if ( ! empty( $files ) ) {
894
+ $dir_array[] = $files->getFilename();
895
+ }
896
+ }
897
+ }
898
+
899
+ $dir_flip = array_flip($dir_array);
900
+
901
+ // replace values in the flipped array, good for bulk replacing all values. ie all dirs found.
902
+ $mscan_actual_dirs = array();
903
+
904
+ foreach ( $dir_flip as $key => $value ) {
905
+ $mscan_actual_dirs[$key] = preg_replace( '/\d+/', "1", $value );
906
+ }
907
+
908
+ $MScan_options = get_option('bulletproof_security_options_MScan');
909
+
910
+ if ( $MScan_options['bps_mscan_dirs'] != '' ) {
911
+
912
+ $mscan_dirs_options_inner_array = array();
913
+
914
+ foreach ( $MScan_options['bps_mscan_dirs'] as $key => $value ) {
915
+ $mscan_dirs_options_inner_array[$key] = $value;
916
+ }
917
+
918
+ // get new dirs found that do not exist in the bps_mscan_dirs db option. ie a new dir has been created.
919
+ $mscan_diff_key_dir = array_diff_key($mscan_actual_dirs, $mscan_dirs_options_inner_array);
920
+
921
+ // get old dirs that still exist in the bps_mscan_dirs db option. ie a dir has been deleted.
922
+ $mscan_diff_key_options = array_diff_key($mscan_dirs_options_inner_array, $dir_flip);
923
+
924
+ if ( ! empty($mscan_diff_key_options) ) {
925
+
926
+ foreach ( $mscan_diff_key_options as $key => $value ) {
927
+ unset($mscan_dirs_options_inner_array[$key]);
928
+ }
929
+
930
+ // merge any new dirs found
931
+ $mscan_array_merge = array_merge( $mscan_diff_key_dir, $mscan_dirs_options_inner_array );
932
+ ksort($mscan_array_merge);
933
+
934
+ } else {
935
+
936
+ // merge any new dirs found
937
+ $mscan_array_merge = array_merge( $mscan_diff_key_dir, $mscan_dirs_options_inner_array );
938
+ ksort($mscan_array_merge);
939
+ }
940
+
941
+ } else {
942
+ $mscan_array_merge = $mscan_actual_dirs;
943
+ ksort($mscan_array_merge);
944
+ }
945
+
946
+ $mscan_max_file_size = $MScan_options['mscan_max_file_size'] == '' ? '400' : $MScan_options['mscan_max_file_size'];
947
+ $mscan_max_time_limit = $MScan_options['mscan_max_time_limit'] == '' ? '300' : $MScan_options['mscan_max_time_limit'];
948
+ $mscan_scan_database = $MScan_options['mscan_scan_database'] == '' ? 'On' : $MScan_options['mscan_scan_database'];
949
+ $mscan_scan_images = $MScan_options['mscan_scan_images'] == '' ? 'Off' : $MScan_options['mscan_scan_images'];
950
+ $mscan_scan_skipped_files = $MScan_options['mscan_scan_skipped_files'] == '' ? 'Off' : $MScan_options['mscan_scan_skipped_files'];
951
+ $mscan_scan_delete_tmp_files = $MScan_options['mscan_scan_delete_tmp_files'] == '' ? 'On' : $MScan_options['mscan_scan_delete_tmp_files'];
952
+ $mscan_scan_frequency = $MScan_options['mscan_scan_frequency'] == '' ? 'Off' : $MScan_options['mscan_scan_frequency'];
953
+
954
+ $MS_Options = array(
955
+ 'bps_mscan_dirs' => $mscan_array_merge,
956
+ 'mscan_max_file_size' => $mscan_max_file_size,
957
+ 'mscan_max_time_limit' => $mscan_max_time_limit,
958
+ 'mscan_scan_database' => $mscan_scan_database,
959
+ 'mscan_scan_images' => $mscan_scan_images,
960
+ 'mscan_scan_skipped_files' => $mscan_scan_skipped_files,
961
+ 'mscan_scan_delete_tmp_files' => $mscan_scan_delete_tmp_files,
962
+ 'mscan_scan_frequency' => $mscan_scan_frequency
963
+ );
964
+
965
+ $mscan_successMessage = __(' DB Option created or updated Successfully!', 'bulletproof-security');
966
+ $mscan_dir_successMessage = __(' Hosting Account Root Folder Option setup or updated Successfully!', 'bulletproof-security');
967
+ $successTextBegin = '<font color="green"><strong>';
968
+ $successTextEnd = '</strong></font><br>';
969
+
970
+ foreach( $MS_Options as $key => $value ) {
971
+ update_option('bulletproof_security_options_MScan', $MS_Options);
972
+
973
+ if ( esc_html($_SERVER['QUERY_STRING']) == 'page=bulletproof-security/admin/wizard/wizard.php' ) {
974
+ echo $successTextBegin.$key.$mscan_successMessage.$successTextEnd;
975
+ }
976
+ }
977
+
978
+ if ( esc_html($_SERVER['QUERY_STRING']) == 'page=bulletproof-security/admin/wizard/wizard.php' ) {
979
+ $MScan_options = get_option('bulletproof_security_options_MScan');
980
+
981
+ if ( $MScan_options['bps_mscan_dirs'] != '' ) {
982
+
983
+ foreach ( $MScan_options['bps_mscan_dirs'] as $key => $value ) {
984
+ echo $successTextBegin.$key.$mscan_dir_successMessage.$successTextEnd;
985
+ }
986
+ }
987
+ }
988
+ }
989
+ }
990
+
991
  // BPS upgrade: adds/updates/saves any new DB options, does cleanup & everything else.
992
  // This function is executed in this function: bpsPro_new_feature_autoupdate() which is executed ONLY during BPS upgrades.
993
  // .53.1: This function has been completely changed: literally checks if a DB option exists and has a value using ternary operations.
999
  if ( current_user_can('manage_options') ) {
1000
  global $bps_version, $bps_last_version, $wp_version, $wpdb, $aitpro_bullet, $pagenow, $current_user;
1001
 
1002
+ // 2.4: new function created to handle all BPS MU Tools must-use plugin processing
1003
+ bpsPro_mu_tools_plugin_copy();
1004
+ // 2.4: Pre-save MScan Options
1005
+ bpsPro_presave_mscan_options();
1006
+
1007
+ // 2.4: Pre-save MScan Log option
1008
+ $bps_option_name_mscan = 'bulletproof_security_options_MScan_log';
1009
+ $bps_new_value_mscan = bpsPro_MScan_LogLastMod_wp_secs();
1010
+ $BPS_Options_mscan = array( 'bps_mscan_log_date_mod' => $bps_new_value_mscan );
1011
+
1012
+ if ( ! get_option( $bps_option_name_mscan ) ) {
1013
+ foreach( $BPS_Options_mscan as $key => $value ) {
1014
+ update_option('bulletproof_security_options_MScan_log', $BPS_Options_mscan);
1015
+ }
1016
+ }
1017
+
1018
+ // 2.4: pre-save JTC-Lite db options
1019
+ $jtc_options = get_option('bulletproof_security_options_login_security_jtc');
1020
+
1021
+ if ( ! $jtc_options['bps_jtc_custom_roles'] ) {
1022
+ $jtc_options19 = array( 'bps', '' );
1023
+
1024
+ } else {
1025
+
1026
+ foreach ( $jtc_options as $key => $value ) {
1027
+
1028
+ if ( $key == 'bps_jtc_custom_roles' ) {
1029
+
1030
+ if ( ! is_array($value) ) {
1031
+ $jtc_options19 = array( 'bps', '' );
1032
+ } else {
1033
+ $jtc_options19 = $jtc_options['bps_jtc_custom_roles'];
1034
+ }
1035
+ }
1036
+ }
1037
+ }
1038
+
1039
+ $jtc1 = ! $jtc_options['bps_tooltip_captcha_key'] ? 'jtc' : $jtc_options['bps_tooltip_captcha_key'];
1040
+ $jtc2 = ! $jtc_options['bps_tooltip_captcha_hover_text'] ? 'Type/Enter: jtc' : $jtc_options['bps_tooltip_captcha_hover_text'];
1041
+ $jtc3 = ! $jtc_options['bps_tooltip_captcha_title'] ? 'Hover or click the text box below' : $jtc_options['bps_tooltip_captcha_title'];
1042
+ $jtc4 = ! $jtc_options['bps_jtc_login_form'] ? '1' : $jtc_options['bps_jtc_login_form'];
1043
+
1044
+ $jtc_db_options = array(
1045
+ 'bps_tooltip_captcha_key' => $jtc1,
1046
+ 'bps_tooltip_captcha_hover_text' => $jtc2,
1047
+ 'bps_tooltip_captcha_title' => $jtc3,
1048
+ 'bps_tooltip_captcha_logging' => 'Off',
1049
+ 'bps_jtc_login_form' => $jtc4,
1050
+ 'bps_jtc_register_form' => '',
1051
+ 'bps_jtc_lostpassword_form' => '',
1052
+ 'bps_jtc_comment_form' => '',
1053
+ 'bps_jtc_buddypress_register_form' => '',
1054
+ 'bps_jtc_buddypress_sidebar_form' => '',
1055
+ 'bps_jtc_administrator' => '',
1056
+ 'bps_jtc_editor' => '',
1057
+ 'bps_jtc_author' => '',
1058
+ 'bps_jtc_contributor' => '',
1059
+ 'bps_jtc_subscriber' => '',
1060
+ 'bps_jtc_comment_form_error' => $jtc_options['bps_jtc_comment_form_error'],
1061
+ 'bps_jtc_comment_form_label' => $jtc_options['bps_jtc_comment_form_label'],
1062
+ 'bps_jtc_comment_form_input' => $jtc_options['bps_jtc_comment_form_input'],
1063
+ 'bps_jtc_custom_roles' => $jtc_options19,
1064
+ 'bps_enable_jtc_woocommerce' => ''
1065
+ );
1066
+
1067
+ if ( ! get_option('bulletproof_security_options_login_security_jtc') ) {
1068
+
1069
+ foreach( $jtc_db_options as $key => $value ) {
1070
+ update_option('bulletproof_security_options_login_security_jtc', $jtc_db_options);
1071
+ }
1072
+ }
1073
+
1074
  $user_id = $current_user->ID;
1075
 
1076
+ // 2.4: Delete the Woo Dimiss Notice and Woo check option. No longer used in BPS free.
1077
+ delete_user_meta($user_id, 'bps_ignore_woocommerce_lsm_jtc_notice');
1078
+ delete_option('bulletproof_security_options_setup_wizard_woo');
1079
  // 2.0: New SBC Dismiss Notice check created: checks for redundant Browser caching code & the BPS NOCHECK Marker in BPS Custom Code
1080
  delete_user_meta($user_id, 'bpsPro_ignore_speed_boost_notice');
1081
  // 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
1105
  // Add additional https scheme conditions to 3 htaccess security rules and combine 2 rules into 1 rule in Root and wp-admin Custom Code.
1106
  bpsPro_upgrade_CC_automatic_fix();
1107
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1108
  // .54.6: New Sucuri Dismiss Notice check created. Delete the user_meta for this Dismiss Notice.
1109
  delete_user_meta($user_id, 'bps_ignore_sucuri_notice');
1110
 
1115
 
1116
  if ( $isl_options['bps_isl'] == 'On' || $isl_options['bps_isl'] == 'Off' ) {
1117
 
1118
+ if ( ! $isl_options['bps_isl_custom_roles'] ) {
1119
+ $isl_options18 = array( 'bps', '' );
1120
+
1121
+ } else {
1122
+
1123
+ foreach ( $isl_options as $key => $value ) {
1124
+
1125
+ if ( $key == 'bps_isl_custom_roles' ) {
1126
+
1127
+ if ( ! is_array($value) ) {
1128
+ $isl_options18 = array( 'bps', '' );
1129
+ } else {
1130
+ $isl_options18 = $isl_options['bps_isl_custom_roles'];
1131
+ }
1132
  }
1133
+ }
1134
+ }
1135
+
1136
+ $isl_db_options = array(
1137
+ 'bps_isl' => $isl_options['bps_isl'],
1138
+ 'bps_isl_timeout' => $isl_options['bps_isl_timeout'],
1139
+ 'bps_isl_logout_url' => $isl_options['bps_isl_logout_url'],
1140
+ 'bps_isl_login_url' => $isl_options['bps_isl_login_url'],
1141
+ 'bps_isl_custom_message' => $isl_options['bps_isl_custom_message'],
1142
+ 'bps_isl_custom_css_1' => $isl_options['bps_isl_custom_css_1'],
1143
+ 'bps_isl_custom_css_2' => $isl_options['bps_isl_custom_css_2'],
1144
+ 'bps_isl_custom_css_3' => $isl_options['bps_isl_custom_css_3'],
1145
+ 'bps_isl_custom_css_4' => $isl_options['bps_isl_custom_css_4'],
1146
+ 'bps_isl_user_account_exceptions' => $isl_options['bps_isl_user_account_exceptions'],
1147
+ 'bps_isl_administrator' => $isl_options['bps_isl_administrator'],
1148
+ 'bps_isl_editor' => $isl_options['bps_isl_editor'],
1149
+ 'bps_isl_author' => $isl_options['bps_isl_author'],
1150
+ 'bps_isl_contributor' => $isl_options['bps_isl_contributor'],
1151
+ 'bps_isl_subscriber' => $isl_options['bps_isl_subscriber'],
1152
+ 'bps_isl_tinymce' => $isl_options['bps_isl_tinymce'],
1153
+ 'bps_isl_uri_exclusions' => $isl_options['bps_isl_uri_exclusions'],
1154
+ 'bps_isl_custom_roles' => $isl_options18
1155
+ );
1156
+
1157
+ foreach( $isl_db_options as $key => $value ) {
1158
+ update_option('bulletproof_security_options_idle_session', $isl_db_options);
1159
+ }
 
1160
  }
1161
 
1162
  // .54.3: BugFix: pre-save ACE db options.
1164
 
1165
  if ( $ace_options['bps_ace'] == 'On' || $ace_options['bps_ace'] == 'Off' ) {
1166
 
1167
+ if ( ! $ace_options['bps_ace_custom_roles'] ) {
1168
+ $ace_options11 = array( 'bps', '' );
 
 
1169
 
1170
+ } else {
1171
+
1172
+ foreach ( $ace_options as $key => $value ) {
1173
+
1174
+ if ( $key == 'bps_ace_custom_roles' ) {
1175
+
1176
+ if ( ! is_array($value) ) {
1177
+ $ace_options11 = array( 'bps', '' );
1178
+ } else {
1179
+ $ace_options11 = $ace_options['bps_ace_custom_roles'];
1180
+ }
1181
  }
1182
+ }
1183
+ }
1184
+
1185
+ $ace_db_options = array(
1186
+ 'bps_ace' => $ace_options['bps_ace'],
1187
+ 'bps_ace_expiration' => $ace_options['bps_ace_expiration'],
1188
+ 'bps_ace_rememberme_expiration' => $ace_options['bps_ace_rememberme_expiration'],
1189
+ 'bps_ace_user_account_exceptions' => $ace_options['bps_ace_user_account_exceptions'],
1190
+ 'bps_ace_administrator' => $ace_options['bps_ace_administrator'],
1191
+ 'bps_ace_editor' => $ace_options['bps_ace_editor'],
1192
+ 'bps_ace_author' => $ace_options['bps_ace_author'],
1193
+ 'bps_ace_contributor' => $ace_options['bps_ace_contributor'],
1194
+ 'bps_ace_subscriber' => $ace_options['bps_ace_subscriber'],
1195
+ 'bps_ace_rememberme_disable' => $ace_options['bps_ace_rememberme_disable'],
1196
+ 'bps_ace_custom_roles' => $ace_options11
1197
+ );
1198
+
1199
+ foreach( $ace_db_options as $key => $value ) {
1200
+ update_option('bulletproof_security_options_auth_cookie', $ace_db_options);
1201
+ }
 
1202
  }
1203
 
1204
+ // 2.4: Enable Login Security for WooCommerce option is disabled by default in BPS free and cannot be enabled.
1205
  // 2.3: BugFix: Enable Login Security for WooCommerce option being reset on upgrade. Only enable once if the option does not exist.
1206
  // .54.3: New Enable LSM for WooCommerce option added
1207
  // .51.8: New Login Security Attempts Remaining option added
1208
  $lsm = get_option('bulletproof_security_options_login_security');
1209
 
 
 
 
 
 
 
 
 
 
 
1210
  $lsm1 = ! $lsm['bps_max_logins'] ? '3' : $lsm['bps_max_logins'];
1211
+ $lsm2 = ! $lsm['bps_lockout_duration'] ? '15' : $lsm['bps_lockout_duration'];
1212
  $lsm3 = ! $lsm['bps_manual_lockout_duration'] ? '60' : $lsm['bps_manual_lockout_duration'];
1213
  $lsm4 = ! $lsm['bps_max_db_rows_display'] ? '' : $lsm['bps_max_db_rows_display'];
1214
  $lsm5 = ! $lsm['bps_login_security_OnOff'] ? 'On' : $lsm['bps_login_security_OnOff'];
1229
  'bps_login_security_remaining' => $lsm8,
1230
  'bps_login_security_pw_reset' => $lsm9,
1231
  'bps_login_security_sort' => $lsm10,
1232
+ 'bps_enable_lsm_woocommerce' => ''
1233
  );
1234
 
1235
  foreach( $lsm_options as $key => $value ) {
1276
  // .53.6: Wordfence WAF mess - Reset php handler dismiss notice.
1277
  bpsPro_php_handler_dismiss_notice_reset();
1278
 
1279
+ // 2.4: new email alerting options added
1280
  // .53.5: Old obsolete function deleted and code moved here.
1281
  // Email Alerting & Log file zip, email and deleting DB options.
1282
  $email_log = get_option('bulletproof_security_options_email');
1291
  $email_log7 = ! $email_log['bps_security_log_emailL'] ? 'email' : $email_log['bps_security_log_emailL'];
1292
  $email_log8 = ! $email_log['bps_dbb_log_email'] ? 'email' : $email_log['bps_dbb_log_email'];
1293
  $email_log9 = ! $email_log['bps_dbb_log_size'] ? '500KB' : $email_log['bps_dbb_log_size'];
1294
+ $email_log10 = ! $bps_email_options['bps_mscan_log_size'] ? '500KB' : $bps_email_options['bps_mscan_log_size'];
1295
+ $email_log11 = ! $bps_email_options['bps_mscan_log_email'] ? 'email' : $bps_email_options['bps_mscan_log_email'];
1296
 
1297
  $email_log_options = array(
1298
  'bps_send_email_to' => $email_log1,
1303
  'bps_security_log_size' => $email_log6,
1304
  'bps_security_log_emailL' => $email_log7,
1305
  'bps_dbb_log_email' => $email_log8,
1306
+ 'bps_dbb_log_size' => $email_log9,
1307
+ 'bps_mscan_log_size' => $email_log10,
1308
+ 'bps_mscan_log_email' => $email_log11
1309
  );
1310
 
1311
  foreach( $email_log_options as $key => $value ) {
includes/hidden-plugin-folders-cron.php CHANGED
@@ -230,18 +230,24 @@ function bpsPro_hidden_plugins_check_alert() {
230
  $hello_dolly = WP_PLUGIN_DIR . '/hello.php';
231
  $plugins_index = WP_PLUGIN_DIR . '/index.php';
232
  $plugins_htaccess = WP_PLUGIN_DIR . '/.htaccess';
233
-
 
 
 
 
 
 
234
  foreach ( $iterator as $files ) {
235
 
236
  if ( $files->isFile() ) {
237
 
238
  // only search files in the root /plugins/ folder
239
- if ( ! preg_match( '/\/plugins(\\\|\/).*(\\\|\/)/', $files ) ) {
240
 
241
  if ( file_exists($hello_dolly) ) {
242
  $check_string_hd = @file_get_contents($hello_dolly);
243
 
244
- if ( preg_match( '/\/plugins(\\\|\/)hello\.php/', $files ) && ! strpos( $check_string_hd, "Plugin Name: Hello Dolly" ) && ! in_array( $files->getFilename(), $hidden_plugins_array ) ) {
245
 
246
  if ( @$_POST['Hidden-Plugins-Ignore-Submit'] != true ) {
247
  $alert1 = 'alert';
@@ -256,7 +262,7 @@ function bpsPro_hidden_plugins_check_alert() {
256
  if ( file_exists($plugins_index) ) {
257
  $check_string_index = @file_get_contents($plugins_index);
258
 
259
- if ( preg_match( '/\/plugins(\\\|\/)index\.php/', $files ) && preg_match( '/[\=\%\{\}\(\)\,\;@\'\"\&\+\!]/', $check_string_index ) && ! in_array( $files->getFilename(), $hidden_plugins_array ) ) {
260
 
261
  if ( @$_POST['Hidden-Plugins-Ignore-Submit'] != true ) {
262
  $alert2 = 'alert';
@@ -271,7 +277,7 @@ function bpsPro_hidden_plugins_check_alert() {
271
  if ( file_exists($plugins_htaccess) ) {
272
  $check_string_ht = @file_get_contents($plugins_htaccess);
273
 
274
- if ( preg_match( '/\/plugins(\\\|\/)\.htaccess/', $files ) && ! strpos( $check_string_ht, "BULLETPROOF" ) && ! in_array( $files->getFilename(), $hidden_plugins_array ) ) {
275
 
276
  if ( @$_POST['Hidden-Plugins-Ignore-Submit'] != true ) {
277
  $alert3 = 'alert';
@@ -284,7 +290,7 @@ function bpsPro_hidden_plugins_check_alert() {
284
  }
285
 
286
  // list any other files found in the /plugins/ folder except for ignored file names.
287
- if ( ! preg_match( '/\/plugins(\\\|\/)hello\.php/', $files ) && ! preg_match( '/\/plugins(\\\|\/)index\.php/', $files ) && ! preg_match( '/\/plugins(\\\|\/)\.htaccess/', $files ) && ! in_array( $files->getFilename(), $hidden_plugins_array ) ) {
288
 
289
  $file_contents = @file_get_contents($files->getPathname());
290
 
@@ -302,7 +308,7 @@ function bpsPro_hidden_plugins_check_alert() {
302
  if ( $files->isDir() ) {
303
 
304
  // only return root folders in the root /plugins/ folder and not child subfolders & dir dots
305
- if ( ! preg_match( '/\/plugins(\\\|\/).*(\\\|\/)/', $files ) && ! preg_match( '/\/plugins(\\\|\/)(\.|\.\.)/', $files ) ) {
306
 
307
  $dir_plugins_array[] = str_replace( array( '\\', '//' ), "/", $files );
308
  }
230
  $hello_dolly = WP_PLUGIN_DIR . '/hello.php';
231
  $plugins_index = WP_PLUGIN_DIR . '/index.php';
232
  $plugins_htaccess = WP_PLUGIN_DIR . '/.htaccess';
233
+ // Replace ABSPATH = wp-content/plugins
234
+ $bps_plugin_dir = str_replace( ABSPATH, '', WP_PLUGIN_DIR );
235
+ // Replace ABSPATH = wp-content
236
+ $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
237
+ // Replace wp-content/ = plugins
238
+ $plugins_dir_name = str_replace( $bps_wpcontent_dir . '/', "", $bps_plugin_dir );
239
+
240
  foreach ( $iterator as $files ) {
241
 
242
  if ( $files->isFile() ) {
243
 
244
  // only search files in the root /plugins/ folder
245
+ if ( ! preg_match( '/\/'.$plugins_dir_name.'(\\\|\/).*(\\\|\/)/', $files ) ) {
246
 
247
  if ( file_exists($hello_dolly) ) {
248
  $check_string_hd = @file_get_contents($hello_dolly);
249
 
250
+ if ( preg_match( '/\/'.$plugins_dir_name.'(\\\|\/)hello\.php/', $files ) && ! strpos( $check_string_hd, "Plugin Name: Hello Dolly" ) && ! in_array( $files->getFilename(), $hidden_plugins_array ) ) {
251
 
252
  if ( @$_POST['Hidden-Plugins-Ignore-Submit'] != true ) {
253
  $alert1 = 'alert';
262
  if ( file_exists($plugins_index) ) {
263
  $check_string_index = @file_get_contents($plugins_index);
264
 
265
+ if ( preg_match( '/\/'.$plugins_dir_name.'(\\\|\/)index\.php/', $files ) && preg_match( '/[\=\%\{\}\(\)\,\;@\'\"\&\+\!]/', $check_string_index ) && ! in_array( $files->getFilename(), $hidden_plugins_array ) ) {
266
 
267
  if ( @$_POST['Hidden-Plugins-Ignore-Submit'] != true ) {
268
  $alert2 = 'alert';
277
  if ( file_exists($plugins_htaccess) ) {
278
  $check_string_ht = @file_get_contents($plugins_htaccess);
279
 
280
+ if ( preg_match( '/\/'.$plugins_dir_name.'(\\\|\/)\.htaccess/', $files ) && ! strpos( $check_string_ht, "BULLETPROOF" ) && ! in_array( $files->getFilename(), $hidden_plugins_array ) ) {
281
 
282
  if ( @$_POST['Hidden-Plugins-Ignore-Submit'] != true ) {
283
  $alert3 = 'alert';
290
  }
291
 
292
  // list any other files found in the /plugins/ folder except for ignored file names.
293
+ if ( ! preg_match( '/\/'.$plugins_dir_name.'(\\\|\/)hello\.php/', $files ) && ! preg_match( '/\/'.$plugins_dir_name.'(\\\|\/)index\.php/', $files ) && ! preg_match( '/\/'.$plugins_dir_name.'(\\\|\/)\.htaccess/', $files ) && ! in_array( $files->getFilename(), $hidden_plugins_array ) ) {
294
 
295
  $file_contents = @file_get_contents($files->getPathname());
296
 
308
  if ( $files->isDir() ) {
309
 
310
  // only return root folders in the root /plugins/ folder and not child subfolders & dir dots
311
+ if ( ! preg_match( '/\/'.$plugins_dir_name.'(\\\|\/).*(\\\|\/)/', $files ) && ! preg_match( '/\/'.$plugins_dir_name.'(\\\|\/)(\.|\.\.)/', $files ) ) {
312
 
313
  $dir_plugins_array[] = str_replace( array( '\\', '//' ), "/", $files );
314
  }
includes/hud-autofix-whitelist.php CHANGED
@@ -65,8 +65,10 @@ function bpsPro_HUD_autofix_whitelist_check() {
65
  $broken_link_checker_active = in_array( $broken_link_checker, apply_filters('active_plugins', get_option('active_plugins')));
66
  $mailchimp = 'mailchimp-for-wp/mailchimp-for-wp.php';
67
  $mailchimp_active = in_array( $mailchimp, apply_filters('active_plugins', get_option('active_plugins')));
68
-
69
- 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 ) ) {
 
 
70
 
71
  if ( ! preg_match( $pattern_RMF, $bps_customcode_request_methods ) ) {
72
  $autofix_message = 1;
@@ -554,7 +556,8 @@ function bpsPro_HUD_autofix_whitelist_check() {
554
  $event_espresso4 = WP_PLUGIN_DIR . '/event-espresso-core-master/espresso.php';
555
  $content_egg = 'content-egg/content-egg.php';
556
  $content_egg_active = in_array( $content_egg, apply_filters('active_plugins', get_option('active_plugins')));
557
-
 
558
  ## wp-admin plugin skip/bypass RegEx patterns
559
  $post_psb = '/RewriteCond\s%{REQUEST_URI}\s\(post\\\.php\)\s\[NC\]/';
560
  $admin_ajax_psb = '/RewriteCond\s%{REQUEST_URI}\s\(admin-ajax\\\.php\)\s\[NC\]/';
@@ -690,6 +693,12 @@ function bpsPro_HUD_autofix_whitelist_check() {
690
  $debug_wpadmin_PSB .= __('CC wp-admin Text Box 3: Content Egg (Free and Pro) Plugin', 'bulletproof-security').'<br>';
691
  }
692
  }
 
 
 
 
 
 
693
 
694
  ## 4. CUSTOM CODE BPSQSE-check BPS QUERY STRING EXPLOITS AND FILTERS
695
  $bps_customcode_bpsqse_wpa = htmlspecialchars_decode( $CC_Options_wpadmin['bps_customcode_bpsqse_wpa'], ENT_QUOTES );
65
  $broken_link_checker_active = in_array( $broken_link_checker, apply_filters('active_plugins', get_option('active_plugins')));
66
  $mailchimp = 'mailchimp-for-wp/mailchimp-for-wp.php';
67
  $mailchimp_active = in_array( $mailchimp, apply_filters('active_plugins', get_option('active_plugins')));
68
+ $powerpress = 'powerpress/powerpress.php';
69
+ $powerpress_active = in_array( $powerpress, apply_filters('active_plugins', get_option('active_plugins')));
70
+
71
+ 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 ) || $powerpress_active == 1 || is_plugin_active_for_network( $powerpress ) ) {
72
 
73
  if ( ! preg_match( $pattern_RMF, $bps_customcode_request_methods ) ) {
74
  $autofix_message = 1;
556
  $event_espresso4 = WP_PLUGIN_DIR . '/event-espresso-core-master/espresso.php';
557
  $content_egg = 'content-egg/content-egg.php';
558
  $content_egg_active = in_array( $content_egg, apply_filters('active_plugins', get_option('active_plugins')));
559
+ $flatsome_theme = wp_get_theme( 'flatsome' );
560
+
561
  ## wp-admin plugin skip/bypass RegEx patterns
562
  $post_psb = '/RewriteCond\s%{REQUEST_URI}\s\(post\\\.php\)\s\[NC\]/';
563
  $admin_ajax_psb = '/RewriteCond\s%{REQUEST_URI}\s\(admin-ajax\\\.php\)\s\[NC\]/';
693
  $debug_wpadmin_PSB .= __('CC wp-admin Text Box 3: Content Egg (Free and Pro) Plugin', 'bulletproof-security').'<br>';
694
  }
695
  }
696
+ if ( $flatsome_theme->exists() ) {
697
+ if ( ! preg_match( '/RewriteCond\s%{REQUEST_URI}\s\(customize\\\.php\)\s\[NC\]/', $bps_customcode_two_wpa ) ) {
698
+ $autofix_message = 1;
699
+ $debug_wpadmin_PSB .= __('CC wp-admin Text Box 3: Flatsome Theme', 'bulletproof-security').'<br>';
700
+ }
701
+ }
702
 
703
  ## 4. CUSTOM CODE BPSQSE-check BPS QUERY STRING EXPLOITS AND FILTERS
704
  $bps_customcode_bpsqse_wpa = htmlspecialchars_decode( $CC_Options_wpadmin['bps_customcode_bpsqse_wpa'], ENT_QUOTES );
includes/hud-dismiss-functions.php CHANGED
@@ -20,11 +20,11 @@ function bps_HUD_WP_Dashboard() {
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
  }
@@ -502,59 +502,6 @@ $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;
517
- }
518
-
519
- if ( $sw_woo_options['bps_wizard_woo'] == '1' ) {
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;
530
-
531
- if ( ! get_user_meta($user_id, 'bps_ignore_woocommerce_lsm_jtc_notice') ) {
532
-
533
- if ( esc_html($_SERVER['QUERY_STRING']) == '' && basename(esc_html($_SERVER['REQUEST_URI'])) != 'wp-admin' ) {
534
- $bps_base = basename(esc_html($_SERVER['REQUEST_URI'])) . '?';
535
- } elseif ( esc_html($_SERVER['QUERY_STRING']) == '' && basename(esc_html($_SERVER['REQUEST_URI'])) == 'wp-admin' ) {
536
- $bps_base = basename( str_replace( 'wp-admin', 'index.php?', esc_html($_SERVER['REQUEST_URI'])));
537
- } else {
538
- $bps_base = str_replace( admin_url(), '', esc_html($_SERVER['REQUEST_URI']) ) . '&';
539
- }
540
-
541
- $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 WooCommerce Options Notice: Enable Login Security for WooCommerce', 'bulletproof-security').'</font><br>'.__('BPS Login Security & Monitoring (LSM) can be enabled/disabled for the WooCommerce custom login page by checking or unchecking the ', 'bulletproof-security').'<a href="'.admin_url( 'admin.php?page=bulletproof-security/admin/login/login.php' ).'">'.__('Enable Login Security for WooCommerce', 'bulletproof-security').'</a>'.__(' checkbox option setting. The LSM WooCommerce option is automatically enabled during the BPS upgrade if you already had WooCommerce installed before upgrading BPS. If you just installed WooCommerce you can either run the Setup Wizard to enable the LSM WooCommerce option or you can enable this option manually by going to the BPS LSM plugin page if you want to enable LSM for WooCommerce.', '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_woo_jtc_lsm_nag_ignore=0'.'" style="text-decoration:none;font-weight:600;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
542
- echo $text;
543
- }
544
- }
545
- }
546
-
547
- add_action('admin_init', 'bps_woo_jtc_lsm_nag_ignore');
548
-
549
- function bps_woo_jtc_lsm_nag_ignore() {
550
- global $current_user;
551
- $user_id = $current_user->ID;
552
-
553
- if ( isset($_GET['bps_woo_jtc_lsm_nag_ignore']) && '0' == $_GET['bps_woo_jtc_lsm_nag_ignore'] ) {
554
- add_user_meta($user_id, 'bps_ignore_woocommerce_lsm_jtc_notice', 'true', true);
555
- }
556
- }
557
-
558
  // Check for older BPS Query String Exploits code saved to BPS Custom Code
559
  function bps_hud_BPSQSE_old_code_check() {
560
  $CustomCodeoptions = get_option('bulletproof_security_options_customcode');
@@ -712,4 +659,31 @@ $user_id = $current_user->ID;
712
  }
713
  }
714
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
715
  ?>
20
  bps_hud_PhpiniHandlerCheck();
21
  bps_hud_check_sucuri();
22
  bps_hud_check_wordpress_firewall2();
 
23
  bps_hud_BPSQSE_old_code_check();
24
  bpsPro_BBM_htaccess_check();
25
  bpsPro_hud_speed_boost_cache_code();
26
  bps_hud_check_autoupdate();
27
+ bpsPro_hud_mscan_notice();
28
  //bps_hud_check_public_username();
29
  }
30
  }
502
  }
503
  }
504
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
505
  // Check for older BPS Query String Exploits code saved to BPS Custom Code
506
  function bps_hud_BPSQSE_old_code_check() {
507
  $CustomCodeoptions = get_option('bulletproof_security_options_customcode');
659
  }
660
  }
661
 
662
+ // Heads Up Display w/ Dismiss - MScan first run notice
663
+ function bpsPro_hud_mscan_notice() {
664
+
665
+ if ( esc_html($_SERVER['QUERY_STRING']) == 'page=bulletproof-security/admin/mscan/mscan.php' ) {
666
+
667
+ global $current_user;
668
+ $user_id = $current_user->ID;
669
+
670
+ if ( ! get_user_meta($user_id, 'bps_ignore_mscan_notice') ) {
671
+
672
+ $text = '<div style="background-color:#dfecf2;border:1px solid #999;font-size:1em;font-weight:600;padding:0px 5px;margin:0px 0px 35px 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="blue">'.__('MScan First Run Notice', 'bulletproof-security').'</font><br>'.__('Please take a few minutes to read the "Basic Info|Recommendations|Limitations|Restrictions" help section in the', 'bulletproof-security').' <a href="https://forum.ait-pro.com/forums/topic/mscan-malware-scanner-guide/" target="_blank" title="MScan Malware Scanner Guide">'.__('MScan Malware Scanner Guide', 'bulletproof-security').'</a> '.__('before running a scan.', 'bulletproof-security').'<br>'.__('It is highly recommended that you use the Scan Time Estimate Tool before running an actual scan. The Scan Time Estimate Tool calculates the total estimated time of a scan based on your MScan Option settings without actually running a scan. 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="'.admin_url( 'admin.php?page=bulletproof-security%2Fadmin%2Fmscan%2Fmscan.php&bps_mscan_nag_ignore=0' ).''.'" style="text-decoration:none;font-weight:bold;">'.__('Dismiss Notice', 'bulletproof-security').'</a></div></div>';
673
+ echo $text;
674
+ }
675
+ }
676
+ }
677
+
678
+ add_action('admin_init', 'bpsPro_mscan_nag_ignore');
679
+
680
+ function bpsPro_mscan_nag_ignore() {
681
+ global $current_user;
682
+ $user_id = $current_user->ID;
683
+
684
+ if ( isset($_GET['bps_mscan_nag_ignore']) && '0' == $_GET['bps_mscan_nag_ignore'] ) {
685
+ add_user_meta($user_id, 'bps_ignore_mscan_notice', 'true', true);
686
+ }
687
+ }
688
+
689
  ?>
includes/login-security.php CHANGED
@@ -1,14 +1,16 @@
1
  <?php
2
 
 
 
 
3
  // .54.3: WooCommerce custom login page|form.
4
  // WooCommerce is Activated check:
5
  // If not activated then use the standard WP Login processing if enable checkboxes are checked, otherwise someone will not be able to login.
6
  // This also continues to protect the Standard WP Login page no matter what option settings are chosen.
7
  // This also prevents someone who does not have WooCommerce installed from not being able to login if they check the Enable WooCommerce options.
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
- // 2.2: BugFix: Renamed the $woocommerce variable to something unique to avoid collisions/conflicts with this variable being a Global.
11
  $BPSoptions = get_option('bulletproof_security_options_login_security');
 
12
  $bpsPro_woocommerce = 'woocommerce/woocommerce.php';
13
  $bpsPro_woocommerce_active = in_array( $bpsPro_woocommerce, apply_filters('active_plugins', get_option('active_plugins')));
14
 
@@ -17,38 +19,60 @@
17
  }
18
 
19
  if ( $bpsPro_woocommerce_active == 1 || is_plugin_active_for_network( $bpsPro_woocommerce ) ) {
20
-
21
- if ( $BPSoptions['bps_enable_lsm_woocommerce'] == 1 ) {
22
 
23
  if ( $BPSoptions['bps_login_security_OnOff'] == 'On' && isset( $_POST['login'] ) || $BPSoptions['bps_login_security_OnOff'] == 'On' && isset( $_POST['wp-submit'] ) ) {
24
  add_filter( 'authenticate', 'bpsPro_wp_authenticate_username_password', 20, 3 );
 
 
25
  }
26
-
27
- } elseif ( $BPSoptions['bps_enable_lsm_woocommerce'] != 1 ) {
 
 
 
 
 
 
 
 
28
 
29
  if ( $BPSoptions['bps_login_security_OnOff'] == 'On' && isset( $_POST['wp-submit'] ) ) {
30
  add_filter( 'authenticate', 'bpsPro_wp_authenticate_username_password', 20, 3 );
 
 
31
  }
32
 
33
  } else {
34
 
35
- // Standard WP Login: LSM Processing
 
36
  if ( $BPSoptions['bps_login_security_OnOff'] == 'On' && isset( $_POST['wp-submit'] ) ) {
37
  add_filter( 'authenticate', 'bpsPro_wp_authenticate_username_password', 20, 3 );
38
  }
 
 
 
 
39
  }
40
-
41
  } else {
42
 
43
- // Standard WP Login: LSM Processing
44
  if ( $BPSoptions['bps_login_security_OnOff'] == 'On' && isset( $_POST['wp-submit'] ) ) {
45
  add_filter( 'authenticate', 'bpsPro_wp_authenticate_username_password', 20, 3 );
46
  }
 
 
 
 
47
  }
48
 
49
  function bpsPro_wp_authenticate_username_password( $user, $username, $password ) {
50
  global $wpdb, $blog_id;
51
  $BPSoptions = get_option('bulletproof_security_options_login_security');
 
52
  $options = get_option('bulletproof_security_options_email');
53
  $bpspro_login_table = $wpdb->prefix . "bpspro_login_security";
54
  $ip_address = esc_html( $_SERVER['REMOTE_ADDR'] );
@@ -58,6 +82,7 @@ $login_time = time();
58
  $lockout_time = time() + (60 * $BPSoptions['bps_lockout_duration']); // default is 1 hour/3600 seconds
59
  $timeNow = time();
60
  $gmt_offset = get_option( 'gmt_offset' ) * 3600;
 
61
  $bps_email_to = $options['bps_send_email_to'];
62
  $bps_email_from = $options['bps_send_email_from'];
63
  $bps_email_cc = $options['bps_send_email_cc'];
@@ -97,6 +122,16 @@ if ( $BPSoptions['bps_login_security_OnOff'] == 'On' && $BPSoptions['bps_login_s
97
  }
98
  }
99
 
 
 
 
 
 
 
 
 
 
 
100
  // Good Login - DB Row does NOT Exist - Create it - Email option - Any user logs in
101
  if ( $user && $wpdb->num_rows == 0 && $user->ID != 0 && wp_check_password($password, $user->user_pass, $user->ID) ) {
102
  $status = 'Not Locked';
@@ -430,6 +465,16 @@ if ( $BPSoptions['bps_login_security_OnOff'] == 'On' && $BPSoptions['bps_login_s
430
  }
431
  }
432
 
 
 
 
 
 
 
 
 
 
 
433
  // Bad Login - DB Row does NOT Exist - First bad login attempt = $failed_logins = '1';
434
  if ( $user && $wpdb->num_rows == 0 && $user->ID != 0 && ! wp_check_password($password, $user->user_pass, $user->ID) ) {
435
  $failed_logins = '1';
@@ -650,6 +695,7 @@ if ( $BPSoptions['bps_login_security_OnOff'] == 'On' && $BPSoptions['bps_login_s
650
  // Login Security & Monitoring
651
  // WordPress Standard Authentication Processing Code
652
  // with Generic Error Message display options
 
653
  // .54.3: WooCommerce custom login page/form condition added
654
  ****************************************************
655
  */
@@ -756,14 +802,14 @@ if ( $BPSoptions['bps_login_security_OnOff'] == 'On' && isset( $_POST['wp-submit
756
 
757
  if ( $BPSoptions['bps_login_security_OnOff'] != 'Off' ) {
758
 
759
- if ( $BPSoptions['bps_login_security_OnOff'] == 'pwreset' || $BPSoptions['bps_login_security_OnOff'] == 'On' ) {
760
-
761
- $pw_reset = '1';
762
-
763
- } else {
764
-
765
- $pw_reset = '0';
766
- }
767
 
768
  switch ( $pw_reset ) {
769
 
@@ -843,6 +889,131 @@ switch ( $pw_reset ) {
843
  }
844
  }
845
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
846
  /**************************************************************/
847
  // WordPress Authentication Cookie Expiration (ACE)
848
  // When Cookie Expiration Time Expires User is logged out
1
  <?php
2
 
3
+ // 2.4: WooCommerce LSM & JTC are disabled and cannot be enabled in BPS free. Add/Leave all BPS Pro WooCommerce conditions just in case their is a problem.
4
+ // Logically there should not be, but a leftover db value somewhere could cause someone to be unable to login.
5
+ // 2.2: BugFix: Renamed the $woocommerce variable to something unique to avoid collisions/conflicts with this variable being a Global.
6
  // .54.3: WooCommerce custom login page|form.
7
  // WooCommerce is Activated check:
8
  // If not activated then use the standard WP Login processing if enable checkboxes are checked, otherwise someone will not be able to login.
9
  // This also continues to protect the Standard WP Login page no matter what option settings are chosen.
10
  // This also prevents someone who does not have WooCommerce installed from not being able to login if they check the Enable WooCommerce options.
11
  // This also allows someone with WooCommerce installed just to turn LSM on or off without messing with the Enable WooCommerce options.
 
 
12
  $BPSoptions = get_option('bulletproof_security_options_login_security');
13
+ $BPSoptionsJTC = get_option('bulletproof_security_options_login_security_jtc');
14
  $bpsPro_woocommerce = 'woocommerce/woocommerce.php';
15
  $bpsPro_woocommerce_active = in_array( $bpsPro_woocommerce, apply_filters('active_plugins', get_option('active_plugins')));
16
 
19
  }
20
 
21
  if ( $bpsPro_woocommerce_active == 1 || is_plugin_active_for_network( $bpsPro_woocommerce ) ) {
22
+
23
+ if ( $BPSoptions['bps_enable_lsm_woocommerce'] == 1 && $BPSoptionsJTC['bps_enable_jtc_woocommerce'] == 1 ) {
24
 
25
  if ( $BPSoptions['bps_login_security_OnOff'] == 'On' && isset( $_POST['login'] ) || $BPSoptions['bps_login_security_OnOff'] == 'On' && isset( $_POST['wp-submit'] ) ) {
26
  add_filter( 'authenticate', 'bpsPro_wp_authenticate_username_password', 20, 3 );
27
+ } elseif ( $BPSoptions['bps_login_security_OnOff'] == 'Off' && $BPSoptionsJTC['bps_jtc_login_form'] == '1' && isset( $_POST['login'] ) || $BPSoptions['bps_login_security_OnOff'] == 'Off' && $BPSoptionsJTC['bps_jtc_login_form'] == '1' && isset( $_POST['wp-submit'] ) ) {
28
+ add_filter( 'wp_authenticate_user', 'bpsPro_jtc_wp_login_page', 10, 2 );
29
  }
30
+
31
+ } elseif ( $BPSoptions['bps_enable_lsm_woocommerce'] == 1 && $BPSoptionsJTC['bps_enable_jtc_woocommerce'] != 1 ) {
32
+
33
+ if ( $BPSoptions['bps_login_security_OnOff'] == 'On' && isset( $_POST['login'] ) || $BPSoptions['bps_login_security_OnOff'] == 'On' && isset( $_POST['wp-submit'] ) ) {
34
+ add_filter( 'authenticate', 'bpsPro_wp_authenticate_username_password', 20, 3 );
35
+ } elseif ( $BPSoptions['bps_login_security_OnOff'] == 'Off' && $BPSoptionsJTC['bps_jtc_login_form'] == '1' && isset( $_POST['login'] ) || $BPSoptions['bps_login_security_OnOff'] == 'Off' && $BPSoptionsJTC['bps_jtc_login_form'] == '1' && isset( $_POST['wp-submit'] ) ) {
36
+ add_filter( 'wp_authenticate_user', 'bpsPro_jtc_wp_login_page', 10, 2 );
37
+ }
38
+
39
+ } elseif ( $BPSoptions['bps_enable_lsm_woocommerce'] != 1 && $BPSoptionsJTC['bps_enable_jtc_woocommerce'] == 1 ) {
40
 
41
  if ( $BPSoptions['bps_login_security_OnOff'] == 'On' && isset( $_POST['wp-submit'] ) ) {
42
  add_filter( 'authenticate', 'bpsPro_wp_authenticate_username_password', 20, 3 );
43
+ } elseif ( $BPSoptions['bps_login_security_OnOff'] == 'Off' && $BPSoptionsJTC['bps_jtc_login_form'] == '1' && isset( $_POST['login'] ) || $BPSoptions['bps_login_security_OnOff'] == 'Off' && $BPSoptionsJTC['bps_jtc_login_form'] == '1' && isset( $_POST['wp-submit'] ) ) {
44
+ add_filter( 'wp_authenticate_user', 'bpsPro_jtc_wp_login_page', 10, 2 );
45
  }
46
 
47
  } else {
48
 
49
+ // WooCommerce is activated, but neither LSM or JTC is enabled for WooCommerce
50
+ // Standard WP Login: LSM & JTC Processing
51
  if ( $BPSoptions['bps_login_security_OnOff'] == 'On' && isset( $_POST['wp-submit'] ) ) {
52
  add_filter( 'authenticate', 'bpsPro_wp_authenticate_username_password', 20, 3 );
53
  }
54
+ // JTC Processing only
55
+ if ( $BPSoptions['bps_login_security_OnOff'] == 'Off' && $BPSoptionsJTC['bps_jtc_login_form'] == '1' && isset( $_POST['wp-submit'] ) ) {
56
+ add_filter( 'wp_authenticate_user', 'bpsPro_jtc_wp_login_page', 10, 2 );
57
+ }
58
  }
59
+
60
  } else {
61
 
62
+ // Standard WP Login: LSM & JTC Processing
63
  if ( $BPSoptions['bps_login_security_OnOff'] == 'On' && isset( $_POST['wp-submit'] ) ) {
64
  add_filter( 'authenticate', 'bpsPro_wp_authenticate_username_password', 20, 3 );
65
  }
66
+ // JTC Processing only
67
+ if ( $BPSoptions['bps_login_security_OnOff'] == 'Off' && $BPSoptionsJTC['bps_jtc_login_form'] == '1' && isset( $_POST['wp-submit'] ) ) {
68
+ add_filter( 'wp_authenticate_user', 'bpsPro_jtc_wp_login_page', 10, 2 );
69
+ }
70
  }
71
 
72
  function bpsPro_wp_authenticate_username_password( $user, $username, $password ) {
73
  global $wpdb, $blog_id;
74
  $BPSoptions = get_option('bulletproof_security_options_login_security');
75
+ $BPSoptionsJTC = get_option('bulletproof_security_options_login_security_jtc');
76
  $options = get_option('bulletproof_security_options_email');
77
  $bpspro_login_table = $wpdb->prefix . "bpspro_login_security";
78
  $ip_address = esc_html( $_SERVER['REMOTE_ADDR'] );
82
  $lockout_time = time() + (60 * $BPSoptions['bps_lockout_duration']); // default is 1 hour/3600 seconds
83
  $timeNow = time();
84
  $gmt_offset = get_option( 'gmt_offset' ) * 3600;
85
+
86
  $bps_email_to = $options['bps_send_email_to'];
87
  $bps_email_from = $options['bps_send_email_from'];
88
  $bps_email_cc = $options['bps_send_email_cc'];
122
  }
123
  }
124
 
125
+ // 2.4: JTC-Lite added - incorrect CAPTCHA entered stops Login processing
126
+ if ( $BPSoptionsJTC['bps_jtc_login_form'] == '1' ) {
127
+
128
+ if ( $_POST['reference'] != $BPSoptionsJTC['bps_tooltip_captcha_key'] || $_POST['captcha'] != '' ) {
129
+ $error = new WP_Error();
130
+ $error->add( 'captcha_error', __('<strong>ERROR</strong>: Incorrect CAPTCHA Entered.', 'bulletproof-security') );
131
+ return $error;
132
+ }
133
+ }
134
+
135
  // Good Login - DB Row does NOT Exist - Create it - Email option - Any user logs in
136
  if ( $user && $wpdb->num_rows == 0 && $user->ID != 0 && wp_check_password($password, $user->user_pass, $user->ID) ) {
137
  $status = 'Not Locked';
465
  }
466
  }
467
 
468
+ // 2.4: JTC-Lite added - incorrect CAPTCHA entered stops Login processing
469
+ if ( $BPSoptionsJTC['bps_jtc_login_form'] == '1' ) {
470
+
471
+ if ( $_POST['reference'] != $BPSoptionsJTC['bps_tooltip_captcha_key'] || $_POST['captcha'] != '' ) {
472
+ $error = new WP_Error();
473
+ $error->add( 'captcha_error', __('<strong>ERROR</strong>: Incorrect CAPTCHA Entered.', 'bulletproof-security') );
474
+ return $error;
475
+ }
476
+ }
477
+
478
  // Bad Login - DB Row does NOT Exist - First bad login attempt = $failed_logins = '1';
479
  if ( $user && $wpdb->num_rows == 0 && $user->ID != 0 && ! wp_check_password($password, $user->user_pass, $user->ID) ) {
480
  $failed_logins = '1';
695
  // Login Security & Monitoring
696
  // WordPress Standard Authentication Processing Code
697
  // with Generic Error Message display options
698
+ // 2.4: WooCommerce LSM option is no longer available in BPS free
699
  // .54.3: WooCommerce custom login page/form condition added
700
  ****************************************************
701
  */
802
 
803
  if ( $BPSoptions['bps_login_security_OnOff'] != 'Off' ) {
804
 
805
+ if ( $BPSoptions['bps_login_security_OnOff'] == 'pwreset' || $BPSoptions['bps_login_security_OnOff'] == 'On' ) {
806
+
807
+ $pw_reset = '1';
808
+
809
+ } else {
810
+
811
+ $pw_reset = '0';
812
+ }
813
 
814
  switch ( $pw_reset ) {
815
 
889
  }
890
  }
891
 
892
+ /*
893
+ ***************************************************************
894
+ // JTC Login Form Processing if LSM is Turned Off
895
+ // JTC independent stand-alone processing
896
+ // For standard WP Login page. BPS Pro Only: WooCommerce custom login page|form.
897
+ // 2.4: This new function was added and modified - removed all logging code. BPS free JTC-Lite does not have logging capability.
898
+ ***************************************************************
899
+ */
900
+ function bpsPro_jtc_wp_login_page( $user, $password ) {
901
+
902
+ $BPSoptionsJTC = get_option('bulletproof_security_options_login_security_jtc');
903
+
904
+ if ( $BPSoptionsJTC['bps_jtc_login_form'] == '1' ) {
905
+
906
+ if ( $_POST['reference'] != $BPSoptionsJTC['bps_tooltip_captcha_key'] || $_POST['captcha'] != '' ) {
907
+ $error = new WP_Error();
908
+ $error->add( 'captcha_error', __('<strong>ERROR</strong>: Incorrect CAPTCHA Entered.', 'bulletproof-security') );
909
+ return $error;
910
+ }
911
+ return $user;
912
+ }
913
+ }
914
+
915
+ /********************************************/
916
+ // 2.4: JTC-Lite Login page CAPTCHA added
917
+ // CAPTCHA Form Field
918
+ // SpamBot Trap Form Field
919
+ // Brute Force Login Protection
920
+ // NextGen Gallery Fix: Disable Resource Manager on Forms
921
+ // Notes: Login Form CAPTCHA Validation, Logging and Errors are processed in bpsPro_wp_authenticate_username_password()
922
+ // & bpsPro_jtc_wp_login_page() functions.
923
+ // DO NOT USE - isset( $_POST['wp-submit'] ) here or it will break the BuddyPress /wp-admin redirect to /wp-login.php
924
+ /*********************************************/
925
+
926
+ // Login Form
927
+ if ( $BPSoptionsJTC['bps_jtc_login_form'] == '1' ) {
928
+
929
+ /** NextGen Gallery Fix **/
930
+ if ( @preg_match( '/wp-login\.php/', esc_html( $_SERVER['REQUEST_URI'] ) ) ) {
931
+ if ( ! defined( 'NGG_DISABLE_RESOURCE_MANAGER' ) ) {
932
+ define( 'NGG_DISABLE_RESOURCE_MANAGER', true );
933
+ }
934
+ }
935
+
936
+ function bps_enqueue_tooltip_script_login() {
937
+ wp_enqueue_script('jquery-ui-tooltip');
938
+ }
939
+
940
+ // These actions cannot be used in an else condition for woocommerce.
941
+ // Users would not be able to login on the standard WP Login page if they chose the enable LSM for WooCommerce option by mistake and
942
+ // the Standard WP Login page would no longer be secured if WooCommerce is installed.
943
+ add_action( 'login_enqueue_scripts', 'bps_enqueue_tooltip_script_login', 1 );
944
+ add_action( 'login_form', 'bps_captcha_login_form_field' );
945
+
946
+ if ( $BPSoptions['bps_enable_lsm_woocommerce'] == 1 || $BPSoptionsJTC['bps_enable_jtc_woocommerce'] == 1 ) {
947
+ add_action( 'wp_enqueue_scripts', 'bps_enqueue_tooltip_script_login', 1 );
948
+ add_action( 'woocommerce_login_form', 'bps_captcha_login_form_field' );
949
+ }
950
+
951
+ function bps_captcha_login_form_field() {
952
+
953
+ $BPSoptionsJTC = get_option('bulletproof_security_options_login_security_jtc');
954
+ // This is the CAPTCHA Form Field
955
+ $reference = ( isset( $_POST['reference'] ) ) ? $_POST['reference'] : '';
956
+ // SpamBot Trap/Decoy Form Field
957
+ $captcha = ( isset( $_POST['captcha'] ) ) ? $_POST['captcha'] : '';
958
+
959
+ ?>
960
+
961
+ <p>
962
+ <label for="reference"><?php echo $BPSoptionsJTC['bps_tooltip_captcha_title']; ?><br />
963
+ <input type="text" name="reference" id="reference" class="input" title="<?php echo $BPSoptionsJTC['bps_tooltip_captcha_hover_text']; ?>" value="<?php echo esc_attr(stripslashes($reference)); ?>" /></label>
964
+ <input type="text" name="captcha" id="captcha" class="input" value="<?php echo esc_attr(stripslashes($captcha)); ?>" style="display:none;" />
965
+ </p>
966
+
967
+ <script type="text/javascript">
968
+ /* <![CDATA[ */
969
+ jQuery(document).ready(function($){
970
+ $( "#reference" ).tooltip({
971
+ show: 500,
972
+ hide: 500,
973
+ tooltipClass: "bps-custom-tooltip-style",
974
+ position: {
975
+ my: "left center",
976
+ at: "left bottom+20",
977
+ //of: "#targetElement",
978
+ collision: "flipfit flip"
979
+ },
980
+ open: function( event, ui ) {
981
+
982
+ if (screen.width <= 800) {
983
+ ui.tooltip.animate({ top: ui.tooltip.position().top + 50 }, 500 );
984
+ } else {
985
+ ui.tooltip.animate({ top: ui.tooltip.position().top + 11 }, 500 );
986
+ }
987
+ }
988
+ });
989
+ });
990
+ /* ]]> */
991
+ </script>
992
+
993
+ <style>
994
+ <!--
995
+ .ui-helper-hidden-accessible{display:none;}
996
+
997
+ .ui-tooltip.bps-custom-tooltip-style {
998
+ color:#000;
999
+ font-weight:bold;
1000
+ background-color:#fff;
1001
+ padding:8px;
1002
+ width:256px;
1003
+ position:absolute;left:0px;top:0px;
1004
+ z-index:9999;
1005
+ max-width:256px;
1006
+ -webkit-box-shadow:0 0 5px #aaa;
1007
+ box-shadow:0 0 5px #aaa;
1008
+ }
1009
+ body .ui-tooltip.bps-custom-tooltip-style {
1010
+ border-width:2px;
1011
+ }
1012
+ -->
1013
+ </style>
1014
+
1015
+ <?php } }
1016
+
1017
  /**************************************************************/
1018
  // WordPress Authentication Cookie Expiration (ACE)
1019
  // When Cookie Expiration Time Expires User is logged out
includes/mscan-ajax-functions.php ADDED
@@ -0,0 +1,1756 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ // Get the Current|Last Modifed time of the MScan Log File - Seconds - Wizard & formality since no Dashboard alerts
10
+ function bpsPro_MScan_LogLastMod_wp_secs() {
11
+ $filename = WP_CONTENT_DIR . '/bps-backup/logs/mscan_log.txt';
12
+ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
13
+
14
+ if ( file_exists($filename) ) {
15
+ $last_modified = date( "F d Y H:i:s", filemtime($filename) + $gmt_offset );
16
+ return $last_modified;
17
+ }
18
+ }
19
+
20
+ ## MScan manual AJAX scan
21
+ ## See malware-scanner.php for extensive notes
22
+ function bpsPro_mscan_scan_processing() {
23
+
24
+ if ( isset( $_POST['post_var'] ) && $_POST['post_var'] == 'bps_mscan' ) {
25
+
26
+ $MScanStop = WP_CONTENT_DIR . '/bps-backup/master-backups/mscan-stop.txt';
27
+ file_put_contents($MScanStop, "run");
28
+
29
+ $MScan_options = get_option('bulletproof_security_options_MScan');
30
+ $mstime = $MScan_options['mscan_max_time_limit'];
31
+ ini_set('max_execution_time', $mstime);
32
+
33
+ if ( bpsPro_mscan_calculate_scan_time($mstime) == true ) {
34
+ if ( bpsPro_wp_zip_download($mstime) == true ) {
35
+ if ( bpsPro_wp_zip_extractor() == true ) {
36
+ if ( bpsPro_wp_hash_maker() == true ) {
37
+ bpsPro_mscan_file_scan($mstime);
38
+ }
39
+ }
40
+ }
41
+ }
42
+ }
43
+ wp_die();
44
+ }
45
+
46
+ add_action('wp_ajax_bps_mscan_scan_processing', 'bpsPro_mscan_scan_processing');
47
+
48
+ function bpsPro_mscan_scan_estimate() {
49
+
50
+ if ( isset( $_POST['post_var'] ) && $_POST['post_var'] == 'bps_mscan_estimate' ) {
51
+
52
+ $MScanStop = WP_CONTENT_DIR . '/bps-backup/master-backups/mscan-stop.txt';
53
+ file_put_contents($MScanStop, "run");
54
+
55
+ $MScan_options = get_option('bulletproof_security_options_MScan');
56
+ $mstime = $MScan_options['mscan_max_time_limit'];
57
+ ini_set('max_execution_time', $mstime);
58
+
59
+ if ( bpsPro_mscan_calculate_scan_time($mstime) == true ) {
60
+
61
+ $MScan_status = get_option('bulletproof_security_options_MScan_status');
62
+
63
+ $MScan_status_db = array(
64
+ 'bps_mscan_time_start' => $MScan_status['bps_mscan_time_start'],
65
+ 'bps_mscan_time_stop' => $MScan_status['bps_mscan_time_stop'],
66
+ 'bps_mscan_time_end' => $MScan_status['bps_mscan_time_end'],
67
+ 'bps_mscan_time_remaining' => $MScan_status['bps_mscan_time_remaining'],
68
+ 'bps_mscan_status' => '5',
69
+ 'bps_mscan_last_scan_timestamp' => $MScan_status['bps_mscan_last_scan_timestamp'],
70
+ 'bps_mscan_total_time' => $MScan_status['bps_mscan_total_time'],
71
+ 'bps_mscan_total_website_files' => $MScan_status['bps_mscan_total_website_files'],
72
+ 'bps_mscan_total_wp_core_files' => $MScan_status['bps_mscan_total_wp_core_files'],
73
+ 'bps_mscan_total_non_image_files' => $MScan_status['bps_mscan_total_non_image_files'],
74
+ 'bps_mscan_total_image_files' => $MScan_status['bps_mscan_total_image_files'],
75
+ 'bps_mscan_total_all_scannable_files' => $MScan_status['bps_mscan_total_all_scannable_files'],
76
+ 'bps_mscan_total_skipped_files' => $MScan_status['bps_mscan_total_skipped_files'],
77
+ 'bps_mscan_total_suspect_files' => $MScan_status['bps_mscan_total_suspect_files'],
78
+ 'bps_mscan_suspect_skipped_files' => $MScan_status['bps_mscan_suspect_skipped_files'],
79
+ 'bps_mscan_total_suspect_db' => $MScan_status['bps_mscan_total_suspect_db'],
80
+ 'bps_mscan_total_ignored_files' => $MScan_status['bps_mscan_total_ignored_files']
81
+ );
82
+
83
+ foreach( $MScan_status_db as $key => $value ) {
84
+ update_option('bulletproof_security_options_MScan_status', $MScan_status_db);
85
+ }
86
+ }
87
+ }
88
+ wp_die();
89
+ }
90
+
91
+ add_action('wp_ajax_bps_mscan_scan_estimate', 'bpsPro_mscan_scan_estimate');
92
+
93
+ class BPSMScanRecursiveFilterIterator extends RecursiveFilterIterator {
94
+
95
+ public function accept() {
96
+ $MScan_options = get_option('bulletproof_security_options_MScan');
97
+ $excluded_dirs = array();
98
+
99
+ foreach ( $MScan_options['bps_mscan_dirs'] as $key => $value ) {
100
+ if ( $value == '' ) {
101
+ $excluded_dirs[] = $key;
102
+ }
103
+ }
104
+ return !in_array( $this->getSubPathName(), $excluded_dirs, true );
105
+ }
106
+ }
107
+
108
+ function bpsPro_mscan_calculate_scan_time($mstime) {
109
+ global $wp_version, $wpdb;
110
+
111
+ $time_start = microtime( true );
112
+
113
+ $MScan_options = get_option('bulletproof_security_options_MScan');
114
+ $mstime = $MScan_options['mscan_max_time_limit'];
115
+
116
+ set_time_limit($mstime);
117
+ ini_set('max_execution_time', $mstime);
118
+ $timeNow = time();
119
+ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
120
+ $timestamp = date_i18n(get_option('date_format'), strtotime("11/15-1976")) . ' ' . date_i18n(get_option('time_format'), $timeNow + $gmt_offset);
121
+ $mscan_log = WP_CONTENT_DIR . '/bps-backup/logs/mscan_log.txt';
122
+ $MScanStop = WP_CONTENT_DIR . '/bps-backup/master-backups/mscan-stop.txt';
123
+
124
+ $handle = fopen( $mscan_log, 'a' );
125
+
126
+ fwrite( $handle, "\r\n[MScan Scan Start: $timestamp]\r\n" );
127
+ fwrite( $handle, "Scan Time Calculation: Start Count total files to scan.\r\n" );
128
+
129
+ if ( $MScan_options['mscan_scan_skipped_files'] == 'On' ) {
130
+ fwrite( $handle, "Scan Time Calculation: Skipped File Scan is set to On. Only Skipped files will be scanned.\r\n" );
131
+ } else {
132
+ fwrite( $handle, "Scan Time Calculation: Max File Size Limit to Scan: ".$MScan_options['mscan_max_file_size']." KB\r\n" );
133
+ }
134
+
135
+ $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
136
+ $source = $_SERVER['DOCUMENT_ROOT'];
137
+
138
+ if ( is_dir($source) ) {
139
+
140
+ $dirItr = new RecursiveDirectoryIterator($source);
141
+ $filterItr = new BPSMScanRecursiveFilterIterator($dirItr);
142
+ $iterator = new RecursiveIteratorIterator($filterItr, RecursiveIteratorIterator::SELF_FIRST);
143
+
144
+ $image_file_path_array = array();
145
+ $file_path_array = array();
146
+ $wp_core_file_array = array();
147
+ $total_website_files_array = array();
148
+ $skipped_image_file_path_array = array();
149
+ $skipped_nonimage_file_path_array = array();
150
+
151
+ $wp_core_root_file_array = array( 'wp-activate.php', 'wp-blog-header.php', 'wp-comments-post.php', 'wp-config-sample.php', 'wp-cron.php', 'wp-links-opml.php', 'wp-load.php', 'wp-login.php', 'wp-mail.php', 'wp-settings.php', 'wp-signup.php', 'wp-trackback.php' );
152
+
153
+ foreach ( $iterator as $files ) {
154
+
155
+ if ( $files->isFile() ) {
156
+
157
+ if ( file_get_contents($MScanStop) != 'run' ) {
158
+ fwrite( $handle, "Scan Time Calculation: MScan Scanning was Stopped\r\n" );
159
+ fclose($handle);
160
+ exit();
161
+
162
+ } else {
163
+
164
+ if ( ! preg_match( '/(.*)((\/|\\\)'.$bps_wpcontent_dir.'(\/|\\\)bps-backup(\/|\\\))(.*)/', $files->getPathname() ) ) {
165
+
166
+ $total_website_files_array[] = $files->getPathname();
167
+
168
+ if ( $files->getFilename() == 'index.php' ) {
169
+ $check_string1 = file_get_contents( $files->getPath() . '/index.php' );
170
+ }
171
+
172
+ if ( $files->getFilename() == 'readme.html' ) {
173
+ $check_string2 = file_get_contents( $files->getPath() . '/readme.html' );
174
+ }
175
+
176
+ if ( $files->getFilename() == 'xmlrpc.php' ) {
177
+ $check_string3 = file_get_contents( $files->getPath() . '/xmlrpc.php' );
178
+ }
179
+
180
+ $pos1 = strpos( $check_string1, "define('WP_USE_THEMES" );
181
+ $pos2 = strpos( $check_string2, "https://wordpress.org/" );
182
+ $pos3 = strpos( $check_string3, "XML-RPC protocol support for WordPress" );
183
+
184
+ if ( $MScan_options['mscan_exclude_dirs'] != '' ) {
185
+
186
+ $mscan_exclude_dirs = str_replace('\\\\', '\\', $MScan_options['mscan_exclude_dirs']);
187
+ $mscan_exclude_dirs_array = explode( "\n", $mscan_exclude_dirs );
188
+
189
+ $mscan_exclude_dirs_regex_array = array();
190
+
191
+ foreach ( $mscan_exclude_dirs_array as $mscan_exclude_dir ) {
192
+ $search_array = array( "\n", "\r\n", "\r", '\\', '/', '[', ']', '(', ')', '+', ' ');
193
+ $replace_array = array( "", "", "", '\\\\', '\/', '\[', '\]', '\(', '\)', '\+', '\s');
194
+ $mscan_exclude_dir = str_replace( $search_array, $replace_array, $mscan_exclude_dir );
195
+ $mscan_exclude_dirs_regex_array[] = '(.*)'.$mscan_exclude_dir.'(.*)|';
196
+ }
197
+
198
+ $glue = implode("", $mscan_exclude_dirs_regex_array);
199
+ $mscan_exclude_dir_regex = preg_replace( '/\|$/', '', $glue);
200
+ $exclude_dirs_pattern = '/('.$mscan_exclude_dir_regex.')/';
201
+
202
+ } else {
203
+ $exclude_dirs_pattern = '/(\/bps-no-dirs\/)/';
204
+ }
205
+
206
+ $core_pattern = '/(.*)((\/|\\\)wp-admin(\/|\\\)|(\/|\\\)wp-includes(\/|\\\))(.*)/';
207
+
208
+ if ( preg_match( $core_pattern, $files->getPathname() ) || $files->getFilename() == 'index.php' && $pos1 !== false || $files->getFilename() == 'readme.html' && $pos2 !== false || $files->getFilename() == 'xmlrpc.php' && $pos3 !== false || in_array($files->getFilename(), $wp_core_root_file_array) ) {
209
+ $wp_core_file_array[] = $files->getPathname();
210
+ }
211
+
212
+ if ( ! preg_match( $core_pattern, $files->getPathname() ) && ! in_array($files->getFilename(), $wp_core_root_file_array) && ! preg_match( $exclude_dirs_pattern, $files->getPathname() ) ) {
213
+
214
+ $ext = pathinfo( strtolower($files->getPathname()), PATHINFO_EXTENSION );
215
+
216
+ if ( $files->getSize() <= $MScan_options['mscan_max_file_size'] * 1024 ) {
217
+
218
+ if ( $MScan_options['mscan_scan_images'] == 'On' ) {
219
+
220
+ if ( $ext == 'png' || $ext == 'gif' || $ext == 'bmp' || $ext == 'jpg' || $ext == 'jpeg' || $ext == 'tif' || $ext == 'tiff' ) {
221
+ $image_file_path_array[] = $files->getPathname();
222
+ }
223
+ }
224
+
225
+ if ( $ext == 'htm' || $ext == 'html' || $ext == 'htaccess' || $ext == 'js' || $ext == 'php' || $ext == 'phps' || $ext == 'php5' || $ext == 'php4' || $ext == 'php3' || $ext == 'phtml' || $ext == 'phpt' || $ext == 'shtm' || $ext == 'shtml' || $ext == 'xhtml' ) {
226
+ $file_path_array[] = $files->getPathname();
227
+ }
228
+
229
+ } else {
230
+
231
+ if ( $MScan_options['mscan_scan_images'] == 'On' ) {
232
+
233
+ if ( $ext == 'png' || $ext == 'gif' || $ext == 'bmp' || $ext == 'jpg' || $ext == 'jpeg' || $ext == 'tif' || $ext == 'tiff' ) {
234
+ $skipped_image_file_path_array[] = $files->getPathname();
235
+ }
236
+ }
237
+
238
+ if ( $ext == 'htm' || $ext == 'html' || $ext == 'htaccess' || $ext == 'js' || $ext == 'php' || $ext == 'phps' || $ext == 'php5' || $ext == 'php4' || $ext == 'php3' || $ext == 'phtml' || $ext == 'phpt' || $ext == 'shtm' || $ext == 'shtml' || $ext == 'xhtml' ) {
239
+ $skipped_nonimage_file_path_array[] = $files->getPathname();
240
+ }
241
+ }
242
+ }
243
+ }
244
+ }
245
+ }
246
+ }
247
+
248
+ ## Testing Time Loop: add 20 seconds to force a Time Loop
249
+ //sleep(20);
250
+
251
+ $skipped_file_path_array = array_merge($skipped_image_file_path_array, $skipped_nonimage_file_path_array);
252
+
253
+ $MStable = $wpdb->prefix . "bpspro_mscan";
254
+
255
+ $ignored_rows = 'ignore';
256
+ $MScanIgnoreRows = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $MStable WHERE mscan_ignored = %s", $ignored_rows ) );
257
+
258
+ $mscan_file_ignore_array = array();
259
+
260
+ if ( $wpdb->num_rows != 0 ) {
261
+
262
+ foreach ( $MScanIgnoreRows as $row ) {
263
+ $mscan_file_ignore_array[] = $row->mscan_path;
264
+ }
265
+ }
266
+
267
+ foreach ( $wp_core_file_array as $key => $value ) {
268
+
269
+ if ( preg_match( $exclude_dirs_pattern, $value ) ) {
270
+ unset($wp_core_file_array[$key]);
271
+ }
272
+
273
+ if ( in_array( $value, $mscan_file_ignore_array ) ) {
274
+ unset($wp_core_file_array[$key]);
275
+ }
276
+ }
277
+
278
+ foreach ( $file_path_array as $key => $value ) {
279
+
280
+ if ( preg_match( '/index\.php/', $value ) ) {
281
+ $check_string4 = file_get_contents( $value );
282
+ $pos4 = strpos( $check_string4, "define('WP_USE_THEMES" );
283
+ if ( $pos4 !== false ) {
284
+ unset($file_path_array[$key]);
285
+ }
286
+ }
287
+
288
+ if ( preg_match( '/readme\.html/', $value ) ) {
289
+ $check_string5 = file_get_contents( $value );
290
+ $pos5 = strpos( $check_string5, "https://wordpress.org/" );
291
+ if ( $pos5 !== false ) {
292
+ unset($file_path_array[$key]);
293
+ }
294
+ }
295
+
296
+ if ( preg_match( '/xmlrpc\.php/', $value ) ) {
297
+ $check_string6 = file_get_contents( $value );
298
+ $pos6 = strpos( $check_string6, "XML-RPC protocol support for WordPress" );
299
+ if ( $pos6 !== false ) {
300
+ unset($file_path_array[$key]);
301
+ }
302
+ }
303
+
304
+ if ( in_array( $value, $mscan_file_ignore_array ) ) {
305
+ unset($file_path_array[$key]);
306
+ }
307
+ }
308
+
309
+ foreach ( $image_file_path_array as $key => $value ) {
310
+
311
+ if ( in_array( $value, $mscan_file_ignore_array ) ) {
312
+ unset($image_file_path_array[$key]);
313
+ }
314
+ }
315
+
316
+ foreach ( $skipped_file_path_array as $key => $value ) {
317
+
318
+ if ( in_array( $value, $mscan_file_ignore_array ) ) {
319
+ unset($skipped_file_path_array[$key]);
320
+ }
321
+ }
322
+
323
+ $file_array_merge = array_merge( $wp_core_file_array, $file_path_array, $image_file_path_array );
324
+ $total_file_count = count($total_website_files_array);
325
+ $total_wp_core_files = count($wp_core_file_array);
326
+ $total_non_image_files = count($file_path_array);
327
+ $total_image_files = count($image_file_path_array);
328
+ $total_skipped_files = count($skipped_file_path_array);
329
+ $total_scan_files = count($file_array_merge);
330
+
331
+ if ( $MScan_options['mscan_scan_skipped_files'] == 'On' ) {
332
+
333
+ fwrite( $handle, "Scan Time Calculation: Total Skipped Files to Scan: ".$total_skipped_files."\r\n" );
334
+
335
+ } else {
336
+
337
+ fwrite( $handle, "Scan Time Calculation: Total Website Files: ".$total_file_count."\r\n" );
338
+ fwrite( $handle, "Scan Time Calculation: Total Skipped Files (larger than ".$MScan_options['mscan_max_file_size']." KB): ".$total_skipped_files."\r\n" );
339
+ fwrite( $handle, "Scan Time Calculation: Total WP Core Files to Scan: ".$total_wp_core_files."\r\n" );
340
+ fwrite( $handle, "Scan Time Calculation: Total non-Image Files to Scan: ".$total_non_image_files."\r\n" );
341
+ fwrite( $handle, "Scan Time Calculation: Total Image Files to Scan: ".$total_image_files."\r\n" );
342
+ fwrite( $handle, "Scan Time Calculation: Total Files to Scan (WP Core + non-Image + Image): ".$total_scan_files."\r\n" );
343
+ }
344
+
345
+ if ( $MScan_options['bps_mscan_dirs'] != '' ) {
346
+
347
+ $mscan_dirs_array = array();
348
+
349
+ foreach ( $MScan_options['bps_mscan_dirs'] as $key => $value ) {
350
+ if ( $value == '1' ) {
351
+ $mscan_dirs_array[] = $key;
352
+ }
353
+ }
354
+
355
+ $mscan_dirs = implode( ', ', $mscan_dirs_array );
356
+ fwrite( $handle, "Scan Time Calculation: Hosting Account Root Folders to Scan: ".$mscan_dirs."\r\n" );
357
+ }
358
+
359
+ $wp_hashes_file = WP_CONTENT_DIR . '/bps-backup/wp-hashes/wp-hashes.php';
360
+ $wp_hash_time = '0';
361
+
362
+ if ( file_exists($wp_hashes_file) ) {
363
+ $check_string = file_get_contents($wp_hashes_file);
364
+
365
+ if ( ! strpos( $check_string, "WordPress $wp_version Hashes" ) ) {
366
+ $wp_hash_time = '30';
367
+ }
368
+ }
369
+
370
+ ## Scan Time Estimate Calculations: see notes in malware-scanner.php file.
371
+ ## Base Scan Time: Not using this now. PHP native caching - APC, Zend, etc.
372
+ if ( $MScan_options['mscan_scan_skipped_files'] == 'On' ) {
373
+
374
+ $filesize_array = array();
375
+
376
+ foreach ( $skipped_file_path_array as $file ) {
377
+
378
+ if ( file_exists($file) ) {
379
+ $filesize_array[] = filesize($file);
380
+ }
381
+ }
382
+
383
+ $base_scan_time = '20';
384
+ $total_filesize_bytes = array_sum($filesize_array);
385
+ $mbytes = number_format( $total_filesize_bytes / ( 1024 * 1024 ), 2 );
386
+ $skipped_files_time_math = $mbytes * 1.15;
387
+ $total_time_estimate = round($skipped_files_time_math);
388
+
389
+ //$bps_mscan_time_remaining = time() + $base_scan_time + $wp_hash_time + $skipped_files_time;
390
+ $bps_mscan_time_remaining = time() + $wp_hash_time + $total_time_estimate;
391
+
392
+ //fwrite( $handle, "Scan Time Calculation: Base Scan Time (PHP Native cache variance): +".$base_scan_time." Seconds\r\n" );
393
+ fwrite( $handle, "Scan Time Calculation: Total Size of all Skipped Files: ".$mbytes." MB\r\n" );
394
+ fwrite( $handle, "Scan Time Calculation: WP Hash Time Estimate: +".$wp_hash_time." Seconds\r\n" );
395
+ fwrite( $handle, "Scan Time Calculation: Skipped Files Time Estimate: ".$total_time_estimate." Seconds\r\n" );
396
+
397
+ } else {
398
+
399
+ $base_scan_time = '20';
400
+ $wp_core_files_time_math = $total_wp_core_files / 400;
401
+ $wp_core_files_time = round($wp_core_files_time_math);
402
+ $non_image_files_time_math = $total_non_image_files / 27;
403
+ $non_image_files_time = round($non_image_files_time_math);
404
+ $image_files_time_math = $total_image_files / 34;
405
+ $image_files_time = round($image_files_time_math);
406
+
407
+ $rows = 0;
408
+ $size = 0;
409
+ $result = $wpdb->get_results( $wpdb->prepare( "SHOW TABLE STATUS WHERE Rows >= %d", $rows ) );
410
+
411
+ foreach ( $result as $data ) {
412
+ $size += $data->Data_length + $data->Index_length;
413
+ }
414
+
415
+ $kbytes = $size / 1024;
416
+ $db_size_time_math = $kbytes / 4000;
417
+ $db_size_time = round($db_size_time_math);
418
+
419
+ //$bps_mscan_time_remaining = time() + $base_scan_time + $wp_hash_time + $wp_core_files_time + $non_image_files_time + $image_files_time + $db_size_time;
420
+ $bps_mscan_time_remaining = time() + $wp_hash_time + $wp_core_files_time + $non_image_files_time + $image_files_time + $db_size_time;
421
+ $total_time_estimate = $wp_hash_time + $wp_core_files_time + $non_image_files_time + $image_files_time + $db_size_time;
422
+
423
+ //fwrite( $handle, "Scan Time Calculation: Base Scan Time (PHP Native cache variance): +".$base_scan_time." Seconds\r\n" );
424
+ fwrite( $handle, "Scan Time Calculation: WP Hash Time Estimate: +".$wp_hash_time." Seconds\r\n" );
425
+ fwrite( $handle, "Scan Time Calculation: WP Core Files Time Estimate: +".$wp_core_files_time." Seconds\r\n" );
426
+ fwrite( $handle, "Scan Time Calculation: non-Image Files Time Estimate: +".$non_image_files_time." Seconds\r\n" );
427
+ fwrite( $handle, "Scan Time Calculation: Image Files Time Estimate: +".$image_files_time." Seconds\r\n" );
428
+ fwrite( $handle, "Scan Time Calculation: DB Size Time Estimate: +".$db_size_time." Seconds\r\n" );
429
+ fwrite( $handle, "Scan Time Calculation: Scan Time Estimate: ".$total_time_estimate." Seconds\r\n" );
430
+ }
431
+
432
+ $MScan_status = get_option('bulletproof_security_options_MScan_status');
433
+
434
+ $MScan_status_db = array(
435
+ 'bps_mscan_time_start' => time(),
436
+ 'bps_mscan_time_stop' => $MScan_status['bps_mscan_time_stop'],
437
+ 'bps_mscan_time_end' => $MScan_status['bps_mscan_time_end'],
438
+ 'bps_mscan_time_remaining' => $bps_mscan_time_remaining,
439
+ 'bps_mscan_status' => '2',
440
+ 'bps_mscan_last_scan_timestamp' => $MScan_status['bps_mscan_last_scan_timestamp'],
441
+ 'bps_mscan_total_time' => $total_time_estimate,
442
+ 'bps_mscan_total_website_files' => $total_file_count,
443
+ 'bps_mscan_total_wp_core_files' => $total_wp_core_files,
444
+ 'bps_mscan_total_non_image_files' => $total_non_image_files,
445
+ 'bps_mscan_total_image_files' => $total_image_files,
446
+ 'bps_mscan_total_all_scannable_files' => $total_scan_files,
447
+ 'bps_mscan_total_skipped_files' => $total_skipped_files,
448
+ 'bps_mscan_total_suspect_files' => $MScan_status['bps_mscan_total_suspect_files'],
449
+ 'bps_mscan_suspect_skipped_files' => $MScan_status['bps_mscan_suspect_skipped_files'],
450
+ 'bps_mscan_total_suspect_db' => $MScan_status['bps_mscan_total_suspect_db'],
451
+ 'bps_mscan_total_ignored_files' => $MScan_status['bps_mscan_total_ignored_files']
452
+ );
453
+
454
+ foreach( $MScan_status_db as $key => $value ) {
455
+ update_option('bulletproof_security_options_MScan_status', $MScan_status_db);
456
+ }
457
+ }
458
+
459
+ $time_end = microtime( true );
460
+ $file_count_time = $time_end - $time_start;
461
+
462
+ $hours = (int)($file_count_time / 60 / 60);
463
+ $minutes = (int)($file_count_time / 60) - $hours * 60;
464
+ $seconds = (int)$file_count_time - $hours * 60 * 60 - $minutes * 60;
465
+ $hours_format = $hours == 0 ? "00" : $hours;
466
+ $minutes_format = $minutes == 0 ? "00" : ($minutes < 10 ? "0".$minutes : $minutes);
467
+ $seconds_format = $seconds == 0 ? "00" : ($seconds < 10 ? "0".$seconds : $seconds);
468
+
469
+ $file_count_log = 'Scan Time Calculation Completion Time: '. $hours_format . ':'. $minutes_format . ':' . $seconds_format;
470
+
471
+ fwrite( $handle, "$file_count_log\r\n" );
472
+ fclose($handle);
473
+ return true;
474
+ }
475
+
476
+ // Download the WordPress zip file version based on the current WP version installed.
477
+ // Ensure that the WP zip file is not downloaded repeatedly due to an error, issue or problem.
478
+ function bpsPro_wp_zip_download($mstime) {
479
+ global $wp_version;
480
+
481
+ $time_start = microtime( true );
482
+
483
+ set_time_limit($mstime);
484
+ $timeNow = time();
485
+ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
486
+ $timestamp = date_i18n(get_option('date_format'), strtotime("11/15-1976")) . ' ' . date_i18n(get_option('time_format'), $timeNow + $gmt_offset);
487
+ $mscan_log = WP_CONTENT_DIR . '/bps-backup/logs/mscan_log.txt';
488
+
489
+ $handle = fopen( $mscan_log, 'a' );
490
+
491
+ $wp_hashes_dir = WP_CONTENT_DIR . '/bps-backup/wp-hashes';
492
+
493
+ if ( ! is_dir( $wp_hashes_dir ) ) {
494
+
495
+ fwrite( $handle, "WP Zip File Download Error: The $wp_hashes_dir folder does not exist.\r\n" );
496
+ fwrite( $handle, "Troubleshooting: Check that the Ownership or folder permissions for the /bps-backup/ folder. The /bps-backup/ folder should have 755 or 705 permissions and the Owner of the /bps-backup/ folder should be the same Owner as all of your other website folders.\r\n" );
497
+ fclose($handle);
498
+ return false;
499
+ }
500
+
501
+ $wp_zip_file = 'wordpress-'. $wp_version . '.zip';
502
+ $local_zip_file = WP_CONTENT_DIR . '/bps-backup/wp-hashes/' . $wp_zip_file;
503
+
504
+ if ( file_exists($local_zip_file) ) {
505
+ fwrite( $handle, "WP Zip File Download: The $wp_zip_file already exists and was not downloaded again.\r\n" );
506
+ fclose($handle);
507
+ return true;
508
+ }
509
+
510
+ $wp_hashes_file = WP_CONTENT_DIR . '/bps-backup/wp-hashes/wp-hashes.php';
511
+
512
+ if ( file_exists($wp_hashes_file) ) {
513
+ $check_string = file_get_contents($wp_hashes_file);
514
+
515
+ if ( strpos( $check_string, "WordPress $wp_version Hashes" ) ) {
516
+ fwrite( $handle, "WP Zip File Download: The wp-hashes.php file already exists for WordPress $wp_version. The $wp_zip_file was not downloaded again.\r\n" );
517
+ fclose($handle);
518
+ return true;
519
+ }
520
+ }
521
+
522
+ fwrite( $handle, "WP Zip File Download: Start $wp_zip_file zip file download.\r\n" );
523
+
524
+ $wp_zip_url = 'https://wordpress.org/wordpress-' . $wp_version . '.zip';
525
+ $zip_download = fopen($local_zip_file, 'w+');
526
+
527
+ $ch = curl_init();
528
+ curl_setopt($ch, CURLOPT_URL, $wp_zip_url);
529
+ curl_setopt($ch, CURLOPT_FAILONERROR, true);
530
+ curl_setopt($ch, CURLOPT_HEADER, false);
531
+ curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
532
+ curl_setopt($ch, CURLOPT_AUTOREFERER, true);
533
+ curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
534
+ curl_setopt($ch, CURLOPT_TIMEOUT, 60);
535
+ curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
536
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
537
+ curl_setopt($ch, CURLOPT_FILE, $zip_download);
538
+
539
+ if ( curl_exec($ch) === false ) {
540
+ fwrite( $handle, "WP Zip File Download cURL Error: Unable to download the WordPress zip file from $wp_zip_url\r\n" );
541
+ fwrite( $handle, "Manual Solution: You will need to manually download the WordPress zip file to your computer, unzip it and then use FTP and upload the unzipped /wordpress/ folder to this BPS folder: $wp_hashes_dir\r\n" . curl_error($ch) . "\r\n" );
542
+
543
+ }
544
+
545
+ curl_close($ch);
546
+
547
+ $time_end = microtime( true );
548
+ $download_time = $time_end - $time_start;
549
+
550
+ $hours = (int)($download_time / 60 / 60);
551
+ $minutes = (int)($download_time / 60) - $hours * 60;
552
+ $seconds = (int)$download_time - $hours * 60 * 60 - $minutes * 60;
553
+ $hours_format = $hours == 0 ? "00" : $hours;
554
+ $minutes_format = $minutes == 0 ? "00" : ($minutes < 10 ? "0".$minutes : $minutes);
555
+ $seconds_format = $seconds == 0 ? "00" : ($seconds < 10 ? "0".$seconds : $seconds);
556
+
557
+ $download_time_log = 'WP Zip File Download Completion Time: '. $hours_format . ':'. $minutes_format . ':' . $seconds_format;
558
+
559
+ fwrite( $handle, "$download_time_log\r\n" );
560
+ fclose($handle);
561
+ return true;
562
+ }
563
+
564
+ // Extract the downloaded WordPress zip file.
565
+ // The extracted WordPress folder name is: /wordpress/
566
+ function bpsPro_wp_zip_extractor() {
567
+ global $wp_version;
568
+
569
+ $time_start = microtime( true );
570
+
571
+ $timeNow = time();
572
+ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
573
+ $timestamp = date_i18n(get_option('date_format'), strtotime("11/15-1976")) . ' ' . date_i18n(get_option('time_format'), $timeNow + $gmt_offset);
574
+ $mscan_log = WP_CONTENT_DIR . '/bps-backup/logs/mscan_log.txt';
575
+
576
+ $handle = fopen( $mscan_log, 'a' );
577
+
578
+ $wp_hashes_file = WP_CONTENT_DIR . '/bps-backup/wp-hashes/wp-hashes.php';
579
+
580
+ if ( file_exists($wp_hashes_file) ) {
581
+ $check_string = file_get_contents($wp_hashes_file);
582
+
583
+ if ( strpos( $check_string, "WordPress $wp_version Hashes" ) ) {
584
+ fwrite( $handle, "WP Zip File Extraction: The wp-hashes.php file already exists for WordPress $wp_version. The wordpress-$wp_version.zip file does not need to be extracted.\r\n" );
585
+ fclose($handle);
586
+ return true;
587
+ }
588
+ }
589
+
590
+ $wp_folder = WP_CONTENT_DIR . '/bps-backup/wp-hashes/wordpress';
591
+ $wp_hashes_dir = WP_CONTENT_DIR . '/bps-backup/wp-hashes';
592
+ $wp_zip_file = 'wordpress-'. $wp_version . '.zip';
593
+ $local_zip_file = WP_CONTENT_DIR . '/bps-backup/wp-hashes/' . $wp_zip_file;
594
+
595
+ if ( class_exists('ZipArchive') ) {
596
+
597
+ fwrite( $handle, "WP Zip File Extraction: Start ZipArchive zip file extraction.\r\n" );
598
+
599
+ $WPZip = new ZipArchive;
600
+
601
+ if ( $WPZip->open( $local_zip_file ) === true ) {
602
+
603
+ $WPZip->extractTo( WP_CONTENT_DIR . '/bps-backup/wp-hashes/' );
604
+ $WPZip->close();
605
+
606
+ $time_end = microtime( true );
607
+ $zip_extract_time = $time_end - $time_start;
608
+
609
+ $hours = (int)($zip_extract_time / 60 / 60);
610
+ $minutes = (int)($zip_extract_time / 60) - $hours * 60;
611
+ $seconds = (int)$zip_extract_time - $hours * 60 * 60 - $minutes * 60;
612
+ $hours_format = $hours == 0 ? "00" : $hours;
613
+ $minutes_format = $minutes == 0 ? "00" : ($minutes < 10 ? "0".$minutes : $minutes);
614
+ $seconds_format = $seconds == 0 ? "00" : ($seconds < 10 ? "0".$seconds : $seconds);
615
+
616
+ $zip_extract_time_log = 'WP Zip File Extraction Completion Time: '. $hours_format . ':'. $minutes_format . ':' . $seconds_format;
617
+
618
+ fwrite( $handle, "$zip_extract_time_log\r\n" );
619
+ fclose($handle);
620
+ return true;
621
+
622
+ } else {
623
+
624
+ if ( ! is_dir($wp_folder) ) {
625
+
626
+ fwrite( $handle, "WP Zip File Extraction ZipArchive Error: Unable to unzip the WordPress zip file: $local_zip_file.\r\n" );
627
+ fwrite( $handle, "Manual Solution: You will need to manually download the WordPress zip file to your computer, unzip it and then use FTP and upload the unzipped /wordpress/ folder to this BPS folder: $wp_hashes_dir.\r\n" );
628
+ fclose($handle);
629
+ return false;
630
+ }
631
+ }
632
+
633
+ } else {
634
+
635
+ fwrite( $handle, "WP Zip File Extraction: Start PclZip zip file extraction.\r\n" );
636
+
637
+ define( 'PCLZIP_TEMPORARY_DIR', WP_CONTENT_DIR . '/bps-backup/wp-hashes/' );
638
+ require_once( ABSPATH . 'wp-admin/includes/class-pclzip.php');
639
+
640
+ if ( ini_get( 'mbstring.func_overload' ) && function_exists( 'mb_internal_encoding' ) ) {
641
+ $previous_encoding = mb_internal_encoding();
642
+ mb_internal_encoding( 'ISO-8859-1' );
643
+ }
644
+
645
+ $archive = new PclZip( $local_zip_file );
646
+
647
+ if ( $archive->extract( PCLZIP_OPT_PATH, WP_CONTENT_DIR . '/bps-backup/wp-hashes', PCLZIP_OPT_REMOVE_PATH, WP_CONTENT_DIR . '/bps-backup/wp-hashes' ) ) {
648
+
649
+ $time_end = microtime( true );
650
+ $zip_extract_time = $time_end - $time_start;
651
+
652
+ $hours = (int)($zip_extract_time / 60 / 60);
653
+ $minutes = (int)($zip_extract_time / 60) - $hours * 60;
654
+ $seconds = (int)$zip_extract_time - $hours * 60 * 60 - $minutes * 60;
655
+ $hours_format = $hours == 0 ? "00" : $hours;
656
+ $minutes_format = $minutes == 0 ? "00" : ($minutes < 10 ? "0".$minutes : $minutes);
657
+ $seconds_format = $seconds == 0 ? "00" : ($seconds < 10 ? "0".$seconds : $seconds);
658
+
659
+ $zip_extract_time_log = 'WP Zip File Extraction Completion Time: '. $hours_format . ':'. $minutes_format . ':' . $seconds_format;
660
+
661
+ fwrite( $handle, "$zip_extract_time_log\r\n" );
662
+ fclose($handle);
663
+ return true;
664
+
665
+ } else {
666
+
667
+ if ( ! is_dir($wp_folder) ) {
668
+
669
+ fwrite( $handle, "WP Zip File Extraction PclZip Error: Unable to unzip the WordPress zip file: $local_zip_file.\r\n" );
670
+ fwrite( $handle, "Manual Solution: You will need to manually download the WordPress zip file to your computer, unzip it and then use FTP and upload the unzipped /wordpress/ folder to this BPS folder: $wp_hashes_dir.\r\n" );
671
+ fclose($handle);
672
+ return false;
673
+ }
674
+ }
675
+ }
676
+ }
677
+
678
+ // Create the wp-hashes.php file array, which contains all MD5 file hashes for all current WP Core files.
679
+ // Cleanup: Deletes the wp zip file and the extracted /wordpress/ folder.
680
+ function bpsPro_wp_hash_maker() {
681
+ global $wp_version;
682
+
683
+ $time_start = microtime( true );
684
+
685
+ $timeNow = time();
686
+ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
687
+ $timestamp = date_i18n(get_option('date_format'), strtotime("11/15-1976")) . ' ' . date_i18n(get_option('time_format'), $timeNow + $gmt_offset);
688
+ $mscan_log = WP_CONTENT_DIR . '/bps-backup/logs/mscan_log.txt';
689
+
690
+ $handle = fopen( $mscan_log, 'a' );
691
+
692
+ if ( ! is_array( spl_classes() ) ) {
693
+ fwrite( $handle, "WP MD5 File Hash Maker Error: The Standard PHP Library (SPL) is Not available/installed. Unable to create WP MD5 file hashes.\r\n" );
694
+ fwrite( $handle, "Solution: Contact your web host and ask them to install the Standard PHP Library (SPL) on your server.\r\n" );
695
+ fclose($handle);
696
+ return false;
697
+ }
698
+
699
+ $wp_hashes_file = WP_CONTENT_DIR . '/bps-backup/wp-hashes/wp-hashes.php';
700
+
701
+ if ( ! file_exists( $wp_hashes_file ) ) {
702
+ fwrite( $handle, "WP MD5 File Hash Maker Error: The $wp_hashes_file file does not exist.\r\n" );
703
+ fwrite( $handle, "Troubleshooting: Check the Ownership or folder permissions for the /bps-backup/wp-hashes/ folder. The /bps-backup/wp-hashes/ folder should have 755 or 705 permissions and the Owner of the /bps-backup/wp-hashes/ folder should be the same Owner as all of your other website folders.\r\n" );
704
+ fclose($handle);
705
+ return false;
706
+ }
707
+
708
+ if ( file_exists($wp_hashes_file) ) {
709
+ $check_string = file_get_contents($wp_hashes_file);
710
+
711
+ if ( strpos( $check_string, "WordPress $wp_version Hashes" ) ) {
712
+ fwrite( $handle, "WP MD5 File Hash Maker: The wp-hashes.php file already exists for WordPress $wp_version. The wp-hashes.php file was not created again.\r\n" );
713
+ fclose($handle);
714
+ return true;
715
+ }
716
+ }
717
+
718
+ $str1 = WP_CONTENT_DIR . '/bps-backup/wp-hashes/wordpress/';
719
+ $str2 = WP_CONTENT_DIR . '/bps-backup/wp-hashes/wordpress\\';
720
+ $str3 = WP_CONTENT_DIR . '\bps-backup\wp-hashes\wordpress\\';
721
+
722
+ $path = WP_CONTENT_DIR . '/bps-backup/wp-hashes/wordpress';
723
+
724
+ if ( ! is_dir($path) ) {
725
+
726
+ fwrite( $handle, "WP MD5 File Hash Maker Error: The $path folder does not exist.\r\n" );
727
+ fwrite( $handle, "Troubleshooting: Check the Ownership or folder permissions for the /bps-backup/wp-hashes/ folder. The /bps-backup/wp-hashes/ folder should have 755 or 705 permissions and the Owner of the /bps-backup/wp-hashes/ folder should be the same Owner as all of your other website folders.\r\n" );
728
+ fclose($handle);
729
+ return false;
730
+ }
731
+
732
+ fwrite( $handle, "WP MD5 File Hash Maker & Cleanup: Start creating the wp-hashes.php file.\r\n" );
733
+
734
+ $objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::SELF_FIRST);
735
+ $filePath = array();
736
+
737
+ foreach ( $objects as $files ) {
738
+ if ( $files->isFile() ) {
739
+ $filePath[] = str_replace( array( $str1, $str2, $str3 ), "", $files->getPathname() ). '\' => \'' . md5_file($files->getPathname());
740
+ }
741
+ }
742
+
743
+ $handleH = fopen( $wp_hashes_file, 'wb' );
744
+ fwrite( $handleH, "<?php\n" );
745
+ fwrite( $handleH, "// WordPress $wp_version Hashes\n" );
746
+ fwrite( $handleH, "\$wp_hashes = array(\n" );
747
+
748
+ foreach ( $filePath as $key => $value ) {
749
+ fwrite( $handleH, "'" . $value . "', " . "\n" );
750
+ }
751
+
752
+ fwrite( $handleH, ");\n" );
753
+ fwrite( $handleH, "?>" );
754
+ fclose( $handleH );
755
+
756
+ fwrite( $handle, "WP MD5 File Hash Maker & Cleanup: wp-hashes.php file created.\r\n" );
757
+ fwrite( $handle, "WP MD5 File Hash Maker & Cleanup: Start /bps-backup/wp-hashes/ folder cleanup.\r\n" );
758
+
759
+ // Cleanup
760
+ $wp_zip_file = 'wordpress-'. $wp_version . '.zip';
761
+ $local_zip_file = WP_CONTENT_DIR . '/bps-backup/wp-hashes/' . $wp_zip_file;
762
+
763
+ if ( is_dir($path) ) {
764
+
765
+ if ( file_exists($local_zip_file) ) {
766
+ unlink($local_zip_file);
767
+ }
768
+
769
+ $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::CHILD_FIRST);
770
+
771
+ foreach ( $iterator as $file ) {
772
+
773
+ if ( $file->isDir() ) {
774
+ @rmdir( $file->getRealPath() );
775
+
776
+ } else {
777
+
778
+ if ( $file->isFile() ) {
779
+ unlink( $file->getRealPath() );
780
+ }
781
+ }
782
+ }
783
+ rmdir($path);
784
+ }
785
+
786
+ $time_end = microtime( true );
787
+ $hash_maker_time = $time_end - $time_start;
788
+
789
+ $hours = (int)($hash_maker_time / 60 / 60);
790
+ $minutes = (int)($hash_maker_time / 60) - $hours * 60;
791
+ $seconds = (int)$hash_maker_time - $hours * 60 * 60 - $minutes * 60;
792
+ $hours_format = $hours == 0 ? "00" : $hours;
793
+ $minutes_format = $minutes == 0 ? "00" : ($minutes < 10 ? "0".$minutes : $minutes);
794
+ $seconds_format = $seconds == 0 ? "00" : ($seconds < 10 ? "0".$seconds : $seconds);
795
+
796
+ $hash_maker_time_log = 'WP MD5 File Hash Maker & Cleanup Completion Time: '. $hours_format . ':'. $minutes_format . ':' . $seconds_format;
797
+
798
+ fwrite( $handle, "WP MD5 File Hash Maker & Cleanup: WP $wp_zip_file file deleted.\r\n" );
799
+ fwrite( $handle, "WP MD5 File Hash Maker & Cleanup: Extracted /bps-backup/wp-hashes/wordpress/ folder deleted.\r\n" );
800
+ fwrite( $handle, "$hash_maker_time_log\r\n" );
801
+ fclose($handle);
802
+
803
+ return true;
804
+ }
805
+
806
+ // MScan: File & Database Scanner
807
+ function bpsPro_mscan_file_scan($mstime) {
808
+ global $wp_version, $wpdb;
809
+
810
+ $time_start = microtime( true );
811
+
812
+ $MScan_options = get_option('bulletproof_security_options_MScan');
813
+ $mstime = $MScan_options['mscan_max_time_limit'];
814
+
815
+ set_time_limit($mstime);
816
+ ini_set('max_execution_time', $mstime);
817
+ $timeNow = time();
818
+ $gmt_offset = get_option( 'gmt_offset' ) * 3600;
819
+ $timestamp = date_i18n(get_option('date_format'), strtotime("11/15-1976")) . ' ' . date_i18n(get_option('time_format'), $timeNow + $gmt_offset);
820
+ $mscan_log = WP_CONTENT_DIR . '/bps-backup/logs/mscan_log.txt';
821
+ $MScanStop = WP_CONTENT_DIR . '/bps-backup/master-backups/mscan-stop.txt';
822
+ $bps_wpcontent_dir = str_replace( ABSPATH, '', WP_CONTENT_DIR );
823
+ $send_email = '';
824
+
825
+ $handle = fopen( $mscan_log, 'a' );
826
+
827
+ fwrite( $handle, "Scanning Files: Start scanning files.\r\n" );
828
+
829
+ $source = $_SERVER['DOCUMENT_ROOT'];
830
+
831
+ if ( is_dir($source) ) {
832
+
833
+ $dirItr = new RecursiveDirectoryIterator($source);
834
+ $filterItr = new BPSMScanRecursiveFilterIterator($dirItr);
835
+ $iterator = new RecursiveIteratorIterator($filterItr, RecursiveIteratorIterator::SELF_FIRST);
836
+
837
+ $image_file_path_array = array();
838
+ $file_path_array = array();
839
+ $wp_core_file_array = array();
840
+ $total_website_files_array = array();
841
+ $skipped_image_file_path_array = array();
842
+ $skipped_nonimage_file_path_array = array();
843
+
844
+ $wp_core_root_file_array = array( 'wp-activate.php', 'wp-blog-header.php', 'wp-comments-post.php', 'wp-config-sample.php', 'wp-cron.php', 'wp-links-opml.php', 'wp-load.php', 'wp-login.php', 'wp-mail.php', 'wp-settings.php', 'wp-signup.php', 'wp-trackback.php' );
845
+
846
+ foreach ( $iterator as $files ) {
847
+
848
+ if ( $files->isFile() ) {
849
+
850
+ if ( file_get_contents($MScanStop) != 'run' ) {
851
+ fwrite( $handle, "Scanning Files: MScan Scanning was Stopped\r\n" );
852
+ fclose($handle);
853
+ exit();
854
+
855
+ } else {
856
+
857
+ if ( ! preg_match( '/(.*)((\/|\\\)'.$bps_wpcontent_dir.'(\/|\\\)bps-backup(\/|\\\))(.*)/', $files->getPathname() ) ) {
858
+
859
+ $total_website_files_array[] = $files->getPathname();
860
+
861
+ if ( $files->getFilename() == 'index.php' ) {
862
+ $check_string1 = file_get_contents( $files->getPath() . '/index.php' );
863
+ }
864
+
865
+ if ( $files->getFilename() == 'readme.html' ) {
866
+ $check_string2 = file_get_contents( $files->getPath() . '/readme.html' );
867
+ }
868
+
869
+ if ( $files->getFilename() == 'xmlrpc.php' ) {
870
+ $check_string3 = file_get_contents( $files->getPath() . '/xmlrpc.php' );
871
+ }
872
+
873
+ $pos1 = strpos( $check_string1, "define('WP_USE_THEMES" );
874
+ $pos2 = strpos( $check_string2, "https://wordpress.org/" );
875
+ $pos3 = strpos( $check_string3, "XML-RPC protocol support for WordPress" );
876
+
877
+ if ( $MScan_options['mscan_exclude_dirs'] != '' ) {
878
+
879
+ $mscan_exclude_dirs = str_replace('\\\\', '\\', $MScan_options['mscan_exclude_dirs']);
880
+ $mscan_exclude_dirs_array = explode( "\n", $mscan_exclude_dirs );
881
+
882
+ $mscan_exclude_dirs_regex_array = array();
883
+
884
+ foreach ( $mscan_exclude_dirs_array as $mscan_exclude_dir ) {
885
+ $search_array = array( "\n", "\r\n", "\r", '\\', '/', '[', ']', '(', ')', '+', ' ');
886
+ $replace_array = array( "", "", "", '\\\\', '\/', '\[', '\]', '\(', '\)', '\+', '\s');
887
+ $mscan_exclude_dir = str_replace( $search_array, $replace_array, $mscan_exclude_dir );
888
+ $mscan_exclude_dirs_regex_array[] = '(.*)'.$mscan_exclude_dir.'(.*)|';
889
+ }
890
+
891
+ $glue = implode("", $mscan_exclude_dirs_regex_array);
892
+ $mscan_exclude_dir_regex = preg_replace( '/\|$/', '', $glue);
893
+ $exclude_dirs_pattern = '/('.$mscan_exclude_dir_regex.')/';
894
+
895
+ } else {
896
+ $exclude_dirs_pattern = '/(\/bps-no-dirs\/)/';
897
+ }
898
+
899
+ $core_pattern = '/(.*)((\/|\\\)wp-admin(\/|\\\)|(\/|\\\)wp-includes(\/|\\\))(.*)/';
900
+
901
+ if ( preg_match( $core_pattern, $files->getPathname() ) || $files->getFilename() == 'index.php' && $pos1 !== false || $files->getFilename() == 'readme.html' && $pos2 !== false || $files->getFilename() == 'xmlrpc.php' && $pos3 !== false || in_array($files->getFilename(), $wp_core_root_file_array) ) {
902
+ $wp_core_file_array[] = $files->getPathname();
903
+ }
904
+
905
+ if ( ! preg_match( $core_pattern, $files->getPathname() ) && ! in_array($files->getFilename(), $wp_core_root_file_array) && ! preg_match( $exclude_dirs_pattern, $files->getPathname() ) ) {
906
+
907
+ $ext = pathinfo( strtolower($files->getPathname()), PATHINFO_EXTENSION );
908
+
909
+ if ( $files->getSize() <= $MScan_options['mscan_max_file_size'] * 1024 ) {
910
+
911
+ if ( $MScan_options['mscan_scan_images'] == 'On' ) {
912
+
913
+ if ( $ext == 'png' || $ext == 'gif' || $ext == 'bmp' || $ext == 'jpg' || $ext == 'jpeg' || $ext == 'tif' || $ext == 'tiff' ) {
914
+ $image_file_path_array[] = $files->getPathname();
915
+ }
916
+ }
917
+
918
+ if ( $ext == 'htm' || $ext == 'html' || $ext == 'htaccess' || $ext == 'js' || $ext == 'php' || $ext == 'phps' || $ext == 'php5' || $ext == 'php4' || $ext == 'php3' || $ext == 'phtml' || $ext == 'phpt' || $ext == 'shtm' || $ext == 'shtml' || $ext == 'xhtml' ) {
919
+ $file_path_array[] = $files->getPathname();
920
+ }
921
+
922
+ } else {
923
+
924
+ if ( $MScan_options['mscan_scan_images'] == 'On' ) {
925
+
926
+ if ( $ext == 'png' || $ext == 'gif' || $ext == 'bmp' || $ext == 'jpg' || $ext == 'jpeg' || $ext == 'tif' || $ext == 'tiff' ) {
927
+ $skipped_image_file_path_array[] = $files->getPathname();
928
+ }
929
+ }
930
+
931
+ if ( $ext == 'htm' || $ext == 'html' || $ext == 'htaccess' || $ext == 'js' || $ext == 'php' || $ext == 'phps' || $ext == 'php5' || $ext == 'php4' || $ext == 'php3' || $ext == 'phtml' || $ext == 'phpt' || $ext == 'shtm' || $ext == 'shtml' || $ext == 'xhtml' ) {
932
+ $skipped_nonimage_file_path_array[] = $files->getPathname();
933
+ }
934
+ }
935
+ }
936
+ }
937
+ }
938
+ }
939
+ }
940
+
941
+ $skipped_file_path_array = array_merge($skipped_image_file_path_array, $skipped_nonimage_file_path_array);
942
+
943
+ $MStable = $wpdb->prefix . "bpspro_mscan";
944
+ $ignored_rows = 'ignore';
945
+ $MScanIgnoreRows = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $MStable WHERE mscan_ignored = %s", $ignored_rows ) );
946
+
947
+ $mscan_file_ignore_array = array();
948
+ $mscan_db_ignore_array = array();
949
+ $mscan_db_ignore_pattern_array = array();
950
+ $mscan_ignored_total_array = array();
951
+
952
+ if ( $wpdb->num_rows != 0 ) {
953
+
954
+ foreach ( $MScanIgnoreRows as $row ) {
955
+ $mscan_file_ignore_array[] = $row->mscan_path;
956
+ $mscan_db_ignore_array[] = $row->mscan_db_pkid;
957
+ $mscan_db_ignore_pattern_array[] = $row->mscan_pattern;
958
+ $mscan_ignored_total_array[] = $row->mscan_ignored;
959
+ }
960
+ }
961
+
962
+ $safe_plugins = '/(.*)(\/|\\\)(bulletproof-security|theme-check|cforms|all-in-one-seo-pack|adminer|akismet|jetpack|wp-super-cache|bbpress|buddypress|wordpress-seo|contact-form-7|woocommerce|tinymce-advanced|limit-login-attempts|mailchimp-for-wp|wordpress-importer|google-sitemap-generator|google-analytics-for-wordpress|google-analytics-dashboard-for-wp|duplicate-post|w3-total-cache|updraftplus|really-simple-captcha|nextgen-gallery|duplicator|ml-slider|wp-smushit|googleanalytics|broken-link-checker|managewp|sucuri-scanner|gotmls|better-wp-security|all-in-one-wp-security-and-firewall|wordfence)(\/|\\\)(.*)/';
963
+
964
+ // Too general/common: \|iframe\||
965
+ $js_pattern = '/(\|MakeFrameEx\||\|yahoo_api\||\|exec\||ww=window|ww\.document|visibility:hidden|rotatingtext\[\d\]=\"I\sMISS\sYOU\"|\(!l1l&&!ll1&&!lll\)|s(\W){2,6}c(\W){2,6}r|(\'|")i(\'|")(\.|\+|\s)(\+|\'|"|\.)(\s|f)(\'|")(f|\+|\.)|scr("|\')(|\s)\+(|\s)("|\')ipt|(\\\x(\d|\w[^a])(\d[^0]|\w))+|((%\d(\w|\d){1})+%)|%\d(\w|\d){3}|\(\'hideme\'\)|\["style"\]\["visibility"\]|useragent\.match\(\/(\^(\w|\d){1,}\.\*\|)+|xtrackPageview|document\.write\(\'<\'\+x\[\d\]\+\'>|\\\u00(\d|\w){5,}|(\\\x22(.*)\\\x22)+|(\$(\d){2}){2}|(0|1){8}|_0x(\d|\w){4}|lave(\(|\))|(\(|\))lave)/i';
966
+
967
+ $htaccess_pattern = '/(RewriteCond\s%\{HTTP_REFERER\}\s(.*)[^!](google|yahoo|aol|bing|ask|facebook|twitter|msn)|ErrorDocument\s(400|403|404)\s(http|https|):|(RewriteCond\s%\{HTTP_USER_AGENT\}(.*\]\s*)){4}|RewriteRule(.*)(\w|\d){1,8}\.php\?(\w|\d){1,6}=(\$|)(\s|\d){1,3}|RewriteRule(.*)\(htm\|pdf\|jar\)|RewriteRule(.*)\{QUERY_STRING\})/i';
968
+
969
+ // old: base\'\.\(\d{1,3}\*\d{1,3}\)\.\'_de\'\.\'code
970
+ $php_pattern = '/(base64_decode\(|edoced_46esab|base\'\.\(\d{1,3}(|\s)(\*|\/)(|\s)\d{1,3}\)\.\'_de\'\.\'code|("|\')base(.*)\.(.*)64(.*)(_|\.|)decode("|\')|gzinflate\(|O0|ev("|\')(.*)\.("|\')al\(|lave(\(|\))|(\(|\))lave|preg_replace\(("|\')(\/(\w{1,}|\.\*))\/e|(\\\x(\d|\w){2,3}\\\x(\d|\w){2,3})|__halt_compiler|k2ll33d|\(!l1l&&!ll1&&!lll\)|\|iframe\||\|MakeFrameEx\||\|yahoo_api\||ww=window|ww\.document|ekibastos|scr("|\')(|\s)\+(|\s)("|\')ipt|\(\'hideme\'\)|\["style"\]\["visibility"\]|useragent\.match\(\/(\^(\w|\d){1,}\.\*\|)+|xtrackPageview|\$_COOKIE(|\s)\[str_replace\(.*\$_SERVER\[\'HTTP_HOST\'\]\)\]|\$_\w___\w|\'Windows-1251\'|document\.write\(\'<\'\+x\[\d\]\+\'>|\+(|\s)(\'|")\w(\'|")(|\s)\+|(\\\x22(.*)\\\x22)+|(|\[)_0x(\w|\d){1,6}\[\d{1,3}\]{1,2}|\\\142\\\141\\\x73|\\\u00(\d|\w){5,}|(\'|")i(\'|")(\.|\+|\s)(\+|\'|"|\.)(\s|f)(\'|")(f|\+|\.)|s(\W){2,6}c(\W){2,6}r|(\$\w{1,3}\{\d{1,2}\}(|\s)\.(|\s)){3}|\$<(\d|\w){2}>|\$_(\/\*)|%3C%21|%3Cscript%3E|%253C|(%\d(\w|\d)){5}|\$(\d|\w){1,}\[\'(\d|\w){1,}\'\]\[(\d){1,3}\](\s\.|\.)(\$|\s\$)|(\$(\w){2}\[\d{1,2}\]\.)+|(0|1){8}|_0x(\d|\w){4}|\(64\)(\s|)\.(\s|)(\'|")_(\'|"))/i';
971
+
972
+ $image_pattern = '/(<\?php|eval\(|exec\(|popen\(|create_function\(|passthru\(|shell_exec\(|proc_open\(|pcntl_exec\(|fopen\(|fputs\(|file_put_contents\(|fwrite\(|gzinflate\(|base64_decode\(|isset|\$_REQUEST|\$_FILES|\$_GET|\$_POST|\$_SERVER|\$_SESSION|system\(|\'cmd\'|__halt_compiler|<script|javascript|function|createElement|<html>|visibility:|<textarea)/i';
973
+
974
+ $js_code_match = 0;
975
+ $htaccess_code_match = 0;
976
+ $php_code_match = 0;
977
+
978
+ if ( $MScan_options['mscan_scan_skipped_files'] == 'Off' ) {
979
+
980
+ $skipped_rows = 'skipped';
981
+ $MScanSkipRows = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $MStable WHERE mscan_skipped = %s", $skipped_rows ) );
982
+
983
+ $mscan_file_skipped_path_array = array();
984
+
985
+ if ( $wpdb->num_rows != 0 ) {
986
+
987
+ foreach ( $MScanSkipRows as $row ) {
988
+ $mscan_file_skipped_path_array[] = $row->mscan_path;
989
+ }
990
+ }
991
+
992
+ if ( ! empty($skipped_file_path_array) ) {
993
+
994
+ foreach ( $skipped_file_path_array as $key => $value ) {
995
+
996
+ $ext = pathinfo( strtolower($value), PATHINFO_EXTENSION );
997
+ $file_contents = file_get_contents($value);
998
+
999
+ if ( $ext == 'js' ) {
1000
+
1001
+ if ( ! in_array($value, $mscan_file_skipped_path_array) ) {
1002
+ $insert_rows = $wpdb->insert( $MStable, array( 'mscan_status' => '', 'mscan_type' => 'js', 'mscan_path' => $value, 'mscan_pattern' => '', 'mscan_skipped' => 'skipped', 'mscan_ignored' => '', 'mscan_db_table' => '', 'mscan_db_column' => '', 'mscan_db_pkid' => '', 'mscan_time' => current_time('mysql') ) );
1003
+ }
1004
+ }
1005
+
1006
+ if ( $ext == 'htaccess' ) {
1007
+
1008
+ if ( ! in_array($value, $mscan_file_skipped_path_array) ) {
1009
+ $insert_rows = $wpdb->insert( $MStable, array( 'mscan_status' => '', 'mscan_type' => 'htaccess', 'mscan_path' => $value, 'mscan_pattern' => '', 'mscan_skipped' => 'skipped', 'mscan_ignored' => '', 'mscan_db_table' => '', 'mscan_db_column' => '', 'mscan_db_pkid' => '', 'mscan_time' => current_time('mysql') ) );
1010
+ }
1011
+ }
1012
+
1013
+ if ( $ext == 'htm' || $ext == 'html' || $ext == 'php' || $ext == 'phps' || $ext == 'php5' || $ext == 'php4' || $ext == 'php3' || $ext == 'phtml' || $ext == 'phpt' || $ext == 'shtm' || $ext == 'shtml' || $ext == 'xhtml' ) {
1014
+
1015
+ if ( ! in_array($value, $mscan_file_skipped_path_array) ) {
1016
+ $insert_rows = $wpdb->insert( $MStable, array( 'mscan_status' => '', 'mscan_type' => 'php|html|other', 'mscan_path' => $value, 'mscan_pattern' => '', 'mscan_skipped' => 'skipped', 'mscan_ignored' => '', 'mscan_db_table' => '', 'mscan_db_column' => '', 'mscan_db_pkid' => '', 'mscan_time' => current_time('mysql') ) );
1017
+ }
1018
+ }
1019
+
1020
+ if ( $MScan_options['mscan_scan_images'] == 'On' ) {
1021
+
1022
+ if ( $ext == 'png' || $ext == 'gif' || $ext == 'bmp' || $ext == 'jpg' || $ext == 'jpeg' || $ext == 'tif' || $ext == 'tiff' ) {
1023
+
1024
+ if ( ! in_array($value, $mscan_file_skipped_path_array) ) {
1025
+ $insert_rows = $wpdb->insert( $MStable, array( 'mscan_status' => '', 'mscan_type' => 'image', 'mscan_path' => $value, 'mscan_pattern' => '', 'mscan_skipped' => 'skipped', 'mscan_ignored' => '', 'mscan_db_table' => '', 'mscan_db_column' => '', 'mscan_db_pkid' => '', 'mscan_time' => current_time('mysql') ) );
1026
+ }
1027
+ }
1028
+ }
1029
+ }
1030
+ }
1031
+
1032
+ foreach ( $wp_core_file_array as $key => $value ) {
1033
+
1034
+ if ( preg_match( $exclude_dirs_pattern, $value ) ) {
1035
+ unset($wp_core_file_array[$key]);
1036
+ }
1037
+
1038
+ if ( in_array( $value, $mscan_file_ignore_array ) ) {
1039
+ unset($wp_core_file_array[$key]);
1040
+ }
1041
+ }
1042
+
1043
+ foreach ( $file_path_array as $key => $value ) {
1044
+
1045
+ if ( preg_match( '/index\.php/', $value ) ) {
1046
+ $check_string4 = file_get_contents( $value );
1047
+ $pos4 = strpos( $check_string4, "define('WP_USE_THEMES" );
1048
+ if ( $pos4 !== false ) {
1049
+ unset($file_path_array[$key]);
1050
+ }
1051
+ }
1052
+
1053
+ if ( preg_match( '/readme\.html/', $value ) ) {
1054
+ $check_string5 = file_get_contents( $value );
1055
+ $pos5 = strpos( $check_string5, "https://wordpress.org/" );
1056
+ if ( $pos5 !== false ) {
1057
+ unset($file_path_array[$key]);
1058
+ }
1059
+ }
1060
+
1061
+ if ( preg_match( '/xmlrpc\.php/', $value ) ) {
1062
+ $check_string6 = file_get_contents( $value );
1063
+ $pos6 = strpos( $check_string6, "XML-RPC protocol support for WordPress" );
1064
+ if ( $pos6 !== false ) {
1065
+ unset($file_path_array[$key]);
1066
+ }
1067
+ }
1068
+
1069
+ if ( in_array( $value, $mscan_file_ignore_array ) ) {
1070
+ unset($file_path_array[$key]);
1071
+ }
1072
+ }
1073
+
1074
+ foreach ( $image_file_path_array as $key => $value ) {
1075
+
1076
+ if ( in_array( $value, $mscan_file_ignore_array ) ) {
1077
+ unset($image_file_path_array[$key]);
1078
+ }
1079
+ }
1080
+
1081
+ $blank_rows = '';
1082
+ $MScanFileRows = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $MStable WHERE mscan_path != %s AND mscan_skipped != %s", $blank_rows, $skipped_rows ) );
1083
+
1084
+ $mscan_file_path_array = array();
1085
+
1086
+ if ( $wpdb->num_rows != 0 ) {
1087
+
1088
+ foreach ( $MScanFileRows as $row ) {
1089
+ $mscan_file_path_array[] = $row->mscan_path;
1090
+ }
1091
+ }
1092
+
1093
+ $MScanDBRows = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $MStable WHERE mscan_type != %s", $blank_rows ) );
1094
+
1095
+ $mscan_db_pkid_array = array();
1096
+ $mscan_db_pattern_array = array();
1097
+
1098
+ if ( $wpdb->num_rows != 0 ) {
1099
+
1100
+ foreach ( $MScanDBRows as $row ) {
1101
+ $mscan_db_pkid_array[] = $row->mscan_db_pkid;
1102
+ $mscan_db_pattern_array[] = $row->mscan_pattern;
1103
+ }
1104
+ }
1105
+
1106
+ fwrite( $handle, "Scanning Files: Start WP Core file scan.\r\n" );
1107
+ fwrite( $handle, "Scanning Files: Suspicious|Modified|Unknown WP Core files:\r\n" );
1108
+
1109
+ $core_dir_flip = array_flip($wp_core_file_array);
1110
+
1111
+ $core_md5_array = array();
1112
+
1113
+ foreach ( $core_dir_flip as $key => $value ) {
1114
+ $core_md5_array[$key] = md5_file($key);
1115
+ }
1116
+
1117
+ require_once( WP_CONTENT_DIR . '/bps-backup/wp-hashes/wp-hashes.php' );
1118
+
1119
+ $core_diff_array = array_diff($core_md5_array, $wp_hashes);
1120
+
1121
+ foreach ( $core_diff_array as $key => $value ) {
1122
+
1123
+ if ( preg_match( '/(.*)(\/|\\\)wp-admin(\/|\\\).htaccess/', $key ) ) {
1124
+ unset($core_diff_array[$key]);
1125
+ }
1126
+
1127
+ if ( file_get_contents($MScanStop) != 'run' ) {
1128
+ fwrite( $handle, "Scanning Files: MScan Scanning was Stopped\r\n" );
1129
+ fclose($handle);
1130
+ exit();
1131
+
1132
+ } else {
1133
+
1134
+ if ( ! empty($core_diff_array) ) {
1135
+
1136
+ // Not redundant - needs to be here
1137
+ if ( ! preg_match( '/(.*)(\/|\\\)wp-admin(\/|\\\).htaccess/', $key ) ) {
1138
+
1139
+ fwrite( $handle, "Scanning Files WP Core: File: $key\r\n" );
1140
+
1141
+ if ( ! in_array($key, $mscan_file_path_array) ) {
1142
+
1143
+ if ( $insert_rows = $wpdb->insert( $MStable, array( 'mscan_status' => 'suspect', 'mscan_type' => 'core', 'mscan_path' => $key, 'mscan_pattern' => 'Altered or unknown WP Core file', 'mscan_skipped' => '', 'mscan_ignored' => '', 'mscan_db_table' => '', 'mscan_db_column' => '', 'mscan_db_pkid' => '', 'mscan_time' => current_time('mysql') ) ) ) {
1144
+ $send_email = 'send';
1145
+ }
1146
+ }
1147
+ }
1148
+
1149
+ } else {
1150
+ fwrite( $handle, "Scanning Files WP Core: No Suspicious|Modified|Unknown WP Core files were found.\r\n" );
1151
+ }
1152
+ }
1153
+ }
1154
+
1155
+ fwrite( $handle, "Scanning Files: WP Core file scan completed.\r\n" );
1156
+ fwrite( $handle, "Scanning Files: Start non-Image file (php, js, etc) scan.\r\n" );
1157
+ fwrite( $handle, "Scanning Files: Suspicious code pattern matches:\r\n" );
1158
+
1159
+ foreach ( $file_path_array as $key => $value ) {
1160
+
1161
+ if ( file_get_contents($MScanStop) != 'run' ) {
1162
+ fwrite( $handle, "Scanning Files: MScan Scanning was Stopped\r\n" );
1163
+ fclose($handle);
1164
+ exit();
1165
+
1166
+ } else {
1167
+
1168
+ $ext = pathinfo( strtolower($value), PATHINFO_EXTENSION );
1169
+ $file_contents = file_get_contents($value);
1170
+
1171
+ if ( $ext == 'js' ) {
1172
+
1173
+ if ( ! preg_match( $safe_plugins, $value ) && preg_match( $js_pattern, $file_contents, $matches ) ) {
1174
+
1175
+ $js_code_match = 1;
1176
+ fwrite( $handle, "Scanning Files .js: File: $value\r\n" );
1177
+ fwrite( $handle, "Scanning Files .js: Code Pattern Match: $matches[0]\r\n" );
1178
+
1179
+ if ( ! in_array($value, $mscan_file_path_array) ) {
1180
+
1181
+ if ( $insert_rows = $wpdb->insert( $MStable, array( 'mscan_status' => 'suspect', 'mscan_type' => 'js', 'mscan_path' => $value, 'mscan_pattern' => $matches[0], 'mscan_skipped' => '', 'mscan_ignored' => '', 'mscan_db_table' => '', 'mscan_db_column' => '', 'mscan_db_pkid' => '', 'mscan_time' => current_time('mysql') ) ) ) {
1182
+
1183
+ $send_email = 'send';
1184
+ }
1185
+ }
1186
+ }
1187
+ }
1188
+
1189
+ if ( $ext == 'htaccess' ) {
1190
+
1191
+ if ( ! preg_match( $safe_plugins, $value ) && preg_match( $htaccess_pattern, $file_contents, $matches ) ) {
1192
+
1193
+ $htaccess_code_match = 1;
1194
+ fwrite( $handle, "Scanning Files .htaccess: File: $value\r\n" );
1195
+ fwrite( $handle, "Scanning Files .htaccess: Code Pattern Match: $matches[0]\r\n" );
1196
+
1197
+ if ( ! in_array($value, $mscan_file_path_array) ) {
1198
+
1199
+ if ( $insert_rows = $wpdb->insert( $MStable, array( 'mscan_status' => 'suspect', 'mscan_type' => 'htaccess', 'mscan_path' => $value, 'mscan_pattern' => $matches[0], 'mscan_skipped' => '', 'mscan_ignored' => '', 'mscan_db_table' => '', 'mscan_db_column' => '', 'mscan_db_pkid' => '', 'mscan_time' => current_time('mysql') ) ) ) {
1200
+ $send_email = 'send';
1201
+ }
1202
+ }
1203
+ }
1204
+ }
1205
+
1206
+ if ( $ext == 'htm' || $ext == 'html' || $ext == 'php' || $ext == 'phps' || $ext == 'php5' || $ext == 'php4' || $ext == 'php3' || $ext == 'phtml' || $ext == 'phpt' || $ext == 'shtm' || $ext == 'shtml' || $ext == 'xhtml' ) {
1207
+
1208
+ if ( ! preg_match( $safe_plugins, $value ) && preg_match( $php_pattern, $file_contents, $matches ) ) {
1209
+
1210
+ $php_code_match = 1;
1211
+ fwrite( $handle, "Scanning Files (php, html, etc): File: $value\r\n" );
1212
+ fwrite( $handle, "Scanning Files (php, html, etc): Code Pattern Match: $matches[0]\r\n" );
1213
+
1214
+ if ( ! in_array($value, $mscan_file_path_array) ) {
1215
+
1216
+ if ( $insert_rows = $wpdb->insert( $MStable, array( 'mscan_status' => 'suspect', 'mscan_type' => 'php|html|other', 'mscan_path' => $value, 'mscan_pattern' => $matches[0], 'mscan_skipped' => '', 'mscan_ignored' => '', 'mscan_db_table' => '', 'mscan_db_column' => '', 'mscan_db_pkid' => '', 'mscan_time' => current_time('mysql') ) ) ) {
1217
+ $send_email = 'send';
1218
+ }
1219
+ }
1220
+ }
1221
+ }
1222
+ }
1223
+ } // end of foreach ( $file_path_array
1224
+
1225
+ if ( $js_code_match == 0 ) {
1226
+ fwrite( $handle, "Scanning Files .js: No Suspicious .js code pattern matches were found.\r\n" );
1227
+ }
1228
+
1229
+ if ( $htaccess_code_match == 0 ) {
1230
+ fwrite( $handle, "Scanning Files .htaccess: No Suspicious .htaccess code pattern matches were found.\r\n" );
1231
+ }
1232
+
1233
+ if ( $php_code_match == 0 ) {
1234
+ fwrite( $handle, "Scanning Files (php, html, etc): No Suspicious (php, html, etc) code pattern matches were found.\r\n" );
1235
+ }
1236
+
1237
+ fwrite( $handle, "Scanning Files: non-Image file (php, js, etc) scan completed.\r\n" );
1238
+
1239
+ if ( $MScan_options['mscan_scan_images'] == 'On' ) {
1240
+
1241
+ $image_code_match = 0;
1242
+ fwrite( $handle, "Scanning Files: Start Image file scan.\r\n" );
1243
+ fwrite( $handle, "Scanning Files: Suspicious code (Stegosploit|Exif Hack) matches:\r\n" );
1244
+
1245
+ foreach ( $image_file_path_array as $keyI => $valueI ) {
1246
+
1247
+ if ( file_get_contents($MScanStop) != 'run' ) {
1248
+ fwrite( $handle, "Scanning Files: MScan Scanning was Stopped\r\n" );
1249
+ fclose($handle);
1250
+ exit();
1251
+
1252
+ } else {
1253
+
1254
+ $image_contents = file_get_contents($valueI);
1255
+
1256
+ try {
1257
+ if ( ! preg_match( $safe_plugins, $valueI ) && preg_match( $image_pattern, $image_contents, $matches ) ) {
1258
+
1259
+ $image_code_match = 1;
1260
+ fwrite( $handle, "Scanning Files (png, jpg, etc): File: $valueI\r\n" );
1261
+ fwrite( $handle, "Scanning Files (png, jpg, etc): Code Pattern Match: $matches[0]\r\n" );
1262
+
1263
+ if ( ! in_array($valueI, $mscan_file_path_array) ) {
1264
+
1265
+ if ( $insert_rows = $wpdb->insert( $MStable, array( 'mscan_status' => 'suspect', 'mscan_type' => 'image', 'mscan_path' => $valueI, 'mscan_pattern' => $matches[0], 'mscan_skipped' => '', 'mscan_ignored' => '', 'mscan_db_table' => '', 'mscan_db_column' => '', 'mscan_db_pkid' => '', 'mscan_time' => current_time('mysql') ) ) ) {
1266
+ $send_email = 'send';
1267
+ }
1268
+ }
1269
+ }
1270
+ } catch (RuntimeException $e) {
1271
+ fwrite( $handle, "Scanning Files (png, jpg, etc): RuntimeException Error\r\n" );
1272
+ }
1273
+ }
1274
+ }
1275
+
1276
+ if ( $image_code_match == 0 ) {
1277
+ fwrite( $handle, "Scanning Files (png, jpg, etc): No Suspicious code (Stegosploit|Exif Hack) was found in any image files.\r\n" );
1278
+ }
1279
+ fwrite( $handle, "Scanning Files: Image file scan completed.\r\n" );
1280
+ }
1281
+
1282
+ fwrite( $handle, "Scanning Files: Scanning files completed.\r\n" );
1283
+
1284
+ if ( $MScan_options['mscan_scan_database'] == 'On' ) {
1285
+
1286
+ fwrite( $handle, "Scanning Database: Start database scan.\r\n" );
1287
+ fwrite( $handle, "Scanning Database: Suspicious code pattern matches:\r\n" );
1288
+
1289
+ $db_code_match = 0;
1290
+ $DBTables = 0;
1291
+ $getDBTables = $wpdb->get_results( $wpdb->prepare( "SHOW TABLE STATUS WHERE Rows >= %d", $DBTables ) );
1292
+
1293
+ $search1 = 'eval(';
1294
+ $search2 = '(lave';
1295
+ $search3 = 'base64_decode';
1296
+ $search4 = 'edoced_46esab';
1297
+ $search5 = '<script';
1298
+ $search6 = '<iframe';
1299
+ $search7 = '<noscript';
1300
+ $search8 = 'display:';
1301
+ $search9 = 'visibility:';
1302
+
1303
+ foreach ( $getDBTables as $Table ) {
1304
+
1305
+ if ( $Table->Name != $wpdb->prefix . "bpspro_mscan" ) {
1306
+
1307
+ $getColumns = $wpdb->get_results( "SHOW COLUMNS FROM $Table->Name" );
1308
+
1309
+ foreach ( $getColumns as $column ) {
1310
+
1311
+ $Search_Tables = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM `$Table->Name` WHERE `$column->Field` LIKE %s OR `$column->Field` LIKE %s OR `$column->Field` LIKE %s OR `$column->Field` LIKE %s OR `$column->Field` LIKE %s OR `$column->Field` LIKE %s OR `$column->Field` LIKE %s OR `$column->Field` LIKE %s OR `$column->Field` LIKE %s", "%$search1%", "%$search2%", "%$search3%", "%$search4%", "%$search5%", "%$search6%", "%$search7%", "%$search8%", "%$search9%" ) );
1312
+
1313
+ if ( $wpdb->num_rows != 0 ) {
1314
+
1315
+ foreach ( $Search_Tables as $results ) {
1316
+
1317
+ if ( file_get_contents($MScanStop) != 'run' ) {
1318
+ fwrite( $handle, "Scanning Database: MScan Scanning was Stopped\r\n" );
1319
+ fclose($handle);
1320
+ exit();
1321
+
1322
+ } else {
1323
+
1324
+ if ( ! preg_match( '/_transient_feed_(.*)/', $results->option_name ) ) {
1325
+
1326
+ $getKey = $wpdb->get_results( "SHOW KEYS FROM $Table->Name WHERE Key_name = 'PRIMARY'" );
1327
+
1328
+ foreach ( $getKey as $PKey ) {
1329
+
1330
+ }
1331
+
1332
+ $json_array = json_decode(json_encode($results), true);
1333
+ $patterns = array ( '/</', '/>/' );
1334
+ $replace = array ( '&lt;', '&gt;' );
1335
+ $json_array_converted = preg_replace( $patterns, $replace, $json_array );
1336
+
1337
+ if ( in_array( $json_array_converted[$PKey->Column_name], $mscan_db_ignore_array ) ) {
1338
+ unset($json_array[$column->Field]);
1339
+ }
1340
+
1341
+ if ( preg_grep( '/(eval\(|\(lave)/i', $json_array ) ) {
1342
+ $db_code_match = 1;
1343
+
1344
+ fwrite( $handle, "Scanning Database: DB Table: $Table->Name | Column|Field: $column->Field | Primary Key ID: ".$json_array_converted[$PKey->Column_name]."\r\n" );
1345
+ fwrite( $handle, "Scanning Database: Code Pattern Match: eval( or (lave\r\n" );
1346
+
1347
+ if ( ! in_array($json_array_converted[$PKey->Column_name], $mscan_db_pkid_array) ) {
1348
+
1349
+ if ( $insert_rows = $wpdb->insert( $MStable, array( 'mscan_status' => 'suspect', 'mscan_type' => 'db', 'mscan_path' => '', 'mscan_pattern' => 'eval( or (lave', 'mscan_skipped' => '', 'mscan_ignored' => '', 'mscan_db_table' => $Table->Name, 'mscan_db_column' => $column->Field, 'mscan_db_pkid' => $json_array_converted[$PKey->Column_name], 'mscan_time' => current_time('mysql') ) ) ) {
1350
+
1351
+ $send_email = 'send';
1352
+ }
1353
+ }
1354
+ }
1355
+
1356
+ if ( preg_grep( '/<script/i', $json_array ) ) {
1357
+ $db_code_match = 1;
1358
+
1359
+ fwrite( $handle, "Scanning Database: DB Table: $Table->Name | Column|Field: $column->Field | Primary Key ID: ".$json_array_converted[$PKey->Column_name]."\r\n" );
1360
+ fwrite( $handle, "Scanning Database: Code Pattern Match: <script\r\n" );
1361
+
1362
+ if ( ! in_array($json_array_converted[$PKey->Column_name], $mscan_db_pkid_array) ) {
1363
+
1364
+ if ( $insert_rows = $wpdb->insert( $MStable, array( 'mscan_status' => 'suspect', 'mscan_type' => 'db', 'mscan_path' => '', 'mscan_pattern' => '<script', 'mscan_skipped' => '', 'mscan_ignored' => '', 'mscan_db_table' => $Table->Name, 'mscan_db_column' => $column->Field, 'mscan_db_pkid' => $json_array_converted[$PKey->Column_name], 'mscan_time' => current_time('mysql') ) ) ) {
1365
+
1366
+ $send_email = 'send';
1367
+ }
1368
+ }
1369
+ }
1370
+
1371
+ if ( preg_grep( '/<iframe/i', $json_array ) ) {
1372
+ $db_code_match = 1;
1373
+
1374
+ fwrite( $handle, "Scanning Database: DB Table: $Table->Name | Column|Field: $column->Field | Primary Key ID: ".$json_array_converted[$PKey->Column_name]."\r\n" );
1375
+ fwrite( $handle, "Scanning Database: Code Pattern Match: <iframe\r\n" );
1376
+
1377
+ if ( ! in_array($json_array_converted[$PKey->Column_name], $mscan_db_pkid_array) ) {
1378
+
1379
+ if ( $insert_rows = $wpdb->insert( $MStable, array( 'mscan_status' => 'suspect', 'mscan_type' => 'db', 'mscan_path' => '', 'mscan_pattern' => '<iframe', 'mscan_skipped' => '', 'mscan_ignored' => '', 'mscan_db_table' => $Table->Name, 'mscan_db_column' => $column->Field, 'mscan_db_pkid' => $json_array_converted[$PKey->Column_name], 'mscan_time' => current_time('mysql') ) ) ) {
1380
+
1381
+ $send_email = 'send';
1382
+ }
1383
+ }
1384
+ }
1385
+
1386
+ if ( preg_grep( '/<noscript/i', $json_array ) ) {
1387
+ $db_code_match = 1;
1388
+
1389
+ fwrite( $handle, "Scanning Database: DB Table: $Table->Name | Column|Field: $column->Field | Primary Key ID: ".$json_array_converted[$PKey->Column_name]."\r\n" );
1390
+ fwrite( $handle, "Scanning Database: Code Pattern Match: <noscript\r\n" );
1391
+
1392
+ if ( ! in_array($json_array_converted[$PKey->Column_name], $mscan_db_pkid_array) ) {
1393
+
1394
+ if ( $insert_rows = $wpdb->insert( $MStable, array( 'mscan_status' => 'suspect', 'mscan_type' => 'db', 'mscan_path' => '', 'mscan_pattern' => '<noscript', 'mscan_skipped' => '', 'mscan_ignored' => '', 'mscan_db_table' => $Table->Name, 'mscan_db_column' => $column->Field, 'mscan_db_pkid' => $json_array_converted[$PKey->Column_name], 'mscan_time' => current_time('mysql') ) ) ) {
1395
+
1396
+ $send_email = 'send';
1397
+ }
1398
+ }
1399
+ }
1400
+
1401
+ if ( preg_grep( '/visibility:/i', $json_array ) ) {
1402
+ $db_code_match = 1;
1403
+
1404
+ fwrite( $handle, "Scanning Database: DB Table: $Table->Name | Column|Field: $column->Field | Primary Key ID: ".$json_array_converted[$PKey->Column_name]."\r\n" );
1405
+ fwrite( $handle, "Scanning Database: Code Pattern Match: visibility:\r\n" );
1406
+
1407
+ if ( ! in_array($json_array_converted[$PKey->Column_name], $mscan_db_pkid_array) ) {
1408
+
1409
+ if ( $insert_rows = $wpdb->insert( $MStable, array( 'mscan_status' => 'suspect', 'mscan_type' => 'db', 'mscan_path' => '', 'mscan_pattern' => 'visibility:', 'mscan_skipped' => '', 'mscan_ignored' => '', 'mscan_db_table' => $Table->Name, 'mscan_db_column' => $column->Field, 'mscan_db_pkid' => $json_array_converted[$PKey->Column_name], 'mscan_time' => current_time('mysql') ) ) ) {
1410
+
1411
+ $send_email = 'send';
1412
+ }
1413
+ }
1414
+ }
1415
+
1416
+ if ( preg_grep( '/(base64_decode|edoced_46esab)/i', $json_array ) ) {
1417
+ $db_code_match = 1;
1418
+
1419
+ fwrite( $handle, "Scanning Database: DB Table: $Table->Name | Column|Field: $column->Field | Primary Key ID: ".$json_array_converted[$PKey->Column_name]."\r\n" );
1420
+ fwrite( $handle, "Scanning Database: Code Pattern Match: base64_decode or edoced_46esab\r\n" );
1421
+
1422
+
1423
+ if ( ! in_array($json_array_converted[$PKey->Column_name], $mscan_db_pkid_array) ) {
1424
+
1425
+ if ( $insert_rows = $wpdb->insert( $MStable, array( 'mscan_status' => 'suspect', 'mscan_type' => 'db', 'mscan_path' => '', 'mscan_pattern' => 'base64_decode or edoced_46esab', 'mscan_skipped' => '', 'mscan_ignored' => '', 'mscan_db_table' => $Table->Name, 'mscan_db_column' => $column->Field, 'mscan_db_pkid' => $json_array_converted[$PKey->Column_name], 'mscan_time' => current_time('mysql') ) ) ) {
1426
+
1427
+ $send_email = 'send';
1428
+ }
1429
+ }
1430
+ }
1431
+ }
1432
+ }
1433
+ }
1434
+ }
1435
+ }
1436
+ }
1437
+ }
1438
+
1439
+ $search10 = 'wp_check_hash';
1440
+ $search11 = 'ftp_credentials';
1441
+ $search12 = 'class_generic_support';
1442
+ $search13 = 'widget_generic_support';
1443
+
1444
+ $pharma_hack = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->options WHERE option_name = %s OR option_name = %s OR option_name = %s OR option_name = %s", $search10, $search11, $search12, $search13 ) );
1445
+
1446
+ if ( $wpdb->num_rows != 0 ) {
1447
+
1448
+ foreach ( $pharma_hack as $row ) {
1449
+
1450
+ if ( ! in_array( 'PharmaHack', $mscan_db_ignore_pattern_array ) ) {
1451
+ $db_code_match = 1;
1452
+
1453
+ fwrite( $handle, "Scanning Database: DB Table: $wpdb->options | Column|Field: option_name\r\n" );
1454
+ fwrite( $handle, "Scanning Database: Pharma Hack found. Delete these option_name rows below from your WP Database:\r\n" );
1455
+ fwrite( $handle, "Scanning Database: wp_check_hash, class_generic_support, widget_generic_support, ftp_credentials and fwp.\r\n" );
1456
+
1457
+ }
1458
+
1459
+ if ( ! in_array( 'PharmaHack', $mscan_db_pattern_array ) ) {
1460
+
1461
+ if ( $insert_rows = $wpdb->insert( $MStable, array( 'mscan_status' => 'suspect', 'mscan_type' => 'db', 'mscan_path' => '', 'mscan_pattern' => 'PharmaHack', 'mscan_skipped' => '', 'mscan_ignored' => '', 'mscan_db_table' => $wpdb->options, 'mscan_db_column' => 'option_name', 'mscan_db_pkid' => '999999', 'mscan_time' => current_time('mysql') ) ) ) {
1462
+
1463
+ $send_email = 'send';
1464
+ }
1465
+ }
1466
+ }
1467
+ }
1468
+
1469
+ if ( $db_code_match == 0 ) {
1470
+ fwrite( $handle, "Scanning Database: No Suspicious code was found in any database tables.\r\n" );
1471
+ }
1472
+
1473
+ fwrite( $handle, "Scanning Database: Database scan completed.\r\n" );
1474
+ } // end if ( $MScan_options['mscan_scan_database'] == 'On' ) {
1475
+ } // end if ( $MScan_options['bps_mscan_total_skipped_files'] == 'Off' ) {
1476
+
1477
+ if ( $MScan_options['mscan_scan_skipped_files'] == 'On' ) {
1478
+
1479
+ $skipped_rows = 'skipped';
1480
+ $ignored_rows = 'ignore';
1481
+ $MScanSkipRows = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $MStable WHERE mscan_skipped = %s AND mscan_ignored != %s", $skipped_rows, $ignored_rows ) );
1482
+
1483
+ if ( $wpdb->num_rows != 0 ) {
1484
+
1485
+ $image_code_match = 0;
1486
+ fwrite( $handle, "Scanning Skipped Files: Start Skipped file scan.\r\n" );
1487
+ fwrite( $handle, "Scanning Skipped Files: Suspicious code pattern matches:\r\n" );
1488
+
1489
+ foreach ( $MScanSkipRows as $row ) {
1490
+
1491
+ if ( file_get_contents($MScanStop) != 'run' ) {
1492
+ fwrite( $handle, "Scanning Skipped Files: MScan Scanning was Stopped\r\n" );
1493
+ fclose($handle);
1494
+ exit();
1495
+
1496
+ } else {
1497
+
1498
+ if ( ! preg_match( $safe_plugins, $row->mscan_path ) ) {
1499
+
1500
+ $file_contents = file_get_contents($row->mscan_path);
1501
+
1502
+ if ( $row->mscan_type == 'js' ) {
1503
+
1504
+ if ( preg_match( $js_pattern, $file_contents, $matches ) ) {
1505
+
1506
+ $js_code_match = 1;
1507
+ fwrite( $handle, "Scanning Skipped Files .js: File: $row->mscan_path\r\n" );
1508
+ fwrite( $handle, "Scanning Skipped Files .js: Code Pattern Match: $matches[0]\r\n" );
1509
+
1510
+ $update_rows = $wpdb->update( $MStable, array( 'mscan_status' => 'suspect', 'mscan_pattern' => $matches[0], 'mscan_time' => current_time('mysql') ), array( 'mscan_path' => $row->mscan_path ) );
1511
+
1512
+ $send_email = 'send';
1513
+
1514
+ } else {
1515
+ $update_rows = $wpdb->update( $MStable, array( 'mscan_status' => 'clean', 'mscan_time' => current_time('mysql') ), array( 'mscan_path' => $row->mscan_path ) );
1516
+ }
1517
+ }
1518
+
1519
+ if ( $row->mscan_type == 'htaccess' ) {
1520
+
1521
+ if ( preg_match( $htaccess_pattern, $file_contents, $matches ) ) {
1522
+
1523
+ $htaccess_code_match = 1;
1524
+ fwrite( $handle, "Scanning Skipped Files .htaccess: File: $row->mscan_path\r\n" );
1525
+ fwrite( $handle, "Scanning Skipped Files .htaccess: Code Pattern Match: $matches[0]\r\n" );
1526
+
1527
+ $update_rows = $wpdb->update( $MStable, array( 'mscan_status' => 'suspect', 'mscan_pattern' => $matches[0], 'mscan_time' => current_time('mysql') ), array( 'mscan_path' => $row->mscan_path ) );
1528
+
1529
+ $send_email = 'send';
1530
+
1531
+ } else {
1532
+ $update_rows = $wpdb->update( $MStable, array( 'mscan_status' => 'clean', 'mscan_time' => current_time('mysql') ), array( 'mscan_path' => $row->mscan_path ) );
1533
+ }
1534
+ }
1535
+
1536
+ if ( $row->mscan_type == 'php|html|other' ) {
1537
+
1538
+ if ( preg_match( $php_pattern, $file_contents, $matches ) ) {
1539
+
1540
+ $php_code_match = 1;
1541
+ fwrite( $handle, "Scanning Skipped Files (php, html, etc): File: $row->mscan_path\r\n" );
1542
+ fwrite( $handle, "Scanning Skipped Files (php, html, etc): Code Pattern Match: $matches[0]\r\n" );
1543
+
1544
+ $update_rows = $wpdb->update( $MStable, array( 'mscan_status' => 'suspect', 'mscan_pattern' => $matches[0], 'mscan_time' => current_time('mysql') ), array( 'mscan_path' => $row->mscan_path ) );
1545
+
1546
+ $send_email = 'send';
1547
+
1548
+ } else {
1549
+ $update_rows = $wpdb->update( $MStable, array( 'mscan_status' => 'clean', 'mscan_time' => current_time('mysql') ), array( 'mscan_path' => $row->mscan_path ) );
1550
+ }
1551
+ }
1552
+
1553
+ if ( $MScan_options['mscan_scan_images'] == 'On' ) {
1554
+
1555
+ try {
1556
+ if ( $row->mscan_type == 'image' ) {
1557
+
1558
+ if ( preg_match( $image_pattern, $file_contents, $matches ) ) {
1559
+
1560
+ $image_code_match = 1;
1561
+ fwrite( $handle, "Scanning Skipped Files (png, jpg, etc): File: $row->mscan_path\r\n" );
1562
+ fwrite( $handle, "Scanning Skipped Files (png, jpg, etc): Code Pattern Match: $matches[0]\r\n" );
1563
+
1564
+ $update_rows = $wpdb->update( $MStable, array( 'mscan_status' => 'suspect', 'mscan_pattern' => $matches[0], 'mscan_time' => current_time('mysql') ), array( 'mscan_path' => $row->mscan_path ) );
1565
+
1566
+ $send_email = 'send';
1567
+
1568
+ } else {
1569
+ $update_rows = $wpdb->update( $MStable, array( 'mscan_status' => 'clean', 'mscan_time' => current_time('mysql') ), array( 'mscan_path' => $row->mscan_path ) );
1570
+ }
1571
+ }
1572
+ } catch (RuntimeException $e) {
1573
+ fwrite( $handle, "Scanning Skipped Files (png, jpg, etc): RuntimeException Error\r\n" );
1574
+ }
1575
+ }
1576
+ }
1577
+ }
1578
+
1579
+ if ( preg_match( $safe_plugins, $row->mscan_path ) ) {
1580
+ $update_rows = $wpdb->update( $MStable, array( 'mscan_status' => 'safe', 'mscan_time' => current_time('mysql') ), array( 'mscan_path' => $row->mscan_path ) );
1581
+ }
1582
+ }
1583
+
1584
+ if ( $js_code_match == 0 ) {
1585
+ fwrite( $handle, "Scanning Skipped Files .js: No Suspicious .js code pattern matches were found.\r\n" );
1586
+ }
1587
+
1588
+ if ( $htaccess_code_match == 0 ) {
1589
+ fwrite( $handle, "Scanning Skipped Files .htaccess: No Suspicious .htaccess code pattern matches were found.\r\n" );
1590
+ }
1591
+
1592
+ if ( $php_code_match == 0 ) {
1593
+ fwrite( $handle, "Scanning Skipped Files (php, html, etc): No Suspicious (php, html, etc) code pattern matches were found.\r\n" );
1594
+ }
1595
+
1596
+ if ( $MScan_options['mscan_scan_images'] == 'On' && $image_code_match == 0 ) {
1597
+ fwrite( $handle, "Scanning Skipped Files (png, jpg, etc): No Suspicious code (Stegosploit|Exif Hack) was found in any image files.\r\n" );
1598
+ }
1599
+
1600
+ fwrite( $handle, "Scanning Skipped Files: Skipped file scan completed.\r\n" );
1601
+
1602
+ } else {
1603
+ fwrite( $handle, "Scanning Skipped Files: Either there are no skipped files to scan or a Skipped File Scan was run before a regular scan was run.\r\n" );
1604
+ }
1605
+ } // end if ( $MScan_options['bps_mscan_total_skipped_files'] == 'On' ) {
1606
+
1607
+ $suspect_rows = 'suspect';
1608
+ $ignored_rows = 'ignore';
1609
+ $skipped_rows = 'skipped';
1610
+ $db_rows = 'db';
1611
+
1612
+ $MScanSuspectFilesRows = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $MStable WHERE mscan_status = %s AND mscan_ignored != %s AND mscan_skipped != %s AND mscan_type != %s", $suspect_rows, $ignored_rows, $skipped_rows, $db_rows ) );
1613
+
1614
+ $mscan_suspect_files_total_array = array();
1615
+
1616
+ if ( $wpdb->num_rows != 0 ) {
1617
+
1618
+ foreach ( $MScanSuspectFilesRows as $row ) {
1619
+ $mscan_suspect_files_total_array[] = $row->mscan_status;
1620
+ }
1621
+ }
1622
+
1623
+ $MScanSuspectSkippedFilesRows = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $MStable WHERE mscan_status = %s AND mscan_skipped = %s AND mscan_ignored != %s", $suspect_rows, $skipped_rows, $ignored_rows ) );
1624
+
1625
+ $mscan_suspect_skipped_files_total_array = array();
1626
+
1627
+ if ( $wpdb->num_rows != 0 ) {
1628
+
1629
+ foreach ( $MScanSuspectSkippedFilesRows as $row ) {
1630
+ $mscan_suspect_skipped_files_total_array[] = $row->mscan_status;
1631
+ }
1632
+ }
1633
+
1634
+ $MScanSuspectDBRows = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $MStable WHERE mscan_status = %s AND mscan_type = %s AND mscan_ignored != %s", $suspect_rows, $db_rows, $ignored_rows ) );
1635
+
1636
+ $mscan_suspect_db_total_array = array();
1637
+
1638
+ if ( $wpdb->num_rows != 0 ) {
1639
+
1640
+ foreach ( $MScanSuspectDBRows as $row ) {
1641
+ $mscan_suspect_db_total_array[] = $row->mscan_status;
1642
+ }
1643
+ }
1644
+
1645
+ $MScan_status = get_option('bulletproof_security_options_MScan_status');
1646
+
1647
+ $total_ignored_file_db_count = count($mscan_ignored_total_array);
1648
+ $total_suspect_file_count = count($mscan_suspect_files_total_array);
1649
+ $total_suspect_skipped_files_file_count = count($mscan_suspect_skipped_files_total_array);
1650
+ $total_suspect_db_count = count($mscan_suspect_db_total_array);
1651
+
1652
+ $bps_mscan_total_time = time() - $MScan_status['bps_mscan_time_start'];
1653
+
1654
+ $MScan_status_db = array(
1655
+ 'bps_mscan_time_start' => $MScan_status['bps_mscan_time_start'],
1656
+ 'bps_mscan_time_stop' => $MScan_status['bps_mscan_time_stop'],
1657
+ 'bps_mscan_time_end' => time(),
1658
+ 'bps_mscan_time_remaining' => $MScan_status['bps_mscan_time_remaining'],
1659
+ 'bps_mscan_status' => '3',
1660
+ 'bps_mscan_last_scan_timestamp' => $timestamp,
1661
+ 'bps_mscan_total_time' => $bps_mscan_total_time,
1662
+ 'bps_mscan_total_website_files' => $MScan_status['bps_mscan_total_website_files'],
1663
+ 'bps_mscan_total_wp_core_files' => $MScan_status['bps_mscan_total_wp_core_files'],
1664
+ 'bps_mscan_total_non_image_files' => $MScan_status['bps_mscan_total_non_image_files'],
1665
+ 'bps_mscan_total_image_files' => $MScan_status['bps_mscan_total_image_files'],
1666
+ 'bps_mscan_total_all_scannable_files' => $MScan_status['bps_mscan_total_all_scannable_files'],
1667
+ 'bps_mscan_total_skipped_files' => $MScan_status['bps_mscan_total_skipped_files'],
1668
+ 'bps_mscan_total_suspect_files' => $total_suspect_file_count,
1669
+ 'bps_mscan_suspect_skipped_files' => $total_suspect_skipped_files_file_count,
1670
+ 'bps_mscan_total_suspect_db' => $total_suspect_db_count,
1671
+ 'bps_mscan_total_ignored_files' => $total_ignored_file_db_count
1672
+ );
1673
+
1674
+ foreach( $MScan_status_db as $key => $value ) {
1675
+ update_option('bulletproof_security_options_MScan_status', $MScan_status_db);
1676
+ }
1677
+ }
1678
+
1679
+ $time_end = microtime( true );
1680
+ $file_scan_time = $time_end - $time_start;
1681
+
1682
+ $hours = (int)($file_scan_time / 60 / 60);
1683
+ $minutes = (int)($file_scan_time / 60) - $hours * 60;
1684
+ $seconds = (int)$file_scan_time - $hours * 60 * 60 - $minutes * 60;
1685
+ $hours_format = $hours == 0 ? "00" : $hours;
1686
+ $minutes_format = $minutes == 0 ? "00" : ($minutes < 10 ? "0".$minutes : $minutes);
1687
+ $seconds_format = $seconds == 0 ? "00" : ($seconds < 10 ? "0".$seconds : $seconds);
1688
+
1689
+ if ( $MScan_options['mscan_scan_skipped_files'] == 'On' ) {
1690
+ $file_scan_log = 'Scanning Skipped Files Completion Time: '. $hours_format . ':'. $minutes_format . ':' . $seconds_format;
1691
+
1692
+ } else {
1693
+
1694
+ if ( $MScan_options['mscan_scan_database'] == 'On' ) {
1695
+ $file_scan_log = 'Scanning Files & Database Completion Time: '. $hours_format . ':'. $minutes_format . ':' . $seconds_format;
1696
+ } else{
1697
+ $file_scan_log = 'Scanning Files Completion Time: '. $hours_format . ':'. $minutes_format . ':' . $seconds_format;
1698
+ }
1699
+ }
1700
+
1701
+ fwrite( $handle, "$file_scan_log\r\n" );
1702
+
1703
+ if ( $MScan_options['mscan_scan_delete_tmp_files'] == 'On' ) {
1704
+ bpsPro_delete_temp_files();
1705
+ fwrite( $handle, "Delete /tmp Files: tmp files have been deleted.\r\n" );
1706
+ }
1707
+
1708
+ fclose($handle);
1709
+
1710
+ // Send email alert
1711
+ if ( $send_email != '' ) {
1712
+ bps_smonitor_mscan_email();
1713
+ }
1714
+ }
1715
+
1716
+ // Deletes all temporary files in the /tmp folder.
1717
+ function bpsPro_delete_temp_files() {
1718
+
1719
+ $sapi_type = php_sapi_name();
1720
+
1721
+ if ( substr($sapi_type, 0, 6) == 'apache' && preg_match( '#\\\\#', ABSPATH, $matches ) ) {
1722
+ $upload_tmp_dir = ini_get('upload_tmp_dir');
1723
+
1724
+ if ( is_dir( $upload_tmp_dir ) && wp_is_writable( $upload_tmp_dir ) ) {
1725
+
1726
+ $local_tmp_files = scandir($upload_tmp_dir);
1727
+
1728
+ foreach ( $local_tmp_files as $file ) {
1729
+
1730
+ if ( $file != '.' && $file != '..' && $file != 'why.tmp' ) {
1731
+ @unlink($upload_tmp_dir.'/'.$file);
1732
+ }
1733
+ }
1734
+ }
1735
+
1736
+ } else {
1737
+
1738
+ if ( function_exists('sys_get_temp_dir') ) {
1739
+ $sys_get_temp_dir = sys_get_temp_dir();
1740
+
1741
+ if ( is_dir( $sys_get_temp_dir ) && wp_is_writable( $sys_get_temp_dir ) ) {
1742
+
1743
+ $tmp_files = scandir($sys_get_temp_dir);
1744
+
1745
+ foreach ( $tmp_files as $file ) {
1746
+
1747
+ if ( $file != '.' && $file != '..' ) {
1748
+ unlink($sys_get_temp_dir.'/'.$file);
1749
+ }
1750
+ }
1751
+ }
1752
+ }
1753
+ }
1754
+ }
1755
+
1756
+ ?>
includes/zip-email-cron-functions.php CHANGED
@@ -36,6 +36,8 @@ $SecurityLog = WP_CONTENT_DIR . '/bps-backup/logs/http_error_log.txt';
36
  $SecurityLogMaster = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/http_error_log.txt';
37
  $DBBLog = WP_CONTENT_DIR . '/bps-backup/logs/db_backup_log.txt';
38
  $DBBLogMaster = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/db_backup_log.txt';
 
 
39
 
40
  switch ( $options['bps_security_log_size'] ) {
41
  case "256KB":
@@ -108,6 +110,41 @@ switch ( $options['bps_dbb_log_size'] ) {
108
  break;
109
  }
110
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
111
  }
112
 
113
  // EMAIL NOTES: You cannot fake a zip file by renaming a file extension
@@ -179,6 +216,39 @@ $DBBLogZip = WP_CONTENT_DIR . '/bps-backup/logs/db-backup-log.zip';
179
  }
180
  }
181
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
182
  // Counts the Total # of Security Log Entries by Type & adds the info to the top of the Security Log text file before it is zipped and emailed.
183
  function bpsPro_SecLog_Entry_Counter_add_to_zip() {
184
 
@@ -304,4 +374,43 @@ require_once( ABSPATH . 'wp-admin/includes/class-pclzip.php' );
304
  }
305
  }
306
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
307
  ?>
36
  $SecurityLogMaster = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/http_error_log.txt';
37
  $DBBLog = WP_CONTENT_DIR . '/bps-backup/logs/db_backup_log.txt';
38
  $DBBLogMaster = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/db_backup_log.txt';
39
+ $MScanLog = WP_CONTENT_DIR . '/bps-backup/logs/mscan_log.txt';
40
+ $MScanLogMaster = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/mscan_log.txt';
41
 
42
  switch ( $options['bps_security_log_size'] ) {
43
  case "256KB":
110
  break;
111
  }
112
  }
113
+ switch ( $options['bps_mscan_log_size'] ) {
114
+ case "256KB":
115
+ if ( file_exists($MScanLog) && filesize($MScanLog) >= 262144 && filesize($MScanLog) < 524288 || file_exists($MScanLog) && filesize($MScanLog) > 2097152) {
116
+ if ( $options['bps_mscan_log_email'] == 'email') {
117
+ if ( bps_Zip_MScan_Log_File() == true ) {
118
+ bps_Email_MScan_Log_File();
119
+ }
120
+ } elseif ( $options['bps_arq_log_email'] == 'delete') {
121
+ copy($MScanLogMaster, $MScanLog);
122
+ }
123
+ break;
124
+ }
125
+ case "500KB":
126
+ if ( file_exists($MScanLog) && filesize($MScanLog) >= 524288 && filesize($MScanLog) < 1048576 || file_exists($MScanLog) && filesize($MScanLog) > 2097152) {
127
+ if ( $options['bps_mscan_log_email'] == 'email') {
128
+ if ( bps_Zip_MScan_Log_File() == true ) {
129
+ bps_Email_MScan_Log_File();
130
+ }
131
+ } elseif ( $options['bps_arq_log_email'] == 'delete') {
132
+ copy($MScanLogMaster, $MScanLog);
133
+ }
134
+ break;
135
+ }
136
+ case "1MB":
137
+ if ( file_exists($MScanLog) && filesize($MScanLog) >= 1048576 && filesize($MScanLog) < 2097152 || file_exists($MScanLog) && filesize($MScanLog) > 2097152) {
138
+ if ( $options['bps_mscan_log_email'] == 'email') {
139
+ if ( bps_Zip_MScan_Log_File() == true ) {
140
+ bps_Email_MScan_Log_File();
141
+ }
142
+ } elseif ( $options['bps_mscan_log_email'] == 'delete') {
143
+ copy($MScanLogMaster, $MScanLog);
144
+ }
145
+ break;
146
+ }
147
+ }
148
  }
149
 
150
  // EMAIL NOTES: You cannot fake a zip file by renaming a file extension
216
  }
217
  }
218
 
219
+ // Email MScan Log File
220
+ function bps_Email_MScan_Log_File() {
221
+ $options = get_option('bulletproof_security_options_email');
222
+ $bps_email_to = $options['bps_send_email_to'];
223
+ $bps_email_from = $options['bps_send_email_from'];
224
+ $bps_email_cc = $options['bps_send_email_cc'];
225
+ $bps_email_bcc = $options['bps_send_email_bcc'];
226
+ $justUrl = get_site_url();
227
+ $timestamp = date_i18n(get_option('date_format'), strtotime("11/15-1976")) . ' - ' . date_i18n(get_option('time_format'), strtotime($date));
228
+ $MScanLog = WP_CONTENT_DIR . '/bps-backup/logs/mscan_log.txt';
229
+ $MScanLogMaster = WP_PLUGIN_DIR . '/bulletproof-security/admin/htaccess/mscan_log.txt';
230
+ $MScanLogZip = WP_CONTENT_DIR . '/bps-backup/logs/mscan-log.zip';
231
+
232
+ $attachments = array( $MScanLogZip );
233
+ $headers = array( 'Content-Type: text/html; charset=UTF-8', 'From: ' . $bps_email_from, 'Cc: ' . $bps_email_cc, 'Bcc: ' . $bps_email_bcc );
234
+ $subject = " BPS Pro MScan Log - $timestamp ";
235
+ $message = '<p><font color="blue"><strong>MScan Log File For:</strong></font></p>';
236
+ $message .= '<p>Site: '.$justUrl.'</p>';
237
+
238
+ $mailed = wp_mail($bps_email_to, $subject, $message, $headers, $attachments);
239
+
240
+ if ( $mailed && file_exists($MScanLogZip) ) {
241
+ unlink($MScanLogZip);
242
+
243
+ if ( copy($MScanLogMaster, $MScanLog) ) {
244
+ $MScanLogoptions = get_option('bulletproof_security_options_MScan_log');
245
+ $last_modified_time_db = $MScanLogoptions['bps_mscan_log_date_mod'];
246
+ $time = strtotime($last_modified_time_db);
247
+ touch($MScanLog, $time);
248
+ }
249
+ }
250
+ }
251
+
252
  // Counts the Total # of Security Log Entries by Type & adds the info to the top of the Security Log text file before it is zipped and emailed.
253
  function bpsPro_SecLog_Entry_Counter_add_to_zip() {
254
 
374
  }
375
  }
376
 
377
+ // Zip MScan Log File - If ZipArchive Class is not available use PclZip
378
+ function bps_Zip_MScan_Log_File() {
379
+ // Use ZipArchive
380
+ if ( class_exists('ZipArchive') ) {
381
+
382
+ $zip = new ZipArchive();
383
+ $filename = WP_CONTENT_DIR . '/bps-backup/logs/mscan-log.zip';
384
+
385
+ if ( $zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE ) {
386
+ exit("Error: Cannot Open $filename\n");
387
+ }
388
+
389
+ $zip->addFile(WP_CONTENT_DIR . '/bps-backup/logs/mscan_log.txt', "mscan_log.txt");
390
+ $zip->close();
391
+
392
+ return true;
393
+
394
+ } else {
395
+
396
+ // Use PCLZip
397
+ define( 'PCLZIP_TEMPORARY_DIR', WP_CONTENT_DIR . '/bps-backup/logs/' );
398
+ require_once( ABSPATH . 'wp-admin/includes/class-pclzip.php');
399
+
400
+ if ( ini_get( 'mbstring.func_overload' ) && function_exists( 'mb_internal_encoding' ) ) {
401
+ $previous_encoding = mb_internal_encoding();
402
+ mb_internal_encoding( 'ISO-8859-1' );
403
+ }
404
+ $archive = new PclZip(WP_CONTENT_DIR . '/bps-backup/logs/mscan-log.zip');
405
+ $v_list = $archive->create(WP_CONTENT_DIR . '/bps-backup/logs/mscan_log.txt', PCLZIP_OPT_REMOVE_PATH, WP_CONTENT_DIR . '/bps-backup/logs/');
406
+
407
+ return true;
408
+
409
+ if ( $v_list == 0) {
410
+ die("Error : ".$archive->errorInfo(true) );
411
+ return false;
412
+ }
413
+ }
414
+ }
415
+
416
  ?>
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-07-25 16:19-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"
@@ -301,8 +301,8 @@ msgstr ""
301
 
302
  #: admin/core/core-export-import.php:115 admin/login/lsm-export.php:49
303
  #: admin/wizard/wizard-backup.php:187 admin/wizard/wizard-backup.php:221
304
- #: admin/wizard/wizard.php:849 admin/wizard/wizard.php:947
305
- #: admin/wizard/wizard.php:949 includes/hud-autofix-whitelist.php:744
306
  msgid "Setup Wizard Options"
307
  msgstr ""
308
 
@@ -393,7 +393,7 @@ msgid "Your Root and wp-admin Custom Code has been deleted successfully."
393
  msgstr ""
394
 
395
  #: admin/core/core-forms.php:18 admin/core/core-forms.php:98
396
- #: admin/core/core.php:1126
397
  msgid "htaccess Files Disabled: wp-admin htaccess file writing is disabled."
398
  msgstr ""
399
 
@@ -718,44 +718,40 @@ msgstr ""
718
 
719
  #: admin/core/core-forms.php:618
720
  msgid ""
721
- "The BPS WooCommerce Options Notice: Enable Login Security for WooCommerce is "
722
- "NOT set. Nothing to reset."
723
- msgstr ""
724
-
725
- #: admin/core/core-forms.php:621
726
- msgid ""
727
- "Success! The BPS WooCommerce Options Notice: Enable Login Security for "
728
- "WooCommerce is reset."
729
- msgstr ""
730
-
731
- #: admin/core/core-forms.php:627
732
- msgid ""
733
  "The New Improved BPS Speed Boost Cache Code Notice is NOT set. Nothing to "
734
  "reset."
735
  msgstr ""
736
 
737
- #: admin/core/core-forms.php:630
738
  msgid "Success! The New Improved BPS Speed Boost Cache Code Notice is reset."
739
  msgstr ""
740
 
741
- #: admin/core/core-forms.php:635
742
  msgid "The BPS Plugin Automatic Update Notice is NOT set. Nothing to reset."
743
  msgstr ""
744
 
745
- #: admin/core/core-forms.php:638
746
  msgid "Success! The BPS Plugin Automatic Update Notice is reset."
747
  msgstr ""
748
 
749
- #: admin/core/core-forms.php:643
750
  msgid ""
751
  "The Endurance Page Cache (EPC) plugin Notice is NOT set. Nothing to reset."
752
  msgstr ""
753
 
754
- #: admin/core/core-forms.php:646
755
  msgid "Success! The Endurance Page Cache (EPC) plugin Notice is reset."
756
  msgstr ""
757
 
758
- #: admin/core/core-forms.php:650
 
 
 
 
 
 
 
 
759
  msgid "Refresh Status"
760
  msgstr ""
761
 
@@ -878,7 +874,7 @@ msgid ""
878
  "Read Me help file for BPS troubleshooting steps."
879
  msgstr ""
880
 
881
- #: admin/core/core-help-text.php:15 admin/wizard/wizard.php:901
882
  msgid "Notes: "
883
  msgstr ""
884
 
@@ -945,7 +941,7 @@ msgid ""
945
  "Send Email Alerts."
946
  msgstr ""
947
 
948
- #: admin/core/core-help-text.php:18 admin/core/core.php:457
949
  msgid "HPF Cron Check Frequency:"
950
  msgstr ""
951
 
@@ -957,7 +953,7 @@ msgid ""
957
  "Options button to save your settings."
958
  msgstr ""
959
 
960
- #: admin/core/core-help-text.php:18 admin/core/core.php:468
961
  msgid "HPF Cron On|Off:"
962
  msgstr ""
963
 
@@ -967,7 +963,7 @@ msgid ""
967
  "HPF Cron Off. Click the Save HPF Cron Options button to save your settings."
968
  msgstr ""
969
 
970
- #: admin/core/core-help-text.php:18 admin/core/core.php:488
971
  msgid "Ignore Hidden Plugin Folders & Files:"
972
  msgstr ""
973
 
@@ -1069,17 +1065,19 @@ msgid ""
1069
  "permanently. To save any new htaccess code permanently use BPS Custom Code."
1070
  msgstr ""
1071
 
1072
- #: admin/core/core-help-text.php:30 admin/core/core.php:207
1073
- #: admin/core/core.php:317 admin/core/core.php:406 admin/core/core.php:518
1074
- #: admin/core/core.php:594 admin/core/core.php:670 admin/core/core.php:1444
1075
  #: admin/db-backup-security/db-backup-help-text.php:12
1076
  #: admin/db-backup-security/db-backup-help-text.php:15
1077
  #: admin/db-backup-security/db-backup-security.php:281
1078
- #: admin/login/login.php:191 admin/login/login.php:886
1079
- #: admin/maintenance/maintenance.php:200
 
 
1080
  #: admin/security-log/security-log.php:246
1081
  #: admin/system-info/system-info.php:103 admin/theme-skin/theme-skin.php:110
1082
- #: admin/wizard/wizard.php:887 admin/wizard/wizard.php:955
1083
  msgid ""
1084
  "This Read Me Help window is draggable (top) and resizable (bottom right "
1085
  "corner)"
@@ -1547,17 +1545,17 @@ msgstr ""
1547
 
1548
  #: admin/core/core-htaccess-code.php:437 admin/core/core-htaccess-code.php:521
1549
  #: admin/core/core-htaccess-code.php:590 admin/core/core-htaccess-code.php:674
1550
- #: admin/core/core.php:1038
1551
  msgid "htaccess Files Disabled: Root htaccess file writing is disabled."
1552
  msgstr ""
1553
 
1554
  #: admin/core/core-htaccess-code.php:459 admin/core/core-htaccess-code.php:612
1555
- #: admin/core/core.php:894
1556
  msgid "Failed to copy your Custom default.htaccess file: "
1557
  msgstr ""
1558
 
1559
  #: admin/core/core-htaccess-code.php:459 admin/core/core-htaccess-code.php:612
1560
- #: admin/core/core.php:894
1561
  msgid " to: "
1562
  msgstr ""
1563
 
@@ -1592,262 +1590,276 @@ msgid "Root Folder BulletProof Mode protection activated successfully."
1592
  msgstr ""
1593
 
1594
  #: admin/core/core.php:58 admin/db-backup-security/db-backup-security.php:56
1595
- #: admin/login/login.php:51 admin/maintenance/maintenance.php:51
 
1596
  #: admin/security-log/security-log.php:51 admin/system-info/system-info.php:51
1597
  #: admin/theme-skin/theme-skin.php:56 admin/wizard/wizard.php:100
1598
  msgid "Rate BPS"
1599
  msgstr ""
1600
 
1601
- #: admin/core/core.php:126 admin/includes/admin.php:245
1602
- #: admin/includes/admin.php:246
1603
  msgid "BulletProof Security ~ htaccess Core"
1604
  msgstr ""
1605
 
1606
- #: admin/core/core.php:151 admin/db-backup-security/db-backup-security.php:69
1607
- #: admin/login/login.php:126 admin/maintenance/maintenance.php:89
 
1608
  #: admin/security-log/security-log.php:64 admin/system-info/system-info.php:64
1609
  #: admin/theme-skin/theme-skin.php:69 admin/wizard/wizard.php:198
1610
  msgid "Settings Saved"
1611
  msgstr ""
1612
 
1613
- #: admin/core/core.php:178
1614
  msgid "Security Modes"
1615
  msgstr ""
1616
 
1617
- #: admin/core/core.php:179
1618
  msgid "htaccess File Editor"
1619
  msgstr ""
1620
 
1621
- #: admin/core/core.php:180 admin/core/core.php:1428 admin/core/core.php:1441
1622
  msgid "Custom Code"
1623
  msgstr ""
1624
 
1625
- #: admin/core/core.php:181
1626
  msgid "My Notes"
1627
  msgstr ""
1628
 
1629
- #: admin/core/core.php:182
1630
  msgid "Whats New"
1631
  msgstr ""
1632
 
1633
- #: admin/core/core.php:183 admin/db-backup-security/db-backup-security.php:262
1634
- #: admin/db-backup-security/db-backup-security.php:1732
1635
- #: admin/login/login.php:163 admin/maintenance/maintenance.php:164
1636
- #: admin/security-log/security-log.php:227 admin/system-info/system-info.php:90
1637
- #: admin/theme-skin/theme-skin.php:92 admin/theme-skin/theme-skin.php:215
 
 
1638
  msgid "Help &amp; FAQ"
1639
  msgstr ""
1640
 
1641
- #: admin/core/core.php:184 bulletproof-security.php:122
1642
  msgid "BPS Pro Features"
1643
  msgstr ""
1644
 
1645
- #: admin/core/core.php:192
1646
  msgid "htaccess File Security Modes ~ "
1647
  msgstr ""
1648
 
1649
- #: admin/core/core.php:192
1650
  msgid "RBM, WBM, HPF, MBM & BBM BulletProof Modes"
1651
  msgstr ""
1652
 
1653
- #: admin/core/core.php:192 admin/core/core.php:710 admin/core/core.php:1422
1654
- #: admin/core/core.php:1545 admin/core/core.php:1600
1655
  #: admin/db-backup-security/db-backup-security.php:270
1656
  #: admin/db-backup-security/db-backup-security.php:1134
1657
- #: admin/db-backup-security/db-backup-security.php:1370
1658
- #: admin/login/login.php:180 admin/maintenance/maintenance.php:184
1659
- #: admin/maintenance/maintenance.php:186
 
1660
  #: admin/security-log/security-log.php:235 admin/theme-skin/theme-skin.php:101
1661
- #: admin/wizard/wizard.php:872 admin/wizard/wizard.php:941
1662
  msgid "Want even more security protection?"
1663
  msgstr ""
1664
 
1665
- #: admin/core/core.php:192 admin/core/core.php:710 admin/core/core.php:1422
1666
- #: admin/core/core.php:1545 admin/core/core.php:1600
 
1667
  #: admin/maintenance/maintenance.php:184 admin/maintenance/maintenance.php:186
1668
  #: admin/security-log/security-log.php:235 admin/theme-skin/theme-skin.php:101
1669
- #: admin/wizard/wizard.php:872 admin/wizard/wizard.php:941
1670
  msgid ""
1671
  "Protect all of your Plugins (plugin folders and files) with an IP Firewall: "
1672
  msgstr ""
1673
 
1674
- #: admin/core/core.php:192 admin/core/core.php:710 admin/core/core.php:1422
1675
- #: admin/core/core.php:1545 admin/core/core.php:1600
 
1676
  #: admin/maintenance/maintenance.php:184 admin/maintenance/maintenance.php:186
1677
  #: admin/security-log/security-log.php:235 admin/theme-skin/theme-skin.php:101
1678
- #: admin/wizard/wizard.php:872 admin/wizard/wizard.php:941
1679
  msgid "Get BPS Pro Plugin Firewall"
1680
  msgstr ""
1681
 
1682
- #: admin/core/core.php:192 admin/core/core.php:710 admin/core/core.php:1422
1683
- #: admin/core/core.php:1545 admin/core/core.php:1600
 
1684
  #: admin/maintenance/maintenance.php:184 admin/maintenance/maintenance.php:186
1685
  #: admin/security-log/security-log.php:235 admin/theme-skin/theme-skin.php:101
1686
- #: admin/wizard/wizard.php:872 admin/wizard/wizard.php:941
1687
  msgid ""
1688
  "Protect your WordPress uploads folder against remote access or execution of "
1689
  "files: "
1690
  msgstr ""
1691
 
1692
- #: admin/core/core.php:192 admin/core/core.php:710 admin/core/core.php:1422
1693
- #: admin/core/core.php:1545 admin/core/core.php:1600
 
1694
  #: admin/maintenance/maintenance.php:184 admin/maintenance/maintenance.php:186
1695
  #: admin/security-log/security-log.php:235 admin/theme-skin/theme-skin.php:101
1696
- #: admin/wizard/wizard.php:872 admin/wizard/wizard.php:941
1697
  msgid "Get BPS Pro Uploads Anti-Exploit Guard"
1698
  msgstr ""
1699
 
1700
- #: admin/core/core.php:198 admin/core/core.php:722 admin/core/core.php:1463
1701
- #: admin/core/core.php:1499 admin/core/core.php:1516 admin/login/login.php:142
1702
- #: admin/login/login.php:198 admin/login/login.php:907
1703
- #: admin/system-info/system-info.php:116 admin/system-info/system-info.php:986
 
1704
  msgid "Permission Denied"
1705
  msgstr ""
1706
 
1707
- #: admin/core/core.php:200
1708
  msgid "Activate|Deactivate Security Modes"
1709
  msgstr ""
1710
 
1711
- #: admin/core/core.php:202 admin/core/core.php:204 admin/core/core.php:314
1712
  msgid "Root Folder BulletProof Mode (RBM)"
1713
  msgstr ""
1714
 
1715
- #: admin/core/core.php:202 admin/core/core.php:312 admin/core/core.php:401
1716
- #: admin/core/core.php:513 admin/core/core.php:589 admin/core/core.php:665
1717
- #: admin/core/core.php:716 admin/core/core.php:1428
1718
  #: admin/db-backup-security/db-backup-security.php:276
1719
  #: admin/db-backup-security/db-backup-security.php:1140
1720
- #: admin/db-backup-security/db-backup-security.php:1376
1721
- #: admin/login/login.php:186 admin/login/login.php:877
1722
- #: admin/maintenance/maintenance.php:195
 
 
1723
  #: admin/security-log/security-log.php:241 admin/system-info/system-info.php:98
1724
- #: admin/theme-skin/theme-skin.php:107 admin/wizard/wizard.php:878
1725
- #: admin/wizard/wizard.php:947
1726
  msgid "Read Me"
1727
  msgstr ""
1728
 
1729
- #: admin/core/core.php:209 admin/core/core.php:319 admin/core/core.php:1446
1730
  #: admin/db-backup-security/db-backup-security.php:284
1731
- #: admin/login/login.php:889 admin/maintenance/maintenance.php:203
1732
- #: admin/system-info/system-info.php:106
 
1733
  msgid "Forum Help Links: "
1734
  msgstr ""
1735
 
1736
- #: admin/core/core.php:212 admin/core/core.php:322
1737
  msgid "Setup Wizard & Other Video Tutorials"
1738
  msgstr ""
1739
 
1740
- #: admin/core/core.php:213 admin/core/core.php:323
1741
- #: admin/security-log/security-log.php:252
 
1742
  msgid "BPS Troubleshooting Steps"
1743
  msgstr ""
1744
 
1745
- #: admin/core/core.php:235 admin/core/core.php:238 admin/core/core.php:241
1746
- #: admin/core/core.php:244 admin/core/core.php:252 admin/core/core.php:255
1747
- #: admin/core/core.php:258 admin/core/core.php:261
1748
  msgid "RBM Status: "
1749
  msgstr ""
1750
 
1751
- #: admin/core/core.php:235 admin/core/core.php:252 admin/core/core.php:350
1752
- #: admin/core/core.php:364 admin/core/core.php:537 admin/core/core.php:551
1753
- #: admin/core/core.php:613 admin/core/core.php:627
1754
  msgid "Disabled"
1755
  msgstr ""
1756
 
1757
- #: admin/core/core.php:238 admin/core/core.php:255
1758
  msgid "Root htaccess File Does Not Exist"
1759
  msgstr ""
1760
 
1761
- #: admin/core/core.php:241 admin/core/core.php:258 admin/core/core.php:356
1762
- #: admin/core/core.php:370 admin/core/core.php:543 admin/core/core.php:557
1763
- #: admin/core/core.php:619 admin/core/core.php:633
1764
  #: admin/system-info/system-info.php:243
1765
  msgid "Activated"
1766
  msgstr ""
1767
 
1768
- #: admin/core/core.php:244 admin/core/core.php:261 admin/core/core.php:353
1769
- #: admin/core/core.php:367 admin/core/core.php:540 admin/core/core.php:554
1770
- #: admin/core/core.php:616 admin/core/core.php:630
1771
  #: admin/system-info/system-info.php:252
1772
  msgid "Deactivated"
1773
  msgstr ""
1774
 
1775
- #: admin/core/core.php:278 admin/core/core.php:296
1776
  msgid "Click OK to Activate Root Folder BulletProof Mode or click Cancel."
1777
  msgstr ""
1778
 
1779
- #: admin/core/core.php:286 admin/core/core.php:304
1780
  msgid "Click OK to Deactivate Root Folder BulletProof Mode or click Cancel."
1781
  msgstr ""
1782
 
1783
- #: admin/core/core.php:312
1784
  msgid "wp-admin Folder BulletProof Mode (WBM)"
1785
  msgstr ""
1786
 
1787
- #: admin/core/core.php:350 admin/core/core.php:353 admin/core/core.php:356
1788
- #: admin/core/core.php:364 admin/core/core.php:367 admin/core/core.php:370
1789
  msgid "WBM Status: "
1790
  msgstr ""
1791
 
1792
- #: admin/core/core.php:385
1793
  msgid "Click OK to Activate wp-admin Folder BulletProof Mode or click Cancel."
1794
  msgstr ""
1795
 
1796
- #: admin/core/core.php:393
1797
  msgid ""
1798
  "Click OK to Deactivate wp-admin Folder BulletProof Mode or click Cancel."
1799
  msgstr ""
1800
 
1801
- #: admin/core/core.php:401 admin/core/core.php:403
1802
  msgid "Hidden Plugin Folders|Files Cron (HPF)"
1803
  msgstr ""
1804
 
1805
- #: admin/core/core.php:424 admin/core/core.php:427 admin/core/core.php:435
1806
- #: admin/core/core.php:438
1807
  msgid "HPF Status: "
1808
  msgstr ""
1809
 
1810
- #: admin/core/core.php:424 admin/core/core.php:435 admin/core/core.php:470
1811
  msgid "HPF Cron On"
1812
  msgstr ""
1813
 
1814
- #: admin/core/core.php:427 admin/core/core.php:438 admin/core/core.php:471
1815
  msgid "HPF Cron Off"
1816
  msgstr ""
1817
 
1818
- #: admin/core/core.php:459
1819
  msgid "Run Check Every 1 Minute"
1820
  msgstr ""
1821
 
1822
- #: admin/core/core.php:460
1823
  msgid "Run Check Every 5 Minutes"
1824
  msgstr ""
1825
 
1826
- #: admin/core/core.php:461
1827
  msgid "Run Check Every 10 Minutes"
1828
  msgstr ""
1829
 
1830
- #: admin/core/core.php:462
1831
  msgid "Run Check Every 15 Minutes"
1832
  msgstr ""
1833
 
1834
- #: admin/core/core.php:463
1835
  msgid "Run Check Every 30 Minutes"
1836
  msgstr ""
1837
 
1838
- #: admin/core/core.php:464
1839
  msgid "Run Check Every 60 Minutes"
1840
  msgstr ""
1841
 
1842
- #: admin/core/core.php:465
1843
  msgid "Run Check Once Daily"
1844
  msgstr ""
1845
 
1846
- #: admin/core/core.php:474
1847
  msgid "Save HPF Cron Options"
1848
  msgstr ""
1849
 
1850
- #: admin/core/core.php:474
1851
  msgid ""
1852
  "The default Cron Frequency is: Run Check Every 15 Minutes. This is a "
1853
  "lightweight check that uses an insignificant amount of resources/memory so 4 "
@@ -1859,315 +1871,315 @@ msgid ""
1859
  "OK to proceed or click Cancel"
1860
  msgstr ""
1861
 
1862
- #: admin/core/core.php:489
1863
  msgid "Add Ignore rules using plugin folder names or file names."
1864
  msgstr ""
1865
 
1866
- #: admin/core/core.php:489
1867
  msgid "Use a comma and a space between folder and/or file names."
1868
  msgstr ""
1869
 
1870
- #: admin/core/core.php:489
1871
  msgid "Example: plugin-folder-name, example-file-name.php"
1872
  msgstr ""
1873
 
1874
- #: admin/core/core.php:495
1875
  msgid ""
1876
  "This option is for adding ignore rules for Hidden or Empty Plugin Folders "
1877
  "Detected by BPS or Non-standard WP files detected by BPS in your /plugins/ "
1878
  "folder."
1879
  msgstr ""
1880
 
1881
- #: admin/core/core.php:495
1882
  msgid ""
1883
  "This is an independent option setting that does not require clicking any "
1884
  "other buttons."
1885
  msgstr ""
1886
 
1887
- #: admin/core/core.php:495 admin/maintenance/maintenance.php:655
1888
- #: admin/security-log/security-log.php:540
1889
- #: admin/security-log/security-log.php:555
1890
- #: admin/security-log/security-log.php:773
1891
- #: admin/system-info/system-info.php:1042
1892
- #: admin/system-info/system-info.php:1103
1893
  msgid "Click OK to proceed or click Cancel."
1894
  msgstr ""
1895
 
1896
- #: admin/core/core.php:513
1897
  msgid "Master htaccess Folder BulletProof Mode (MBM)"
1898
  msgstr ""
1899
 
1900
- #: admin/core/core.php:515
1901
  msgid "MBM BulletProof Modes"
1902
  msgstr ""
1903
 
1904
- #: admin/core/core.php:537 admin/core/core.php:540 admin/core/core.php:543
1905
- #: admin/core/core.php:551 admin/core/core.php:554 admin/core/core.php:557
1906
  msgid "MBM Status: "
1907
  msgstr ""
1908
 
1909
- #: admin/core/core.php:572
1910
  msgid "Click OK to Activate MBM BulletProof Mode or click Cancel."
1911
  msgstr ""
1912
 
1913
- #: admin/core/core.php:580
1914
  msgid "Click OK to Deactivate MBM BulletProof Mode or click Cancel."
1915
  msgstr ""
1916
 
1917
- #: admin/core/core.php:589
1918
  msgid "BPS Backup Folder BulletProof Mode (BBM)"
1919
  msgstr ""
1920
 
1921
- #: admin/core/core.php:591
1922
  msgid "BBM BulletProof Modes"
1923
  msgstr ""
1924
 
1925
- #: admin/core/core.php:613 admin/core/core.php:616 admin/core/core.php:619
1926
- #: admin/core/core.php:627 admin/core/core.php:630 admin/core/core.php:633
1927
  msgid "BBM Status: "
1928
  msgstr ""
1929
 
1930
- #: admin/core/core.php:648
1931
  msgid "Click OK to Activate BBM BulletProof Mode or click Cancel."
1932
  msgstr ""
1933
 
1934
- #: admin/core/core.php:656
1935
  msgid ""
1936
  "Caution: BPS Backup Folder BulletProof Mode (BBM) should only be deactivated "
1937
  "for testing or troubleshooting. Be sure to activate BBM BulletProof Mode "
1938
  "after you are done testing or troubleshooting."
1939
  msgstr ""
1940
 
1941
- #: admin/core/core.php:656
1942
  msgid "Click OK to Deactivate BBM BulletProof Mode or click Cancel."
1943
  msgstr ""
1944
 
1945
- #: admin/core/core.php:665 admin/core/core.php:667
1946
  msgid "Backup & Restore BPS htaccess Files"
1947
  msgstr ""
1948
 
1949
- #: admin/core/core.php:683
1950
  msgid "Click OK to Backup BPS htaccess files or click Cancel."
1951
  msgstr ""
1952
 
1953
- #: admin/core/core.php:691
1954
  msgid "Click OK to Restore BPS htaccess files or click Cancel."
1955
  msgstr ""
1956
 
1957
- #: admin/core/core.php:710
1958
  msgid "htaccess File Editor ~ "
1959
  msgstr ""
1960
 
1961
- #: admin/core/core.php:710
1962
  msgid ""
1963
  "Check or edit BPS htaccess files/code manually/directly for testing. Use BPS "
1964
  "Custom Code to save htaccess code permanently"
1965
  msgstr ""
1966
 
1967
- #: admin/core/core.php:716 admin/core/core.php:718
1968
  msgid "htaccess File Editing"
1969
  msgstr ""
1970
 
1971
- #: admin/core/core.php:742
1972
  msgid "htaccess Files Disabled: secure.htaccess Master file is disabled."
1973
  msgstr ""
1974
 
1975
- #: admin/core/core.php:746
1976
  msgid "ERROR: A secure.htaccess Master file was NOT found."
1977
  msgstr ""
1978
 
1979
- #: admin/core/core.php:762
1980
  msgid ""
1981
  "File Open and Write test successful! The secure.htaccess Master file is "
1982
  "writable."
1983
  msgstr ""
1984
 
1985
- #: admin/core/core.php:768 admin/core/core.php:845 admin/core/core.php:946
1986
- #: admin/core/core.php:1112
1987
  msgid "Cannot write to file: "
1988
  msgstr ""
1989
 
1990
- #: admin/core/core.php:781
1991
  msgid ""
1992
  "htaccess Files Disabled: secure.htaccess Master file writing is disabled."
1993
  msgstr ""
1994
 
1995
- #: admin/core/core.php:789
1996
  msgid "Error: Unable to write to the secure.htaccess Master file."
1997
  msgstr ""
1998
 
1999
- #: admin/core/core.php:805
2000
  msgid "The secure.htaccess Master file has been updated."
2001
  msgstr ""
2002
 
2003
- #: admin/core/core.php:819
2004
  msgid "htaccess Files Disabled: default.htaccess Master file is disabled."
2005
  msgstr ""
2006
 
2007
- #: admin/core/core.php:823
2008
  msgid "ERROR: A default.htaccess Master file was NOT found."
2009
  msgstr ""
2010
 
2011
- #: admin/core/core.php:839
2012
  msgid ""
2013
  "File Open and Write test successful! The default.htaccess Master file is "
2014
  "writable."
2015
  msgstr ""
2016
 
2017
- #: admin/core/core.php:858
2018
  msgid ""
2019
  "htaccess Files Disabled: default.htaccess Master file writing is disabled."
2020
  msgstr ""
2021
 
2022
- #: admin/core/core.php:866
2023
  msgid "Error: Unable to write to the default.htaccess Master file."
2024
  msgstr ""
2025
 
2026
- #: admin/core/core.php:882
2027
  msgid "The default.htaccess Master file has been updated."
2028
  msgstr ""
2029
 
2030
- #: admin/core/core.php:894
2031
  msgid ""
2032
  " Check that the /bps-backup/ and /master-backups/ folders exist and the "
2033
  "folder permissions or Ownership for these folders."
2034
  msgstr ""
2035
 
2036
- #: admin/core/core.php:899
2037
  msgid ""
2038
  "Your Custom default.htaccess Master file has been successfully saved to: "
2039
  msgstr ""
2040
 
2041
- #: admin/core/core.php:914
2042
  msgid "wpadmin-secure.htaccess file writing is disabled."
2043
  msgstr ""
2044
 
2045
- #: admin/core/core.php:920
2046
  msgid ""
2047
  "htaccess Files Disabled: wpadmin-secure.htaccess Master file is disabled."
2048
  msgstr ""
2049
 
2050
- #: admin/core/core.php:924
2051
  msgid "ERROR: A wpadmin-secure.htaccess Master file was NOT found."
2052
  msgstr ""
2053
 
2054
- #: admin/core/core.php:940
2055
  msgid ""
2056
  "File Open and Write test successful! The wpadmin-secure.htaccess Master file "
2057
  "is writable."
2058
  msgstr ""
2059
 
2060
- #: admin/core/core.php:960
2061
  msgid ""
2062
  "htaccess Files Disabled: wpadmin-secure.htaccess Master file writing is "
2063
  "disabled."
2064
  msgstr ""
2065
 
2066
- #: admin/core/core.php:968
2067
  msgid "Error: Unable to write to the wpadmin-secure.htaccess Master file."
2068
  msgstr ""
2069
 
2070
- #: admin/core/core.php:984
2071
  msgid "The wpadmin-secure.htaccess Master file has been updated."
2072
  msgstr ""
2073
 
2074
- #: admin/core/core.php:998
2075
  msgid "htaccess Files Disabled: Root htaccess file does not exist."
2076
  msgstr ""
2077
 
2078
- #: admin/core/core.php:1002
2079
  msgid "ERROR: An htaccess file was NOT found in your root folder"
2080
  msgstr ""
2081
 
2082
- #: admin/core/core.php:1018
2083
  msgid ""
2084
  "File Open and Write test successful! Your currently active root htaccess "
2085
  "file is writable."
2086
  msgstr ""
2087
 
2088
- #: admin/core/core.php:1025
2089
  msgid "Your root htaccess file is Locked with Read Only Permissions."
2090
  msgstr ""
2091
 
2092
- #: admin/core/core.php:1025
2093
  msgid ""
2094
  "Use the Lock and Unlock buttons below to Lock or Unlock your root htaccess "
2095
  "file for editing."
2096
  msgstr ""
2097
 
2098
- #: admin/core/core.php:1046
2099
  msgid ""
2100
  "Error: Unable to write to the Root htaccess file. If your Root htaccess file "
2101
  "is locked you must unlock first."
2102
  msgstr ""
2103
 
2104
- #: admin/core/core.php:1062
2105
  msgid "Your currently active root htaccess file has been updated."
2106
  msgstr ""
2107
 
2108
- #: admin/core/core.php:1079
2109
  msgid "wp-admin active htaccess file writing is disabled."
2110
  msgstr ""
2111
 
2112
- #: admin/core/core.php:1085
2113
  msgid "htaccess Files Disabled: wp-admin folder htaccess file does not exist."
2114
  msgstr ""
2115
 
2116
- #: admin/core/core.php:1089
2117
  msgid "ERROR: An htaccess file was NOT found in your wp-admin folder"
2118
  msgstr ""
2119
 
2120
- #: admin/core/core.php:1105
2121
  msgid ""
2122
  "File Open and Write test successful! Your currently active wp-admin htaccess "
2123
  "file is writable."
2124
  msgstr ""
2125
 
2126
- #: admin/core/core.php:1134
2127
  msgid "Error: Unable to write to the wp-admin htaccess file."
2128
  msgstr ""
2129
 
2130
- #: admin/core/core.php:1150
2131
  msgid "Your currently active wp-admin htaccess file has been updated."
2132
  msgstr ""
2133
 
2134
- #: admin/core/core.php:1167
2135
  msgid "Your Root htaccess file has been Locked."
2136
  msgstr ""
2137
 
2138
- #: admin/core/core.php:1172
2139
  msgid "Unable to Lock your Root htaccess file."
2140
  msgstr ""
2141
 
2142
- #: admin/core/core.php:1186
2143
  msgid "Your Root htaccess file has been Unlocked."
2144
  msgstr ""
2145
 
2146
- #: admin/core/core.php:1191
2147
  msgid "Unable to Unlock your Root htaccess file."
2148
  msgstr ""
2149
 
2150
- #: admin/core/core.php:1214
2151
  msgid "Click OK to Lock your Root htaccess file or click Cancel."
2152
  msgstr ""
2153
 
2154
- #: admin/core/core.php:1214
2155
  msgid ""
2156
  "Note: The File Open and Write Test window will still display the last status "
2157
  "of the file as Unlocked. To see the current status refresh your browser."
2158
  msgstr ""
2159
 
2160
- #: admin/core/core.php:1222
2161
  msgid "Click OK to Unlock your Root htaccess file or click Cancel."
2162
  msgstr ""
2163
 
2164
- #: admin/core/core.php:1222
2165
  msgid ""
2166
  "Note: The File Open and Write Test window will still display the last status "
2167
  "of the file as Locked. To see the current status refresh your browser."
2168
  msgstr ""
2169
 
2170
- #: admin/core/core.php:1231
2171
  msgid ""
2172
  "Turning AutoLock On will allow BPS Pro to automatically lock your Root ."
2173
  "htaccess file. For some folks this causes a problem because their Web Hosts "
@@ -2175,22 +2187,22 @@ msgid ""
2175
  "BPS Pro to AutoLock the Root .htaccess file works fine."
2176
  msgstr ""
2177
 
2178
- #: admin/core/core.php:1231
2179
  msgid "Click OK to Turn AutoLock On or click Cancel."
2180
  msgstr ""
2181
 
2182
- #: admin/core/core.php:1233 admin/system-info/system-info.php:759
2183
- #: admin/system-info/system-info.php:767 admin/system-info/system-info.php:775
2184
- #: admin/system-info/system-info.php:783 admin/system-info/system-info.php:791
2185
- #: admin/system-info/system-info.php:799 admin/system-info/system-info.php:807
2186
- #: admin/system-info/system-info.php:815 admin/system-info/system-info.php:834
2187
- #: includes/functions.php:538 includes/functions.php:713
2188
- #: includes/functions.php:760 includes/functions.php:872
2189
- #: includes/functions.php:918
2190
  msgid "On"
2191
  msgstr ""
2192
 
2193
- #: admin/core/core.php:1243
2194
  msgid ""
2195
  "Turning AutoLock Off will prevent BPS Pro from automatically locking your "
2196
  "Root .htaccess file. For some folks this is necessary because their Web "
@@ -2198,51 +2210,51 @@ msgid ""
2198
  "allowing BPS Pro to AutoLock the Root .htaccess file works fine."
2199
  msgstr ""
2200
 
2201
- #: admin/core/core.php:1243
2202
  msgid "Click OK to Turn AutoLock Off or click Cancel."
2203
  msgstr ""
2204
 
2205
- #: admin/core/core.php:1245 admin/system-info/system-info.php:526
2206
- #: admin/system-info/system-info.php:762 admin/system-info/system-info.php:770
2207
- #: admin/system-info/system-info.php:778 admin/system-info/system-info.php:786
2208
- #: admin/system-info/system-info.php:794 admin/system-info/system-info.php:802
2209
- #: admin/system-info/system-info.php:810 admin/system-info/system-info.php:818
2210
- #: admin/system-info/system-info.php:826 admin/system-info/system-info.php:837
2211
- #: includes/functions.php:765 includes/functions.php:878
2212
- #: includes/functions.php:924 includes/general-functions.php:285
2213
- #: includes/general-functions.php:300
2214
  msgid "Off"
2215
  msgstr ""
2216
 
2217
- #: admin/core/core.php:1260
2218
  msgid "secure.htaccess"
2219
  msgstr ""
2220
 
2221
- #: admin/core/core.php:1261
2222
  msgid "default.htaccess"
2223
  msgstr ""
2224
 
2225
- #: admin/core/core.php:1262
2226
  msgid "wpadmin-secure.htaccess"
2227
  msgstr ""
2228
 
2229
- #: admin/core/core.php:1263
2230
  msgid "Your Current Root htaccess File"
2231
  msgstr ""
2232
 
2233
- #: admin/core/core.php:1264
2234
  msgid "Your Current wp-admin htaccess File"
2235
  msgstr ""
2236
 
2237
- #: admin/core/core.php:1366
2238
  msgid "YOUR ROOT HTACCESS FILE IS LOCKED."
2239
  msgstr ""
2240
 
2241
- #: admin/core/core.php:1366
2242
  msgid "YOUR FILE EDITS|CHANGES CANNOT BE SAVED."
2243
  msgstr ""
2244
 
2245
- #: admin/core/core.php:1366
2246
  msgid ""
2247
  "Click Cancel, copy the file editing changes you made to save them and then "
2248
  "click the Unlock .htaccess File button to unlock your Root .htaccess file. "
@@ -2251,44 +2263,44 @@ msgid ""
2251
  "to save your file edits/changes."
2252
  msgstr ""
2253
 
2254
- #: admin/core/core.php:1422
2255
  msgid "htaccess File Custom Code ~ "
2256
  msgstr ""
2257
 
2258
- #: admin/core/core.php:1422
2259
  msgid ""
2260
  "Save custom htaccess code for your Root and wp-admin htaccess Files "
2261
  "permanently"
2262
  msgstr ""
2263
 
2264
- #: admin/core/core.php:1434
2265
  msgid "Reset|Recheck Dismiss Notices: "
2266
  msgstr ""
2267
 
2268
- #: admin/core/core.php:1449
2269
  msgid "Brute Force Login Page Protection code"
2270
  msgstr ""
2271
 
2272
- #: admin/core/core.php:1457 admin/core/core.php:1643
2273
- #: admin/wizard/wizard.php:893
2274
  msgid "Custom Code Video Tutorial"
2275
  msgstr ""
2276
 
2277
- #: admin/core/core.php:1458
2278
  msgid "BulletProof Security Forum"
2279
  msgstr ""
2280
 
2281
- #: admin/core/core.php:1475
2282
  msgid ""
2283
  "Clicking OK will Import all of your Root and wp-admin Custom Code from the "
2284
  "cc-master.zip file on your computer."
2285
  msgstr ""
2286
 
2287
- #: admin/core/core.php:1475
2288
  msgid "Click OK to Import Custom Code or click Cancel."
2289
  msgstr ""
2290
 
2291
- #: admin/core/core.php:1484
2292
  msgid ""
2293
  "Clicking OK will Export (copy) all of your Root and wp-admin Custom Code "
2294
  "into the cc-master.zip file, which you can then download to your computer by "
@@ -2296,53 +2308,53 @@ msgid ""
2296
  "success message."
2297
  msgstr ""
2298
 
2299
- #: admin/core/core.php:1484
2300
  msgid "Click OK to Export Custom Code or click Cancel."
2301
  msgstr ""
2302
 
2303
- #: admin/core/core.php:1492
2304
  msgid ""
2305
  "Clicking OK will delete all of your Root and wp-admin Custom Code from all "
2306
  "of the Custom Code text boxes."
2307
  msgstr ""
2308
 
2309
- #: admin/core/core.php:1492
2310
  msgid "Click OK to Delete Custom Code or click Cancel."
2311
  msgstr ""
2312
 
2313
- #: admin/core/core.php:1532
2314
  msgid ""
2315
  "Your My Notes Personal Notes and/or htaccess Code Notes saved successfully "
2316
  "to your WordPress Database."
2317
  msgstr ""
2318
 
2319
- #: admin/core/core.php:1545
2320
  msgid "My Notes ~ "
2321
  msgstr ""
2322
 
2323
- #: admin/core/core.php:1545
2324
  msgid "Save Personal Notes and htaccess Code Notes to your WordPress Database"
2325
  msgstr ""
2326
 
2327
- #: admin/core/core.php:1587
2328
- #: admin/db-backup-security/db-backup-security.php:1736
2329
- #: admin/theme-skin/theme-skin.php:219
2330
  msgid "Whats New in "
2331
  msgstr ""
2332
 
2333
- #: admin/core/core.php:1587
2334
  msgid " and General Help Info & Tips"
2335
  msgstr ""
2336
 
2337
- #: admin/core/core.php:1592
2338
  msgid "The BPS Changelog|Whats New page has been moved to the "
2339
  msgstr ""
2340
 
2341
- #: admin/core/core.php:1592
2342
  msgid "Reasons for this Changelog|Whats New page change: "
2343
  msgstr ""
2344
 
2345
- #: admin/core/core.php:1592
2346
  msgid ""
2347
  "The BPS Changelog|Whats New page will not have to be translated by the "
2348
  "WordPress PolyGlots Language Packs Team for each new version release of BPS, "
@@ -2351,65 +2363,69 @@ msgid ""
2351
  "BPS version changes through the years and other beneficial reasons."
2352
  msgstr ""
2353
 
2354
- #: admin/core/core.php:1600 admin/db-backup-security/db-backup-security.php:270
2355
  #: admin/db-backup-security/db-backup-security.php:1134
2356
- #: admin/db-backup-security/db-backup-security.php:1370
 
2357
  #: admin/maintenance/maintenance.php:184 admin/maintenance/maintenance.php:186
2358
  #: admin/security-log/security-log.php:235 admin/theme-skin/theme-skin.php:101
2359
- #: admin/wizard/wizard.php:872 admin/wizard/wizard.php:941
2360
  msgid ""
2361
  "Protect all of your website files with AutoRestore|Quarantine Intrusion "
2362
  "Detection & Prevention System: "
2363
  msgstr ""
2364
 
2365
- #: admin/core/core.php:1600 admin/db-backup-security/db-backup-security.php:270
2366
  #: admin/db-backup-security/db-backup-security.php:1134
2367
- #: admin/db-backup-security/db-backup-security.php:1370
 
2368
  #: admin/maintenance/maintenance.php:184 admin/maintenance/maintenance.php:186
2369
- #: admin/security-log/security-log.php:235 admin/theme-skin/theme-skin.php:101
2370
- #: admin/wizard/wizard.php:872 admin/wizard/wizard.php:941
 
2371
  msgid "Get BPS Pro ARQ IDPS"
2372
  msgstr ""
2373
 
2374
- #: admin/core/core.php:1600 admin/maintenance/maintenance.php:184
2375
- #: admin/maintenance/maintenance.php:186
2376
  #: admin/security-log/security-log.php:235 admin/theme-skin/theme-skin.php:101
2377
- #: admin/wizard/wizard.php:872 admin/wizard/wizard.php:941
2378
  msgid ""
2379
  "Protect against SpamBot & HackerBot (auto-registering, auto-logins, auto-"
2380
  "posting, auto-commenting): "
2381
  msgstr ""
2382
 
2383
- #: admin/core/core.php:1600 admin/login/login.php:180
 
2384
  #: admin/maintenance/maintenance.php:184 admin/maintenance/maintenance.php:186
2385
  #: admin/security-log/security-log.php:235 admin/theme-skin/theme-skin.php:101
2386
- #: admin/wizard/wizard.php:872 admin/wizard/wizard.php:941
2387
  msgid "Get BPS Pro JTC Anti-Spam|Anti-Hacker"
2388
  msgstr ""
2389
 
2390
- #: admin/core/core.php:1605
2391
  msgid "General Help Info & Tips:"
2392
  msgstr ""
2393
 
2394
- #: admin/core/core.php:1609
2395
  msgid "If BPS plugin pages are not displaying visually correct you can "
2396
  msgstr ""
2397
 
2398
- #: admin/core/core.php:1613
2399
  msgid "BPS Video Tutorials|Setup Wizard: "
2400
  msgstr ""
2401
 
2402
- #: admin/core/core.php:1621
2403
  msgid "Troubleshooting Steps & The BPS Security Log: "
2404
  msgstr ""
2405
 
2406
- #: admin/core/core.php:1621
2407
  msgid ""
2408
  "All BPS plugin features can be turned Off/On individually to confirm, "
2409
  "eliminate or isolate a problem or issue that may or may not be caused by BPS."
2410
  msgstr ""
2411
 
2412
- #: admin/core/core.php:1621
2413
  msgid ""
2414
  "The BPS Security Log is a primary troubleshooting tool. If BPS is blocking "
2415
  "something legitimate in another plugin or theme then a Security Log entry "
@@ -2418,68 +2434,69 @@ msgid ""
2418
  "being blocked."
2419
  msgstr ""
2420
 
2421
- #: admin/core/core.php:1621
2422
  msgid ""
2423
  "Search the Forum site to see if a known issue or problem is already posted "
2424
  "with a solution/whitelist rule in the Forum."
2425
  msgstr ""
2426
 
2427
- #: admin/core/core.php:1634 admin/maintenance/maintenance.php:2092
2428
  msgid "Help & FAQ"
2429
  msgstr ""
2430
 
2431
- #: admin/core/core.php:1638 admin/login/login.php:1243
2432
- #: admin/maintenance/maintenance.php:2097
2433
- #: admin/security-log/security-log.php:881
2434
- #: admin/system-info/system-info.php:1122
2435
  msgid "Contributors Page"
2436
  msgstr ""
2437
 
2438
- #: admin/core/core.php:1639
2439
  msgid "WP Permalinks - Custom Permalink Structure Help Info"
2440
  msgstr ""
2441
 
2442
- #: admin/core/core.php:1640 admin/login/login.php:1242
2443
- #: admin/maintenance/maintenance.php:2098
2444
- #: admin/security-log/security-log.php:880
2445
- #: admin/system-info/system-info.php:1121
2446
  msgid "Security Log Event Codes"
2447
  msgstr ""
2448
 
2449
- #: admin/core/core.php:1641
2450
  msgid "Adding a Custom 403 Forbidden Page For Your Website"
2451
  msgstr ""
2452
 
2453
- #: admin/core/core.php:1642
2454
- #: admin/db-backup-security/db-backup-security.php:1740
2455
- #: admin/login/login.php:1244 admin/maintenance/maintenance.php:2099
2456
- #: admin/security-log/security-log.php:882
2457
- #: admin/system-info/system-info.php:1123 admin/theme-skin/theme-skin.php:222
 
2458
  msgid "Forum: Search, Troubleshooting Steps & Post Questions For Assistance"
2459
  msgstr ""
2460
 
2461
- #: admin/core/core.php:1655
2462
  msgid "BulletProof Security Pro Feature Highlights"
2463
  msgstr ""
2464
 
2465
- #: admin/core/core.php:1665
2466
  msgid "The Ultimate Security Protection"
2467
  msgstr ""
2468
 
2469
- #: admin/core/core.php:1668
2470
  msgid "BPS Pro One-Click Setup Wizard & Demo Video Tutorial"
2471
  msgstr ""
2472
 
2473
- #: admin/core/core.php:1669
2474
  msgid "View All BPS Pro Features"
2475
  msgstr ""
2476
 
2477
- #: admin/core/core.php:1676
2478
  msgid ""
2479
  "The Complete Website Security Solution for Hacker and Spammer Protection"
2480
  msgstr ""
2481
 
2482
- #: admin/core/core.php:1676
2483
  msgid ""
2484
  "BulletProof Security Pro has an amazing track record. BPS Pro has been "
2485
  "publicly available for 6+ years and is installed on over 40,000 websites "
@@ -2487,47 +2504,47 @@ msgid ""
2487
  "hacked."
2488
  msgstr ""
2489
 
2490
- #: admin/core/core.php:1676
2491
  msgid ""
2492
  "Why pay 10 times or more for other premium WordPress Security Plugins with "
2493
  "recurring yearly subscriptions when you can get the best WordPress Security "
2494
  "Plugin for an extremely low one-time purchase price?"
2495
  msgstr ""
2496
 
2497
- #: admin/core/core.php:1676
2498
  msgid "View Cost Comparison"
2499
  msgstr ""
2500
 
2501
- #: admin/core/core.php:1676
2502
  msgid ""
2503
  "30-Day Money-Back Guarantee: If you are dissatisfied with BulletProof "
2504
  "Security Pro for any reason. We offer a no questions asked full refund."
2505
  msgstr ""
2506
 
2507
- #: admin/core/core.php:1679
2508
  msgid "One-Click Setup Wizard Installation: "
2509
  msgstr ""
2510
 
2511
- #: admin/core/core.php:1679
2512
  msgid ""
2513
  "Fast, simple and complete BPS Pro installation and setup in less than 1 "
2514
  "minute."
2515
  msgstr ""
2516
 
2517
- #: admin/core/core.php:1681
2518
  msgid "One-Click Upgrade: "
2519
  msgstr ""
2520
 
2521
- #: admin/core/core.php:1681
2522
  msgid "One-click plugin upgrade on the WordPress Plugins page."
2523
  msgstr ""
2524
 
2525
- #: admin/core/core.php:1683
2526
  msgid ""
2527
  "AutoRestore|Quarantine Intrusion Detection and Prevention System (ARQ IDPS): "
2528
  msgstr ""
2529
 
2530
- #: admin/core/core.php:1683
2531
  msgid ""
2532
  "ARQ IDPS is a real-time file scanner that automatically quarantines "
2533
  "malicious hacker files and autorestores legitimate website files if they "
@@ -2541,11 +2558,23 @@ msgid ""
2541
  "Plugin and Theme Automatic, Manual and Shiny installations and updates."
2542
  msgstr ""
2543
 
2544
- #: admin/core/core.php:1685
 
 
 
 
 
 
 
 
 
 
 
 
2545
  msgid "Plugin Firewall|Plugin Firewall AutoPilot Mode: "
2546
  msgstr ""
2547
 
2548
- #: admin/core/core.php:1685
2549
  msgid ""
2550
  "The Plugin Firewall protects all of your Plugins (plugin folders and files) "
2551
  "with an IP Address Firewall, which prevents/blocks/forbids Remote Access to "
@@ -2554,16 +2583,16 @@ msgid ""
2554
  "access to the plugins folder based on this criteria: Domain name, Server IP "
2555
  "Address and Public IP|Your Computer IP Address. The Plugin Firewall uses a "
2556
  "true IP Address based Firewall that automatically updates your IP Address in "
2557
- "real-time when your IP Address changes. Plugin Firewall AutoPilot Mode "
2558
- "automatically creates Plugin Firewall whitelist rules in real-time for any "
2559
- "Plugins that require whitelist rules."
2560
  msgstr ""
2561
 
2562
- #: admin/core/core.php:1687
2563
  msgid "JTC Anti-Spam|Anti-Hacker (JTC): "
2564
  msgstr ""
2565
 
2566
- #: admin/core/core.php:1687
2567
  #, php-format
2568
  msgid ""
2569
  "Blocks 100% of all SpamBot and HackerBot Brute Force Login attacks (auto-"
@@ -2571,16 +2600,17 @@ msgid ""
2571
  "spamming and hacking is automated with SpamBots and HackerBots. JTC provides "
2572
  "website security protection as well as website Anti-Spam protection. JTC "
2573
  "protects these website Pages|Forms: Login Page|Form, Registration Page|Form, "
2574
- "Lost Password Page|Form, Comment Page|Form, BuddyPress Register Page|Form "
2575
- "and the BuddyPress Sidebar Login Form with a user friendly & customizable "
2576
- "jQuery ToolTip CAPTCHA. JTC also includes a SpamBot Trap."
 
2577
  msgstr ""
2578
 
2579
- #: admin/core/core.php:1689
2580
  msgid "Uploads Folder Anti-Exploit Guard (UAEG): "
2581
  msgstr ""
2582
 
2583
- #: admin/core/core.php:1689
2584
  msgid ""
2585
  "Protects the WordPress Uploads folder. ONLY safe image files with valid "
2586
  "image file extensions such as jpg, gif, png, etc. can be accessed, opened or "
@@ -2590,11 +2620,11 @@ msgid ""
2590
  "executed in the WordPress Uploads folder."
2591
  msgstr ""
2592
 
2593
- #: admin/core/core.php:1691
2594
  msgid "DB Monitor Intrusion Detection System (IDS): "
2595
  msgstr ""
2596
 
2597
- #: admin/core/core.php:1691
2598
  msgid ""
2599
  "The DB Monitor is an automated Intrusion Detection System (IDS) that alerts "
2600
  "you via email anytime a change/modification occurs in your WordPress "
@@ -2605,11 +2635,11 @@ msgid ""
2605
  "help info."
2606
  msgstr ""
2607
 
2608
- #: admin/core/core.php:1693
2609
  msgid "DB Diff Tool: "
2610
  msgstr ""
2611
 
2612
- #: admin/core/core.php:1693
2613
  msgid ""
2614
  "The DB Diff Tool compares old database tables from DB backups to current "
2615
  "database tables and displays any differences in the data/content of those 2 "
@@ -2617,11 +2647,11 @@ msgid ""
2617
  "not only just DB data."
2618
  msgstr ""
2619
 
2620
- #: admin/core/core.php:1695
2621
  msgid "DB Status & Info: "
2622
  msgstr ""
2623
 
2624
- #: admin/core/core.php:1695
2625
  msgid ""
2626
  "General DB Info shows commonly checked DB status and info about your "
2627
  "WordPress database at a glance. Extensive DB Info shows extensive DB status "
@@ -2630,11 +2660,11 @@ msgid ""
2630
  "SHOW GLOBAL VARIABLES and SHOW SESSION VARIABLES."
2631
  msgstr ""
2632
 
2633
- #: admin/core/core.php:1697
2634
  msgid "S-Monitor: "
2635
  msgstr ""
2636
 
2637
- #: admin/core/core.php:1697
2638
  msgid ""
2639
  "S-Monitor is the centralized Security Monitoring and Alerting Core where you "
2640
  "can manage and choose BPS Pro settings for Dashboard Alerts, Dashboard "
@@ -2644,11 +2674,11 @@ msgid ""
2644
  "easy to change all/any BPS Pro settings to your particular preferences."
2645
  msgstr ""
2646
 
2647
- #: admin/core/core.php:1699
2648
  msgid "Advanced Real-Time Alerting & Heads Up Dashboard Status Display: "
2649
  msgstr ""
2650
 
2651
- #: admin/core/core.php:1699
2652
  msgid ""
2653
  "BPS Pro checks and displays error, warning, notifications and alert messages "
2654
  "in real time. You can choose how you want these messages displayed to you "
@@ -2656,11 +2686,11 @@ msgid ""
2656
  "Dashboard, BPS Pro pages only, Turned off, Email Alerts, Logging..."
2657
  msgstr ""
2658
 
2659
- #: admin/core/core.php:1702
2660
  msgid "Custom php.ini|ini_set Options: "
2661
  msgstr ""
2662
 
2663
- #: admin/core/core.php:1702
2664
  msgid ""
2665
  "Quickly create a custom php.ini file for your website or use ini_set Options "
2666
  "to increase security and performance with just a few clicks. Additional P-"
@@ -2668,11 +2698,11 @@ msgid ""
2668
  "Protected PHP Error Log, PHP Error Alerts, Secure phpinfo Viewer..."
2669
  msgstr ""
2670
 
2671
- #: admin/core/core.php:1704
2672
  msgid "Pro Tools: 16 mini-plugins: "
2673
  msgstr ""
2674
 
2675
- #: admin/core/core.php:1704
2676
  msgid ""
2677
  "Online Base64 Decoder, Offline Base64 Decode|Encode, Mcrypt ~ Decrypt|"
2678
  "Encrypt, Crypt Encryption, Scheduled Crons (display and reschedule/reset "
@@ -2691,33 +2721,34 @@ msgid ""
2691
  "vulnerable to an XML-RPC exploit)."
2692
  msgstr ""
2693
 
2694
- #: admin/core/core.php:1712
2695
  msgid "BPS Pro Version Release Dates"
2696
  msgstr ""
2697
 
2698
- #: admin/core/core.php:1716 admin/core/core.php:1717 admin/core/core.php:1718
2699
  #: admin/core/core.php:1719 admin/core/core.php:1720 admin/core/core.php:1721
2700
  #: admin/core/core.php:1722 admin/core/core.php:1723 admin/core/core.php:1724
2701
- #: admin/core/core.php:1729 admin/core/core.php:1730 admin/core/core.php:1731
2702
- #: admin/core/core.php:1732 admin/core/core.php:1733 admin/core/core.php:1734
2703
  #: admin/core/core.php:1735 admin/core/core.php:1736 admin/core/core.php:1737
2704
  #: admin/core/core.php:1738 admin/core/core.php:1739 admin/core/core.php:1740
2705
- #: admin/core/core.php:1741 admin/core/core.php:1747 admin/core/core.php:1748
2706
- #: admin/core/core.php:1749 admin/core/core.php:1750 admin/core/core.php:1751
2707
  #: admin/core/core.php:1752 admin/core/core.php:1753 admin/core/core.php:1754
2708
  #: admin/core/core.php:1755 admin/core/core.php:1756 admin/core/core.php:1757
2709
  #: admin/core/core.php:1758 admin/core/core.php:1759 admin/core/core.php:1760
2710
- #: admin/core/core.php:1766 admin/core/core.php:1767 admin/core/core.php:1768
2711
- #: admin/core/core.php:1769 admin/core/core.php:1770 admin/core/core.php:1771
2712
  #: admin/core/core.php:1772 admin/core/core.php:1773 admin/core/core.php:1774
2713
  #: admin/core/core.php:1775 admin/core/core.php:1776 admin/core/core.php:1777
2714
- #: admin/core/core.php:1778 admin/core/core.php:1784 admin/core/core.php:1785
2715
- #: admin/core/core.php:1786 admin/core/core.php:1787 admin/core/core.php:1788
2716
  #: admin/core/core.php:1789 admin/core/core.php:1790 admin/core/core.php:1791
2717
- #: admin/core/core.php:1792 admin/core/core.php:1793 admin/core/core.php:1799
2718
- #: admin/core/core.php:1800 admin/core/core.php:1801 admin/core/core.php:1802
2719
  #: admin/core/core.php:1803 admin/core/core.php:1804 admin/core/core.php:1805
2720
  #: admin/core/core.php:1806 admin/core/core.php:1807 admin/core/core.php:1808
 
 
2721
  #, php-format
2722
  msgid ""
2723
  "<a href=\"%2$s\" target=\"_blank\" title=\"Link Opens in New Browser Window"
@@ -2789,7 +2820,6 @@ msgid ""
2789
  msgstr ""
2790
 
2791
  #: admin/db-backup-security/db-backup-help-text.php:9
2792
- #: admin/db-backup-security/db-backup-help-text.php:12
2793
  #: admin/login/lsm-help-text.php:10 admin/security-log/security-log.php:255
2794
  msgid "NOTE: "
2795
  msgstr ""
@@ -3194,13 +3224,16 @@ msgid ""
3194
  msgstr ""
3195
 
3196
  #: admin/db-backup-security/db-backup-help-text.php:12
3197
- #: admin/login/lsm-help-text.php:10 admin/security-log/security-log.php:255
 
 
 
 
 
 
3198
  msgid ""
3199
- "Email Alerting and Log file options are located in S-Monitor in BPS Pro "
3200
- "instead of being on the Login Security page, Security Log & DB Backup Log "
3201
- "pages. The Email Alerting & Log File Options Form is identical on the Login "
3202
- "Security, Security Log & DB Backup Log pages in BPS free. You can change and "
3203
- "save your email alerting and log file options on any of these pages."
3204
  msgstr ""
3205
 
3206
  #: admin/db-backup-security/db-backup-help-text.php:12
@@ -3240,7 +3273,7 @@ msgid "Displays the last time a DB Backup Log entry was logged."
3240
  msgstr ""
3241
 
3242
  #: admin/db-backup-security/db-backup-help-text.php:12
3243
- #: admin/security-log/security-log.php:255
3244
  msgid "Delete Log Button"
3245
  msgstr ""
3246
 
@@ -3372,7 +3405,7 @@ msgstr ""
3372
  #: admin/db-backup-security/db-backup-security.php:259
3373
  #: admin/db-backup-security/db-backup-security.php:276
3374
  #: admin/db-backup-security/db-backup-security.php:278
3375
- #: admin/includes/admin.php:249
3376
  msgid "DB Backup"
3377
  msgstr ""
3378
 
@@ -3383,8 +3416,8 @@ msgid "DB Backup Log"
3383
  msgstr ""
3384
 
3385
  #: admin/db-backup-security/db-backup-security.php:261
3386
- #: admin/db-backup-security/db-backup-security.php:1376
3387
- #: admin/db-backup-security/db-backup-security.php:1378
3388
  msgid "DB Table Prefix Changer"
3389
  msgstr ""
3390
 
@@ -3414,8 +3447,9 @@ msgstr ""
3414
  #: admin/db-backup-security/db-backup-security.php:350
3415
  #: admin/db-backup-security/db-backup-security.php:535
3416
  #: admin/db-backup-security/db-backup-security.php:553
3417
- #: admin/login/login.php:435 admin/login/login.php:464
3418
- #: admin/login/login.php:536 admin/login/login.php:565
 
3419
  msgid "Delete"
3420
  msgstr ""
3421
 
@@ -3543,11 +3577,12 @@ msgid "Backup Job Settings|Independent Options"
3543
  msgstr ""
3544
 
3545
  #: admin/db-backup-security/db-backup-security.php:692
 
3546
  msgid "All"
3547
  msgstr ""
3548
 
3549
  #: admin/db-backup-security/db-backup-security.php:693
3550
- #: admin/db-backup-security/db-backup-security.php:1589
3551
  msgid "DB Table Name"
3552
  msgstr ""
3553
 
@@ -4031,6 +4066,7 @@ msgid ""
4031
  msgstr ""
4032
 
4033
  #: admin/db-backup-security/db-backup-security.php:1159
 
4034
  msgid ""
4035
  "Then click the Delete Log button to delete the contents of this Log file."
4036
  msgstr ""
@@ -4039,192 +4075,92 @@ msgstr ""
4039
  msgid "DB Backup Log Last Modified Time: "
4040
  msgstr ""
4041
 
4042
- #: admin/db-backup-security/db-backup-security.php:1190
4043
- #: admin/login/login.php:302 admin/security-log/security-log.php:453
4044
- msgid "Send Email Alerts & Log Files To:"
4045
- msgstr ""
4046
-
4047
- #: admin/db-backup-security/db-backup-security.php:1194
4048
- #: admin/login/login.php:306 admin/security-log/security-log.php:457
4049
- msgid "Send Email Alerts & Log Files From:"
4050
- msgstr ""
4051
-
4052
- #: admin/db-backup-security/db-backup-security.php:1198
4053
- #: admin/login/login.php:310 admin/security-log/security-log.php:461
4054
- msgid "Send Email Alerts & Log Files Cc:"
4055
- msgstr ""
4056
-
4057
- #: admin/db-backup-security/db-backup-security.php:1202
4058
- #: admin/login/login.php:314 admin/security-log/security-log.php:465
4059
- msgid "Send Email Alerts & Log Files Bcc:"
4060
- msgstr ""
4061
-
4062
- #: admin/db-backup-security/db-backup-security.php:1210
4063
- #: admin/login/login.php:322 admin/security-log/security-log.php:473
4064
- msgid "Login Security: Send Login Security Email Alert When..."
4065
- msgstr ""
4066
-
4067
- #: admin/db-backup-security/db-backup-security.php:1212
4068
- #: admin/login/login.php:324 admin/security-log/security-log.php:475
4069
- msgid "A User Account Is Locked Out"
4070
- msgstr ""
4071
-
4072
- #: admin/db-backup-security/db-backup-security.php:1213
4073
- #: admin/login/login.php:325 admin/security-log/security-log.php:476
4074
- msgid "An Administrator Logs In"
4075
- msgstr ""
4076
-
4077
- #: admin/db-backup-security/db-backup-security.php:1214
4078
- #: admin/login/login.php:326 admin/security-log/security-log.php:477
4079
- msgid "An Administrator Logs In & A User Account is Locked Out"
4080
- msgstr ""
4081
-
4082
- #: admin/db-backup-security/db-backup-security.php:1215
4083
- #: admin/login/login.php:327 admin/security-log/security-log.php:478
4084
- msgid "Any User Logs In & A User Account is Locked Out"
4085
- msgstr ""
4086
-
4087
- #: admin/db-backup-security/db-backup-security.php:1216
4088
- #: admin/login/login.php:328 admin/security-log/security-log.php:479
4089
- msgid "Do Not Send Email Alerts"
4090
- msgstr ""
4091
-
4092
- #: admin/db-backup-security/db-backup-security.php:1220
4093
- #: admin/login/login.php:332 admin/security-log/security-log.php:483
4094
- msgid "Security Log: Email|Delete Security Log File When..."
4095
- msgstr ""
4096
-
4097
- #: admin/db-backup-security/db-backup-security.php:1222
4098
- #: admin/db-backup-security/db-backup-security.php:1234
4099
- #: admin/login/login.php:334 admin/login/login.php:346
4100
- #: admin/security-log/security-log.php:485
4101
- #: admin/security-log/security-log.php:497
4102
- msgid "500KB"
4103
- msgstr ""
4104
-
4105
- #: admin/db-backup-security/db-backup-security.php:1223
4106
- #: admin/db-backup-security/db-backup-security.php:1235
4107
- #: admin/login/login.php:335 admin/login/login.php:347
4108
- #: admin/security-log/security-log.php:486
4109
- #: admin/security-log/security-log.php:498
4110
- msgid "256KB"
4111
- msgstr ""
4112
-
4113
- #: admin/db-backup-security/db-backup-security.php:1224
4114
- #: admin/db-backup-security/db-backup-security.php:1236
4115
- #: admin/login/login.php:336 admin/login/login.php:348
4116
- #: admin/security-log/security-log.php:487
4117
- #: admin/security-log/security-log.php:499
4118
- msgid "1MB"
4119
- msgstr ""
4120
-
4121
- #: admin/db-backup-security/db-backup-security.php:1227
4122
- #: admin/db-backup-security/db-backup-security.php:1239
4123
- #: admin/login/login.php:339 admin/login/login.php:351
4124
- #: admin/security-log/security-log.php:490
4125
- #: admin/security-log/security-log.php:502
4126
- msgid "Email Log & Then Delete Log File"
4127
- msgstr ""
4128
-
4129
- #: admin/db-backup-security/db-backup-security.php:1228
4130
- #: admin/db-backup-security/db-backup-security.php:1240
4131
- #: admin/login/login.php:340 admin/login/login.php:352
4132
- #: admin/security-log/security-log.php:491
4133
- #: admin/security-log/security-log.php:503
4134
- msgid "Delete Log File"
4135
- msgstr ""
4136
-
4137
- #: admin/db-backup-security/db-backup-security.php:1232
4138
- #: admin/login/login.php:344 admin/security-log/security-log.php:495
4139
- msgid "DB Backup Log: Email|Delete DB Backup Log File When..."
4140
- msgstr ""
4141
-
4142
- #: admin/db-backup-security/db-backup-security.php:1265
4143
  msgid ""
4144
  "Success! Your DB Backup Log file has been deleted and replaced with a new "
4145
  "blank DB Backup Log file."
4146
  msgstr ""
4147
 
4148
- #: admin/db-backup-security/db-backup-security.php:1275
4149
  msgid "Clicking OK will delete the contents of your DB Backup Log file."
4150
  msgstr ""
4151
 
4152
- #: admin/db-backup-security/db-backup-security.php:1275
4153
- #: admin/security-log/security-log.php:584
4154
  msgid "Click OK to Delete the Log file contents or click Cancel."
4155
  msgstr ""
4156
 
4157
- #: admin/db-backup-security/db-backup-security.php:1295
4158
  msgid ""
4159
  "The DB Backup Log File Was Not Found! Check that the file really exists here "
4160
  "- /"
4161
  msgstr ""
4162
 
4163
- #: admin/db-backup-security/db-backup-security.php:1295
4164
  msgid "/bps-backup/logs/db_backup_log.txt and is named correctly."
4165
  msgstr ""
4166
 
4167
- #: admin/db-backup-security/db-backup-security.php:1314
4168
  msgid ""
4169
  "File Open and Write test successful! Your DB Backup Log file is writable."
4170
  msgstr ""
4171
 
4172
- #: admin/db-backup-security/db-backup-security.php:1326
4173
  msgid "Success! Your DB Backup Log file has been updated."
4174
  msgstr ""
4175
 
4176
- #: admin/db-backup-security/db-backup-security.php:1370
4177
  msgid "DB Table Prefix Changer ~ "
4178
  msgstr ""
4179
 
4180
- #: admin/db-backup-security/db-backup-security.php:1370
4181
  msgid "Tools to change & check your WordPress Database Table Prefix"
4182
  msgstr ""
4183
 
4184
- #: admin/db-backup-security/db-backup-security.php:1386
4185
  msgid "Your current WordPress Database Table Prefix is: "
4186
  msgstr ""
4187
 
4188
- #: admin/db-backup-security/db-backup-security.php:1386
4189
  msgid "NOTES: "
4190
  msgstr ""
4191
 
4192
- #: admin/db-backup-security/db-backup-security.php:1386
4193
  msgid ""
4194
  "1. It is recommended that you backup your database before using this tool."
4195
  msgstr ""
4196
 
4197
- #: admin/db-backup-security/db-backup-security.php:1386
4198
  msgid ""
4199
  "2. If you want to create your own DB Table Prefix name or add additional "
4200
  "characters to the randomly generated DB Table Prefix name below then ONLY "
4201
  "use lowercase letters, numbers and underscores in your DB Table Prefix name."
4202
  msgstr ""
4203
 
4204
- #: admin/db-backup-security/db-backup-security.php:1386
4205
  msgid ""
4206
  "3. The maximum length limitation of a DB Table name, including the table "
4207
  "prefix is 64 characters. See the DB Table Names & Character Length Table to "
4208
  "the right."
4209
  msgstr ""
4210
 
4211
- #: admin/db-backup-security/db-backup-security.php:1386
4212
  msgid ""
4213
  "4. To change your DB Table Prefix name back to the WordPress default DB "
4214
  "Table Prefix name, enter wp_ for the DB Table Prefix name."
4215
  msgstr ""
4216
 
4217
- #: admin/db-backup-security/db-backup-security.php:1400
4218
  msgid ""
4219
  "ERROR: The DB Table Prefix name can only contain numbers, lowercase letters, "
4220
  "and underscores."
4221
  msgstr ""
4222
 
4223
- #: admin/db-backup-security/db-backup-security.php:1414
4224
  msgid "A wp-config.php file was NOT found in your website root folder."
4225
  msgstr ""
4226
 
4227
- #: admin/db-backup-security/db-backup-security.php:1414
4228
  msgid ""
4229
  "Your DB Table Prefix was not changed. If you have moved your wp-config.php "
4230
  "file to a another Server folder then you can use this tool to change your DB "
@@ -4232,13 +4168,13 @@ msgid ""
4232
  "file back to the default location: your WordPress website root folder."
4233
  msgstr ""
4234
 
4235
- #: admin/db-backup-security/db-backup-security.php:1434
4236
  msgid ""
4237
  "Error: The wp-config.php file is not writable. Unable to write to the wp-"
4238
  "config.php file."
4239
  msgstr ""
4240
 
4241
- #: admin/db-backup-security/db-backup-security.php:1434
4242
  msgid ""
4243
  "Your DB Table Prefix was not changed. You will need to make the wp-config."
4244
  "php file writable first by changing either the file permissions or Ownership "
@@ -4246,24 +4182,24 @@ msgid ""
4246
  "DB Table Prefix Changer tool to change your DB Table Prefix."
4247
  msgstr ""
4248
 
4249
- #: admin/db-backup-security/db-backup-security.php:1479
4250
  msgid ""
4251
  "DB Table Prefix Name change completed. Click the Load|Refresh Table button "
4252
  "to load/refresh the DB Table Names & Character Length Table if you would "
4253
  "like to check the new DB Table Prefix Name Changes."
4254
  msgstr ""
4255
 
4256
- #: admin/db-backup-security/db-backup-security.php:1486
4257
  msgid ""
4258
  "Click the Update Site User Roles button to complete the DB Table Prefix Name "
4259
  "change."
4260
  msgstr ""
4261
 
4262
- #: admin/db-backup-security/db-backup-security.php:1512
4263
  msgid "Randomly Generated DB Table Prefix"
4264
  msgstr ""
4265
 
4266
- #: admin/db-backup-security/db-backup-security.php:1549
4267
  msgid ""
4268
  "DB Table Prefix Name change completed. Click the Load|Refresh Table button "
4269
  "to load/refresh the DB Table Names & Character Length Table if you would "
@@ -4272,158 +4208,346 @@ msgid ""
4272
  "new DB Table names."
4273
  msgstr ""
4274
 
4275
- #: admin/db-backup-security/db-backup-security.php:1561
4276
  msgid ""
4277
  "This button must be clicked AFTER clicking the Change DB Table Prefix button "
4278
  "above."
4279
  msgstr ""
4280
 
4281
- #: admin/db-backup-security/db-backup-security.php:1590
4282
  msgid "Length"
4283
  msgstr ""
4284
 
4285
- #: admin/db-backup-security/db-backup-security.php:1614
4286
  msgid "DB Table Name|Column"
4287
  msgstr ""
4288
 
4289
- #: admin/db-backup-security/db-backup-security.php:1615
4290
  msgid "Other Prefix Changes"
4291
  msgstr ""
4292
 
4293
- #: admin/db-backup-security/db-backup-security.php:1682
4294
  msgid "DB Table Names & Character Length Table"
4295
  msgstr ""
4296
 
4297
- #: admin/db-backup-security/db-backup-security.php:1683
4298
  msgid ""
4299
  "Displays your Current DB Table Names & Length Including The DB Table Prefix"
4300
  msgstr ""
4301
 
4302
- #: admin/db-backup-security/db-backup-security.php:1737
4303
- #: admin/theme-skin/theme-skin.php:220
4304
  msgid "BPS Pro Features & Version Release Dates"
4305
  msgstr ""
4306
 
4307
- #: admin/db-backup-security/db-backup-security.php:1738
4308
- #: admin/theme-skin/theme-skin.php:221
4309
  msgid "Video Tutorials"
4310
  msgstr ""
4311
 
4312
- #: admin/db-backup-security/db-backup-security.php:1739
4313
  msgid "DB Backup & Security Guide & Troubleshooting"
4314
  msgstr ""
4315
 
4316
- #: admin/includes/admin.php:230
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4317
  msgid "BulletProof Security Settings"
4318
  msgstr ""
4319
 
4320
- #: admin/includes/admin.php:230 admin/includes/admin.php:245
4321
  msgid "BPS Security"
4322
  msgstr ""
4323
 
4324
- #: admin/includes/admin.php:231 admin/includes/admin.php:247
4325
  msgid "Login Security"
4326
  msgstr ""
4327
 
4328
- #: admin/includes/admin.php:237 admin/includes/admin.php:256
4329
  #: admin/maintenance/maintenance.php:163 admin/maintenance/maintenance.php:195
4330
  #: admin/maintenance/maintenance.php:197
4331
  msgid "Maintenance Mode"
4332
  msgstr ""
4333
 
4334
- #: admin/includes/admin.php:240 admin/includes/admin.php:259
4335
  #: admin/system-info/system-info.php:88
4336
  msgid "System Info"
4337
  msgstr ""
4338
 
4339
- #: admin/includes/admin.php:241 admin/includes/admin.php:260
4340
  #: admin/theme-skin/theme-skin.php:91 admin/theme-skin/theme-skin.php:107
4341
  #: admin/theme-skin/theme-skin.php:109
4342
  msgid "UI|UX Settings"
4343
  msgstr ""
4344
 
4345
- #: admin/includes/admin.php:246
4346
  msgid "htaccess Core"
4347
  msgstr ""
4348
 
4349
- #: admin/includes/admin.php:247 admin/includes/admin.php:248
4350
- msgid "Login Security ~ ISL ~ ACE"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4351
  msgstr ""
4352
 
4353
- #: admin/includes/admin.php:248
4354
  msgid "Idle Session Logout<br>Cookie Expiration"
4355
  msgstr ""
4356
 
4357
- #: admin/includes/admin.php:249
4358
  msgid "DB Backup & Security"
4359
  msgstr ""
4360
 
4361
- #: admin/includes/admin.php:250 admin/security-log/security-log.php:226
4362
  #: admin/security-log/security-log.php:241
4363
  #: admin/security-log/security-log.php:243
4364
  msgid "Security Log"
4365
  msgstr ""
4366
 
4367
- #: admin/includes/admin.php:261 admin/wizard/wizard.php:848
4368
- #: admin/wizard/wizard.php:878 admin/wizard/wizard.php:880
4369
- #: bulletproof-security.php:98 bulletproof-security.php:101
4370
  msgid "Setup Wizard"
4371
  msgstr ""
4372
 
4373
- #: admin/includes/admin.php:264 admin/includes/admin.php:272
4374
  #: admin/includes/uninstall.php:45
4375
  msgid "BPS Plugin Uninstall Options"
4376
  msgstr ""
4377
 
4378
- #: admin/includes/admin.php:307
4379
  msgid "BPS UI|UX Debug: SLF css Scripts Nulled"
4380
  msgstr ""
4381
 
4382
- #: admin/includes/admin.php:314
4383
  msgid "BPS UI|UX Debug: SLF css Scripts Not Nulled|Allowed"
4384
  msgstr ""
4385
 
4386
- #: admin/includes/admin.php:343
4387
  msgid "BPS UI|UX Debug: SLF js Scripts Nulled"
4388
  msgstr ""
4389
 
4390
- #: admin/includes/admin.php:350
4391
  msgid "BPS UI|UX Debug: SLF js Scripts Not Nulled|Allowed"
4392
  msgstr ""
4393
 
4394
- #: admin/includes/admin.php:420
4395
  msgid "BPS UI|UX Debug: Scripts|Styles Dequeued"
4396
  msgstr ""
4397
 
4398
- #: admin/includes/admin.php:432
4399
  msgid "Script Dequeued: "
4400
  msgstr ""
4401
 
4402
- #: admin/includes/admin.php:438
4403
  msgid ""
4404
  "No plugin or theme Scripts were Dequeued (prevented) from loading in BPS "
4405
  "plugin pages"
4406
  msgstr ""
4407
 
4408
- #: admin/includes/admin.php:450
4409
  msgid "Style Dequeued: "
4410
  msgstr ""
4411
 
4412
- #: admin/includes/admin.php:456
4413
  msgid ""
4414
  "No plugin or theme Styles were Dequeued (prevented) from loading in BPS "
4415
  "plugin pages"
4416
  msgstr ""
4417
 
4418
- #: admin/includes/admin.php:494 admin/includes/admin.php:527
4419
  msgid "BPS UI|UX Debug: WP Toolbar nodes|menu items Removed"
4420
  msgstr ""
4421
 
4422
- #: admin/includes/admin.php:506 admin/includes/admin.php:539
4423
  msgid "WP Toolbar node|menu item Removed: "
4424
  msgstr ""
4425
 
4426
- #: admin/includes/admin.php:514 admin/includes/admin.php:547
4427
  msgid "No WP Toolbar nodes|menu items were Removed in BPS plugin pages"
4428
  msgstr ""
4429
 
@@ -4463,162 +4587,165 @@ msgstr ""
4463
  msgid "BulletProof Security ~ Login Security & Monitoring"
4464
  msgstr ""
4465
 
4466
- #: admin/login/login.php:157 admin/login/login.php:186
4467
- #: admin/login/login.php:188
4468
  msgid "Login Security & Monitoring"
4469
  msgstr ""
4470
 
4471
- #: admin/login/login.php:161 admin/login/login.php:877
4472
- #: admin/login/login.php:879
4473
  msgid "Idle Session Logout|Auth Cookie Expiration"
4474
  msgstr ""
4475
 
4476
- #: admin/login/login.php:172 admin/maintenance/maintenance.php:173
 
4477
  msgid "Notice: "
4478
  msgstr ""
4479
 
4480
- #: admin/login/login.php:172 admin/maintenance/maintenance.php:173
4481
  msgid "You have disabled wp-admin BulletProof Mode on the Security Modes page."
4482
  msgstr ""
4483
 
4484
- #: admin/login/login.php:172 admin/maintenance/maintenance.php:173
 
4485
  msgid "If you have Go Daddy \"Managed WordPress Hosting\" click this link: "
4486
  msgstr ""
4487
 
4488
- #: admin/login/login.php:172 admin/maintenance/maintenance.php:173
 
4489
  msgid "Go Daddy Managed WordPress Hosting"
4490
  msgstr ""
4491
 
4492
- #: admin/login/login.php:180
4493
  msgid "Login Security & Monitoring (LSM) ~ "
4494
  msgstr ""
4495
 
4496
- #: admin/login/login.php:180
4497
  msgid ""
4498
  "Log All Account Logins or Log Only Account Lockouts ~ Brute Force Login "
4499
  "Protection"
4500
  msgstr ""
4501
 
4502
- #: admin/login/login.php:180
4503
  msgid ""
4504
  "Protect against SpamBot & HackerBot (auto-registering, auto-logins, auto-"
4505
  "posting, auto-commenting) & User Account Lockouts: "
4506
  msgstr ""
4507
 
4508
- #: admin/login/login.php:208
4509
  msgid "Max Login Attempts:"
4510
  msgstr ""
4511
 
4512
- #: admin/login/login.php:213
4513
  msgid "Automatic Lockout Time:"
4514
  msgstr ""
4515
 
4516
- #: admin/login/login.php:215 admin/login/login.php:220
4517
  msgid "Minutes"
4518
  msgstr ""
4519
 
4520
- #: admin/login/login.php:218
4521
  msgid "Manual Lockout Time:"
4522
  msgstr ""
4523
 
4524
- #: admin/login/login.php:223
4525
  msgid "Max DB Rows To Show:"
4526
  msgstr ""
4527
 
4528
- #: admin/login/login.php:225
4529
  msgid "Blank = Show All Rows"
4530
  msgstr ""
4531
 
4532
- #: admin/login/login.php:230
4533
- msgid " Enable Login Security for WooCommerce"
4534
  msgstr ""
4535
 
4536
- #: admin/login/login.php:235 admin/login/login.php:986
4537
- #: admin/login/login.php:1156 admin/login/lsm-help-text.php:13
4538
  msgid "Turn On|Turn Off:"
4539
  msgstr ""
4540
 
4541
- #: admin/login/login.php:237
4542
  msgid "Login Security On"
4543
  msgstr ""
4544
 
4545
- #: admin/login/login.php:238
4546
  msgid "Login Security Off"
4547
  msgstr ""
4548
 
4549
- #: admin/login/login.php:239
4550
  msgid "Login Security Off|Use Password Reset Option ONLY"
4551
  msgstr ""
4552
 
4553
- #: admin/login/login.php:244
4554
  msgid "Logging Options:"
4555
  msgstr ""
4556
 
4557
- #: admin/login/login.php:246
4558
  msgid "Log Only Account Lockouts"
4559
  msgstr ""
4560
 
4561
- #: admin/login/login.php:247
4562
  msgid "Log All Account Logins"
4563
  msgstr ""
4564
 
4565
- #: admin/login/login.php:252
4566
  msgid "Error Messages:"
4567
  msgstr ""
4568
 
4569
- #: admin/login/login.php:254
4570
  msgid "Standard WP Login Errors"
4571
  msgstr ""
4572
 
4573
- #: admin/login/login.php:255
4574
  msgid "User|Pass Invalid Entry Error"
4575
  msgstr ""
4576
 
4577
- #: admin/login/login.php:256
4578
  msgid "User|Pass|Lock Invalid Entry Error"
4579
  msgstr ""
4580
 
4581
- #: admin/login/login.php:261
4582
  msgid "Attempts Remaining:"
4583
  msgstr ""
4584
 
4585
- #: admin/login/login.php:263
4586
  msgid "Show Login Attempts Remaining"
4587
  msgstr ""
4588
 
4589
- #: admin/login/login.php:264
4590
  msgid "Do Not Show Login Attempts Remaining"
4591
  msgstr ""
4592
 
4593
- #: admin/login/login.php:269
4594
  msgid "Password Reset:"
4595
  msgstr ""
4596
 
4597
- #: admin/login/login.php:271
4598
  msgid "Enable Password Reset"
4599
  msgstr ""
4600
 
4601
- #: admin/login/login.php:272
4602
  msgid "Disable Password Reset Frontend Only"
4603
  msgstr ""
4604
 
4605
- #: admin/login/login.php:273
4606
  msgid "Disable Password Reset Frontend & Backend"
4607
  msgstr ""
4608
 
4609
- #: admin/login/login.php:278
4610
  msgid "Sort DB Rows:"
4611
  msgstr ""
4612
 
4613
- #: admin/login/login.php:280
4614
  msgid "Ascending - Show Oldest Login First"
4615
  msgstr ""
4616
 
4617
- #: admin/login/login.php:281
4618
  msgid "Descending - Show Newest Login First"
4619
  msgstr ""
4620
 
4621
- #: admin/login/login.php:375
4622
  msgid ""
4623
  "Clicking OK will Export (copy) the Login Security Table into the lsm-master."
4624
  "csv file, which you can then download to your computer by clicking the "
@@ -4626,90 +4753,92 @@ msgid ""
4626
  "success message."
4627
  msgstr ""
4628
 
4629
- #: admin/login/login.php:375
4630
  msgid "Click OK to Export the Login Security Table or click Cancel."
4631
  msgstr ""
4632
 
4633
- #: admin/login/login.php:403
4634
  msgid " out of "
4635
  msgstr ""
4636
 
4637
- #: admin/login/login.php:403
4638
  msgid " Database Rows are currently being displayed"
4639
  msgstr ""
4640
 
4641
- #: admin/login/login.php:406
4642
  msgid "Total number of Database Rows is: "
4643
  msgstr ""
4644
 
4645
- #: admin/login/login.php:432 admin/login/login.php:533
4646
  msgid "Login Status"
4647
  msgstr ""
4648
 
4649
- #: admin/login/login.php:433 admin/login/login.php:462
4650
- #: admin/login/login.php:534 admin/login/login.php:563
4651
  msgid "Lock"
4652
  msgstr ""
4653
 
4654
- #: admin/login/login.php:434 admin/login/login.php:463
4655
- #: admin/login/login.php:535 admin/login/login.php:564
4656
  msgid "Unlock"
4657
  msgstr ""
4658
 
4659
- #: admin/login/login.php:436 admin/login/login.php:537
4660
  msgid "User ID"
4661
  msgstr ""
4662
 
4663
- #: admin/login/login.php:437 admin/login/login.php:538
4664
  msgid "Username"
4665
  msgstr ""
4666
 
4667
- #: admin/login/login.php:438 admin/login/login.php:539
4668
  msgid "Display Name"
4669
  msgstr ""
4670
 
4671
- #: admin/login/login.php:439 admin/login/login.php:540
4672
  msgid "Email"
4673
  msgstr ""
4674
 
4675
- #: admin/login/login.php:440 admin/login/login.php:541
4676
  msgid "Role"
4677
  msgstr ""
4678
 
4679
- #: admin/login/login.php:441 admin/login/login.php:542
4680
  msgid "Login Time"
4681
  msgstr ""
4682
 
4683
- #: admin/login/login.php:442 admin/login/login.php:543
4684
  msgid "Lockout Expires"
4685
  msgstr ""
4686
 
4687
- #: admin/login/login.php:443 admin/login/login.php:544
4688
  msgid "IP Address"
4689
  msgstr ""
4690
 
4691
- #: admin/login/login.php:444 admin/login/login.php:545
4692
  msgid "Hostname"
4693
  msgstr ""
4694
 
4695
- #: admin/login/login.php:445 admin/login/login.php:546
4696
  msgid "Request URI"
4697
  msgstr ""
4698
 
4699
- #: admin/login/login.php:473 admin/login/login.php:574
4700
  msgid "NA"
4701
  msgstr ""
4702
 
4703
- #: admin/login/login.php:485 admin/login/login.php:586
4704
  msgid "No Logins|Locked"
4705
  msgstr ""
4706
 
4707
- #: admin/login/login.php:502 admin/login/login.php:603
4708
- #: admin/login/login.php:668 admin/login/login.php:768
 
 
4709
  msgid "Submit"
4710
  msgstr ""
4711
 
4712
- #: admin/login/login.php:502 admin/login/login.php:603
4713
  msgid ""
4714
  "Locking and Unlocking a User is reversible, but Deleting a User is not.\\n"
4715
  "\\n-------------------------------------------------------------\\n\\nWhen "
@@ -4722,221 +4851,365 @@ msgid ""
4722
  "OK to proceed or click Cancel"
4723
  msgstr ""
4724
 
4725
- #: admin/login/login.php:502 admin/login/login.php:603
 
4726
  msgid "Clear|Refresh"
4727
  msgstr ""
4728
 
4729
- #: admin/login/login.php:702 admin/login/login.php:802
4730
  msgid " has been deleted from the Login Security Database Table."
4731
  msgstr ""
4732
 
4733
- #: admin/login/login.php:725 admin/login/login.php:825
4734
  msgid " has been Unlocked."
4735
  msgstr ""
4736
 
4737
- #: admin/login/login.php:749 admin/login/login.php:849
4738
  msgid " has been Locked."
4739
  msgstr ""
4740
 
4741
- #: admin/login/login.php:872
4742
- msgid "Idle Session Logout (ISL) ~ "
 
4743
  msgstr ""
4744
 
4745
- #: admin/login/login.php:872
4746
- msgid "Automatically Logout Idle/Inactive User Accounts"
 
 
4747
  msgstr ""
4748
 
4749
- #: admin/login/login.php:872
4750
- msgid "Auth Cookie Expiration (ACE) ~ "
4751
  msgstr ""
4752
 
4753
- #: admin/login/login.php:872
4754
- msgid "Change the WordPress Authentication Cookie Expiration Time"
 
 
4755
  msgstr ""
4756
 
4757
- #: admin/login/login.php:893
4758
- msgid "ISL and ACE Forum Topic"
 
 
4759
  msgstr ""
4760
 
4761
- #: admin/login/login.php:897
4762
- msgid "The Help & FAQ tab pages contain help links."
 
 
4763
  msgstr ""
4764
 
4765
- #: admin/login/login.php:917 admin/login/login.php:1098
 
4766
  msgid "Save Options"
4767
  msgstr ""
4768
 
4769
- #: admin/login/login.php:963
4770
- msgid "Settings Saved. ISL has been turned On."
4771
  msgstr ""
4772
 
4773
- #: admin/login/login.php:969
4774
- msgid "Settings Saved. ISL has been turned Off."
4775
  msgstr ""
4776
 
4777
- #: admin/login/login.php:981
4778
- msgid "Idle Session Logout (ISL) Settings"
4779
  msgstr ""
4780
 
4781
- #: admin/login/login.php:988
4782
- msgid "ISL On"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4783
  msgstr ""
4784
 
4785
- #: admin/login/login.php:989
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4786
  msgid "ISL Off"
4787
  msgstr ""
4788
 
4789
- #: admin/login/login.php:995 admin/login/lsm-help-text.php:13
4790
  msgid "Idle Session Logout Time in Minutes:"
4791
  msgstr ""
4792
 
4793
- #: admin/login/login.php:1001 admin/login/lsm-help-text.php:13
4794
  msgid "Idle Session Logout Page URL:"
4795
  msgstr ""
4796
 
4797
- #: admin/login/login.php:1007 admin/login/lsm-help-text.php:13
4798
  msgid "Idle Session Logout Page Login URL:"
4799
  msgstr ""
4800
 
4801
- #: admin/login/login.php:1008
4802
  msgid ""
4803
  "Enter/Type: \"No\" (without quotes) if you do not want a Login URL displayed."
4804
  msgstr ""
4805
 
4806
- #: admin/login/login.php:1014 admin/login/lsm-help-text.php:13
4807
  msgid "Idle Session Logout Exclude URLs|URIs:"
4808
  msgstr ""
4809
 
4810
- #: admin/login/login.php:1015
4811
  msgid "Enter URIs separated by a comma and a space: /some-post/, /some-page/"
4812
  msgstr ""
4813
 
4814
- #: admin/login/login.php:1022 admin/login/lsm-help-text.php:13
4815
  msgid "Idle Session Logout Page Custom Message:"
4816
  msgstr ""
4817
 
4818
- #: admin/login/login.php:1029 admin/login/lsm-help-text.php:13
4819
  msgid "Idle Session Logout Page Custom CSS Style:"
4820
  msgstr ""
4821
 
4822
- #: admin/login/login.php:1038 admin/login/login.php:1186
4823
- #: admin/login/lsm-help-text.php:13
4824
  msgid "User Account Exceptions:"
4825
  msgstr ""
4826
 
4827
- #: admin/login/login.php:1039 admin/login/login.php:1187
4828
  msgid ""
4829
  "Enter User Account names separated by a comma and a space: johnDoe, janeDoe"
4830
  msgstr ""
4831
 
4832
- #: admin/login/login.php:1040
4833
  msgid "Idle Session Logout Time Will Not Be Applied For These User Accounts."
4834
  msgstr ""
4835
 
4836
- #: admin/login/login.php:1046
4837
  msgid "Enable|Disable Idle Session Logouts For These User Roles: "
4838
  msgstr ""
4839
 
4840
- #: admin/login/login.php:1047 admin/login/login.php:1195
4841
  msgid ""
4842
  "Check to Enable. Uncheck to Disable. See the Read Me help button for details."
4843
  msgstr ""
4844
 
4845
- #: admin/login/login.php:1049 admin/login/login.php:1197
4846
- msgid " Administrator"
4847
- msgstr ""
4848
-
4849
- #: admin/login/login.php:1050 admin/login/login.php:1198
4850
- msgid " Editor"
4851
- msgstr ""
4852
-
4853
- #: admin/login/login.php:1051 admin/login/login.php:1199
4854
- msgid " Author"
4855
- msgstr ""
4856
-
4857
- #: admin/login/login.php:1052 admin/login/login.php:1200
4858
- msgid " Contributor"
4859
- msgstr ""
4860
-
4861
- #: admin/login/login.php:1053 admin/login/login.php:1201
4862
- msgid " Subscriber"
4863
- msgstr ""
4864
-
4865
- #: admin/login/login.php:1072
4866
  msgid "Enable|Disable Idle Session Logouts For TinyMCE Editors: "
4867
  msgstr ""
4868
 
4869
- #: admin/login/login.php:1073 admin/login/login.php:1180
4870
  msgid ""
4871
  "Check to Disable. Uncheck to Enable. See the Read Me help button for details."
4872
  msgstr ""
4873
 
4874
- #: admin/login/login.php:1074
4875
  msgid " Enable|Disable ISL For TinyMCE Editor"
4876
  msgstr ""
4877
 
4878
- #: admin/login/login.php:1076 admin/login/login.php:1216
4879
- #: admin/security-log/security-log.php:528
4880
- msgid "Click OK to Proceed or click Cancel."
4881
- msgstr ""
4882
-
4883
- #: admin/login/login.php:1086
4884
  msgid "WordPress Authentication Cookie Expiration (ACE) Settings"
4885
  msgstr ""
4886
 
4887
- #: admin/login/login.php:1137
4888
  msgid "Settings Saved. ACE has been turned On."
4889
  msgstr ""
4890
 
4891
- #: admin/login/login.php:1143
4892
  msgid "Settings Saved. ACE has been turned Off."
4893
  msgstr ""
4894
 
4895
- #: admin/login/login.php:1158
4896
  msgid "ACE On"
4897
  msgstr ""
4898
 
4899
- #: admin/login/login.php:1159
4900
  msgid "ACE Off"
4901
  msgstr ""
4902
 
4903
- #: admin/login/login.php:1165 admin/login/lsm-help-text.php:13
4904
  msgid "Auth Cookie Expiration Time in Minutes:"
4905
  msgstr ""
4906
 
4907
- #: admin/login/login.php:1166
4908
  msgid "WP Default setting is 2880 Minutes/2 Days:"
4909
  msgstr ""
4910
 
4911
- #: admin/login/login.php:1172 admin/login/lsm-help-text.php:13
4912
  msgid "Remember Me Auth Cookie Expiration Time in Minutes:"
4913
  msgstr ""
4914
 
4915
- #: admin/login/login.php:1173
4916
  msgid "WP Default setting is 20160 Minutes/14 Days:"
4917
  msgstr ""
4918
 
4919
- #: admin/login/login.php:1179 admin/login/lsm-help-text.php:13
4920
  msgid "Enable|Disable Remember Me Checkbox:"
4921
  msgstr ""
4922
 
4923
- #: admin/login/login.php:1181
4924
  msgid " Disable & do not display the Remember Me checkbox"
4925
  msgstr ""
4926
 
4927
- #: admin/login/login.php:1188
4928
  msgid "Auth Cookie Expiration Time Will Not Be Applied To These User Accounts."
4929
  msgstr ""
4930
 
4931
- #: admin/login/login.php:1194
4932
  msgid "Enable|Disable Auth Cookie Expiration Time For These User Roles: "
4933
  msgstr ""
4934
 
4935
- #: admin/login/login.php:1238 admin/security-log/security-log.php:876
4936
- #: admin/system-info/system-info.php:1118
4937
- msgid "BulletProof Security Help &amp; FAQ"
4938
- msgstr ""
4939
-
4940
  #: admin/login/lsm-export.php:49
4941
  msgid ""
4942
  "The Login Security Table was exported successfully. Click the Download Zip "
@@ -4970,6 +5243,12 @@ msgid ""
4970
  "Account."
4971
  msgstr ""
4972
 
 
 
 
 
 
 
4973
  #: admin/login/lsm-help-text.php:10
4974
  msgid "Max Login Attempts: "
4975
  msgstr ""
@@ -5026,7 +5305,7 @@ msgid ""
5026
  msgstr ""
5027
 
5028
  #: admin/login/lsm-help-text.php:10
5029
- msgid "Enable Login Security for WooCommerce:"
5030
  msgstr ""
5031
 
5032
  #: admin/login/lsm-help-text.php:10
@@ -5227,11 +5506,240 @@ msgid ""
5227
  "page and delete that User Account."
5228
  msgstr ""
5229
 
5230
- #: admin/login/lsm-help-text.php:13
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5231
  msgid "Idle Session Logout (ISL) General Info:"
5232
  msgstr ""
5233
 
5234
- #: admin/login/lsm-help-text.php:13
5235
  msgid ""
5236
  "Idle Session Logout (ISL) can be considered a \"soft\" setting vs ACE being "
5237
  "a \"hard\" setting. ISL uses javascript Event Listeners to monitor Users "
@@ -5241,7 +5749,7 @@ msgid ""
5241
  "across the screen."
5242
  msgstr ""
5243
 
5244
- #: admin/login/lsm-help-text.php:13
5245
  msgid ""
5246
  "If you set the Idle Session Logout Time to 60 minutes and the User is idle/"
5247
  "inactive for 10 minutes and becomes active again then the Idle Session "
@@ -5250,7 +5758,7 @@ msgid ""
5250
  "logged out of the site and redirected to the BPS Idle Session Logout Page."
5251
  msgstr ""
5252
 
5253
- #: admin/login/lsm-help-text.php:13
5254
  msgid ""
5255
  "When an idle/inactive User is logged out of the site they are redirected to "
5256
  "the BPS Idle Session Logout Page URL if their Browser is still open. If the "
@@ -5263,7 +5771,7 @@ msgid ""
5263
  "logged in the BPS Security Log file."
5264
  msgstr ""
5265
 
5266
- #: admin/login/lsm-help-text.php:13
5267
  msgid ""
5268
  "After making any option setting changes click the Save Options button to "
5269
  "save your new option settings. To reset ISL option settings back to the "
@@ -5271,13 +5779,13 @@ msgid ""
5271
  "entered in any text/textarea boxes and click the Save Options button."
5272
  msgstr ""
5273
 
5274
- #: admin/login/lsm-help-text.php:13
5275
  msgid ""
5276
  "ISL is Turned Off by default. Select ISL On to turn ISL On. Select ISL Off "
5277
  "to turn ISL Off."
5278
  msgstr ""
5279
 
5280
- #: admin/login/lsm-help-text.php:13
5281
  msgid ""
5282
  "Enter the time in minutes for when an idle/inactive User should be logged "
5283
  "out of your site. Example: Entering 60 will automatically logout Users who "
@@ -5286,7 +5794,7 @@ msgid ""
5286
  "Session Logout Time then ISL will be disabled automatically."
5287
  msgstr ""
5288
 
5289
- #: admin/login/lsm-help-text.php:13
5290
  msgid ""
5291
  "When an idle/inactive User is logged out of your site they are redirected to "
5292
  "the BPS Idle Session Logout Page URL by default. You can choose to redirect "
@@ -5296,7 +5804,7 @@ msgid ""
5296
  "the default BPS Idle Session Logout Page."
5297
  msgstr ""
5298
 
5299
- #: admin/login/lsm-help-text.php:13
5300
  msgid ""
5301
  "This option displays a clickable Login URL/link to your WP Login page. If "
5302
  "your Login page URL is different than the default URL that you see displayed "
@@ -5306,7 +5814,7 @@ msgid ""
5306
  "link displayed."
5307
  msgstr ""
5308
 
5309
- #: admin/login/lsm-help-text.php:13
5310
  msgid ""
5311
  "This option allows you to exclude any pages or posts that you do not want "
5312
  "ISL to check/monitor. Important: The URI path is everything after the root "
@@ -5317,7 +5825,7 @@ msgid ""
5317
  "enter is: /category/some-post/."
5318
  msgstr ""
5319
 
5320
- #: admin/login/lsm-help-text.php:13
5321
  msgid ""
5322
  "You can either use the default BPS ISL message/text by leaving the textarea "
5323
  "box blank or you can enter your own custom ISL message/text in this textarea "
@@ -5327,13 +5835,13 @@ msgid ""
5327
  "setting."
5328
  msgstr ""
5329
 
5330
- #: admin/login/lsm-help-text.php:13
5331
  msgid ""
5332
  "You can either use the default BPS CSS Style code or enter your own custom "
5333
  "CSS Style customizations."
5334
  msgstr ""
5335
 
5336
- #: admin/login/lsm-help-text.php:13
5337
  msgid ""
5338
  "To create exceptions for User Account names enter User Account names (case-"
5339
  "insensitive) separated by a comma and a space: johnDoe, janeDoe. ISL will be "
@@ -5348,11 +5856,11 @@ msgid ""
5348
  "User Account is idle/inactive then do not add your User Account name."
5349
  msgstr ""
5350
 
5351
- #: admin/login/lsm-help-text.php:13
5352
  msgid "Enable|Disable Idle Session Logouts For These User Roles:"
5353
  msgstr ""
5354
 
5355
- #: admin/login/lsm-help-text.php:13
5356
  msgid ""
5357
  "Checking a User Role checkbox will enable ISL for all Users with that User "
5358
  "Role (See User Account Exceptions). Unchecking a User Role checkbox will "
@@ -5363,26 +5871,26 @@ msgid ""
5363
  "Roles: Administrator, Editor, Author, Contributor, Subscriber."
5364
  msgstr ""
5365
 
5366
- #: admin/login/lsm-help-text.php:13
5367
  msgid "Enable|Disable Idle Session Logouts For TinyMCE Editors:"
5368
  msgstr ""
5369
 
5370
- #: admin/login/lsm-help-text.php:13
5371
  msgid ""
5372
  "Please read all of the TinyMCE Editor Important Notes below. Checking the "
5373
  "Enable|Disable ISL For TinyMCE Editor checkbox will disable ISL for any/all "
5374
  "pages that have a TinyMCE Editor on them."
5375
  msgstr ""
5376
 
5377
- #: admin/login/lsm-help-text.php:13
5378
  msgid "TinyMCE Editor Important Notes:"
5379
  msgstr ""
5380
 
5381
- #: admin/login/lsm-help-text.php:13
5382
  msgid "ISL and TinyMCE javascript Event Listeners:"
5383
  msgstr ""
5384
 
5385
- #: admin/login/lsm-help-text.php:13
5386
  msgid ""
5387
  "ISL uses javascript Event Listeners to monitor User activity for these ISL "
5388
  "events: keyboard key is pressed, mouse button is pressed, mouse is moved, "
@@ -5394,11 +5902,11 @@ msgid ""
5394
  "cannot monitor any User activity in the TinyMCE Visual tab Editor window."
5395
  msgstr ""
5396
 
5397
- #: admin/login/lsm-help-text.php:13
5398
  msgid "TinyMCE Editor on WordPress Post, Page and Comments pages:"
5399
  msgstr ""
5400
 
5401
- #: admin/login/lsm-help-text.php:13
5402
  msgid ""
5403
  "This example is using an Idle Session Logout Time of 60 minutes. If the User "
5404
  "is typing content/text for 60 continuous minutes in the WordPress Post, Page "
@@ -5412,11 +5920,11 @@ msgid ""
5412
  "text."
5413
  msgstr ""
5414
 
5415
- #: admin/login/lsm-help-text.php:13
5416
  msgid "TinyMCE Editor Instances used in other plugins and themes:"
5417
  msgstr ""
5418
 
5419
- #: admin/login/lsm-help-text.php:13
5420
  msgid ""
5421
  "If another plugin or theme is using instances of the TinyMCE Editor, like "
5422
  "BPS Maintenance Mode MMode Editor TinyMCE Editor instance for example, then "
@@ -5431,11 +5939,11 @@ msgid ""
5431
  "Editor Instance."
5432
  msgstr ""
5433
 
5434
- #: admin/login/lsm-help-text.php:13
5435
  msgid "Auth Cookie Expiration (ACE) General Info:"
5436
  msgstr ""
5437
 
5438
- #: admin/login/lsm-help-text.php:13
5439
  msgid ""
5440
  "The WordPress Authentication Cookie Expiration (ACE) time can be considered "
5441
  "a \"hard\" setting vs ISL being a \"soft\" setting. If you set the Cookie "
@@ -5452,13 +5960,13 @@ msgid ""
5452
  "time if you do not use or turn On ACE."
5453
  msgstr ""
5454
 
5455
- #: admin/login/lsm-help-text.php:13
5456
  msgid ""
5457
  "ACE is Turned Off by default. Select ACE On to turn ACE On. Select ACE Off "
5458
  "to turn ACE Off."
5459
  msgstr ""
5460
 
5461
- #: admin/login/lsm-help-text.php:13
5462
  msgid ""
5463
  "Enter the time in minutes for when a User should be logged out of your site. "
5464
  "Example: Entering 720 will automatically logout Users who have been logged "
@@ -5468,7 +5976,7 @@ msgid ""
5468
  "will use the default WordPress Authentication Cookie Expiration time."
5469
  msgstr ""
5470
 
5471
- #: admin/login/lsm-help-text.php:13
5472
  msgid ""
5473
  "Enter the time in minutes for when a User should be logged out of your site "
5474
  "when the User has checked the Remember Me checkbox on the WordPress Login "
@@ -5479,7 +5987,7 @@ msgid ""
5479
  "will use the default WordPress Authentication Cookie Expiration time."
5480
  msgstr ""
5481
 
5482
- #: admin/login/lsm-help-text.php:13
5483
  msgid ""
5484
  "Checking the Disable & do not display the Remember Me checkbox option will "
5485
  "disable and not display the Remember Me checkbox for everyone including you. "
@@ -5489,7 +5997,7 @@ msgid ""
5489
  "expiration time."
5490
  msgstr ""
5491
 
5492
- #: admin/login/lsm-help-text.php:13
5493
  msgid ""
5494
  "To create exceptions for User Account names enter User Account names (case-"
5495
  "insensitive) separated by a comma and a space: johnDoe, janeDoe. Auth Cookie "
@@ -5507,11 +6015,11 @@ msgid ""
5507
  "Account name."
5508
  msgstr ""
5509
 
5510
- #: admin/login/lsm-help-text.php:13
5511
  msgid "Enable|Disable Auth Cookie Expiration Time For These User Roles:"
5512
  msgstr ""
5513
 
5514
- #: admin/login/lsm-help-text.php:13
5515
  msgid ""
5516
  "Checking a User Role checkbox will apply the Auth Cookie Expiration Time "
5517
  "that you choose for all Users with that User Role (See User Account "
@@ -5534,7 +6042,7 @@ msgid ""
5534
  "being successfully turned On while the Oxygen plugin is activated."
5535
  msgstr ""
5536
 
5537
- #: admin/maintenance/maintenance.php:64 includes/hud-autofix-whitelist.php:744
5538
  msgid "Click this "
5539
  msgstr ""
5540
 
@@ -6190,178 +6698,1113 @@ msgstr ""
6190
  msgid "Striped Cone"
6191
  msgstr ""
6192
 
6193
- #: admin/maintenance/maintenance.php:602
6194
- msgid "Swamp Bevel"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6195
  msgstr ""
6196
 
6197
- #: admin/maintenance/maintenance.php:603
6198
- msgid "Toy"
6199
  msgstr ""
6200
 
6201
- #: admin/maintenance/maintenance.php:604
6202
- msgid "Water Reflection"
 
 
6203
  msgstr ""
6204
 
6205
- #: admin/maintenance/maintenance.php:605
6206
- msgid "Wood Grain"
6207
  msgstr ""
6208
 
6209
- #: admin/maintenance/maintenance.php:610
6210
- msgid "No Background Color"
6211
  msgstr ""
6212
 
6213
- #: admin/maintenance/maintenance.php:612
6214
- msgid "Black"
6215
  msgstr ""
6216
 
6217
- #: admin/maintenance/maintenance.php:616
6218
- msgid "Display Visitor IP Address"
 
 
 
 
6219
  msgstr ""
6220
 
6221
- #: admin/maintenance/maintenance.php:620
6222
- msgid "Display Dashboard Reminder Message when site is in Maintenance Mode"
6223
  msgstr ""
6224
 
6225
- #: admin/maintenance/maintenance.php:622
6226
- msgid "Enable Visitor Logging"
6227
  msgstr ""
6228
 
6229
- #: admin/maintenance/maintenance.php:624
6230
- msgid "Send Email Reminder when Maintenance Mode Countdown Timer has completed"
 
 
 
6231
  msgstr ""
6232
 
6233
- #: admin/maintenance/maintenance.php:626
6234
- msgid "Send Countdown Timer Email To:"
6235
  msgstr ""
6236
 
6237
- #: admin/maintenance/maintenance.php:628
6238
- msgid "Send Countdown Timer Email From:"
6239
  msgstr ""
6240
 
6241
- #: admin/maintenance/maintenance.php:630
6242
- msgid "Send Countdown Timer Email Cc:"
6243
  msgstr ""
6244
 
6245
- #: admin/maintenance/maintenance.php:632
6246
- msgid "Send Countdown Timer Email Bcc:"
6247
  msgstr ""
6248
 
6249
- #: admin/maintenance/maintenance.php:637
6250
- msgid "MMode Network|Multisite Options"
6251
  msgstr ""
6252
 
6253
- #: admin/maintenance/maintenance.php:640
6254
- msgid "Network|Multisite Primary Site Options ONLY"
6255
  msgstr ""
6256
 
6257
- #: admin/maintenance/maintenance.php:644
6258
- msgid ""
6259
- "Click the Maintenance Mode Read Me help button for the steps to use these "
6260
- "special options:"
6261
  msgstr ""
6262
 
6263
- #: admin/maintenance/maintenance.php:645
6264
- msgid "Put The Primary Site And All Subsites In Maintenance Mode"
6265
  msgstr ""
6266
 
6267
- #: admin/maintenance/maintenance.php:647
6268
- msgid "Put All Subsites In Maintenance Mode, But Not The Primary Site"
6269
  msgstr ""
6270
 
6271
- #: admin/maintenance/maintenance.php:655
6272
  msgid ""
6273
- "Clicking OK Saves your Options/Settings to your Database and also creates "
6274
- "your Maintenance Mode page. Click the Preview button to preview your "
6275
- "Maintenance Mode page. After previewing your Maintenance Mode page click the "
6276
- "Turn On button to enable Maintenance Mode on your website."
 
 
 
 
 
 
 
 
 
 
6277
  msgstr ""
6278
 
6279
- #: admin/maintenance/maintenance.php:759 admin/maintenance/maintenance.php:967
6280
- msgid ""
6281
- "IP Address Format Error: You have entered multiple IP Addresses using an "
6282
- "incorrect Format."
6283
  msgstr ""
6284
 
6285
- #: admin/maintenance/maintenance.php:759 admin/maintenance/maintenance.php:967
6286
  msgid ""
6287
- "The correct IP Address Format is: IP Address comma single space. Example: "
6288
- "100.99.88.77, 200.66.55.44, 44.33.22.1 or 100.99.88., 200.66.55., 44.33.22. "
6289
- "if you are using the recommended 3 octet IP addresses."
6290
  msgstr ""
6291
 
6292
- #: admin/maintenance/maintenance.php:759 admin/maintenance/maintenance.php:967
6293
- msgid ""
6294
- "Correct the IP Address Format and click the Save Options button again. If "
6295
- "you have an IPv6 IP address use the same general format as an IPv4 IP "
6296
- "address - comma single space."
6297
  msgstr ""
6298
 
6299
- #: admin/maintenance/maintenance.php:810 admin/maintenance/maintenance.php:1018
6300
- #: admin/maintenance/maintenance.php:1120
6301
- msgid "FrontEnd Maintenance Mode has been Turned On."
6302
  msgstr ""
6303
 
6304
- #: admin/maintenance/maintenance.php:828 admin/maintenance/maintenance.php:1144
6305
- #: admin/maintenance/maintenance.php:1653
6306
- #: admin/maintenance/maintenance.php:1783
6307
- #: admin/maintenance/maintenance.php:1974
6308
- msgid "htaccess Files Disabled: BackEnd Maintenance Mode is disabled."
6309
  msgstr ""
6310
 
6311
- #: admin/maintenance/maintenance.php:903 admin/maintenance/maintenance.php:1221
6312
- msgid "BackEnd Maintenance Mode has been Turned On."
6313
  msgstr ""
6314
 
6315
- #: admin/maintenance/maintenance.php:1237
6316
- #: admin/maintenance/maintenance.php:2026
6317
  msgid ""
6318
- "Error: You have not saved your option settings yet. Click the Save Options "
6319
- "button."
6320
  msgstr ""
6321
 
6322
- #: admin/maintenance/maintenance.php:1314
6323
  msgid ""
6324
- "Error: Unable to get/find the site root index.php file for this GWIOD - "
6325
- "Giving WordPress Its Own Directory - website."
6326
  msgstr ""
6327
 
6328
- #: admin/maintenance/maintenance.php:1314
6329
- msgid "GWIOD Site Root index.php File Path Checked: "
6330
  msgstr ""
6331
 
6332
- #: admin/maintenance/maintenance.php:1314
6333
- msgid ""
6334
- "BPS Maintenance Mode will not work correctly with your WordPress GWIOD "
6335
- "setup. Try another WordPress Maintenance Mode plugin."
6336
  msgstr ""
6337
 
6338
- #: admin/maintenance/maintenance.php:1380
6339
  msgid ""
6340
- "Error: Unable to get/find the site root index.php file for this Network "
6341
- "GWIOD - Giving WordPress Its Own Directory - website."
6342
  msgstr ""
6343
 
6344
- #: admin/maintenance/maintenance.php:1380
6345
- msgid "Network GWIOD Site Root index.php File Path Checked: "
6346
  msgstr ""
6347
 
6348
- #: admin/maintenance/maintenance.php:1380
6349
  msgid ""
6350
- "Please copy this error message and send it in an email to info@ait-pro.com "
6351
- "for assistance."
6352
  msgstr ""
6353
 
6354
- #: admin/maintenance/maintenance.php:1465
6355
- #: admin/maintenance/maintenance.php:1590
6356
- #: admin/maintenance/maintenance.php:1746
6357
- #: admin/maintenance/maintenance.php:1926
6358
- msgid "FrontEnd Maintenance Mode has been Turned Off."
6359
  msgstr ""
6360
 
6361
- #: admin/maintenance/maintenance.php:1693
6362
- #: admin/maintenance/maintenance.php:1819
6363
- #: admin/maintenance/maintenance.php:2010
6364
- msgid "BackEnd Maintenance Mode has been Turned Off."
 
 
6365
  msgstr ""
6366
 
6367
  #: admin/security-log/security-log.php:57
@@ -6425,6 +7868,12 @@ msgid ""
6425
  "text file."
6426
  msgstr ""
6427
 
 
 
 
 
 
 
6428
  #: admin/security-log/security-log.php:255
6429
  msgid ""
6430
  "If a particular User Agent|Bot is generating excessive log entries you can "
@@ -6566,7 +8015,7 @@ msgid ""
6566
  msgstr ""
6567
 
6568
  #: admin/security-log/security-log.php:255
6569
- #: admin/security-log/security-log.php:524
6570
  msgid "POST Request Body Data"
6571
  msgstr ""
6572
 
@@ -6655,7 +8104,7 @@ msgid ""
6655
  msgstr ""
6656
 
6657
  #: admin/security-log/security-log.php:255
6658
- #: admin/security-log/security-log.php:537
6659
  msgid "Add User Agents|Bots to Ignore|Not Log"
6660
  msgstr ""
6661
 
@@ -6767,26 +8216,26 @@ msgid ""
6767
  msgstr ""
6768
 
6769
  #: admin/security-log/security-log.php:400
6770
- #: admin/security-log/security-log.php:608 admin/wizard/wizard.php:302
6771
  #: admin/wizard/wizard.php:308 admin/wizard/wizard.php:314
6772
  #: admin/wizard/wizard.php:320 admin/wizard/wizard.php:326
6773
  msgid "Error: The "
6774
  msgstr ""
6775
 
6776
  #: admin/security-log/security-log.php:400
6777
- #: admin/security-log/security-log.php:608
6778
  msgid " does not exist."
6779
  msgstr ""
6780
 
6781
  #: admin/security-log/security-log.php:428
6782
- #: admin/security-log/security-log.php:621
6783
- #: admin/security-log/security-log.php:685
6784
  msgid "Error: Unable to write to file "
6785
  msgstr ""
6786
 
6787
  #: admin/security-log/security-log.php:428
6788
- #: admin/security-log/security-log.php:621
6789
- #: admin/security-log/security-log.php:685
6790
  msgid ""
6791
  ". Check that file permissions allow writing to this file. If you have a DSO "
6792
  "Server check file and folder Ownership."
@@ -6798,150 +8247,150 @@ msgid ""
6798
  "This User Agent|Bot will be no longer be logged in your Security Log."
6799
  msgstr ""
6800
 
6801
- #: admin/security-log/security-log.php:525
6802
  msgid " Do Not Log POST Request Body Data (0KB)"
6803
  msgstr ""
6804
 
6805
- #: admin/security-log/security-log.php:526
6806
  msgid " Log Minimum POST Request Body Data (5KB)"
6807
  msgstr ""
6808
 
6809
- #: admin/security-log/security-log.php:527
6810
  msgid " Log Maximum POST Request Body Data (250KB)"
6811
  msgstr ""
6812
 
6813
- #: admin/security-log/security-log.php:538
6814
  msgid "Click the Read Me Help button for examples"
6815
  msgstr ""
6816
 
6817
- #: admin/security-log/security-log.php:540
6818
  msgid ""
6819
  "Clicking OK will Add the User Agent|Bot name you have entered to your DB and "
6820
  "the 403.php Security Logging template."
6821
  msgstr ""
6822
 
6823
- #: admin/security-log/security-log.php:540
6824
  msgid ""
6825
  "Security logging checks are done by the 403.php Security Logging file and "
6826
  "not by DB Queries."
6827
  msgstr ""
6828
 
6829
- #: admin/security-log/security-log.php:540
6830
  msgid ""
6831
  "To remove User Agents|Bots from being ignored/not logged use the Remove|"
6832
  "Allow tool."
6833
  msgstr ""
6834
 
6835
- #: admin/security-log/security-log.php:553
6836
  msgid "Remove User Agents|Bots to Allow|Log"
6837
  msgstr ""
6838
 
6839
- #: admin/security-log/security-log.php:555
6840
  msgid ""
6841
  "Clicking OK will search your database and display User Agent|Bot DB search "
6842
  "results in a Dynamic Radio button Form."
6843
  msgstr ""
6844
 
6845
- #: admin/security-log/security-log.php:555
6846
  msgid ""
6847
  "To search for ALL User Agents|Bots to remove/delete from your database leave "
6848
  "the text box blank and click the Remove|Allow button."
6849
  msgstr ""
6850
 
6851
- #: admin/security-log/security-log.php:568
6852
  msgid "Click OK to Turn Off Error Logging or click Cancel."
6853
  msgstr ""
6854
 
6855
- #: admin/security-log/security-log.php:576
6856
  msgid "Click OK to Turn On Logging or click Cancel."
6857
  msgstr ""
6858
 
6859
- #: admin/security-log/security-log.php:584
6860
  msgid "Clicking OK will delete the contents of your Security Log file."
6861
  msgstr ""
6862
 
6863
- #: admin/security-log/security-log.php:642
6864
- #: admin/security-log/security-log.php:743
6865
  msgid "Remove"
6866
  msgstr ""
6867
 
6868
- #: admin/security-log/security-log.php:663
6869
  #, php-format
6870
  msgid "%s unable to delete row from your DB."
6871
  msgstr ""
6872
 
6873
- #: admin/security-log/security-log.php:665
6874
  #, php-format
6875
  msgid "%s has been deleted from your DB."
6876
  msgstr ""
6877
 
6878
- #: admin/security-log/security-log.php:700
6879
  msgid ""
6880
  "Success! The BPS 403.php Security Logging template file has been updated. "
6881
  "This User Agent|Bot will be logged again in your Security Log."
6882
  msgstr ""
6883
 
6884
- #: admin/security-log/security-log.php:728
6885
  msgid "Error: These code characters are not allowed to be used: "
6886
  msgstr ""
6887
 
6888
- #: admin/security-log/security-log.php:738
6889
  msgid "Search Results For User Agents|Bots To Remove"
6890
  msgstr ""
6891
 
6892
- #: admin/security-log/security-log.php:742
6893
  msgid "User Agents|Bots in DB"
6894
  msgstr ""
6895
 
6896
- #: admin/security-log/security-log.php:744
6897
  msgid "Do Not<br>Remove"
6898
  msgstr ""
6899
 
6900
- #: admin/security-log/security-log.php:745
6901
  msgid "Time Added<br>To DB"
6902
  msgstr ""
6903
 
6904
- #: admin/security-log/security-log.php:763
6905
  msgid ""
6906
  "Your DB Search Results For User Agents|Bots To Remove are displayed below "
6907
  "the Remove|Allow Search tool."
6908
  msgstr ""
6909
 
6910
- #: admin/security-log/security-log.php:767
6911
  msgid ""
6912
  "You do not have any User Agents|Bots in your DB To Remove. An empty/blank "
6913
  "dynamic radio button form is displayed below the Remove|Allow Search tool "
6914
  "since you do not have any User Agents|Bot to remove."
6915
  msgstr ""
6916
 
6917
- #: admin/security-log/security-log.php:773
6918
  msgid ""
6919
  "Clicking OK will Remove the User Agent|Bot DB entries for any Remove Radio "
6920
  "button selections you have made. User Agents|Bots will also be removed from "
6921
  "the 403.php Security Logging template."
6922
  msgstr ""
6923
 
6924
- #: admin/security-log/security-log.php:773
6925
  msgid "To add a User Agent|Bot, use the Add|Ignore tool."
6926
  msgstr ""
6927
 
6928
- #: admin/security-log/security-log.php:802
6929
  msgid ""
6930
  "The Security Log File Was Not Found! Check that the file really exists here "
6931
  "- /"
6932
  msgstr ""
6933
 
6934
- #: admin/security-log/security-log.php:802
6935
  msgid "/bps-backup/logs/http_error_log.txt and is named correctly."
6936
  msgstr ""
6937
 
6938
- #: admin/security-log/security-log.php:820
6939
  msgid ""
6940
  "File Open and Write test successful! Your Security Log file is writable."
6941
  msgstr ""
6942
 
6943
- #: admin/security-log/security-log.php:831
6944
- #: admin/security-log/security-log.php:835
6945
  msgid "Success! Your Security Log file has been updated."
6946
  msgstr ""
6947
 
@@ -7215,555 +8664,563 @@ msgstr ""
7215
  msgid "A Zend Extension is Not Loaded"
7216
  msgstr ""
7217
 
7218
- #: admin/system-info/system-info.php:417
7219
- msgid "ionCube Loader"
7220
  msgstr ""
7221
 
7222
- #: admin/system-info/system-info.php:419
7223
- msgid "ionCube Loader Extension is Loaded "
7224
  msgstr ""
7225
 
7226
- #: admin/system-info/system-info.php:419 admin/system-info/system-info.php:479
7227
- #: admin/system-info/system-info.php:488 admin/system-info/system-info.php:619
7228
- #: admin/system-info/system-info.php:631
7229
  msgid "Version: "
7230
  msgstr ""
7231
 
7232
- #: admin/system-info/system-info.php:421
 
 
 
 
 
 
 
 
 
 
 
 
7233
  msgid "ionCube Loader Extension is Not Loaded"
7234
  msgstr ""
7235
 
7236
- #: admin/system-info/system-info.php:424
7237
  msgid "Suhosin"
7238
  msgstr ""
7239
 
7240
- #: admin/system-info/system-info.php:428
7241
  msgid "The Suhosin-Patch is installed"
7242
  msgstr ""
7243
 
7244
- #: admin/system-info/system-info.php:431
7245
  msgid "Suhosin-Extension is Loaded"
7246
  msgstr ""
7247
 
7248
- #: admin/system-info/system-info.php:434
7249
  msgid "Suhosin is Not Installed|Loaded"
7250
  msgstr ""
7251
 
7252
- #: admin/system-info/system-info.php:438
7253
  msgid "APC"
7254
  msgstr ""
7255
 
7256
- #: admin/system-info/system-info.php:440
7257
  msgid "APC Extension is Loaded and Enabled"
7258
  msgstr ""
7259
 
7260
- #: admin/system-info/system-info.php:443
7261
  msgid "APC Extension is Loaded but Not Enabled"
7262
  msgstr ""
7263
 
7264
- #: admin/system-info/system-info.php:445
7265
  msgid "APC Extension is Not Loaded"
7266
  msgstr ""
7267
 
7268
- #: admin/system-info/system-info.php:448
7269
  msgid "eAccelerator"
7270
  msgstr ""
7271
 
7272
- #: admin/system-info/system-info.php:450
7273
  msgid "eAccelerator Extension is Loaded and Enabled"
7274
  msgstr ""
7275
 
7276
- #: admin/system-info/system-info.php:453
7277
  msgid "eAccelerator Extension is Loaded but Not Enabled"
7278
  msgstr ""
7279
 
7280
- #: admin/system-info/system-info.php:455
7281
  msgid "eAccelerator Extension is Not Loaded"
7282
  msgstr ""
7283
 
7284
- #: admin/system-info/system-info.php:458
7285
  msgid "XCache"
7286
  msgstr ""
7287
 
7288
- #: admin/system-info/system-info.php:460
7289
  msgid "XCache Extension is Loaded and Enabled"
7290
  msgstr ""
7291
 
7292
- #: admin/system-info/system-info.php:463
7293
  msgid "XCache Extension is Loaded but Not Enabled"
7294
  msgstr ""
7295
 
7296
- #: admin/system-info/system-info.php:465
7297
  msgid "XCache Extension is Not Loaded"
7298
  msgstr ""
7299
 
7300
- #: admin/system-info/system-info.php:468
7301
  msgid "Varnish"
7302
  msgstr ""
7303
 
7304
- #: admin/system-info/system-info.php:470
7305
  msgid "Varnish Extension is Loaded"
7306
  msgstr ""
7307
 
7308
- #: admin/system-info/system-info.php:472
7309
  msgid "Varnish Extension is Not Loaded"
7310
  msgstr ""
7311
 
7312
- #: admin/system-info/system-info.php:475
7313
  msgid "Memcache"
7314
  msgstr ""
7315
 
7316
- #: admin/system-info/system-info.php:479
7317
  msgid "Memcache Extension is Loaded - "
7318
  msgstr ""
7319
 
7320
- #: admin/system-info/system-info.php:481
7321
  msgid "Memcache Extension is Not Loaded"
7322
  msgstr ""
7323
 
7324
- #: admin/system-info/system-info.php:484
7325
  msgid "Memcached"
7326
  msgstr ""
7327
 
7328
- #: admin/system-info/system-info.php:488
7329
  msgid "Memcached Extension is Loaded - "
7330
  msgstr ""
7331
 
7332
- #: admin/system-info/system-info.php:490
7333
  msgid "Memcached Extension is Not Loaded"
7334
  msgstr ""
7335
 
7336
- #: admin/system-info/system-info.php:503
7337
  msgid "MySQL DB Info is not displayed on Network/Multisite subsites"
7338
  msgstr ""
7339
 
7340
- #: admin/system-info/system-info.php:524 includes/general-functions.php:283
7341
  msgid "Not Set"
7342
  msgstr ""
7343
 
7344
- #: admin/system-info/system-info.php:530
7345
  msgid "MySQL Database Server Version: "
7346
  msgstr ""
7347
 
7348
- #: admin/system-info/system-info.php:530
7349
  msgid "MySQL Client Version: "
7350
  msgstr ""
7351
 
7352
- #: admin/system-info/system-info.php:530
7353
  msgid "MySQL Database Server: "
7354
  msgstr ""
7355
 
7356
- #: admin/system-info/system-info.php:530
7357
  msgid "Your MySQL Database: "
7358
  msgstr ""
7359
 
7360
- #: admin/system-info/system-info.php:530
7361
  msgid "SQL Mode: "
7362
  msgstr ""
7363
 
7364
- #: admin/system-info/system-info.php:535 admin/system-info/system-info.php:538
7365
  msgid "MySQL Extension: "
7366
  msgstr ""
7367
 
7368
- #: admin/system-info/system-info.php:535 admin/system-info/system-info.php:543
7369
  msgid "Installed|Enabled"
7370
  msgstr ""
7371
 
7372
- #: admin/system-info/system-info.php:538 admin/system-info/system-info.php:546
7373
  msgid "NOT Installed|Enabled"
7374
  msgstr ""
7375
 
7376
- #: admin/system-info/system-info.php:543 admin/system-info/system-info.php:546
7377
  msgid "MySQLi Extension: "
7378
  msgstr ""
7379
 
7380
- #: admin/system-info/system-info.php:553
7381
  msgid "WordPress Installation Folder"
7382
  msgstr ""
7383
 
7384
- #: admin/system-info/system-info.php:556
7385
  msgid "WordPress Installation Type"
7386
  msgstr ""
7387
 
7388
- #: admin/system-info/system-info.php:558
7389
  msgid "Standard|GWIOD Site Type"
7390
  msgstr ""
7391
 
7392
- #: admin/system-info/system-info.php:560
7393
  msgid "Network|Multisite"
7394
  msgstr ""
7395
 
7396
- #: admin/system-info/system-info.php:562
7397
  msgid "BuddyPress"
7398
  msgstr ""
7399
 
7400
- #: admin/system-info/system-info.php:564
7401
  msgid "bbPress"
7402
  msgstr ""
7403
 
7404
- #: admin/system-info/system-info.php:566
7405
  msgid "Plugins Folder"
7406
  msgstr ""
7407
 
7408
- #: admin/system-info/system-info.php:570
7409
  msgid "Uploads Folder"
7410
  msgstr ""
7411
 
7412
- #: admin/system-info/system-info.php:576
7413
  msgid "UPLOADS Constant"
7414
  msgstr ""
7415
 
7416
- #: admin/system-info/system-info.php:580
7417
  msgid "WP Permalink Structure"
7418
  msgstr ""
7419
 
7420
- #: admin/system-info/system-info.php:585 admin/system-info/system-info.php:587
7421
  msgid "DISABLE_WP_CRON constant"
7422
  msgstr ""
7423
 
7424
- #: admin/system-info/system-info.php:585
7425
  msgid "Standard WP Crons are disabled on your website."
7426
  msgstr ""
7427
 
7428
- #: admin/system-info/system-info.php:587
7429
  msgid "Standard WP Crons are not disabled on your website."
7430
  msgstr ""
7431
 
7432
- #: admin/system-info/system-info.php:590
7433
  msgid "Total Plugins Installed"
7434
  msgstr ""
7435
 
7436
- #: admin/system-info/system-info.php:592
7437
  msgid "Total Must-Use Plugins Installed"
7438
  msgstr ""
7439
 
7440
- #: admin/system-info/system-info.php:594
7441
  msgid "Total Plugins Activated"
7442
  msgstr ""
7443
 
7444
- #: admin/system-info/system-info.php:597
7445
  msgid "Total Plugins Network Activated"
7446
  msgstr ""
7447
 
7448
- #: admin/system-info/system-info.php:603 admin/system-info/system-info.php:605
7449
  msgid "Get Plugins List"
7450
  msgstr ""
7451
 
7452
- #: admin/system-info/system-info.php:606
7453
  msgid "This window is draggable (top) and resizable (bottom right corner)"
7454
  msgstr ""
7455
 
7456
- #: admin/system-info/system-info.php:611
7457
  msgid "Browser Compression Supported"
7458
  msgstr ""
7459
 
7460
- #: admin/system-info/system-info.php:614
7461
  msgid "GD Library"
7462
  msgstr ""
7463
 
7464
- #: admin/system-info/system-info.php:619
7465
  msgid "GD Extension is Loaded - "
7466
  msgstr ""
7467
 
7468
- #: admin/system-info/system-info.php:622
7469
  msgid "GD Extension is Not Loaded"
7470
  msgstr ""
7471
 
7472
- #: admin/system-info/system-info.php:625
7473
  msgid "ImageMagick"
7474
  msgstr ""
7475
 
7476
- #: admin/system-info/system-info.php:631
7477
  msgid "ImageMagick Extension is Loaded - "
7478
  msgstr ""
7479
 
7480
- #: admin/system-info/system-info.php:634
7481
  msgid "ImageMagick Extension is Not Loaded"
7482
  msgstr ""
7483
 
7484
- #: admin/system-info/system-info.php:649
7485
  msgid "PHP Server|PHP.ini Info"
7486
  msgstr ""
7487
 
7488
- #: admin/system-info/system-info.php:651
7489
  msgid ""
7490
  "File|Folder Permissions (CGI or DSO)|Script Owner User ID (UID)|File Owner "
7491
  "User ID"
7492
  msgstr ""
7493
 
7494
- #: admin/system-info/system-info.php:659
7495
  msgid "PHP Version"
7496
  msgstr ""
7497
 
7498
- #: admin/system-info/system-info.php:660
7499
  msgid "PHP Memory Usage"
7500
  msgstr ""
7501
 
7502
- #: admin/system-info/system-info.php:660
7503
  msgid " MB"
7504
  msgstr ""
7505
 
7506
- #: admin/system-info/system-info.php:661
7507
  msgid "WordPress Admin Memory Limit"
7508
  msgstr ""
7509
 
7510
- #: admin/system-info/system-info.php:664
7511
  msgid "WordPress Base Memory Limit"
7512
  msgstr ""
7513
 
7514
- #: admin/system-info/system-info.php:672 admin/system-info/system-info.php:678
7515
- #: admin/system-info/system-info.php:681 admin/system-info/system-info.php:684
7516
  msgid "PHP Actual Configuration Memory Limit: "
7517
  msgstr ""
7518
 
7519
- #: admin/system-info/system-info.php:672
7520
  msgid "The Memory Limit value is not available from your Server."
7521
  msgstr ""
7522
 
7523
- #: admin/system-info/system-info.php:681 admin/system-info/system-info.php:684
7524
  msgid " Recommendation: Increase Memory Limit to 128M."
7525
  msgstr ""
7526
 
7527
- #: admin/system-info/system-info.php:692 admin/system-info/system-info.php:694
7528
  msgid "PHP Configuration File (php.ini)"
7529
  msgstr ""
7530
 
7531
- #: admin/system-info/system-info.php:694
7532
  msgid "None/Not in use"
7533
  msgstr ""
7534
 
7535
- #: admin/system-info/system-info.php:707
7536
  msgid "WP Temp Dir: "
7537
  msgstr ""
7538
 
7539
- #: admin/system-info/system-info.php:710
7540
  msgid "The WP_TEMP_DIR constant is being used in wp-config.php file"
7541
  msgstr ""
7542
 
7543
- #: admin/system-info/system-info.php:716 admin/system-info/system-info.php:718
7544
  msgid "PHP Temp Dir: "
7545
  msgstr ""
7546
 
7547
- #: admin/system-info/system-info.php:718 admin/system-info/system-info.php:729
7548
- #: admin/system-info/system-info.php:737
7549
  msgid "Not set/defined or directory is not writable"
7550
  msgstr ""
7551
 
7552
- #: admin/system-info/system-info.php:727 admin/system-info/system-info.php:729
7553
  msgid "PHP Upload Temp Dir: "
7554
  msgstr ""
7555
 
7556
- #: admin/system-info/system-info.php:735 admin/system-info/system-info.php:737
7557
  msgid "Session Save Path: "
7558
  msgstr ""
7559
 
7560
- #: admin/system-info/system-info.php:742
7561
  msgid "On | Cycles: "
7562
  msgstr ""
7563
 
7564
- #: admin/system-info/system-info.php:747
7565
  msgid "Garbage Collector: "
7566
  msgstr ""
7567
 
7568
- #: admin/system-info/system-info.php:750
7569
  msgid "PHP Max Upload Size"
7570
  msgstr ""
7571
 
7572
- #: admin/system-info/system-info.php:753
7573
  msgid "PHP Max Post Size"
7574
  msgstr ""
7575
 
7576
- #: admin/system-info/system-info.php:756
7577
  msgid "PHP Safe Mode"
7578
  msgstr ""
7579
 
7580
- #: admin/system-info/system-info.php:765
7581
  msgid "PHP Allow URL fopen"
7582
  msgstr ""
7583
 
7584
- #: admin/system-info/system-info.php:773
7585
  msgid "PHP Allow URL Include"
7586
  msgstr ""
7587
 
7588
- #: admin/system-info/system-info.php:781
7589
  msgid "PHP Display Errors"
7590
  msgstr ""
7591
 
7592
- #: admin/system-info/system-info.php:789
7593
  msgid "PHP Display Startup Errors"
7594
  msgstr ""
7595
 
7596
- #: admin/system-info/system-info.php:797
7597
  msgid "PHP Expose PHP"
7598
  msgstr ""
7599
 
7600
- #: admin/system-info/system-info.php:805
7601
  msgid "PHP Register Globals"
7602
  msgstr ""
7603
 
7604
- #: admin/system-info/system-info.php:813
7605
  msgid "PHP MySQL Allow Persistent Connections"
7606
  msgstr ""
7607
 
7608
- #: admin/system-info/system-info.php:821
7609
  msgid "PHP Output Buffering"
7610
  msgstr ""
7611
 
7612
- #: admin/system-info/system-info.php:829
7613
  msgid "PHP Max Script Execution Time"
7614
  msgstr ""
7615
 
7616
- #: admin/system-info/system-info.php:832
7617
  msgid "PHP Magic Quotes GPC"
7618
  msgstr ""
7619
 
7620
- #: admin/system-info/system-info.php:840
7621
  msgid "PHP open_basedir"
7622
  msgstr ""
7623
 
7624
- #: admin/system-info/system-info.php:845
7625
  msgid "Off/Not in use"
7626
  msgstr ""
7627
 
7628
- #: admin/system-info/system-info.php:847
7629
  msgid "PHP XML Support"
7630
  msgstr ""
7631
 
7632
- #: admin/system-info/system-info.php:849 admin/system-info/system-info.php:857
7633
- #: admin/system-info/system-info.php:865
7634
  msgid "Yes"
7635
  msgstr ""
7636
 
7637
- #: admin/system-info/system-info.php:852 admin/system-info/system-info.php:860
7638
- #: admin/system-info/system-info.php:868
7639
  msgid "No"
7640
  msgstr ""
7641
 
7642
- #: admin/system-info/system-info.php:855
7643
  msgid "PHP IPTC Support"
7644
  msgstr ""
7645
 
7646
- #: admin/system-info/system-info.php:863
7647
  msgid "PHP Exif Support"
7648
  msgstr ""
7649
 
7650
- #: admin/system-info/system-info.php:889
7651
  msgid "CGI File and Folder Permissions|Recommendations"
7652
  msgstr ""
7653
 
7654
- #: admin/system-info/system-info.php:892 admin/system-info/system-info.php:925
7655
- msgid "File Path"
7656
- msgstr ""
7657
-
7658
- #: admin/system-info/system-info.php:892 admin/system-info/system-info.php:925
7659
  msgid "Folder Path"
7660
  msgstr ""
7661
 
7662
- #: admin/system-info/system-info.php:893 admin/system-info/system-info.php:926
7663
  msgid "Recommended"
7664
  msgstr ""
7665
 
7666
- #: admin/system-info/system-info.php:893 admin/system-info/system-info.php:894
7667
- #: admin/system-info/system-info.php:926 admin/system-info/system-info.php:927
7668
  msgid "Permissions"
7669
  msgstr ""
7670
 
7671
- #: admin/system-info/system-info.php:894 admin/system-info/system-info.php:927
7672
  msgid "Current"
7673
  msgstr ""
7674
 
7675
- #: admin/system-info/system-info.php:895 admin/system-info/system-info.php:928
7676
  msgid "Script Owner"
7677
  msgstr ""
7678
 
7679
- #: admin/system-info/system-info.php:895 admin/system-info/system-info.php:928
7680
  msgid " User ID (UID)"
7681
  msgstr ""
7682
 
7683
- #: admin/system-info/system-info.php:896 admin/system-info/system-info.php:929
7684
  msgid "File Owner"
7685
  msgstr ""
7686
 
7687
- #: admin/system-info/system-info.php:896 admin/system-info/system-info.php:929
7688
  msgid " User ID"
7689
  msgstr ""
7690
 
7691
- #: admin/system-info/system-info.php:922
7692
  msgid "DSO File and Folder Permissions|Recommendations"
7693
  msgstr ""
7694
 
7695
- #: admin/system-info/system-info.php:957
7696
  msgid "System Info Processing Completion Time: "
7697
  msgstr ""
7698
 
7699
- #: admin/system-info/system-info.php:990
7700
  msgid "Website Headers Check Tool ~ "
7701
  msgstr ""
7702
 
7703
- #: admin/system-info/system-info.php:990
7704
  msgid ""
7705
  "Check your website Headers or another website's Headers by making a GET or "
7706
  "HEAD Request"
7707
  msgstr ""
7708
 
7709
- #: admin/system-info/system-info.php:997
7710
  msgid ""
7711
  "Check your website Headers or another website's Headers by making a GET "
7712
  "Request"
7713
  msgstr ""
7714
 
7715
- #: admin/system-info/system-info.php:1014
7716
  msgid "GET Request Headers: "
7717
  msgstr ""
7718
 
7719
- #: admin/system-info/system-info.php:1029
7720
  msgid ""
7721
  "Error: The WordPress wp_remote_get function is not available or is blocked "
7722
  "on your website/server."
7723
  msgstr ""
7724
 
7725
- #: admin/system-info/system-info.php:1039
7726
- #: admin/system-info/system-info.php:1100
7727
  msgid "Enter a Website URL - Example: "
7728
  msgstr ""
7729
 
7730
- #: admin/system-info/system-info.php:1042
7731
  msgid ""
7732
  "This Headers check makes a GET Request using the WordPress wp_remote_get "
7733
  "function."
7734
  msgstr ""
7735
 
7736
- #: admin/system-info/system-info.php:1042
7737
  msgid ""
7738
  "You can use the Check Headers HEAD Request tool to check headers using HEAD "
7739
  "instead of GET."
7740
  msgstr ""
7741
 
7742
- #: admin/system-info/system-info.php:1048
7743
  msgid ""
7744
  "Check your website Headers or another website's Headers by making a HEAD "
7745
  "Request"
7746
  msgstr ""
7747
 
7748
- #: admin/system-info/system-info.php:1081
7749
  msgid "HEAD Request Headers: "
7750
  msgstr ""
7751
 
7752
- #: admin/system-info/system-info.php:1090
7753
  msgid ""
7754
  "Error: The cURL Headers Check does not work on your website. Either the cURL "
7755
  "Extension is not loaded or one of these functions is disabled in your php."
7756
  "ini file: curl_init, curl_exec and/or curl_setopt."
7757
  msgstr ""
7758
 
7759
- #: admin/system-info/system-info.php:1103
7760
  msgid ""
7761
  "This cURL Headers check makes a HEAD Request and you will see HTTP/1.1 403 "
7762
  "Forbidden displayed if you are blocking HEAD Requests in your BPS root ."
7763
  "htaccess file on your website."
7764
  msgstr ""
7765
 
7766
- #: admin/system-info/system-info.php:1103
7767
  msgid ""
7768
  "Use the Check Headers GET Request tool to check your headers using GET "
7769
  "instead of HEAD. This tool can also be used to check that your Security Log "
@@ -8329,345 +9786,353 @@ msgstr ""
8329
  msgid "MailChimp for WordPress Plugin Request Methods AutoWhitelist successful"
8330
  msgstr ""
8331
 
8332
- #: admin/wizard/pwizard-autofix.php:252
 
 
 
 
8333
  msgid "WooCommerce Plugin skip/bypass rule AutoWhitelist successful"
8334
  msgstr ""
8335
 
8336
- #: admin/wizard/pwizard-autofix.php:277
8337
  msgid "Simple Lightbox Plugin skip/bypass rule AutoWhitelist successful"
8338
  msgstr ""
8339
 
8340
- #: admin/wizard/pwizard-autofix.php:295
8341
  msgid ""
8342
  "WPBakery Visual Composer Plugin skip/bypass rule AutoWhitelist successful"
8343
  msgstr ""
8344
 
8345
- #: admin/wizard/pwizard-autofix.php:313
8346
  msgid ""
8347
  "Event Espresso Attendee Mover Plugin skip/bypass rule AutoWhitelist "
8348
  "successful"
8349
  msgstr ""
8350
 
8351
- #: admin/wizard/pwizard-autofix.php:331
8352
  msgid "WP Rocket Plugin skip/bypass rule AutoWhitelist successful"
8353
  msgstr ""
8354
 
8355
- #: admin/wizard/pwizard-autofix.php:349
8356
  msgid "Easy Media Gallery Pro Plugin skip/bypass rule AutoWhitelist successful"
8357
  msgstr ""
8358
 
8359
- #: admin/wizard/pwizard-autofix.php:367
8360
  msgid ""
8361
  "Nextend Facebook Connect Plugin skip/bypass rule AutoWhitelist successful"
8362
  msgstr ""
8363
 
8364
- #: admin/wizard/pwizard-autofix.php:385
8365
  msgid "Shashin Plugin skip/bypass rule AutoWhitelist successful"
8366
  msgstr ""
8367
 
8368
- #: admin/wizard/pwizard-autofix.php:402
8369
  msgid "Nocturnal Theme skip/bypass rule AutoWhitelist successful"
8370
  msgstr ""
8371
 
8372
- #: admin/wizard/pwizard-autofix.php:420
8373
  msgid "Shopp Plugin skip/bypass rule AutoWhitelist successful"
8374
  msgstr ""
8375
 
8376
- #: admin/wizard/pwizard-autofix.php:438
8377
  msgid ""
8378
  "WP-Invoice - Web Invoice and Billing Plugin skip/bypass rule AutoWhitelist "
8379
  "successful"
8380
  msgstr ""
8381
 
8382
- #: admin/wizard/pwizard-autofix.php:456
8383
  msgid "wp-greet Plugin skip/bypass rule AutoWhitelist successful"
8384
  msgstr ""
8385
 
8386
- #: admin/wizard/pwizard-autofix.php:474
8387
  msgid "WP Juicebox Plugin skip/bypass rule AutoWhitelist successful"
8388
  msgstr ""
8389
 
8390
- #: admin/wizard/pwizard-autofix.php:492
8391
  msgid "Prayer Engine Plugin skip/bypass rule AutoWhitelist successful"
8392
  msgstr ""
8393
 
8394
- #: admin/wizard/pwizard-autofix.php:510
8395
  msgid "Appointment Calendar Plugin skip/bypass rule AutoWhitelist successful"
8396
  msgstr ""
8397
 
8398
- #: admin/wizard/pwizard-autofix.php:528
8399
  msgid "ThirstyAffiliates Plugin skip/bypass rule AutoWhitelist successful"
8400
  msgstr ""
8401
 
8402
- #: admin/wizard/pwizard-autofix.php:546
8403
  msgid ""
8404
  "WooCommerce Ogone Payment Gateway Plugin skip/bypass rule AutoWhitelist "
8405
  "successful"
8406
  msgstr ""
8407
 
8408
- #: admin/wizard/pwizard-autofix.php:563
8409
  msgid ""
8410
  "OIOpublisher Ad Manager Plugin skip/bypass rule AutoWhitelist successful"
8411
  msgstr ""
8412
 
8413
- #: admin/wizard/pwizard-autofix.php:691
8414
  msgid "PDF Viewer (Envigeek Web Services) Plugin RFI AutoWhitelist successful"
8415
  msgstr ""
8416
 
8417
- #: admin/wizard/pwizard-autofix.php:705
8418
  msgid "Marmoset Viewer Plugin RFI AutoWhitelist successful"
8419
  msgstr ""
8420
 
8421
- #: admin/wizard/pwizard-autofix.php:719
8422
  msgid ""
8423
  "PDF viewer for WordPress (ThemeNcode code canyon) Plugin RFI AutoWhitelist "
8424
  "successful"
8425
  msgstr ""
8426
 
8427
- #: admin/wizard/pwizard-autofix.php:733
8428
  msgid "jupdf pdf viewer Plugin RFI AutoWhitelist successful"
8429
  msgstr ""
8430
 
8431
- #: admin/wizard/pwizard-autofix.php:747
8432
  msgid "UserPro (code canyon) Plugin RFI AutoWhitelist successful"
8433
  msgstr ""
8434
 
8435
- #: admin/wizard/pwizard-autofix.php:760
8436
  msgid "NativeChurch Theme RFI AutoWhitelist successful"
8437
  msgstr ""
8438
 
8439
- #: admin/wizard/pwizard-autofix.php:774
8440
  msgid "User Avatar (CTLT DEV) Plugin RFI AutoWhitelist successful"
8441
  msgstr ""
8442
 
8443
- #: admin/wizard/pwizard-autofix.php:787
8444
  msgid "OIOpublisher Ad Manager Plugin RFI AutoWhitelist successful"
8445
  msgstr ""
8446
 
8447
- #: admin/wizard/pwizard-autofix.php:801
8448
  msgid "Digital Access Pass (DAP) Plugin RFI AutoWhitelist successful"
8449
  msgstr ""
8450
 
8451
- #: admin/wizard/pwizard-autofix.php:814
8452
  msgid "Easy Pagination (code canyon) Plugin RFI AutoWhitelist successful"
8453
  msgstr ""
8454
 
8455
- #: admin/wizard/pwizard-autofix.php:827
8456
  msgid "iTheme2 Theme RFI AutoWhitelist successful"
8457
  msgstr ""
8458
 
8459
- #: admin/wizard/pwizard-autofix.php:840
8460
  msgid "SmoothV4.1 Theme RFI AutoWhitelist successful"
8461
  msgstr ""
8462
 
8463
- #: admin/wizard/pwizard-autofix.php:992
8464
  msgid "WooCommerce PagSeguro Plugin BPSQSE AutoWhitelist successful"
8465
  msgstr ""
8466
 
8467
- #: admin/wizard/pwizard-autofix.php:1010
8468
  msgid "Event Espresso Plugin BPSQSE AutoWhitelist successful"
8469
  msgstr ""
8470
 
8471
- #: admin/wizard/pwizard-autofix.php:1025
8472
  msgid "WooCommerce Serial Key Plugin BPSQSE AutoWhitelist successful"
8473
  msgstr ""
8474
 
8475
- #: admin/wizard/pwizard-autofix.php:1041
8476
  msgid "WooCommerce WorldPay Extension BPSQSE AutoWhitelist successful"
8477
  msgstr ""
8478
 
8479
- #: admin/wizard/pwizard-autofix.php:1057
8480
  msgid "Kama Click Counter Plugin BPSQSE AutoWhitelist successful"
8481
  msgstr ""
8482
 
8483
- #: admin/wizard/pwizard-autofix.php:1073
8484
  msgid "Riva Slider Pro Plugin BPSQSE AutoWhitelist successful"
8485
  msgstr ""
8486
 
8487
- #: admin/wizard/pwizard-autofix.php:1089
8488
  msgid "WordPress Auto Spinner Plugin BPSQSE AutoWhitelist successful"
8489
  msgstr ""
8490
 
8491
- #: admin/wizard/pwizard-autofix.php:1104
8492
  msgid "AgriTurismo Theme BPSQSE AutoWhitelist successful"
8493
  msgstr ""
8494
 
8495
- #: admin/wizard/pwizard-autofix.php:1120
8496
  msgid "WP Content Copy Protection Pro Plugin BPSQSE AutoWhitelist successful"
8497
  msgstr ""
8498
 
8499
- #: admin/wizard/pwizard-autofix.php:1136
8500
  msgid "PanoPress Plugin BPSQSE AutoWhitelist successful"
8501
  msgstr ""
8502
 
8503
- #: admin/wizard/pwizard-autofix.php:1152
8504
  msgid ""
8505
  "Easy Social Share Buttons (Code Canyon) Plugin BPSQSE AutoWhitelist "
8506
  "successful"
8507
  msgstr ""
8508
 
8509
- #: admin/wizard/pwizard-autofix.php:1168
8510
  msgid "MainWP Plugin BPSQSE AutoWhitelist successful"
8511
  msgstr ""
8512
 
8513
- #: admin/wizard/pwizard-autofix.php:1183
8514
  msgid "Clever Course Theme BPSQSE AutoWhitelist successful"
8515
  msgstr ""
8516
 
8517
- #: admin/wizard/pwizard-autofix.php:1199
8518
  msgid ""
8519
  "WP eStore (WP Cart for Digital Products) Plugin BPSQSE AutoWhitelist "
8520
  "successful"
8521
  msgstr ""
8522
 
8523
- #: admin/wizard/pwizard-autofix.php:1215
8524
  msgid "WP eMember Plugin BPSQSE AutoWhitelist successful"
8525
  msgstr ""
8526
 
8527
- #: admin/wizard/pwizard-autofix.php:1231
8528
  msgid "Easy Digital Downloads Plugin BPSQSE AutoWhitelist successful"
8529
  msgstr ""
8530
 
8531
- #: admin/wizard/pwizard-autofix.php:1247
8532
  msgid ""
8533
  "MailPoet Newsletters (wysija newsletters) Plugin BPSQSE AutoWhitelist "
8534
  "successful"
8535
  msgstr ""
8536
 
8537
- #: admin/wizard/pwizard-autofix.php:1263
8538
  msgid "MailChimp for WordPress Plugin BPSQSE AutoWhitelist successful"
8539
  msgstr ""
8540
 
8541
- #: admin/wizard/pwizard-autofix.php:1279
8542
  msgid "Digital Access Pass (DAP) Plugin BPSQSE AutoWhitelist successful"
8543
  msgstr ""
8544
 
8545
- #: admin/wizard/pwizard-autofix.php:1295
8546
  msgid "WordPress Newsletter (tribulant) Plugin BPSQSE AutoWhitelist successful"
8547
  msgstr ""
8548
 
8549
- #: admin/wizard/pwizard-autofix.php:1399
8550
  msgid ""
8551
  "WooCommerce Product Feed Pro Plugin wp-admin skip/bypass rule AutoWhitelist "
8552
  "successful"
8553
  msgstr ""
8554
 
8555
- #: admin/wizard/pwizard-autofix.php:1417
8556
  msgid ""
8557
  "WPBakery Visual Composer Plugin wp-admin skip/bypass rule AutoWhitelist "
8558
  "successful"
8559
  msgstr ""
8560
 
8561
- #: admin/wizard/pwizard-autofix.php:1435
8562
  msgid ""
8563
  "Bookly Booking Plugin wp-admin skip/bypass rule AutoWhitelist successful"
8564
  msgstr ""
8565
 
8566
- #: admin/wizard/pwizard-autofix.php:1453
8567
  msgid ""
8568
  "Easy Media Gallery Pro Plugin wp-admin skip/bypass rule AutoWhitelist "
8569
  "successful"
8570
  msgstr ""
8571
 
8572
- #: admin/wizard/pwizard-autofix.php:1471
8573
  msgid ""
8574
  "NextGen Gallery Plugin wp-admin skip/bypass rule AutoWhitelist successful"
8575
  msgstr ""
8576
 
8577
- #: admin/wizard/pwizard-autofix.php:1488
8578
  msgid "OptimizePress Theme wp-admin skip/bypass rule AutoWhitelist successful"
8579
  msgstr ""
8580
 
8581
- #: admin/wizard/pwizard-autofix.php:1506
8582
  msgid ""
8583
  "tribulant Shopping Cart (WP Checkout) Plugin wp-admin skip/bypass rule "
8584
  "AutoWhitelist successful"
8585
  msgstr ""
8586
 
8587
- #: admin/wizard/pwizard-autofix.php:1524
8588
  msgid ""
8589
  "ithemes Video Showcase Plugin wp-admin skip/bypass rule AutoWhitelist "
8590
  "successful"
8591
  msgstr ""
8592
 
8593
- #: admin/wizard/pwizard-autofix.php:1542
8594
  msgid ""
8595
  "WP-Invoice - Web Invoice and Billing Plugin wp-admin skip/bypass rule "
8596
  "AutoWhitelist successful"
8597
  msgstr ""
8598
 
8599
- #: admin/wizard/pwizard-autofix.php:1560
8600
  msgid "Yoast SEO Plugin wp-admin skip/bypass rule AutoWhitelist successful"
8601
  msgstr ""
8602
 
8603
- #: admin/wizard/pwizard-autofix.php:1577
8604
  msgid ""
8605
  "Formidable Pro Plugin wp-admin skip/bypass rule AutoWhitelist successful"
8606
  msgstr ""
8607
 
8608
- #: admin/wizard/pwizard-autofix.php:1595
8609
  msgid ""
8610
  "Google Typography Plugin wp-admin skip/bypass rule AutoWhitelist successful"
8611
  msgstr ""
8612
 
8613
- #: admin/wizard/pwizard-autofix.php:1613
8614
  msgid "Flare Plugin wp-admin skip/bypass rule AutoWhitelist successful"
8615
  msgstr ""
8616
 
8617
- #: admin/wizard/pwizard-autofix.php:1631
8618
  msgid "bbPress Plugin wp-admin skip/bypass rule AutoWhitelist successful"
8619
  msgstr ""
8620
 
8621
- #: admin/wizard/pwizard-autofix.php:1649
8622
  msgid ""
8623
  "Spider Event Calendar (WordPress Event Calendar) Plugin wp-admin skip/bypass "
8624
  "rule AutoWhitelist successful"
8625
  msgstr ""
8626
 
8627
- #: admin/wizard/pwizard-autofix.php:1671
8628
  msgid "BuddyPress Plugin wp-admin skip/bypass rule AutoWhitelist successful"
8629
  msgstr ""
8630
 
8631
- #: admin/wizard/pwizard-autofix.php:1691
8632
  msgid ""
8633
  "WPML Translation Management Plugin wp-admin skip/bypass rule AutoWhitelist "
8634
  "successful"
8635
  msgstr ""
8636
 
8637
- #: admin/wizard/pwizard-autofix.php:1709
8638
  msgid ""
8639
  "Events Manager Plugin wp-admin skip/bypass rule AutoWhitelist successful"
8640
  msgstr ""
8641
 
8642
- #: admin/wizard/pwizard-autofix.php:1727
8643
  msgid ""
8644
  "MailPoet Newsletters (wysija newsletters) Plugin wp-admin skip/bypass rule "
8645
  "AutoWhitelist successful"
8646
  msgstr ""
8647
 
8648
- #: admin/wizard/pwizard-autofix.php:1747
8649
  msgid ""
8650
  "Event Espresso Plugin wp-admin skip/bypass rule AutoWhitelist successful"
8651
  msgstr ""
8652
 
8653
- #: admin/wizard/pwizard-autofix.php:1764
8654
  msgid "Content Egg Plugin wp-admin skip/bypass rule AutoWhitelist successful"
8655
  msgstr ""
8656
 
8657
- #: admin/wizard/pwizard-autofix.php:1882
 
 
 
 
8658
  msgid "Content Egg Plugin wp-admin BPSQSE AutoWhitelist successful"
8659
  msgstr ""
8660
 
8661
- #: admin/wizard/pwizard-autofix.php:1900
8662
  msgid "Event Espresso Plugin wp-admin BPSQSE AutoWhitelist successful"
8663
  msgstr ""
8664
 
8665
- #: admin/wizard/pwizard-autofix.php:1915
8666
  msgid ""
8667
  "Open Web Analytics (github) Plugin wp-admin BPSQSE AutoWhitelist successful"
8668
  msgstr ""
8669
 
8670
- #: admin/wizard/pwizard-autofix.php:1931
8671
  msgid "UberGrid (code canyon) Plugin wp-admin BPSQSE AutoWhitelist successful"
8672
  msgstr ""
8673
 
@@ -8703,52 +10168,52 @@ msgstr ""
8703
  msgid "Download Root htaccess File"
8704
  msgstr ""
8705
 
8706
- #: admin/wizard/wizard-functions.php:42
8707
  msgid ""
8708
  "htaccess Files Disabled: Existing BPS htaccess files have been deleted and "
8709
  "new BPS htaccess files will not be created. All BPS htaccess features are "
8710
  "disabled."
8711
  msgstr ""
8712
 
8713
- #: admin/wizard/wizard-functions.php:106
8714
  msgid "The secure.htaccess Root Master htaccess file was created successfully."
8715
  msgstr ""
8716
 
8717
- #: admin/wizard/wizard-functions.php:106
8718
  msgid "Root Folder BulletProof Mode activated successfully."
8719
  msgstr ""
8720
 
8721
- #: admin/wizard/wizard-functions.php:108
8722
  msgid ""
8723
  "Error: The secure.htaccess Root Master htaccess file and root .htaccess file "
8724
  "cannot be created. Root Folder BulletProof Mode has NOT been activated."
8725
  msgstr ""
8726
 
8727
- #: admin/wizard/wizard-functions.php:108 admin/wizard/wizard-functions.php:628
8728
- #: admin/wizard/wizard-functions.php:721
8729
  msgid ""
8730
  "If your Server configuration is DSO you must first make some one-time manual "
8731
  "changes to your website before running the Setup Wizard. Please click this "
8732
  "Forum Link for instructions: "
8733
  msgstr ""
8734
 
8735
- #: admin/wizard/wizard-functions.php:108 admin/wizard/wizard-functions.php:628
8736
- #: admin/wizard/wizard-functions.php:721 admin/wizard/wizard.php:237
8737
  #: admin/wizard/wizard.php:302 admin/wizard/wizard.php:308
8738
  #: admin/wizard/wizard.php:314 admin/wizard/wizard.php:320
8739
  #: admin/wizard/wizard.php:326
8740
  msgid "DSO Setup Steps"
8741
  msgstr ""
8742
 
8743
- #: admin/wizard/wizard-functions.php:507
8744
  msgid " Root .htaccess File backup Successful!"
8745
  msgstr ""
8746
 
8747
- #: admin/wizard/wizard-functions.php:517
8748
  msgid "Error: PHP/php.ini handler htaccess code check"
8749
  msgstr ""
8750
 
8751
- #: admin/wizard/wizard-functions.php:517
8752
  msgid ""
8753
  "PHP/php.ini handler htaccess code was found in your root .htaccess file, but "
8754
  "was NOT found in BPS Custom Code. A new root .htaccess file was NOT created "
@@ -8756,84 +10221,85 @@ msgid ""
8756
  "Link "
8757
  msgstr ""
8758
 
8759
- #: admin/wizard/wizard-functions.php:517
8760
  msgid "Add PHP/php.ini handler htaccess code to BPS Custom Code"
8761
  msgstr ""
8762
 
8763
- #: admin/wizard/wizard-functions.php:517
8764
  msgid ""
8765
  " for instructions on how to copy your PHP/php.ini handler htaccess code to "
8766
  "BPS Custom Code."
8767
  msgstr ""
8768
 
8769
- #: admin/wizard/wizard-functions.php:556 admin/wizard/wizard-functions.php:585
8770
  msgid ""
8771
  "Root .htaccess File writing completed. File Locked with 404 file permissions."
8772
  msgstr ""
8773
 
8774
- #: admin/wizard/wizard-functions.php:560 admin/wizard/wizard-functions.php:589
8775
  msgid ""
8776
  "Root .htaccess File writing completed. File Locked with 444 file permissions."
8777
  msgstr ""
8778
 
8779
- #: admin/wizard/wizard-functions.php:607 admin/wizard/wizard-functions.php:616
8780
- #: admin/wizard/wizard-functions.php:815 admin/wizard/wizard.php:593
8781
- #: admin/wizard/wizard.php:612 admin/wizard/wizard.php:670
8782
- #: admin/wizard/wizard.php:706
 
8783
  msgid " DB Option created or updated Successfully!"
8784
  msgstr ""
8785
 
8786
- #: admin/wizard/wizard-functions.php:626
8787
  msgid ""
8788
  "The wpadmin-secure.htaccess wp-admin Master htaccess file was created "
8789
  "successfully."
8790
  msgstr ""
8791
 
8792
- #: admin/wizard/wizard-functions.php:626
8793
  msgid "wp-admin Folder BulletProof Mode activated successfully."
8794
  msgstr ""
8795
 
8796
- #: admin/wizard/wizard-functions.php:628
8797
  msgid ""
8798
  "Error: The wpadmin-secure.htaccess wp-admin Master htaccess file and wp-"
8799
  "admin .htaccess file cannot be created. wp-admin Folder BulletProof Mode has "
8800
  "NOT been activated."
8801
  msgstr ""
8802
 
8803
- #: admin/wizard/wizard-functions.php:634
8804
  msgid ""
8805
  "Go Daddy Managed WordPress Hosting option is set to Yes or Enable|Disable wp-"
8806
  "admin BulletProof Mode option is set to disabled. GDMW hosting does not "
8807
  "allow wp-admin htaccess files."
8808
  msgstr ""
8809
 
8810
- #: admin/wizard/wizard-functions.php:658
8811
  msgid " wp-admin .htaccess File backup Successful!"
8812
  msgstr ""
8813
 
8814
- #: admin/wizard/wizard-functions.php:719
8815
  msgid "The default.htaccess Master htaccess file was created successfully."
8816
  msgstr ""
8817
 
8818
- #: admin/wizard/wizard-functions.php:721
8819
  msgid "Error: The default.htaccess Master htaccess file cannot be created."
8820
  msgstr ""
8821
 
8822
- #: admin/wizard/wizard-functions.php:816 admin/wizard/wizard.php:435
8823
  msgid " Folder created Successfully!"
8824
  msgstr ""
8825
 
8826
- #: admin/wizard/wizard-functions.php:913
8827
  msgid ""
8828
  "Security Log User Agent Filter Check Successful! 0 User Agent Filters to "
8829
  "update."
8830
  msgstr ""
8831
 
8832
- #: admin/wizard/wizard-functions.php:923
8833
  msgid "Security Log User Agent Filter "
8834
  msgstr ""
8835
 
8836
- #: admin/wizard/wizard-functions.php:923
8837
  msgid " created or updated Successfully!"
8838
  msgstr ""
8839
 
@@ -8866,11 +10332,11 @@ msgid ""
8866
  "Code"
8867
  msgstr ""
8868
 
8869
- #: admin/wizard/wizard.php:210 admin/wizard/wizard.php:357
8870
  msgid " DB Table created Successfully!"
8871
  msgstr ""
8872
 
8873
- #: admin/wizard/wizard.php:213 admin/wizard/wizard.php:360
8874
  msgid "Error: Unable to create DB Table "
8875
  msgstr ""
8876
 
@@ -8942,7 +10408,7 @@ msgid ""
8942
  "maximum memory limit setting allowed by your Host."
8943
  msgstr ""
8944
 
8945
- #: admin/wizard/wizard.php:267 includes/functions.php:1078
8946
  msgid ""
8947
  "mod_authz_core is Loaded|Order, Allow, Deny directives are supported|BC: Yes|"
8948
  "IfModule: Yes"
@@ -8954,7 +10420,7 @@ msgid ""
8954
  "htaccess files will be created."
8955
  msgstr ""
8956
 
8957
- #: admin/wizard/wizard.php:276 includes/functions.php:1063
8958
  msgid ""
8959
  "mod_access_compat is Loaded|Order, Allow, Deny directives are supported|"
8960
  "IfModule: No"
@@ -9011,142 +10477,150 @@ msgid ""
9011
  "should be either 644 or 604."
9012
  msgstr ""
9013
 
9014
- #: admin/wizard/wizard.php:380
9015
  msgid "BPS Setup Verification & Error Checks"
9016
  msgstr ""
9017
 
9018
- #: admin/wizard/wizard.php:382
9019
  msgid ""
9020
  "If you see all Green font messages displayed below, the Setup Wizard setup "
9021
  "completed successfully."
9022
  msgstr ""
9023
 
9024
- #: admin/wizard/wizard.php:382
9025
  msgid ""
9026
  "If you see any Red font or Blue font messages displayed below, click the "
9027
  "Read Me help button above and read the \"Notes\" help section."
9028
  msgstr ""
9029
 
9030
- #: admin/wizard/wizard.php:382
9031
  msgid ""
9032
  "Click the Read Me help button above for a list of recommended BPS Video "
9033
  "Tutorials to watch."
9034
  msgstr ""
9035
 
9036
- #: admin/wizard/wizard.php:389 admin/wizard/wizard.php:964
9037
  msgid "AutoFix (AutoWhitelist|AutoSetup|AutoCleanup)"
9038
  msgstr ""
9039
 
9040
- #: admin/wizard/wizard.php:409
9041
  msgid "BulletProof Security Database Tables Setup"
9042
  msgstr ""
9043
 
9044
- #: admin/wizard/wizard.php:432
9045
  msgid "BulletProof Security Core Folders Setup"
9046
  msgstr ""
9047
 
9048
- #: admin/wizard/wizard.php:436
9049
  msgid "Error: Unable to create Folder "
9050
  msgstr ""
9051
 
9052
- #: admin/wizard/wizard.php:458
9053
  msgid "BulletProof Security Core Files Setup"
9054
  msgstr ""
9055
 
9056
- #: admin/wizard/wizard.php:461
9057
  msgid " File created or updated Successfully!"
9058
  msgstr ""
9059
 
9060
- #: admin/wizard/wizard.php:462
9061
  msgid "Error: Unable to create or update File "
9062
  msgstr ""
9063
 
9064
- #: admin/wizard/wizard.php:588
 
 
 
 
9065
  msgid "BulletProof Security DB Backup Setup"
9066
  msgstr ""
9067
 
9068
- #: admin/wizard/wizard.php:609
9069
  msgid "BulletProof Security Hidden Plugin Folders|Files (HPF) Setup"
9070
  msgstr ""
9071
 
9072
- #: admin/wizard/wizard.php:642
9073
  msgid ""
9074
  "Hidden Plugin Folders|Files (HPF) DB Options created or updated Successfully!"
9075
  msgstr ""
9076
 
9077
- #: admin/wizard/wizard.php:645
9078
  msgid "BulletProof Security Security Log User Agent Filter Setup"
9079
  msgstr ""
9080
 
9081
- #: admin/wizard/wizard.php:666
9082
  msgid "BulletProof Security Email Alerting & Log File Options Setup"
9083
  msgstr ""
9084
 
9085
- #: admin/wizard/wizard.php:703
9086
  msgid "BulletProof Security Login Security & Monitoring Options Setup"
9087
  msgstr ""
9088
 
9089
- #: admin/wizard/wizard.php:772
 
 
 
 
9090
  msgid "The Setup Wizard has completed BPS Setup."
9091
  msgstr ""
9092
 
9093
- #: admin/wizard/wizard.php:772
9094
  msgid ""
9095
  "Check the \"BPS Setup Verification & Error Checks\" section below for any "
9096
  "errors in Red Font."
9097
  msgstr ""
9098
 
9099
- #: admin/wizard/wizard.php:778
9100
  msgid "Setup Wizard Completion Time: "
9101
  msgstr ""
9102
 
9103
- #: admin/wizard/wizard.php:795
9104
  msgid "BulletProof Security ~ Setup Wizard"
9105
  msgstr ""
9106
 
9107
- #: admin/wizard/wizard.php:860
9108
  msgid "htaccess Files Disabled Notice: "
9109
  msgstr ""
9110
 
9111
- #: admin/wizard/wizard.php:860
9112
  msgid ""
9113
  "BPS has detected that htaccess files cannot be used on your website/server. "
9114
  "Click this "
9115
  msgstr ""
9116
 
9117
- #: admin/wizard/wizard.php:860
9118
  msgid "htaccess Files Disabled Forum Topic"
9119
  msgstr ""
9120
 
9121
- #: admin/wizard/wizard.php:860
9122
  msgid " link for more information before running the Wizards."
9123
  msgstr ""
9124
 
9125
- #: admin/wizard/wizard.php:872
9126
  msgid "Setup Wizard ~ "
9127
  msgstr ""
9128
 
9129
- #: admin/wizard/wizard.php:872
9130
  msgid "One-Click Complete Setup"
9131
  msgstr ""
9132
 
9133
- #: admin/wizard/wizard.php:889
9134
  msgid "Recommended Video Tutorials: "
9135
  msgstr ""
9136
 
9137
- #: admin/wizard/wizard.php:894
9138
  msgid "Security Log Video Tutorial"
9139
  msgstr ""
9140
 
9141
- #: admin/wizard/wizard.php:897
9142
  msgid "Setup Wizard Steps: "
9143
  msgstr ""
9144
 
9145
- #: admin/wizard/wizard.php:897
9146
  msgid "1. Click the Setup Wizard button."
9147
  msgstr ""
9148
 
9149
- #: admin/wizard/wizard.php:901
9150
  msgid ""
9151
  "Setup Wizard Pre-Installation Checks are automatically performed and "
9152
  "displayed on the Setup Wizard page. Green font messages mean everything is "
@@ -9157,63 +10631,63 @@ msgid ""
9157
  "to be fixed before running the Setup Wizard."
9158
  msgstr ""
9159
 
9160
- #: admin/wizard/wizard.php:901
9161
  msgid ""
9162
  "You can re-run the Setup Wizard again at any time. Your existing settings "
9163
  "will NOT be overwritten and will be re-saved. Any new or additional settings "
9164
  "that the Setup Wizard finds on your website will be saved/setup."
9165
  msgstr ""
9166
 
9167
- #: admin/wizard/wizard.php:901
9168
  msgid ""
9169
  "When the Setup Wizard has completed you will see \"The Setup Wizard has "
9170
  "completed BPS Setup.\""
9171
  msgstr ""
9172
 
9173
- #: admin/wizard/wizard.php:901
9174
  msgid ""
9175
  "Your existing Root and wp-admin htaccess files are backed up before new Root "
9176
  "and wp-admin htaccess files are created by the Setup Wizard. The BPS backup "
9177
  "folder is here: "
9178
  msgstr ""
9179
 
9180
- #: admin/wizard/wizard.php:904
9181
  msgid ""
9182
  " and the backed up htaccess file names are: root.htaccess and wpadmin."
9183
  "htaccess."
9184
  msgstr ""
9185
 
9186
- #: admin/wizard/wizard.php:914
9187
  msgid "Setup Wizard & Overview Video Tutorial"
9188
  msgstr ""
9189
 
9190
- #: admin/wizard/wizard.php:941
9191
  msgid "Setup Wizard Options ~ "
9192
  msgstr ""
9193
 
9194
- #: admin/wizard/wizard.php:941
9195
  msgid ""
9196
  "Click the Setup Wizard Options Read Me help button for help info about each "
9197
  "option setting"
9198
  msgstr ""
9199
 
9200
- #: admin/wizard/wizard.php:955
9201
  msgid "Forum Help Links:"
9202
  msgstr ""
9203
 
9204
- #: admin/wizard/wizard.php:959
9205
  msgid "Go Daddy Managed WordPress Hosting (GDMW)"
9206
  msgstr ""
9207
 
9208
- #: admin/wizard/wizard.php:960 admin/wizard/wizard.php:964
9209
  msgid "Enable|Disable htaccess Files"
9210
  msgstr ""
9211
 
9212
- #: admin/wizard/wizard.php:961
9213
  msgid "AutoFix Forum Topic"
9214
  msgstr ""
9215
 
9216
- #: admin/wizard/wizard.php:964
9217
  msgid ""
9218
  "Setup Wizard AutoFix is turned On by default. When AutoFix is turned On the "
9219
  "Setup Wizard will automatically create htaccess whitelist rules in BPS "
@@ -9234,11 +10708,11 @@ msgid ""
9234
  "AutoFix Debug information so that we can figure out what the problem is."
9235
  msgstr ""
9236
 
9237
- #: admin/wizard/wizard.php:964 admin/wizard/wizard.php:989
9238
  msgid "Go Daddy Managed WordPress Hosting (GDMW):"
9239
  msgstr ""
9240
 
9241
- #: admin/wizard/wizard.php:964
9242
  msgid ""
9243
  "This option is ONLY for a special type of Go Daddy Hosting account called "
9244
  "\"Managed WordPress Hosting\" and is NOT for regular/standard Go Daddy "
@@ -9247,15 +10721,15 @@ msgid ""
9247
  "section above for more information."
9248
  msgstr ""
9249
 
9250
- #: admin/wizard/wizard.php:964 admin/wizard/wizard.php:1001
9251
  msgid "Enable|Disable htaccess Files:"
9252
  msgstr ""
9253
 
9254
- #: admin/wizard/wizard.php:964
9255
  msgid "Before changing this option setting, click the "
9256
  msgstr ""
9257
 
9258
- #: admin/wizard/wizard.php:964
9259
  msgid ""
9260
  " Forum Help Link at the top of this Read Me help window to find out exactly "
9261
  "what this option setting does and when it should or should not be used. "
@@ -9263,22 +10737,22 @@ msgid ""
9263
  "htaccess Files Enabled: Will enable all BPS htaccess freatures and files."
9264
  msgstr ""
9265
 
9266
- #: admin/wizard/wizard.php:964
9267
  msgid "Enable|Disable wp-admin BulletProof Mode"
9268
  msgstr ""
9269
 
9270
- #: admin/wizard/wizard.php:964
9271
  msgid ""
9272
  "The default setting is already set to: wp-admin BulletProof Mode Enabled. If "
9273
  "you would like to disable wp-admin BulletProof Mode select wp-admin "
9274
  "BulletProof Mode Disabled."
9275
  msgstr ""
9276
 
9277
- #: admin/wizard/wizard.php:964 admin/wizard/wizard.php:1025
9278
  msgid "Zip File Download Fix (Incapsula, Proxy, Other Cause):"
9279
  msgstr ""
9280
 
9281
- #: admin/wizard/wizard.php:964
9282
  msgid ""
9283
  "This option should only be set to On if you are seeing a 403 error and/or "
9284
  "unable to download these Zip files: Custom Code Export Zip file, Login "
@@ -9294,13 +10768,13 @@ msgid ""
9294
  "Firewall again."
9295
  msgstr ""
9296
 
9297
- #: admin/wizard/wizard.php:964 admin/wizard/wizard.php:1036
9298
  msgid "Network|Multisite Sitewide Login Security Settings"
9299
  msgstr ""
9300
 
9301
- #: admin/wizard/wizard.php:964
9302
  msgid ""
9303
- "This option is for Network|Multisite sites ONLY. This is an independent "
9304
  "option Form that creates and saves Login Security DB option settings for all "
9305
  "Network sites when you click the Save Network LSM Options Sitewide button. "
9306
  "If Login Security option settings have already been setup and saved for any "
@@ -9315,60 +10789,79 @@ msgid ""
9315
  "Reset, Sort DB Rows: Ascending - Show Oldest Login First."
9316
  msgstr ""
9317
 
9318
- #: admin/wizard/wizard.php:977
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9319
  msgid "AutoFix (AutoWhitelist|AutoSetup|AutoCleanup):"
9320
  msgstr ""
9321
 
9322
- #: admin/wizard/wizard.php:979
9323
  msgid "AutoFix On"
9324
  msgstr ""
9325
 
9326
- #: admin/wizard/wizard.php:980
9327
  msgid "AutoFix Off"
9328
  msgstr ""
9329
 
9330
- #: admin/wizard/wizard.php:991
9331
  msgid "No (default setting)"
9332
  msgstr ""
9333
 
9334
- #: admin/wizard/wizard.php:992
9335
  msgid "Yes (ONLY if you have Managed WordPress Hosting)"
9336
  msgstr ""
9337
 
9338
- #: admin/wizard/wizard.php:1002
9339
  msgid ""
9340
  "CAUTION: Click the Read Me help button before changing this option setting"
9341
  msgstr ""
9342
 
9343
- #: admin/wizard/wizard.php:1004
9344
  msgid "htaccess Files Enabled"
9345
  msgstr ""
9346
 
9347
- #: admin/wizard/wizard.php:1005
9348
  msgid "htaccess Files Disabled"
9349
  msgstr ""
9350
 
9351
- #: admin/wizard/wizard.php:1013
9352
  msgid "Enable|Disable wp-admin BulletProof Mode:"
9353
  msgstr ""
9354
 
9355
- #: admin/wizard/wizard.php:1015
9356
  msgid "wp-admin BulletProof Mode Enabled"
9357
  msgstr ""
9358
 
9359
- #: admin/wizard/wizard.php:1016
9360
  msgid "wp-admin BulletProof Mode Disabled"
9361
  msgstr ""
9362
 
9363
- #: admin/wizard/wizard.php:1027
9364
  msgid "Zip File Download Fix Off"
9365
  msgstr ""
9366
 
9367
- #: admin/wizard/wizard.php:1028
9368
  msgid "Zip File Download Fix On"
9369
  msgstr ""
9370
 
9371
- #: admin/wizard/wizard.php:1067
9372
  msgid ""
9373
  "The Zip File Download Fix option is set to On. This option should only be "
9374
  "set to On if you are unable to download these Zip files: Custom Code Export "
@@ -9376,11 +10869,11 @@ msgid ""
9376
  "htaccess file backup Zip file."
9377
  msgstr ""
9378
 
9379
- #: admin/wizard/wizard.php:1080
9380
  msgid "The Zip File Download Fix option is set to Off."
9381
  msgstr ""
9382
 
9383
- #: admin/wizard/wizard.php:1094
9384
  msgid ""
9385
  "Error: Your Network site exceeds the default WP criteria for a large network "
9386
  "site. Either you have more than 10,000 users or more than 10,000 sites. "
@@ -9388,19 +10881,31 @@ msgid ""
9388
  "org for assistance."
9389
  msgstr ""
9390
 
9391
- #: admin/wizard/wizard.php:1101
9392
  msgid " LSM DB Options created or updated Successfully!"
9393
  msgstr ""
9394
 
9395
- #: bulletproof-security.php:99
 
 
 
 
 
 
 
 
 
 
 
 
9396
  msgid "Uninstall Options"
9397
  msgstr ""
9398
 
9399
- #: bulletproof-security.php:120
9400
  msgid "Forum - Support"
9401
  msgstr ""
9402
 
9403
- #: bulletproof-security.php:121
9404
  msgid "Upgrade"
9405
  msgstr ""
9406
 
@@ -9408,71 +10913,71 @@ msgstr ""
9408
  msgid "Hourly"
9409
  msgstr ""
9410
 
9411
- #: includes/functions.php:208
9412
  msgid "Reload BPS Status Display"
9413
  msgstr ""
9414
 
9415
- #: includes/functions.php:252
9416
  msgid "The BPS Status Display is set to Off by default on the System Info page"
9417
  msgstr ""
9418
 
9419
- #: includes/functions.php:317
9420
  msgid "BPS "
9421
  msgstr ""
9422
 
9423
- #: includes/functions.php:323 includes/functions.php:348
9424
  msgid "BPS Setup Wizard Notification"
9425
  msgstr ""
9426
 
9427
- #: includes/functions.php:323 includes/functions.php:348
9428
  msgid ""
9429
  " to go to the BPS Setup Wizard page and click the Setup Wizard button to "
9430
  "setup the BPS plugin."
9431
  msgstr ""
9432
 
9433
- #: includes/functions.php:328
9434
  msgid "BPS Alert! An htaccess file was NOT found in your WordPress root folder"
9435
  msgstr ""
9436
 
9437
- #: includes/functions.php:328
9438
  msgid ""
9439
  "If you have deleted the root htaccess file for troubleshooting purposes you "
9440
  "can disregard this Alert."
9441
  msgstr ""
9442
 
9443
- #: includes/functions.php:328 includes/functions.php:549
9444
- #: includes/functions.php:606 includes/hud-autofix-setup.php:68
9445
- #: includes/hud-dismiss-functions.php:592
9446
  msgid "Go to the "
9447
  msgstr ""
9448
 
9449
- #: includes/functions.php:328 includes/functions.php:549
9450
  msgid " and click the Root Folder BulletProof Mode Activate button."
9451
  msgstr ""
9452
 
9453
- #: includes/functions.php:353
9454
  msgid "BPS Alert! Your site may not be protected by BulletProof Security"
9455
  msgstr ""
9456
 
9457
- #: includes/functions.php:353
9458
  msgid ""
9459
  "The BPS version: BULLETPROOF x.x SECURE .HTACCESS line of code was not found "
9460
  "at the top of your Root htaccess file."
9461
  msgstr ""
9462
 
9463
- #: includes/functions.php:353
9464
  msgid ""
9465
  "The BPS version line of code MUST be at the very top of your Root htaccess "
9466
  "file."
9467
  msgstr ""
9468
 
9469
- #: includes/functions.php:353 includes/functions.php:628
9470
  msgid ""
9471
  " to go to the BPS Setup Wizard page and click the Setup Wizard button to "
9472
  "setup the BPS plugin again."
9473
  msgstr ""
9474
 
9475
- #: includes/functions.php:353
9476
  msgid ""
9477
  "Important Note: If you manually added other htaccess code above the BPS "
9478
  "version line of code in your root htaccess file, you can copy that code to "
@@ -9480,59 +10985,59 @@ msgid ""
9480
  "BPS root htaccess file. "
9481
  msgstr ""
9482
 
9483
- #: includes/functions.php:353
9484
  msgid ""
9485
  " to go to the BPS Custom Code page, add your Root custom htaccess code in an "
9486
  "appropriate Root Custom Code text box and click the Save Root Custom Code "
9487
  "button before running the Setup Wizard again."
9488
  msgstr ""
9489
 
9490
- #: includes/functions.php:525
9491
  msgid "The BPS Automatic htaccess File Update Completed Successfully!"
9492
  msgstr ""
9493
 
9494
- #: includes/functions.php:538
9495
  msgid "RBM"
9496
  msgstr ""
9497
 
9498
- #: includes/functions.php:549
9499
  msgid ""
9500
  "BPS Alert! Your site does not appear to be protected by BulletProof Security"
9501
  msgstr ""
9502
 
9503
- #: includes/functions.php:606
9504
  msgid ""
9505
  "BPS Alert! An htaccess file was NOT found in your WordPress wp-admin folder"
9506
  msgstr ""
9507
 
9508
- #: includes/functions.php:606
9509
  msgid ""
9510
  "If you have deleted the wp-admin htaccess file for troubleshooting purposes "
9511
  "you can disregard this Alert."
9512
  msgstr ""
9513
 
9514
- #: includes/functions.php:606
9515
  msgid " and click the wp-admin Folder BulletProof Mode Activate button."
9516
  msgstr ""
9517
 
9518
- #: includes/functions.php:628
9519
  msgid ""
9520
  "BPS Alert! Your wp-admin folder may not be protected by BulletProof Security"
9521
  msgstr ""
9522
 
9523
- #: includes/functions.php:628
9524
  msgid ""
9525
  "The BPS version: BULLETPROOF .xx.x WP-ADMIN SECURE .HTACCESS line of code "
9526
  "was not found at the top of your wp-admin htaccess file."
9527
  msgstr ""
9528
 
9529
- #: includes/functions.php:628
9530
  msgid ""
9531
  "The BPS version line of code MUST be at the very top of your wp-admin "
9532
  "htaccess file."
9533
  msgstr ""
9534
 
9535
- #: includes/functions.php:628
9536
  msgid ""
9537
  "Important Note: If you manually added other htaccess code above the BPS "
9538
  "version line of code in your wp-admin htaccess file, you can copy that code "
@@ -9540,119 +11045,115 @@ msgid ""
9540
  "in the BPS wp-admin htaccess file. "
9541
  msgstr ""
9542
 
9543
- #: includes/functions.php:628
9544
  msgid ""
9545
  " to go to the BPS Custom Code page, add your wp-admin custom htaccess code "
9546
  "in an appropriate wp-admin Custom Code text box and click the Save wp-admin "
9547
  "Custom Code button before running the Setup Wizard again."
9548
  msgstr ""
9549
 
9550
- #: includes/functions.php:713
9551
  msgid "WBM"
9552
  msgstr ""
9553
 
9554
- #: includes/functions.php:724
9555
  msgid ""
9556
  "BPS Alert! A valid BPS htaccess file was NOT found in your wp-admin folder"
9557
  msgstr ""
9558
 
9559
- #: includes/functions.php:724
9560
  msgid ""
9561
  "BulletProof Mode for the wp-admin folder should also be activated when you "
9562
  "have BulletProof Mode activated for the Root folder."
9563
  msgstr ""
9564
 
9565
- #: includes/functions.php:765
9566
  msgid "LSM"
9567
  msgstr ""
9568
 
9569
- #: includes/functions.php:814
9570
- msgid "No DB Backups"
9571
- msgstr ""
9572
-
9573
- #: includes/functions.php:819
9574
- msgid "Backup Job Created"
9575
  msgstr ""
9576
 
9577
- #: includes/functions.php:872 includes/functions.php:878
9578
  msgid "ISL"
9579
  msgstr ""
9580
 
9581
- #: includes/functions.php:918 includes/functions.php:924
9582
  msgid "ACE"
9583
  msgstr ""
9584
 
9585
- #: includes/functions.php:982
9586
  msgid ""
9587
  "Apache Modules|Directives|Backward Compatibility(Yes|No)|IfModule(Yes|No): "
9588
  msgstr ""
9589
 
9590
- #: includes/functions.php:1028
9591
  msgid ""
9592
  "ERROR: wp_remote_get() function is blocked or unable to get the URL path"
9593
  msgstr ""
9594
 
9595
- #: includes/functions.php:1046
9596
  msgid "mod_access_compat and mod_authz_core or mod_rewrite is NOT Loaded"
9597
  msgstr ""
9598
 
9599
- #: includes/functions.php:1056
9600
  msgid ""
9601
  "mod_access_compat is Loaded|Order, Allow, Deny directives are supported|"
9602
  "IfModule: Yes"
9603
  msgstr ""
9604
 
9605
- #: includes/functions.php:1070
9606
  msgid "mod_access_compat is Loaded"
9607
  msgstr ""
9608
 
9609
- #: includes/functions.php:1083
9610
  msgid ""
9611
  "mod_authz_core is Loaded|Order, Allow, Deny directives are NOT supported|BC: "
9612
  "No|IfModule: Yes"
9613
  msgstr ""
9614
 
9615
- #: includes/functions.php:1088
9616
  msgid "mod_authz_core is Loaded|IfModule: No"
9617
  msgstr ""
9618
 
9619
- #: includes/functions.php:1093
9620
  msgid "mod_authz_core is NOT Loaded|IfModule: Yes"
9621
  msgstr ""
9622
 
9623
- #: includes/functions.php:1099
9624
  msgid "mod_authz_core is NOT Loaded"
9625
  msgstr ""
9626
 
9627
- #: includes/functions.php:1106
9628
  msgid ""
9629
  "mod_authz_host is Loaded|Order, Allow, Deny directives are supported|BC: Yes|"
9630
  "IfModule: Yes"
9631
  msgstr ""
9632
 
9633
- #: includes/functions.php:1111
9634
  msgid ""
9635
  "mod_authz_host is Loaded|Order, Allow, Deny directives are NOT supported|BC: "
9636
  "No|IfModule: Yes"
9637
  msgstr ""
9638
 
9639
- #: includes/functions.php:1116
9640
  msgid "mod_authz_host is Loaded|IfModule: No"
9641
  msgstr ""
9642
 
9643
- #: includes/functions.php:1121
9644
  msgid "mod_authz_host is NOT Loaded|IfModule: Yes"
9645
  msgstr ""
9646
 
9647
- #: includes/functions.php:1126
9648
  msgid "mod_authz_host is NOT Loaded"
9649
  msgstr ""
9650
 
9651
- #: includes/functions.php:1133
9652
  msgid "mod_rewrite Module is Loaded"
9653
  msgstr ""
9654
 
9655
- #: includes/functions.php:1138
9656
  msgid "mod_rewrite Inconclusive: Status is not 200, 301, 302, 403 or 404"
9657
  msgstr ""
9658
 
@@ -9912,6 +11413,10 @@ msgid ""
9912
  "file."
9913
  msgstr ""
9914
 
 
 
 
 
9915
  #: includes/hidden-plugin-folders-cron.php:21
9916
  msgid "Once every minute"
9917
  msgstr ""
@@ -9952,15 +11457,15 @@ msgstr ""
9952
  msgid "Once Daily"
9953
  msgstr ""
9954
 
9955
- #: includes/hidden-plugin-folders-cron.php:249
9956
- #: includes/hidden-plugin-folders-cron.php:264
9957
- #: includes/hidden-plugin-folders-cron.php:279
9958
- #: includes/hidden-plugin-folders-cron.php:294
9959
- #: includes/hidden-plugin-folders-cron.php:323
9960
  msgid "BPS Hidden Plugin Folder|Files (HPF) Alert"
9961
  msgstr ""
9962
 
9963
- #: includes/hidden-plugin-folders-cron.php:249
9964
  msgid ""
9965
  "A non-standard WP hello.php file (Hello Dolly Plugin) was found in your /"
9966
  "plugins/ folder and it is hidden/not displayed on the WordPress Plugins "
@@ -9970,69 +11475,69 @@ msgid ""
9970
  "below in the "
9971
  msgstr ""
9972
 
9973
- #: includes/hidden-plugin-folders-cron.php:249
9974
- #: includes/hidden-plugin-folders-cron.php:264
9975
- #: includes/hidden-plugin-folders-cron.php:279
9976
- #: includes/hidden-plugin-folders-cron.php:294
9977
- #: includes/hidden-plugin-folders-cron.php:323
9978
  msgid "Ignore Hidden Plugin Folders & Files"
9979
  msgstr ""
9980
 
9981
- #: includes/hidden-plugin-folders-cron.php:249
9982
- #: includes/hidden-plugin-folders-cron.php:264
9983
- #: includes/hidden-plugin-folders-cron.php:279
9984
- #: includes/hidden-plugin-folders-cron.php:294
9985
- #: includes/hidden-plugin-folders-cron.php:323
9986
  msgid " textarea box option to make this Alert go away."
9987
  msgstr ""
9988
 
9989
- #: includes/hidden-plugin-folders-cron.php:249
9990
- #: includes/hidden-plugin-folders-cron.php:264
9991
- #: includes/hidden-plugin-folders-cron.php:279
9992
- #: includes/hidden-plugin-folders-cron.php:294
9993
  msgid "File Path: "
9994
  msgstr ""
9995
 
9996
- #: includes/hidden-plugin-folders-cron.php:249
9997
- #: includes/hidden-plugin-folders-cron.php:264
9998
- #: includes/hidden-plugin-folders-cron.php:279
9999
- #: includes/hidden-plugin-folders-cron.php:294
10000
- #: includes/hidden-plugin-folders-cron.php:323
10001
  msgid "HPF Ignore Rule: "
10002
  msgstr ""
10003
 
10004
- #: includes/hidden-plugin-folders-cron.php:249
10005
- #: includes/hidden-plugin-folders-cron.php:264
10006
- #: includes/hidden-plugin-folders-cron.php:279
10007
- #: includes/hidden-plugin-folders-cron.php:294
10008
- #: includes/hidden-plugin-folders-cron.php:323
10009
  msgid "Last Modified Time: "
10010
  msgstr ""
10011
 
10012
- #: includes/hidden-plugin-folders-cron.php:249
10013
- #: includes/hidden-plugin-folders-cron.php:264
10014
- #: includes/hidden-plugin-folders-cron.php:279
10015
- #: includes/hidden-plugin-folders-cron.php:294
10016
- #: includes/hidden-plugin-folders-cron.php:323
10017
  msgid "Last Change Time: "
10018
  msgstr ""
10019
 
10020
- #: includes/hidden-plugin-folders-cron.php:249
10021
- #: includes/hidden-plugin-folders-cron.php:264
10022
- #: includes/hidden-plugin-folders-cron.php:279
10023
- #: includes/hidden-plugin-folders-cron.php:294
10024
- #: includes/hidden-plugin-folders-cron.php:323
10025
  msgid "Last Access Time: "
10026
  msgstr ""
10027
 
10028
- #: includes/hidden-plugin-folders-cron.php:249
10029
- #: includes/hidden-plugin-folders-cron.php:264
10030
- #: includes/hidden-plugin-folders-cron.php:279
10031
- #: includes/hidden-plugin-folders-cron.php:294
10032
  msgid "File Contents: "
10033
  msgstr ""
10034
 
10035
- #: includes/hidden-plugin-folders-cron.php:264
10036
  msgid ""
10037
  "A non-standard WP index.php file found in your /plugins/ folder appears to "
10038
  "have been altered/tampered with. Most likely the index.php file is a hacker "
@@ -10041,7 +11546,7 @@ msgid ""
10041
  "HPF Ignore Rule shown below in the "
10042
  msgstr ""
10043
 
10044
- #: includes/hidden-plugin-folders-cron.php:279
10045
  msgid ""
10046
  "An htaccess file was found in your /plugins/ folder and it does not appear "
10047
  "to be a BPS htaccess file. Most likely the htaccess file is a hacker file or "
@@ -10050,7 +11555,7 @@ msgid ""
10050
  "Ignore Rule shown below in the "
10051
  msgstr ""
10052
 
10053
- #: includes/hidden-plugin-folders-cron.php:294
10054
  msgid ""
10055
  "An unrecognized/non-standard WP file was found in your /plugins/ folder. "
10056
  "This file may be a hacker file or contain hacker code. If you recognize this "
@@ -10058,7 +11563,7 @@ msgid ""
10058
  "adding the HPF Ignore Rule shown below in the "
10059
  msgstr ""
10060
 
10061
- #: includes/hidden-plugin-folders-cron.php:323
10062
  msgid ""
10063
  "A plugin folder was found in your /plugins/ folder that is either a hidden "
10064
  "plugin (plugin that is not displayed on the WordPress Plugins page) or an "
@@ -10067,7 +11572,7 @@ msgid ""
10067
  "folder check by adding the HPF Ignore Rule shown below in the "
10068
  msgstr ""
10069
 
10070
- #: includes/hidden-plugin-folders-cron.php:323
10071
  msgid "Plugin Folder Path: "
10072
  msgstr ""
10073
 
@@ -10118,8 +11623,7 @@ msgstr ""
10118
  #: includes/hud-dismiss-functions.php:389
10119
  #: includes/hud-dismiss-functions.php:445
10120
  #: includes/hud-dismiss-functions.php:488
10121
- #: includes/hud-dismiss-functions.php:541
10122
- #: includes/hud-dismiss-functions.php:697
10123
  msgid ""
10124
  "To Dismiss this Notice click the Dismiss Notice button below. To Reset "
10125
  "Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Custom "
@@ -10142,9 +11646,9 @@ msgstr ""
10142
  #: includes/hud-dismiss-functions.php:389
10143
  #: includes/hud-dismiss-functions.php:445
10144
  #: includes/hud-dismiss-functions.php:488
10145
- #: includes/hud-dismiss-functions.php:541
10146
- #: includes/hud-dismiss-functions.php:630
10147
- #: includes/hud-dismiss-functions.php:697
10148
  msgid "Dismiss Notice"
10149
  msgstr ""
10150
 
@@ -10358,352 +11862,356 @@ msgstr ""
10358
  msgid " after you have uninstalled/deleted the WP Rocket plugin."
10359
  msgstr ""
10360
 
10361
- #: includes/hud-autofix-whitelist.php:73
10362
  msgid ""
10363
  "CC Root Text Box 9: Allow HEAD Requests General Rule for Jetpack, Marmoset "
10364
  "Viewer, BackWPup, MailPoet Newsletters (wysija newsletters), "
10365
  "BackUpWordPress, Broken Link Checker, MailChimp for WordPress Plugins"
10366
  msgstr ""
10367
 
10368
- #: includes/hud-autofix-whitelist.php:121
10369
  msgid "CC Root Text Box 10: WooCommerce Plugin"
10370
  msgstr ""
10371
 
10372
- #: includes/hud-autofix-whitelist.php:127
10373
  msgid "CC Root Text Box 10: Simple Lightbox Plugin"
10374
  msgstr ""
10375
 
10376
- #: includes/hud-autofix-whitelist.php:133
10377
  msgid "CC Root Text Box 10: WPBakery Visual Composer Plugin"
10378
  msgstr ""
10379
 
10380
- #: includes/hud-autofix-whitelist.php:139
10381
  msgid "CC Root Text Box 10: Event Espresso Attendee Mover Plugin"
10382
  msgstr ""
10383
 
10384
- #: includes/hud-autofix-whitelist.php:145
10385
  msgid "CC Root Text Box 10: WP Rocket Plugin"
10386
  msgstr ""
10387
 
10388
- #: includes/hud-autofix-whitelist.php:151
10389
  msgid "CC Root Text Box 10: Easy Media Gallery Pro Plugin"
10390
  msgstr ""
10391
 
10392
- #: includes/hud-autofix-whitelist.php:157
10393
  msgid "CC Root Text Box 10: Nextend Facebook Connect Plugin"
10394
  msgstr ""
10395
 
10396
- #: includes/hud-autofix-whitelist.php:163
10397
  msgid "CC Root Text Box 10: Shashin Plugin"
10398
  msgstr ""
10399
 
10400
- #: includes/hud-autofix-whitelist.php:169
10401
  msgid "CC Root Text Box 10: Nocturnal Theme"
10402
  msgstr ""
10403
 
10404
- #: includes/hud-autofix-whitelist.php:175
10405
  msgid "CC Root Text Box 10: Shopp Plugin"
10406
  msgstr ""
10407
 
10408
- #: includes/hud-autofix-whitelist.php:181
10409
  msgid "CC Root Text Box 10: WP-Invoice - Web Invoice and Billing Plugin"
10410
  msgstr ""
10411
 
10412
- #: includes/hud-autofix-whitelist.php:187
10413
  msgid "CC Root Text Box 10: wp-greet Plugin"
10414
  msgstr ""
10415
 
10416
- #: includes/hud-autofix-whitelist.php:193
10417
  msgid "CC Root Text Box 10: WP-Juicebox Plugin"
10418
  msgstr ""
10419
 
10420
- #: includes/hud-autofix-whitelist.php:199
10421
  msgid "CC Root Text Box 10: Prayer Engine Plugin"
10422
  msgstr ""
10423
 
10424
- #: includes/hud-autofix-whitelist.php:205
10425
  msgid "CC Root Text Box 10: Appointment Calendar Plugin"
10426
  msgstr ""
10427
 
10428
- #: includes/hud-autofix-whitelist.php:211
10429
  msgid "CC Root Text Box 10: ThirstyAffiliates Plugin"
10430
  msgstr ""
10431
 
10432
- #: includes/hud-autofix-whitelist.php:217
10433
  msgid "CC Root Text Box 10: WooCommerce Ogone Payment Gateway Plugin"
10434
  msgstr ""
10435
 
10436
- #: includes/hud-autofix-whitelist.php:223
10437
  msgid "CC Root Text Box 10: OIOpublisher Ad Manager Plugin"
10438
  msgstr ""
10439
 
10440
- #: includes/hud-autofix-whitelist.php:254
10441
  msgid "CC Root Text Box 11: PDF Viewer (Envigeek Web Services) Plugin"
10442
  msgstr ""
10443
 
10444
- #: includes/hud-autofix-whitelist.php:260
10445
  msgid "CC Root Text Box 11: Marmoset Viewer Plugin"
10446
  msgstr ""
10447
 
10448
- #: includes/hud-autofix-whitelist.php:266
10449
  msgid ""
10450
  "CC Root Text Box 11: PDF viewer for WordPress (ThemeNcode code canyon) Plugin"
10451
  msgstr ""
10452
 
10453
- #: includes/hud-autofix-whitelist.php:272
10454
  msgid "CC Root Text Box 11: jupdf pdf viewer Plugin"
10455
  msgstr ""
10456
 
10457
- #: includes/hud-autofix-whitelist.php:278
10458
  msgid "CC Root Text Box 11: UserPro (code canyon) Plugin"
10459
  msgstr ""
10460
 
10461
- #: includes/hud-autofix-whitelist.php:284
10462
  msgid "CC Root Text Box 11: NativeChurch Theme"
10463
  msgstr ""
10464
 
10465
- #: includes/hud-autofix-whitelist.php:290
10466
  msgid "CC Root Text Box 11: User Avatar (CTLT DEV) Plugin"
10467
  msgstr ""
10468
 
10469
- #: includes/hud-autofix-whitelist.php:296
10470
  msgid "CC Root Text Box 11: OIOpublisher Ad Manager Plugin"
10471
  msgstr ""
10472
 
10473
- #: includes/hud-autofix-whitelist.php:302
10474
  msgid "CC Root Text Box 11: Digital Access Pass (DAP) Plugin"
10475
  msgstr ""
10476
 
10477
- #: includes/hud-autofix-whitelist.php:308
10478
  msgid "CC Root Text Box 11: Easy Pagination (code canyon) Plugin"
10479
  msgstr ""
10480
 
10481
- #: includes/hud-autofix-whitelist.php:314
10482
  msgid "CC Root Text Box 11: iTheme2 Theme"
10483
  msgstr ""
10484
 
10485
- #: includes/hud-autofix-whitelist.php:320
10486
  msgid "CC Root Text Box 11: SmoothV4.1 Theme"
10487
  msgstr ""
10488
 
10489
- #: includes/hud-autofix-whitelist.php:393
10490
  msgid "CC Root Text Box 12: WooCommerce PagSeguro Plugin"
10491
  msgstr ""
10492
 
10493
- #: includes/hud-autofix-whitelist.php:399
10494
  msgid "CC Root Text Box 12: Event Espresso Plugin"
10495
  msgstr ""
10496
 
10497
- #: includes/hud-autofix-whitelist.php:405
10498
  msgid "CC Root Text Box 12: WooCommerce Serial Key Plugin"
10499
  msgstr ""
10500
 
10501
- #: includes/hud-autofix-whitelist.php:411
10502
  msgid "CC Root Text Box 12: WooCommerce WorldPay Extension"
10503
  msgstr ""
10504
 
10505
- #: includes/hud-autofix-whitelist.php:417
10506
  msgid "CC Root Text Box 12: Kama Click Counter Plugin"
10507
  msgstr ""
10508
 
10509
- #: includes/hud-autofix-whitelist.php:423
10510
  msgid "CC Root Text Box 12: Riva Slider Pro Plugin"
10511
  msgstr ""
10512
 
10513
- #: includes/hud-autofix-whitelist.php:429
10514
  msgid "CC Root Text Box 12: WordPress Auto Spinner Plugin"
10515
  msgstr ""
10516
 
10517
- #: includes/hud-autofix-whitelist.php:435
10518
  msgid "CC Root Text Box 12: AgriTurismo Theme"
10519
  msgstr ""
10520
 
10521
- #: includes/hud-autofix-whitelist.php:441
10522
  msgid "CC Root Text Box 12: WP Content Copy Protection Plugin"
10523
  msgstr ""
10524
 
10525
- #: includes/hud-autofix-whitelist.php:447
10526
  msgid "CC Root Text Box 12: PanoPress Plugin"
10527
  msgstr ""
10528
 
10529
- #: includes/hud-autofix-whitelist.php:453
10530
  msgid "CC Root Text Box 12: Easy Social Share Buttons (Code Canyon) Plugin"
10531
  msgstr ""
10532
 
10533
- #: includes/hud-autofix-whitelist.php:459
10534
  msgid "CC Root Text Box 12: MainWP Plugin"
10535
  msgstr ""
10536
 
10537
- #: includes/hud-autofix-whitelist.php:465
10538
  msgid "CC Root Text Box 12: Clever Course Theme"
10539
  msgstr ""
10540
 
10541
- #: includes/hud-autofix-whitelist.php:471
10542
  msgid "CC Root Text Box 12: WP eStore (WP Cart for Digital Products) Plugin"
10543
  msgstr ""
10544
 
10545
- #: includes/hud-autofix-whitelist.php:477
10546
  msgid "CC Root Text Box 12: WP eMember Plugin"
10547
  msgstr ""
10548
 
10549
- #: includes/hud-autofix-whitelist.php:483
10550
  msgid "CC Root Text Box 12: Easy Digital Downloads Plugin"
10551
  msgstr ""
10552
 
10553
- #: includes/hud-autofix-whitelist.php:489
10554
  msgid "CC Root Text Box 12: MailPoet Newsletters (wysija newsletters) Plugin"
10555
  msgstr ""
10556
 
10557
- #: includes/hud-autofix-whitelist.php:495
10558
  msgid "CC Root Text Box 12: MailChimp for WordPress Plugin"
10559
  msgstr ""
10560
 
10561
- #: includes/hud-autofix-whitelist.php:501
10562
  msgid "CC Root Text Box 12: Digital Access Pass (DAP) Plugin"
10563
  msgstr ""
10564
 
10565
- #: includes/hud-autofix-whitelist.php:507
10566
  msgid "CC Root Text Box 12: WordPress Newsletter (tribulant) Plugin"
10567
  msgstr ""
10568
 
10569
- #: includes/hud-autofix-whitelist.php:565
10570
  msgid "CC wp-admin Text Box 3: WooCommerce Product Feed Pro Plugin"
10571
  msgstr ""
10572
 
10573
- #: includes/hud-autofix-whitelist.php:571
10574
  msgid "CC wp-admin Text Box 3: WPBakery Visual Composer Plugin"
10575
  msgstr ""
10576
 
10577
- #: includes/hud-autofix-whitelist.php:577
10578
  msgid "CC wp-admin Text Box 3: Bookly Booking Plugin"
10579
  msgstr ""
10580
 
10581
- #: includes/hud-autofix-whitelist.php:583
10582
  msgid "CC wp-admin Text Box 3: Easy Media Gallery Pro Plugin"
10583
  msgstr ""
10584
 
10585
- #: includes/hud-autofix-whitelist.php:589
10586
  msgid "CC wp-admin Text Box 3: NextGen Gallery Plugin"
10587
  msgstr ""
10588
 
10589
- #: includes/hud-autofix-whitelist.php:595
10590
  msgid "CC wp-admin Text Box 3: OptimizePress Theme"
10591
  msgstr ""
10592
 
10593
- #: includes/hud-autofix-whitelist.php:601
10594
  msgid "CC wp-admin Text Box 3: tribulant Shopping Cart (WP Checkout) Plugin"
10595
  msgstr ""
10596
 
10597
- #: includes/hud-autofix-whitelist.php:607
10598
  msgid "CC wp-admin Text Box 3: ithemes Video Showcase Plugin"
10599
  msgstr ""
10600
 
10601
- #: includes/hud-autofix-whitelist.php:613
10602
  msgid "CC wp-admin Text Box 3: WP-Invoice - Web Invoice and Billing Plugin"
10603
  msgstr ""
10604
 
10605
- #: includes/hud-autofix-whitelist.php:619
10606
  msgid "CC wp-admin Text Box 3: Yoast SEO Plugin"
10607
  msgstr ""
10608
 
10609
- #: includes/hud-autofix-whitelist.php:625
10610
  msgid "CC wp-admin Text Box 3: Formidable Pro Plugin"
10611
  msgstr ""
10612
 
10613
- #: includes/hud-autofix-whitelist.php:631
10614
  msgid "CC wp-admin Text Box 3: Google Typography Plugin"
10615
  msgstr ""
10616
 
10617
- #: includes/hud-autofix-whitelist.php:637
10618
  msgid "CC wp-admin Text Box 3: Flare Plugin"
10619
  msgstr ""
10620
 
10621
- #: includes/hud-autofix-whitelist.php:643
10622
  msgid "CC wp-admin Text Box 3: bbPress Plugin"
10623
  msgstr ""
10624
 
10625
- #: includes/hud-autofix-whitelist.php:649
10626
  msgid ""
10627
  "CC wp-admin Text Box 3: Spider Event Calendar (WordPress Event Calendar) "
10628
  "Plugin"
10629
  msgstr ""
10630
 
10631
- #: includes/hud-autofix-whitelist.php:658
10632
  msgid "CC wp-admin Text Box 3: BuddyPress Plugin"
10633
  msgstr ""
10634
 
10635
- #: includes/hud-autofix-whitelist.php:666
10636
  msgid "CC wp-admin Text Box 3: WPML Translation Management Plugin"
10637
  msgstr ""
10638
 
10639
- #: includes/hud-autofix-whitelist.php:672
10640
  msgid "CC wp-admin Text Box 3: Events Manager Plugin"
10641
  msgstr ""
10642
 
10643
- #: includes/hud-autofix-whitelist.php:678
10644
  msgid ""
10645
  "CC wp-admin Text Box 3: MailPoet Newsletters (wysija newsletters) Plugin"
10646
  msgstr ""
10647
 
10648
- #: includes/hud-autofix-whitelist.php:684
10649
  msgid "CC wp-admin Text Box 3: Event Espresso Plugin"
10650
  msgstr ""
10651
 
10652
- #: includes/hud-autofix-whitelist.php:690
10653
  msgid "CC wp-admin Text Box 3: Content Egg (Free and Pro) Plugin"
10654
  msgstr ""
10655
 
10656
- #: includes/hud-autofix-whitelist.php:718
 
 
 
 
10657
  msgid "CC wp-admin Text Box 4: Content Egg (Free and Pro) Plugin"
10658
  msgstr ""
10659
 
10660
- #: includes/hud-autofix-whitelist.php:724
10661
  msgid "CC wp-admin Text Box 4: Event Espresso Plugin"
10662
  msgstr ""
10663
 
10664
- #: includes/hud-autofix-whitelist.php:731
10665
  msgid "CC wp-admin Text Box 4: Open Web Analytics (github) Plugin"
10666
  msgstr ""
10667
 
10668
- #: includes/hud-autofix-whitelist.php:738
10669
  msgid "CC wp-admin Text Box 4: UberGrid (code canyon) Plugin"
10670
  msgstr ""
10671
 
10672
- #: includes/hud-autofix-whitelist.php:744
10673
  msgid "BPS Setup Wizard AutoFix (AutoWhitelist|AutoSetup|AutoCleanup) Notice"
10674
  msgstr ""
10675
 
10676
- #: includes/hud-autofix-whitelist.php:744
10677
  msgid ""
10678
  "One or more of your plugins or your theme requires a BPS Custom Code "
10679
  "whitelist rule to be automatically created by the Setup Wizard."
10680
  msgstr ""
10681
 
10682
- #: includes/hud-autofix-whitelist.php:744
10683
  msgid "Setup Wizard link"
10684
  msgstr ""
10685
 
10686
- #: includes/hud-autofix-whitelist.php:744
10687
  msgid ""
10688
  " and click the Setup Wizard button to automatically create BPS Custom Code "
10689
  "whitelist rules."
10690
  msgstr ""
10691
 
10692
- #: includes/hud-autofix-whitelist.php:744
10693
  msgid "This BPS AutoFix check can be turned Off on the "
10694
  msgstr ""
10695
 
10696
- #: includes/hud-autofix-whitelist.php:744
10697
  msgid ""
10698
  " page if you do not want BPS to check for any plugin or theme whitelist "
10699
  "rules."
10700
  msgstr ""
10701
 
10702
- #: includes/hud-autofix-whitelist.php:753
10703
  msgid "BPS AutoFix Debug: Custom Code Text Box Number and Plugin or Theme Name"
10704
  msgstr ""
10705
 
10706
- #: includes/hud-autofix-whitelist.php:756
10707
  msgid "No Plugin or Theme AutoFix Custom Code Whitelist Rules were found"
10708
  msgstr ""
10709
 
@@ -10964,279 +12472,284 @@ msgstr ""
10964
  msgid " for more information."
10965
  msgstr ""
10966
 
10967
- #: includes/hud-dismiss-functions.php:541
10968
- msgid "BPS WooCommerce Options Notice: Enable Login Security for WooCommerce"
10969
- msgstr ""
10970
-
10971
- #: includes/hud-dismiss-functions.php:541
10972
- msgid ""
10973
- "BPS Login Security & Monitoring (LSM) can be enabled/disabled for the "
10974
- "WooCommerce custom login page by checking or unchecking the "
10975
- msgstr ""
10976
-
10977
- #: includes/hud-dismiss-functions.php:541
10978
- msgid "Enable Login Security for WooCommerce"
10979
- msgstr ""
10980
-
10981
- #: includes/hud-dismiss-functions.php:541
10982
- msgid ""
10983
- " checkbox option setting. The LSM WooCommerce option is automatically "
10984
- "enabled during the BPS upgrade if you already had WooCommerce installed "
10985
- "before upgrading BPS. If you just installed WooCommerce you can either run "
10986
- "the Setup Wizard to enable the LSM WooCommerce option or you can enable this "
10987
- "option manually by going to the BPS LSM plugin page if you want to enable "
10988
- "LSM for WooCommerce."
10989
- msgstr ""
10990
-
10991
- #: includes/hud-dismiss-functions.php:573
10992
  msgid "Notice: BPS Query String Exploits Code Changes"
10993
  msgstr ""
10994
 
10995
- #: includes/hud-dismiss-functions.php:573
10996
  msgid ""
10997
  "Older BPS Query String Exploits code was found in BPS Custom Code. Several "
10998
  "Query String Exploits rules were changed/added/modified in the root ."
10999
  "htaccess file in BPS .49.6, .50.2 & .50.3."
11000
  msgstr ""
11001
 
11002
- #: includes/hud-dismiss-functions.php:573
11003
  msgid ""
11004
  "Copy the new Query String Exploits section of code from your root .htaccess "
11005
  "file and paste it into this BPS Custom Code text box: CUSTOM CODE BPSQSE BPS "
11006
  "QUERY STRING EXPLOITS and click the Save Root Custom Code button."
11007
  msgstr ""
11008
 
11009
- #: includes/hud-dismiss-functions.php:573
11010
  msgid ""
11011
  "This Notice will go away once you have copied the new Query String Exploits "
11012
  "code to BPS Custom Code and clicked the Save Root Custom Code button."
11013
  msgstr ""
11014
 
11015
- #: includes/hud-dismiss-functions.php:592
11016
  msgid "BPS Alert! A BPS htaccess file was NOT found in the BPS Backup folder: "
11017
  msgstr ""
11018
 
11019
- #: includes/hud-dismiss-functions.php:592
11020
  msgid " and click the BPS Backup Folder BulletProof Mode Activate button."
11021
  msgstr ""
11022
 
11023
- #: includes/hud-dismiss-functions.php:630
11024
  msgid "New Improved BPS Speed Boost Cache Code"
11025
  msgstr ""
11026
 
11027
- #: includes/hud-dismiss-functions.php:630
11028
  msgid ""
11029
  "Older BPS Speed Boost Cache Code was found saved in this BPS Custom Code "
11030
  "text box: CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE"
11031
  msgstr ""
11032
 
11033
- #: includes/hud-dismiss-functions.php:630
11034
  msgid ""
11035
  "Newer improved BPS Speed Boost Cache Code has been created, which should "
11036
  "improve website load speed performance even more."
11037
  msgstr ""
11038
 
11039
- #: includes/hud-dismiss-functions.php:630
11040
  msgid "Get The New Improved BPS Speed Boost Cache Code"
11041
  msgstr ""
11042
 
11043
- #: includes/hud-dismiss-functions.php:630
11044
  msgid ". To dismiss this Notice click the Dismiss Notice button below."
11045
  msgstr ""
11046
 
11047
- #: includes/hud-dismiss-functions.php:630
11048
  msgid ""
11049
  "To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on "
11050
  "the Custom Code page."
11051
  msgstr ""
11052
 
11053
- #: includes/hud-dismiss-functions.php:637
11054
  msgid "BPS Speed Boost Cache Custom Code Notice"
11055
  msgstr ""
11056
 
11057
- #: includes/hud-dismiss-functions.php:637
11058
  msgid ""
11059
  "BPS Speed Boost Cache Code was found in this BPS Custom Code text box: "
11060
  "CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE"
11061
  msgstr ""
11062
 
11063
- #: includes/hud-dismiss-functions.php:637
11064
  msgid ""
11065
  "and another caching plugin's Marker text was also found in this BPS Custom "
11066
  "Code text box."
11067
  msgstr ""
11068
 
11069
- #: includes/hud-dismiss-functions.php:637
11070
  msgid "Click this link: "
11071
  msgstr ""
11072
 
11073
- #: includes/hud-dismiss-functions.php:637
11074
  msgid "BPS Speed Boost Cache Custom Code Notice Forum Topic"
11075
  msgstr ""
11076
 
11077
- #: includes/hud-dismiss-functions.php:637
11078
  msgid " for help information on what this Notice means and what to do next."
11079
  msgstr ""
11080
 
11081
- #: includes/hud-dismiss-functions.php:697
11082
  msgid "BPS Plugin Automatic Update Notice"
11083
  msgstr ""
11084
 
11085
- #: includes/hud-dismiss-functions.php:697
11086
  msgid ""
11087
  "Would you like to have BPS plugin updates installed automatically? Click "
11088
  "this link: "
11089
  msgstr ""
11090
 
11091
- #: includes/hud-dismiss-functions.php:697
11092
  msgid " and click the BPS MU Tools Enable BPS Plugin AutoUpdates link."
11093
  msgstr ""
11094
 
11095
- #: includes/login-security.php:90 includes/login-security.php:96
11096
- #: includes/login-security.php:293 includes/login-security.php:423
11097
- #: includes/login-security.php:429 includes/login-security.php:539
11098
- #: includes/login-security.php:662 includes/login-security.php:668
11099
- #: includes/login-security.php:672 includes/login-security.php:678
11100
- #: includes/login-security.php:682 includes/login-security.php:692
11101
- #: includes/login-security.php:700 includes/login-security.php:704
11102
- #: includes/login-security.php:711 includes/login-security.php:715
11103
- #: includes/login-security.php:725 includes/login-security.php:729
11104
- #: includes/login-security.php:738 includes/login-security.php:742
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11105
  msgid "ERROR:"
11106
  msgstr ""
11107
 
11108
- #: includes/login-security.php:90 includes/login-security.php:293
11109
- #: includes/login-security.php:423 includes/login-security.php:539
11110
  msgid " This user account has been locked until "
11111
  msgstr ""
11112
 
11113
- #: includes/login-security.php:90 includes/login-security.php:293
11114
- #: includes/login-security.php:423 includes/login-security.php:539
11115
  msgid ""
11116
  " due to too many failed login attempts. You can login again after the "
11117
  "Lockout Time above has expired."
11118
  msgstr ""
11119
 
11120
- #: includes/login-security.php:96 includes/login-security.php:429
11121
- #: includes/login-security.php:678 includes/login-security.php:682
11122
- #: includes/login-security.php:725 includes/login-security.php:729
11123
- #: includes/login-security.php:738 includes/login-security.php:742
11124
  msgid " Invalid Entry."
11125
  msgstr ""
11126
 
11127
- #: includes/login-security.php:96 includes/login-security.php:429
11128
- #: includes/login-security.php:662 includes/login-security.php:668
11129
- #: includes/login-security.php:672 includes/login-security.php:678
11130
- #: includes/login-security.php:682 includes/login-security.php:692
11131
- #: includes/login-security.php:700 includes/login-security.php:704
11132
- #: includes/login-security.php:711 includes/login-security.php:715
11133
- #: includes/login-security.php:725 includes/login-security.php:729
11134
- #: includes/login-security.php:738 includes/login-security.php:742
11135
  msgid "Lost your password?"
11136
  msgstr ""
11137
 
11138
- #: includes/login-security.php:114 includes/login-security.php:253
11139
- #: includes/login-security.php:497
 
 
 
 
 
11140
  msgid "A User has logged in on website: "
11141
  msgstr ""
11142
 
11143
- #: includes/login-security.php:115 includes/login-security.php:131
11144
- #: includes/login-security.php:162 includes/login-security.php:178
11145
- #: includes/login-security.php:254 includes/login-security.php:270
11146
- #: includes/login-security.php:498 includes/login-security.php:515
11147
  msgid ""
11148
  "To take further action go to the Login Security page. If you do not want to "
11149
  "receive further email alerts change or turn off Login Security Email Alerts."
11150
  msgstr ""
11151
 
11152
- #: includes/login-security.php:116 includes/login-security.php:132
11153
- #: includes/login-security.php:163 includes/login-security.php:179
11154
- #: includes/login-security.php:213 includes/login-security.php:255
11155
- #: includes/login-security.php:271 includes/login-security.php:367
11156
- #: includes/login-security.php:452 includes/login-security.php:500
11157
- #: includes/login-security.php:517 includes/login-security.php:613
11158
  msgid "Username:"
11159
  msgstr ""
11160
 
11161
- #: includes/login-security.php:117 includes/login-security.php:133
11162
- #: includes/login-security.php:164 includes/login-security.php:180
11163
- #: includes/login-security.php:214 includes/login-security.php:256
11164
- #: includes/login-security.php:272 includes/login-security.php:368
11165
- #: includes/login-security.php:453 includes/login-security.php:501
11166
- #: includes/login-security.php:518 includes/login-security.php:614
11167
  msgid "Status:"
11168
  msgstr ""
11169
 
11170
- #: includes/login-security.php:118 includes/login-security.php:134
11171
- #: includes/login-security.php:165 includes/login-security.php:181
11172
- #: includes/login-security.php:215 includes/login-security.php:257
11173
- #: includes/login-security.php:273 includes/login-security.php:369
11174
- #: includes/login-security.php:454 includes/login-security.php:502
11175
- #: includes/login-security.php:519 includes/login-security.php:615
11176
  msgid "User Role:"
11177
  msgstr ""
11178
 
11179
- #: includes/login-security.php:119 includes/login-security.php:135
11180
- #: includes/login-security.php:166 includes/login-security.php:182
11181
- #: includes/login-security.php:216 includes/login-security.php:258
11182
- #: includes/login-security.php:274 includes/login-security.php:370
11183
- #: includes/login-security.php:455 includes/login-security.php:503
11184
- #: includes/login-security.php:520 includes/login-security.php:616
11185
  msgid "Email:"
11186
  msgstr ""
11187
 
11188
- #: includes/login-security.php:120 includes/login-security.php:136
11189
- #: includes/login-security.php:167 includes/login-security.php:183
11190
- #: includes/login-security.php:219 includes/login-security.php:259
11191
- #: includes/login-security.php:275 includes/login-security.php:373
11192
- #: includes/login-security.php:458 includes/login-security.php:504
11193
- #: includes/login-security.php:521 includes/login-security.php:619
11194
  msgid "User IP Address:"
11195
  msgstr ""
11196
 
11197
- #: includes/login-security.php:121 includes/login-security.php:137
11198
- #: includes/login-security.php:168 includes/login-security.php:184
11199
- #: includes/login-security.php:220 includes/login-security.php:260
11200
- #: includes/login-security.php:276 includes/login-security.php:374
11201
- #: includes/login-security.php:459 includes/login-security.php:505
11202
- #: includes/login-security.php:522 includes/login-security.php:620
11203
  msgid "User Hostname:"
11204
  msgstr ""
11205
 
11206
- #: includes/login-security.php:122 includes/login-security.php:138
11207
- #: includes/login-security.php:169 includes/login-security.php:185
11208
- #: includes/login-security.php:221 includes/login-security.php:261
11209
- #: includes/login-security.php:277 includes/login-security.php:375
11210
- #: includes/login-security.php:460 includes/login-security.php:506
11211
- #: includes/login-security.php:523 includes/login-security.php:621
11212
  msgid "Request URI:"
11213
  msgstr ""
11214
 
11215
- #: includes/login-security.php:123 includes/login-security.php:139
11216
- #: includes/login-security.php:170 includes/login-security.php:186
11217
- #: includes/login-security.php:222 includes/login-security.php:262
11218
- #: includes/login-security.php:278 includes/login-security.php:376
11219
- #: includes/login-security.php:461 includes/login-security.php:507
11220
- #: includes/login-security.php:524 includes/login-security.php:622
11221
  msgid "Website:"
11222
  msgstr ""
11223
 
11224
- #: includes/login-security.php:130 includes/login-security.php:177
11225
- #: includes/login-security.php:269 includes/login-security.php:514
11226
  msgid "An Administrator has logged in on website: "
11227
  msgstr ""
11228
 
11229
- #: includes/login-security.php:161
11230
  msgid "Test A User has logged in on website: "
11231
  msgstr ""
11232
 
11233
- #: includes/login-security.php:208 includes/login-security.php:362
11234
- #: includes/login-security.php:447 includes/login-security.php:608
11235
  msgid "A User Account has been locked on website: "
11236
  msgstr ""
11237
 
11238
- #: includes/login-security.php:209 includes/login-security.php:363
11239
- #: includes/login-security.php:448 includes/login-security.php:609
11240
  msgid ""
11241
  "To take further action go to the Login Security page. If no action is taken "
11242
  "then the User will be able to try and login again after the Lockout Time has "
@@ -11244,15 +12757,15 @@ msgid ""
11244
  "off Login Security Email Alerts."
11245
  msgstr ""
11246
 
11247
- #: includes/login-security.php:210 includes/login-security.php:364
11248
- #: includes/login-security.php:449 includes/login-security.php:610
11249
  msgid ""
11250
  "What to do if your User Account is locked and you are unable to login to "
11251
  "your website:"
11252
  msgstr ""
11253
 
11254
- #: includes/login-security.php:210 includes/login-security.php:364
11255
- #: includes/login-security.php:449 includes/login-security.php:610
11256
  msgid ""
11257
  " Use FTP or your web host control panel file manager and rename the /"
11258
  "bulletproof-security plugin folder name to /_bulletproof-security. Log into "
@@ -11261,53 +12774,53 @@ msgid ""
11261
  "Account."
11262
  msgstr ""
11263
 
11264
- #: includes/login-security.php:211 includes/login-security.php:365
11265
- #: includes/login-security.php:450 includes/login-security.php:611
11266
  msgid "What to do if your User Account is being locked repeatedly:"
11267
  msgstr ""
11268
 
11269
- #: includes/login-security.php:211 includes/login-security.php:365
11270
- #: includes/login-security.php:450 includes/login-security.php:611
11271
  msgid ""
11272
  " Additional things that you can do to protect publicly displayed usernames, "
11273
  "not exposing author names/user account names, etc."
11274
  msgstr ""
11275
 
11276
- #: includes/login-security.php:217 includes/login-security.php:371
11277
- #: includes/login-security.php:456 includes/login-security.php:617
11278
  msgid "Lockout Time:"
11279
  msgstr ""
11280
 
11281
- #: includes/login-security.php:218 includes/login-security.php:372
11282
- #: includes/login-security.php:457 includes/login-security.php:618
11283
  msgid "Lockout Time Expires:"
11284
  msgstr ""
11285
 
11286
- #: includes/login-security.php:662 includes/login-security.php:672
11287
  msgid " Invalid username."
11288
  msgstr ""
11289
 
11290
- #: includes/login-security.php:668
11291
  msgid " Invalid email address."
11292
  msgstr ""
11293
 
11294
- #: includes/login-security.php:692 includes/login-security.php:704
11295
- #: includes/login-security.php:715
11296
  msgid " The password you entered for the username "
11297
  msgstr ""
11298
 
11299
- #: includes/login-security.php:692 includes/login-security.php:700
11300
- #: includes/login-security.php:704 includes/login-security.php:711
11301
- #: includes/login-security.php:715
11302
  msgid " is incorrect. "
11303
  msgstr ""
11304
 
11305
- #: includes/login-security.php:700 includes/login-security.php:711
11306
  msgid " The password you entered for the email address "
11307
  msgstr ""
11308
 
11309
- #: includes/login-security.php:700 includes/login-security.php:704
11310
- #: includes/login-security.php:725 includes/login-security.php:738
11311
  msgid " Login Attempts Remaining "
11312
  msgstr ""
11313
 
3
  msgstr ""
4
  "Project-Id-Version: bulletproof-security\n"
5
  "Report-Msgid-Bugs-To: \n"
6
+ "POT-Creation-Date: 2017-09-18 14: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"
301
 
302
  #: admin/core/core-export-import.php:115 admin/login/lsm-export.php:49
303
  #: admin/wizard/wizard-backup.php:187 admin/wizard/wizard-backup.php:221
304
+ #: admin/wizard/wizard.php:975 admin/wizard/wizard.php:1073
305
+ #: admin/wizard/wizard.php:1075 includes/hud-autofix-whitelist.php:753
306
  msgid "Setup Wizard Options"
307
  msgstr ""
308
 
393
  msgstr ""
394
 
395
  #: admin/core/core-forms.php:18 admin/core/core-forms.php:98
396
+ #: admin/core/core.php:1127
397
  msgid "htaccess Files Disabled: wp-admin htaccess file writing is disabled."
398
  msgstr ""
399
 
718
 
719
  #: admin/core/core-forms.php:618
720
  msgid ""
 
 
 
 
 
 
 
 
 
 
 
 
721
  "The New Improved BPS Speed Boost Cache Code Notice is NOT set. Nothing to "
722
  "reset."
723
  msgstr ""
724
 
725
+ #: admin/core/core-forms.php:621
726
  msgid "Success! The New Improved BPS Speed Boost Cache Code Notice is reset."
727
  msgstr ""
728
 
729
+ #: admin/core/core-forms.php:626
730
  msgid "The BPS Plugin Automatic Update Notice is NOT set. Nothing to reset."
731
  msgstr ""
732
 
733
+ #: admin/core/core-forms.php:629
734
  msgid "Success! The BPS Plugin Automatic Update Notice is reset."
735
  msgstr ""
736
 
737
+ #: admin/core/core-forms.php:634
738
  msgid ""
739
  "The Endurance Page Cache (EPC) plugin Notice is NOT set. Nothing to reset."
740
  msgstr ""
741
 
742
+ #: admin/core/core-forms.php:637
743
  msgid "Success! The Endurance Page Cache (EPC) plugin Notice is reset."
744
  msgstr ""
745
 
746
+ #: admin/core/core-forms.php:642
747
+ msgid "The MScan First Run Notice is NOT set. Nothing to reset."
748
+ msgstr ""
749
+
750
+ #: admin/core/core-forms.php:645
751
+ msgid "Success! The MScan First Run Notice is reset."
752
+ msgstr ""
753
+
754
+ #: admin/core/core-forms.php:649
755
  msgid "Refresh Status"
756
  msgstr ""
757
 
874
  "Read Me help file for BPS troubleshooting steps."
875
  msgstr ""
876
 
877
+ #: admin/core/core-help-text.php:15 admin/wizard/wizard.php:1027
878
  msgid "Notes: "
879
  msgstr ""
880
 
941
  "Send Email Alerts."
942
  msgstr ""
943
 
944
+ #: admin/core/core-help-text.php:18 admin/core/core.php:458
945
  msgid "HPF Cron Check Frequency:"
946
  msgstr ""
947
 
953
  "Options button to save your settings."
954
  msgstr ""
955
 
956
+ #: admin/core/core-help-text.php:18 admin/core/core.php:469
957
  msgid "HPF Cron On|Off:"
958
  msgstr ""
959
 
963
  "HPF Cron Off. Click the Save HPF Cron Options button to save your settings."
964
  msgstr ""
965
 
966
+ #: admin/core/core-help-text.php:18 admin/core/core.php:489
967
  msgid "Ignore Hidden Plugin Folders & Files:"
968
  msgstr ""
969
 
1065
  "permanently. To save any new htaccess code permanently use BPS Custom Code."
1066
  msgstr ""
1067
 
1068
+ #: admin/core/core-help-text.php:30 admin/core/core.php:208
1069
+ #: admin/core/core.php:318 admin/core/core.php:407 admin/core/core.php:519
1070
+ #: admin/core/core.php:595 admin/core/core.php:671 admin/core/core.php:1445
1071
  #: admin/db-backup-security/db-backup-help-text.php:12
1072
  #: admin/db-backup-security/db-backup-help-text.php:15
1073
  #: admin/db-backup-security/db-backup-security.php:281
1074
+ #: admin/email-log-settings/email-log-settings.php:107
1075
+ #: admin/login/login.php:192 admin/login/login.php:811
1076
+ #: admin/login/login.php:1000 admin/maintenance/maintenance.php:200
1077
+ #: admin/mscan/mscan-help-text.php:44 admin/mscan/mscan.php:109
1078
  #: admin/security-log/security-log.php:246
1079
  #: admin/system-info/system-info.php:103 admin/theme-skin/theme-skin.php:110
1080
+ #: admin/wizard/wizard.php:1013 admin/wizard/wizard.php:1081
1081
  msgid ""
1082
  "This Read Me Help window is draggable (top) and resizable (bottom right "
1083
  "corner)"
1545
 
1546
  #: admin/core/core-htaccess-code.php:437 admin/core/core-htaccess-code.php:521
1547
  #: admin/core/core-htaccess-code.php:590 admin/core/core-htaccess-code.php:674
1548
+ #: admin/core/core.php:1039
1549
  msgid "htaccess Files Disabled: Root htaccess file writing is disabled."
1550
  msgstr ""
1551
 
1552
  #: admin/core/core-htaccess-code.php:459 admin/core/core-htaccess-code.php:612
1553
+ #: admin/core/core.php:895
1554
  msgid "Failed to copy your Custom default.htaccess file: "
1555
  msgstr ""
1556
 
1557
  #: admin/core/core-htaccess-code.php:459 admin/core/core-htaccess-code.php:612
1558
+ #: admin/core/core.php:895
1559
  msgid " to: "
1560
  msgstr ""
1561
 
1590
  msgstr ""
1591
 
1592
  #: admin/core/core.php:58 admin/db-backup-security/db-backup-security.php:56
1593
+ #: admin/email-log-settings/email-log-settings.php:51 admin/login/login.php:51
1594
+ #: admin/maintenance/maintenance.php:51 admin/mscan/mscan.php:45
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:300
1601
+ #: admin/includes/admin.php:301
1602
  msgid "BulletProof Security ~ htaccess Core"
1603
  msgstr ""
1604
 
1605
+ #: admin/core/core.php:152 admin/db-backup-security/db-backup-security.php:69
1606
+ #: admin/email-log-settings/email-log-settings.php:64 admin/login/login.php:126
1607
+ #: admin/maintenance/maintenance.php:89 admin/mscan/mscan.php:63
1608
  #: admin/security-log/security-log.php:64 admin/system-info/system-info.php:64
1609
  #: admin/theme-skin/theme-skin.php:69 admin/wizard/wizard.php:198
1610
  msgid "Settings Saved"
1611
  msgstr ""
1612
 
1613
+ #: admin/core/core.php:179
1614
  msgid "Security Modes"
1615
  msgstr ""
1616
 
1617
+ #: admin/core/core.php:180
1618
  msgid "htaccess File Editor"
1619
  msgstr ""
1620
 
1621
+ #: admin/core/core.php:181 admin/core/core.php:1429 admin/core/core.php:1442
1622
  msgid "Custom Code"
1623
  msgstr ""
1624
 
1625
+ #: admin/core/core.php:182
1626
  msgid "My Notes"
1627
  msgstr ""
1628
 
1629
+ #: admin/core/core.php:183
1630
  msgid "Whats New"
1631
  msgstr ""
1632
 
1633
+ #: admin/core/core.php:184 admin/db-backup-security/db-backup-security.php:262
1634
+ #: admin/db-backup-security/db-backup-security.php:1652
1635
+ #: admin/email-log-settings/email-log-settings.php:88 admin/login/login.php:164
1636
+ #: admin/maintenance/maintenance.php:164 admin/mscan/mscan.php:90
1637
+ #: admin/mscan/mscan.php:1874 admin/security-log/security-log.php:227
1638
+ #: admin/system-info/system-info.php:90 admin/theme-skin/theme-skin.php:92
1639
+ #: admin/theme-skin/theme-skin.php:215
1640
  msgid "Help &amp; FAQ"
1641
  msgstr ""
1642
 
1643
+ #: admin/core/core.php:185 bulletproof-security.php:124
1644
  msgid "BPS Pro Features"
1645
  msgstr ""
1646
 
1647
+ #: admin/core/core.php:193
1648
  msgid "htaccess File Security Modes ~ "
1649
  msgstr ""
1650
 
1651
+ #: admin/core/core.php:193
1652
  msgid "RBM, WBM, HPF, MBM & BBM BulletProof Modes"
1653
  msgstr ""
1654
 
1655
+ #: admin/core/core.php:193 admin/core/core.php:711 admin/core/core.php:1423
1656
+ #: admin/core/core.php:1546 admin/core/core.php:1601
1657
  #: admin/db-backup-security/db-backup-security.php:270
1658
  #: admin/db-backup-security/db-backup-security.php:1134
1659
+ #: admin/db-backup-security/db-backup-security.php:1290
1660
+ #: admin/email-log-settings/email-log-settings.php:96 admin/login/login.php:181
1661
+ #: admin/login/login.php:800 admin/maintenance/maintenance.php:184
1662
+ #: admin/maintenance/maintenance.php:186 admin/mscan/mscan.php:98
1663
  #: admin/security-log/security-log.php:235 admin/theme-skin/theme-skin.php:101
1664
+ #: admin/wizard/wizard.php:998 admin/wizard/wizard.php:1067
1665
  msgid "Want even more security protection?"
1666
  msgstr ""
1667
 
1668
+ #: admin/core/core.php:193 admin/core/core.php:711 admin/core/core.php:1423
1669
+ #: admin/core/core.php:1546 admin/core/core.php:1601
1670
+ #: admin/email-log-settings/email-log-settings.php:96
1671
  #: admin/maintenance/maintenance.php:184 admin/maintenance/maintenance.php:186
1672
  #: admin/security-log/security-log.php:235 admin/theme-skin/theme-skin.php:101
1673
+ #: admin/wizard/wizard.php:998 admin/wizard/wizard.php:1067
1674
  msgid ""
1675
  "Protect all of your Plugins (plugin folders and files) with an IP Firewall: "
1676
  msgstr ""
1677
 
1678
+ #: admin/core/core.php:193 admin/core/core.php:711 admin/core/core.php:1423
1679
+ #: admin/core/core.php:1546 admin/core/core.php:1601
1680
+ #: admin/email-log-settings/email-log-settings.php:96
1681
  #: admin/maintenance/maintenance.php:184 admin/maintenance/maintenance.php:186
1682
  #: admin/security-log/security-log.php:235 admin/theme-skin/theme-skin.php:101
1683
+ #: admin/wizard/wizard.php:998 admin/wizard/wizard.php:1067
1684
  msgid "Get BPS Pro Plugin Firewall"
1685
  msgstr ""
1686
 
1687
+ #: admin/core/core.php:193 admin/core/core.php:711 admin/core/core.php:1423
1688
+ #: admin/core/core.php:1546 admin/core/core.php:1601
1689
+ #: admin/email-log-settings/email-log-settings.php:96
1690
  #: admin/maintenance/maintenance.php:184 admin/maintenance/maintenance.php:186
1691
  #: admin/security-log/security-log.php:235 admin/theme-skin/theme-skin.php:101
1692
+ #: admin/wizard/wizard.php:998 admin/wizard/wizard.php:1067
1693
  msgid ""
1694
  "Protect your WordPress uploads folder against remote access or execution of "
1695
  "files: "
1696
  msgstr ""
1697
 
1698
+ #: admin/core/core.php:193 admin/core/core.php:711 admin/core/core.php:1423
1699
+ #: admin/core/core.php:1546 admin/core/core.php:1601
1700
+ #: admin/email-log-settings/email-log-settings.php:96
1701
  #: admin/maintenance/maintenance.php:184 admin/maintenance/maintenance.php:186
1702
  #: admin/security-log/security-log.php:235 admin/theme-skin/theme-skin.php:101
1703
+ #: admin/wizard/wizard.php:998 admin/wizard/wizard.php:1067
1704
  msgid "Get BPS Pro Uploads Anti-Exploit Guard"
1705
  msgstr ""
1706
 
1707
+ #: admin/core/core.php:199 admin/core/core.php:723 admin/core/core.php:1464
1708
+ #: admin/core/core.php:1500 admin/core/core.php:1517 admin/login/login.php:142
1709
+ #: admin/login/login.php:199 admin/login/login.php:877
1710
+ #: admin/login/login.php:1021 admin/system-info/system-info.php:116
1711
+ #: admin/system-info/system-info.php:999
1712
  msgid "Permission Denied"
1713
  msgstr ""
1714
 
1715
+ #: admin/core/core.php:201
1716
  msgid "Activate|Deactivate Security Modes"
1717
  msgstr ""
1718
 
1719
+ #: admin/core/core.php:203 admin/core/core.php:205 admin/core/core.php:315
1720
  msgid "Root Folder BulletProof Mode (RBM)"
1721
  msgstr ""
1722
 
1723
+ #: admin/core/core.php:203 admin/core/core.php:313 admin/core/core.php:402
1724
+ #: admin/core/core.php:514 admin/core/core.php:590 admin/core/core.php:666
1725
+ #: admin/core/core.php:717 admin/core/core.php:1429
1726
  #: admin/db-backup-security/db-backup-security.php:276
1727
  #: admin/db-backup-security/db-backup-security.php:1140
1728
+ #: admin/db-backup-security/db-backup-security.php:1296
1729
+ #: admin/email-log-settings/email-log-settings.php:102
1730
+ #: admin/login/login.php:187 admin/login/login.php:806
1731
+ #: admin/login/login.php:991 admin/maintenance/maintenance.php:195
1732
+ #: admin/mscan/mscan.php:104 admin/mscan/mscan.php:1675
1733
  #: admin/security-log/security-log.php:241 admin/system-info/system-info.php:98
1734
+ #: admin/theme-skin/theme-skin.php:107 admin/wizard/wizard.php:1004
1735
+ #: admin/wizard/wizard.php:1073
1736
  msgid "Read Me"
1737
  msgstr ""
1738
 
1739
+ #: admin/core/core.php:210 admin/core/core.php:320 admin/core/core.php:1447
1740
  #: admin/db-backup-security/db-backup-security.php:284
1741
+ #: admin/email-log-settings/email-log-settings.php:110
1742
+ #: admin/login/login.php:1003 admin/maintenance/maintenance.php:203
1743
+ #: admin/mscan/mscan.php:111 admin/system-info/system-info.php:106
1744
  msgid "Forum Help Links: "
1745
  msgstr ""
1746
 
1747
+ #: admin/core/core.php:213 admin/core/core.php:323
1748
  msgid "Setup Wizard & Other Video Tutorials"
1749
  msgstr ""
1750
 
1751
+ #: admin/core/core.php:214 admin/core/core.php:324
1752
+ #: admin/email-log-settings/email-log-settings.php:113
1753
+ #: admin/mscan/mscan.php:116 admin/security-log/security-log.php:252
1754
  msgid "BPS Troubleshooting Steps"
1755
  msgstr ""
1756
 
1757
+ #: admin/core/core.php:236 admin/core/core.php:239 admin/core/core.php:242
1758
+ #: admin/core/core.php:245 admin/core/core.php:253 admin/core/core.php:256
1759
+ #: admin/core/core.php:259 admin/core/core.php:262
1760
  msgid "RBM Status: "
1761
  msgstr ""
1762
 
1763
+ #: admin/core/core.php:236 admin/core/core.php:253 admin/core/core.php:351
1764
+ #: admin/core/core.php:365 admin/core/core.php:538 admin/core/core.php:552
1765
+ #: admin/core/core.php:614 admin/core/core.php:628
1766
  msgid "Disabled"
1767
  msgstr ""
1768
 
1769
+ #: admin/core/core.php:239 admin/core/core.php:256
1770
  msgid "Root htaccess File Does Not Exist"
1771
  msgstr ""
1772
 
1773
+ #: admin/core/core.php:242 admin/core/core.php:259 admin/core/core.php:357
1774
+ #: admin/core/core.php:371 admin/core/core.php:544 admin/core/core.php:558
1775
+ #: admin/core/core.php:620 admin/core/core.php:634
1776
  #: admin/system-info/system-info.php:243
1777
  msgid "Activated"
1778
  msgstr ""
1779
 
1780
+ #: admin/core/core.php:245 admin/core/core.php:262 admin/core/core.php:354
1781
+ #: admin/core/core.php:368 admin/core/core.php:541 admin/core/core.php:555
1782
+ #: admin/core/core.php:617 admin/core/core.php:631
1783
  #: admin/system-info/system-info.php:252
1784
  msgid "Deactivated"
1785
  msgstr ""
1786
 
1787
+ #: admin/core/core.php:279 admin/core/core.php:297
1788
  msgid "Click OK to Activate Root Folder BulletProof Mode or click Cancel."
1789
  msgstr ""
1790
 
1791
+ #: admin/core/core.php:287 admin/core/core.php:305
1792
  msgid "Click OK to Deactivate Root Folder BulletProof Mode or click Cancel."
1793
  msgstr ""
1794
 
1795
+ #: admin/core/core.php:313
1796
  msgid "wp-admin Folder BulletProof Mode (WBM)"
1797
  msgstr ""
1798
 
1799
+ #: admin/core/core.php:351 admin/core/core.php:354 admin/core/core.php:357
1800
+ #: admin/core/core.php:365 admin/core/core.php:368 admin/core/core.php:371
1801
  msgid "WBM Status: "
1802
  msgstr ""
1803
 
1804
+ #: admin/core/core.php:386
1805
  msgid "Click OK to Activate wp-admin Folder BulletProof Mode or click Cancel."
1806
  msgstr ""
1807
 
1808
+ #: admin/core/core.php:394
1809
  msgid ""
1810
  "Click OK to Deactivate wp-admin Folder BulletProof Mode or click Cancel."
1811
  msgstr ""
1812
 
1813
+ #: admin/core/core.php:402 admin/core/core.php:404
1814
  msgid "Hidden Plugin Folders|Files Cron (HPF)"
1815
  msgstr ""
1816
 
1817
+ #: admin/core/core.php:425 admin/core/core.php:428 admin/core/core.php:436
1818
+ #: admin/core/core.php:439
1819
  msgid "HPF Status: "
1820
  msgstr ""
1821
 
1822
+ #: admin/core/core.php:425 admin/core/core.php:436 admin/core/core.php:471
1823
  msgid "HPF Cron On"
1824
  msgstr ""
1825
 
1826
+ #: admin/core/core.php:428 admin/core/core.php:439 admin/core/core.php:472
1827
  msgid "HPF Cron Off"
1828
  msgstr ""
1829
 
1830
+ #: admin/core/core.php:460
1831
  msgid "Run Check Every 1 Minute"
1832
  msgstr ""
1833
 
1834
+ #: admin/core/core.php:461
1835
  msgid "Run Check Every 5 Minutes"
1836
  msgstr ""
1837
 
1838
+ #: admin/core/core.php:462
1839
  msgid "Run Check Every 10 Minutes"
1840
  msgstr ""
1841
 
1842
+ #: admin/core/core.php:463
1843
  msgid "Run Check Every 15 Minutes"
1844
  msgstr ""
1845
 
1846
+ #: admin/core/core.php:464
1847
  msgid "Run Check Every 30 Minutes"
1848
  msgstr ""
1849
 
1850
+ #: admin/core/core.php:465
1851
  msgid "Run Check Every 60 Minutes"
1852
  msgstr ""
1853
 
1854
+ #: admin/core/core.php:466
1855
  msgid "Run Check Once Daily"
1856
  msgstr ""
1857
 
1858
+ #: admin/core/core.php:475
1859
  msgid "Save HPF Cron Options"
1860
  msgstr ""
1861
 
1862
+ #: admin/core/core.php:475
1863
  msgid ""
1864
  "The default Cron Frequency is: Run Check Every 15 Minutes. This is a "
1865
  "lightweight check that uses an insignificant amount of resources/memory so 4 "
1871
  "OK to proceed or click Cancel"
1872
  msgstr ""
1873
 
1874
+ #: admin/core/core.php:490
1875
  msgid "Add Ignore rules using plugin folder names or file names."
1876
  msgstr ""
1877
 
1878
+ #: admin/core/core.php:490
1879
  msgid "Use a comma and a space between folder and/or file names."
1880
  msgstr ""
1881
 
1882
+ #: admin/core/core.php:490
1883
  msgid "Example: plugin-folder-name, example-file-name.php"
1884
  msgstr ""
1885
 
1886
+ #: admin/core/core.php:496
1887
  msgid ""
1888
  "This option is for adding ignore rules for Hidden or Empty Plugin Folders "
1889
  "Detected by BPS or Non-standard WP files detected by BPS in your /plugins/ "
1890
  "folder."
1891
  msgstr ""
1892
 
1893
+ #: admin/core/core.php:496
1894
  msgid ""
1895
  "This is an independent option setting that does not require clicking any "
1896
  "other buttons."
1897
  msgstr ""
1898
 
1899
+ #: admin/core/core.php:496 admin/maintenance/maintenance.php:655
1900
+ #: admin/security-log/security-log.php:465
1901
+ #: admin/security-log/security-log.php:480
1902
+ #: admin/security-log/security-log.php:698
1903
+ #: admin/system-info/system-info.php:1055
1904
+ #: admin/system-info/system-info.php:1116
1905
  msgid "Click OK to proceed or click Cancel."
1906
  msgstr ""
1907
 
1908
+ #: admin/core/core.php:514
1909
  msgid "Master htaccess Folder BulletProof Mode (MBM)"
1910
  msgstr ""
1911
 
1912
+ #: admin/core/core.php:516
1913
  msgid "MBM BulletProof Modes"
1914
  msgstr ""
1915
 
1916
+ #: admin/core/core.php:538 admin/core/core.php:541 admin/core/core.php:544
1917
+ #: admin/core/core.php:552 admin/core/core.php:555 admin/core/core.php:558
1918
  msgid "MBM Status: "
1919
  msgstr ""
1920
 
1921
+ #: admin/core/core.php:573
1922
  msgid "Click OK to Activate MBM BulletProof Mode or click Cancel."
1923
  msgstr ""
1924
 
1925
+ #: admin/core/core.php:581
1926
  msgid "Click OK to Deactivate MBM BulletProof Mode or click Cancel."
1927
  msgstr ""
1928
 
1929
+ #: admin/core/core.php:590
1930
  msgid "BPS Backup Folder BulletProof Mode (BBM)"
1931
  msgstr ""
1932
 
1933
+ #: admin/core/core.php:592
1934
  msgid "BBM BulletProof Modes"
1935
  msgstr ""
1936
 
1937
+ #: admin/core/core.php:614 admin/core/core.php:617 admin/core/core.php:620
1938
+ #: admin/core/core.php:628 admin/core/core.php:631 admin/core/core.php:634
1939
  msgid "BBM Status: "
1940
  msgstr ""
1941
 
1942
+ #: admin/core/core.php:649
1943
  msgid "Click OK to Activate BBM BulletProof Mode or click Cancel."
1944
  msgstr ""
1945
 
1946
+ #: admin/core/core.php:657
1947
  msgid ""
1948
  "Caution: BPS Backup Folder BulletProof Mode (BBM) should only be deactivated "
1949
  "for testing or troubleshooting. Be sure to activate BBM BulletProof Mode "
1950
  "after you are done testing or troubleshooting."
1951
  msgstr ""
1952
 
1953
+ #: admin/core/core.php:657
1954
  msgid "Click OK to Deactivate BBM BulletProof Mode or click Cancel."
1955
  msgstr ""
1956
 
1957
+ #: admin/core/core.php:666 admin/core/core.php:668
1958
  msgid "Backup & Restore BPS htaccess Files"
1959
  msgstr ""
1960
 
1961
+ #: admin/core/core.php:684
1962
  msgid "Click OK to Backup BPS htaccess files or click Cancel."
1963
  msgstr ""
1964
 
1965
+ #: admin/core/core.php:692
1966
  msgid "Click OK to Restore BPS htaccess files or click Cancel."
1967
  msgstr ""
1968
 
1969
+ #: admin/core/core.php:711
1970
  msgid "htaccess File Editor ~ "
1971
  msgstr ""
1972
 
1973
+ #: admin/core/core.php:711
1974
  msgid ""
1975
  "Check or edit BPS htaccess files/code manually/directly for testing. Use BPS "
1976
  "Custom Code to save htaccess code permanently"
1977
  msgstr ""
1978
 
1979
+ #: admin/core/core.php:717 admin/core/core.php:719
1980
  msgid "htaccess File Editing"
1981
  msgstr ""
1982
 
1983
+ #: admin/core/core.php:743
1984
  msgid "htaccess Files Disabled: secure.htaccess Master file is disabled."
1985
  msgstr ""
1986
 
1987
+ #: admin/core/core.php:747
1988
  msgid "ERROR: A secure.htaccess Master file was NOT found."
1989
  msgstr ""
1990
 
1991
+ #: admin/core/core.php:763
1992
  msgid ""
1993
  "File Open and Write test successful! The secure.htaccess Master file is "
1994
  "writable."
1995
  msgstr ""
1996
 
1997
+ #: admin/core/core.php:769 admin/core/core.php:846 admin/core/core.php:947
1998
+ #: admin/core/core.php:1113
1999
  msgid "Cannot write to file: "
2000
  msgstr ""
2001
 
2002
+ #: admin/core/core.php:782
2003
  msgid ""
2004
  "htaccess Files Disabled: secure.htaccess Master file writing is disabled."
2005
  msgstr ""
2006
 
2007
+ #: admin/core/core.php:790
2008
  msgid "Error: Unable to write to the secure.htaccess Master file."
2009
  msgstr ""
2010
 
2011
+ #: admin/core/core.php:806
2012
  msgid "The secure.htaccess Master file has been updated."
2013
  msgstr ""
2014
 
2015
+ #: admin/core/core.php:820
2016
  msgid "htaccess Files Disabled: default.htaccess Master file is disabled."
2017
  msgstr ""
2018
 
2019
+ #: admin/core/core.php:824
2020
  msgid "ERROR: A default.htaccess Master file was NOT found."
2021
  msgstr ""
2022
 
2023
+ #: admin/core/core.php:840
2024
  msgid ""
2025
  "File Open and Write test successful! The default.htaccess Master file is "
2026
  "writable."
2027
  msgstr ""
2028
 
2029
+ #: admin/core/core.php:859
2030
  msgid ""
2031
  "htaccess Files Disabled: default.htaccess Master file writing is disabled."
2032
  msgstr ""
2033
 
2034
+ #: admin/core/core.php:867
2035
  msgid "Error: Unable to write to the default.htaccess Master file."
2036
  msgstr ""
2037
 
2038
+ #: admin/core/core.php:883
2039
  msgid "The default.htaccess Master file has been updated."
2040
  msgstr ""
2041
 
2042
+ #: admin/core/core.php:895
2043
  msgid ""
2044
  " Check that the /bps-backup/ and /master-backups/ folders exist and the "
2045
  "folder permissions or Ownership for these folders."
2046
  msgstr ""
2047
 
2048
+ #: admin/core/core.php:900
2049
  msgid ""
2050
  "Your Custom default.htaccess Master file has been successfully saved to: "
2051
  msgstr ""
2052
 
2053
+ #: admin/core/core.php:915
2054
  msgid "wpadmin-secure.htaccess file writing is disabled."
2055
  msgstr ""
2056
 
2057
+ #: admin/core/core.php:921
2058
  msgid ""
2059
  "htaccess Files Disabled: wpadmin-secure.htaccess Master file is disabled."
2060
  msgstr ""
2061
 
2062
+ #: admin/core/core.php:925
2063
  msgid "ERROR: A wpadmin-secure.htaccess Master file was NOT found."
2064
  msgstr ""
2065
 
2066
+ #: admin/core/core.php:941
2067
  msgid ""
2068
  "File Open and Write test successful! The wpadmin-secure.htaccess Master file "
2069
  "is writable."
2070
  msgstr ""
2071
 
2072
+ #: admin/core/core.php:961
2073
  msgid ""
2074
  "htaccess Files Disabled: wpadmin-secure.htaccess Master file writing is "
2075
  "disabled."
2076
  msgstr ""
2077
 
2078
+ #: admin/core/core.php:969
2079
  msgid "Error: Unable to write to the wpadmin-secure.htaccess Master file."
2080
  msgstr ""
2081
 
2082
+ #: admin/core/core.php:985
2083
  msgid "The wpadmin-secure.htaccess Master file has been updated."
2084
  msgstr ""
2085
 
2086
+ #: admin/core/core.php:999
2087
  msgid "htaccess Files Disabled: Root htaccess file does not exist."
2088
  msgstr ""
2089
 
2090
+ #: admin/core/core.php:1003
2091
  msgid "ERROR: An htaccess file was NOT found in your root folder"
2092
  msgstr ""
2093
 
2094
+ #: admin/core/core.php:1019
2095
  msgid ""
2096
  "File Open and Write test successful! Your currently active root htaccess "
2097
  "file is writable."
2098
  msgstr ""
2099
 
2100
+ #: admin/core/core.php:1026
2101
  msgid "Your root htaccess file is Locked with Read Only Permissions."
2102
  msgstr ""
2103
 
2104
+ #: admin/core/core.php:1026
2105
  msgid ""
2106
  "Use the Lock and Unlock buttons below to Lock or Unlock your root htaccess "
2107
  "file for editing."
2108
  msgstr ""
2109
 
2110
+ #: admin/core/core.php:1047
2111
  msgid ""
2112
  "Error: Unable to write to the Root htaccess file. If your Root htaccess file "
2113
  "is locked you must unlock first."
2114
  msgstr ""
2115
 
2116
+ #: admin/core/core.php:1063
2117
  msgid "Your currently active root htaccess file has been updated."
2118
  msgstr ""
2119
 
2120
+ #: admin/core/core.php:1080
2121
  msgid "wp-admin active htaccess file writing is disabled."
2122
  msgstr ""
2123
 
2124
+ #: admin/core/core.php:1086
2125
  msgid "htaccess Files Disabled: wp-admin folder htaccess file does not exist."
2126
  msgstr ""
2127
 
2128
+ #: admin/core/core.php:1090
2129
  msgid "ERROR: An htaccess file was NOT found in your wp-admin folder"
2130
  msgstr ""
2131
 
2132
+ #: admin/core/core.php:1106
2133
  msgid ""
2134
  "File Open and Write test successful! Your currently active wp-admin htaccess "
2135
  "file is writable."
2136
  msgstr ""
2137
 
2138
+ #: admin/core/core.php:1135
2139
  msgid "Error: Unable to write to the wp-admin htaccess file."
2140
  msgstr ""
2141
 
2142
+ #: admin/core/core.php:1151
2143
  msgid "Your currently active wp-admin htaccess file has been updated."
2144
  msgstr ""
2145
 
2146
+ #: admin/core/core.php:1168
2147
  msgid "Your Root htaccess file has been Locked."
2148
  msgstr ""
2149
 
2150
+ #: admin/core/core.php:1173
2151
  msgid "Unable to Lock your Root htaccess file."
2152
  msgstr ""
2153
 
2154
+ #: admin/core/core.php:1187
2155
  msgid "Your Root htaccess file has been Unlocked."
2156
  msgstr ""
2157
 
2158
+ #: admin/core/core.php:1192
2159
  msgid "Unable to Unlock your Root htaccess file."
2160
  msgstr ""
2161
 
2162
+ #: admin/core/core.php:1215
2163
  msgid "Click OK to Lock your Root htaccess file or click Cancel."
2164
  msgstr ""
2165
 
2166
+ #: admin/core/core.php:1215
2167
  msgid ""
2168
  "Note: The File Open and Write Test window will still display the last status "
2169
  "of the file as Unlocked. To see the current status refresh your browser."
2170
  msgstr ""
2171
 
2172
+ #: admin/core/core.php:1223
2173
  msgid "Click OK to Unlock your Root htaccess file or click Cancel."
2174
  msgstr ""
2175
 
2176
+ #: admin/core/core.php:1223
2177
  msgid ""
2178
  "Note: The File Open and Write Test window will still display the last status "
2179
  "of the file as Locked. To see the current status refresh your browser."
2180
  msgstr ""
2181
 
2182
+ #: admin/core/core.php:1232
2183
  msgid ""
2184
  "Turning AutoLock On will allow BPS Pro to automatically lock your Root ."
2185
  "htaccess file. For some folks this causes a problem because their Web Hosts "
2187
  "BPS Pro to AutoLock the Root .htaccess file works fine."
2188
  msgstr ""
2189
 
2190
+ #: admin/core/core.php:1232
2191
  msgid "Click OK to Turn AutoLock On or click Cancel."
2192
  msgstr ""
2193
 
2194
+ #: admin/core/core.php:1234 admin/system-info/system-info.php:772
2195
+ #: admin/system-info/system-info.php:780 admin/system-info/system-info.php:788
2196
+ #: admin/system-info/system-info.php:796 admin/system-info/system-info.php:804
2197
+ #: admin/system-info/system-info.php:812 admin/system-info/system-info.php:820
2198
+ #: admin/system-info/system-info.php:828 admin/system-info/system-info.php:847
2199
+ #: includes/functions.php:555 includes/functions.php:728
2200
+ #: includes/functions.php:896 includes/functions.php:939
2201
+ #: includes/functions.php:987 includes/functions.php:1031
2202
  msgid "On"
2203
  msgstr ""
2204
 
2205
+ #: admin/core/core.php:1244
2206
  msgid ""
2207
  "Turning AutoLock Off will prevent BPS Pro from automatically locking your "
2208
  "Root .htaccess file. For some folks this is necessary because their Web "
2210
  "allowing BPS Pro to AutoLock the Root .htaccess file works fine."
2211
  msgstr ""
2212
 
2213
+ #: admin/core/core.php:1244
2214
  msgid "Click OK to Turn AutoLock Off or click Cancel."
2215
  msgstr ""
2216
 
2217
+ #: admin/core/core.php:1246 admin/system-info/system-info.php:539
2218
+ #: admin/system-info/system-info.php:775 admin/system-info/system-info.php:783
2219
+ #: admin/system-info/system-info.php:791 admin/system-info/system-info.php:799
2220
+ #: admin/system-info/system-info.php:807 admin/system-info/system-info.php:815
2221
+ #: admin/system-info/system-info.php:823 admin/system-info/system-info.php:831
2222
+ #: admin/system-info/system-info.php:839 admin/system-info/system-info.php:850
2223
+ #: includes/functions.php:901 includes/functions.php:944
2224
+ #: includes/functions.php:993 includes/functions.php:1037
2225
+ #: includes/general-functions.php:285 includes/general-functions.php:300
2226
  msgid "Off"
2227
  msgstr ""
2228
 
2229
+ #: admin/core/core.php:1261
2230
  msgid "secure.htaccess"
2231
  msgstr ""
2232
 
2233
+ #: admin/core/core.php:1262
2234
  msgid "default.htaccess"
2235
  msgstr ""
2236
 
2237
+ #: admin/core/core.php:1263
2238
  msgid "wpadmin-secure.htaccess"
2239
  msgstr ""
2240
 
2241
+ #: admin/core/core.php:1264
2242
  msgid "Your Current Root htaccess File"
2243
  msgstr ""
2244
 
2245
+ #: admin/core/core.php:1265
2246
  msgid "Your Current wp-admin htaccess File"
2247
  msgstr ""
2248
 
2249
+ #: admin/core/core.php:1367
2250
  msgid "YOUR ROOT HTACCESS FILE IS LOCKED."
2251
  msgstr ""
2252
 
2253
+ #: admin/core/core.php:1367
2254
  msgid "YOUR FILE EDITS|CHANGES CANNOT BE SAVED."
2255
  msgstr ""
2256
 
2257
+ #: admin/core/core.php:1367
2258
  msgid ""
2259
  "Click Cancel, copy the file editing changes you made to save them and then "
2260
  "click the Unlock .htaccess File button to unlock your Root .htaccess file. "
2263
  "to save your file edits/changes."
2264
  msgstr ""
2265
 
2266
+ #: admin/core/core.php:1423
2267
  msgid "htaccess File Custom Code ~ "
2268
  msgstr ""
2269
 
2270
+ #: admin/core/core.php:1423
2271
  msgid ""
2272
  "Save custom htaccess code for your Root and wp-admin htaccess Files "
2273
  "permanently"
2274
  msgstr ""
2275
 
2276
+ #: admin/core/core.php:1435
2277
  msgid "Reset|Recheck Dismiss Notices: "
2278
  msgstr ""
2279
 
2280
+ #: admin/core/core.php:1450
2281
  msgid "Brute Force Login Page Protection code"
2282
  msgstr ""
2283
 
2284
+ #: admin/core/core.php:1458 admin/core/core.php:1644
2285
+ #: admin/wizard/wizard.php:1019
2286
  msgid "Custom Code Video Tutorial"
2287
  msgstr ""
2288
 
2289
+ #: admin/core/core.php:1459
2290
  msgid "BulletProof Security Forum"
2291
  msgstr ""
2292
 
2293
+ #: admin/core/core.php:1476
2294
  msgid ""
2295
  "Clicking OK will Import all of your Root and wp-admin Custom Code from the "
2296
  "cc-master.zip file on your computer."
2297
  msgstr ""
2298
 
2299
+ #: admin/core/core.php:1476
2300
  msgid "Click OK to Import Custom Code or click Cancel."
2301
  msgstr ""
2302
 
2303
+ #: admin/core/core.php:1485
2304
  msgid ""
2305
  "Clicking OK will Export (copy) all of your Root and wp-admin Custom Code "
2306
  "into the cc-master.zip file, which you can then download to your computer by "
2308
  "success message."
2309
  msgstr ""
2310
 
2311
+ #: admin/core/core.php:1485
2312
  msgid "Click OK to Export Custom Code or click Cancel."
2313
  msgstr ""
2314
 
2315
+ #: admin/core/core.php:1493
2316
  msgid ""
2317
  "Clicking OK will delete all of your Root and wp-admin Custom Code from all "
2318
  "of the Custom Code text boxes."
2319
  msgstr ""
2320
 
2321
+ #: admin/core/core.php:1493
2322
  msgid "Click OK to Delete Custom Code or click Cancel."
2323
  msgstr ""
2324
 
2325
+ #: admin/core/core.php:1533
2326
  msgid ""
2327
  "Your My Notes Personal Notes and/or htaccess Code Notes saved successfully "
2328
  "to your WordPress Database."
2329
  msgstr ""
2330
 
2331
+ #: admin/core/core.php:1546
2332
  msgid "My Notes ~ "
2333
  msgstr ""
2334
 
2335
+ #: admin/core/core.php:1546
2336
  msgid "Save Personal Notes and htaccess Code Notes to your WordPress Database"
2337
  msgstr ""
2338
 
2339
+ #: admin/core/core.php:1588
2340
+ #: admin/db-backup-security/db-backup-security.php:1656
2341
+ #: admin/mscan/mscan.php:1878 admin/theme-skin/theme-skin.php:219
2342
  msgid "Whats New in "
2343
  msgstr ""
2344
 
2345
+ #: admin/core/core.php:1588
2346
  msgid " and General Help Info & Tips"
2347
  msgstr ""
2348
 
2349
+ #: admin/core/core.php:1593
2350
  msgid "The BPS Changelog|Whats New page has been moved to the "
2351
  msgstr ""
2352
 
2353
+ #: admin/core/core.php:1593
2354
  msgid "Reasons for this Changelog|Whats New page change: "
2355
  msgstr ""
2356
 
2357
+ #: admin/core/core.php:1593
2358
  msgid ""
2359
  "The BPS Changelog|Whats New page will not have to be translated by the "
2360
  "WordPress PolyGlots Language Packs Team for each new version release of BPS, "
2363
  "BPS version changes through the years and other beneficial reasons."
2364
  msgstr ""
2365
 
2366
+ #: admin/core/core.php:1601 admin/db-backup-security/db-backup-security.php:270
2367
  #: admin/db-backup-security/db-backup-security.php:1134
2368
+ #: admin/db-backup-security/db-backup-security.php:1290
2369
+ #: admin/email-log-settings/email-log-settings.php:96
2370
  #: admin/maintenance/maintenance.php:184 admin/maintenance/maintenance.php:186
2371
  #: admin/security-log/security-log.php:235 admin/theme-skin/theme-skin.php:101
2372
+ #: admin/wizard/wizard.php:998 admin/wizard/wizard.php:1067
2373
  msgid ""
2374
  "Protect all of your website files with AutoRestore|Quarantine Intrusion "
2375
  "Detection & Prevention System: "
2376
  msgstr ""
2377
 
2378
+ #: admin/core/core.php:1601 admin/db-backup-security/db-backup-security.php:270
2379
  #: admin/db-backup-security/db-backup-security.php:1134
2380
+ #: admin/db-backup-security/db-backup-security.php:1290
2381
+ #: admin/email-log-settings/email-log-settings.php:96
2382
  #: admin/maintenance/maintenance.php:184 admin/maintenance/maintenance.php:186
2383
+ #: admin/mscan/mscan.php:98 admin/security-log/security-log.php:235
2384
+ #: admin/theme-skin/theme-skin.php:101 admin/wizard/wizard.php:998
2385
+ #: admin/wizard/wizard.php:1067
2386
  msgid "Get BPS Pro ARQ IDPS"
2387
  msgstr ""
2388
 
2389
+ #: admin/core/core.php:1601 admin/email-log-settings/email-log-settings.php:96
2390
+ #: admin/maintenance/maintenance.php:184 admin/maintenance/maintenance.php:186
2391
  #: admin/security-log/security-log.php:235 admin/theme-skin/theme-skin.php:101
2392
+ #: admin/wizard/wizard.php:998 admin/wizard/wizard.php:1067
2393
  msgid ""
2394
  "Protect against SpamBot & HackerBot (auto-registering, auto-logins, auto-"
2395
  "posting, auto-commenting): "
2396
  msgstr ""
2397
 
2398
+ #: admin/core/core.php:1601 admin/email-log-settings/email-log-settings.php:96
2399
+ #: admin/login/login.php:181 admin/login/login.php:800
2400
  #: admin/maintenance/maintenance.php:184 admin/maintenance/maintenance.php:186
2401
  #: admin/security-log/security-log.php:235 admin/theme-skin/theme-skin.php:101
2402
+ #: admin/wizard/wizard.php:998 admin/wizard/wizard.php:1067
2403
  msgid "Get BPS Pro JTC Anti-Spam|Anti-Hacker"
2404
  msgstr ""
2405
 
2406
+ #: admin/core/core.php:1606
2407
  msgid "General Help Info & Tips:"
2408
  msgstr ""
2409
 
2410
+ #: admin/core/core.php:1610
2411
  msgid "If BPS plugin pages are not displaying visually correct you can "
2412
  msgstr ""
2413
 
2414
+ #: admin/core/core.php:1614
2415
  msgid "BPS Video Tutorials|Setup Wizard: "
2416
  msgstr ""
2417
 
2418
+ #: admin/core/core.php:1622
2419
  msgid "Troubleshooting Steps & The BPS Security Log: "
2420
  msgstr ""
2421
 
2422
+ #: admin/core/core.php:1622
2423
  msgid ""
2424
  "All BPS plugin features can be turned Off/On individually to confirm, "
2425
  "eliminate or isolate a problem or issue that may or may not be caused by BPS."
2426
  msgstr ""
2427
 
2428
+ #: admin/core/core.php:1622
2429
  msgid ""
2430
  "The BPS Security Log is a primary troubleshooting tool. If BPS is blocking "
2431
  "something legitimate in another plugin or theme then a Security Log entry "
2434
  "being blocked."
2435
  msgstr ""
2436
 
2437
+ #: admin/core/core.php:1622
2438
  msgid ""
2439
  "Search the Forum site to see if a known issue or problem is already posted "
2440
  "with a solution/whitelist rule in the Forum."
2441
  msgstr ""
2442
 
2443
+ #: admin/core/core.php:1635 admin/maintenance/maintenance.php:2092
2444
  msgid "Help & FAQ"
2445
  msgstr ""
2446
 
2447
+ #: admin/core/core.php:1639 admin/email-log-settings/email-log-settings.php:221
2448
+ #: admin/login/login.php:1357 admin/maintenance/maintenance.php:2097
2449
+ #: admin/security-log/security-log.php:806
2450
+ #: admin/system-info/system-info.php:1135
2451
  msgid "Contributors Page"
2452
  msgstr ""
2453
 
2454
+ #: admin/core/core.php:1640
2455
  msgid "WP Permalinks - Custom Permalink Structure Help Info"
2456
  msgstr ""
2457
 
2458
+ #: admin/core/core.php:1641 admin/email-log-settings/email-log-settings.php:220
2459
+ #: admin/login/login.php:1356 admin/maintenance/maintenance.php:2098
2460
+ #: admin/security-log/security-log.php:805
2461
+ #: admin/system-info/system-info.php:1134
2462
  msgid "Security Log Event Codes"
2463
  msgstr ""
2464
 
2465
+ #: admin/core/core.php:1642
2466
  msgid "Adding a Custom 403 Forbidden Page For Your Website"
2467
  msgstr ""
2468
 
2469
+ #: admin/core/core.php:1643
2470
+ #: admin/db-backup-security/db-backup-security.php:1660
2471
+ #: admin/email-log-settings/email-log-settings.php:222
2472
+ #: admin/login/login.php:1358 admin/maintenance/maintenance.php:2099
2473
+ #: admin/mscan/mscan.php:1881 admin/security-log/security-log.php:807
2474
+ #: admin/system-info/system-info.php:1136 admin/theme-skin/theme-skin.php:222
2475
  msgid "Forum: Search, Troubleshooting Steps & Post Questions For Assistance"
2476
  msgstr ""
2477
 
2478
+ #: admin/core/core.php:1656
2479
  msgid "BulletProof Security Pro Feature Highlights"
2480
  msgstr ""
2481
 
2482
+ #: admin/core/core.php:1666
2483
  msgid "The Ultimate Security Protection"
2484
  msgstr ""
2485
 
2486
+ #: admin/core/core.php:1669
2487
  msgid "BPS Pro One-Click Setup Wizard & Demo Video Tutorial"
2488
  msgstr ""
2489
 
2490
+ #: admin/core/core.php:1670
2491
  msgid "View All BPS Pro Features"
2492
  msgstr ""
2493
 
2494
+ #: admin/core/core.php:1677
2495
  msgid ""
2496
  "The Complete Website Security Solution for Hacker and Spammer Protection"
2497
  msgstr ""
2498
 
2499
+ #: admin/core/core.php:1677
2500
  msgid ""
2501
  "BulletProof Security Pro has an amazing track record. BPS Pro has been "
2502
  "publicly available for 6+ years and is installed on over 40,000 websites "
2504
  "hacked."
2505
  msgstr ""
2506
 
2507
+ #: admin/core/core.php:1677
2508
  msgid ""
2509
  "Why pay 10 times or more for other premium WordPress Security Plugins with "
2510
  "recurring yearly subscriptions when you can get the best WordPress Security "
2511
  "Plugin for an extremely low one-time purchase price?"
2512
  msgstr ""
2513
 
2514
+ #: admin/core/core.php:1677
2515
  msgid "View Cost Comparison"
2516
  msgstr ""
2517
 
2518
+ #: admin/core/core.php:1677
2519
  msgid ""
2520
  "30-Day Money-Back Guarantee: If you are dissatisfied with BulletProof "
2521
  "Security Pro for any reason. We offer a no questions asked full refund."
2522
  msgstr ""
2523
 
2524
+ #: admin/core/core.php:1680
2525
  msgid "One-Click Setup Wizard Installation: "
2526
  msgstr ""
2527
 
2528
+ #: admin/core/core.php:1680
2529
  msgid ""
2530
  "Fast, simple and complete BPS Pro installation and setup in less than 1 "
2531
  "minute."
2532
  msgstr ""
2533
 
2534
+ #: admin/core/core.php:1682
2535
  msgid "One-Click Upgrade: "
2536
  msgstr ""
2537
 
2538
+ #: admin/core/core.php:1682
2539
  msgid "One-click plugin upgrade on the WordPress Plugins page."
2540
  msgstr ""
2541
 
2542
+ #: admin/core/core.php:1684
2543
  msgid ""
2544
  "AutoRestore|Quarantine Intrusion Detection and Prevention System (ARQ IDPS): "
2545
  msgstr ""
2546
 
2547
+ #: admin/core/core.php:1684
2548
  msgid ""
2549
  "ARQ IDPS is a real-time file scanner that automatically quarantines "
2550
  "malicious hacker files and autorestores legitimate website files if they "
2558
  "Plugin and Theme Automatic, Manual and Shiny installations and updates."
2559
  msgstr ""
2560
 
2561
+ #: admin/core/core.php:1686
2562
+ msgid "MScan Malware Scanner: "
2563
+ msgstr ""
2564
+
2565
+ #: admin/core/core.php:1686
2566
+ msgid ""
2567
+ "MScan Scheduled Scans are available in BPS Pro only. The BPS Pro ARQ IDPS "
2568
+ "scanner is far superior to malware scanners including MScan, but both the "
2569
+ "MScan and ARQ IDPS scanners can be scheduled to automatically run on a "
2570
+ "website if someone would like to do that."
2571
+ msgstr ""
2572
+
2573
+ #: admin/core/core.php:1688
2574
  msgid "Plugin Firewall|Plugin Firewall AutoPilot Mode: "
2575
  msgstr ""
2576
 
2577
+ #: admin/core/core.php:1688
2578
  msgid ""
2579
  "The Plugin Firewall protects all of your Plugins (plugin folders and files) "
2580
  "with an IP Address Firewall, which prevents/blocks/forbids Remote Access to "
2583
  "access to the plugins folder based on this criteria: Domain name, Server IP "
2584
  "Address and Public IP|Your Computer IP Address. The Plugin Firewall uses a "
2585
  "true IP Address based Firewall that automatically updates your IP Address in "
2586
+ "real-time. Plugin Firewall AutoPilot Mode automatically detects and creates "
2587
+ "Plugin Firewall whitelist rules in real-time for any Plugins that require "
2588
+ "firewall whitelist rules."
2589
  msgstr ""
2590
 
2591
+ #: admin/core/core.php:1690
2592
  msgid "JTC Anti-Spam|Anti-Hacker (JTC): "
2593
  msgstr ""
2594
 
2595
+ #: admin/core/core.php:1690
2596
  #, php-format
2597
  msgid ""
2598
  "Blocks 100% of all SpamBot and HackerBot Brute Force Login attacks (auto-"
2600
  "spamming and hacking is automated with SpamBots and HackerBots. JTC provides "
2601
  "website security protection as well as website Anti-Spam protection. JTC "
2602
  "protects these website Pages|Forms: Login Page|Form, Registration Page|Form, "
2603
+ "Lost Password Page|Form, Comment Page|Form, BuddyPress Register Page|Form, "
2604
+ "BuddyPress Sidebar Login Form and WooCommerce Login and Registration Pages|"
2605
+ "Forms with a user friendly & customizable jQuery ToolTip CAPTCHA. JTC also "
2606
+ "includes a SpamBot Trap."
2607
  msgstr ""
2608
 
2609
+ #: admin/core/core.php:1692
2610
  msgid "Uploads Folder Anti-Exploit Guard (UAEG): "
2611
  msgstr ""
2612
 
2613
+ #: admin/core/core.php:1692
2614
  msgid ""
2615
  "Protects the WordPress Uploads folder. ONLY safe image files with valid "
2616
  "image file extensions such as jpg, gif, png, etc. can be accessed, opened or "
2620
  "executed in the WordPress Uploads folder."
2621
  msgstr ""
2622
 
2623
+ #: admin/core/core.php:1694
2624
  msgid "DB Monitor Intrusion Detection System (IDS): "
2625
  msgstr ""
2626
 
2627
+ #: admin/core/core.php:1694
2628
  msgid ""
2629
  "The DB Monitor is an automated Intrusion Detection System (IDS) that alerts "
2630
  "you via email anytime a change/modification occurs in your WordPress "
2635
  "help info."
2636
  msgstr ""
2637
 
2638
+ #: admin/core/core.php:1696
2639
  msgid "DB Diff Tool: "
2640
  msgstr ""
2641
 
2642
+ #: admin/core/core.php:1696
2643
  msgid ""
2644
  "The DB Diff Tool compares old database tables from DB backups to current "
2645
  "database tables and displays any differences in the data/content of those 2 "
2647
  "not only just DB data."
2648
  msgstr ""
2649
 
2650
+ #: admin/core/core.php:1698
2651
  msgid "DB Status & Info: "
2652
  msgstr ""
2653
 
2654
+ #: admin/core/core.php:1698
2655
  msgid ""
2656
  "General DB Info shows commonly checked DB status and info about your "
2657
  "WordPress database at a glance. Extensive DB Info shows extensive DB status "
2660
  "SHOW GLOBAL VARIABLES and SHOW SESSION VARIABLES."
2661
  msgstr ""
2662
 
2663
+ #: admin/core/core.php:1700
2664
  msgid "S-Monitor: "
2665
  msgstr ""
2666
 
2667
+ #: admin/core/core.php:1700
2668
  msgid ""
2669
  "S-Monitor is the centralized Security Monitoring and Alerting Core where you "
2670
  "can manage and choose BPS Pro settings for Dashboard Alerts, Dashboard "
2674
  "easy to change all/any BPS Pro settings to your particular preferences."
2675
  msgstr ""
2676
 
2677
+ #: admin/core/core.php:1702
2678
  msgid "Advanced Real-Time Alerting & Heads Up Dashboard Status Display: "
2679
  msgstr ""
2680
 
2681
+ #: admin/core/core.php:1702
2682
  msgid ""
2683
  "BPS Pro checks and displays error, warning, notifications and alert messages "
2684
  "in real time. You can choose how you want these messages displayed to you "
2686
  "Dashboard, BPS Pro pages only, Turned off, Email Alerts, Logging..."
2687
  msgstr ""
2688
 
2689
+ #: admin/core/core.php:1705
2690
  msgid "Custom php.ini|ini_set Options: "
2691
  msgstr ""
2692
 
2693
+ #: admin/core/core.php:1705
2694
  msgid ""
2695
  "Quickly create a custom php.ini file for your website or use ini_set Options "
2696
  "to increase security and performance with just a few clicks. Additional P-"
2698
  "Protected PHP Error Log, PHP Error Alerts, Secure phpinfo Viewer..."
2699
  msgstr ""
2700
 
2701
+ #: admin/core/core.php:1707
2702
  msgid "Pro Tools: 16 mini-plugins: "
2703
  msgstr ""
2704
 
2705
+ #: admin/core/core.php:1707
2706
  msgid ""
2707
  "Online Base64 Decoder, Offline Base64 Decode|Encode, Mcrypt ~ Decrypt|"
2708
  "Encrypt, Crypt Encryption, Scheduled Crons (display and reschedule/reset "
2721
  "vulnerable to an XML-RPC exploit)."
2722
  msgstr ""
2723
 
2724
+ #: admin/core/core.php:1715
2725
  msgid "BPS Pro Version Release Dates"
2726
  msgstr ""
2727
 
 
2728
  #: admin/core/core.php:1719 admin/core/core.php:1720 admin/core/core.php:1721
2729
  #: admin/core/core.php:1722 admin/core/core.php:1723 admin/core/core.php:1724
2730
+ #: admin/core/core.php:1725 admin/core/core.php:1726 admin/core/core.php:1727
2731
+ #: admin/core/core.php:1728 admin/core/core.php:1733 admin/core/core.php:1734
2732
  #: admin/core/core.php:1735 admin/core/core.php:1736 admin/core/core.php:1737
2733
  #: admin/core/core.php:1738 admin/core/core.php:1739 admin/core/core.php:1740
2734
+ #: admin/core/core.php:1741 admin/core/core.php:1742 admin/core/core.php:1743
2735
+ #: admin/core/core.php:1744 admin/core/core.php:1745 admin/core/core.php:1751
2736
  #: admin/core/core.php:1752 admin/core/core.php:1753 admin/core/core.php:1754
2737
  #: admin/core/core.php:1755 admin/core/core.php:1756 admin/core/core.php:1757
2738
  #: admin/core/core.php:1758 admin/core/core.php:1759 admin/core/core.php:1760
2739
+ #: admin/core/core.php:1761 admin/core/core.php:1762 admin/core/core.php:1763
2740
+ #: admin/core/core.php:1764 admin/core/core.php:1770 admin/core/core.php:1771
2741
  #: admin/core/core.php:1772 admin/core/core.php:1773 admin/core/core.php:1774
2742
  #: admin/core/core.php:1775 admin/core/core.php:1776 admin/core/core.php:1777
2743
+ #: admin/core/core.php:1778 admin/core/core.php:1779 admin/core/core.php:1780
2744
+ #: admin/core/core.php:1781 admin/core/core.php:1782 admin/core/core.php:1788
2745
  #: admin/core/core.php:1789 admin/core/core.php:1790 admin/core/core.php:1791
2746
+ #: admin/core/core.php:1792 admin/core/core.php:1793 admin/core/core.php:1794
2747
+ #: admin/core/core.php:1795 admin/core/core.php:1796 admin/core/core.php:1797
2748
  #: admin/core/core.php:1803 admin/core/core.php:1804 admin/core/core.php:1805
2749
  #: admin/core/core.php:1806 admin/core/core.php:1807 admin/core/core.php:1808
2750
+ #: admin/core/core.php:1809 admin/core/core.php:1810 admin/core/core.php:1811
2751
+ #: admin/core/core.php:1812
2752
  #, php-format
2753
  msgid ""
2754
  "<a href=\"%2$s\" target=\"_blank\" title=\"Link Opens in New Browser Window"
2820
  msgstr ""
2821
 
2822
  #: admin/db-backup-security/db-backup-help-text.php:9
 
2823
  #: admin/login/lsm-help-text.php:10 admin/security-log/security-log.php:255
2824
  msgid "NOTE: "
2825
  msgstr ""
3224
  msgstr ""
3225
 
3226
  #: admin/db-backup-security/db-backup-help-text.php:12
3227
+ #: admin/email-log-settings/email-log-settings.php:115
3228
+ #: admin/login/lsm-help-text.php:10 admin/login/lsm-help-text.php:19
3229
+ #: admin/security-log/security-log.php:255
3230
+ msgid "Note: "
3231
+ msgstr ""
3232
+
3233
+ #: admin/db-backup-security/db-backup-help-text.php:12
3234
  msgid ""
3235
+ "DB Backup Log Email Alert and Log file option settings are on the Email|Log "
3236
+ "Settings page."
 
 
 
3237
  msgstr ""
3238
 
3239
  #: admin/db-backup-security/db-backup-help-text.php:12
3273
  msgstr ""
3274
 
3275
  #: admin/db-backup-security/db-backup-help-text.php:12
3276
+ #: admin/mscan/mscan-help-text.php:44 admin/security-log/security-log.php:255
3277
  msgid "Delete Log Button"
3278
  msgstr ""
3279
 
3405
  #: admin/db-backup-security/db-backup-security.php:259
3406
  #: admin/db-backup-security/db-backup-security.php:276
3407
  #: admin/db-backup-security/db-backup-security.php:278
3408
+ #: admin/includes/admin.php:306
3409
  msgid "DB Backup"
3410
  msgstr ""
3411
 
3416
  msgstr ""
3417
 
3418
  #: admin/db-backup-security/db-backup-security.php:261
3419
+ #: admin/db-backup-security/db-backup-security.php:1296
3420
+ #: admin/db-backup-security/db-backup-security.php:1298
3421
  msgid "DB Table Prefix Changer"
3422
  msgstr ""
3423
 
3447
  #: admin/db-backup-security/db-backup-security.php:350
3448
  #: admin/db-backup-security/db-backup-security.php:535
3449
  #: admin/db-backup-security/db-backup-security.php:553
3450
+ #: admin/login/login.php:355 admin/login/login.php:384
3451
+ #: admin/login/login.php:456 admin/login/login.php:485
3452
+ #: admin/mscan/mscan.php:1318
3453
  msgid "Delete"
3454
  msgstr ""
3455
 
3577
  msgstr ""
3578
 
3579
  #: admin/db-backup-security/db-backup-security.php:692
3580
+ #: admin/mscan/mscan.php:899
3581
  msgid "All"
3582
  msgstr ""
3583
 
3584
  #: admin/db-backup-security/db-backup-security.php:693
3585
+ #: admin/db-backup-security/db-backup-security.php:1509
3586
  msgid "DB Table Name"
3587
  msgstr ""
3588
 
4066
  msgstr ""
4067
 
4068
  #: admin/db-backup-security/db-backup-security.php:1159
4069
+ #: admin/mscan/mscan.php:1727
4070
  msgid ""
4071
  "Then click the Delete Log button to delete the contents of this Log file."
4072
  msgstr ""
4075
  msgid "DB Backup Log Last Modified Time: "
4076
  msgstr ""
4077
 
4078
+ #: admin/db-backup-security/db-backup-security.php:1188
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4079
  msgid ""
4080
  "Success! Your DB Backup Log file has been deleted and replaced with a new "
4081
  "blank DB Backup Log file."
4082
  msgstr ""
4083
 
4084
+ #: admin/db-backup-security/db-backup-security.php:1196
4085
  msgid "Clicking OK will delete the contents of your DB Backup Log file."
4086
  msgstr ""
4087
 
4088
+ #: admin/db-backup-security/db-backup-security.php:1196
4089
+ #: admin/mscan/mscan.php:1769 admin/security-log/security-log.php:509
4090
  msgid "Click OK to Delete the Log file contents or click Cancel."
4091
  msgstr ""
4092
 
4093
+ #: admin/db-backup-security/db-backup-security.php:1215
4094
  msgid ""
4095
  "The DB Backup Log File Was Not Found! Check that the file really exists here "
4096
  "- /"
4097
  msgstr ""
4098
 
4099
+ #: admin/db-backup-security/db-backup-security.php:1215
4100
  msgid "/bps-backup/logs/db_backup_log.txt and is named correctly."
4101
  msgstr ""
4102
 
4103
+ #: admin/db-backup-security/db-backup-security.php:1234
4104
  msgid ""
4105
  "File Open and Write test successful! Your DB Backup Log file is writable."
4106
  msgstr ""
4107
 
4108
+ #: admin/db-backup-security/db-backup-security.php:1246
4109
  msgid "Success! Your DB Backup Log file has been updated."
4110
  msgstr ""
4111
 
4112
+ #: admin/db-backup-security/db-backup-security.php:1290
4113
  msgid "DB Table Prefix Changer ~ "
4114
  msgstr ""
4115
 
4116
+ #: admin/db-backup-security/db-backup-security.php:1290
4117
  msgid "Tools to change & check your WordPress Database Table Prefix"
4118
  msgstr ""
4119
 
4120
+ #: admin/db-backup-security/db-backup-security.php:1306
4121
  msgid "Your current WordPress Database Table Prefix is: "
4122
  msgstr ""
4123
 
4124
+ #: admin/db-backup-security/db-backup-security.php:1306
4125
  msgid "NOTES: "
4126
  msgstr ""
4127
 
4128
+ #: admin/db-backup-security/db-backup-security.php:1306
4129
  msgid ""
4130
  "1. It is recommended that you backup your database before using this tool."
4131
  msgstr ""
4132
 
4133
+ #: admin/db-backup-security/db-backup-security.php:1306
4134
  msgid ""
4135
  "2. If you want to create your own DB Table Prefix name or add additional "
4136
  "characters to the randomly generated DB Table Prefix name below then ONLY "
4137
  "use lowercase letters, numbers and underscores in your DB Table Prefix name."
4138
  msgstr ""
4139
 
4140
+ #: admin/db-backup-security/db-backup-security.php:1306
4141
  msgid ""
4142
  "3. The maximum length limitation of a DB Table name, including the table "
4143
  "prefix is 64 characters. See the DB Table Names & Character Length Table to "
4144
  "the right."
4145
  msgstr ""
4146
 
4147
+ #: admin/db-backup-security/db-backup-security.php:1306
4148
  msgid ""
4149
  "4. To change your DB Table Prefix name back to the WordPress default DB "
4150
  "Table Prefix name, enter wp_ for the DB Table Prefix name."
4151
  msgstr ""
4152
 
4153
+ #: admin/db-backup-security/db-backup-security.php:1320
4154
  msgid ""
4155
  "ERROR: The DB Table Prefix name can only contain numbers, lowercase letters, "
4156
  "and underscores."
4157
  msgstr ""
4158
 
4159
+ #: admin/db-backup-security/db-backup-security.php:1334
4160
  msgid "A wp-config.php file was NOT found in your website root folder."
4161
  msgstr ""
4162
 
4163
+ #: admin/db-backup-security/db-backup-security.php:1334
4164
  msgid ""
4165
  "Your DB Table Prefix was not changed. If you have moved your wp-config.php "
4166
  "file to a another Server folder then you can use this tool to change your DB "
4168
  "file back to the default location: your WordPress website root folder."
4169
  msgstr ""
4170
 
4171
+ #: admin/db-backup-security/db-backup-security.php:1354
4172
  msgid ""
4173
  "Error: The wp-config.php file is not writable. Unable to write to the wp-"
4174
  "config.php file."
4175
  msgstr ""
4176
 
4177
+ #: admin/db-backup-security/db-backup-security.php:1354
4178
  msgid ""
4179
  "Your DB Table Prefix was not changed. You will need to make the wp-config."
4180
  "php file writable first by changing either the file permissions or Ownership "
4182
  "DB Table Prefix Changer tool to change your DB Table Prefix."
4183
  msgstr ""
4184
 
4185
+ #: admin/db-backup-security/db-backup-security.php:1399
4186
  msgid ""
4187
  "DB Table Prefix Name change completed. Click the Load|Refresh Table button "
4188
  "to load/refresh the DB Table Names & Character Length Table if you would "
4189
  "like to check the new DB Table Prefix Name Changes."
4190
  msgstr ""
4191
 
4192
+ #: admin/db-backup-security/db-backup-security.php:1406
4193
  msgid ""
4194
  "Click the Update Site User Roles button to complete the DB Table Prefix Name "
4195
  "change."
4196
  msgstr ""
4197
 
4198
+ #: admin/db-backup-security/db-backup-security.php:1432
4199
  msgid "Randomly Generated DB Table Prefix"
4200
  msgstr ""
4201
 
4202
+ #: admin/db-backup-security/db-backup-security.php:1469
4203
  msgid ""
4204
  "DB Table Prefix Name change completed. Click the Load|Refresh Table button "
4205
  "to load/refresh the DB Table Names & Character Length Table if you would "
4208
  "new DB Table names."
4209
  msgstr ""
4210
 
4211
+ #: admin/db-backup-security/db-backup-security.php:1481
4212
  msgid ""
4213
  "This button must be clicked AFTER clicking the Change DB Table Prefix button "
4214
  "above."
4215
  msgstr ""
4216
 
4217
+ #: admin/db-backup-security/db-backup-security.php:1510
4218
  msgid "Length"
4219
  msgstr ""
4220
 
4221
+ #: admin/db-backup-security/db-backup-security.php:1534
4222
  msgid "DB Table Name|Column"
4223
  msgstr ""
4224
 
4225
+ #: admin/db-backup-security/db-backup-security.php:1535
4226
  msgid "Other Prefix Changes"
4227
  msgstr ""
4228
 
4229
+ #: admin/db-backup-security/db-backup-security.php:1602
4230
  msgid "DB Table Names & Character Length Table"
4231
  msgstr ""
4232
 
4233
+ #: admin/db-backup-security/db-backup-security.php:1603
4234
  msgid ""
4235
  "Displays your Current DB Table Names & Length Including The DB Table Prefix"
4236
  msgstr ""
4237
 
4238
+ #: admin/db-backup-security/db-backup-security.php:1657
4239
+ #: admin/mscan/mscan.php:1879 admin/theme-skin/theme-skin.php:220
4240
  msgid "BPS Pro Features & Version Release Dates"
4241
  msgstr ""
4242
 
4243
+ #: admin/db-backup-security/db-backup-security.php:1658
4244
+ #: admin/mscan/mscan.php:1880 admin/theme-skin/theme-skin.php:221
4245
  msgid "Video Tutorials"
4246
  msgstr ""
4247
 
4248
+ #: admin/db-backup-security/db-backup-security.php:1659
4249
  msgid "DB Backup & Security Guide & Troubleshooting"
4250
  msgstr ""
4251
 
4252
+ #: admin/email-log-settings/email-log-settings.php:57
4253
+ msgid "BulletProof Security ~ Email Alerts & Log File Settings"
4254
+ msgstr ""
4255
+
4256
+ #: admin/email-log-settings/email-log-settings.php:87
4257
+ msgid "Email & Log Settings"
4258
+ msgstr ""
4259
+
4260
+ #: admin/email-log-settings/email-log-settings.php:96
4261
+ msgid "Email Alerts & Log File Settings ~ "
4262
+ msgstr ""
4263
+
4264
+ #: admin/email-log-settings/email-log-settings.php:96
4265
+ msgid "For Login Security, Security Log & DB Backup Log"
4266
+ msgstr ""
4267
+
4268
+ #: admin/email-log-settings/email-log-settings.php:102
4269
+ #: admin/email-log-settings/email-log-settings.php:104
4270
+ #: admin/includes/admin.php:317
4271
+ msgid "Email|Log Settings"
4272
+ msgstr ""
4273
+
4274
+ #: admin/email-log-settings/email-log-settings.php:115
4275
+ msgid "Email Alerts & Log File Settings"
4276
+ msgstr ""
4277
+
4278
+ #: admin/email-log-settings/email-log-settings.php:115
4279
+ msgid ""
4280
+ "The email address fields To, From, Cc and Bcc can be email addresses for "
4281
+ "your hosting account, your WordPress Administrator email address or 3rd "
4282
+ "party email addresses like gmail or yahoo email. If you are sending emails "
4283
+ "to multiple email recipients then separate the email addresses with a comma. "
4284
+ "Example: someone@somewhere.com, someoneelse@somewhereelse.com. You can add a "
4285
+ "space or not add a space after the comma between email addresses."
4286
+ msgstr ""
4287
+
4288
+ #: admin/email-log-settings/email-log-settings.php:115
4289
+ msgid ""
4290
+ "Email Alerting and Log file options are located in S-Monitor in BPS Pro."
4291
+ msgstr ""
4292
+
4293
+ #: admin/email-log-settings/email-log-settings.php:115
4294
+ msgid "Login Security: Send Email Alert When..."
4295
+ msgstr ""
4296
+
4297
+ #: admin/email-log-settings/email-log-settings.php:115
4298
+ msgid ""
4299
+ "There are 5 different email options. Choose to have email alerts sent when a "
4300
+ "User Account is locked out, An Administrator Logs in, An Administrator Logs "
4301
+ "in and when a User Account is locked out, Any User logs in and when a User "
4302
+ "Account is locked out or Do Not Send Email Alerts."
4303
+ msgstr ""
4304
+
4305
+ #: admin/email-log-settings/email-log-settings.php:115
4306
+ msgid ""
4307
+ "The email alerts contain the action that occurred with Timestamp and these "
4308
+ "fields: Username, Status, Role, Email, Lockout Time, Lockout Time Expires, "
4309
+ "User IP Address, User Hostname, Request URI and URL link for the website "
4310
+ "where the action occurred."
4311
+ msgstr ""
4312
+
4313
+ #: admin/email-log-settings/email-log-settings.php:115
4314
+ msgid "Security Log File Email|Delete Log File When..."
4315
+ msgstr ""
4316
+
4317
+ #: admin/email-log-settings/email-log-settings.php:115
4318
+ msgid ""
4319
+ "Select the maximum Log File size that you want to allow for your Security "
4320
+ "Log File and then select the option that you want when your log file reaches "
4321
+ "that maximum size. Choose to either automatically Email the Log file to you "
4322
+ "and delete it or just delete it without emailing the log file to you first."
4323
+ msgstr ""
4324
+
4325
+ #: admin/email-log-settings/email-log-settings.php:115
4326
+ msgid "DB Backup Log File Email|Delete Log File When..."
4327
+ msgstr ""
4328
+
4329
+ #: admin/email-log-settings/email-log-settings.php:115
4330
+ msgid ""
4331
+ "Select the maximum Log File size that you want to allow for your DB Backup "
4332
+ "Log File and then select the option that you want when your log file reaches "
4333
+ "that maximum size. Choose to either automatically Email the Log file to you "
4334
+ "and delete it or just delete it without emailing the log file to you first."
4335
+ msgstr ""
4336
+
4337
+ #: admin/email-log-settings/email-log-settings.php:127
4338
+ msgid "Send Email Alerts & Log Files To:"
4339
+ msgstr ""
4340
+
4341
+ #: admin/email-log-settings/email-log-settings.php:131
4342
+ msgid "Send Email Alerts & Log Files From:"
4343
+ msgstr ""
4344
+
4345
+ #: admin/email-log-settings/email-log-settings.php:135
4346
+ msgid "Send Email Alerts & Log Files Cc:"
4347
+ msgstr ""
4348
+
4349
+ #: admin/email-log-settings/email-log-settings.php:139
4350
+ msgid "Send Email Alerts & Log Files Bcc:"
4351
+ msgstr ""
4352
+
4353
+ #: admin/email-log-settings/email-log-settings.php:147
4354
+ msgid "Login Security: Send Login Security Email Alert When..."
4355
+ msgstr ""
4356
+
4357
+ #: admin/email-log-settings/email-log-settings.php:149
4358
+ msgid "A User Account Is Locked Out"
4359
+ msgstr ""
4360
+
4361
+ #: admin/email-log-settings/email-log-settings.php:150
4362
+ msgid "An Administrator Logs In"
4363
+ msgstr ""
4364
+
4365
+ #: admin/email-log-settings/email-log-settings.php:151
4366
+ msgid "An Administrator Logs In & A User Account is Locked Out"
4367
+ msgstr ""
4368
+
4369
+ #: admin/email-log-settings/email-log-settings.php:152
4370
+ msgid "Any User Logs In & A User Account is Locked Out"
4371
+ msgstr ""
4372
+
4373
+ #: admin/email-log-settings/email-log-settings.php:153
4374
+ msgid "Do Not Send Email Alerts"
4375
+ msgstr ""
4376
+
4377
+ #: admin/email-log-settings/email-log-settings.php:157
4378
+ msgid "Security Log: Email|Delete Security Log File When..."
4379
+ msgstr ""
4380
+
4381
+ #: admin/email-log-settings/email-log-settings.php:159
4382
+ #: admin/email-log-settings/email-log-settings.php:171
4383
+ #: admin/email-log-settings/email-log-settings.php:183
4384
+ msgid "500KB"
4385
+ msgstr ""
4386
+
4387
+ #: admin/email-log-settings/email-log-settings.php:160
4388
+ #: admin/email-log-settings/email-log-settings.php:172
4389
+ #: admin/email-log-settings/email-log-settings.php:184
4390
+ msgid "256KB"
4391
+ msgstr ""
4392
+
4393
+ #: admin/email-log-settings/email-log-settings.php:161
4394
+ #: admin/email-log-settings/email-log-settings.php:173
4395
+ #: admin/email-log-settings/email-log-settings.php:185
4396
+ msgid "1MB"
4397
+ msgstr ""
4398
+
4399
+ #: admin/email-log-settings/email-log-settings.php:164
4400
+ #: admin/email-log-settings/email-log-settings.php:176
4401
+ #: admin/email-log-settings/email-log-settings.php:188
4402
+ msgid "Email Log & Then Delete Log File"
4403
+ msgstr ""
4404
+
4405
+ #: admin/email-log-settings/email-log-settings.php:165
4406
+ #: admin/email-log-settings/email-log-settings.php:177
4407
+ #: admin/email-log-settings/email-log-settings.php:189
4408
+ msgid "Delete Log File"
4409
+ msgstr ""
4410
+
4411
+ #: admin/email-log-settings/email-log-settings.php:169
4412
+ msgid "DB Backup Log: Email|Delete DB Backup Log File When..."
4413
+ msgstr ""
4414
+
4415
+ #: admin/email-log-settings/email-log-settings.php:181
4416
+ msgid "MScan Malware Scanner Email|Delete Log File When..."
4417
+ msgstr ""
4418
+
4419
+ #: admin/email-log-settings/email-log-settings.php:216
4420
+ #: admin/login/login.php:1352 admin/security-log/security-log.php:801
4421
+ #: admin/system-info/system-info.php:1131
4422
+ msgid "BulletProof Security Help &amp; FAQ"
4423
+ msgstr ""
4424
+
4425
+ #: admin/includes/admin.php:285
4426
  msgid "BulletProof Security Settings"
4427
  msgstr ""
4428
 
4429
+ #: admin/includes/admin.php:285 admin/includes/admin.php:300
4430
  msgid "BPS Security"
4431
  msgstr ""
4432
 
4433
+ #: admin/includes/admin.php:286 admin/includes/admin.php:303
4434
  msgid "Login Security"
4435
  msgstr ""
4436
 
4437
+ #: admin/includes/admin.php:292 admin/includes/admin.php:313
4438
  #: admin/maintenance/maintenance.php:163 admin/maintenance/maintenance.php:195
4439
  #: admin/maintenance/maintenance.php:197
4440
  msgid "Maintenance Mode"
4441
  msgstr ""
4442
 
4443
+ #: admin/includes/admin.php:295 admin/includes/admin.php:316
4444
  #: admin/system-info/system-info.php:88
4445
  msgid "System Info"
4446
  msgstr ""
4447
 
4448
+ #: admin/includes/admin.php:296 admin/includes/admin.php:318
4449
  #: admin/theme-skin/theme-skin.php:91 admin/theme-skin/theme-skin.php:107
4450
  #: admin/theme-skin/theme-skin.php:109
4451
  msgid "UI|UX Settings"
4452
  msgstr ""
4453
 
4454
+ #: admin/includes/admin.php:301
4455
  msgid "htaccess Core"
4456
  msgstr ""
4457
 
4458
+ #: admin/includes/admin.php:302
4459
+ msgid "MScan ~ Malware Scanner"
4460
+ msgstr ""
4461
+
4462
+ #: admin/includes/admin.php:302 admin/mscan/mscan.php:88
4463
+ #: admin/mscan/mscan.php:104 admin/mscan/mscan.php:106
4464
+ msgid "MScan"
4465
+ msgstr ""
4466
+
4467
+ #: admin/includes/admin.php:303 admin/includes/admin.php:304
4468
+ #: admin/includes/admin.php:305
4469
+ msgid "Login Security ~ JTC-Lite ~ ISL ~ ACE"
4470
+ msgstr ""
4471
+
4472
+ #: admin/includes/admin.php:304 admin/login/login.php:158
4473
+ #: admin/login/login.php:806 admin/login/login.php:808
4474
+ msgid "JTC-Lite"
4475
  msgstr ""
4476
 
4477
+ #: admin/includes/admin.php:305
4478
  msgid "Idle Session Logout<br>Cookie Expiration"
4479
  msgstr ""
4480
 
4481
+ #: admin/includes/admin.php:306
4482
  msgid "DB Backup & Security"
4483
  msgstr ""
4484
 
4485
+ #: admin/includes/admin.php:307 admin/security-log/security-log.php:226
4486
  #: admin/security-log/security-log.php:241
4487
  #: admin/security-log/security-log.php:243
4488
  msgid "Security Log"
4489
  msgstr ""
4490
 
4491
+ #: admin/includes/admin.php:319 admin/wizard/wizard.php:974
4492
+ #: admin/wizard/wizard.php:1004 admin/wizard/wizard.php:1006
4493
+ #: bulletproof-security.php:100 bulletproof-security.php:103
4494
  msgid "Setup Wizard"
4495
  msgstr ""
4496
 
4497
+ #: admin/includes/admin.php:322 admin/includes/admin.php:330
4498
  #: admin/includes/uninstall.php:45
4499
  msgid "BPS Plugin Uninstall Options"
4500
  msgstr ""
4501
 
4502
+ #: admin/includes/admin.php:365
4503
  msgid "BPS UI|UX Debug: SLF css Scripts Nulled"
4504
  msgstr ""
4505
 
4506
+ #: admin/includes/admin.php:372
4507
  msgid "BPS UI|UX Debug: SLF css Scripts Not Nulled|Allowed"
4508
  msgstr ""
4509
 
4510
+ #: admin/includes/admin.php:401
4511
  msgid "BPS UI|UX Debug: SLF js Scripts Nulled"
4512
  msgstr ""
4513
 
4514
+ #: admin/includes/admin.php:408
4515
  msgid "BPS UI|UX Debug: SLF js Scripts Not Nulled|Allowed"
4516
  msgstr ""
4517
 
4518
+ #: admin/includes/admin.php:484
4519
  msgid "BPS UI|UX Debug: Scripts|Styles Dequeued"
4520
  msgstr ""
4521
 
4522
+ #: admin/includes/admin.php:496
4523
  msgid "Script Dequeued: "
4524
  msgstr ""
4525
 
4526
+ #: admin/includes/admin.php:502
4527
  msgid ""
4528
  "No plugin or theme Scripts were Dequeued (prevented) from loading in BPS "
4529
  "plugin pages"
4530
  msgstr ""
4531
 
4532
+ #: admin/includes/admin.php:514
4533
  msgid "Style Dequeued: "
4534
  msgstr ""
4535
 
4536
+ #: admin/includes/admin.php:520
4537
  msgid ""
4538
  "No plugin or theme Styles were Dequeued (prevented) from loading in BPS "
4539
  "plugin pages"
4540
  msgstr ""
4541
 
4542
+ #: admin/includes/admin.php:558 admin/includes/admin.php:591
4543
  msgid "BPS UI|UX Debug: WP Toolbar nodes|menu items Removed"
4544
  msgstr ""
4545
 
4546
+ #: admin/includes/admin.php:570 admin/includes/admin.php:603
4547
  msgid "WP Toolbar node|menu item Removed: "
4548
  msgstr ""
4549
 
4550
+ #: admin/includes/admin.php:578 admin/includes/admin.php:611
4551
  msgid "No WP Toolbar nodes|menu items were Removed in BPS plugin pages"
4552
  msgstr ""
4553
 
4587
  msgid "BulletProof Security ~ Login Security & Monitoring"
4588
  msgstr ""
4589
 
4590
+ #: admin/login/login.php:157 admin/login/login.php:187
4591
+ #: admin/login/login.php:189
4592
  msgid "Login Security & Monitoring"
4593
  msgstr ""
4594
 
4595
+ #: admin/login/login.php:162 admin/login/login.php:991
4596
+ #: admin/login/login.php:993
4597
  msgid "Idle Session Logout|Auth Cookie Expiration"
4598
  msgstr ""
4599
 
4600
+ #: admin/login/login.php:173 admin/login/login.php:792
4601
+ #: admin/maintenance/maintenance.php:173
4602
  msgid "Notice: "
4603
  msgstr ""
4604
 
4605
+ #: admin/login/login.php:173 admin/maintenance/maintenance.php:173
4606
  msgid "You have disabled wp-admin BulletProof Mode on the Security Modes page."
4607
  msgstr ""
4608
 
4609
+ #: admin/login/login.php:173 admin/login/login.php:792
4610
+ #: admin/maintenance/maintenance.php:173
4611
  msgid "If you have Go Daddy \"Managed WordPress Hosting\" click this link: "
4612
  msgstr ""
4613
 
4614
+ #: admin/login/login.php:173 admin/login/login.php:792
4615
+ #: admin/maintenance/maintenance.php:173
4616
  msgid "Go Daddy Managed WordPress Hosting"
4617
  msgstr ""
4618
 
4619
+ #: admin/login/login.php:181
4620
  msgid "Login Security & Monitoring (LSM) ~ "
4621
  msgstr ""
4622
 
4623
+ #: admin/login/login.php:181
4624
  msgid ""
4625
  "Log All Account Logins or Log Only Account Lockouts ~ Brute Force Login "
4626
  "Protection"
4627
  msgstr ""
4628
 
4629
+ #: admin/login/login.php:181
4630
  msgid ""
4631
  "Protect against SpamBot & HackerBot (auto-registering, auto-logins, auto-"
4632
  "posting, auto-commenting) & User Account Lockouts: "
4633
  msgstr ""
4634
 
4635
+ #: admin/login/login.php:209
4636
  msgid "Max Login Attempts:"
4637
  msgstr ""
4638
 
4639
+ #: admin/login/login.php:214
4640
  msgid "Automatic Lockout Time:"
4641
  msgstr ""
4642
 
4643
+ #: admin/login/login.php:216 admin/login/login.php:221
4644
  msgid "Minutes"
4645
  msgstr ""
4646
 
4647
+ #: admin/login/login.php:219
4648
  msgid "Manual Lockout Time:"
4649
  msgstr ""
4650
 
4651
+ #: admin/login/login.php:224
4652
  msgid "Max DB Rows To Show:"
4653
  msgstr ""
4654
 
4655
+ #: admin/login/login.php:226
4656
  msgid "Blank = Show All Rows"
4657
  msgstr ""
4658
 
4659
+ #: admin/login/login.php:231
4660
+ msgid " Enable Login Security for WooCommerce (BPS Pro Only)"
4661
  msgstr ""
4662
 
4663
+ #: admin/login/login.php:236 admin/login/login.php:1100
4664
+ #: admin/login/login.php:1270 admin/login/lsm-help-text.php:22
4665
  msgid "Turn On|Turn Off:"
4666
  msgstr ""
4667
 
4668
+ #: admin/login/login.php:238
4669
  msgid "Login Security On"
4670
  msgstr ""
4671
 
4672
+ #: admin/login/login.php:239
4673
  msgid "Login Security Off"
4674
  msgstr ""
4675
 
4676
+ #: admin/login/login.php:240
4677
  msgid "Login Security Off|Use Password Reset Option ONLY"
4678
  msgstr ""
4679
 
4680
+ #: admin/login/login.php:245
4681
  msgid "Logging Options:"
4682
  msgstr ""
4683
 
4684
+ #: admin/login/login.php:247
4685
  msgid "Log Only Account Lockouts"
4686
  msgstr ""
4687
 
4688
+ #: admin/login/login.php:248
4689
  msgid "Log All Account Logins"
4690
  msgstr ""
4691
 
4692
+ #: admin/login/login.php:253
4693
  msgid "Error Messages:"
4694
  msgstr ""
4695
 
4696
+ #: admin/login/login.php:255
4697
  msgid "Standard WP Login Errors"
4698
  msgstr ""
4699
 
4700
+ #: admin/login/login.php:256
4701
  msgid "User|Pass Invalid Entry Error"
4702
  msgstr ""
4703
 
4704
+ #: admin/login/login.php:257
4705
  msgid "User|Pass|Lock Invalid Entry Error"
4706
  msgstr ""
4707
 
4708
+ #: admin/login/login.php:262
4709
  msgid "Attempts Remaining:"
4710
  msgstr ""
4711
 
4712
+ #: admin/login/login.php:264
4713
  msgid "Show Login Attempts Remaining"
4714
  msgstr ""
4715
 
4716
+ #: admin/login/login.php:265
4717
  msgid "Do Not Show Login Attempts Remaining"
4718
  msgstr ""
4719
 
4720
+ #: admin/login/login.php:270
4721
  msgid "Password Reset:"
4722
  msgstr ""
4723
 
4724
+ #: admin/login/login.php:272
4725
  msgid "Enable Password Reset"
4726
  msgstr ""
4727
 
4728
+ #: admin/login/login.php:273
4729
  msgid "Disable Password Reset Frontend Only"
4730
  msgstr ""
4731
 
4732
+ #: admin/login/login.php:274
4733
  msgid "Disable Password Reset Frontend & Backend"
4734
  msgstr ""
4735
 
4736
+ #: admin/login/login.php:279
4737
  msgid "Sort DB Rows:"
4738
  msgstr ""
4739
 
4740
+ #: admin/login/login.php:281
4741
  msgid "Ascending - Show Oldest Login First"
4742
  msgstr ""
4743
 
4744
+ #: admin/login/login.php:282
4745
  msgid "Descending - Show Newest Login First"
4746
  msgstr ""
4747
 
4748
+ #: admin/login/login.php:295
4749
  msgid ""
4750
  "Clicking OK will Export (copy) the Login Security Table into the lsm-master."
4751
  "csv file, which you can then download to your computer by clicking the "
4753
  "success message."
4754
  msgstr ""
4755
 
4756
+ #: admin/login/login.php:295
4757
  msgid "Click OK to Export the Login Security Table or click Cancel."
4758
  msgstr ""
4759
 
4760
+ #: admin/login/login.php:323
4761
  msgid " out of "
4762
  msgstr ""
4763
 
4764
+ #: admin/login/login.php:323
4765
  msgid " Database Rows are currently being displayed"
4766
  msgstr ""
4767
 
4768
+ #: admin/login/login.php:326
4769
  msgid "Total number of Database Rows is: "
4770
  msgstr ""
4771
 
4772
+ #: admin/login/login.php:352 admin/login/login.php:453
4773
  msgid "Login Status"
4774
  msgstr ""
4775
 
4776
+ #: admin/login/login.php:353 admin/login/login.php:382
4777
+ #: admin/login/login.php:454 admin/login/login.php:483
4778
  msgid "Lock"
4779
  msgstr ""
4780
 
4781
+ #: admin/login/login.php:354 admin/login/login.php:383
4782
+ #: admin/login/login.php:455 admin/login/login.php:484
4783
  msgid "Unlock"
4784
  msgstr ""
4785
 
4786
+ #: admin/login/login.php:356 admin/login/login.php:457
4787
  msgid "User ID"
4788
  msgstr ""
4789
 
4790
+ #: admin/login/login.php:357 admin/login/login.php:458
4791
  msgid "Username"
4792
  msgstr ""
4793
 
4794
+ #: admin/login/login.php:358 admin/login/login.php:459
4795
  msgid "Display Name"
4796
  msgstr ""
4797
 
4798
+ #: admin/login/login.php:359 admin/login/login.php:460
4799
  msgid "Email"
4800
  msgstr ""
4801
 
4802
+ #: admin/login/login.php:360 admin/login/login.php:461
4803
  msgid "Role"
4804
  msgstr ""
4805
 
4806
+ #: admin/login/login.php:361 admin/login/login.php:462
4807
  msgid "Login Time"
4808
  msgstr ""
4809
 
4810
+ #: admin/login/login.php:362 admin/login/login.php:463
4811
  msgid "Lockout Expires"
4812
  msgstr ""
4813
 
4814
+ #: admin/login/login.php:363 admin/login/login.php:464
4815
  msgid "IP Address"
4816
  msgstr ""
4817
 
4818
+ #: admin/login/login.php:364 admin/login/login.php:465
4819
  msgid "Hostname"
4820
  msgstr ""
4821
 
4822
+ #: admin/login/login.php:365 admin/login/login.php:466
4823
  msgid "Request URI"
4824
  msgstr ""
4825
 
4826
+ #: admin/login/login.php:393 admin/login/login.php:494
4827
  msgid "NA"
4828
  msgstr ""
4829
 
4830
+ #: admin/login/login.php:405 admin/login/login.php:506
4831
  msgid "No Logins|Locked"
4832
  msgstr ""
4833
 
4834
+ #: admin/login/login.php:422 admin/login/login.php:523
4835
+ #: admin/login/login.php:588 admin/login/login.php:688
4836
+ #: admin/mscan/mscan.php:1129 admin/mscan/mscan.php:1341
4837
+ #: admin/mscan/mscan.php:1463 admin/mscan/mscan.php:1619
4838
  msgid "Submit"
4839
  msgstr ""
4840
 
4841
+ #: admin/login/login.php:422 admin/login/login.php:523
4842
  msgid ""
4843
  "Locking and Unlocking a User is reversible, but Deleting a User is not.\\n"
4844
  "\\n-------------------------------------------------------------\\n\\nWhen "
4851
  "OK to proceed or click Cancel"
4852
  msgstr ""
4853
 
4854
+ #: admin/login/login.php:422 admin/login/login.php:523
4855
+ #: admin/mscan/mscan.php:1342 admin/mscan/mscan.php:1620
4856
  msgid "Clear|Refresh"
4857
  msgstr ""
4858
 
4859
+ #: admin/login/login.php:622 admin/login/login.php:722
4860
  msgid " has been deleted from the Login Security Database Table."
4861
  msgstr ""
4862
 
4863
+ #: admin/login/login.php:645 admin/login/login.php:745
4864
  msgid " has been Unlocked."
4865
  msgstr ""
4866
 
4867
+ #: admin/login/login.php:669 admin/login/login.php:769
4868
  msgid " has been Locked."
4869
  msgstr ""
4870
 
4871
+ #: admin/login/login.php:792
4872
+ msgid ""
4873
+ "The Setup Wizard Go Daddy \"Managed WordPress Hosting\" option is set to Yes."
4874
  msgstr ""
4875
 
4876
+ #: admin/login/login.php:792
4877
+ msgid ""
4878
+ "If you do not have Go Daddy \"Managed WordPress Hosting\" then change the Go "
4879
+ "Daddy \"Managed WordPress Hosting\" Setup Wizard option to No."
4880
  msgstr ""
4881
 
4882
+ #: admin/login/login.php:800
4883
+ msgid "jQuery ToolTip CAPTCHA-Lite (JTC-Lite) ~ "
4884
  msgstr ""
4885
 
4886
+ #: admin/login/login.php:800
4887
+ msgid ""
4888
+ "Protects the WP Login Form against constant lockouts by Bots trying to Brute "
4889
+ "Force Login to your website"
4890
  msgstr ""
4891
 
4892
+ #: admin/login/login.php:800
4893
+ msgid ""
4894
+ "Get the full version of JTC Anti-Spam|Anti-Hacker that protects all of your "
4895
+ "WP Forms"
4896
  msgstr ""
4897
 
4898
+ #: admin/login/login.php:800
4899
+ msgid ""
4900
+ "against SpamBots & HackerBots (auto-registering, auto-logins, auto-posting, "
4901
+ "auto-commenting) & User Account Lockouts: "
4902
  msgstr ""
4903
 
4904
+ #: admin/login/login.php:826 admin/login/login.php:1031
4905
+ #: admin/login/login.php:1212
4906
  msgid "Save Options"
4907
  msgstr ""
4908
 
4909
+ #: admin/login/login.php:873
4910
+ msgid "JTC-Lite Settings Saved."
4911
  msgstr ""
4912
 
4913
+ #: admin/login/login.php:887
4914
+ msgid "JTC-Lite Settings"
4915
  msgstr ""
4916
 
4917
+ #: admin/login/login.php:891
4918
+ msgid "JTC CAPTCHA:"
4919
  msgstr ""
4920
 
4921
+ #: admin/login/login.php:893
4922
+ msgid "jtc"
4923
+ msgstr ""
4924
+
4925
+ #: admin/login/login.php:896
4926
+ msgid "JTC ToolTip:"
4927
+ msgstr ""
4928
+
4929
+ #: admin/login/login.php:898
4930
+ msgid "Type/Enter: jtc"
4931
+ msgstr ""
4932
+
4933
+ #: admin/login/login.php:901
4934
+ msgid "JTC Title|Text:"
4935
+ msgstr ""
4936
+
4937
+ #: admin/login/login.php:903
4938
+ msgid "Enter a blank space for no text"
4939
+ msgstr ""
4940
+
4941
+ #: admin/login/login.php:910
4942
+ msgid "JTC Logging:"
4943
+ msgstr ""
4944
+
4945
+ #: admin/login/login.php:912
4946
+ msgid "JTC Logging Off"
4947
+ msgstr ""
4948
+
4949
+ #: admin/login/login.php:915
4950
+ msgid "Logged in the Security Log (BPS Pro Only)"
4951
+ msgstr ""
4952
+
4953
+ #: admin/login/login.php:923
4954
+ msgid " Enable JTC for WooCommerce (BPS Pro Only)"
4955
+ msgstr ""
4956
+
4957
+ #: admin/login/login.php:926
4958
+ msgid "Enable|Disable JTC For These Forms: "
4959
+ msgstr ""
4960
+
4961
+ #: admin/login/login.php:927 admin/login/login.php:937
4962
+ msgid "Check to Enable. Uncheck to Disable."
4963
+ msgstr ""
4964
+
4965
+ #: admin/login/login.php:928
4966
+ msgid " Login Form"
4967
+ msgstr ""
4968
+
4969
+ #: admin/login/login.php:929
4970
+ msgid " Register Form (BPS Pro Only)"
4971
+ msgstr ""
4972
+
4973
+ #: admin/login/login.php:930
4974
+ msgid " Lost Password Form (BPS Pro Only)"
4975
+ msgstr ""
4976
+
4977
+ #: admin/login/login.php:931
4978
+ msgid " Comment Form (BPS Pro Only)"
4979
+ msgstr ""
4980
+
4981
+ #: admin/login/login.php:932
4982
+ msgid " BuddyPress Register Form (BPS Pro Only)"
4983
+ msgstr ""
4984
+
4985
+ #: admin/login/login.php:933
4986
+ msgid " BuddyPress Sidebar Login Form (BPS Pro Only)"
4987
+ msgstr ""
4988
+
4989
+ #: admin/login/login.php:935
4990
+ msgid "Comment Form: (BPS Pro Only)"
4991
+ msgstr ""
4992
+
4993
+ #: admin/login/login.php:936
4994
+ msgid ""
4995
+ "Enable|Disable JTC For These Registered/Logged In User Roles (BPS Pro Only): "
4996
+ msgstr ""
4997
+
4998
+ #: admin/login/login.php:939 admin/login/login.php:1163
4999
+ #: admin/login/login.php:1311
5000
+ msgid " Administrator"
5001
+ msgstr ""
5002
+
5003
+ #: admin/login/login.php:940 admin/login/login.php:1164
5004
+ #: admin/login/login.php:1312
5005
+ msgid " Editor"
5006
+ msgstr ""
5007
+
5008
+ #: admin/login/login.php:941 admin/login/login.php:1165
5009
+ #: admin/login/login.php:1313
5010
+ msgid " Author"
5011
+ msgstr ""
5012
+
5013
+ #: admin/login/login.php:942 admin/login/login.php:1166
5014
+ #: admin/login/login.php:1314
5015
+ msgid " Contributor"
5016
+ msgstr ""
5017
+
5018
+ #: admin/login/login.php:943 admin/login/login.php:1167
5019
+ #: admin/login/login.php:1315
5020
+ msgid " Subscriber"
5021
+ msgstr ""
5022
+
5023
+ #: admin/login/login.php:959
5024
+ msgid "Comment Form: CAPTCHA Error message (BPS Pro Only)"
5025
+ msgstr ""
5026
+
5027
+ #: admin/login/login.php:962 admin/login/lsm-help-text.php:19
5028
+ msgid "Comment Form: CSS Styling (BPS Pro Only)"
5029
+ msgstr ""
5030
+
5031
+ #: admin/login/login.php:963
5032
+ msgid ""
5033
+ "Comment Form Label (BPS Pro Only): <i>The JTC Title|Text above the Form "
5034
+ "Input text box</i>"
5035
+ msgstr ""
5036
+
5037
+ #: admin/login/login.php:965
5038
+ msgid ""
5039
+ "Comment Form Input Text Box (BPS Pro Only): <i>The JTC CAPTCHA Form Input "
5040
+ "text box</i>"
5041
  msgstr ""
5042
 
5043
+ #: admin/login/login.php:968 admin/login/login.php:1190
5044
+ #: admin/login/login.php:1330 admin/security-log/security-log.php:453
5045
+ msgid "Click OK to Proceed or click Cancel."
5046
+ msgstr ""
5047
+
5048
+ #: admin/login/login.php:986
5049
+ msgid "Idle Session Logout (ISL) ~ "
5050
+ msgstr ""
5051
+
5052
+ #: admin/login/login.php:986
5053
+ msgid "Automatically Logout Idle/Inactive User Accounts"
5054
+ msgstr ""
5055
+
5056
+ #: admin/login/login.php:986
5057
+ msgid "Auth Cookie Expiration (ACE) ~ "
5058
+ msgstr ""
5059
+
5060
+ #: admin/login/login.php:986
5061
+ msgid "Change the WordPress Authentication Cookie Expiration Time"
5062
+ msgstr ""
5063
+
5064
+ #: admin/login/login.php:1007
5065
+ msgid "ISL and ACE Forum Topic"
5066
+ msgstr ""
5067
+
5068
+ #: admin/login/login.php:1011
5069
+ msgid "The Help & FAQ tab pages contain help links."
5070
+ msgstr ""
5071
+
5072
+ #: admin/login/login.php:1077
5073
+ msgid "Settings Saved. ISL has been turned On."
5074
+ msgstr ""
5075
+
5076
+ #: admin/login/login.php:1083
5077
+ msgid "Settings Saved. ISL has been turned Off."
5078
+ msgstr ""
5079
+
5080
+ #: admin/login/login.php:1095
5081
+ msgid "Idle Session Logout (ISL) Settings"
5082
+ msgstr ""
5083
+
5084
+ #: admin/login/login.php:1102
5085
+ msgid "ISL On"
5086
+ msgstr ""
5087
+
5088
+ #: admin/login/login.php:1103
5089
  msgid "ISL Off"
5090
  msgstr ""
5091
 
5092
+ #: admin/login/login.php:1109 admin/login/lsm-help-text.php:22
5093
  msgid "Idle Session Logout Time in Minutes:"
5094
  msgstr ""
5095
 
5096
+ #: admin/login/login.php:1115 admin/login/lsm-help-text.php:22
5097
  msgid "Idle Session Logout Page URL:"
5098
  msgstr ""
5099
 
5100
+ #: admin/login/login.php:1121 admin/login/lsm-help-text.php:22
5101
  msgid "Idle Session Logout Page Login URL:"
5102
  msgstr ""
5103
 
5104
+ #: admin/login/login.php:1122
5105
  msgid ""
5106
  "Enter/Type: \"No\" (without quotes) if you do not want a Login URL displayed."
5107
  msgstr ""
5108
 
5109
+ #: admin/login/login.php:1128 admin/login/lsm-help-text.php:22
5110
  msgid "Idle Session Logout Exclude URLs|URIs:"
5111
  msgstr ""
5112
 
5113
+ #: admin/login/login.php:1129
5114
  msgid "Enter URIs separated by a comma and a space: /some-post/, /some-page/"
5115
  msgstr ""
5116
 
5117
+ #: admin/login/login.php:1136 admin/login/lsm-help-text.php:22
5118
  msgid "Idle Session Logout Page Custom Message:"
5119
  msgstr ""
5120
 
5121
+ #: admin/login/login.php:1143 admin/login/lsm-help-text.php:22
5122
  msgid "Idle Session Logout Page Custom CSS Style:"
5123
  msgstr ""
5124
 
5125
+ #: admin/login/login.php:1152 admin/login/login.php:1300
5126
+ #: admin/login/lsm-help-text.php:22
5127
  msgid "User Account Exceptions:"
5128
  msgstr ""
5129
 
5130
+ #: admin/login/login.php:1153 admin/login/login.php:1301
5131
  msgid ""
5132
  "Enter User Account names separated by a comma and a space: johnDoe, janeDoe"
5133
  msgstr ""
5134
 
5135
+ #: admin/login/login.php:1154
5136
  msgid "Idle Session Logout Time Will Not Be Applied For These User Accounts."
5137
  msgstr ""
5138
 
5139
+ #: admin/login/login.php:1160
5140
  msgid "Enable|Disable Idle Session Logouts For These User Roles: "
5141
  msgstr ""
5142
 
5143
+ #: admin/login/login.php:1161 admin/login/login.php:1309
5144
  msgid ""
5145
  "Check to Enable. Uncheck to Disable. See the Read Me help button for details."
5146
  msgstr ""
5147
 
5148
+ #: admin/login/login.php:1186
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5149
  msgid "Enable|Disable Idle Session Logouts For TinyMCE Editors: "
5150
  msgstr ""
5151
 
5152
+ #: admin/login/login.php:1187 admin/login/login.php:1294
5153
  msgid ""
5154
  "Check to Disable. Uncheck to Enable. See the Read Me help button for details."
5155
  msgstr ""
5156
 
5157
+ #: admin/login/login.php:1188
5158
  msgid " Enable|Disable ISL For TinyMCE Editor"
5159
  msgstr ""
5160
 
5161
+ #: admin/login/login.php:1200
 
 
 
 
 
5162
  msgid "WordPress Authentication Cookie Expiration (ACE) Settings"
5163
  msgstr ""
5164
 
5165
+ #: admin/login/login.php:1251
5166
  msgid "Settings Saved. ACE has been turned On."
5167
  msgstr ""
5168
 
5169
+ #: admin/login/login.php:1257
5170
  msgid "Settings Saved. ACE has been turned Off."
5171
  msgstr ""
5172
 
5173
+ #: admin/login/login.php:1272
5174
  msgid "ACE On"
5175
  msgstr ""
5176
 
5177
+ #: admin/login/login.php:1273
5178
  msgid "ACE Off"
5179
  msgstr ""
5180
 
5181
+ #: admin/login/login.php:1279 admin/login/lsm-help-text.php:22
5182
  msgid "Auth Cookie Expiration Time in Minutes:"
5183
  msgstr ""
5184
 
5185
+ #: admin/login/login.php:1280
5186
  msgid "WP Default setting is 2880 Minutes/2 Days:"
5187
  msgstr ""
5188
 
5189
+ #: admin/login/login.php:1286 admin/login/lsm-help-text.php:22
5190
  msgid "Remember Me Auth Cookie Expiration Time in Minutes:"
5191
  msgstr ""
5192
 
5193
+ #: admin/login/login.php:1287
5194
  msgid "WP Default setting is 20160 Minutes/14 Days:"
5195
  msgstr ""
5196
 
5197
+ #: admin/login/login.php:1293 admin/login/lsm-help-text.php:22
5198
  msgid "Enable|Disable Remember Me Checkbox:"
5199
  msgstr ""
5200
 
5201
+ #: admin/login/login.php:1295
5202
  msgid " Disable & do not display the Remember Me checkbox"
5203
  msgstr ""
5204
 
5205
+ #: admin/login/login.php:1302
5206
  msgid "Auth Cookie Expiration Time Will Not Be Applied To These User Accounts."
5207
  msgstr ""
5208
 
5209
+ #: admin/login/login.php:1308
5210
  msgid "Enable|Disable Auth Cookie Expiration Time For These User Roles: "
5211
  msgstr ""
5212
 
 
 
 
 
 
5213
  #: admin/login/lsm-export.php:49
5214
  msgid ""
5215
  "The Login Security Table was exported successfully. Click the Download Zip "
5243
  "Account."
5244
  msgstr ""
5245
 
5246
+ #: admin/login/lsm-help-text.php:10
5247
+ msgid ""
5248
+ "Login Security Email Alert and Log file option settings are on the Email|Log "
5249
+ "Settings page."
5250
+ msgstr ""
5251
+
5252
  #: admin/login/lsm-help-text.php:10
5253
  msgid "Max Login Attempts: "
5254
  msgstr ""
5305
  msgstr ""
5306
 
5307
  #: admin/login/lsm-help-text.php:10
5308
+ msgid "Enable Login Security for WooCommerce (BPS Pro Only):"
5309
  msgstr ""
5310
 
5311
  #: admin/login/lsm-help-text.php:10
5506
  "page and delete that User Account."
5507
  msgstr ""
5508
 
5509
+ #: admin/login/lsm-help-text.php:15
5510
+ msgid "JTC Logging (BPS Pro Only): "
5511
+ msgstr ""
5512
+
5513
+ #: admin/login/lsm-help-text.php:15
5514
+ msgid ""
5515
+ "Turn On or Turn Off JTC logging. JTC log entries are logged in the BPS Pro "
5516
+ "Security Log file. The JTC log entries include the Form name for whichever "
5517
+ "Form the CAPTCHA was not successfully entered, CAPTCHA value that was "
5518
+ "entered, BOT/HUMAN value, Username/Display Name (Comment Form only) and all "
5519
+ "the other standard Security Log entry values/fields."
5520
+ msgstr ""
5521
+
5522
+ #: admin/login/lsm-help-text.php:19
5523
+ msgid ""
5524
+ "If you forget what the CAPTCHA is and cannot login to your website use FTP "
5525
+ "or your web host control panel file manager and rename the /bulletproof-"
5526
+ "security/ plugin folder name to /_bulletproof-security/. Login to your "
5527
+ "website, go to the BPS JTC-Lite page and correct the CAPTCHA issue/problem. "
5528
+ "Rename the /_bulletproof-security/ plugin folder name back to /bulletproof-"
5529
+ "security/."
5530
+ msgstr ""
5531
+
5532
+ #: admin/login/lsm-help-text.php:19
5533
+ msgid "JTC-Lite Manual Setup Steps"
5534
+ msgstr ""
5535
+
5536
+ #: admin/login/lsm-help-text.php:19
5537
+ msgid "1. Enter a user friendly CAPTCHA in the JTC CAPTCHA text box."
5538
+ msgstr ""
5539
+
5540
+ #: admin/login/lsm-help-text.php:19
5541
+ msgid ""
5542
+ "2. Copy and paste the CAPTCHA you entered in the JTC CAPTCHA text box into "
5543
+ "the JTC ToolTip text box."
5544
+ msgstr ""
5545
+
5546
+ #: admin/login/lsm-help-text.php:19
5547
+ msgid ""
5548
+ "3. Either keep this default text \"Hover or click the text box below\" that "
5549
+ "will be displayed on all your forms or edit this text and add the message "
5550
+ "you want to add."
5551
+ msgstr ""
5552
+
5553
+ #: admin/login/lsm-help-text.php:19
5554
+ msgid "4. Check the Login Form checkbox and click the Save Options button."
5555
+ msgstr ""
5556
+
5557
+ #: admin/login/lsm-help-text.php:19
5558
+ msgid "General Info about JTC-Lite"
5559
+ msgstr ""
5560
+
5561
+ #: admin/login/lsm-help-text.php:19
5562
+ msgid ""
5563
+ "JTC-Lite protects the WordPress Login form against automated SpamBot and "
5564
+ "HackerBot Brute Force Login attacks. Prevents User Accounts from being "
5565
+ "locked repeatedly by constant Brute Force Login attacks on your Login page. "
5566
+ "If you would like to protect all of your WordPress forms get the full "
5567
+ "version of JTC - BPS Pro JTC Anti-Spam|Anti-Hacker."
5568
+ msgstr ""
5569
+
5570
+ #: admin/login/lsm-help-text.php:19
5571
+ msgid "JTC CAPTCHA: "
5572
+ msgstr ""
5573
+
5574
+ #: admin/login/lsm-help-text.php:19
5575
+ msgid ""
5576
+ "This is the CAPTCHA that users will enter to Login to your website. You can "
5577
+ "use any numbers or characters and spaces in the CAPTCHA. You can even use "
5578
+ "HTML code characters except for these HTML code characters: < > ' \" &. You "
5579
+ "can use a phrase for the CAPTCHA or it can be a single word or you can use "
5580
+ "your own original combination of words, numbers and HTML characters."
5581
+ msgstr ""
5582
+
5583
+ #: admin/login/lsm-help-text.php:19
5584
+ msgid ""
5585
+ "It is recommended that you make your CAPTCHA user friendly, simple, clear "
5586
+ "and easy to understand for your users."
5587
+ msgstr ""
5588
+
5589
+ #: admin/login/lsm-help-text.php:19
5590
+ msgid "JTC ToolTip: "
5591
+ msgstr ""
5592
+
5593
+ #: admin/login/lsm-help-text.php:19
5594
+ msgid ""
5595
+ "This is the jQuery ToolTip message that is displayed to users when they "
5596
+ "hover or click on the CAPTCHA text box. This is where you will tell your "
5597
+ "users what they need to enter for the CAPTCHA. It can be a phrase, complete "
5598
+ "this sentence, a Hint or simply just Type/Enter: xxxxx or you can get as "
5599
+ "creative as you want to get with your jQuery ToolTip. Randomness is what "
5600
+ "makes a CAPTCHA very effective. JTC is designed with CAPTCHA randomness "
5601
+ "capability as one of its primary features."
5602
+ msgstr ""
5603
+
5604
+ #: admin/login/lsm-help-text.php:19
5605
+ msgid "JTC Title|Text: "
5606
+ msgstr ""
5607
+
5608
+ #: admin/login/lsm-help-text.php:19
5609
+ msgid ""
5610
+ "This is the text that is displayed to users above the CAPTCHA text box/Form "
5611
+ "Field."
5612
+ msgstr ""
5613
+
5614
+ #: admin/login/lsm-help-text.php:19
5615
+ msgid "Enable JTC for WooCommerce (BPS Pro Only):"
5616
+ msgstr ""
5617
+
5618
+ #: admin/login/lsm-help-text.php:19
5619
+ msgid ""
5620
+ "Check this checkbox if you have the WooCommerce plugin installed if you "
5621
+ "would like to use BPS JTC on the WooCommerce custom login page. BPS JTC will "
5622
+ "still continue to work normally on the standard WordPress Forms: Login, "
5623
+ "Register, Lost Password, Comment, BuddyPress Register and BuddyPress Sidebar "
5624
+ "Login Forms when you check this checkbox. This checkbox option setting is "
5625
+ "not for turning JTC On or Off if you are using WooCommerce. Use the JTC "
5626
+ "Enable|Disable JTC For These Forms option checkboxes to enable or disable "
5627
+ "JTC on each of your Forms."
5628
+ msgstr ""
5629
+
5630
+ #: admin/login/lsm-help-text.php:19
5631
+ msgid ""
5632
+ "Enable|Disable JTC For These Forms (Only the Login Form CAPTCHA is available "
5633
+ "in BPS Free): "
5634
+ msgstr ""
5635
+
5636
+ #: admin/login/lsm-help-text.php:19
5637
+ msgid ""
5638
+ "Checking a Form checkbox will display a CAPTCHA on that Form to all users. "
5639
+ "Unchecking a Form checkbox will remove the CAPTCHA on that Form for all "
5640
+ "users. The Comment Form is a special case and the CAPTCHA can be displayed "
5641
+ "based on the User Roles that you choose. See the Comment Form help section "
5642
+ "below."
5643
+ msgstr ""
5644
+
5645
+ #: admin/login/lsm-help-text.php:19
5646
+ msgid ""
5647
+ "Comment Form: (only applies if Comment Form CAPTCHA is enabled/checked) "
5648
+ msgstr ""
5649
+
5650
+ #: admin/login/lsm-help-text.php:19
5651
+ msgid ""
5652
+ "Enable|Disable JTC For These Registered/Logged In User Roles (BPS Pro Only:"
5653
+ msgstr ""
5654
+
5655
+ #: admin/login/lsm-help-text.php:19
5656
+ msgid ""
5657
+ "Users must be logged into your website for the Comment Form User Roles to "
5658
+ "work. If you do not require that users are registered and logged in to post "
5659
+ "comments on your website then these JTC options will not have any effect. "
5660
+ "These options are only for registered and logged in users and only for your "
5661
+ "Comment Form if you are using this WordPress Discussion setting: Users must "
5662
+ "be registered and logged in to comment. If you do not want to require that "
5663
+ "users are registered and logged in to comment then the JTC Comment Form "
5664
+ "CAPTCHA will still work as long as you have this WordPress Discussion "
5665
+ "setting checked: Comment author must fill out name and email."
5666
+ msgstr ""
5667
+
5668
+ #: admin/login/lsm-help-text.php:19
5669
+ msgid ""
5670
+ "Checking a User Role checkbox will display a CAPTCHA to all users with that "
5671
+ "User Role on your website's Comment Form. Unchecking a User Role checkbox "
5672
+ "will remove the CAPTCHA from displaying to users with that User Role on your "
5673
+ "website's Comment Form. If your website is using/has Custom User Roles, your "
5674
+ "Custom User Roles will be displayed in a scrollable box below the standard "
5675
+ "WP User Roles: Administrator, Editor, Author, Contributor, Subscriber."
5676
+ msgstr ""
5677
+
5678
+ #: admin/login/lsm-help-text.php:19
5679
+ msgid "Comment Form CAPTCHA Error message (BPS Pro Only):"
5680
+ msgstr ""
5681
+
5682
+ #: admin/login/lsm-help-text.php:19
5683
+ msgid ""
5684
+ "The Default JTC Comment Form CAPTCHA error message is: <strong>ERROR</"
5685
+ "strong>: Incorrect JTC CAPTCHA Entered. Click your Browser's back button and "
5686
+ "re-enter the JTC CAPTCHA. You can change or add to the default error "
5687
+ "message. This error message only applies to the Comment Form CAPTCHA error "
5688
+ "message and does not affect or change any of the other Form CAPTCHA error "
5689
+ "messages."
5690
+ msgstr ""
5691
+
5692
+ #: admin/login/lsm-help-text.php:19
5693
+ msgid ""
5694
+ "You can position the JTC Title|Text Form label and the JTC CAPTCHA Form "
5695
+ "Input text box by editing the CSS in these text boxes. By default the "
5696
+ "position of the JTC Title|Text label and the JTC CAPTCHA Form Input text box "
5697
+ "is below your Comment Form submit button. For CSS code styling examples (see "
5698
+ "Forum Help Links at the top of this Read Me help window)."
5699
+ msgstr ""
5700
+
5701
+ #: admin/login/lsm-help-text.php:19
5702
+ msgid "Comment Form Label (BPS Pro Only):"
5703
+ msgstr ""
5704
+
5705
+ #: admin/login/lsm-help-text.php:19
5706
+ msgid "This is the JTC Title|Text label above the Form Input text box."
5707
+ msgstr ""
5708
+
5709
+ #: admin/login/lsm-help-text.php:19
5710
+ msgid "Comment Form Input Text Box (BPS Pro Only):"
5711
+ msgstr ""
5712
+
5713
+ #: admin/login/lsm-help-text.php:19
5714
+ msgid "This is the JTC CAPTCHA Form Input text box."
5715
+ msgstr ""
5716
+
5717
+ #: admin/login/lsm-help-text.php:19
5718
+ msgid "Additional Brute Force CAPTCHA Option: "
5719
+ msgstr ""
5720
+
5721
+ #: admin/login/lsm-help-text.php:19
5722
+ msgid ""
5723
+ "If you do not allow anyone else to log into your website then here is an "
5724
+ "example of how JTC could be used as an additional Brute Force Login "
5725
+ "Protection feature."
5726
+ msgstr ""
5727
+
5728
+ #: admin/login/lsm-help-text.php:19
5729
+ msgid ""
5730
+ "Example: You create a JTC CAPTCHA: My Example CAPTCHA, you either leave the "
5731
+ "JTC ToolTip: text box blank or you create a Hint for yourself - JTC ToolTip: "
5732
+ "My Example Hint. If your JTC ToolTip: text box is blank then the CAPTCHA "
5733
+ "will not be displayed - only you will know what the CAPTCHA is. If you "
5734
+ "create a personal Hint for yourself then only you will know what the answer "
5735
+ "to the Hint is."
5736
+ msgstr ""
5737
+
5738
+ #: admin/login/lsm-help-text.php:22
5739
  msgid "Idle Session Logout (ISL) General Info:"
5740
  msgstr ""
5741
 
5742
+ #: admin/login/lsm-help-text.php:22
5743
  msgid ""
5744
  "Idle Session Logout (ISL) can be considered a \"soft\" setting vs ACE being "
5745
  "a \"hard\" setting. ISL uses javascript Event Listeners to monitor Users "
5749
  "across the screen."
5750
  msgstr ""
5751
 
5752
+ #: admin/login/lsm-help-text.php:22
5753
  msgid ""
5754
  "If you set the Idle Session Logout Time to 60 minutes and the User is idle/"
5755
  "inactive for 10 minutes and becomes active again then the Idle Session "
5758
  "logged out of the site and redirected to the BPS Idle Session Logout Page."
5759
  msgstr ""
5760
 
5761
+ #: admin/login/lsm-help-text.php:22
5762
  msgid ""
5763
  "When an idle/inactive User is logged out of the site they are redirected to "
5764
  "the BPS Idle Session Logout Page URL if their Browser is still open. If the "
5771
  "logged in the BPS Security Log file."
5772
  msgstr ""
5773
 
5774
+ #: admin/login/lsm-help-text.php:22
5775
  msgid ""
5776
  "After making any option setting changes click the Save Options button to "
5777
  "save your new option settings. To reset ISL option settings back to the "
5779
  "entered in any text/textarea boxes and click the Save Options button."
5780
  msgstr ""
5781
 
5782
+ #: admin/login/lsm-help-text.php:22
5783
  msgid ""
5784
  "ISL is Turned Off by default. Select ISL On to turn ISL On. Select ISL Off "
5785
  "to turn ISL Off."
5786
  msgstr ""
5787
 
5788
+ #: admin/login/lsm-help-text.php:22
5789
  msgid ""
5790
  "Enter the time in minutes for when an idle/inactive User should be logged "
5791
  "out of your site. Example: Entering 60 will automatically logout Users who "
5794
  "Session Logout Time then ISL will be disabled automatically."
5795
  msgstr ""
5796
 
5797
+ #: admin/login/lsm-help-text.php:22
5798
  msgid ""
5799
  "When an idle/inactive User is logged out of your site they are redirected to "
5800
  "the BPS Idle Session Logout Page URL by default. You can choose to redirect "
5804
  "the default BPS Idle Session Logout Page."
5805
  msgstr ""
5806
 
5807
+ #: admin/login/lsm-help-text.php:22
5808
  msgid ""
5809
  "This option displays a clickable Login URL/link to your WP Login page. If "
5810
  "your Login page URL is different than the default URL that you see displayed "
5814
  "link displayed."
5815
  msgstr ""
5816
 
5817
+ #: admin/login/lsm-help-text.php:22
5818
  msgid ""
5819
  "This option allows you to exclude any pages or posts that you do not want "
5820
  "ISL to check/monitor. Important: The URI path is everything after the root "
5825
  "enter is: /category/some-post/."
5826
  msgstr ""
5827
 
5828
+ #: admin/login/lsm-help-text.php:22
5829
  msgid ""
5830
  "You can either use the default BPS ISL message/text by leaving the textarea "
5831
  "box blank or you can enter your own custom ISL message/text in this textarea "
5835
  "setting."
5836
  msgstr ""
5837
 
5838
+ #: admin/login/lsm-help-text.php:22
5839
  msgid ""
5840
  "You can either use the default BPS CSS Style code or enter your own custom "
5841
  "CSS Style customizations."
5842
  msgstr ""
5843
 
5844
+ #: admin/login/lsm-help-text.php:22
5845
  msgid ""
5846
  "To create exceptions for User Account names enter User Account names (case-"
5847
  "insensitive) separated by a comma and a space: johnDoe, janeDoe. ISL will be "
5856
  "User Account is idle/inactive then do not add your User Account name."
5857
  msgstr ""
5858
 
5859
+ #: admin/login/lsm-help-text.php:22
5860
  msgid "Enable|Disable Idle Session Logouts For These User Roles:"
5861
  msgstr ""
5862
 
5863
+ #: admin/login/lsm-help-text.php:22
5864
  msgid ""
5865
  "Checking a User Role checkbox will enable ISL for all Users with that User "
5866
  "Role (See User Account Exceptions). Unchecking a User Role checkbox will "
5871
  "Roles: Administrator, Editor, Author, Contributor, Subscriber."
5872
  msgstr ""
5873
 
5874
+ #: admin/login/lsm-help-text.php:22
5875
  msgid "Enable|Disable Idle Session Logouts For TinyMCE Editors:"
5876
  msgstr ""
5877
 
5878
+ #: admin/login/lsm-help-text.php:22
5879
  msgid ""
5880
  "Please read all of the TinyMCE Editor Important Notes below. Checking the "
5881
  "Enable|Disable ISL For TinyMCE Editor checkbox will disable ISL for any/all "
5882
  "pages that have a TinyMCE Editor on them."
5883
  msgstr ""
5884
 
5885
+ #: admin/login/lsm-help-text.php:22
5886
  msgid "TinyMCE Editor Important Notes:"
5887
  msgstr ""
5888
 
5889
+ #: admin/login/lsm-help-text.php:22
5890
  msgid "ISL and TinyMCE javascript Event Listeners:"
5891
  msgstr ""
5892
 
5893
+ #: admin/login/lsm-help-text.php:22
5894
  msgid ""
5895
  "ISL uses javascript Event Listeners to monitor User activity for these ISL "
5896
  "events: keyboard key is pressed, mouse button is pressed, mouse is moved, "
5902
  "cannot monitor any User activity in the TinyMCE Visual tab Editor window."
5903
  msgstr ""
5904
 
5905
+ #: admin/login/lsm-help-text.php:22
5906
  msgid "TinyMCE Editor on WordPress Post, Page and Comments pages:"
5907
  msgstr ""
5908
 
5909
+ #: admin/login/lsm-help-text.php:22
5910
  msgid ""
5911
  "This example is using an Idle Session Logout Time of 60 minutes. If the User "
5912
  "is typing content/text for 60 continuous minutes in the WordPress Post, Page "
5920
  "text."
5921
  msgstr ""
5922
 
5923
+ #: admin/login/lsm-help-text.php:22
5924
  msgid "TinyMCE Editor Instances used in other plugins and themes:"
5925
  msgstr ""
5926
 
5927
+ #: admin/login/lsm-help-text.php:22
5928
  msgid ""
5929
  "If another plugin or theme is using instances of the TinyMCE Editor, like "
5930
  "BPS Maintenance Mode MMode Editor TinyMCE Editor instance for example, then "
5939
  "Editor Instance."
5940
  msgstr ""
5941
 
5942
+ #: admin/login/lsm-help-text.php:22
5943
  msgid "Auth Cookie Expiration (ACE) General Info:"
5944
  msgstr ""
5945
 
5946
+ #: admin/login/lsm-help-text.php:22
5947
  msgid ""
5948
  "The WordPress Authentication Cookie Expiration (ACE) time can be considered "
5949
  "a \"hard\" setting vs ISL being a \"soft\" setting. If you set the Cookie "
5960
  "time if you do not use or turn On ACE."
5961
  msgstr ""
5962
 
5963
+ #: admin/login/lsm-help-text.php:22
5964
  msgid ""
5965
  "ACE is Turned Off by default. Select ACE On to turn ACE On. Select ACE Off "
5966
  "to turn ACE Off."
5967
  msgstr ""
5968
 
5969
+ #: admin/login/lsm-help-text.php:22
5970
  msgid ""
5971
  "Enter the time in minutes for when a User should be logged out of your site. "
5972
  "Example: Entering 720 will automatically logout Users who have been logged "
5976
  "will use the default WordPress Authentication Cookie Expiration time."
5977
  msgstr ""
5978
 
5979
+ #: admin/login/lsm-help-text.php:22
5980
  msgid ""
5981
  "Enter the time in minutes for when a User should be logged out of your site "
5982
  "when the User has checked the Remember Me checkbox on the WordPress Login "
5987
  "will use the default WordPress Authentication Cookie Expiration time."
5988
  msgstr ""
5989
 
5990
+ #: admin/login/lsm-help-text.php:22
5991
  msgid ""
5992
  "Checking the Disable & do not display the Remember Me checkbox option will "
5993
  "disable and not display the Remember Me checkbox for everyone including you. "
5997
  "expiration time."
5998
  msgstr ""
5999
 
6000
+ #: admin/login/lsm-help-text.php:22
6001
  msgid ""
6002
  "To create exceptions for User Account names enter User Account names (case-"
6003
  "insensitive) separated by a comma and a space: johnDoe, janeDoe. Auth Cookie "
6015
  "Account name."
6016
  msgstr ""
6017
 
6018
+ #: admin/login/lsm-help-text.php:22
6019
  msgid "Enable|Disable Auth Cookie Expiration Time For These User Roles:"
6020
  msgstr ""
6021
 
6022
+ #: admin/login/lsm-help-text.php:22
6023
  msgid ""
6024
  "Checking a User Role checkbox will apply the Auth Cookie Expiration Time "
6025
  "that you choose for all Users with that User Role (See User Account "
6042
  "being successfully turned On while the Oxygen plugin is activated."
6043
  msgstr ""
6044
 
6045
+ #: admin/maintenance/maintenance.php:64 includes/hud-autofix-whitelist.php:753
6046
  msgid "Click this "
6047
  msgstr ""
6048
 
6698
  msgid "Striped Cone"
6699
  msgstr ""
6700
 
6701
+ #: admin/maintenance/maintenance.php:602
6702
+ msgid "Swamp Bevel"
6703
+ msgstr ""
6704
+
6705
+ #: admin/maintenance/maintenance.php:603
6706
+ msgid "Toy"
6707
+ msgstr ""
6708
+
6709
+ #: admin/maintenance/maintenance.php:604
6710
+ msgid "Water Reflection"
6711
+ msgstr ""
6712
+
6713
+ #: admin/maintenance/maintenance.php:605
6714
+ msgid "Wood Grain"
6715
+ msgstr ""
6716
+
6717
+ #: admin/maintenance/maintenance.php:610
6718
+ msgid "No Background Color"
6719
+ msgstr ""
6720
+
6721
+ #: admin/maintenance/maintenance.php:612
6722
+ msgid "Black"
6723
+ msgstr ""
6724
+
6725
+ #: admin/maintenance/maintenance.php:616
6726
+ msgid "Display Visitor IP Address"
6727
+ msgstr ""
6728
+
6729
+ #: admin/maintenance/maintenance.php:620
6730
+ msgid "Display Dashboard Reminder Message when site is in Maintenance Mode"
6731
+ msgstr ""
6732
+
6733
+ #: admin/maintenance/maintenance.php:622
6734
+ msgid "Enable Visitor Logging"
6735
+ msgstr ""
6736
+
6737
+ #: admin/maintenance/maintenance.php:624
6738
+ msgid "Send Email Reminder when Maintenance Mode Countdown Timer has completed"
6739
+ msgstr ""
6740
+
6741
+ #: admin/maintenance/maintenance.php:626
6742
+ msgid "Send Countdown Timer Email To:"
6743
+ msgstr ""
6744
+
6745
+ #: admin/maintenance/maintenance.php:628
6746
+ msgid "Send Countdown Timer Email From:"
6747
+ msgstr ""
6748
+
6749
+ #: admin/maintenance/maintenance.php:630
6750
+ msgid "Send Countdown Timer Email Cc:"
6751
+ msgstr ""
6752
+
6753
+ #: admin/maintenance/maintenance.php:632
6754
+ msgid "Send Countdown Timer Email Bcc:"
6755
+ msgstr ""
6756
+
6757
+ #: admin/maintenance/maintenance.php:637
6758
+ msgid "MMode Network|Multisite Options"
6759
+ msgstr ""
6760
+
6761
+ #: admin/maintenance/maintenance.php:640
6762
+ msgid "Network|Multisite Primary Site Options ONLY"
6763
+ msgstr ""
6764
+
6765
+ #: admin/maintenance/maintenance.php:644
6766
+ msgid ""
6767
+ "Click the Maintenance Mode Read Me help button for the steps to use these "
6768
+ "special options:"
6769
+ msgstr ""
6770
+
6771
+ #: admin/maintenance/maintenance.php:645
6772
+ msgid "Put The Primary Site And All Subsites In Maintenance Mode"
6773
+ msgstr ""
6774
+
6775
+ #: admin/maintenance/maintenance.php:647
6776
+ msgid "Put All Subsites In Maintenance Mode, But Not The Primary Site"
6777
+ msgstr ""
6778
+
6779
+ #: admin/maintenance/maintenance.php:655
6780
+ msgid ""
6781
+ "Clicking OK Saves your Options/Settings to your Database and also creates "
6782
+ "your Maintenance Mode page. Click the Preview button to preview your "
6783
+ "Maintenance Mode page. After previewing your Maintenance Mode page click the "
6784
+ "Turn On button to enable Maintenance Mode on your website."
6785
+ msgstr ""
6786
+
6787
+ #: admin/maintenance/maintenance.php:759 admin/maintenance/maintenance.php:967
6788
+ msgid ""
6789
+ "IP Address Format Error: You have entered multiple IP Addresses using an "
6790
+ "incorrect Format."
6791
+ msgstr ""
6792
+
6793
+ #: admin/maintenance/maintenance.php:759 admin/maintenance/maintenance.php:967
6794
+ msgid ""
6795
+ "The correct IP Address Format is: IP Address comma single space. Example: "
6796
+ "100.99.88.77, 200.66.55.44, 44.33.22.1 or 100.99.88., 200.66.55., 44.33.22. "
6797
+ "if you are using the recommended 3 octet IP addresses."
6798
+ msgstr ""
6799
+
6800
+ #: admin/maintenance/maintenance.php:759 admin/maintenance/maintenance.php:967
6801
+ msgid ""
6802
+ "Correct the IP Address Format and click the Save Options button again. If "
6803
+ "you have an IPv6 IP address use the same general format as an IPv4 IP "
6804
+ "address - comma single space."
6805
+ msgstr ""
6806
+
6807
+ #: admin/maintenance/maintenance.php:810 admin/maintenance/maintenance.php:1018
6808
+ #: admin/maintenance/maintenance.php:1120
6809
+ msgid "FrontEnd Maintenance Mode has been Turned On."
6810
+ msgstr ""
6811
+
6812
+ #: admin/maintenance/maintenance.php:828 admin/maintenance/maintenance.php:1144
6813
+ #: admin/maintenance/maintenance.php:1653
6814
+ #: admin/maintenance/maintenance.php:1783
6815
+ #: admin/maintenance/maintenance.php:1974
6816
+ msgid "htaccess Files Disabled: BackEnd Maintenance Mode is disabled."
6817
+ msgstr ""
6818
+
6819
+ #: admin/maintenance/maintenance.php:903 admin/maintenance/maintenance.php:1221
6820
+ msgid "BackEnd Maintenance Mode has been Turned On."
6821
+ msgstr ""
6822
+
6823
+ #: admin/maintenance/maintenance.php:1237
6824
+ #: admin/maintenance/maintenance.php:2026
6825
+ msgid ""
6826
+ "Error: You have not saved your option settings yet. Click the Save Options "
6827
+ "button."
6828
+ msgstr ""
6829
+
6830
+ #: admin/maintenance/maintenance.php:1314
6831
+ msgid ""
6832
+ "Error: Unable to get/find the site root index.php file for this GWIOD - "
6833
+ "Giving WordPress Its Own Directory - website."
6834
+ msgstr ""
6835
+
6836
+ #: admin/maintenance/maintenance.php:1314
6837
+ msgid "GWIOD Site Root index.php File Path Checked: "
6838
+ msgstr ""
6839
+
6840
+ #: admin/maintenance/maintenance.php:1314
6841
+ msgid ""
6842
+ "BPS Maintenance Mode will not work correctly with your WordPress GWIOD "
6843
+ "setup. Try another WordPress Maintenance Mode plugin."
6844
+ msgstr ""
6845
+
6846
+ #: admin/maintenance/maintenance.php:1380
6847
+ msgid ""
6848
+ "Error: Unable to get/find the site root index.php file for this Network "
6849
+ "GWIOD - Giving WordPress Its Own Directory - website."
6850
+ msgstr ""
6851
+
6852
+ #: admin/maintenance/maintenance.php:1380
6853
+ msgid "Network GWIOD Site Root index.php File Path Checked: "
6854
+ msgstr ""
6855
+
6856
+ #: admin/maintenance/maintenance.php:1380
6857
+ msgid ""
6858
+ "Please copy this error message and send it in an email to info@ait-pro.com "
6859
+ "for assistance."
6860
+ msgstr ""
6861
+
6862
+ #: admin/maintenance/maintenance.php:1465
6863
+ #: admin/maintenance/maintenance.php:1590
6864
+ #: admin/maintenance/maintenance.php:1746
6865
+ #: admin/maintenance/maintenance.php:1926
6866
+ msgid "FrontEnd Maintenance Mode has been Turned Off."
6867
+ msgstr ""
6868
+
6869
+ #: admin/maintenance/maintenance.php:1693
6870
+ #: admin/maintenance/maintenance.php:1819
6871
+ #: admin/maintenance/maintenance.php:2010
6872
+ msgid "BackEnd Maintenance Mode has been Turned Off."
6873
+ msgstr ""
6874
+
6875
+ #: admin/mscan/mscan-help-text.php:41
6876
+ msgid ""
6877
+ "For more extensive help info and answers to common issues or problems click "
6878
+ "the MScan Malware Scanner Guide link above. For troubleshooting help or to "
6879
+ "post suspicious code click the MScan Troubleshooting & Code Posting link "
6880
+ "above."
6881
+ msgstr ""
6882
+
6883
+ #: admin/mscan/mscan-help-text.php:41
6884
+ msgid "Start Scan"
6885
+ msgstr ""
6886
+
6887
+ #: admin/mscan/mscan-help-text.php:41
6888
+ msgid "Clicking the Start Scan button starts a scan."
6889
+ msgstr ""
6890
+
6891
+ #: admin/mscan/mscan-help-text.php:41
6892
+ msgid "Stop Scan"
6893
+ msgstr ""
6894
+
6895
+ #: admin/mscan/mscan-help-text.php:41
6896
+ msgid "Clicking the Stop Scan button stops a scan."
6897
+ msgstr ""
6898
+
6899
+ #: admin/mscan/mscan-help-text.php:41 admin/mscan/mscan.php:885
6900
+ msgid "Hosting Account Root Folders"
6901
+ msgstr ""
6902
+
6903
+ #: admin/mscan/mscan-help-text.php:41
6904
+ msgid ""
6905
+ "All of your hosting account folders are checked/selected by default and will "
6906
+ "be scanned. Checking a checkbox means scan that folder. Unchecking a "
6907
+ "checkbox means do not scan that folder."
6908
+ msgstr ""
6909
+
6910
+ #: admin/mscan/mscan-help-text.php:41
6911
+ msgid "Max File Size Limit to Scan"
6912
+ msgstr ""
6913
+
6914
+ #: admin/mscan/mscan-help-text.php:41
6915
+ msgid ""
6916
+ "Files that are larger than 400KB will be skipped by default in a regular "
6917
+ "scan and can be scanned using a Skipped File scan."
6918
+ msgstr ""
6919
+
6920
+ #: admin/mscan/mscan-help-text.php:41
6921
+ msgid "Max Time Limit to Scan"
6922
+ msgstr ""
6923
+
6924
+ #: admin/mscan/mscan-help-text.php:41
6925
+ msgid ""
6926
+ "The default time limit for script execution on most web hosts is 300 "
6927
+ "seconds. The default time limit setting for MScan scanning is also set to "
6928
+ "300 seconds. It is not recommended that you increase the time limit higher "
6929
+ "than 300 seconds."
6930
+ msgstr ""
6931
+
6932
+ #: admin/mscan/mscan-help-text.php:41 admin/mscan/mscan.php:969
6933
+ msgid "Scan Database"
6934
+ msgstr ""
6935
+
6936
+ #: admin/mscan/mscan-help-text.php:41
6937
+ msgid ""
6938
+ "When Database scan is turned on your WordPress database will be scanned for "
6939
+ "suspicious code."
6940
+ msgstr ""
6941
+
6942
+ #: admin/mscan/mscan-help-text.php:41 admin/mscan/mscan.php:975
6943
+ msgid "Scan Image Files (Stegosploit|Exif Hack)"
6944
+ msgstr ""
6945
+
6946
+ #: admin/mscan/mscan-help-text.php:41
6947
+ msgid ""
6948
+ "WARNING: Scanning image files may cause scanning to stop or fail. Most web "
6949
+ "hosts already have security protection against Stegosploit and Exif image "
6950
+ "hacks. It is recommended that you do not scan image files."
6951
+ msgstr ""
6952
+
6953
+ #: admin/mscan/mscan-help-text.php:41 admin/mscan/mscan.php:981
6954
+ msgid "Scan Skipped Files Only"
6955
+ msgstr ""
6956
+
6957
+ #: admin/mscan/mscan-help-text.php:41
6958
+ msgid ""
6959
+ "When Skipped File Scan is On only skipped files will be scanned. Note: The "
6960
+ "only MScan option setting that has any effect while Skipped File Scan is On "
6961
+ "is Image File Scan On or Off. You do not need to change any of your other "
6962
+ "MScan option settings when running a Skipped File scan."
6963
+ msgstr ""
6964
+
6965
+ #: admin/mscan/mscan-help-text.php:41 admin/mscan/mscan.php:987
6966
+ msgid "Automatically Delete /tmp Files"
6967
+ msgstr ""
6968
+
6969
+ #: admin/mscan/mscan-help-text.php:41
6970
+ msgid ""
6971
+ "When Delete Tmp Files is On, all temporary files will be deleted. Hackers "
6972
+ "commonly hide hacker files in the /tmp folder."
6973
+ msgstr ""
6974
+
6975
+ #: admin/mscan/mscan-help-text.php:41 admin/mscan/mscan.php:993
6976
+ msgid "Scheduled Scan Frequency (BPS Pro only)"
6977
+ msgstr ""
6978
+
6979
+ #: admin/mscan/mscan-help-text.php:41
6980
+ msgid ""
6981
+ "You can choose to schedule ongoing automated scans (BPS Pro Only). Note: The "
6982
+ "BPS Pro ARQ IDPS scanner is far superior to any/all Malware scanners "
6983
+ "including BPS Pro MScan. Click the MScan Malware Scanner Guide link above "
6984
+ "for more information regarding using ARQ IDPS and MScan together."
6985
+ msgstr ""
6986
+
6987
+ #: admin/mscan/mscan-help-text.php:41
6988
+ msgid "Scan Time Estimate Tool"
6989
+ msgstr ""
6990
+
6991
+ #: admin/mscan/mscan-help-text.php:41
6992
+ msgid ""
6993
+ "IMPORTANT: You can stop the scan time estimate if it hangs or is taking too "
6994
+ "long by clicking the Stop Scan button. This tool allows you to check the "
6995
+ "estimated total scan time of a scan based on your MScan option settings "
6996
+ "without actually performing/running a scan. Note: This tool does not affect "
6997
+ "or change any previous scan results except for the Total Scan Time, which "
6998
+ "will be changed to the estimated scan time. Example Usage: You can check or "
6999
+ "uncheck Hosting Account Root Folders checkboxes and change any other MScan "
7000
+ "option settings, save your MScan option settings and then run the Scan Time "
7001
+ "Estimate Tool to get the total estimated time that the actual scan will take."
7002
+ msgstr ""
7003
+
7004
+ #: admin/mscan/mscan-help-text.php:41
7005
+ msgid "Delete Scan Status Tool"
7006
+ msgstr ""
7007
+
7008
+ #: admin/mscan/mscan-help-text.php:41
7009
+ msgid ""
7010
+ "This tool allows you to delete all of the MScan Status option values. The "
7011
+ "Scan Completed timestamp, Total Scan Time, Total Files Scanned, Skipped "
7012
+ "Files, Suspicious Files and Suspicious DB Entries status values will be "
7013
+ "deleted and will either display blank or 0."
7014
+ msgstr ""
7015
+
7016
+ #: admin/mscan/mscan-help-text.php:41
7017
+ msgid "Delete DB Scan Data Tool"
7018
+ msgstr ""
7019
+
7020
+ #: admin/mscan/mscan-help-text.php:41
7021
+ msgid ""
7022
+ "This tool allows you to delete/reset all of the database scan data in the "
7023
+ "View|Ignore|Delete Suspicious Files and View|Ignore Suspicious DB Entries "
7024
+ "Forms. Note: Any/all changes you have made and saved in these Forms will be "
7025
+ "deleted. You may want to use BPS DB Backup and do a database backup before "
7026
+ "using this tool."
7027
+ msgstr ""
7028
+
7029
+ #: admin/mscan/mscan-help-text.php:41 admin/mscan/mscan.php:1056
7030
+ msgid "View|Ignore|Delete Suspicious Files"
7031
+ msgstr ""
7032
+
7033
+ #: admin/mscan/mscan-help-text.php:41
7034
+ msgid ""
7035
+ "This form allows you to view, ignore, unignore or delete suspicious and "
7036
+ "skipped files. If you are not sure if code is malicious or safe you can copy "
7037
+ "the code and post the code in the MScan Troubleshooting & Code Posting form "
7038
+ "topic. See the link above. If you are unsure if a file is a hacker file or "
7039
+ "not then download a copy of that file before deleting it. When you ignore a "
7040
+ "file it will no longer be scanned in any future scans. When you unignore an "
7041
+ "ignored file it will be scanned in future scans."
7042
+ msgstr ""
7043
+
7044
+ #: admin/mscan/mscan-help-text.php:41 admin/mscan/mscan.php:1393
7045
+ msgid "View|Ignore Suspicious DB Entries"
7046
+ msgstr ""
7047
+
7048
+ #: admin/mscan/mscan-help-text.php:41
7049
+ msgid ""
7050
+ "This form allows you to view, ignore or unignore suspicious DB Entries. "
7051
+ "Note: The view option displays the DB Table, Column, Row ID and the MScan "
7052
+ "Pattern Match that was detected by the MScan scan. Use phpMyAdmin or a "
7053
+ "similar tool to check your database Row where the suspicious code was found. "
7054
+ "When you ignore a DB Entry it will no longer be scanned in any future scans. "
7055
+ "When you unignore an ignored DB Entry it will be scanned in future scans."
7056
+ msgstr ""
7057
+
7058
+ #: admin/mscan/mscan-help-text.php:44
7059
+ msgid "MScan Log General Information"
7060
+ msgstr ""
7061
+
7062
+ #: admin/mscan/mscan-help-text.php:44
7063
+ msgid ""
7064
+ "Your MScan Log file is a plain text static file and not a dynamic file or "
7065
+ "dynamic display to keep your website resource usage at a bare minimum and "
7066
+ "keep your website performance at a maximum. Log entries are logged in "
7067
+ "descending order by Date and Time. You can copy, edit and delete this plain "
7068
+ "text file. You can choose S-Monitor Email Alerting & Log File Options to "
7069
+ "automatically email your MScan Log file to you and delete it when it reaches "
7070
+ "a certain size (256KB, 500KB or 1MB)."
7071
+ msgstr ""
7072
+
7073
+ #: admin/mscan/mscan-help-text.php:44
7074
+ msgid "MScan Logging"
7075
+ msgstr ""
7076
+
7077
+ #: admin/mscan/mscan-help-text.php:44
7078
+ msgid "Logs extensive details about each scan that you run."
7079
+ msgstr ""
7080
+
7081
+ #: admin/mscan/mscan-help-text.php:44
7082
+ msgid "MScan Log File Size"
7083
+ msgstr ""
7084
+
7085
+ #: admin/mscan/mscan-help-text.php:44
7086
+ msgid ""
7087
+ "Displays the size of your MScan Log file. If your log file is larger than "
7088
+ "2MB then you will see a Red warning message displayed: The S-Monitor Email "
7089
+ "Alerting & Log File Options will only send log files up to 2MB in size. Copy "
7090
+ "and paste the MScan Log file contents into a Notepad text file on your "
7091
+ "computer and save it. Then click the Delete Log button to delete the "
7092
+ "contents of this Log file."
7093
+ msgstr ""
7094
+
7095
+ #: admin/mscan/mscan-help-text.php:44
7096
+ msgid "MScan Log Last Modified Time"
7097
+ msgstr ""
7098
+
7099
+ #: admin/mscan/mscan-help-text.php:44
7100
+ msgid ""
7101
+ "The Reset Last Modified Time in DB option/feature is currently completely "
7102
+ "automated and does not require any manual steps performed by you."
7103
+ msgstr ""
7104
+
7105
+ #: admin/mscan/mscan-help-text.php:44
7106
+ msgid ""
7107
+ "Clicking the Delete Log button will delete the entire contents of your MScan "
7108
+ "Log File. If you have setup S-Monitor Email Alerting & Log Options then the "
7109
+ "only time you would probably need to use the Delete Log button is if your "
7110
+ "MScan Log file exceeds 2MB in size."
7111
+ msgstr ""
7112
+
7113
+ #: admin/mscan/mscan.php:51
7114
+ msgid "BulletProof Security ~ MScan Malware Scanner"
7115
+ msgstr ""
7116
+
7117
+ #: admin/mscan/mscan.php:89 admin/mscan/mscan.php:1675
7118
+ #: admin/mscan/mscan.php:1677
7119
+ msgid "MScan Log"
7120
+ msgstr ""
7121
+
7122
+ #: admin/mscan/mscan.php:98
7123
+ msgid "MScan ~ "
7124
+ msgstr ""
7125
+
7126
+ #: admin/mscan/mscan.php:98
7127
+ msgid ""
7128
+ "Scans website files for hacker files or code ~ Scans the WP database for "
7129
+ "hacker code."
7130
+ msgstr ""
7131
+
7132
+ #: admin/mscan/mscan.php:98
7133
+ msgid ""
7134
+ "Get real-time automated security protection that is far superior to all "
7135
+ "malware scanners: "
7136
+ msgstr ""
7137
+
7138
+ #: admin/mscan/mscan.php:114 includes/hud-dismiss-functions.php:672
7139
+ msgid "MScan Malware Scanner Guide"
7140
+ msgstr ""
7141
+
7142
+ #: admin/mscan/mscan.php:115
7143
+ msgid "MScan Troubleshooting & Code Posting"
7144
+ msgstr ""
7145
+
7146
+ #: admin/mscan/mscan.php:156
7147
+ msgid "The MScan Database Table: "
7148
+ msgstr ""
7149
+
7150
+ #: admin/mscan/mscan.php:156
7151
+ msgid " data has been deleted."
7152
+ msgstr ""
7153
+
7154
+ #: admin/mscan/mscan.php:192
7155
+ msgid ""
7156
+ "MScan Status option values have been deleted. The Scan Completed timestamp, "
7157
+ "Total Scan Time, Total Files Scanned, Skipped Files, Suspicious Files and "
7158
+ "Suspicious DB Entries status values have been deleted and will either "
7159
+ "display blank or 0"
7160
+ msgstr ""
7161
+
7162
+ #: admin/mscan/mscan.php:233 admin/mscan/mscan.php:295
7163
+ #: admin/mscan/mscan.php:518 admin/mscan/mscan.php:776
7164
+ msgid "Skipped file scanning is turned On. Only skipped files will be scanned."
7165
+ msgstr ""
7166
+
7167
+ #: admin/mscan/mscan.php:237 admin/mscan/mscan.php:299
7168
+ #: admin/mscan/mscan.php:396 admin/mscan/mscan.php:473
7169
+ #: admin/mscan/mscan.php:784
7170
+ msgid ""
7171
+ "Image file scanning is turned On. On some web hosts scanning image files "
7172
+ "will cause the scan to stop/fail."
7173
+ msgstr ""
7174
+
7175
+ #: admin/mscan/mscan.php:241
7176
+ msgid ""
7177
+ "MScan scanning has been stopped. Note: The Stop Scan button also stops the "
7178
+ "Scan Time Estimate Tool from calculating estimated scan time."
7179
+ msgstr ""
7180
+
7181
+ #: admin/mscan/mscan.php:311
7182
+ msgid ""
7183
+ "Calculating Scan Time. The default scan time calculation time of 30 seconds "
7184
+ "was exceeded. If it takes longer than 30 seconds to calculate total scan "
7185
+ "time, an additional 30 seconds will be added to the scan time calculation "
7186
+ "time until actual file scanning starts. Click the Refresh button to refresh "
7187
+ "the MScan Progress Bar if it is not automatically refreshed. If you see this "
7188
+ "message more than five times, click the Stop Scan button to stop the scan. "
7189
+ "Either you are attempting to scan too many files at one time or the scan "
7190
+ "time calculation is stuck in a time reset loop. Check your MScan Log file to "
7191
+ "see if the the estimated scan time was successfully logged."
7192
+ msgstr ""
7193
+
7194
+ #: admin/mscan/mscan.php:311
7195
+ msgid "Refresh"
7196
+ msgstr ""
7197
+
7198
+ #: admin/mscan/mscan.php:319
7199
+ msgid ""
7200
+ "The estimated total scan time is more than the Max Time Limit to Scan option "
7201
+ "setting time limit."
7202
+ msgstr ""
7203
+
7204
+ #: admin/mscan/mscan.php:319
7205
+ msgid ""
7206
+ "The scan will automatically end/stop when the Max Time Limit to Scan option "
7207
+ "setting time limit is reached."
7208
+ msgstr ""
7209
+
7210
+ #: admin/mscan/mscan.php:319
7211
+ msgid "Estimated Total Scan Time: "
7212
+ msgstr ""
7213
+
7214
+ #: admin/mscan/mscan.php:319
7215
+ msgid "Max Time Limit to Scan: "
7216
+ msgstr ""
7217
+
7218
+ #: admin/mscan/mscan.php:319
7219
+ msgid "Click the MScan Read Me help button for a recommended solution."
7220
+ msgstr ""
7221
+
7222
+ #: admin/mscan/mscan.php:325
7223
+ msgid ""
7224
+ "MScan Scanning has started. You can leave the MScan page while a scan is in "
7225
+ "progress and the scan will continue until it is completed or you can open "
7226
+ "another Browser Tab/Window and leave this Browser Tab/Window open."
7227
+ msgstr ""
7228
+
7229
+ #: admin/mscan/mscan.php:338 admin/mscan/mscan.php:344
7230
+ msgid "Suspicious code or files were detected."
7231
+ msgstr ""
7232
+
7233
+ #: admin/mscan/mscan.php:338 admin/mscan/mscan.php:344
7234
+ msgid ""
7235
+ "Click the View|Ignore|Delete Suspicious Files accordion tab to View, Ignore "
7236
+ "or Delete suspicious files. For additional help information click the MScan "
7237
+ "Read Me help button."
7238
+ msgstr ""
7239
+
7240
+ #: admin/mscan/mscan.php:348
7241
+ msgid "Suspicious code was detected in your database."
7242
+ msgstr ""
7243
+
7244
+ #: admin/mscan/mscan.php:348
7245
+ msgid ""
7246
+ "Click the View|Ignore Suspicious DB Entries accordion tab to view and ignore "
7247
+ "suspicious db entries. For additional help information click the MScan Read "
7248
+ "Me help button."
7249
+ msgstr ""
7250
+
7251
+ #: admin/mscan/mscan.php:353
7252
+ msgid ""
7253
+ "MScan Scan has completed. To view extensive details of all scanning phases "
7254
+ "view the MScan Log file."
7255
+ msgstr ""
7256
+
7257
+ #: admin/mscan/mscan.php:392
7258
+ msgid ""
7259
+ "Skipped file scanning is turned On. The scan time estimate is for scanning "
7260
+ "skipped files only."
7261
+ msgstr ""
7262
+
7263
+ #: admin/mscan/mscan.php:400
7264
+ msgid ""
7265
+ "The total estimated time of an actual scan based on your MScan option "
7266
+ "settings is: "
7267
+ msgstr ""
7268
+
7269
+ #: admin/mscan/mscan.php:400
7270
+ msgid ""
7271
+ "Seconds. The MScan Log file contains extensive details about the estimated "
7272
+ "scan time. Note: The Scan Time Estimate Tool does not affect or change any "
7273
+ "previous scan results except for the Total Scan Time, which will be changed "
7274
+ "to the estimated scan time."
7275
+ msgstr ""
7276
+
7277
+ #: admin/mscan/mscan.php:469
7278
+ msgid ""
7279
+ "Skipped file scanning is turned On. The scan time estimate will be for "
7280
+ "scanning skipped files only."
7281
+ msgstr ""
7282
+
7283
+ #: admin/mscan/mscan.php:477
7284
+ msgid ""
7285
+ "Calculating Estimated Scan Time. Notes: The Scan Time Estimate Tool does not "
7286
+ "affect or change any previous scan results except for the Total Scan Time, "
7287
+ "which will be changed to the estimated scan time. If the scan time estimate "
7288
+ "hangs or is taking too long click the Stop Scan button to stop calculating "
7289
+ "the estimated scan time."
7290
+ msgstr ""
7291
+
7292
+ #: admin/mscan/mscan.php:522
7293
+ msgid ""
7294
+ "Calculating Scan Time. You can leave the MScan page while a scan is in "
7295
+ "progress and the scan will continue until it is completed or you can open "
7296
+ "another Browser Tab/Window and leave this Browser Tab/Window open."
7297
+ msgstr ""
7298
+
7299
+ #: admin/mscan/mscan.php:678
7300
+ msgid "Click OK to start scanning or click Cancel."
7301
+ msgstr ""
7302
+
7303
+ #: admin/mscan/mscan.php:685
7304
+ msgid "Click OK to stop scanning or click Cancel."
7305
+ msgstr ""
7306
+
7307
+ #: admin/mscan/mscan.php:690
7308
+ msgid "MScan Options & Tools"
7309
+ msgstr ""
7310
+
7311
+ #: admin/mscan/mscan.php:703
7312
+ msgid "Save MScan Options"
7313
+ msgstr ""
7314
+
7315
+ #: admin/mscan/mscan.php:780
7316
+ msgid ""
7317
+ "Skipped file scanning is turned On. There are no skipped files to be "
7318
+ "scanned. Either there really are not any skipped files to scan or you have "
7319
+ "not run a regular scan yet with the Skipped File Scan option turned Off."
7320
+ msgstr ""
7321
+
7322
+ #: admin/mscan/mscan.php:788
7323
+ msgid "MScan Options saved."
7324
+ msgstr ""
7325
+
7326
+ #: admin/mscan/mscan.php:886
7327
+ msgid "MScan Options"
7328
+ msgstr ""
7329
+
7330
+ #: admin/mscan/mscan.php:887
7331
+ msgid "MScan Tools"
7332
+ msgstr ""
7333
+
7334
+ #: admin/mscan/mscan.php:900
7335
+ msgid "Folder Name"
7336
+ msgstr ""
7337
+
7338
+ #: admin/mscan/mscan.php:916
7339
+ msgid "Folder is not readable"
7340
+ msgstr ""
7341
+
7342
+ #: admin/mscan/mscan.php:929
7343
+ msgid ""
7344
+ "This folder contains another WordPress website. Click the MScan Read Me help "
7345
+ "button above and read the \"Scanning Other WordPress Sites\" help section."
7346
+ msgstr ""
7347
+
7348
+ #: admin/mscan/mscan.php:955
7349
+ msgid "Max File Size Limit to Scan:"
7350
+ msgstr ""
7351
+
7352
+ #: admin/mscan/mscan.php:959
7353
+ msgid "Max Time Limit to Scan:"
7354
+ msgstr ""
7355
+
7356
+ #: admin/mscan/mscan.php:963
7357
+ msgid "Exclude Individual Folders"
7358
+ msgstr ""
7359
+
7360
+ #: admin/mscan/mscan.php:963
7361
+ msgid "Enter one folder path per line. Include folder slashes."
7362
+ msgstr ""
7363
+
7364
+ #: admin/mscan/mscan.php:963
7365
+ msgid "Example:"
7366
+ msgstr ""
7367
+
7368
+ #: admin/mscan/mscan.php:963 admin/mscan/mscan.php:981
7369
+ msgid "Click the MScan Read Me help button for more help info."
7370
+ msgstr ""
7371
+
7372
+ #: admin/mscan/mscan.php:971
7373
+ msgid "Database Scan On"
7374
+ msgstr ""
7375
+
7376
+ #: admin/mscan/mscan.php:972
7377
+ msgid "Database Scan Off"
7378
+ msgstr ""
7379
+
7380
+ #: admin/mscan/mscan.php:977
7381
+ msgid "Image File Scan Off"
7382
+ msgstr ""
7383
+
7384
+ #: admin/mscan/mscan.php:978
7385
+ msgid "Image File Scan On"
7386
+ msgstr ""
7387
+
7388
+ #: admin/mscan/mscan.php:981
7389
+ msgid ""
7390
+ "When Skipped File Scan is On only skipped files will be scanned. Note: The "
7391
+ "only MScan option setting that has any affect while Skipped File Scan is On "
7392
+ "is Image File Scan On or Off."
7393
+ msgstr ""
7394
+
7395
+ #: admin/mscan/mscan.php:983
7396
+ msgid "Skipped File Scan Off"
7397
+ msgstr ""
7398
+
7399
+ #: admin/mscan/mscan.php:984
7400
+ msgid "Skipped File Scan On"
7401
+ msgstr ""
7402
+
7403
+ #: admin/mscan/mscan.php:989
7404
+ msgid "Delete Tmp Files On"
7405
+ msgstr ""
7406
+
7407
+ #: admin/mscan/mscan.php:990
7408
+ msgid "Delete Tmp Files Off"
7409
+ msgstr ""
7410
+
7411
+ #: admin/mscan/mscan.php:995
7412
+ msgid "Scheduled Scan Off"
7413
+ msgstr ""
7414
+
7415
+ #: admin/mscan/mscan.php:996
7416
+ msgid "Run Scan Every 60 Minutes"
7417
+ msgstr ""
7418
+
7419
+ #: admin/mscan/mscan.php:997
7420
+ msgid "Run Scan Every 3 Hours"
7421
+ msgstr ""
7422
+
7423
+ #: admin/mscan/mscan.php:998
7424
+ msgid "Run Scan Every 6 Hours"
7425
+ msgstr ""
7426
+
7427
+ #: admin/mscan/mscan.php:999
7428
+ msgid "Run Scan Every 12 Hours"
7429
+ msgstr ""
7430
+
7431
+ #: admin/mscan/mscan.php:1000
7432
+ msgid "Run Scan Every 24 Hours"
7433
+ msgstr ""
7434
+
7435
+ #: admin/mscan/mscan.php:1003
7436
+ msgid "Click OK to save MScan Options or click Cancel"
7437
+ msgstr ""
7438
+
7439
+ #: admin/mscan/mscan.php:1012
7440
+ msgid ""
7441
+ "IMPORTANT: You can stop the scan time estimate if it hangs or is taking too "
7442
+ "long by clicking the Stop Scan button.\\n"
7443
+ "\\n-------------------------------------------------------------\\n\\nThis "
7444
+ "tool allows you to check the estimated total scan time of a scan based on "
7445
+ "your MScan option settings without actually performing/running a scan. Note: "
7446
+ "This tool does not affect or change any previous scan results except for the "
7447
+ "Total Scan Time, which will be changed to the estimated scan time.\\n"
7448
+ "\\n-------------------------------------------------------------\\n"
7449
+ "\\nExample Usage: You can check or uncheck Hosting Account Root Folders "
7450
+ "checkboxes and change any other MScan option settings, save your MScan "
7451
+ "option settings and then run the Scan Time Estimate Tool to get the total "
7452
+ "estimated time that the actual scan will take. For additional help "
7453
+ "information click the MScan Read Me help button.\\n"
7454
+ "\\n-------------------------------------------------------------\\n\\nClick "
7455
+ "OK to get a scan time estimate or click Cancel"
7456
+ msgstr ""
7457
+
7458
+ #: admin/mscan/mscan.php:1017
7459
+ msgid ""
7460
+ "This tool allows you to delete all of the MScan Status option values.\\n"
7461
+ "\\n-------------------------------------------------------------\\n\\nThe "
7462
+ "Scan Completed timestamp, Total Scan Time, Total Files Scanned, Skipped "
7463
+ "Files, Suspicious Files and Suspicious DB Entries status values will be "
7464
+ "deleted and will either display blank or 0. For additional help information "
7465
+ "click the MScan Read Me help button.\\n"
7466
+ "\\n-------------------------------------------------------------\\n\\nClick "
7467
+ "OK to delete scan status option values or click Cancel"
7468
+ msgstr ""
7469
+
7470
+ #: admin/mscan/mscan.php:1022
7471
+ msgid ""
7472
+ "Deleting all database scan data is a reset that deletes any/all changes you "
7473
+ "have made and saved using the View|Ignore|Delete Suspicious Files and View|"
7474
+ "Ignore Suspicious DB Entries Forms.\\n"
7475
+ "\\n-------------------------------------------------------------\\n\\nClick "
7476
+ "OK to delete all database Scan Data or click Cancel"
7477
+ msgstr ""
7478
+
7479
+ #: admin/mscan/mscan.php:1170
7480
+ msgid " has been deleted."
7481
+ msgstr ""
7482
+
7483
+ #: admin/mscan/mscan.php:1191
7484
+ msgid ""
7485
+ " Current Status has been changed to Ignored File and this file will not be "
7486
+ "scanned in any future MScan Scans."
7487
+ msgstr ""
7488
+
7489
+ #: admin/mscan/mscan.php:1212
7490
+ msgid ""
7491
+ " Ignored File Status has been removed. The previous Status of the file will "
7492
+ "be displayed again and this file will be scanned in future MScan scans."
7493
+ msgstr ""
7494
+
7495
+ #: admin/mscan/mscan.php:1234 admin/mscan/mscan.php:1243
7496
+ msgid "Close File"
7497
+ msgstr ""
7498
+
7499
+ #: admin/mscan/mscan.php:1234 admin/mscan/mscan.php:1243
7500
+ #: admin/mscan/mscan.php:1540
7501
+ msgid "MScan Pattern Match"
7502
+ msgstr ""
7503
+
7504
+ #: admin/mscan/mscan.php:1234
7505
+ msgid ""
7506
+ "Only the MScan Pattern Match is displayed for images instead of the image "
7507
+ "file code."
7508
+ msgstr ""
7509
+
7510
+ #: admin/mscan/mscan.php:1234
7511
+ msgid ""
7512
+ "Opening image files to view image file code does not work well in a Browser."
7513
+ msgstr ""
7514
+
7515
+ #: admin/mscan/mscan.php:1234
7516
+ msgid ""
7517
+ "You can download suspicious image files and use a code editor like Notepad++ "
7518
+ "to check image file code for any malicious code."
7519
+ msgstr ""
7520
+
7521
+ #: admin/mscan/mscan.php:1234 admin/mscan/mscan.php:1243
7522
+ #: admin/mscan/mscan.php:1540
7523
+ msgid ""
7524
+ "If you are not sure what to check for or what is and is not malicious code "
7525
+ "then click the MScan Read Me help button."
7526
+ msgstr ""
7527
+
7528
+ #: admin/mscan/mscan.php:1243
7529
+ msgid ""
7530
+ "You can use your Browser's Search or Find feature to search the file "
7531
+ "contents/code displayed below using the MScan Pattern Match above for the "
7532
+ "suspicious code that was detected by MScan."
7533
+ msgstr ""
7534
+
7535
+ #: admin/mscan/mscan.php:1243
7536
+ msgid ""
7537
+ "You can download suspicious files if you would like to check the file "
7538
+ "contents/code more extensively with a code editor like Notepad++."
7539
+ msgstr ""
7540
+
7541
+ #: admin/mscan/mscan.php:1271 admin/mscan/mscan.php:1562
7542
+ msgid "Current Status"
7543
+ msgstr ""
7544
+
7545
+ #: admin/mscan/mscan.php:1272
7546
+ msgid "View<br>File"
7547
+ msgstr ""
7548
+
7549
+ #: admin/mscan/mscan.php:1273
7550
+ msgid "Ignore<br>File"
7551
+ msgstr ""
7552
+
7553
+ #: admin/mscan/mscan.php:1274
7554
+ msgid "Unignore<br>File"
7555
+ msgstr ""
7556
+
7557
+ #: admin/mscan/mscan.php:1275
7558
+ msgid "Delete<br>File"
7559
+ msgstr ""
7560
+
7561
+ #: admin/mscan/mscan.php:1276 admin/system-info/system-info.php:905
7562
+ #: admin/system-info/system-info.php:938
7563
+ msgid "File Path"
7564
+ msgstr ""
7565
+
7566
+ #: admin/mscan/mscan.php:1277 admin/mscan/mscan.php:1569
7567
+ msgid "Pattern<br>Match"
7568
+ msgstr ""
7569
+
7570
+ #: admin/mscan/mscan.php:1278 admin/mscan/mscan.php:1570
7571
+ msgid "Scan<br>Time"
7572
+ msgstr ""
7573
+
7574
+ #: admin/mscan/mscan.php:1291
7575
+ msgid "Skipped File"
7576
+ msgstr ""
7577
+
7578
+ #: admin/mscan/mscan.php:1291
7579
+ msgid "Not Scanned"
7580
+ msgstr ""
7581
+
7582
+ #: admin/mscan/mscan.php:1295 admin/mscan/mscan.php:1302
7583
+ msgid "Ignored File"
7584
+ msgstr ""
7585
+
7586
+ #: admin/mscan/mscan.php:1307
7587
+ msgid "Suspicious File"
7588
+ msgstr ""
7589
+
7590
+ #: admin/mscan/mscan.php:1313 admin/mscan/mscan.php:1591
7591
+ msgid "View"
7592
+ msgstr ""
7593
+
7594
+ #: admin/mscan/mscan.php:1314 admin/mscan/mscan.php:1592
7595
+ msgid "Ignore"
7596
+ msgstr ""
7597
+
7598
+ #: admin/mscan/mscan.php:1316 admin/mscan/mscan.php:1593
7599
+ msgid "Unignore"
7600
+ msgstr ""
7601
+
7602
+ #: admin/mscan/mscan.php:1327
7603
+ msgid "No Suspicious Files were detected"
7604
+ msgstr ""
7605
+
7606
+ #: admin/mscan/mscan.php:1341
7607
+ msgid ""
7608
+ "View File Option: Selecting the View File Checkbox Form option will display "
7609
+ "the contents of the file that you have selected to view.\\n"
7610
+ "\\n-------------------------------------------------------------\\n\\nIgnore "
7611
+ "File Option: Selecting the Ignore File Checkbox Form option will change the "
7612
+ "Current Status of a file to Ignored File and MScan will ignore that file in "
7613
+ "any future scans.\\n"
7614
+ "\\n-------------------------------------------------------------\\n"
7615
+ "\\nUnignore File Option: Selecting the Unignore File Checkbox Form option "
7616
+ "will remove the Ignored File Current Status of a file and MScan will scan "
7617
+ "that file in any future scans. Note: The previous Status of the file will be "
7618
+ "displayed again.\\n"
7619
+ "\\n-------------------------------------------------------------\\n\\nDelete "
7620
+ "File Option: Selecting the Delete File Checkbox Form option will delete the "
7621
+ "file and delete the database entry for that file.\\n"
7622
+ "\\n-------------------------------------------------------------\\n\\nClick "
7623
+ "OK to proceed or click Cancel"
7624
+ msgstr ""
7625
+
7626
+ #: admin/mscan/mscan.php:1497
7627
+ msgid "Current Status has been changed to Ignored for DB Row ID"
7628
+ msgstr ""
7629
+
7630
+ #: admin/mscan/mscan.php:1497 admin/mscan/mscan.php:1516
7631
+ msgid "in DB Column"
7632
+ msgstr ""
7633
+
7634
+ #: admin/mscan/mscan.php:1497
7635
+ msgid "This DB Entry will not be scanned in any future MScan Scans."
7636
  msgstr ""
7637
 
7638
+ #: admin/mscan/mscan.php:1516
7639
+ msgid "The Ignored DB Entry Status has been removed for DB Row ID"
7640
  msgstr ""
7641
 
7642
+ #: admin/mscan/mscan.php:1516
7643
+ msgid ""
7644
+ "The previous Status of the DB Entry will be displayed again and this DB "
7645
+ "Entry will be scanned in future MScan scans."
7646
  msgstr ""
7647
 
7648
+ #: admin/mscan/mscan.php:1535 admin/mscan/mscan.php:1540
7649
+ msgid "Close"
7650
  msgstr ""
7651
 
7652
+ #: admin/mscan/mscan.php:1535
7653
+ msgid "Pharma Hack DB Table and Column"
7654
  msgstr ""
7655
 
7656
+ #: admin/mscan/mscan.php:1535
7657
+ msgid "Pharma Hack cleanup/removal steps"
7658
  msgstr ""
7659
 
7660
+ #: admin/mscan/mscan.php:1535
7661
+ msgid ""
7662
+ "Login to your web host control panel, login to your WP Database using "
7663
+ "phpMyAdmin and delete these DB option name Rows below from the DB Table and "
7664
+ "Column shown above. Note: You may or may not see all of these DB option name "
7665
+ "Rows so just delete any that you do see."
7666
  msgstr ""
7667
 
7668
+ #: admin/mscan/mscan.php:1540
7669
+ msgid "DB Table, Column and Row ID"
7670
  msgstr ""
7671
 
7672
+ #: admin/mscan/mscan.php:1540
7673
+ msgid "Steps to view the database data that MScan detected as suspicious"
7674
  msgstr ""
7675
 
7676
+ #: admin/mscan/mscan.php:1540
7677
+ msgid ""
7678
+ "Login to your web host control panel, login to your WP Database using "
7679
+ "phpMyAdmin and check the data in the DB Table, Column and Row ID shown "
7680
+ "above. Note: Look for code that matches the MScan Pattern Match."
7681
  msgstr ""
7682
 
7683
+ #: admin/mscan/mscan.php:1563
7684
+ msgid "View<br>DB Entry"
7685
  msgstr ""
7686
 
7687
+ #: admin/mscan/mscan.php:1564
7688
+ msgid "Ignore<br>DB Entry"
7689
  msgstr ""
7690
 
7691
+ #: admin/mscan/mscan.php:1565
7692
+ msgid "Unignore<br>DB Entry"
7693
  msgstr ""
7694
 
7695
+ #: admin/mscan/mscan.php:1566
7696
+ msgid "DB Table"
7697
  msgstr ""
7698
 
7699
+ #: admin/mscan/mscan.php:1567
7700
+ msgid "DB Column"
7701
  msgstr ""
7702
 
7703
+ #: admin/mscan/mscan.php:1568
7704
+ msgid "DB Row ID"
7705
  msgstr ""
7706
 
7707
+ #: admin/mscan/mscan.php:1581
7708
+ msgid "Ignored DB Entry"
 
 
7709
  msgstr ""
7710
 
7711
+ #: admin/mscan/mscan.php:1586
7712
+ msgid "Suspicious DB Entry"
7713
  msgstr ""
7714
 
7715
+ #: admin/mscan/mscan.php:1604
7716
+ msgid "No Suspicious DB Entries were detected"
7717
  msgstr ""
7718
 
7719
+ #: admin/mscan/mscan.php:1619
7720
  msgid ""
7721
+ "View DB Entry Option: Selecting the View DB Entry Checkbox Form option will "
7722
+ "display the contents of the DB Table, Column and Row ID that you have "
7723
+ "selected to view.\\n"
7724
+ "\\n-------------------------------------------------------------\\n\\nIgnore "
7725
+ "DB Entry Option: Selecting the Ignore DB Entry Checkbox Form option will "
7726
+ "change the Current Status of a DB Entry to Ignored DB Entry and MScan will "
7727
+ "ignore that DB Entry in any future scans.\\n"
7728
+ "\\n-------------------------------------------------------------\\n"
7729
+ "\\nUnignore DB Entry Option: Selecting the Unignore DB Entry Checkbox Form "
7730
+ "option will remove the Ignored DB Entry Current Status of a DB Entry and "
7731
+ "MScan will scan that DB Entry in any future scans. Note: The previous Status "
7732
+ "of the DB Entry will be displayed again.\\n"
7733
+ "\\n-------------------------------------------------------------\\n\\nClick "
7734
+ "OK to proceed or click Cancel"
7735
  msgstr ""
7736
 
7737
+ #: admin/mscan/mscan.php:1670
7738
+ msgid "MScan Log ~ "
 
 
7739
  msgstr ""
7740
 
7741
+ #: admin/mscan/mscan.php:1670
7742
  msgid ""
7743
+ "Logs MScan Settings, Completion Time, Memory Usage, Zip Backup File Name, "
7744
+ "Timestamp..."
 
7745
  msgstr ""
7746
 
7747
+ #: admin/mscan/mscan.php:1701
7748
+ msgid "Click the Reset Last Modified Time in DB button"
 
 
 
7749
  msgstr ""
7750
 
7751
+ #: admin/mscan/mscan.php:1701
7752
+ msgid "to set the"
 
7753
  msgstr ""
7754
 
7755
+ #: admin/mscan/mscan.php:1706 admin/mscan/mscan.php:1711
7756
+ msgid "Last Modified Time in DB:"
 
 
 
7757
  msgstr ""
7758
 
7759
+ #: admin/mscan/mscan.php:1724 admin/mscan/mscan.php:1727
7760
+ msgid "MScan Log File Size: "
7761
  msgstr ""
7762
 
7763
+ #: admin/mscan/mscan.php:1727
 
7764
  msgid ""
7765
+ "The S-Monitor Email Logging options will only send log files up to 2MB in "
7766
+ "size."
7767
  msgstr ""
7768
 
7769
+ #: admin/mscan/mscan.php:1727
7770
  msgid ""
7771
+ "Copy and paste the MScan Log file contents into a Notepad text file on your "
7772
+ "computer and save it."
7773
  msgstr ""
7774
 
7775
+ #: admin/mscan/mscan.php:1738
7776
+ msgid "MScan Log Last Modified Time:"
7777
  msgstr ""
7778
 
7779
+ #: admin/mscan/mscan.php:1740
7780
+ msgid "Last Modified Time in File:"
 
 
7781
  msgstr ""
7782
 
7783
+ #: admin/mscan/mscan.php:1759
7784
  msgid ""
7785
+ "Success! Your DB Backup Log has been deleted and replaced with a new blank "
7786
+ "DB Backup Log file."
7787
  msgstr ""
7788
 
7789
+ #: admin/mscan/mscan.php:1769
7790
+ msgid "Clicking OK will delete the contents of your MScan Log file."
7791
  msgstr ""
7792
 
7793
+ #: admin/mscan/mscan.php:1788
7794
  msgid ""
7795
+ "The MScan Log File Was Not Found! Check that the file really exists here - /"
 
7796
  msgstr ""
7797
 
7798
+ #: admin/mscan/mscan.php:1788
7799
+ msgid "/bps-backup/logs/mscan_log.txt and is named correctly."
 
 
 
7800
  msgstr ""
7801
 
7802
+ #: admin/mscan/mscan.php:1807
7803
+ msgid "File Open and Write test successful! Your MScan Log file is writable."
7804
+ msgstr ""
7805
+
7806
+ #: admin/mscan/mscan.php:1819 admin/mscan/mscan.php:1823
7807
+ msgid "Success! Your MScan Log file has been updated."
7808
  msgstr ""
7809
 
7810
  #: admin/security-log/security-log.php:57
7868
  "text file."
7869
  msgstr ""
7870
 
7871
+ #: admin/security-log/security-log.php:255
7872
+ msgid ""
7873
+ "Security Log Email Alert and Log file option settings are on the Email|Log "
7874
+ "Settings page."
7875
+ msgstr ""
7876
+
7877
  #: admin/security-log/security-log.php:255
7878
  msgid ""
7879
  "If a particular User Agent|Bot is generating excessive log entries you can "
8015
  msgstr ""
8016
 
8017
  #: admin/security-log/security-log.php:255
8018
+ #: admin/security-log/security-log.php:449
8019
  msgid "POST Request Body Data"
8020
  msgstr ""
8021
 
8104
  msgstr ""
8105
 
8106
  #: admin/security-log/security-log.php:255
8107
+ #: admin/security-log/security-log.php:462
8108
  msgid "Add User Agents|Bots to Ignore|Not Log"
8109
  msgstr ""
8110
 
8216
  msgstr ""
8217
 
8218
  #: admin/security-log/security-log.php:400
8219
+ #: admin/security-log/security-log.php:533 admin/wizard/wizard.php:302
8220
  #: admin/wizard/wizard.php:308 admin/wizard/wizard.php:314
8221
  #: admin/wizard/wizard.php:320 admin/wizard/wizard.php:326
8222
  msgid "Error: The "
8223
  msgstr ""
8224
 
8225
  #: admin/security-log/security-log.php:400
8226
+ #: admin/security-log/security-log.php:533
8227
  msgid " does not exist."
8228
  msgstr ""
8229
 
8230
  #: admin/security-log/security-log.php:428
8231
+ #: admin/security-log/security-log.php:546
8232
+ #: admin/security-log/security-log.php:610
8233
  msgid "Error: Unable to write to file "
8234
  msgstr ""
8235
 
8236
  #: admin/security-log/security-log.php:428
8237
+ #: admin/security-log/security-log.php:546
8238
+ #: admin/security-log/security-log.php:610
8239
  msgid ""
8240
  ". Check that file permissions allow writing to this file. If you have a DSO "
8241
  "Server check file and folder Ownership."
8247
  "This User Agent|Bot will be no longer be logged in your Security Log."
8248
  msgstr ""
8249
 
8250
+ #: admin/security-log/security-log.php:450
8251
  msgid " Do Not Log POST Request Body Data (0KB)"
8252
  msgstr ""
8253
 
8254
+ #: admin/security-log/security-log.php:451
8255
  msgid " Log Minimum POST Request Body Data (5KB)"
8256
  msgstr ""
8257
 
8258
+ #: admin/security-log/security-log.php:452
8259
  msgid " Log Maximum POST Request Body Data (250KB)"
8260
  msgstr ""
8261
 
8262
+ #: admin/security-log/security-log.php:463
8263
  msgid "Click the Read Me Help button for examples"
8264
  msgstr ""
8265
 
8266
+ #: admin/security-log/security-log.php:465
8267
  msgid ""
8268
  "Clicking OK will Add the User Agent|Bot name you have entered to your DB and "
8269
  "the 403.php Security Logging template."
8270
  msgstr ""
8271
 
8272
+ #: admin/security-log/security-log.php:465
8273
  msgid ""
8274
  "Security logging checks are done by the 403.php Security Logging file and "
8275
  "not by DB Queries."
8276
  msgstr ""
8277
 
8278
+ #: admin/security-log/security-log.php:465
8279
  msgid ""
8280
  "To remove User Agents|Bots from being ignored/not logged use the Remove|"
8281
  "Allow tool."
8282
  msgstr ""
8283
 
8284
+ #: admin/security-log/security-log.php:478
8285
  msgid "Remove User Agents|Bots to Allow|Log"
8286
  msgstr ""
8287
 
8288
+ #: admin/security-log/security-log.php:480
8289
  msgid ""
8290
  "Clicking OK will search your database and display User Agent|Bot DB search "
8291
  "results in a Dynamic Radio button Form."
8292
  msgstr ""
8293
 
8294
+ #: admin/security-log/security-log.php:480
8295
  msgid ""
8296
  "To search for ALL User Agents|Bots to remove/delete from your database leave "
8297
  "the text box blank and click the Remove|Allow button."
8298
  msgstr ""
8299
 
8300
+ #: admin/security-log/security-log.php:493
8301
  msgid "Click OK to Turn Off Error Logging or click Cancel."
8302
  msgstr ""
8303
 
8304
+ #: admin/security-log/security-log.php:501
8305
  msgid "Click OK to Turn On Logging or click Cancel."
8306
  msgstr ""
8307
 
8308
+ #: admin/security-log/security-log.php:509
8309
  msgid "Clicking OK will delete the contents of your Security Log file."
8310
  msgstr ""
8311
 
8312
+ #: admin/security-log/security-log.php:567
8313
+ #: admin/security-log/security-log.php:668
8314
  msgid "Remove"
8315
  msgstr ""
8316
 
8317
+ #: admin/security-log/security-log.php:588
8318
  #, php-format
8319
  msgid "%s unable to delete row from your DB."
8320
  msgstr ""
8321
 
8322
+ #: admin/security-log/security-log.php:590
8323
  #, php-format
8324
  msgid "%s has been deleted from your DB."
8325
  msgstr ""
8326
 
8327
+ #: admin/security-log/security-log.php:625
8328
  msgid ""
8329
  "Success! The BPS 403.php Security Logging template file has been updated. "
8330
  "This User Agent|Bot will be logged again in your Security Log."
8331
  msgstr ""
8332
 
8333
+ #: admin/security-log/security-log.php:653
8334
  msgid "Error: These code characters are not allowed to be used: "
8335
  msgstr ""
8336
 
8337
+ #: admin/security-log/security-log.php:663
8338
  msgid "Search Results For User Agents|Bots To Remove"
8339
  msgstr ""
8340
 
8341
+ #: admin/security-log/security-log.php:667
8342
  msgid "User Agents|Bots in DB"
8343
  msgstr ""
8344
 
8345
+ #: admin/security-log/security-log.php:669
8346
  msgid "Do Not<br>Remove"
8347
  msgstr ""
8348
 
8349
+ #: admin/security-log/security-log.php:670
8350
  msgid "Time Added<br>To DB"
8351
  msgstr ""
8352
 
8353
+ #: admin/security-log/security-log.php:688
8354
  msgid ""
8355
  "Your DB Search Results For User Agents|Bots To Remove are displayed below "
8356
  "the Remove|Allow Search tool."
8357
  msgstr ""
8358
 
8359
+ #: admin/security-log/security-log.php:692
8360
  msgid ""
8361
  "You do not have any User Agents|Bots in your DB To Remove. An empty/blank "
8362
  "dynamic radio button form is displayed below the Remove|Allow Search tool "
8363
  "since you do not have any User Agents|Bot to remove."
8364
  msgstr ""
8365
 
8366
+ #: admin/security-log/security-log.php:698
8367
  msgid ""
8368
  "Clicking OK will Remove the User Agent|Bot DB entries for any Remove Radio "
8369
  "button selections you have made. User Agents|Bots will also be removed from "
8370
  "the 403.php Security Logging template."
8371
  msgstr ""
8372
 
8373
+ #: admin/security-log/security-log.php:698
8374
  msgid "To add a User Agent|Bot, use the Add|Ignore tool."
8375
  msgstr ""
8376
 
8377
+ #: admin/security-log/security-log.php:727
8378
  msgid ""
8379
  "The Security Log File Was Not Found! Check that the file really exists here "
8380
  "- /"
8381
  msgstr ""
8382
 
8383
+ #: admin/security-log/security-log.php:727
8384
  msgid "/bps-backup/logs/http_error_log.txt and is named correctly."
8385
  msgstr ""
8386
 
8387
+ #: admin/security-log/security-log.php:745
8388
  msgid ""
8389
  "File Open and Write test successful! Your Security Log file is writable."
8390
  msgstr ""
8391
 
8392
+ #: admin/security-log/security-log.php:756
8393
+ #: admin/security-log/security-log.php:760
8394
  msgid "Success! Your Security Log file has been updated."
8395
  msgstr ""
8396
 
8664
  msgid "A Zend Extension is Not Loaded"
8665
  msgstr ""
8666
 
8667
+ #: admin/system-info/system-info.php:420
8668
+ msgid "Zend OPcache"
8669
  msgstr ""
8670
 
8671
+ #: admin/system-info/system-info.php:423
8672
+ msgid "Zend OPcache is Enabled"
8673
  msgstr ""
8674
 
8675
+ #: admin/system-info/system-info.php:423 admin/system-info/system-info.php:432
8676
+ #: admin/system-info/system-info.php:492 admin/system-info/system-info.php:501
8677
+ #: admin/system-info/system-info.php:632 admin/system-info/system-info.php:644
8678
  msgid "Version: "
8679
  msgstr ""
8680
 
8681
+ #: admin/system-info/system-info.php:425
8682
+ msgid "Zend OPcache is Not Enabled"
8683
+ msgstr ""
8684
+
8685
+ #: admin/system-info/system-info.php:430
8686
+ msgid "ionCube Loader"
8687
+ msgstr ""
8688
+
8689
+ #: admin/system-info/system-info.php:432
8690
+ msgid "ionCube Loader Extension is Loaded "
8691
+ msgstr ""
8692
+
8693
+ #: admin/system-info/system-info.php:434
8694
  msgid "ionCube Loader Extension is Not Loaded"
8695
  msgstr ""
8696
 
8697
+ #: admin/system-info/system-info.php:437
8698
  msgid "Suhosin"
8699
  msgstr ""
8700
 
8701
+ #: admin/system-info/system-info.php:441
8702
  msgid "The Suhosin-Patch is installed"
8703
  msgstr ""
8704
 
8705
+ #: admin/system-info/system-info.php:444
8706
  msgid "Suhosin-Extension is Loaded"
8707
  msgstr ""
8708
 
8709
+ #: admin/system-info/system-info.php:447
8710
  msgid "Suhosin is Not Installed|Loaded"
8711
  msgstr ""
8712
 
8713
+ #: admin/system-info/system-info.php:451
8714
  msgid "APC"
8715
  msgstr ""
8716
 
8717
+ #: admin/system-info/system-info.php:453
8718
  msgid "APC Extension is Loaded and Enabled"
8719
  msgstr ""
8720
 
8721
+ #: admin/system-info/system-info.php:456
8722
  msgid "APC Extension is Loaded but Not Enabled"
8723
  msgstr ""
8724
 
8725
+ #: admin/system-info/system-info.php:458
8726
  msgid "APC Extension is Not Loaded"
8727
  msgstr ""
8728
 
8729
+ #: admin/system-info/system-info.php:461
8730
  msgid "eAccelerator"
8731
  msgstr ""
8732
 
8733
+ #: admin/system-info/system-info.php:463
8734
  msgid "eAccelerator Extension is Loaded and Enabled"
8735
  msgstr ""
8736
 
8737
+ #: admin/system-info/system-info.php:466
8738
  msgid "eAccelerator Extension is Loaded but Not Enabled"
8739
  msgstr ""
8740
 
8741
+ #: admin/system-info/system-info.php:468
8742
  msgid "eAccelerator Extension is Not Loaded"
8743
  msgstr ""
8744
 
8745
+ #: admin/system-info/system-info.php:471
8746
  msgid "XCache"
8747
  msgstr ""
8748
 
8749
+ #: admin/system-info/system-info.php:473
8750
  msgid "XCache Extension is Loaded and Enabled"
8751
  msgstr ""
8752
 
8753
+ #: admin/system-info/system-info.php:476
8754
  msgid "XCache Extension is Loaded but Not Enabled"
8755
  msgstr ""
8756
 
8757
+ #: admin/system-info/system-info.php:478
8758
  msgid "XCache Extension is Not Loaded"
8759
  msgstr ""
8760
 
8761
+ #: admin/system-info/system-info.php:481
8762
  msgid "Varnish"
8763
  msgstr ""
8764
 
8765
+ #: admin/system-info/system-info.php:483
8766
  msgid "Varnish Extension is Loaded"
8767
  msgstr ""
8768
 
8769
+ #: admin/system-info/system-info.php:485
8770
  msgid "Varnish Extension is Not Loaded"
8771
  msgstr ""
8772
 
8773
+ #: admin/system-info/system-info.php:488
8774
  msgid "Memcache"
8775
  msgstr ""
8776
 
8777
+ #: admin/system-info/system-info.php:492
8778
  msgid "Memcache Extension is Loaded - "
8779
  msgstr ""
8780
 
8781
+ #: admin/system-info/system-info.php:494
8782
  msgid "Memcache Extension is Not Loaded"
8783
  msgstr ""
8784
 
8785
+ #: admin/system-info/system-info.php:497
8786
  msgid "Memcached"
8787
  msgstr ""
8788
 
8789
+ #: admin/system-info/system-info.php:501
8790
  msgid "Memcached Extension is Loaded - "
8791
  msgstr ""
8792
 
8793
+ #: admin/system-info/system-info.php:503
8794
  msgid "Memcached Extension is Not Loaded"
8795
  msgstr ""
8796
 
8797
+ #: admin/system-info/system-info.php:516
8798
  msgid "MySQL DB Info is not displayed on Network/Multisite subsites"
8799
  msgstr ""
8800
 
8801
+ #: admin/system-info/system-info.php:537 includes/general-functions.php:283
8802
  msgid "Not Set"
8803
  msgstr ""
8804
 
8805
+ #: admin/system-info/system-info.php:543
8806
  msgid "MySQL Database Server Version: "
8807
  msgstr ""
8808
 
8809
+ #: admin/system-info/system-info.php:543
8810
  msgid "MySQL Client Version: "
8811
  msgstr ""
8812
 
8813
+ #: admin/system-info/system-info.php:543
8814
  msgid "MySQL Database Server: "
8815
  msgstr ""
8816
 
8817
+ #: admin/system-info/system-info.php:543
8818
  msgid "Your MySQL Database: "
8819
  msgstr ""
8820
 
8821
+ #: admin/system-info/system-info.php:543
8822
  msgid "SQL Mode: "
8823
  msgstr ""
8824
 
8825
+ #: admin/system-info/system-info.php:548 admin/system-info/system-info.php:551
8826
  msgid "MySQL Extension: "
8827
  msgstr ""
8828
 
8829
+ #: admin/system-info/system-info.php:548 admin/system-info/system-info.php:556
8830
  msgid "Installed|Enabled"
8831
  msgstr ""
8832
 
8833
+ #: admin/system-info/system-info.php:551 admin/system-info/system-info.php:559
8834
  msgid "NOT Installed|Enabled"
8835
  msgstr ""
8836
 
8837
+ #: admin/system-info/system-info.php:556 admin/system-info/system-info.php:559
8838
  msgid "MySQLi Extension: "
8839
  msgstr ""
8840
 
8841
+ #: admin/system-info/system-info.php:566
8842
  msgid "WordPress Installation Folder"
8843
  msgstr ""
8844
 
8845
+ #: admin/system-info/system-info.php:569
8846
  msgid "WordPress Installation Type"
8847
  msgstr ""
8848
 
8849
+ #: admin/system-info/system-info.php:571
8850
  msgid "Standard|GWIOD Site Type"
8851
  msgstr ""
8852
 
8853
+ #: admin/system-info/system-info.php:573
8854
  msgid "Network|Multisite"
8855
  msgstr ""
8856
 
8857
+ #: admin/system-info/system-info.php:575
8858
  msgid "BuddyPress"
8859
  msgstr ""
8860
 
8861
+ #: admin/system-info/system-info.php:577
8862
  msgid "bbPress"
8863
  msgstr ""
8864
 
8865
+ #: admin/system-info/system-info.php:579
8866
  msgid "Plugins Folder"
8867
  msgstr ""
8868
 
8869
+ #: admin/system-info/system-info.php:583
8870
  msgid "Uploads Folder"
8871
  msgstr ""
8872
 
8873
+ #: admin/system-info/system-info.php:589
8874
  msgid "UPLOADS Constant"
8875
  msgstr ""
8876
 
8877
+ #: admin/system-info/system-info.php:593
8878
  msgid "WP Permalink Structure"
8879
  msgstr ""
8880
 
8881
+ #: admin/system-info/system-info.php:598 admin/system-info/system-info.php:600
8882
  msgid "DISABLE_WP_CRON constant"
8883
  msgstr ""
8884
 
8885
+ #: admin/system-info/system-info.php:598
8886
  msgid "Standard WP Crons are disabled on your website."
8887
  msgstr ""
8888
 
8889
+ #: admin/system-info/system-info.php:600
8890
  msgid "Standard WP Crons are not disabled on your website."
8891
  msgstr ""
8892
 
8893
+ #: admin/system-info/system-info.php:603
8894
  msgid "Total Plugins Installed"
8895
  msgstr ""
8896
 
8897
+ #: admin/system-info/system-info.php:605
8898
  msgid "Total Must-Use Plugins Installed"
8899
  msgstr ""
8900
 
8901
+ #: admin/system-info/system-info.php:607
8902
  msgid "Total Plugins Activated"
8903
  msgstr ""
8904
 
8905
+ #: admin/system-info/system-info.php:610
8906
  msgid "Total Plugins Network Activated"
8907
  msgstr ""
8908
 
8909
+ #: admin/system-info/system-info.php:616 admin/system-info/system-info.php:618
8910
  msgid "Get Plugins List"
8911
  msgstr ""
8912
 
8913
+ #: admin/system-info/system-info.php:619
8914
  msgid "This window is draggable (top) and resizable (bottom right corner)"
8915
  msgstr ""
8916
 
8917
+ #: admin/system-info/system-info.php:624
8918
  msgid "Browser Compression Supported"
8919
  msgstr ""
8920
 
8921
+ #: admin/system-info/system-info.php:627
8922
  msgid "GD Library"
8923
  msgstr ""
8924
 
8925
+ #: admin/system-info/system-info.php:632
8926
  msgid "GD Extension is Loaded - "
8927
  msgstr ""
8928
 
8929
+ #: admin/system-info/system-info.php:635
8930
  msgid "GD Extension is Not Loaded"
8931
  msgstr ""
8932
 
8933
+ #: admin/system-info/system-info.php:638
8934
  msgid "ImageMagick"
8935
  msgstr ""
8936
 
8937
+ #: admin/system-info/system-info.php:644
8938
  msgid "ImageMagick Extension is Loaded - "
8939
  msgstr ""
8940
 
8941
+ #: admin/system-info/system-info.php:647
8942
  msgid "ImageMagick Extension is Not Loaded"
8943
  msgstr ""
8944
 
8945
+ #: admin/system-info/system-info.php:662
8946
  msgid "PHP Server|PHP.ini Info"
8947
  msgstr ""
8948
 
8949
+ #: admin/system-info/system-info.php:664
8950
  msgid ""
8951
  "File|Folder Permissions (CGI or DSO)|Script Owner User ID (UID)|File Owner "
8952
  "User ID"
8953
  msgstr ""
8954
 
8955
+ #: admin/system-info/system-info.php:672
8956
  msgid "PHP Version"
8957
  msgstr ""
8958
 
8959
+ #: admin/system-info/system-info.php:673
8960
  msgid "PHP Memory Usage"
8961
  msgstr ""
8962
 
8963
+ #: admin/system-info/system-info.php:673
8964
  msgid " MB"
8965
  msgstr ""
8966
 
8967
+ #: admin/system-info/system-info.php:674
8968
  msgid "WordPress Admin Memory Limit"
8969
  msgstr ""
8970
 
8971
+ #: admin/system-info/system-info.php:677
8972
  msgid "WordPress Base Memory Limit"
8973
  msgstr ""
8974
 
8975
+ #: admin/system-info/system-info.php:685 admin/system-info/system-info.php:691
8976
+ #: admin/system-info/system-info.php:694 admin/system-info/system-info.php:697
8977
  msgid "PHP Actual Configuration Memory Limit: "
8978
  msgstr ""
8979
 
8980
+ #: admin/system-info/system-info.php:685
8981
  msgid "The Memory Limit value is not available from your Server."
8982
  msgstr ""
8983
 
8984
+ #: admin/system-info/system-info.php:694 admin/system-info/system-info.php:697
8985
  msgid " Recommendation: Increase Memory Limit to 128M."
8986
  msgstr ""
8987
 
8988
+ #: admin/system-info/system-info.php:705 admin/system-info/system-info.php:707
8989
  msgid "PHP Configuration File (php.ini)"
8990
  msgstr ""
8991
 
8992
+ #: admin/system-info/system-info.php:707
8993
  msgid "None/Not in use"
8994
  msgstr ""
8995
 
8996
+ #: admin/system-info/system-info.php:720
8997
  msgid "WP Temp Dir: "
8998
  msgstr ""
8999
 
9000
+ #: admin/system-info/system-info.php:723
9001
  msgid "The WP_TEMP_DIR constant is being used in wp-config.php file"
9002
  msgstr ""
9003
 
9004
+ #: admin/system-info/system-info.php:729 admin/system-info/system-info.php:731
9005
  msgid "PHP Temp Dir: "
9006
  msgstr ""
9007
 
9008
+ #: admin/system-info/system-info.php:731 admin/system-info/system-info.php:742
9009
+ #: admin/system-info/system-info.php:750
9010
  msgid "Not set/defined or directory is not writable"
9011
  msgstr ""
9012
 
9013
+ #: admin/system-info/system-info.php:740 admin/system-info/system-info.php:742
9014
  msgid "PHP Upload Temp Dir: "
9015
  msgstr ""
9016
 
9017
+ #: admin/system-info/system-info.php:748 admin/system-info/system-info.php:750
9018
  msgid "Session Save Path: "
9019
  msgstr ""
9020
 
9021
+ #: admin/system-info/system-info.php:755
9022
  msgid "On | Cycles: "
9023
  msgstr ""
9024
 
9025
+ #: admin/system-info/system-info.php:760
9026
  msgid "Garbage Collector: "
9027
  msgstr ""
9028
 
9029
+ #: admin/system-info/system-info.php:763
9030
  msgid "PHP Max Upload Size"
9031
  msgstr ""
9032
 
9033
+ #: admin/system-info/system-info.php:766
9034
  msgid "PHP Max Post Size"
9035
  msgstr ""
9036
 
9037
+ #: admin/system-info/system-info.php:769
9038
  msgid "PHP Safe Mode"
9039
  msgstr ""
9040
 
9041
+ #: admin/system-info/system-info.php:778
9042
  msgid "PHP Allow URL fopen"
9043
  msgstr ""
9044
 
9045
+ #: admin/system-info/system-info.php:786
9046
  msgid "PHP Allow URL Include"
9047
  msgstr ""
9048
 
9049
+ #: admin/system-info/system-info.php:794
9050
  msgid "PHP Display Errors"
9051
  msgstr ""
9052
 
9053
+ #: admin/system-info/system-info.php:802
9054
  msgid "PHP Display Startup Errors"
9055
  msgstr ""
9056
 
9057
+ #: admin/system-info/system-info.php:810
9058
  msgid "PHP Expose PHP"
9059
  msgstr ""
9060
 
9061
+ #: admin/system-info/system-info.php:818
9062
  msgid "PHP Register Globals"
9063
  msgstr ""
9064
 
9065
+ #: admin/system-info/system-info.php:826
9066
  msgid "PHP MySQL Allow Persistent Connections"
9067
  msgstr ""
9068
 
9069
+ #: admin/system-info/system-info.php:834
9070
  msgid "PHP Output Buffering"
9071
  msgstr ""
9072
 
9073
+ #: admin/system-info/system-info.php:842
9074
  msgid "PHP Max Script Execution Time"
9075
  msgstr ""
9076
 
9077
+ #: admin/system-info/system-info.php:845
9078
  msgid "PHP Magic Quotes GPC"
9079
  msgstr ""
9080
 
9081
+ #: admin/system-info/system-info.php:853
9082
  msgid "PHP open_basedir"
9083
  msgstr ""
9084
 
9085
+ #: admin/system-info/system-info.php:858
9086
  msgid "Off/Not in use"
9087
  msgstr ""
9088
 
9089
+ #: admin/system-info/system-info.php:860
9090
  msgid "PHP XML Support"
9091
  msgstr ""
9092
 
9093
+ #: admin/system-info/system-info.php:862 admin/system-info/system-info.php:870
9094
+ #: admin/system-info/system-info.php:878
9095
  msgid "Yes"
9096
  msgstr ""
9097
 
9098
+ #: admin/system-info/system-info.php:865 admin/system-info/system-info.php:873
9099
+ #: admin/system-info/system-info.php:881
9100
  msgid "No"
9101
  msgstr ""
9102
 
9103
+ #: admin/system-info/system-info.php:868
9104
  msgid "PHP IPTC Support"
9105
  msgstr ""
9106
 
9107
+ #: admin/system-info/system-info.php:876
9108
  msgid "PHP Exif Support"
9109
  msgstr ""
9110
 
9111
+ #: admin/system-info/system-info.php:902
9112
  msgid "CGI File and Folder Permissions|Recommendations"
9113
  msgstr ""
9114
 
9115
+ #: admin/system-info/system-info.php:905 admin/system-info/system-info.php:938
 
 
 
 
9116
  msgid "Folder Path"
9117
  msgstr ""
9118
 
9119
+ #: admin/system-info/system-info.php:906 admin/system-info/system-info.php:939
9120
  msgid "Recommended"
9121
  msgstr ""
9122
 
9123
+ #: admin/system-info/system-info.php:906 admin/system-info/system-info.php:907
9124
+ #: admin/system-info/system-info.php:939 admin/system-info/system-info.php:940
9125
  msgid "Permissions"
9126
  msgstr ""
9127
 
9128
+ #: admin/system-info/system-info.php:907 admin/system-info/system-info.php:940
9129
  msgid "Current"
9130
  msgstr ""
9131
 
9132
+ #: admin/system-info/system-info.php:908 admin/system-info/system-info.php:941
9133
  msgid "Script Owner"
9134
  msgstr ""
9135
 
9136
+ #: admin/system-info/system-info.php:908 admin/system-info/system-info.php:941
9137
  msgid " User ID (UID)"
9138
  msgstr ""
9139
 
9140
+ #: admin/system-info/system-info.php:909 admin/system-info/system-info.php:942
9141
  msgid "File Owner"
9142
  msgstr ""
9143
 
9144
+ #: admin/system-info/system-info.php:909 admin/system-info/system-info.php:942
9145
  msgid " User ID"
9146
  msgstr ""
9147
 
9148
+ #: admin/system-info/system-info.php:935
9149
  msgid "DSO File and Folder Permissions|Recommendations"
9150
  msgstr ""
9151
 
9152
+ #: admin/system-info/system-info.php:970
9153
  msgid "System Info Processing Completion Time: "
9154
  msgstr ""
9155
 
9156
+ #: admin/system-info/system-info.php:1003
9157
  msgid "Website Headers Check Tool ~ "
9158
  msgstr ""
9159
 
9160
+ #: admin/system-info/system-info.php:1003
9161
  msgid ""
9162
  "Check your website Headers or another website's Headers by making a GET or "
9163
  "HEAD Request"
9164
  msgstr ""
9165
 
9166
+ #: admin/system-info/system-info.php:1010
9167
  msgid ""
9168
  "Check your website Headers or another website's Headers by making a GET "
9169
  "Request"
9170
  msgstr ""
9171
 
9172
+ #: admin/system-info/system-info.php:1027
9173
  msgid "GET Request Headers: "
9174
  msgstr ""
9175
 
9176
+ #: admin/system-info/system-info.php:1042
9177
  msgid ""
9178
  "Error: The WordPress wp_remote_get function is not available or is blocked "
9179
  "on your website/server."
9180
  msgstr ""
9181
 
9182
+ #: admin/system-info/system-info.php:1052
9183
+ #: admin/system-info/system-info.php:1113
9184
  msgid "Enter a Website URL - Example: "
9185
  msgstr ""
9186
 
9187
+ #: admin/system-info/system-info.php:1055
9188
  msgid ""
9189
  "This Headers check makes a GET Request using the WordPress wp_remote_get "
9190
  "function."
9191
  msgstr ""
9192
 
9193
+ #: admin/system-info/system-info.php:1055
9194
  msgid ""
9195
  "You can use the Check Headers HEAD Request tool to check headers using HEAD "
9196
  "instead of GET."
9197
  msgstr ""
9198
 
9199
+ #: admin/system-info/system-info.php:1061
9200
  msgid ""
9201
  "Check your website Headers or another website's Headers by making a HEAD "
9202
  "Request"
9203
  msgstr ""
9204
 
9205
+ #: admin/system-info/system-info.php:1094
9206
  msgid "HEAD Request Headers: "
9207
  msgstr ""
9208
 
9209
+ #: admin/system-info/system-info.php:1103
9210
  msgid ""
9211
  "Error: The cURL Headers Check does not work on your website. Either the cURL "
9212
  "Extension is not loaded or one of these functions is disabled in your php."
9213
  "ini file: curl_init, curl_exec and/or curl_setopt."
9214
  msgstr ""
9215
 
9216
+ #: admin/system-info/system-info.php:1116
9217
  msgid ""
9218
  "This cURL Headers check makes a HEAD Request and you will see HTTP/1.1 403 "
9219
  "Forbidden displayed if you are blocking HEAD Requests in your BPS root ."
9220
  "htaccess file on your website."
9221
  msgstr ""
9222
 
9223
+ #: admin/system-info/system-info.php:1116
9224
  msgid ""
9225
  "Use the Check Headers GET Request tool to check your headers using GET "
9226
  "instead of HEAD. This tool can also be used to check that your Security Log "
9786
  msgid "MailChimp for WordPress Plugin Request Methods AutoWhitelist successful"
9787
  msgstr ""
9788
 
9789
+ #: admin/wizard/pwizard-autofix.php:163
9790
+ msgid "PowerPress Podcasting Plugin Request Methods AutoWhitelist successful"
9791
+ msgstr ""
9792
+
9793
+ #: admin/wizard/pwizard-autofix.php:266
9794
  msgid "WooCommerce Plugin skip/bypass rule AutoWhitelist successful"
9795
  msgstr ""
9796
 
9797
+ #: admin/wizard/pwizard-autofix.php:291
9798
  msgid "Simple Lightbox Plugin skip/bypass rule AutoWhitelist successful"
9799
  msgstr ""
9800
 
9801
+ #: admin/wizard/pwizard-autofix.php:309
9802
  msgid ""
9803
  "WPBakery Visual Composer Plugin skip/bypass rule AutoWhitelist successful"
9804
  msgstr ""
9805
 
9806
+ #: admin/wizard/pwizard-autofix.php:327
9807
  msgid ""
9808
  "Event Espresso Attendee Mover Plugin skip/bypass rule AutoWhitelist "
9809
  "successful"
9810
  msgstr ""
9811
 
9812
+ #: admin/wizard/pwizard-autofix.php:345
9813
  msgid "WP Rocket Plugin skip/bypass rule AutoWhitelist successful"
9814
  msgstr ""
9815
 
9816
+ #: admin/wizard/pwizard-autofix.php:363
9817
  msgid "Easy Media Gallery Pro Plugin skip/bypass rule AutoWhitelist successful"
9818
  msgstr ""
9819
 
9820
+ #: admin/wizard/pwizard-autofix.php:381
9821
  msgid ""
9822
  "Nextend Facebook Connect Plugin skip/bypass rule AutoWhitelist successful"
9823
  msgstr ""
9824
 
9825
+ #: admin/wizard/pwizard-autofix.php:399
9826
  msgid "Shashin Plugin skip/bypass rule AutoWhitelist successful"
9827
  msgstr ""
9828
 
9829
+ #: admin/wizard/pwizard-autofix.php:416
9830
  msgid "Nocturnal Theme skip/bypass rule AutoWhitelist successful"
9831
  msgstr ""
9832
 
9833
+ #: admin/wizard/pwizard-autofix.php:434
9834
  msgid "Shopp Plugin skip/bypass rule AutoWhitelist successful"
9835
  msgstr ""
9836
 
9837
+ #: admin/wizard/pwizard-autofix.php:452
9838
  msgid ""
9839
  "WP-Invoice - Web Invoice and Billing Plugin skip/bypass rule AutoWhitelist "
9840
  "successful"
9841
  msgstr ""
9842
 
9843
+ #: admin/wizard/pwizard-autofix.php:470
9844
  msgid "wp-greet Plugin skip/bypass rule AutoWhitelist successful"
9845
  msgstr ""
9846
 
9847
+ #: admin/wizard/pwizard-autofix.php:488
9848
  msgid "WP Juicebox Plugin skip/bypass rule AutoWhitelist successful"
9849
  msgstr ""
9850
 
9851
+ #: admin/wizard/pwizard-autofix.php:506
9852
  msgid "Prayer Engine Plugin skip/bypass rule AutoWhitelist successful"
9853
  msgstr ""
9854
 
9855
+ #: admin/wizard/pwizard-autofix.php:524
9856
  msgid "Appointment Calendar Plugin skip/bypass rule AutoWhitelist successful"
9857
  msgstr ""
9858
 
9859
+ #: admin/wizard/pwizard-autofix.php:542
9860
  msgid "ThirstyAffiliates Plugin skip/bypass rule AutoWhitelist successful"
9861
  msgstr ""
9862
 
9863
+ #: admin/wizard/pwizard-autofix.php:560
9864
  msgid ""
9865
  "WooCommerce Ogone Payment Gateway Plugin skip/bypass rule AutoWhitelist "
9866
  "successful"
9867
  msgstr ""
9868
 
9869
+ #: admin/wizard/pwizard-autofix.php:577
9870
  msgid ""
9871
  "OIOpublisher Ad Manager Plugin skip/bypass rule AutoWhitelist successful"
9872
  msgstr ""
9873
 
9874
+ #: admin/wizard/pwizard-autofix.php:705
9875
  msgid "PDF Viewer (Envigeek Web Services) Plugin RFI AutoWhitelist successful"
9876
  msgstr ""
9877
 
9878
+ #: admin/wizard/pwizard-autofix.php:719
9879
  msgid "Marmoset Viewer Plugin RFI AutoWhitelist successful"
9880
  msgstr ""
9881
 
9882
+ #: admin/wizard/pwizard-autofix.php:733
9883
  msgid ""
9884
  "PDF viewer for WordPress (ThemeNcode code canyon) Plugin RFI AutoWhitelist "
9885
  "successful"
9886
  msgstr ""
9887
 
9888
+ #: admin/wizard/pwizard-autofix.php:747
9889
  msgid "jupdf pdf viewer Plugin RFI AutoWhitelist successful"
9890
  msgstr ""
9891
 
9892
+ #: admin/wizard/pwizard-autofix.php:761
9893
  msgid "UserPro (code canyon) Plugin RFI AutoWhitelist successful"
9894
  msgstr ""
9895
 
9896
+ #: admin/wizard/pwizard-autofix.php:774
9897
  msgid "NativeChurch Theme RFI AutoWhitelist successful"
9898
  msgstr ""
9899
 
9900
+ #: admin/wizard/pwizard-autofix.php:788
9901
  msgid "User Avatar (CTLT DEV) Plugin RFI AutoWhitelist successful"
9902
  msgstr ""
9903
 
9904
+ #: admin/wizard/pwizard-autofix.php:801
9905
  msgid "OIOpublisher Ad Manager Plugin RFI AutoWhitelist successful"
9906
  msgstr ""
9907
 
9908
+ #: admin/wizard/pwizard-autofix.php:815
9909
  msgid "Digital Access Pass (DAP) Plugin RFI AutoWhitelist successful"
9910
  msgstr ""
9911
 
9912
+ #: admin/wizard/pwizard-autofix.php:828
9913
  msgid "Easy Pagination (code canyon) Plugin RFI AutoWhitelist successful"
9914
  msgstr ""
9915
 
9916
+ #: admin/wizard/pwizard-autofix.php:841
9917
  msgid "iTheme2 Theme RFI AutoWhitelist successful"
9918
  msgstr ""
9919
 
9920
+ #: admin/wizard/pwizard-autofix.php:854
9921
  msgid "SmoothV4.1 Theme RFI AutoWhitelist successful"
9922
  msgstr ""
9923
 
9924
+ #: admin/wizard/pwizard-autofix.php:1006
9925
  msgid "WooCommerce PagSeguro Plugin BPSQSE AutoWhitelist successful"
9926
  msgstr ""
9927
 
9928
+ #: admin/wizard/pwizard-autofix.php:1024
9929
  msgid "Event Espresso Plugin BPSQSE AutoWhitelist successful"
9930
  msgstr ""
9931
 
9932
+ #: admin/wizard/pwizard-autofix.php:1039
9933
  msgid "WooCommerce Serial Key Plugin BPSQSE AutoWhitelist successful"
9934
  msgstr ""
9935
 
9936
+ #: admin/wizard/pwizard-autofix.php:1055
9937
  msgid "WooCommerce WorldPay Extension BPSQSE AutoWhitelist successful"
9938
  msgstr ""
9939
 
9940
+ #: admin/wizard/pwizard-autofix.php:1071
9941
  msgid "Kama Click Counter Plugin BPSQSE AutoWhitelist successful"
9942
  msgstr ""
9943
 
9944
+ #: admin/wizard/pwizard-autofix.php:1087
9945
  msgid "Riva Slider Pro Plugin BPSQSE AutoWhitelist successful"
9946
  msgstr ""
9947
 
9948
+ #: admin/wizard/pwizard-autofix.php:1103
9949
  msgid "WordPress Auto Spinner Plugin BPSQSE AutoWhitelist successful"
9950
  msgstr ""
9951
 
9952
+ #: admin/wizard/pwizard-autofix.php:1118
9953
  msgid "AgriTurismo Theme BPSQSE AutoWhitelist successful"
9954
  msgstr ""
9955
 
9956
+ #: admin/wizard/pwizard-autofix.php:1134
9957
  msgid "WP Content Copy Protection Pro Plugin BPSQSE AutoWhitelist successful"
9958
  msgstr ""
9959
 
9960
+ #: admin/wizard/pwizard-autofix.php:1150
9961
  msgid "PanoPress Plugin BPSQSE AutoWhitelist successful"
9962
  msgstr ""
9963
 
9964
+ #: admin/wizard/pwizard-autofix.php:1166
9965
  msgid ""
9966
  "Easy Social Share Buttons (Code Canyon) Plugin BPSQSE AutoWhitelist "
9967
  "successful"
9968
  msgstr ""
9969
 
9970
+ #: admin/wizard/pwizard-autofix.php:1182
9971
  msgid "MainWP Plugin BPSQSE AutoWhitelist successful"
9972
  msgstr ""
9973
 
9974
+ #: admin/wizard/pwizard-autofix.php:1197
9975
  msgid "Clever Course Theme BPSQSE AutoWhitelist successful"
9976
  msgstr ""
9977
 
9978
+ #: admin/wizard/pwizard-autofix.php:1213
9979
  msgid ""
9980
  "WP eStore (WP Cart for Digital Products) Plugin BPSQSE AutoWhitelist "
9981
  "successful"
9982
  msgstr ""
9983
 
9984
+ #: admin/wizard/pwizard-autofix.php:1229
9985
  msgid "WP eMember Plugin BPSQSE AutoWhitelist successful"
9986
  msgstr ""
9987
 
9988
+ #: admin/wizard/pwizard-autofix.php:1245
9989
  msgid "Easy Digital Downloads Plugin BPSQSE AutoWhitelist successful"
9990
  msgstr ""
9991
 
9992
+ #: admin/wizard/pwizard-autofix.php:1261
9993
  msgid ""
9994
  "MailPoet Newsletters (wysija newsletters) Plugin BPSQSE AutoWhitelist "
9995
  "successful"
9996
  msgstr ""
9997
 
9998
+ #: admin/wizard/pwizard-autofix.php:1277
9999
  msgid "MailChimp for WordPress Plugin BPSQSE AutoWhitelist successful"
10000
  msgstr ""
10001
 
10002
+ #: admin/wizard/pwizard-autofix.php:1293
10003
  msgid "Digital Access Pass (DAP) Plugin BPSQSE AutoWhitelist successful"
10004
  msgstr ""
10005
 
10006
+ #: admin/wizard/pwizard-autofix.php:1309
10007
  msgid "WordPress Newsletter (tribulant) Plugin BPSQSE AutoWhitelist successful"
10008
  msgstr ""
10009
 
10010
+ #: admin/wizard/pwizard-autofix.php:1413
10011
  msgid ""
10012
  "WooCommerce Product Feed Pro Plugin wp-admin skip/bypass rule AutoWhitelist "
10013
  "successful"
10014
  msgstr ""
10015
 
10016
+ #: admin/wizard/pwizard-autofix.php:1431
10017
  msgid ""
10018
  "WPBakery Visual Composer Plugin wp-admin skip/bypass rule AutoWhitelist "
10019
  "successful"
10020
  msgstr ""
10021
 
10022
+ #: admin/wizard/pwizard-autofix.php:1449
10023
  msgid ""
10024
  "Bookly Booking Plugin wp-admin skip/bypass rule AutoWhitelist successful"
10025
  msgstr ""
10026
 
10027
+ #: admin/wizard/pwizard-autofix.php:1467
10028
  msgid ""
10029
  "Easy Media Gallery Pro Plugin wp-admin skip/bypass rule AutoWhitelist "
10030
  "successful"
10031
  msgstr ""
10032
 
10033
+ #: admin/wizard/pwizard-autofix.php:1485
10034
  msgid ""
10035
  "NextGen Gallery Plugin wp-admin skip/bypass rule AutoWhitelist successful"
10036
  msgstr ""
10037
 
10038
+ #: admin/wizard/pwizard-autofix.php:1502
10039
  msgid "OptimizePress Theme wp-admin skip/bypass rule AutoWhitelist successful"
10040
  msgstr ""
10041
 
10042
+ #: admin/wizard/pwizard-autofix.php:1520
10043
  msgid ""
10044
  "tribulant Shopping Cart (WP Checkout) Plugin wp-admin skip/bypass rule "
10045
  "AutoWhitelist successful"
10046
  msgstr ""
10047
 
10048
+ #: admin/wizard/pwizard-autofix.php:1538
10049
  msgid ""
10050
  "ithemes Video Showcase Plugin wp-admin skip/bypass rule AutoWhitelist "
10051
  "successful"
10052
  msgstr ""
10053
 
10054
+ #: admin/wizard/pwizard-autofix.php:1556
10055
  msgid ""
10056
  "WP-Invoice - Web Invoice and Billing Plugin wp-admin skip/bypass rule "
10057
  "AutoWhitelist successful"
10058
  msgstr ""
10059
 
10060
+ #: admin/wizard/pwizard-autofix.php:1574
10061
  msgid "Yoast SEO Plugin wp-admin skip/bypass rule AutoWhitelist successful"
10062
  msgstr ""
10063
 
10064
+ #: admin/wizard/pwizard-autofix.php:1591
10065
  msgid ""
10066
  "Formidable Pro Plugin wp-admin skip/bypass rule AutoWhitelist successful"
10067
  msgstr ""
10068
 
10069
+ #: admin/wizard/pwizard-autofix.php:1609
10070
  msgid ""
10071
  "Google Typography Plugin wp-admin skip/bypass rule AutoWhitelist successful"
10072
  msgstr ""
10073
 
10074
+ #: admin/wizard/pwizard-autofix.php:1627
10075
  msgid "Flare Plugin wp-admin skip/bypass rule AutoWhitelist successful"
10076
  msgstr ""
10077
 
10078
+ #: admin/wizard/pwizard-autofix.php:1645
10079
  msgid "bbPress Plugin wp-admin skip/bypass rule AutoWhitelist successful"
10080
  msgstr ""
10081
 
10082
+ #: admin/wizard/pwizard-autofix.php:1663
10083
  msgid ""
10084
  "Spider Event Calendar (WordPress Event Calendar) Plugin wp-admin skip/bypass "
10085
  "rule AutoWhitelist successful"
10086
  msgstr ""
10087
 
10088
+ #: admin/wizard/pwizard-autofix.php:1685
10089
  msgid "BuddyPress Plugin wp-admin skip/bypass rule AutoWhitelist successful"
10090
  msgstr ""
10091
 
10092
+ #: admin/wizard/pwizard-autofix.php:1705
10093
  msgid ""
10094
  "WPML Translation Management Plugin wp-admin skip/bypass rule AutoWhitelist "
10095
  "successful"
10096
  msgstr ""
10097
 
10098
+ #: admin/wizard/pwizard-autofix.php:1723
10099
  msgid ""
10100
  "Events Manager Plugin wp-admin skip/bypass rule AutoWhitelist successful"
10101
  msgstr ""
10102
 
10103
+ #: admin/wizard/pwizard-autofix.php:1741
10104
  msgid ""
10105
  "MailPoet Newsletters (wysija newsletters) Plugin wp-admin skip/bypass rule "
10106
  "AutoWhitelist successful"
10107
  msgstr ""
10108
 
10109
+ #: admin/wizard/pwizard-autofix.php:1761
10110
  msgid ""
10111
  "Event Espresso Plugin wp-admin skip/bypass rule AutoWhitelist successful"
10112
  msgstr ""
10113
 
10114
+ #: admin/wizard/pwizard-autofix.php:1778
10115
  msgid "Content Egg Plugin wp-admin skip/bypass rule AutoWhitelist successful"
10116
  msgstr ""
10117
 
10118
+ #: admin/wizard/pwizard-autofix.php:1795
10119
+ msgid "Flatsome Theme wp-admin skip/bypass rule AutoWhitelist successful"
10120
+ msgstr ""
10121
+
10122
+ #: admin/wizard/pwizard-autofix.php:1913
10123
  msgid "Content Egg Plugin wp-admin BPSQSE AutoWhitelist successful"
10124
  msgstr ""
10125
 
10126
+ #: admin/wizard/pwizard-autofix.php:1931
10127
  msgid "Event Espresso Plugin wp-admin BPSQSE AutoWhitelist successful"
10128
  msgstr ""
10129
 
10130
+ #: admin/wizard/pwizard-autofix.php:1946
10131
  msgid ""
10132
  "Open Web Analytics (github) Plugin wp-admin BPSQSE AutoWhitelist successful"
10133
  msgstr ""
10134
 
10135
+ #: admin/wizard/pwizard-autofix.php:1962
10136
  msgid "UberGrid (code canyon) Plugin wp-admin BPSQSE AutoWhitelist successful"
10137
  msgstr ""
10138
 
10168
  msgid "Download Root htaccess File"
10169
  msgstr ""
10170
 
10171
+ #: admin/wizard/wizard-functions.php:44
10172
  msgid ""
10173
  "htaccess Files Disabled: Existing BPS htaccess files have been deleted and "
10174
  "new BPS htaccess files will not be created. All BPS htaccess features are "
10175
  "disabled."
10176
  msgstr ""
10177
 
10178
+ #: admin/wizard/wizard-functions.php:108
10179
  msgid "The secure.htaccess Root Master htaccess file was created successfully."
10180
  msgstr ""
10181
 
10182
+ #: admin/wizard/wizard-functions.php:108
10183
  msgid "Root Folder BulletProof Mode activated successfully."
10184
  msgstr ""
10185
 
10186
+ #: admin/wizard/wizard-functions.php:110
10187
  msgid ""
10188
  "Error: The secure.htaccess Root Master htaccess file and root .htaccess file "
10189
  "cannot be created. Root Folder BulletProof Mode has NOT been activated."
10190
  msgstr ""
10191
 
10192
+ #: admin/wizard/wizard-functions.php:110 admin/wizard/wizard-functions.php:630
10193
+ #: admin/wizard/wizard-functions.php:723
10194
  msgid ""
10195
  "If your Server configuration is DSO you must first make some one-time manual "
10196
  "changes to your website before running the Setup Wizard. Please click this "
10197
  "Forum Link for instructions: "
10198
  msgstr ""
10199
 
10200
+ #: admin/wizard/wizard-functions.php:110 admin/wizard/wizard-functions.php:630
10201
+ #: admin/wizard/wizard-functions.php:723 admin/wizard/wizard.php:237
10202
  #: admin/wizard/wizard.php:302 admin/wizard/wizard.php:308
10203
  #: admin/wizard/wizard.php:314 admin/wizard/wizard.php:320
10204
  #: admin/wizard/wizard.php:326
10205
  msgid "DSO Setup Steps"
10206
  msgstr ""
10207
 
10208
+ #: admin/wizard/wizard-functions.php:509
10209
  msgid " Root .htaccess File backup Successful!"
10210
  msgstr ""
10211
 
10212
+ #: admin/wizard/wizard-functions.php:519
10213
  msgid "Error: PHP/php.ini handler htaccess code check"
10214
  msgstr ""
10215
 
10216
+ #: admin/wizard/wizard-functions.php:519
10217
  msgid ""
10218
  "PHP/php.ini handler htaccess code was found in your root .htaccess file, but "
10219
  "was NOT found in BPS Custom Code. A new root .htaccess file was NOT created "
10221
  "Link "
10222
  msgstr ""
10223
 
10224
+ #: admin/wizard/wizard-functions.php:519
10225
  msgid "Add PHP/php.ini handler htaccess code to BPS Custom Code"
10226
  msgstr ""
10227
 
10228
+ #: admin/wizard/wizard-functions.php:519
10229
  msgid ""
10230
  " for instructions on how to copy your PHP/php.ini handler htaccess code to "
10231
  "BPS Custom Code."
10232
  msgstr ""
10233
 
10234
+ #: admin/wizard/wizard-functions.php:558 admin/wizard/wizard-functions.php:587
10235
  msgid ""
10236
  "Root .htaccess File writing completed. File Locked with 404 file permissions."
10237
  msgstr ""
10238
 
10239
+ #: admin/wizard/wizard-functions.php:562 admin/wizard/wizard-functions.php:591
10240
  msgid ""
10241
  "Root .htaccess File writing completed. File Locked with 444 file permissions."
10242
  msgstr ""
10243
 
10244
+ #: admin/wizard/wizard-functions.php:609 admin/wizard/wizard-functions.php:618
10245
+ #: admin/wizard/wizard-functions.php:817 admin/wizard/wizard.php:627
10246
+ #: admin/wizard/wizard.php:665 admin/wizard/wizard.php:723
10247
+ #: admin/wizard/wizard.php:763 admin/wizard/wizard.php:811
10248
+ #: includes/general-functions.php:965
10249
  msgid " DB Option created or updated Successfully!"
10250
  msgstr ""
10251
 
10252
+ #: admin/wizard/wizard-functions.php:628
10253
  msgid ""
10254
  "The wpadmin-secure.htaccess wp-admin Master htaccess file was created "
10255
  "successfully."
10256
  msgstr ""
10257
 
10258
+ #: admin/wizard/wizard-functions.php:628
10259
  msgid "wp-admin Folder BulletProof Mode activated successfully."
10260
  msgstr ""
10261
 
10262
+ #: admin/wizard/wizard-functions.php:630
10263
  msgid ""
10264
  "Error: The wpadmin-secure.htaccess wp-admin Master htaccess file and wp-"
10265
  "admin .htaccess file cannot be created. wp-admin Folder BulletProof Mode has "
10266
  "NOT been activated."
10267
  msgstr ""
10268
 
10269
+ #: admin/wizard/wizard-functions.php:636
10270
  msgid ""
10271
  "Go Daddy Managed WordPress Hosting option is set to Yes or Enable|Disable wp-"
10272
  "admin BulletProof Mode option is set to disabled. GDMW hosting does not "
10273
  "allow wp-admin htaccess files."
10274
  msgstr ""
10275
 
10276
+ #: admin/wizard/wizard-functions.php:660
10277
  msgid " wp-admin .htaccess File backup Successful!"
10278
  msgstr ""
10279
 
10280
+ #: admin/wizard/wizard-functions.php:721
10281
  msgid "The default.htaccess Master htaccess file was created successfully."
10282
  msgstr ""
10283
 
10284
+ #: admin/wizard/wizard-functions.php:723
10285
  msgid "Error: The default.htaccess Master htaccess file cannot be created."
10286
  msgstr ""
10287
 
10288
+ #: admin/wizard/wizard-functions.php:818 admin/wizard/wizard.php:442
10289
  msgid " Folder created Successfully!"
10290
  msgstr ""
10291
 
10292
+ #: admin/wizard/wizard-functions.php:915
10293
  msgid ""
10294
  "Security Log User Agent Filter Check Successful! 0 User Agent Filters to "
10295
  "update."
10296
  msgstr ""
10297
 
10298
+ #: admin/wizard/wizard-functions.php:925
10299
  msgid "Security Log User Agent Filter "
10300
  msgstr ""
10301
 
10302
+ #: admin/wizard/wizard-functions.php:925
10303
  msgid " created or updated Successfully!"
10304
  msgstr ""
10305
 
10332
  "Code"
10333
  msgstr ""
10334
 
10335
+ #: admin/wizard/wizard.php:210 admin/wizard/wizard.php:358
10336
  msgid " DB Table created Successfully!"
10337
  msgstr ""
10338
 
10339
+ #: admin/wizard/wizard.php:213 admin/wizard/wizard.php:361
10340
  msgid "Error: Unable to create DB Table "
10341
  msgstr ""
10342
 
10408
  "maximum memory limit setting allowed by your Host."
10409
  msgstr ""
10410
 
10411
+ #: admin/wizard/wizard.php:267 includes/functions.php:1189
10412
  msgid ""
10413
  "mod_authz_core is Loaded|Order, Allow, Deny directives are supported|BC: Yes|"
10414
  "IfModule: Yes"
10420
  "htaccess files will be created."
10421
  msgstr ""
10422
 
10423
+ #: admin/wizard/wizard.php:276 includes/functions.php:1174
10424
  msgid ""
10425
  "mod_access_compat is Loaded|Order, Allow, Deny directives are supported|"
10426
  "IfModule: No"
10477
  "should be either 644 or 604."
10478
  msgstr ""
10479
 
10480
+ #: admin/wizard/wizard.php:381
10481
  msgid "BPS Setup Verification & Error Checks"
10482
  msgstr ""
10483
 
10484
+ #: admin/wizard/wizard.php:383
10485
  msgid ""
10486
  "If you see all Green font messages displayed below, the Setup Wizard setup "
10487
  "completed successfully."
10488
  msgstr ""
10489
 
10490
+ #: admin/wizard/wizard.php:383
10491
  msgid ""
10492
  "If you see any Red font or Blue font messages displayed below, click the "
10493
  "Read Me help button above and read the \"Notes\" help section."
10494
  msgstr ""
10495
 
10496
+ #: admin/wizard/wizard.php:383
10497
  msgid ""
10498
  "Click the Read Me help button above for a list of recommended BPS Video "
10499
  "Tutorials to watch."
10500
  msgstr ""
10501
 
10502
+ #: admin/wizard/wizard.php:390 admin/wizard/wizard.php:1090
10503
  msgid "AutoFix (AutoWhitelist|AutoSetup|AutoCleanup)"
10504
  msgstr ""
10505
 
10506
+ #: admin/wizard/wizard.php:410
10507
  msgid "BulletProof Security Database Tables Setup"
10508
  msgstr ""
10509
 
10510
+ #: admin/wizard/wizard.php:439
10511
  msgid "BulletProof Security Core Folders Setup"
10512
  msgstr ""
10513
 
10514
+ #: admin/wizard/wizard.php:443
10515
  msgid "Error: Unable to create Folder "
10516
  msgstr ""
10517
 
10518
+ #: admin/wizard/wizard.php:471
10519
  msgid "BulletProof Security Core Files Setup"
10520
  msgstr ""
10521
 
10522
+ #: admin/wizard/wizard.php:474
10523
  msgid " File created or updated Successfully!"
10524
  msgstr ""
10525
 
10526
+ #: admin/wizard/wizard.php:475
10527
  msgid "Error: Unable to create or update File "
10528
  msgstr ""
10529
 
10530
+ #: admin/wizard/wizard.php:622
10531
+ msgid "BulletProof Security MScan Malware Scanner Setup"
10532
+ msgstr ""
10533
+
10534
+ #: admin/wizard/wizard.php:643
10535
  msgid "BulletProof Security DB Backup Setup"
10536
  msgstr ""
10537
 
10538
+ #: admin/wizard/wizard.php:662
10539
  msgid "BulletProof Security Hidden Plugin Folders|Files (HPF) Setup"
10540
  msgstr ""
10541
 
10542
+ #: admin/wizard/wizard.php:695
10543
  msgid ""
10544
  "Hidden Plugin Folders|Files (HPF) DB Options created or updated Successfully!"
10545
  msgstr ""
10546
 
10547
+ #: admin/wizard/wizard.php:698
10548
  msgid "BulletProof Security Security Log User Agent Filter Setup"
10549
  msgstr ""
10550
 
10551
+ #: admin/wizard/wizard.php:719
10552
  msgid "BulletProof Security Email Alerting & Log File Options Setup"
10553
  msgstr ""
10554
 
10555
+ #: admin/wizard/wizard.php:760
10556
  msgid "BulletProof Security Login Security & Monitoring Options Setup"
10557
  msgstr ""
10558
 
10559
+ #: admin/wizard/wizard.php:807
10560
+ msgid "BulletProof Security JTC-Lite Options Setup"
10561
+ msgstr ""
10562
+
10563
+ #: admin/wizard/wizard.php:898
10564
  msgid "The Setup Wizard has completed BPS Setup."
10565
  msgstr ""
10566
 
10567
+ #: admin/wizard/wizard.php:898
10568
  msgid ""
10569
  "Check the \"BPS Setup Verification & Error Checks\" section below for any "
10570
  "errors in Red Font."
10571
  msgstr ""
10572
 
10573
+ #: admin/wizard/wizard.php:904
10574
  msgid "Setup Wizard Completion Time: "
10575
  msgstr ""
10576
 
10577
+ #: admin/wizard/wizard.php:921
10578
  msgid "BulletProof Security ~ Setup Wizard"
10579
  msgstr ""
10580
 
10581
+ #: admin/wizard/wizard.php:986
10582
  msgid "htaccess Files Disabled Notice: "
10583
  msgstr ""
10584
 
10585
+ #: admin/wizard/wizard.php:986
10586
  msgid ""
10587
  "BPS has detected that htaccess files cannot be used on your website/server. "
10588
  "Click this "
10589
  msgstr ""
10590
 
10591
+ #: admin/wizard/wizard.php:986
10592
  msgid "htaccess Files Disabled Forum Topic"
10593
  msgstr ""
10594
 
10595
+ #: admin/wizard/wizard.php:986
10596
  msgid " link for more information before running the Wizards."
10597
  msgstr ""
10598
 
10599
+ #: admin/wizard/wizard.php:998
10600
  msgid "Setup Wizard ~ "
10601
  msgstr ""
10602
 
10603
+ #: admin/wizard/wizard.php:998
10604
  msgid "One-Click Complete Setup"
10605
  msgstr ""
10606
 
10607
+ #: admin/wizard/wizard.php:1015
10608
  msgid "Recommended Video Tutorials: "
10609
  msgstr ""
10610
 
10611
+ #: admin/wizard/wizard.php:1020
10612
  msgid "Security Log Video Tutorial"
10613
  msgstr ""
10614
 
10615
+ #: admin/wizard/wizard.php:1023
10616
  msgid "Setup Wizard Steps: "
10617
  msgstr ""
10618
 
10619
+ #: admin/wizard/wizard.php:1023
10620
  msgid "1. Click the Setup Wizard button."
10621
  msgstr ""
10622
 
10623
+ #: admin/wizard/wizard.php:1027
10624
  msgid ""
10625
  "Setup Wizard Pre-Installation Checks are automatically performed and "
10626
  "displayed on the Setup Wizard page. Green font messages mean everything is "
10631
  "to be fixed before running the Setup Wizard."
10632
  msgstr ""
10633
 
10634
+ #: admin/wizard/wizard.php:1027
10635
  msgid ""
10636
  "You can re-run the Setup Wizard again at any time. Your existing settings "
10637
  "will NOT be overwritten and will be re-saved. Any new or additional settings "
10638
  "that the Setup Wizard finds on your website will be saved/setup."
10639
  msgstr ""
10640
 
10641
+ #: admin/wizard/wizard.php:1027
10642
  msgid ""
10643
  "When the Setup Wizard has completed you will see \"The Setup Wizard has "
10644
  "completed BPS Setup.\""
10645
  msgstr ""
10646
 
10647
+ #: admin/wizard/wizard.php:1027
10648
  msgid ""
10649
  "Your existing Root and wp-admin htaccess files are backed up before new Root "
10650
  "and wp-admin htaccess files are created by the Setup Wizard. The BPS backup "
10651
  "folder is here: "
10652
  msgstr ""
10653
 
10654
+ #: admin/wizard/wizard.php:1030
10655
  msgid ""
10656
  " and the backed up htaccess file names are: root.htaccess and wpadmin."
10657
  "htaccess."
10658
  msgstr ""
10659
 
10660
+ #: admin/wizard/wizard.php:1040
10661
  msgid "Setup Wizard & Overview Video Tutorial"
10662
  msgstr ""
10663
 
10664
+ #: admin/wizard/wizard.php:1067
10665
  msgid "Setup Wizard Options ~ "
10666
  msgstr ""
10667
 
10668
+ #: admin/wizard/wizard.php:1067
10669
  msgid ""
10670
  "Click the Setup Wizard Options Read Me help button for help info about each "
10671
  "option setting"
10672
  msgstr ""
10673
 
10674
+ #: admin/wizard/wizard.php:1081
10675
  msgid "Forum Help Links:"
10676
  msgstr ""
10677
 
10678
+ #: admin/wizard/wizard.php:1085
10679
  msgid "Go Daddy Managed WordPress Hosting (GDMW)"
10680
  msgstr ""
10681
 
10682
+ #: admin/wizard/wizard.php:1086 admin/wizard/wizard.php:1090
10683
  msgid "Enable|Disable htaccess Files"
10684
  msgstr ""
10685
 
10686
+ #: admin/wizard/wizard.php:1087
10687
  msgid "AutoFix Forum Topic"
10688
  msgstr ""
10689
 
10690
+ #: admin/wizard/wizard.php:1090
10691
  msgid ""
10692
  "Setup Wizard AutoFix is turned On by default. When AutoFix is turned On the "
10693
  "Setup Wizard will automatically create htaccess whitelist rules in BPS "
10708
  "AutoFix Debug information so that we can figure out what the problem is."
10709
  msgstr ""
10710
 
10711
+ #: admin/wizard/wizard.php:1090 admin/wizard/wizard.php:1116
10712
  msgid "Go Daddy Managed WordPress Hosting (GDMW):"
10713
  msgstr ""
10714
 
10715
+ #: admin/wizard/wizard.php:1090
10716
  msgid ""
10717
  "This option is ONLY for a special type of Go Daddy Hosting account called "
10718
  "\"Managed WordPress Hosting\" and is NOT for regular/standard Go Daddy "
10721
  "section above for more information."
10722
  msgstr ""
10723
 
10724
+ #: admin/wizard/wizard.php:1090 admin/wizard/wizard.php:1128
10725
  msgid "Enable|Disable htaccess Files:"
10726
  msgstr ""
10727
 
10728
+ #: admin/wizard/wizard.php:1090
10729
  msgid "Before changing this option setting, click the "
10730
  msgstr ""
10731
 
10732
+ #: admin/wizard/wizard.php:1090
10733
  msgid ""
10734
  " Forum Help Link at the top of this Read Me help window to find out exactly "
10735
  "what this option setting does and when it should or should not be used. "
10737
  "htaccess Files Enabled: Will enable all BPS htaccess freatures and files."
10738
  msgstr ""
10739
 
10740
+ #: admin/wizard/wizard.php:1090
10741
  msgid "Enable|Disable wp-admin BulletProof Mode"
10742
  msgstr ""
10743
 
10744
+ #: admin/wizard/wizard.php:1090
10745
  msgid ""
10746
  "The default setting is already set to: wp-admin BulletProof Mode Enabled. If "
10747
  "you would like to disable wp-admin BulletProof Mode select wp-admin "
10748
  "BulletProof Mode Disabled."
10749
  msgstr ""
10750
 
10751
+ #: admin/wizard/wizard.php:1090 admin/wizard/wizard.php:1152
10752
  msgid "Zip File Download Fix (Incapsula, Proxy, Other Cause):"
10753
  msgstr ""
10754
 
10755
+ #: admin/wizard/wizard.php:1090
10756
  msgid ""
10757
  "This option should only be set to On if you are seeing a 403 error and/or "
10758
  "unable to download these Zip files: Custom Code Export Zip file, Login "
10768
  "Firewall again."
10769
  msgstr ""
10770
 
10771
+ #: admin/wizard/wizard.php:1090 admin/wizard/wizard.php:1163
10772
  msgid "Network|Multisite Sitewide Login Security Settings"
10773
  msgstr ""
10774
 
10775
+ #: admin/wizard/wizard.php:1090
10776
  msgid ""
10777
+ "This option is for Network|Multisite sites only. This is an independent "
10778
  "option Form that creates and saves Login Security DB option settings for all "
10779
  "Network sites when you click the Save Network LSM Options Sitewide button. "
10780
  "If Login Security option settings have already been setup and saved for any "
10789
  "Reset, Sort DB Rows: Ascending - Show Oldest Login First."
10790
  msgstr ""
10791
 
10792
+ #: admin/wizard/wizard.php:1090 admin/wizard/wizard.php:1171
10793
+ msgid "Network|Multisite Sitewide JTC-Lite Settings"
10794
+ msgstr ""
10795
+
10796
+ #: admin/wizard/wizard.php:1090
10797
+ msgid ""
10798
+ "This option is for Network|Multisite sites only. This is an independent "
10799
+ "option Form that creates and saves JTC-Lite DB option settings for all "
10800
+ "Network sites when you click the Save Network JTC Options Sitewide button. "
10801
+ "If JTC option settings have already been setup and saved for any Network "
10802
+ "site then those JTC option settings will not be changed. If JTC options "
10803
+ "settings have not already been setup and saved for any Network site then "
10804
+ "those JTC option settings will be created and saved with these default "
10805
+ "settings: JTC CAPTCHA: jtc, JTC ToolTip: Type/Enter: jtc, JTC Title|Text: "
10806
+ "Hover or click the text box below, Enable|Disable JTC Anti-Spam For These "
10807
+ "Forms: Login Form checkbox is checked and will display the JTC CAPTCHA text "
10808
+ "box on the Login Form."
10809
+ msgstr ""
10810
+
10811
+ #: admin/wizard/wizard.php:1104
10812
  msgid "AutoFix (AutoWhitelist|AutoSetup|AutoCleanup):"
10813
  msgstr ""
10814
 
10815
+ #: admin/wizard/wizard.php:1106
10816
  msgid "AutoFix On"
10817
  msgstr ""
10818
 
10819
+ #: admin/wizard/wizard.php:1107
10820
  msgid "AutoFix Off"
10821
  msgstr ""
10822
 
10823
+ #: admin/wizard/wizard.php:1118
10824
  msgid "No (default setting)"
10825
  msgstr ""
10826
 
10827
+ #: admin/wizard/wizard.php:1119
10828
  msgid "Yes (ONLY if you have Managed WordPress Hosting)"
10829
  msgstr ""
10830
 
10831
+ #: admin/wizard/wizard.php:1129
10832
  msgid ""
10833
  "CAUTION: Click the Read Me help button before changing this option setting"
10834
  msgstr ""
10835
 
10836
+ #: admin/wizard/wizard.php:1131
10837
  msgid "htaccess Files Enabled"
10838
  msgstr ""
10839
 
10840
+ #: admin/wizard/wizard.php:1132
10841
  msgid "htaccess Files Disabled"
10842
  msgstr ""
10843
 
10844
+ #: admin/wizard/wizard.php:1140
10845
  msgid "Enable|Disable wp-admin BulletProof Mode:"
10846
  msgstr ""
10847
 
10848
+ #: admin/wizard/wizard.php:1142
10849
  msgid "wp-admin BulletProof Mode Enabled"
10850
  msgstr ""
10851
 
10852
+ #: admin/wizard/wizard.php:1143
10853
  msgid "wp-admin BulletProof Mode Disabled"
10854
  msgstr ""
10855
 
10856
+ #: admin/wizard/wizard.php:1154
10857
  msgid "Zip File Download Fix Off"
10858
  msgstr ""
10859
 
10860
+ #: admin/wizard/wizard.php:1155
10861
  msgid "Zip File Download Fix On"
10862
  msgstr ""
10863
 
10864
+ #: admin/wizard/wizard.php:1202
10865
  msgid ""
10866
  "The Zip File Download Fix option is set to On. This option should only be "
10867
  "set to On if you are unable to download these Zip files: Custom Code Export "
10869
  "htaccess file backup Zip file."
10870
  msgstr ""
10871
 
10872
+ #: admin/wizard/wizard.php:1215
10873
  msgid "The Zip File Download Fix option is set to Off."
10874
  msgstr ""
10875
 
10876
+ #: admin/wizard/wizard.php:1229
10877
  msgid ""
10878
  "Error: Your Network site exceeds the default WP criteria for a large network "
10879
  "site. Either you have more than 10,000 users or more than 10,000 sites. "
10881
  "org for assistance."
10882
  msgstr ""
10883
 
10884
+ #: admin/wizard/wizard.php:1236
10885
  msgid " LSM DB Options created or updated Successfully!"
10886
  msgstr ""
10887
 
10888
+ #: admin/wizard/wizard.php:1306
10889
+ msgid ""
10890
+ "Error: Your Network site exceeds the default WP criteria for a large network "
10891
+ "site. Either you have more than 10,000 users or more than 10,000 sites. "
10892
+ "Please send an email to info@ait-pro.com for help. Use this email Subject "
10893
+ "line: Setup Wizard Options Large Network Site Help."
10894
+ msgstr ""
10895
+
10896
+ #: admin/wizard/wizard.php:1313
10897
+ msgid " JTC DB Options created or updated Successfully!"
10898
+ msgstr ""
10899
+
10900
+ #: bulletproof-security.php:101
10901
  msgid "Uninstall Options"
10902
  msgstr ""
10903
 
10904
+ #: bulletproof-security.php:122
10905
  msgid "Forum - Support"
10906
  msgstr ""
10907
 
10908
+ #: bulletproof-security.php:123
10909
  msgid "Upgrade"
10910
  msgstr ""
10911
 
10913
  msgid "Hourly"
10914
  msgstr ""
10915
 
10916
+ #: includes/functions.php:225
10917
  msgid "Reload BPS Status Display"
10918
  msgstr ""
10919
 
10920
+ #: includes/functions.php:269
10921
  msgid "The BPS Status Display is set to Off by default on the System Info page"
10922
  msgstr ""
10923
 
10924
+ #: includes/functions.php:334
10925
  msgid "BPS "
10926
  msgstr ""
10927
 
10928
+ #: includes/functions.php:340 includes/functions.php:365
10929
  msgid "BPS Setup Wizard Notification"
10930
  msgstr ""
10931
 
10932
+ #: includes/functions.php:340 includes/functions.php:365
10933
  msgid ""
10934
  " to go to the BPS Setup Wizard page and click the Setup Wizard button to "
10935
  "setup the BPS plugin."
10936
  msgstr ""
10937
 
10938
+ #: includes/functions.php:345
10939
  msgid "BPS Alert! An htaccess file was NOT found in your WordPress root folder"
10940
  msgstr ""
10941
 
10942
+ #: includes/functions.php:345
10943
  msgid ""
10944
  "If you have deleted the root htaccess file for troubleshooting purposes you "
10945
  "can disregard this Alert."
10946
  msgstr ""
10947
 
10948
+ #: includes/functions.php:345 includes/functions.php:566
10949
+ #: includes/functions.php:621 includes/hud-autofix-setup.php:68
10950
+ #: includes/hud-dismiss-functions.php:539
10951
  msgid "Go to the "
10952
  msgstr ""
10953
 
10954
+ #: includes/functions.php:345 includes/functions.php:566
10955
  msgid " and click the Root Folder BulletProof Mode Activate button."
10956
  msgstr ""
10957
 
10958
+ #: includes/functions.php:370
10959
  msgid "BPS Alert! Your site may not be protected by BulletProof Security"
10960
  msgstr ""
10961
 
10962
+ #: includes/functions.php:370
10963
  msgid ""
10964
  "The BPS version: BULLETPROOF x.x SECURE .HTACCESS line of code was not found "
10965
  "at the top of your Root htaccess file."
10966
  msgstr ""
10967
 
10968
+ #: includes/functions.php:370
10969
  msgid ""
10970
  "The BPS version line of code MUST be at the very top of your Root htaccess "
10971
  "file."
10972
  msgstr ""
10973
 
10974
+ #: includes/functions.php:370 includes/functions.php:643
10975
  msgid ""
10976
  " to go to the BPS Setup Wizard page and click the Setup Wizard button to "
10977
  "setup the BPS plugin again."
10978
  msgstr ""
10979
 
10980
+ #: includes/functions.php:370
10981
  msgid ""
10982
  "Important Note: If you manually added other htaccess code above the BPS "
10983
  "version line of code in your root htaccess file, you can copy that code to "
10985
  "BPS root htaccess file. "
10986
  msgstr ""
10987
 
10988
+ #: includes/functions.php:370
10989
  msgid ""
10990
  " to go to the BPS Custom Code page, add your Root custom htaccess code in an "
10991
  "appropriate Root Custom Code text box and click the Save Root Custom Code "
10992
  "button before running the Setup Wizard again."
10993
  msgstr ""
10994
 
10995
+ #: includes/functions.php:542
10996
  msgid "The BPS Automatic htaccess File Update Completed Successfully!"
10997
  msgstr ""
10998
 
10999
+ #: includes/functions.php:555
11000
  msgid "RBM"
11001
  msgstr ""
11002
 
11003
+ #: includes/functions.php:566
11004
  msgid ""
11005
  "BPS Alert! Your site does not appear to be protected by BulletProof Security"
11006
  msgstr ""
11007
 
11008
+ #: includes/functions.php:621
11009
  msgid ""
11010
  "BPS Alert! An htaccess file was NOT found in your WordPress wp-admin folder"
11011
  msgstr ""
11012
 
11013
+ #: includes/functions.php:621
11014
  msgid ""
11015
  "If you have deleted the wp-admin htaccess file for troubleshooting purposes "
11016
  "you can disregard this Alert."
11017
  msgstr ""
11018
 
11019
+ #: includes/functions.php:621
11020
  msgid " and click the wp-admin Folder BulletProof Mode Activate button."
11021
  msgstr ""
11022
 
11023
+ #: includes/functions.php:643
11024
  msgid ""
11025
  "BPS Alert! Your wp-admin folder may not be protected by BulletProof Security"
11026
  msgstr ""
11027
 
11028
+ #: includes/functions.php:643
11029
  msgid ""
11030
  "The BPS version: BULLETPROOF .xx.x WP-ADMIN SECURE .HTACCESS line of code "
11031
  "was not found at the top of your wp-admin htaccess file."
11032
  msgstr ""
11033
 
11034
+ #: includes/functions.php:643
11035
  msgid ""
11036
  "The BPS version line of code MUST be at the very top of your wp-admin "
11037
  "htaccess file."
11038
  msgstr ""
11039
 
11040
+ #: includes/functions.php:643
11041
  msgid ""
11042
  "Important Note: If you manually added other htaccess code above the BPS "
11043
  "version line of code in your wp-admin htaccess file, you can copy that code "
11045
  "in the BPS wp-admin htaccess file. "
11046
  msgstr ""
11047
 
11048
+ #: includes/functions.php:643
11049
  msgid ""
11050
  " to go to the BPS Custom Code page, add your wp-admin custom htaccess code "
11051
  "in an appropriate wp-admin Custom Code text box and click the Save wp-admin "
11052
  "Custom Code button before running the Setup Wizard again."
11053
  msgstr ""
11054
 
11055
+ #: includes/functions.php:728
11056
  msgid "WBM"
11057
  msgstr ""
11058
 
11059
+ #: includes/functions.php:739
11060
  msgid ""
11061
  "BPS Alert! A valid BPS htaccess file was NOT found in your wp-admin folder"
11062
  msgstr ""
11063
 
11064
+ #: includes/functions.php:739
11065
  msgid ""
11066
  "BulletProof Mode for the wp-admin folder should also be activated when you "
11067
  "have BulletProof Mode activated for the Root folder."
11068
  msgstr ""
11069
 
11070
+ #: includes/functions.php:901
11071
  msgid "LSM"
11072
  msgstr ""
11073
 
11074
+ #: includes/functions.php:944
11075
+ msgid "JTC"
 
 
 
 
11076
  msgstr ""
11077
 
11078
+ #: includes/functions.php:987 includes/functions.php:993
11079
  msgid "ISL"
11080
  msgstr ""
11081
 
11082
+ #: includes/functions.php:1031 includes/functions.php:1037
11083
  msgid "ACE"
11084
  msgstr ""
11085
 
11086
+ #: includes/functions.php:1093
11087
  msgid ""
11088
  "Apache Modules|Directives|Backward Compatibility(Yes|No)|IfModule(Yes|No): "
11089
  msgstr ""
11090
 
11091
+ #: includes/functions.php:1139
11092
  msgid ""
11093
  "ERROR: wp_remote_get() function is blocked or unable to get the URL path"
11094
  msgstr ""
11095
 
11096
+ #: includes/functions.php:1157
11097
  msgid "mod_access_compat and mod_authz_core or mod_rewrite is NOT Loaded"
11098
  msgstr ""
11099
 
11100
+ #: includes/functions.php:1167
11101
  msgid ""
11102
  "mod_access_compat is Loaded|Order, Allow, Deny directives are supported|"
11103
  "IfModule: Yes"
11104
  msgstr ""
11105
 
11106
+ #: includes/functions.php:1181
11107
  msgid "mod_access_compat is Loaded"
11108
  msgstr ""
11109
 
11110
+ #: includes/functions.php:1194
11111
  msgid ""
11112
  "mod_authz_core is Loaded|Order, Allow, Deny directives are NOT supported|BC: "
11113
  "No|IfModule: Yes"
11114
  msgstr ""
11115
 
11116
+ #: includes/functions.php:1199
11117
  msgid "mod_authz_core is Loaded|IfModule: No"
11118
  msgstr ""
11119
 
11120
+ #: includes/functions.php:1204
11121
  msgid "mod_authz_core is NOT Loaded|IfModule: Yes"
11122
  msgstr ""
11123
 
11124
+ #: includes/functions.php:1210
11125
  msgid "mod_authz_core is NOT Loaded"
11126
  msgstr ""
11127
 
11128
+ #: includes/functions.php:1217
11129
  msgid ""
11130
  "mod_authz_host is Loaded|Order, Allow, Deny directives are supported|BC: Yes|"
11131
  "IfModule: Yes"
11132
  msgstr ""
11133
 
11134
+ #: includes/functions.php:1222
11135
  msgid ""
11136
  "mod_authz_host is Loaded|Order, Allow, Deny directives are NOT supported|BC: "
11137
  "No|IfModule: Yes"
11138
  msgstr ""
11139
 
11140
+ #: includes/functions.php:1227
11141
  msgid "mod_authz_host is Loaded|IfModule: No"
11142
  msgstr ""
11143
 
11144
+ #: includes/functions.php:1232
11145
  msgid "mod_authz_host is NOT Loaded|IfModule: Yes"
11146
  msgstr ""
11147
 
11148
+ #: includes/functions.php:1237
11149
  msgid "mod_authz_host is NOT Loaded"
11150
  msgstr ""
11151
 
11152
+ #: includes/functions.php:1244
11153
  msgid "mod_rewrite Module is Loaded"
11154
  msgstr ""
11155
 
11156
+ #: includes/functions.php:1249
11157
  msgid "mod_rewrite Inconclusive: Status is not 200, 301, 302, 403 or 404"
11158
  msgstr ""
11159
 
11413
  "file."
11414
  msgstr ""
11415
 
11416
+ #: includes/general-functions.php:966
11417
+ msgid " Hosting Account Root Folder Option setup or updated Successfully!"
11418
+ msgstr ""
11419
+
11420
  #: includes/hidden-plugin-folders-cron.php:21
11421
  msgid "Once every minute"
11422
  msgstr ""
11457
  msgid "Once Daily"
11458
  msgstr ""
11459
 
11460
+ #: includes/hidden-plugin-folders-cron.php:255
11461
+ #: includes/hidden-plugin-folders-cron.php:270
11462
+ #: includes/hidden-plugin-folders-cron.php:285
11463
+ #: includes/hidden-plugin-folders-cron.php:300
11464
+ #: includes/hidden-plugin-folders-cron.php:329
11465
  msgid "BPS Hidden Plugin Folder|Files (HPF) Alert"
11466
  msgstr ""
11467
 
11468
+ #: includes/hidden-plugin-folders-cron.php:255
11469
  msgid ""
11470
  "A non-standard WP hello.php file (Hello Dolly Plugin) was found in your /"
11471
  "plugins/ folder and it is hidden/not displayed on the WordPress Plugins "
11475
  "below in the "
11476
  msgstr ""
11477
 
11478
+ #: includes/hidden-plugin-folders-cron.php:255
11479
+ #: includes/hidden-plugin-folders-cron.php:270
11480
+ #: includes/hidden-plugin-folders-cron.php:285
11481
+ #: includes/hidden-plugin-folders-cron.php:300
11482
+ #: includes/hidden-plugin-folders-cron.php:329
11483
  msgid "Ignore Hidden Plugin Folders & Files"
11484
  msgstr ""
11485
 
11486
+ #: includes/hidden-plugin-folders-cron.php:255
11487
+ #: includes/hidden-plugin-folders-cron.php:270
11488
+ #: includes/hidden-plugin-folders-cron.php:285
11489
+ #: includes/hidden-plugin-folders-cron.php:300
11490
+ #: includes/hidden-plugin-folders-cron.php:329
11491
  msgid " textarea box option to make this Alert go away."
11492
  msgstr ""
11493
 
11494
+ #: includes/hidden-plugin-folders-cron.php:255
11495
+ #: includes/hidden-plugin-folders-cron.php:270
11496
+ #: includes/hidden-plugin-folders-cron.php:285
11497
+ #: includes/hidden-plugin-folders-cron.php:300
11498
  msgid "File Path: "
11499
  msgstr ""
11500
 
11501
+ #: includes/hidden-plugin-folders-cron.php:255
11502
+ #: includes/hidden-plugin-folders-cron.php:270
11503
+ #: includes/hidden-plugin-folders-cron.php:285
11504
+ #: includes/hidden-plugin-folders-cron.php:300
11505
+ #: includes/hidden-plugin-folders-cron.php:329
11506
  msgid "HPF Ignore Rule: "
11507
  msgstr ""
11508
 
11509
+ #: includes/hidden-plugin-folders-cron.php:255
11510
+ #: includes/hidden-plugin-folders-cron.php:270
11511
+ #: includes/hidden-plugin-folders-cron.php:285
11512
+ #: includes/hidden-plugin-folders-cron.php:300
11513
+ #: includes/hidden-plugin-folders-cron.php:329
11514
  msgid "Last Modified Time: "
11515
  msgstr ""
11516
 
11517
+ #: includes/hidden-plugin-folders-cron.php:255
11518
+ #: includes/hidden-plugin-folders-cron.php:270
11519
+ #: includes/hidden-plugin-folders-cron.php:285
11520
+ #: includes/hidden-plugin-folders-cron.php:300
11521
+ #: includes/hidden-plugin-folders-cron.php:329
11522
  msgid "Last Change Time: "
11523
  msgstr ""
11524
 
11525
+ #: includes/hidden-plugin-folders-cron.php:255
11526
+ #: includes/hidden-plugin-folders-cron.php:270
11527
+ #: includes/hidden-plugin-folders-cron.php:285
11528
+ #: includes/hidden-plugin-folders-cron.php:300
11529
+ #: includes/hidden-plugin-folders-cron.php:329
11530
  msgid "Last Access Time: "
11531
  msgstr ""
11532
 
11533
+ #: includes/hidden-plugin-folders-cron.php:255
11534
+ #: includes/hidden-plugin-folders-cron.php:270
11535
+ #: includes/hidden-plugin-folders-cron.php:285
11536
+ #: includes/hidden-plugin-folders-cron.php:300
11537
  msgid "File Contents: "
11538
  msgstr ""
11539
 
11540
+ #: includes/hidden-plugin-folders-cron.php:270
11541
  msgid ""
11542
  "A non-standard WP index.php file found in your /plugins/ folder appears to "
11543
  "have been altered/tampered with. Most likely the index.php file is a hacker "
11546
  "HPF Ignore Rule shown below in the "
11547
  msgstr ""
11548
 
11549
+ #: includes/hidden-plugin-folders-cron.php:285
11550
  msgid ""
11551
  "An htaccess file was found in your /plugins/ folder and it does not appear "
11552
  "to be a BPS htaccess file. Most likely the htaccess file is a hacker file or "
11555
  "Ignore Rule shown below in the "
11556
  msgstr ""
11557
 
11558
+ #: includes/hidden-plugin-folders-cron.php:300
11559
  msgid ""
11560
  "An unrecognized/non-standard WP file was found in your /plugins/ folder. "
11561
  "This file may be a hacker file or contain hacker code. If you recognize this "
11563
  "adding the HPF Ignore Rule shown below in the "
11564
  msgstr ""
11565
 
11566
+ #: includes/hidden-plugin-folders-cron.php:329
11567
  msgid ""
11568
  "A plugin folder was found in your /plugins/ folder that is either a hidden "
11569
  "plugin (plugin that is not displayed on the WordPress Plugins page) or an "
11572
  "folder check by adding the HPF Ignore Rule shown below in the "
11573
  msgstr ""
11574
 
11575
+ #: includes/hidden-plugin-folders-cron.php:329
11576
  msgid "Plugin Folder Path: "
11577
  msgstr ""
11578
 
11623
  #: includes/hud-dismiss-functions.php:389
11624
  #: includes/hud-dismiss-functions.php:445
11625
  #: includes/hud-dismiss-functions.php:488
11626
+ #: includes/hud-dismiss-functions.php:644
 
11627
  msgid ""
11628
  "To Dismiss this Notice click the Dismiss Notice button below. To Reset "
11629
  "Dismiss Notices click the Reset|Recheck Dismiss Notices button on the Custom "
11646
  #: includes/hud-dismiss-functions.php:389
11647
  #: includes/hud-dismiss-functions.php:445
11648
  #: includes/hud-dismiss-functions.php:488
11649
+ #: includes/hud-dismiss-functions.php:577
11650
+ #: includes/hud-dismiss-functions.php:644
11651
+ #: includes/hud-dismiss-functions.php:672
11652
  msgid "Dismiss Notice"
11653
  msgstr ""
11654
 
11862
  msgid " after you have uninstalled/deleted the WP Rocket plugin."
11863
  msgstr ""
11864
 
11865
+ #: includes/hud-autofix-whitelist.php:75
11866
  msgid ""
11867
  "CC Root Text Box 9: Allow HEAD Requests General Rule for Jetpack, Marmoset "
11868
  "Viewer, BackWPup, MailPoet Newsletters (wysija newsletters), "
11869
  "BackUpWordPress, Broken Link Checker, MailChimp for WordPress Plugins"
11870
  msgstr ""
11871
 
11872
+ #: includes/hud-autofix-whitelist.php:123
11873
  msgid "CC Root Text Box 10: WooCommerce Plugin"
11874
  msgstr ""
11875
 
11876
+ #: includes/hud-autofix-whitelist.php:129
11877
  msgid "CC Root Text Box 10: Simple Lightbox Plugin"
11878
  msgstr ""
11879
 
11880
+ #: includes/hud-autofix-whitelist.php:135
11881
  msgid "CC Root Text Box 10: WPBakery Visual Composer Plugin"
11882
  msgstr ""
11883
 
11884
+ #: includes/hud-autofix-whitelist.php:141
11885
  msgid "CC Root Text Box 10: Event Espresso Attendee Mover Plugin"
11886
  msgstr ""
11887
 
11888
+ #: includes/hud-autofix-whitelist.php:147
11889
  msgid "CC Root Text Box 10: WP Rocket Plugin"
11890
  msgstr ""
11891
 
11892
+ #: includes/hud-autofix-whitelist.php:153
11893
  msgid "CC Root Text Box 10: Easy Media Gallery Pro Plugin"
11894
  msgstr ""
11895
 
11896
+ #: includes/hud-autofix-whitelist.php:159
11897
  msgid "CC Root Text Box 10: Nextend Facebook Connect Plugin"
11898
  msgstr ""
11899
 
11900
+ #: includes/hud-autofix-whitelist.php:165
11901
  msgid "CC Root Text Box 10: Shashin Plugin"
11902
  msgstr ""
11903
 
11904
+ #: includes/hud-autofix-whitelist.php:171
11905
  msgid "CC Root Text Box 10: Nocturnal Theme"
11906
  msgstr ""
11907
 
11908
+ #: includes/hud-autofix-whitelist.php:177
11909
  msgid "CC Root Text Box 10: Shopp Plugin"
11910
  msgstr ""
11911
 
11912
+ #: includes/hud-autofix-whitelist.php:183
11913
  msgid "CC Root Text Box 10: WP-Invoice - Web Invoice and Billing Plugin"
11914
  msgstr ""
11915
 
11916
+ #: includes/hud-autofix-whitelist.php:189
11917
  msgid "CC Root Text Box 10: wp-greet Plugin"
11918
  msgstr ""
11919
 
11920
+ #: includes/hud-autofix-whitelist.php:195
11921
  msgid "CC Root Text Box 10: WP-Juicebox Plugin"
11922
  msgstr ""
11923
 
11924
+ #: includes/hud-autofix-whitelist.php:201
11925
  msgid "CC Root Text Box 10: Prayer Engine Plugin"
11926
  msgstr ""
11927
 
11928
+ #: includes/hud-autofix-whitelist.php:207
11929
  msgid "CC Root Text Box 10: Appointment Calendar Plugin"
11930
  msgstr ""
11931
 
11932
+ #: includes/hud-autofix-whitelist.php:213
11933
  msgid "CC Root Text Box 10: ThirstyAffiliates Plugin"
11934
  msgstr ""
11935
 
11936
+ #: includes/hud-autofix-whitelist.php:219
11937
  msgid "CC Root Text Box 10: WooCommerce Ogone Payment Gateway Plugin"
11938
  msgstr ""
11939
 
11940
+ #: includes/hud-autofix-whitelist.php:225
11941
  msgid "CC Root Text Box 10: OIOpublisher Ad Manager Plugin"
11942
  msgstr ""
11943
 
11944
+ #: includes/hud-autofix-whitelist.php:256
11945
  msgid "CC Root Text Box 11: PDF Viewer (Envigeek Web Services) Plugin"
11946
  msgstr ""
11947
 
11948
+ #: includes/hud-autofix-whitelist.php:262
11949
  msgid "CC Root Text Box 11: Marmoset Viewer Plugin"
11950
  msgstr ""
11951
 
11952
+ #: includes/hud-autofix-whitelist.php:268
11953
  msgid ""
11954
  "CC Root Text Box 11: PDF viewer for WordPress (ThemeNcode code canyon) Plugin"
11955
  msgstr ""
11956
 
11957
+ #: includes/hud-autofix-whitelist.php:274
11958
  msgid "CC Root Text Box 11: jupdf pdf viewer Plugin"
11959
  msgstr ""
11960
 
11961
+ #: includes/hud-autofix-whitelist.php:280
11962
  msgid "CC Root Text Box 11: UserPro (code canyon) Plugin"
11963
  msgstr ""
11964
 
11965
+ #: includes/hud-autofix-whitelist.php:286
11966
  msgid "CC Root Text Box 11: NativeChurch Theme"
11967
  msgstr ""
11968
 
11969
+ #: includes/hud-autofix-whitelist.php:292
11970
  msgid "CC Root Text Box 11: User Avatar (CTLT DEV) Plugin"
11971
  msgstr ""
11972
 
11973
+ #: includes/hud-autofix-whitelist.php:298
11974
  msgid "CC Root Text Box 11: OIOpublisher Ad Manager Plugin"
11975
  msgstr ""
11976
 
11977
+ #: includes/hud-autofix-whitelist.php:304
11978
  msgid "CC Root Text Box 11: Digital Access Pass (DAP) Plugin"
11979
  msgstr ""
11980
 
11981
+ #: includes/hud-autofix-whitelist.php:310
11982
  msgid "CC Root Text Box 11: Easy Pagination (code canyon) Plugin"
11983
  msgstr ""
11984
 
11985
+ #: includes/hud-autofix-whitelist.php:316
11986
  msgid "CC Root Text Box 11: iTheme2 Theme"
11987
  msgstr ""
11988
 
11989
+ #: includes/hud-autofix-whitelist.php:322
11990
  msgid "CC Root Text Box 11: SmoothV4.1 Theme"
11991
  msgstr ""
11992
 
11993
+ #: includes/hud-autofix-whitelist.php:395
11994
  msgid "CC Root Text Box 12: WooCommerce PagSeguro Plugin"
11995
  msgstr ""
11996
 
11997
+ #: includes/hud-autofix-whitelist.php:401
11998
  msgid "CC Root Text Box 12: Event Espresso Plugin"
11999
  msgstr ""
12000
 
12001
+ #: includes/hud-autofix-whitelist.php:407
12002
  msgid "CC Root Text Box 12: WooCommerce Serial Key Plugin"
12003
  msgstr ""
12004
 
12005
+ #: includes/hud-autofix-whitelist.php:413
12006
  msgid "CC Root Text Box 12: WooCommerce WorldPay Extension"
12007
  msgstr ""
12008
 
12009
+ #: includes/hud-autofix-whitelist.php:419
12010
  msgid "CC Root Text Box 12: Kama Click Counter Plugin"
12011
  msgstr ""
12012
 
12013
+ #: includes/hud-autofix-whitelist.php:425
12014
  msgid "CC Root Text Box 12: Riva Slider Pro Plugin"
12015
  msgstr ""
12016
 
12017
+ #: includes/hud-autofix-whitelist.php:431
12018
  msgid "CC Root Text Box 12: WordPress Auto Spinner Plugin"
12019
  msgstr ""
12020
 
12021
+ #: includes/hud-autofix-whitelist.php:437
12022
  msgid "CC Root Text Box 12: AgriTurismo Theme"
12023
  msgstr ""
12024
 
12025
+ #: includes/hud-autofix-whitelist.php:443
12026
  msgid "CC Root Text Box 12: WP Content Copy Protection Plugin"
12027
  msgstr ""
12028
 
12029
+ #: includes/hud-autofix-whitelist.php:449
12030
  msgid "CC Root Text Box 12: PanoPress Plugin"
12031
  msgstr ""
12032
 
12033
+ #: includes/hud-autofix-whitelist.php:455
12034
  msgid "CC Root Text Box 12: Easy Social Share Buttons (Code Canyon) Plugin"
12035
  msgstr ""
12036
 
12037
+ #: includes/hud-autofix-whitelist.php:461
12038
  msgid "CC Root Text Box 12: MainWP Plugin"
12039
  msgstr ""
12040
 
12041
+ #: includes/hud-autofix-whitelist.php:467
12042
  msgid "CC Root Text Box 12: Clever Course Theme"
12043
  msgstr ""
12044
 
12045
+ #: includes/hud-autofix-whitelist.php:473
12046
  msgid "CC Root Text Box 12: WP eStore (WP Cart for Digital Products) Plugin"
12047
  msgstr ""
12048
 
12049
+ #: includes/hud-autofix-whitelist.php:479
12050
  msgid "CC Root Text Box 12: WP eMember Plugin"
12051
  msgstr ""
12052
 
12053
+ #: includes/hud-autofix-whitelist.php:485
12054
  msgid "CC Root Text Box 12: Easy Digital Downloads Plugin"
12055
  msgstr ""
12056
 
12057
+ #: includes/hud-autofix-whitelist.php:491
12058
  msgid "CC Root Text Box 12: MailPoet Newsletters (wysija newsletters) Plugin"
12059
  msgstr ""
12060
 
12061
+ #: includes/hud-autofix-whitelist.php:497
12062
  msgid "CC Root Text Box 12: MailChimp for WordPress Plugin"
12063
  msgstr ""
12064
 
12065
+ #: includes/hud-autofix-whitelist.php:503
12066
  msgid "CC Root Text Box 12: Digital Access Pass (DAP) Plugin"
12067
  msgstr ""
12068
 
12069
+ #: includes/hud-autofix-whitelist.php:509
12070
  msgid "CC Root Text Box 12: WordPress Newsletter (tribulant) Plugin"
12071
  msgstr ""
12072
 
12073
+ #: includes/hud-autofix-whitelist.php:568
12074
  msgid "CC wp-admin Text Box 3: WooCommerce Product Feed Pro Plugin"
12075
  msgstr ""
12076
 
12077
+ #: includes/hud-autofix-whitelist.php:574
12078
  msgid "CC wp-admin Text Box 3: WPBakery Visual Composer Plugin"
12079
  msgstr ""
12080
 
12081
+ #: includes/hud-autofix-whitelist.php:580
12082
  msgid "CC wp-admin Text Box 3: Bookly Booking Plugin"
12083
  msgstr ""
12084
 
12085
+ #: includes/hud-autofix-whitelist.php:586
12086
  msgid "CC wp-admin Text Box 3: Easy Media Gallery Pro Plugin"
12087
  msgstr ""
12088
 
12089
+ #: includes/hud-autofix-whitelist.php:592
12090
  msgid "CC wp-admin Text Box 3: NextGen Gallery Plugin"
12091
  msgstr ""
12092
 
12093
+ #: includes/hud-autofix-whitelist.php:598
12094
  msgid "CC wp-admin Text Box 3: OptimizePress Theme"
12095
  msgstr ""
12096
 
12097
+ #: includes/hud-autofix-whitelist.php:604
12098
  msgid "CC wp-admin Text Box 3: tribulant Shopping Cart (WP Checkout) Plugin"
12099
  msgstr ""
12100
 
12101
+ #: includes/hud-autofix-whitelist.php:610
12102
  msgid "CC wp-admin Text Box 3: ithemes Video Showcase Plugin"
12103
  msgstr ""
12104
 
12105
+ #: includes/hud-autofix-whitelist.php:616
12106
  msgid "CC wp-admin Text Box 3: WP-Invoice - Web Invoice and Billing Plugin"
12107
  msgstr ""
12108
 
12109
+ #: includes/hud-autofix-whitelist.php:622
12110
  msgid "CC wp-admin Text Box 3: Yoast SEO Plugin"
12111
  msgstr ""
12112
 
12113
+ #: includes/hud-autofix-whitelist.php:628
12114
  msgid "CC wp-admin Text Box 3: Formidable Pro Plugin"
12115
  msgstr ""
12116
 
12117
+ #: includes/hud-autofix-whitelist.php:634
12118
  msgid "CC wp-admin Text Box 3: Google Typography Plugin"
12119
  msgstr ""
12120
 
12121
+ #: includes/hud-autofix-whitelist.php:640
12122
  msgid "CC wp-admin Text Box 3: Flare Plugin"
12123
  msgstr ""
12124
 
12125
+ #: includes/hud-autofix-whitelist.php:646
12126
  msgid "CC wp-admin Text Box 3: bbPress Plugin"
12127
  msgstr ""
12128
 
12129
+ #: includes/hud-autofix-whitelist.php:652
12130
  msgid ""
12131
  "CC wp-admin Text Box 3: Spider Event Calendar (WordPress Event Calendar) "
12132
  "Plugin"
12133
  msgstr ""
12134
 
12135
+ #: includes/hud-autofix-whitelist.php:661
12136
  msgid "CC wp-admin Text Box 3: BuddyPress Plugin"
12137
  msgstr ""
12138
 
12139
+ #: includes/hud-autofix-whitelist.php:669
12140
  msgid "CC wp-admin Text Box 3: WPML Translation Management Plugin"
12141
  msgstr ""
12142
 
12143
+ #: includes/hud-autofix-whitelist.php:675
12144
  msgid "CC wp-admin Text Box 3: Events Manager Plugin"
12145
  msgstr ""
12146
 
12147
+ #: includes/hud-autofix-whitelist.php:681
12148
  msgid ""
12149
  "CC wp-admin Text Box 3: MailPoet Newsletters (wysija newsletters) Plugin"
12150
  msgstr ""
12151
 
12152
+ #: includes/hud-autofix-whitelist.php:687
12153
  msgid "CC wp-admin Text Box 3: Event Espresso Plugin"
12154
  msgstr ""
12155
 
12156
+ #: includes/hud-autofix-whitelist.php:693
12157
  msgid "CC wp-admin Text Box 3: Content Egg (Free and Pro) Plugin"
12158
  msgstr ""
12159
 
12160
+ #: includes/hud-autofix-whitelist.php:699
12161
+ msgid "CC wp-admin Text Box 3: Flatsome Theme"
12162
+ msgstr ""
12163
+
12164
+ #: includes/hud-autofix-whitelist.php:727
12165
  msgid "CC wp-admin Text Box 4: Content Egg (Free and Pro) Plugin"
12166
  msgstr ""
12167
 
12168
+ #: includes/hud-autofix-whitelist.php:733
12169
  msgid "CC wp-admin Text Box 4: Event Espresso Plugin"
12170
  msgstr ""
12171
 
12172
+ #: includes/hud-autofix-whitelist.php:740
12173
  msgid "CC wp-admin Text Box 4: Open Web Analytics (github) Plugin"
12174
  msgstr ""
12175
 
12176
+ #: includes/hud-autofix-whitelist.php:747
12177
  msgid "CC wp-admin Text Box 4: UberGrid (code canyon) Plugin"
12178
  msgstr ""
12179
 
12180
+ #: includes/hud-autofix-whitelist.php:753
12181
  msgid "BPS Setup Wizard AutoFix (AutoWhitelist|AutoSetup|AutoCleanup) Notice"
12182
  msgstr ""
12183
 
12184
+ #: includes/hud-autofix-whitelist.php:753
12185
  msgid ""
12186
  "One or more of your plugins or your theme requires a BPS Custom Code "
12187
  "whitelist rule to be automatically created by the Setup Wizard."
12188
  msgstr ""
12189
 
12190
+ #: includes/hud-autofix-whitelist.php:753
12191
  msgid "Setup Wizard link"
12192
  msgstr ""
12193
 
12194
+ #: includes/hud-autofix-whitelist.php:753
12195
  msgid ""
12196
  " and click the Setup Wizard button to automatically create BPS Custom Code "
12197
  "whitelist rules."
12198
  msgstr ""
12199
 
12200
+ #: includes/hud-autofix-whitelist.php:753
12201
  msgid "This BPS AutoFix check can be turned Off on the "
12202
  msgstr ""
12203
 
12204
+ #: includes/hud-autofix-whitelist.php:753
12205
  msgid ""
12206
  " page if you do not want BPS to check for any plugin or theme whitelist "
12207
  "rules."
12208
  msgstr ""
12209
 
12210
+ #: includes/hud-autofix-whitelist.php:762
12211
  msgid "BPS AutoFix Debug: Custom Code Text Box Number and Plugin or Theme Name"
12212
  msgstr ""
12213
 
12214
+ #: includes/hud-autofix-whitelist.php:765
12215
  msgid "No Plugin or Theme AutoFix Custom Code Whitelist Rules were found"
12216
  msgstr ""
12217
 
12472
  msgid " for more information."
12473
  msgstr ""
12474
 
12475
+ #: includes/hud-dismiss-functions.php:520
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12476
  msgid "Notice: BPS Query String Exploits Code Changes"
12477
  msgstr ""
12478
 
12479
+ #: includes/hud-dismiss-functions.php:520
12480
  msgid ""
12481
  "Older BPS Query String Exploits code was found in BPS Custom Code. Several "
12482
  "Query String Exploits rules were changed/added/modified in the root ."
12483
  "htaccess file in BPS .49.6, .50.2 & .50.3."
12484
  msgstr ""
12485
 
12486
+ #: includes/hud-dismiss-functions.php:520
12487
  msgid ""
12488
  "Copy the new Query String Exploits section of code from your root .htaccess "
12489
  "file and paste it into this BPS Custom Code text box: CUSTOM CODE BPSQSE BPS "
12490
  "QUERY STRING EXPLOITS and click the Save Root Custom Code button."
12491
  msgstr ""
12492
 
12493
+ #: includes/hud-dismiss-functions.php:520
12494
  msgid ""
12495
  "This Notice will go away once you have copied the new Query String Exploits "
12496
  "code to BPS Custom Code and clicked the Save Root Custom Code button."
12497
  msgstr ""
12498
 
12499
+ #: includes/hud-dismiss-functions.php:539
12500
  msgid "BPS Alert! A BPS htaccess file was NOT found in the BPS Backup folder: "
12501
  msgstr ""
12502
 
12503
+ #: includes/hud-dismiss-functions.php:539
12504
  msgid " and click the BPS Backup Folder BulletProof Mode Activate button."
12505
  msgstr ""
12506
 
12507
+ #: includes/hud-dismiss-functions.php:577
12508
  msgid "New Improved BPS Speed Boost Cache Code"
12509
  msgstr ""
12510
 
12511
+ #: includes/hud-dismiss-functions.php:577
12512
  msgid ""
12513
  "Older BPS Speed Boost Cache Code was found saved in this BPS Custom Code "
12514
  "text box: CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE"
12515
  msgstr ""
12516
 
12517
+ #: includes/hud-dismiss-functions.php:577
12518
  msgid ""
12519
  "Newer improved BPS Speed Boost Cache Code has been created, which should "
12520
  "improve website load speed performance even more."
12521
  msgstr ""
12522
 
12523
+ #: includes/hud-dismiss-functions.php:577
12524
  msgid "Get The New Improved BPS Speed Boost Cache Code"
12525
  msgstr ""
12526
 
12527
+ #: includes/hud-dismiss-functions.php:577
12528
  msgid ". To dismiss this Notice click the Dismiss Notice button below."
12529
  msgstr ""
12530
 
12531
+ #: includes/hud-dismiss-functions.php:577
12532
  msgid ""
12533
  "To Reset Dismiss Notices click the Reset|Recheck Dismiss Notices button on "
12534
  "the Custom Code page."
12535
  msgstr ""
12536
 
12537
+ #: includes/hud-dismiss-functions.php:584
12538
  msgid "BPS Speed Boost Cache Custom Code Notice"
12539
  msgstr ""
12540
 
12541
+ #: includes/hud-dismiss-functions.php:584
12542
  msgid ""
12543
  "BPS Speed Boost Cache Code was found in this BPS Custom Code text box: "
12544
  "CUSTOM CODE TOP PHP/PHP.INI HANDLER/CACHE CODE"
12545
  msgstr ""
12546
 
12547
+ #: includes/hud-dismiss-functions.php:584
12548
  msgid ""
12549
  "and another caching plugin's Marker text was also found in this BPS Custom "
12550
  "Code text box."
12551
  msgstr ""
12552
 
12553
+ #: includes/hud-dismiss-functions.php:584
12554
  msgid "Click this link: "
12555
  msgstr ""
12556
 
12557
+ #: includes/hud-dismiss-functions.php:584
12558
  msgid "BPS Speed Boost Cache Custom Code Notice Forum Topic"
12559
  msgstr ""
12560
 
12561
+ #: includes/hud-dismiss-functions.php:584
12562
  msgid " for help information on what this Notice means and what to do next."
12563
  msgstr ""
12564
 
12565
+ #: includes/hud-dismiss-functions.php:644
12566
  msgid "BPS Plugin Automatic Update Notice"
12567
  msgstr ""
12568
 
12569
+ #: includes/hud-dismiss-functions.php:644
12570
  msgid ""
12571
  "Would you like to have BPS plugin updates installed automatically? Click "
12572
  "this link: "
12573
  msgstr ""
12574
 
12575
+ #: includes/hud-dismiss-functions.php:644
12576
  msgid " and click the BPS MU Tools Enable BPS Plugin AutoUpdates link."
12577
  msgstr ""
12578
 
12579
+ #: includes/hud-dismiss-functions.php:672
12580
+ msgid "MScan First Run Notice"
12581
+ msgstr ""
12582
+
12583
+ #: includes/hud-dismiss-functions.php:672
12584
+ msgid ""
12585
+ "Please take a few minutes to read the \"Basic Info|Recommendations|"
12586
+ "Limitations|Restrictions\" help section in the"
12587
+ msgstr ""
12588
+
12589
+ #: includes/hud-dismiss-functions.php:672
12590
+ msgid "before running a scan."
12591
+ msgstr ""
12592
+
12593
+ #: includes/hud-dismiss-functions.php:672
12594
+ msgid ""
12595
+ "It is highly recommended that you use the Scan Time Estimate Tool before "
12596
+ "running an actual scan. The Scan Time Estimate Tool calculates the total "
12597
+ "estimated time of a scan based on your MScan Option settings without "
12598
+ "actually running a scan. To Dismiss this Notice click the Dismiss Notice "
12599
+ "button below. To Reset Dismiss Notices click the Reset|Recheck Dismiss "
12600
+ "Notices button on the Custom Code page."
12601
+ msgstr ""
12602
+
12603
+ #: includes/login-security.php:115 includes/login-security.php:121
12604
+ #: includes/login-security.php:328 includes/login-security.php:458
12605
+ #: includes/login-security.php:464 includes/login-security.php:584
12606
+ #: includes/login-security.php:708 includes/login-security.php:714
12607
+ #: includes/login-security.php:718 includes/login-security.php:724
12608
+ #: includes/login-security.php:728 includes/login-security.php:738
12609
+ #: includes/login-security.php:746 includes/login-security.php:750
12610
+ #: includes/login-security.php:757 includes/login-security.php:761
12611
+ #: includes/login-security.php:771 includes/login-security.php:775
12612
+ #: includes/login-security.php:784 includes/login-security.php:788
12613
  msgid "ERROR:"
12614
  msgstr ""
12615
 
12616
+ #: includes/login-security.php:115 includes/login-security.php:328
12617
+ #: includes/login-security.php:458 includes/login-security.php:584
12618
  msgid " This user account has been locked until "
12619
  msgstr ""
12620
 
12621
+ #: includes/login-security.php:115 includes/login-security.php:328
12622
+ #: includes/login-security.php:458 includes/login-security.php:584
12623
  msgid ""
12624
  " due to too many failed login attempts. You can login again after the "
12625
  "Lockout Time above has expired."
12626
  msgstr ""
12627
 
12628
+ #: includes/login-security.php:121 includes/login-security.php:464
12629
+ #: includes/login-security.php:724 includes/login-security.php:728
12630
+ #: includes/login-security.php:771 includes/login-security.php:775
12631
+ #: includes/login-security.php:784 includes/login-security.php:788
12632
  msgid " Invalid Entry."
12633
  msgstr ""
12634
 
12635
+ #: includes/login-security.php:121 includes/login-security.php:464
12636
+ #: includes/login-security.php:708 includes/login-security.php:714
12637
+ #: includes/login-security.php:718 includes/login-security.php:724
12638
+ #: includes/login-security.php:728 includes/login-security.php:738
12639
+ #: includes/login-security.php:746 includes/login-security.php:750
12640
+ #: includes/login-security.php:757 includes/login-security.php:761
12641
+ #: includes/login-security.php:771 includes/login-security.php:775
12642
+ #: includes/login-security.php:784 includes/login-security.php:788
12643
  msgid "Lost your password?"
12644
  msgstr ""
12645
 
12646
+ #: includes/login-security.php:130 includes/login-security.php:473
12647
+ #: includes/login-security.php:908
12648
+ msgid "<strong>ERROR</strong>: Incorrect CAPTCHA Entered."
12649
+ msgstr ""
12650
+
12651
+ #: includes/login-security.php:149 includes/login-security.php:288
12652
+ #: includes/login-security.php:542
12653
  msgid "A User has logged in on website: "
12654
  msgstr ""
12655
 
12656
+ #: includes/login-security.php:150 includes/login-security.php:166
12657
+ #: includes/login-security.php:197 includes/login-security.php:213
12658
+ #: includes/login-security.php:289 includes/login-security.php:305
12659
+ #: includes/login-security.php:543 includes/login-security.php:560
12660
  msgid ""
12661
  "To take further action go to the Login Security page. If you do not want to "
12662
  "receive further email alerts change or turn off Login Security Email Alerts."
12663
  msgstr ""
12664
 
12665
+ #: includes/login-security.php:151 includes/login-security.php:167
12666
+ #: includes/login-security.php:198 includes/login-security.php:214
12667
+ #: includes/login-security.php:248 includes/login-security.php:290
12668
+ #: includes/login-security.php:306 includes/login-security.php:402
12669
+ #: includes/login-security.php:497 includes/login-security.php:545
12670
+ #: includes/login-security.php:562 includes/login-security.php:658
12671
  msgid "Username:"
12672
  msgstr ""
12673
 
12674
+ #: includes/login-security.php:152 includes/login-security.php:168
12675
+ #: includes/login-security.php:199 includes/login-security.php:215
12676
+ #: includes/login-security.php:249 includes/login-security.php:291
12677
+ #: includes/login-security.php:307 includes/login-security.php:403
12678
+ #: includes/login-security.php:498 includes/login-security.php:546
12679
+ #: includes/login-security.php:563 includes/login-security.php:659
12680
  msgid "Status:"
12681
  msgstr ""
12682
 
12683
+ #: includes/login-security.php:153 includes/login-security.php:169
12684
+ #: includes/login-security.php:200 includes/login-security.php:216
12685
+ #: includes/login-security.php:250 includes/login-security.php:292
12686
+ #: includes/login-security.php:308 includes/login-security.php:404
12687
+ #: includes/login-security.php:499 includes/login-security.php:547
12688
+ #: includes/login-security.php:564 includes/login-security.php:660
12689
  msgid "User Role:"
12690
  msgstr ""
12691
 
12692
+ #: includes/login-security.php:154 includes/login-security.php:170
12693
+ #: includes/login-security.php:201 includes/login-security.php:217
12694
+ #: includes/login-security.php:251 includes/login-security.php:293
12695
+ #: includes/login-security.php:309 includes/login-security.php:405
12696
+ #: includes/login-security.php:500 includes/login-security.php:548
12697
+ #: includes/login-security.php:565 includes/login-security.php:661
12698
  msgid "Email:"
12699
  msgstr ""
12700
 
12701
+ #: includes/login-security.php:155 includes/login-security.php:171
12702
+ #: includes/login-security.php:202 includes/login-security.php:218
12703
+ #: includes/login-security.php:254 includes/login-security.php:294
12704
+ #: includes/login-security.php:310 includes/login-security.php:408
12705
+ #: includes/login-security.php:503 includes/login-security.php:549
12706
+ #: includes/login-security.php:566 includes/login-security.php:664
12707
  msgid "User IP Address:"
12708
  msgstr ""
12709
 
12710
+ #: includes/login-security.php:156 includes/login-security.php:172
12711
+ #: includes/login-security.php:203 includes/login-security.php:219
12712
+ #: includes/login-security.php:255 includes/login-security.php:295
12713
+ #: includes/login-security.php:311 includes/login-security.php:409
12714
+ #: includes/login-security.php:504 includes/login-security.php:550
12715
+ #: includes/login-security.php:567 includes/login-security.php:665
12716
  msgid "User Hostname:"
12717
  msgstr ""
12718
 
12719
+ #: includes/login-security.php:157 includes/login-security.php:173
12720
+ #: includes/login-security.php:204 includes/login-security.php:220
12721
+ #: includes/login-security.php:256 includes/login-security.php:296
12722
+ #: includes/login-security.php:312 includes/login-security.php:410
12723
+ #: includes/login-security.php:505 includes/login-security.php:551
12724
+ #: includes/login-security.php:568 includes/login-security.php:666
12725
  msgid "Request URI:"
12726
  msgstr ""
12727
 
12728
+ #: includes/login-security.php:158 includes/login-security.php:174
12729
+ #: includes/login-security.php:205 includes/login-security.php:221
12730
+ #: includes/login-security.php:257 includes/login-security.php:297
12731
+ #: includes/login-security.php:313 includes/login-security.php:411
12732
+ #: includes/login-security.php:506 includes/login-security.php:552
12733
+ #: includes/login-security.php:569 includes/login-security.php:667
12734
  msgid "Website:"
12735
  msgstr ""
12736
 
12737
+ #: includes/login-security.php:165 includes/login-security.php:212
12738
+ #: includes/login-security.php:304 includes/login-security.php:559
12739
  msgid "An Administrator has logged in on website: "
12740
  msgstr ""
12741
 
12742
+ #: includes/login-security.php:196
12743
  msgid "Test A User has logged in on website: "
12744
  msgstr ""
12745
 
12746
+ #: includes/login-security.php:243 includes/login-security.php:397
12747
+ #: includes/login-security.php:492 includes/login-security.php:653
12748
  msgid "A User Account has been locked on website: "
12749
  msgstr ""
12750
 
12751
+ #: includes/login-security.php:244 includes/login-security.php:398
12752
+ #: includes/login-security.php:493 includes/login-security.php:654
12753
  msgid ""
12754
  "To take further action go to the Login Security page. If no action is taken "
12755
  "then the User will be able to try and login again after the Lockout Time has "
12757
  "off Login Security Email Alerts."
12758
  msgstr ""
12759
 
12760
+ #: includes/login-security.php:245 includes/login-security.php:399
12761
+ #: includes/login-security.php:494 includes/login-security.php:655
12762
  msgid ""
12763
  "What to do if your User Account is locked and you are unable to login to "
12764
  "your website:"
12765
  msgstr ""
12766
 
12767
+ #: includes/login-security.php:245 includes/login-security.php:399
12768
+ #: includes/login-security.php:494 includes/login-security.php:655
12769
  msgid ""
12770
  " Use FTP or your web host control panel file manager and rename the /"
12771
  "bulletproof-security plugin folder name to /_bulletproof-security. Log into "
12774
  "Account."
12775
  msgstr ""
12776
 
12777
+ #: includes/login-security.php:246 includes/login-security.php:400
12778
+ #: includes/login-security.php:495 includes/login-security.php:656
12779
  msgid "What to do if your User Account is being locked repeatedly:"
12780
  msgstr ""
12781
 
12782
+ #: includes/login-security.php:246 includes/login-security.php:400
12783
+ #: includes/login-security.php:495 includes/login-security.php:656
12784
  msgid ""
12785
  " Additional things that you can do to protect publicly displayed usernames, "
12786
  "not exposing author names/user account names, etc."
12787
  msgstr ""
12788
 
12789
+ #: includes/login-security.php:252 includes/login-security.php:406
12790
+ #: includes/login-security.php:501 includes/login-security.php:662
12791
  msgid "Lockout Time:"
12792
  msgstr ""
12793
 
12794
+ #: includes/login-security.php:253 includes/login-security.php:407
12795
+ #: includes/login-security.php:502 includes/login-security.php:663
12796
  msgid "Lockout Time Expires:"
12797
  msgstr ""
12798
 
12799
+ #: includes/login-security.php:708 includes/login-security.php:718
12800
  msgid " Invalid username."
12801
  msgstr ""
12802
 
12803
+ #: includes/login-security.php:714
12804
  msgid " Invalid email address."
12805
  msgstr ""
12806
 
12807
+ #: includes/login-security.php:738 includes/login-security.php:750
12808
+ #: includes/login-security.php:761
12809
  msgid " The password you entered for the username "
12810
  msgstr ""
12811
 
12812
+ #: includes/login-security.php:738 includes/login-security.php:746
12813
+ #: includes/login-security.php:750 includes/login-security.php:757
12814
+ #: includes/login-security.php:761
12815
  msgid " is incorrect. "
12816
  msgstr ""
12817
 
12818
+ #: includes/login-security.php:746 includes/login-security.php:757
12819
  msgid " The password you entered for the email address "
12820
  msgstr ""
12821
 
12822
+ #: includes/login-security.php:746 includes/login-security.php:750
12823
+ #: includes/login-security.php:771 includes/login-security.php:784
12824
  msgid " Login Attempts Remaining "
12825
  msgstr ""
12826
 
readme.txt CHANGED
@@ -1,30 +1,31 @@
1
  === BulletProof Security ===
2
  Contributors: AITpro
3
  Donate link: https://wordpress.org/support/view/plugin-reviews/bulletproof-security?rate=5#postform
4
- Tags: security, secure, security plugin, wordpress security, login, firewall, malware, bruteforce, backup, exploit, infection, login security, protection, virus, antivirus, logout, spam
5
  Requires at least: 3.8
6
  Tested up to: 4.8
7
- Stable tag: 2.3
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
- Automated user friendly Security Plugin: Firewall Security, Login Security, Database Security & Backup & much more...
12
 
13
  == Description ==
14
 
15
- Automated user friendly Security Plugin: Firewall Security, Login Security, Database Security & Backup & much more... 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
 
24
  * Idle Session Logout (ISL)
25
  * Auth Cookie Expiration (ACE)
26
  * DB Backup: Full|Partial DB Backups | Manual|Scheduled DB Backups | Email Zip Backups | Cron Delete Old Backups
27
- * DB Backup Logging
28
  * DB Table Prefix Changer
29
  * Security Logging
30
  * HTTP Error Logging
@@ -39,11 +40,12 @@ Automated user friendly Security Plugin: Firewall Security, Login Security, Data
39
  * AutoRestore Intrusion Detection & Prevention System (ARQ IDPS)
40
  * Quarantine Intrusion Detection & Prevention System (ARQ IDPS)
41
  * Real-time File Monitor (IDPS)
 
42
  * DB Monitor Intrusion Detection System (IDS)
43
  * DB Diff Tool: data comparison tool
44
  * DB Backup: Full|Partial DB Backups | Manual|Scheduled DB Backups | Email Zip Backups | Cron Delete Old Backups
45
  * DB Status & Info: extensive database status & info
46
- * Plugin Firewall (IP Firewall): Automated Whitelisting & IP Address Updating in Real Time
47
  * JTC Anti-Spam|Anti-Hacker
48
  * Uploads Folder Anti-Exploit Guard (UAEG)
49
  * .htaccess Website Security Protection (Firewalls)
@@ -57,10 +59,7 @@ Automated user friendly Security Plugin: Firewall Security, Login Security, Data
57
  * Security Logging
58
  * HTTP Error Logging
59
  * PHP Error Logging
60
- * DB Monitor Logging
61
- * DB Backup Logging
62
  * DB Table Prefix Changer
63
- * AutoRestore|Quarantine Logging
64
  * S-Monitor: Monitoring & Alerting Core
65
  * Pro Tools: 16 mini-plugins
66
  * Heads Up Dashboard Status Display
@@ -75,37 +74,129 @@ https://www.youtube.com/watch?v=qTX-SjOVZdw
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.
 
85
 
86
- = BulletProof Security Additional Website Security Protection =
87
 
88
- WordPress is already very secure, but every website, no matter what type of platform it is built on should have additional website security measures in place as a standard.
89
 
90
- = BulletProof Security is Website Performance Optimized (Performance|Optimization) =
 
 
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
 
@@ -137,6 +228,11 @@ Extensive Help Info can be found on the <a href="https://forum.ait-pro.com/forum
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.
@@ -173,6 +269,13 @@ Extensive Help Info can be found on the <a href="https://forum.ait-pro.com/forum
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.
@@ -252,103 +355,13 @@ Extensive Help Info can be found on the <a href="https://forum.ait-pro.com/forum
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.
261
- 2. Note: Bonus Custom Code is completely optional. If you do not want to add any Bonus Custom Code click the Dismiss All link.
262
-
263
- * <strong>Optional Features:</strong>
264
- 1. Idle Session Logout (ISL)
265
- 2. Auth Cookie Expiration (ACE)
266
- 3. DB Table Prefix Changer
267
- 4. Maintenance Mode
268
- 5. UI|UX Settings: Choose UI|UX visual preferences & functionality.
269
-
270
- * <strong>Uninstall Options</strong>
271
- 1. An Uninstall Options link is located on the WordPress Plugins page under the BulletProof Security plugin.
272
- 2. Clicking the Uninstall Options link loads a jQuery UI Dialog Form with 2 uninstall options.
273
- 3. If you are upgrading to BPS Pro, select the BPS Pro Upgrade Uninstall option and click the Save Option button or just click the Close button and do a normal plugin uninstall.
274
- 4. If you want to completely delete the BPS plugin, all files, Custom Code and BPS database settings, select the Complete BPS Plugin Uninstall option, click the Save Option button, click the Close button and do a normal plugin uninstall.
275
-
276
- * <strong>Manual Setup Steps</strong>
277
-
278
- * <strong>htaccess Core htaccess Files Setup Steps</strong>
279
- 1. Click the Root Folder BulletProof Mode Activate button on the Security Modes page.
280
- 2. Click the wp-admin Folder BulletProof Mode Activate button on the Security Modes page.
281
- 3. Turn On the Hidden Plugin Folders|Files Cron (HPF) by clicking the Save HPF Cron Options button.
282
- 4. Click the Master htaccess Folder BulletProof Mode Activate button.
283
- 5. Click the BPS Backup Folder BulletProof Mode Activate button.
284
-
285
- * <strong>Login Security & Monitoring Setup Steps</strong>
286
- 1. Click the Login Security & Monitoring Save Options button to use & save the BPS default Login Security settings or choose your own settings.
287
- 2. Click the Login Security: Send Login Security Email Alert When... Save Options button to use and save BPS default Email Alerts and Log File settings or choose your own settings.
288
-
289
- * <strong>Idle Session Logout (ISL) Setup Steps</strong>
290
- 1. Choose the ISL option settings you want to use.
291
- 2. Click the Save Options button.
292
-
293
- * <strong>Auth Cookie Expiration (ACE) Setup Steps</strong>
294
- 1. Choose the ACE option settings you want to use.
295
- 2. Click the Save Options button.
296
-
297
- * <strong>DB Backup & Security Setup Steps</strong>
298
- 1. Click the Create Backup Jobs accordion tab.
299
- 2. Enter a Description|Backup Job Name and select the Form option choices that you want.
300
- 3. Click the Create Backup Job|Save Settings button to save your Form option choices and create your Backup Job.
301
- 4. Click the Backup Jobs - Manual|Scheduled accordion tab, click on the Run checkbox for the Backup Job that you want to run and click the Run Job|Delete Job button.
302
- 5. Your Backup files are displayed under the Backup Files - Download|Delete accordion tab.
303
- 6. You can Download Backup files to your computer by clicking the Download link for that Backup file.
304
- 7. You can delete Backup files by clicking the checkbox for the Backup file that you want to delete and then click the Delete Files button.
305
-
306
- * <strong>Maintenance Mode Usage: Display an Under Maintenance page</strong>
307
- 1. Choose the Maintenance Mode settings you want to use.
308
- 2. Use one of the BPS pre-created Background Images & Center Images or create your own unique Under Maintenance page.
309
- 3. Click the Save Options button.
310
- 4. Click the Preview button.
311
- 5. Click the Turn On button.
312
-
313
- * <strong>UI|UX Settings</strong>
314
- 1. Select and Save a Theme Skin.
315
- 2. Turn On|Off The Inpage Status Display.
316
- 3. Turn On|Off The Processing Spinner.
317
- 4. Turn On|Off jQuery ScrollTop Animation.
318
- 5. Choose WP Toolbar Functionality In BPS Plugin Pages.
319
- 6. Choose On|Off for Script|Style Loader Filter (SLF) In BPS Plugin Pages.
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
 
342
- Please see the <a href="https://forum.ait-pro.com/forums/topic/read-me-first-free/#bps-free-general-troubleshooting/" title="BulletProof Security Forum" rel="nofollow" target="_blank">BulletProof Security Forum.</a>
343
 
344
- = BulletProof Security Compatible Hosting|Host Server|WordPress Site Types =
345
 
346
- * <strong>Types:</strong> Shared, VPS, Dedicated, Managed, Colocation, In-house
347
- * <strong>Types:</strong> Apache, Linux, Nginx, LiteSpeed, Windows (Windows IIS)
348
- * <strong>Types:</strong> Standard|Single, Network|Multisite, "Giving WordPress Its Own Directory" (GWIOD), BuddyPress|bbPress, subdomain, subdirectory, HTTPS/SSL
349
- * <strong>Note:</strong> The Setup Wizard Pre-Installation Check displays compatibility information.
350
- * <strong>Note:</strong> The Setup Wizard Pre-Installation Check tests if htaccess files can or cannot be used on your website and will automatically disable BPS htaccess features and files if your server/website cannot use htaccess files. You will see the "htaccess Files Disabled Notice" on the Setup Wizard page with a link to a Help Forum Topic.
351
- * <strong>Note:</strong> BulletProof Security works on all web hosts except for these 3 web hosts: <a href="https://forum.ait-pro.com/forums/topic/read-me-first-free/#incompatible-hosts" title="Incompatible Hosts" rel="nofollow" target="_blank">Incompatible Hosts</a>.
352
 
353
  = Can BulletProof Security be Network Activated on Network|Multisite Sites? =
354
 
1
  === BulletProof Security ===
2
  Contributors: AITpro
3
  Donate link: https://wordpress.org/support/view/plugin-reviews/bulletproof-security?rate=5#postform
4
+ Tags: security, secure, scanner, login security, firewall, security plugin, wordpress security, login, malware, malware scanner, bruteforce, backup, exploit, infection, protection, virus, anti-virus, logout, spam, anti-spam
5
  Requires at least: 3.8
6
  Tested up to: 4.8
7
+ Stable tag: 2.4
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
+ WordPress Security Protection: Malware scanner, Firewall, Login Security, DB Backup, Anti-Spam & much more.
12
 
13
  == Description ==
14
 
15
+ WordPress Security Protection: Malware scanner, Firewall, Login Security, DB Backup, Anti-Spam & much more. 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
+ * MScan Malware Scanner
22
  * .htaccess Website Security Protection (Firewalls)
23
  * Hidden Plugin Folders|Files Cron (HPF)
24
  * Login Security & Monitoring
25
+ * JTC-Lite (Limited version of BPS Pro JTC Anti-Spam|Anti-Hacker)
26
  * Idle Session Logout (ISL)
27
  * Auth Cookie Expiration (ACE)
28
  * DB Backup: Full|Partial DB Backups | Manual|Scheduled DB Backups | Email Zip Backups | Cron Delete Old Backups
 
29
  * DB Table Prefix Changer
30
  * Security Logging
31
  * HTTP Error Logging
40
  * AutoRestore Intrusion Detection & Prevention System (ARQ IDPS)
41
  * Quarantine Intrusion Detection & Prevention System (ARQ IDPS)
42
  * Real-time File Monitor (IDPS)
43
+ * MScan Malware Scanner
44
  * DB Monitor Intrusion Detection System (IDS)
45
  * DB Diff Tool: data comparison tool
46
  * DB Backup: Full|Partial DB Backups | Manual|Scheduled DB Backups | Email Zip Backups | Cron Delete Old Backups
47
  * DB Status & Info: extensive database status & info
48
+ * Plugin Firewall (IP Firewall): Automated Whitelisting & IP Address Updating in Real-time
49
  * JTC Anti-Spam|Anti-Hacker
50
  * Uploads Folder Anti-Exploit Guard (UAEG)
51
  * .htaccess Website Security Protection (Firewalls)
59
  * Security Logging
60
  * HTTP Error Logging
61
  * PHP Error Logging
 
 
62
  * DB Table Prefix Changer
 
63
  * S-Monitor: Monitoring & Alerting Core
64
  * Pro Tools: 16 mini-plugins
65
  * Heads Up Dashboard Status Display
74
  * <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>
75
  * <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>
76
 
77
+ == Screenshots ==
78
 
79
+ 1. BulletProof Security - Setup Wizard
80
+ 2. BulletProof Security - MScan Malware Scanner
81
+ 3. BulletProof Security - Security Log: Logs blocked hackers/spammers & troubleshooting tool
82
+ 4. BulletProof Security - htaccess Core Security Modes (Firewalls)
83
+ 5. BulletProof Security - System Info: Extensive website/server information
84
+ 6. BulletProof Security - Login Security and Monitoring: Log all logins or only locked accounts
85
+ 7. BulletProof Security - Idle Session Logout (ISL)|Auth Cookie Expiration (ACE)
86
+ 8. BulletProof Security - DB Backup: Scheduled/manual DB Backups
87
+ 9. BulletProof Security - Maintenance Mode
88
+ 10. BulletProof Security - Maintenance Mode examples
89
 
90
+ == Help Info ==
91
 
92
+ 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 plugin pages. For details about BulletProof
93
+ Security plugin features and frequently asked questions see the FAQ section below. The BPS plugin Help and FAQ tab pages also contain additional help links.
94
 
95
+ == Frequently Asked Questions ==
96
 
97
+ = Installation =
98
 
99
+ * <strong>Automated Setup Steps</strong>
100
+ 1. Click the Setup Wizard button.
101
+ 2. Note: Bonus Custom Code is completely optional. If you do not want to add any Bonus Custom Code click the Dismiss All link.
102
 
103
+ * <strong>Optional Features:</strong>
104
+ 1. Idle Session Logout (ISL)
105
+ 2. Auth Cookie Expiration (ACE)
106
+ 3. DB Table Prefix Changer
107
+ 4. Maintenance Mode
108
+ 5. UI|UX Settings: Choose UI|UX visual preferences & functionality.
109
 
110
+ * <strong>Uninstall Options</strong>
111
+ 1. An Uninstall Options link is located on the WordPress Plugins page under the BulletProof Security plugin.
112
+ 2. Clicking the Uninstall Options link loads a jQuery UI Dialog Form with 2 uninstall options.
113
+ 3. If you are upgrading to BPS Pro, select the BPS Pro Upgrade Uninstall option and click the Save Option button or just click the Close button and do a normal plugin uninstall.
114
+ 4. If you want to completely delete the BPS plugin, all files, Custom Code and BPS database settings, select the Complete BPS Plugin Uninstall option, click the Save Option button, click the Close button and do a normal plugin uninstall.
115
 
116
+ * <strong>Manual Setup Steps</strong>
 
 
 
 
 
 
 
 
117
 
118
+ * <strong>htaccess Core htaccess Files Setup Steps</strong>
119
+ 1. Click the Root Folder BulletProof Mode Activate button on the Security Modes page.
120
+ 2. Click the wp-admin Folder BulletProof Mode Activate button on the Security Modes page.
121
+ 3. Turn On the Hidden Plugin Folders|Files Cron (HPF) by clicking the Save HPF Cron Options button.
122
+ 4. Click the Master htaccess Folder BulletProof Mode Activate button.
123
+ 5. Click the BPS Backup Folder BulletProof Mode Activate button.
124
+
125
+ * <strong>Login Security & Monitoring Setup Steps</strong>
126
+ 1. Click the Login Security & Monitoring Save Options button to use & save the BPS default Login Security settings or choose your own settings.
127
+ 2. Click the Login Security: Send Login Security Email Alert When... Save Options button to use and save BPS default Email Alerts and Log File settings or choose your own settings.
128
+
129
+ * <strong>Idle Session Logout (ISL) Setup Steps</strong>
130
+ 1. Choose the ISL option settings you want to use.
131
+ 2. Click the Save Options button.
132
+
133
+ * <strong>Auth Cookie Expiration (ACE) Setup Steps</strong>
134
+ 1. Choose the ACE option settings you want to use.
135
+ 2. Click the Save Options button.
136
+
137
+ * <strong>DB Backup & Security Setup Steps</strong>
138
+ 1. Click the Create Backup Jobs accordion tab.
139
+ 2. Enter a Description|Backup Job Name and select the Form option choices that you want.
140
+ 3. Click the Create Backup Job|Save Settings button to save your Form option choices and create your Backup Job.
141
+ 4. Click the Backup Jobs - Manual|Scheduled accordion tab, click on the Run checkbox for the Backup Job that you want to run and click the Run Job|Delete Job button.
142
+ 5. Your Backup files are displayed under the Backup Files - Download|Delete accordion tab.
143
+ 6. You can Download Backup files to your computer by clicking the Download link for that Backup file.
144
+ 7. You can delete Backup files by clicking the checkbox for the Backup file that you want to delete and then click the Delete Files button.
145
+
146
+ * <strong>Maintenance Mode Usage: Display an Under Maintenance page</strong>
147
+ 1. Choose the Maintenance Mode settings you want to use.
148
+ 2. Use one of the BPS pre-created Background Images & Center Images or create your own unique Under Maintenance page.
149
+ 3. Click the Save Options button.
150
+ 4. Click the Preview button.
151
+ 5. Click the Turn On button.
152
+
153
+ * <strong>UI|UX Settings</strong>
154
+ 1. Select and Save a Theme Skin.
155
+ 2. Turn On|Off The Inpage Status Display.
156
+ 3. Turn On|Off The Processing Spinner.
157
+ 4. Turn On|Off jQuery ScrollTop Animation.
158
+ 5. Choose WP Toolbar Functionality In BPS Plugin Pages.
159
+ 6. Choose On|Off for Script|Style Loader Filter (SLF) In BPS Plugin Pages.
160
+ 7. BPS UI|UX Debug: Turn On for debugging.
161
+ 8. BPS Plugin AutoUpdate: Turn On to allow BPS plugin automatic updates.
162
+
163
+ = Translations =
164
+
165
+ * Language Packs: <a href="https://translate.wordpress.org/projects/wp-plugins/bulletproof-security" title="Translate BulletProof Security">Translate BulletProof Security</a>
166
+ * 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.
167
+
168
+ = BulletProof Security Bonus Custom Code =
169
+
170
+ * <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>
171
+ * <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>
172
+ * <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>
173
+ * <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>
174
+ * <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)
175
+ * <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>
176
+ * <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>
177
+ * <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>
178
+ * <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>
179
+
180
+ = Where can I find BulletProof Security additional troubleshooting steps & support? =
181
+
182
+ Please see the <a href="https://forum.ait-pro.com/forums/topic/read-me-first-free/#bps-free-general-troubleshooting/" title="BulletProof Security Forum" rel="nofollow" target="_blank">BulletProof Security Forum.</a>
183
+
184
+ = BulletProof Security Compatible Hosting|Host Server|WordPress Site Types =
185
+
186
+ * <strong>Types:</strong> Shared, VPS, Dedicated, Managed, Colocation, In-house
187
+ * <strong>Types:</strong> Apache, Linux, Nginx, LiteSpeed, Windows (Windows IIS)
188
+ * <strong>Types:</strong> Standard|Single, Network|Multisite, "Giving WordPress Its Own Directory" (GWIOD), BuddyPress|bbPress, subdomain, subdirectory, HTTPS/SSL
189
+ * <strong>Note:</strong> The Setup Wizard Pre-Installation Check displays compatibility information.
190
+ * <strong>Note:</strong> The Setup Wizard Pre-Installation Check tests if htaccess files can or cannot be used on your website and will automatically disable BPS htaccess features and files if your server/website cannot use htaccess files. You will see the "htaccess Files Disabled Notice" on the Setup Wizard page with a link to a Help Forum Topic.
191
+ * <strong>Note:</strong> BulletProof Security works on all web hosts except for these 3 web hosts: <a href="https://forum.ait-pro.com/forums/topic/read-me-first-free/#incompatible-hosts" title="Incompatible Hosts" rel="nofollow" target="_blank">Incompatible Hosts</a>.
192
+
193
+ = Setup Wizard AutoFix (AutoWhitelist|AutoSetup|AutoCleanup) =
194
+
195
+ 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>.
196
 
197
+ = Why .htaccess Website Security So Much Better Than Other Types of Website Security =
198
+
199
+ 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.
200
 
201
  = BulletProof Security htaccess Core (Firewalls, etc.) Features =
202
 
228
  * Extensive jQuery UI Dialog Read Me Help buttons throughout the BulletProof Security plugin pages
229
  * HUD Success|Error message display
230
 
231
+ = BulletProof Security MScan Malware Scanner =
232
+
233
+ <strong>Description:</strong> MScan is a malware scanner that scans website files for hacker files or code and scans the WP database for hacker code. MScan Scheduled
234
+ scanning is available in BPS Pro only. For more details see the <a href="https://forum.ait-pro.com/forums/topic/mscan-malware-scanner-guide/" title="MScan Malware Scanner Guide" rel="nofollow" target="_blank">MScan Malware Scanner Guide</a>.
235
+
236
  = BulletProof Security System Info =
237
 
238
  * 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.
269
  * Enhanced Search: Allows you to search all of the Login Security database rows/Fields
270
  * Click the Login Security Read Me help button for full descriptions of all features and options.
271
 
272
+ = BulletProof Security JTC-Lite =
273
+
274
+ <strong>Description:</strong> JTC-Lite is a limited version of BPS Pro JTC Anti-Spam|Anti-Hacker that provides Login Form Bot Lockout Protection for the WordPress Login page/Form.
275
+ JTC-Lite prevents against constant and repeated user account lockouts caused by Bots attempting to Brute Force Login to your WordPress Login Form and website. If you would like to
276
+ protect all of your WordPress Forms, BuddyPress, bbPress and WooCommerce Forms against SpamBot and HackerBot attacks (auto-registrations, auto-logins, auto-posting,
277
+ auto-commenting), that security protection is available in BPS Pro JTC Anti-Spam|Anti-Hacker. 99% of all hacking and spamming is automated using HackerBots and SpamBots.
278
+
279
  = BulletProof Security Idle Session Logout (ISL) Features =
280
 
281
  <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.
355
  * Put All Subsites In Maintenance Mode, But Not The Primary Site
356
  * Click the Maintenance Mode Read Me help button for full descriptions of all features and options.
357
 
358
+ = BulletProof Security Additional Website Security Protection =
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
359
 
360
+ WordPress is already very secure, but every website, no matter what type of platform it is built on should have additional website security measures in place as a standard.
361
 
362
+ = BulletProof Security is Website Performance Optimized (Performance|Optimization) =
363
 
364
+ 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.
 
 
 
 
 
365
 
366
  = Can BulletProof Security be Network Activated on Network|Multisite Sites? =
367