All In One WP Security & Firewall - Version 4.4.8

Version Description

  • Fixed an issue with the rename login page feature on WordPress v5.7.
Download this release

Release Info

Developer mra13
Plugin Icon 128x128 All In One WP Security & Firewall
Version 4.4.8
Comparing to
See all releases

Code changes from version 4.4.4 to 4.4.8

admin/wp-security-blacklist-menu.php CHANGED
@@ -6,27 +6,27 @@ if(!defined('ABSPATH')){
6
  class AIOWPSecurity_Blacklist_Menu extends AIOWPSecurity_Admin_Menu
7
  {
8
  var $menu_page_slug = AIOWPSEC_BLACKLIST_MENU_SLUG;
9
-
10
  /* Specify all the tabs of this menu in the following array */
11
  var $menu_tabs;
12
 
13
  var $menu_tabs_handler = array(
14
  'tab1' => 'render_tab1',
15
  );
16
-
17
- function __construct()
18
  {
19
  $this->render_menu_page();
20
  }
21
-
22
- function set_menu_tabs()
23
  {
24
  $this->menu_tabs = array(
25
  'tab1' => __('Ban Users', 'all-in-one-wp-security-and-firewall'),
26
  );
27
  }
28
-
29
- function get_current_tab()
30
  {
31
  $tab_keys = array_keys($this->menu_tabs);
32
  $tab = isset( $_GET['tab'] ) ? sanitize_text_field($_GET['tab']) : $tab_keys[0];
@@ -36,32 +36,32 @@ class AIOWPSecurity_Blacklist_Menu extends AIOWPSecurity_Admin_Menu
36
  /*
37
  * Renders our tabs of this menu as nav items
38
  */
39
- function render_menu_tabs()
40
  {
41
  $current_tab = $this->get_current_tab();
42
 
43
  echo '<h2 class="nav-tab-wrapper">';
44
- foreach ( $this->menu_tabs as $tab_key => $tab_caption )
45
  {
46
  $active = $current_tab == $tab_key ? 'nav-tab-active' : '';
47
- echo '<a class="nav-tab ' . $active . '" href="?page=' . $this->menu_page_slug . '&tab=' . $tab_key . '">' . $tab_caption . '</a>';
48
  }
49
  echo '</h2>';
50
  }
51
-
52
  /*
53
  * The menu rendering goes here
54
  */
55
- function render_menu_page()
56
  {
57
  echo '<div class="wrap">';
58
  echo '<h2>'.__('Blacklist Manager','all-in-one-wp-security-and-firewall').'</h2>';//Interface title
59
  $this->set_menu_tabs();
60
  $tab = $this->get_current_tab();
61
  $this->render_menu_tabs();
62
- ?>
63
  <div id="poststuff"><div id="post-body">
64
- <?php
65
  //$tab_keys = array_keys($this->menu_tabs);
66
  call_user_func(array(&$this, $this->menu_tabs_handler[$tab]));
67
  ?>
@@ -69,8 +69,8 @@ class AIOWPSecurity_Blacklist_Menu extends AIOWPSecurity_Admin_Menu
69
  </div><!-- end of wrap -->
70
  <?php
71
  }
72
-
73
- function render_tab1()
74
  {
75
  global $aio_wp_security;
76
  global $aiowps_feature_mgr;
@@ -83,7 +83,7 @@ class AIOWPSecurity_Blacklist_Menu extends AIOWPSecurity_Admin_Menu
83
  $aio_wp_security->debug_logger->log_debug("Nonce check failed for save blacklist settings!",4);
84
  die(__('Nonce check failed for save blacklist settings!','all-in-one-wp-security-and-firewall'));
85
  }
86
-
87
  if (isset($_POST["aiowps_enable_blacklisting"]) && empty($_POST['aiowps_banned_ip_addresses']) && empty($_POST['aiowps_banned_user_agents']))
88
  {
89
  $this->show_msg_error('You must submit at least one IP address or one User Agent value or both!','all-in-one-wp-security-and-firewall');
@@ -108,7 +108,7 @@ class AIOWPSecurity_Blacklist_Menu extends AIOWPSecurity_Admin_Menu
108
  $error_msg = $payload[1][0];
109
  $this->show_msg_error($error_msg);
110
  }
111
-
112
  }
113
  else
114
  {
@@ -122,15 +122,15 @@ class AIOWPSecurity_Blacklist_Menu extends AIOWPSecurity_Admin_Menu
122
  //clear the user agent list
123
  $aio_wp_security->configs->set_value('aiowps_banned_user_agents','');
124
  }
125
-
126
  if ($result == 1)
127
  {
128
  $aio_wp_security->configs->set_value('aiowps_enable_blacklisting',isset($_POST["aiowps_enable_blacklisting"])?'1':'');
129
  $aio_wp_security->configs->save_config(); //Save the configuration
130
-
131
  //Recalculate points after the feature status/options have been altered
132
  $aiowps_feature_mgr->check_feature_status_and_recalculate_points();
133
-
134
  $this->show_msg_settings_updated();
135
 
136
  $write_result = AIOWPSecurity_Utility_Htaccess::write_to_htaccess(); //now let's write to the .htaccess file
@@ -171,7 +171,7 @@ class AIOWPSecurity_Blacklist_Menu extends AIOWPSecurity_Admin_Menu
171
  //Display security info badge
172
  global $aiowps_feature_mgr;
173
  $aiowps_feature_mgr->output_feature_details_badge("blacklist-manager-ip-user-agent-blacklisting");
174
- ?>
175
  <form action="" method="POST">
176
  <?php wp_nonce_field('aiowpsec-blacklist-settings-nonce'); ?>
177
  <div class="aio_orange_box">
@@ -181,7 +181,7 @@ class AIOWPSecurity_Blacklist_Menu extends AIOWPSecurity_Admin_Menu
181
  echo sprintf(__('This feature can lock you out of admin if it doesn\'t work correctly on your site. You %s before activating this feature.', 'all-in-one-wp-security-and-firewall'), $read_link);
182
  ?>
183
  </p>
184
- </div>
185
  <table class="form-table">
186
  <tr valign="top">
187
  <th scope="row"><?php _e('Enable IP or User Agent Blacklisting', 'all-in-one-wp-security-and-firewall')?>:</th>
@@ -189,7 +189,7 @@ class AIOWPSecurity_Blacklist_Menu extends AIOWPSecurity_Admin_Menu
189
  <input name="aiowps_enable_blacklisting" type="checkbox"<?php if($aio_wp_security->configs->get_value('aiowps_enable_blacklisting')=='1') echo ' checked="checked"'; ?> value="1"/>
190
  <span class="description"><?php _e('Check this if you want to enable the banning (or blacklisting) of selected IP addresses and/or user agents specified in the settings below', 'all-in-one-wp-security-and-firewall'); ?></span>
191
  </td>
192
- </tr>
193
  <tr valign="top">
194
  <th scope="row"><?php _e('Enter IP Addresses:', 'all-in-one-wp-security-and-firewall')?></th>
195
  <td>
@@ -198,7 +198,7 @@ class AIOWPSecurity_Blacklist_Menu extends AIOWPSecurity_Admin_Menu
198
  <span class="description"><?php _e('Enter one or more IP addresses or IP ranges.','all-in-one-wp-security-and-firewall');?></span>
199
  <span class="aiowps_more_info_anchor"><span class="aiowps_more_info_toggle_char">+</span><span class="aiowps_more_info_toggle_text"><?php _e('More Info', 'all-in-one-wp-security-and-firewall'); ?></span></span>
200
  <div class="aiowps_more_info_body">
201
- <?php
202
  echo '<p class="description">'.__('Each IP address must be on a new line.', 'all-in-one-wp-security-and-firewall').'</p>';
203
  echo '<p class="description">'.__('To specify an IP range use a wildcard "*" character. Acceptable ways to use wildcards is shown in the examples below:', 'all-in-one-wp-security-and-firewall').'</p>';
204
  echo '<p class="description">'.__('Example 1: 195.47.89.*', 'all-in-one-wp-security-and-firewall').'</p>';
@@ -212,13 +212,13 @@ class AIOWPSecurity_Blacklist_Menu extends AIOWPSecurity_Admin_Menu
212
  <tr valign="top">
213
  <th scope="row"><?php _e('Enter User Agents:', 'all-in-one-wp-security-and-firewall')?></th>
214
  <td>
215
- <textarea name="aiowps_banned_user_agents" rows="5" cols="50"><?php echo ($result == -1)?$_POST['aiowps_banned_user_agents']:$aio_wp_security->configs->get_value('aiowps_banned_user_agents'); ?></textarea>
216
  <br />
217
  <span class="description">
218
  <?php _e('Enter one or more user agent strings.','all-in-one-wp-security-and-firewall');?></span>
219
  <span class="aiowps_more_info_anchor"><span class="aiowps_more_info_toggle_char">+</span><span class="aiowps_more_info_toggle_text"><?php _e('More Info', 'all-in-one-wp-security-and-firewall'); ?></span></span>
220
  <div class="aiowps_more_info_body">
221
- <?php
222
  echo '<p class="description">'.__('Each user agent string must be on a new line.', 'all-in-one-wp-security-and-firewall').'</p>';
223
  echo '<p class="description">'.__('Example 1 - A single user agent string to block:', 'all-in-one-wp-security-and-firewall').'</p>';
224
  echo '<p class="description">SquigglebotBot</p>';
@@ -235,7 +235,7 @@ class AIOWPSecurity_Blacklist_Menu extends AIOWPSecurity_Admin_Menu
235
  </div></div>
236
  <?php
237
  }
238
-
239
  function validate_user_agent_list()
240
  {
241
  global $aio_wp_security;
@@ -244,7 +244,7 @@ class AIOWPSecurity_Blacklist_Menu extends AIOWPSecurity_Admin_Menu
244
 
245
  $submitted_agents = explode(PHP_EOL, $_POST['aiowps_banned_user_agents']);
246
  $agents = array();
247
- if (!empty($submitted_agents))
248
  {
249
  foreach ($submitted_agents as $agent)
250
  {
@@ -252,13 +252,13 @@ class AIOWPSecurity_Blacklist_Menu extends AIOWPSecurity_Admin_Menu
252
  $agents[] = $text;
253
  }
254
  }
255
-
256
  if (sizeof($agents) > 1)
257
  {
258
  sort( $agents );
259
  $agents = array_unique($agents, SORT_STRING);
260
  }
261
-
262
  $banned_user_agent_data = implode(PHP_EOL, $agents);
263
  $aio_wp_security->configs->set_value('aiowps_banned_user_agents',$banned_user_agent_data);
264
  $_POST['aiowps_banned_user_agents'] = ''; //Clear the post variable for the banned address list
6
  class AIOWPSecurity_Blacklist_Menu extends AIOWPSecurity_Admin_Menu
7
  {
8
  var $menu_page_slug = AIOWPSEC_BLACKLIST_MENU_SLUG;
9
+
10
  /* Specify all the tabs of this menu in the following array */
11
  var $menu_tabs;
12
 
13
  var $menu_tabs_handler = array(
14
  'tab1' => 'render_tab1',
15
  );
16
+
17
+ function __construct()
18
  {
19
  $this->render_menu_page();
20
  }
21
+
22
+ function set_menu_tabs()
23
  {
24
  $this->menu_tabs = array(
25
  'tab1' => __('Ban Users', 'all-in-one-wp-security-and-firewall'),
26
  );
27
  }
28
+
29
+ function get_current_tab()
30
  {
31
  $tab_keys = array_keys($this->menu_tabs);
32
  $tab = isset( $_GET['tab'] ) ? sanitize_text_field($_GET['tab']) : $tab_keys[0];
36
  /*
37
  * Renders our tabs of this menu as nav items
38
  */
39
+ function render_menu_tabs()
40
  {
41
  $current_tab = $this->get_current_tab();
42
 
43
  echo '<h2 class="nav-tab-wrapper">';
44
+ foreach ( $this->menu_tabs as $tab_key => $tab_caption )
45
  {
46
  $active = $current_tab == $tab_key ? 'nav-tab-active' : '';
47
+ echo '<a class="nav-tab ' . $active . '" href="?page=' . $this->menu_page_slug . '&tab=' . $tab_key . '">' . $tab_caption . '</a>';
48
  }
49
  echo '</h2>';
50
  }
51
+
52
  /*
53
  * The menu rendering goes here
54
  */
55
+ function render_menu_page()
56
  {
57
  echo '<div class="wrap">';
58
  echo '<h2>'.__('Blacklist Manager','all-in-one-wp-security-and-firewall').'</h2>';//Interface title
59
  $this->set_menu_tabs();
60
  $tab = $this->get_current_tab();
61
  $this->render_menu_tabs();
62
+ ?>
63
  <div id="poststuff"><div id="post-body">
64
+ <?php
65
  //$tab_keys = array_keys($this->menu_tabs);
66
  call_user_func(array(&$this, $this->menu_tabs_handler[$tab]));
67
  ?>
69
  </div><!-- end of wrap -->
70
  <?php
71
  }
72
+
73
+ function render_tab1()
74
  {
75
  global $aio_wp_security;
76
  global $aiowps_feature_mgr;
83
  $aio_wp_security->debug_logger->log_debug("Nonce check failed for save blacklist settings!",4);
84
  die(__('Nonce check failed for save blacklist settings!','all-in-one-wp-security-and-firewall'));
85
  }
86
+
87
  if (isset($_POST["aiowps_enable_blacklisting"]) && empty($_POST['aiowps_banned_ip_addresses']) && empty($_POST['aiowps_banned_user_agents']))
88
  {
89
  $this->show_msg_error('You must submit at least one IP address or one User Agent value or both!','all-in-one-wp-security-and-firewall');
108
  $error_msg = $payload[1][0];
109
  $this->show_msg_error($error_msg);
110
  }
111
+
112
  }
113
  else
114
  {
122
  //clear the user agent list
123
  $aio_wp_security->configs->set_value('aiowps_banned_user_agents','');
124
  }
125
+
126
  if ($result == 1)
127
  {
128
  $aio_wp_security->configs->set_value('aiowps_enable_blacklisting',isset($_POST["aiowps_enable_blacklisting"])?'1':'');
129
  $aio_wp_security->configs->save_config(); //Save the configuration
130
+
131
  //Recalculate points after the feature status/options have been altered
132
  $aiowps_feature_mgr->check_feature_status_and_recalculate_points();
133
+
134
  $this->show_msg_settings_updated();
135
 
136
  $write_result = AIOWPSecurity_Utility_Htaccess::write_to_htaccess(); //now let's write to the .htaccess file
171
  //Display security info badge
172
  global $aiowps_feature_mgr;
173
  $aiowps_feature_mgr->output_feature_details_badge("blacklist-manager-ip-user-agent-blacklisting");
174
+ ?>
175
  <form action="" method="POST">
176
  <?php wp_nonce_field('aiowpsec-blacklist-settings-nonce'); ?>
177
  <div class="aio_orange_box">
181
  echo sprintf(__('This feature can lock you out of admin if it doesn\'t work correctly on your site. You %s before activating this feature.', 'all-in-one-wp-security-and-firewall'), $read_link);
182
  ?>
183
  </p>
184
+ </div>
185
  <table class="form-table">
186
  <tr valign="top">
187
  <th scope="row"><?php _e('Enable IP or User Agent Blacklisting', 'all-in-one-wp-security-and-firewall')?>:</th>
189
  <input name="aiowps_enable_blacklisting" type="checkbox"<?php if($aio_wp_security->configs->get_value('aiowps_enable_blacklisting')=='1') echo ' checked="checked"'; ?> value="1"/>
190
  <span class="description"><?php _e('Check this if you want to enable the banning (or blacklisting) of selected IP addresses and/or user agents specified in the settings below', 'all-in-one-wp-security-and-firewall'); ?></span>
191
  </td>
192
+ </tr>
193
  <tr valign="top">
194
  <th scope="row"><?php _e('Enter IP Addresses:', 'all-in-one-wp-security-and-firewall')?></th>
195
  <td>
198
  <span class="description"><?php _e('Enter one or more IP addresses or IP ranges.','all-in-one-wp-security-and-firewall');?></span>
199
  <span class="aiowps_more_info_anchor"><span class="aiowps_more_info_toggle_char">+</span><span class="aiowps_more_info_toggle_text"><?php _e('More Info', 'all-in-one-wp-security-and-firewall'); ?></span></span>
200
  <div class="aiowps_more_info_body">
201
+ <?php
202
  echo '<p class="description">'.__('Each IP address must be on a new line.', 'all-in-one-wp-security-and-firewall').'</p>';
203
  echo '<p class="description">'.__('To specify an IP range use a wildcard "*" character. Acceptable ways to use wildcards is shown in the examples below:', 'all-in-one-wp-security-and-firewall').'</p>';
204
  echo '<p class="description">'.__('Example 1: 195.47.89.*', 'all-in-one-wp-security-and-firewall').'</p>';
212
  <tr valign="top">
213
  <th scope="row"><?php _e('Enter User Agents:', 'all-in-one-wp-security-and-firewall')?></th>
214
  <td>
215
+ <textarea name="aiowps_banned_user_agents" rows="5" cols="50"><?php echo ($result == -1)?htmlspecialchars($_POST['aiowps_banned_user_agents']):htmlspecialchars($aio_wp_security->configs->get_value('aiowps_banned_user_agents')); ?></textarea>
216
  <br />
217
  <span class="description">
218
  <?php _e('Enter one or more user agent strings.','all-in-one-wp-security-and-firewall');?></span>
219
  <span class="aiowps_more_info_anchor"><span class="aiowps_more_info_toggle_char">+</span><span class="aiowps_more_info_toggle_text"><?php _e('More Info', 'all-in-one-wp-security-and-firewall'); ?></span></span>
220
  <div class="aiowps_more_info_body">
221
+ <?php
222
  echo '<p class="description">'.__('Each user agent string must be on a new line.', 'all-in-one-wp-security-and-firewall').'</p>';
223
  echo '<p class="description">'.__('Example 1 - A single user agent string to block:', 'all-in-one-wp-security-and-firewall').'</p>';
224
  echo '<p class="description">SquigglebotBot</p>';
235
  </div></div>
236
  <?php
237
  }
238
+
239
  function validate_user_agent_list()
240
  {
241
  global $aio_wp_security;
244
 
245
  $submitted_agents = explode(PHP_EOL, $_POST['aiowps_banned_user_agents']);
246
  $agents = array();
247
+ if (!empty($submitted_agents))
248
  {
249
  foreach ($submitted_agents as $agent)
250
  {
252
  $agents[] = $text;
253
  }
254
  }
255
+
256
  if (sizeof($agents) > 1)
257
  {
258
  sort( $agents );
259
  $agents = array_unique($agents, SORT_STRING);
260
  }
261
+
262
  $banned_user_agent_data = implode(PHP_EOL, $agents);
263
  $aio_wp_security->configs->set_value('aiowps_banned_user_agents',$banned_user_agent_data);
264
  $_POST['aiowps_banned_user_agents'] = ''; //Clear the post variable for the banned address list
admin/wp-security-brute-force-menu.php CHANGED
@@ -220,7 +220,7 @@ class AIOWPSecurity_Brute_Force_Menu extends AIOWPSecurity_Admin_Menu
220
  </tr>
221
  <tr valign="top">
222
  <th scope="row"><?php _e('Login Page URL', 'all-in-one-wp-security-and-firewall')?>:</th>
223
- <td><code><?php echo $home_url; ?></code><input type="text" size="5" name="aiowps_login_page_slug" value="<?php echo $aio_wp_security->configs->get_value('aiowps_login_page_slug'); ?>" />
224
  <span class="description"><?php _e('Enter a string which will represent your secure login page slug. You are enouraged to choose something which is hard to guess and only you will remember.', 'all-in-one-wp-security-and-firewall'); ?></span>
225
  </td>
226
  </tr>
@@ -787,7 +787,7 @@ class AIOWPSecurity_Brute_Force_Menu extends AIOWPSecurity_Admin_Menu
787
  </div>
788
  <div class="aio_yellow_box">
789
  <?php
790
- $brute_force_login_feature_link = '<a href="admin.php?page='.AIOWPSEC_BRUTE_FORCE_MENU_SLUG.'&tab=tab2" target="_blank">Cookie-Based Brute Force Login Prevention</a>';
791
  $rename_login_feature_link = '<a href="admin.php?page='.AIOWPSEC_BRUTE_FORCE_MENU_SLUG.'&tab=tab1" target="_blank">'.__('Rename Login Page', 'all-in-one-wp-security-and-firewall').'</a>';
792
  echo '<p>'.sprintf( __('Attention: If in addition to enabling the white list feature, you also have one of the %s or %s features enabled, <strong>you will still need to use your secret word or special slug in the URL when trying to access your WordPress login page</strong>.', 'all-in-one-wp-security-and-firewall'), $brute_force_login_feature_link, $rename_login_feature_link).'</p>
793
  <p>'.__('These features are NOT functionally related. Having both of them enabled on your site means you are creating 2 layers of security.', 'all-in-one-wp-security-and-firewall').'</p>';
220
  </tr>
221
  <tr valign="top">
222
  <th scope="row"><?php _e('Login Page URL', 'all-in-one-wp-security-and-firewall')?>:</th>
223
+ <td><code><?php echo $home_url; ?></code><input type="text" size="15" name="aiowps_login_page_slug" value="<?php echo $aio_wp_security->configs->get_value('aiowps_login_page_slug'); ?>" />
224
  <span class="description"><?php _e('Enter a string which will represent your secure login page slug. You are enouraged to choose something which is hard to guess and only you will remember.', 'all-in-one-wp-security-and-firewall'); ?></span>
225
  </td>
226
  </tr>
787
  </div>
788
  <div class="aio_yellow_box">
789
  <?php
790
+ $brute_force_login_feature_link = '<a href="admin.php?page='.AIOWPSEC_BRUTE_FORCE_MENU_SLUG.'&tab=tab2" target="_blank">'.__('Cookie-Based Brute Force Login Prevention', 'all-in-one-wp-security-and-firewall').'</a>';
791
  $rename_login_feature_link = '<a href="admin.php?page='.AIOWPSEC_BRUTE_FORCE_MENU_SLUG.'&tab=tab1" target="_blank">'.__('Rename Login Page', 'all-in-one-wp-security-and-firewall').'</a>';
792
  echo '<p>'.sprintf( __('Attention: If in addition to enabling the white list feature, you also have one of the %s or %s features enabled, <strong>you will still need to use your secret word or special slug in the URL when trying to access your WordPress login page</strong>.', 'all-in-one-wp-security-and-firewall'), $brute_force_login_feature_link, $rename_login_feature_link).'</p>
793
  <p>'.__('These features are NOT functionally related. Having both of them enabled on your site means you are creating 2 layers of security.', 'all-in-one-wp-security-and-firewall').'</p>';
admin/wp-security-dashboard-menu.php CHANGED
@@ -65,7 +65,7 @@ class AIOWPSecurity_Dashboard_Menu extends AIOWPSecurity_Admin_Menu
65
  $this->set_menu_tabs();
66
  $tab = $this->get_current_tab();
67
  $this->render_menu_tabs();
68
- ?>
69
  <div id="poststuff"><div id="post-body">
70
  <?php
71
  call_user_func(array(&$this, $this->menu_tabs_handler[$tab]));
@@ -175,15 +175,6 @@ class AIOWPSecurity_Dashboard_Menu extends AIOWPSecurity_Admin_Menu
175
  : </strong><code><?php echo $allow_url_fopen; ?></code>
176
  <br/>
177
  <?php
178
- if (ini_get('allow_url_include')) {
179
- $allow_url_include = __('On', 'all-in-one-wp-security-and-firewall');
180
- } else {
181
- $allow_url_include = __('Off', 'all-in-one-wp-security-and-firewall');
182
- }
183
- ?>
184
- <strong><?php _e('PHP Allow URL Include'); ?>
185
- : </strong><code><?php echo $allow_url_include; ?></code><br/>
186
- <?php
187
  if (ini_get('display_errors')) {
188
  $display_errors = __('On', 'all-in-one-wp-security-and-firewall');
189
  } else {
@@ -257,7 +248,7 @@ class AIOWPSecurity_Dashboard_Menu extends AIOWPSecurity_Admin_Menu
257
  ?>
258
  <div class="aio_blue_box">
259
  <?php
260
- $login_lockdown_feature_url = '<a href="admin.php?page=' . AIOWPSEC_USER_LOGIN_MENU_SLUG . '&tab=tab1" target="_blank">Login Lockdown</a>';
261
  echo '<p>' . __('This tab displays the list of all IP addresses which are currently temporarily locked out due to the Login Lockdown feature:', 'all-in-one-wp-security-and-firewall') . '</p>' .
262
  '<p>' . $login_lockdown_feature_url . '</p>';
263
  ?>
@@ -401,7 +392,7 @@ class AIOWPSecurity_Dashboard_Menu extends AIOWPSecurity_Admin_Menu
401
  unset($_POST['aiowps_view_logs']);
402
  wp_die(__('Error! The file you selected is not a permitted file. You can only view log files created by this plugin.','all-in-one-wp-security-and-firewall'));
403
  }
404
-
405
  if (!empty($file_selected)) {
406
  ?>
407
  <div class="postbox">
@@ -438,7 +429,7 @@ class AIOWPSecurity_Dashboard_Menu extends AIOWPSecurity_Admin_Menu
438
 
439
  <?php
440
  }
441
-
442
  function wp_dashboard() {
443
  $screen = get_current_screen();
444
  $columns = absint( $screen->get_columns() );
@@ -467,13 +458,13 @@ class AIOWPSecurity_Dashboard_Menu extends AIOWPSecurity_Admin_Menu
467
  wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false );
468
  wp_nonce_field( 'meta-box-order', 'meta-box-order-nonce', false );
469
  }
470
-
471
  function wp_dashboard_setup() {
472
  global $aio_wp_security;
473
  global $wp_registered_widgets, $wp_registered_widget_controls, $wp_dashboard_control_callbacks;
474
  $wp_dashboard_control_callbacks = array();
475
  $screen = get_current_screen();
476
-
477
  // Add widgets
478
  wp_add_dashboard_widget( 'security_strength_meter', __( 'Security Strength Meter', 'all-in-one-wp-security-and-firewall' ), array(&$this, 'widget_security_strength_meter') );
479
  wp_add_dashboard_widget( 'security_points_breakdown', __( 'Security Points Breakdown', 'all-in-one-wp-security-and-firewall' ), array(&$this, 'widget_security_points_breakdown') );
@@ -497,7 +488,7 @@ class AIOWPSecurity_Dashboard_Menu extends AIOWPSecurity_Admin_Menu
497
  wp_add_dashboard_widget( $widget_id, $name, $wp_registered_widgets[$widget_id]['callback'], $wp_registered_widget_controls[$widget_id]['callback'] );
498
  }
499
  }
500
-
501
  function widget_security_strength_meter() {
502
  global $aiowps_feature_mgr;
503
  global $aio_wp_security;
@@ -535,17 +526,17 @@ class AIOWPSecurity_Dashboard_Menu extends AIOWPSecurity_Admin_Menu
535
  _e('Current Score of Your Site: ', 'all-in-one-wp-security-and-firewall');
536
  echo '<strong>' . $total_site_security_points . '</strong>';
537
  ?>
538
- </div>
539
  <?php
540
  }
541
-
542
  function widget_security_points_breakdown() {
543
  global $aiowps_feature_mgr;
544
  global $aio_wp_security;
545
  $feature_mgr = $aiowps_feature_mgr;
546
  $total_site_security_points = $feature_mgr->get_total_site_points();
547
  $total_security_points_achievable = $feature_mgr->get_total_achievable_points();
548
-
549
  $feature_items = $feature_mgr->feature_items;
550
  $pt_src_chart_data = "";
551
  $pt_src_chart_data .= "['Feature Name', 'Points'],";
@@ -582,7 +573,7 @@ class AIOWPSecurity_Dashboard_Menu extends AIOWPSecurity_Admin_Menu
582
  <div id='points_source_breakdown_chart_div'></div>
583
  <?php
584
  }
585
-
586
  function widget_spread_the_word() {
587
  ?>
588
  <p><?php _e('We are working hard to make your WordPress site more secure. Please support us, here is how:', 'all-in-one-wp-security-and-firewall');?></p>
@@ -595,19 +586,19 @@ class AIOWPSecurity_Dashboard_Menu extends AIOWPSecurity_Admin_Menu
595
  <p>
596
  <a href="http://wordpress.org/support/view/plugin-reviews/all-in-one-wp-security-and-firewall/"
597
  target="_blank" class="aio_rate_us_link"><?php _e('Give us a Good Rating', 'all-in-one-wp-security-and-firewall');?></a>
598
- </p>
599
- <?php
600
  }
601
-
602
  function widget_know_developers() {
603
  ?>
604
  <p><?php _e('Wanna know more about the developers behind this plugin?', 'all-in-one-wp-security-and-firewall');?></p>
605
  <p><a href="https://wpsolutions-hq.com/" target="_blank">WPSolutions</a></p>
606
  <p><a href="https://www.tipsandtricks-hq.com/" target="_blank">Tips and Tricks HQ</a></p>
607
 
608
- <?php
609
  }
610
-
611
  function widget_critical_feature_status() {
612
  global $aiowps_feature_mgr;
613
  global $aio_wp_security;
@@ -675,7 +666,7 @@ class AIOWPSecurity_Dashboard_Menu extends AIOWPSecurity_Admin_Menu
675
  echo '</div></div></a>';
676
  echo '<div class="aio_clear_float"></div>';
677
  }
678
-
679
  function widget_last_5_logins() {
680
  global $wpdb;
681
  $login_activity_table = AIOWPSEC_TBL_USER_LOGIN_ACTIVITY;
@@ -716,9 +707,9 @@ class AIOWPSecurity_Dashboard_Menu extends AIOWPSecurity_Admin_Menu
716
  }
717
 
718
  echo '<div class="aio_clear_float"></div>';
719
-
720
  }
721
-
722
  function widget_maintenance_mode_status() {
723
  global $aio_wp_security;
724
  if ($aio_wp_security->configs->get_value('aiowps_site_lockout') == '1') {
@@ -740,9 +731,9 @@ class AIOWPSecurity_Dashboard_Menu extends AIOWPSecurity_Admin_Menu
740
  }
741
  echo '</div></div></a>';
742
  echo '<div class="aio_clear_float"></div>';
743
-
744
  }
745
-
746
  function widget_brute_force() {
747
  global $aio_wp_security;
748
  if ($aio_wp_security->configs->get_value('aiowps_enable_brute_force_attack_prevention') == '1') {
@@ -774,9 +765,9 @@ class AIOWPSecurity_Dashboard_Menu extends AIOWPSecurity_Admin_Menu
774
  echo '</div>'; //yellow box div
775
  echo '<div class="aio_clear_float"></div>';
776
  }//End if statement for Rename Login box
777
-
778
  }
779
-
780
  function widget_logged_in_users() {
781
  $users_online_link = '<a href="admin.php?page=' . AIOWPSEC_USER_LOGIN_MENU_SLUG . '&tab=tab5">Logged In Users</a>';
782
  // default display messages
@@ -792,7 +783,7 @@ class AIOWPSecurity_Dashboard_Menu extends AIOWPSecurity_Admin_Menu
792
  } else {
793
  // main site - get sitewide users
794
  $logged_in_users = get_site_transient('users_online');
795
-
796
  // If viewing aiowps from multisite main network dashboard then display a different message
797
  $multiple_users_info_msg = __('Number of users currently logged in site-wide (including you) is:', 'all-in-one-wp-security-and-firewall');
798
  $single_user_info_msg = __('There are no other site-wide users currently logged in.', 'all-in-one-wp-security-and-firewall');
@@ -800,7 +791,7 @@ class AIOWPSecurity_Dashboard_Menu extends AIOWPSecurity_Admin_Menu
800
  } else {
801
  $logged_in_users = get_transient('users_online');
802
  }
803
-
804
  if (empty($logged_in_users)) {
805
  $num_users = 0;
806
  } else {
@@ -813,9 +804,9 @@ class AIOWPSecurity_Dashboard_Menu extends AIOWPSecurity_Admin_Menu
813
  } else {
814
  echo '<div class="aio_green_box"><p>' . $single_user_info_msg . '</p></div>';
815
  }
816
-
817
  }
818
-
819
  function widget_locked_ip_addresses() {
820
  $locked_ips_link = '<a href="admin.php?page=' . AIOWPSEC_MAIN_MENU_SLUG . '&tab=tab3">Locked IP Addresses</a>';
821
 
65
  $this->set_menu_tabs();
66
  $tab = $this->get_current_tab();
67
  $this->render_menu_tabs();
68
+ ?>
69
  <div id="poststuff"><div id="post-body">
70
  <?php
71
  call_user_func(array(&$this, $this->menu_tabs_handler[$tab]));
175
  : </strong><code><?php echo $allow_url_fopen; ?></code>
176
  <br/>
177
  <?php
 
 
 
 
 
 
 
 
 
178
  if (ini_get('display_errors')) {
179
  $display_errors = __('On', 'all-in-one-wp-security-and-firewall');
180
  } else {
248
  ?>
249
  <div class="aio_blue_box">
250
  <?php
251
+ $login_lockdown_feature_url = '<a href="admin.php?page=' . AIOWPSEC_USER_LOGIN_MENU_SLUG . '&tab=tab1" target="_blank">'.__('Login Lockdown', 'all-in-one-wp-security-and-firewall').'</a>';
252
  echo '<p>' . __('This tab displays the list of all IP addresses which are currently temporarily locked out due to the Login Lockdown feature:', 'all-in-one-wp-security-and-firewall') . '</p>' .
253
  '<p>' . $login_lockdown_feature_url . '</p>';
254
  ?>
392
  unset($_POST['aiowps_view_logs']);
393
  wp_die(__('Error! The file you selected is not a permitted file. You can only view log files created by this plugin.','all-in-one-wp-security-and-firewall'));
394
  }
395
+
396
  if (!empty($file_selected)) {
397
  ?>
398
  <div class="postbox">
429
 
430
  <?php
431
  }
432
+
433
  function wp_dashboard() {
434
  $screen = get_current_screen();
435
  $columns = absint( $screen->get_columns() );
458
  wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false );
459
  wp_nonce_field( 'meta-box-order', 'meta-box-order-nonce', false );
460
  }
461
+
462
  function wp_dashboard_setup() {
463
  global $aio_wp_security;
464
  global $wp_registered_widgets, $wp_registered_widget_controls, $wp_dashboard_control_callbacks;
465
  $wp_dashboard_control_callbacks = array();
466
  $screen = get_current_screen();
467
+
468
  // Add widgets
469
  wp_add_dashboard_widget( 'security_strength_meter', __( 'Security Strength Meter', 'all-in-one-wp-security-and-firewall' ), array(&$this, 'widget_security_strength_meter') );
470
  wp_add_dashboard_widget( 'security_points_breakdown', __( 'Security Points Breakdown', 'all-in-one-wp-security-and-firewall' ), array(&$this, 'widget_security_points_breakdown') );
488
  wp_add_dashboard_widget( $widget_id, $name, $wp_registered_widgets[$widget_id]['callback'], $wp_registered_widget_controls[$widget_id]['callback'] );
489
  }
490
  }
491
+
492
  function widget_security_strength_meter() {
493
  global $aiowps_feature_mgr;
494
  global $aio_wp_security;
526
  _e('Current Score of Your Site: ', 'all-in-one-wp-security-and-firewall');
527
  echo '<strong>' . $total_site_security_points . '</strong>';
528
  ?>
529
+ </div>
530
  <?php
531
  }
532
+
533
  function widget_security_points_breakdown() {
534
  global $aiowps_feature_mgr;
535
  global $aio_wp_security;
536
  $feature_mgr = $aiowps_feature_mgr;
537
  $total_site_security_points = $feature_mgr->get_total_site_points();
538
  $total_security_points_achievable = $feature_mgr->get_total_achievable_points();
539
+
540
  $feature_items = $feature_mgr->feature_items;
541
  $pt_src_chart_data = "";
542
  $pt_src_chart_data .= "['Feature Name', 'Points'],";
573
  <div id='points_source_breakdown_chart_div'></div>
574
  <?php
575
  }
576
+
577
  function widget_spread_the_word() {
578
  ?>
579
  <p><?php _e('We are working hard to make your WordPress site more secure. Please support us, here is how:', 'all-in-one-wp-security-and-firewall');?></p>
586
  <p>
587
  <a href="http://wordpress.org/support/view/plugin-reviews/all-in-one-wp-security-and-firewall/"
588
  target="_blank" class="aio_rate_us_link"><?php _e('Give us a Good Rating', 'all-in-one-wp-security-and-firewall');?></a>
589
+ </p>
590
+ <?php
591
  }
592
+
593
  function widget_know_developers() {
594
  ?>
595
  <p><?php _e('Wanna know more about the developers behind this plugin?', 'all-in-one-wp-security-and-firewall');?></p>
596
  <p><a href="https://wpsolutions-hq.com/" target="_blank">WPSolutions</a></p>
597
  <p><a href="https://www.tipsandtricks-hq.com/" target="_blank">Tips and Tricks HQ</a></p>
598
 
599
+ <?php
600
  }
601
+
602
  function widget_critical_feature_status() {
603
  global $aiowps_feature_mgr;
604
  global $aio_wp_security;
666
  echo '</div></div></a>';
667
  echo '<div class="aio_clear_float"></div>';
668
  }
669
+
670
  function widget_last_5_logins() {
671
  global $wpdb;
672
  $login_activity_table = AIOWPSEC_TBL_USER_LOGIN_ACTIVITY;
707
  }
708
 
709
  echo '<div class="aio_clear_float"></div>';
710
+
711
  }
712
+
713
  function widget_maintenance_mode_status() {
714
  global $aio_wp_security;
715
  if ($aio_wp_security->configs->get_value('aiowps_site_lockout') == '1') {
731
  }
732
  echo '</div></div></a>';
733
  echo '<div class="aio_clear_float"></div>';
734
+
735
  }
736
+
737
  function widget_brute_force() {
738
  global $aio_wp_security;
739
  if ($aio_wp_security->configs->get_value('aiowps_enable_brute_force_attack_prevention') == '1') {
765
  echo '</div>'; //yellow box div
766
  echo '<div class="aio_clear_float"></div>';
767
  }//End if statement for Rename Login box
768
+
769
  }
770
+
771
  function widget_logged_in_users() {
772
  $users_online_link = '<a href="admin.php?page=' . AIOWPSEC_USER_LOGIN_MENU_SLUG . '&tab=tab5">Logged In Users</a>';
773
  // default display messages
783
  } else {
784
  // main site - get sitewide users
785
  $logged_in_users = get_site_transient('users_online');
786
+
787
  // If viewing aiowps from multisite main network dashboard then display a different message
788
  $multiple_users_info_msg = __('Number of users currently logged in site-wide (including you) is:', 'all-in-one-wp-security-and-firewall');
789
  $single_user_info_msg = __('There are no other site-wide users currently logged in.', 'all-in-one-wp-security-and-firewall');
791
  } else {
792
  $logged_in_users = get_transient('users_online');
793
  }
794
+
795
  if (empty($logged_in_users)) {
796
  $num_users = 0;
797
  } else {
804
  } else {
805
  echo '<div class="aio_green_box"><p>' . $single_user_info_msg . '</p></div>';
806
  }
807
+
808
  }
809
+
810
  function widget_locked_ip_addresses() {
811
  $locked_ips_link = '<a href="admin.php?page=' . AIOWPSEC_MAIN_MENU_SLUG . '&tab=tab3">Locked IP Addresses</a>';
812
 
admin/wp-security-database-menu.php CHANGED
@@ -452,7 +452,9 @@ class AIOWPSecurity_Database_Menu extends AIOWPSecurity_Admin_Menu
452
  foreach ($config_contents as $line_num => $line) {
453
  $no_ws_line = preg_replace( '/\s+/', '', $line ); //Strip white spaces
454
  if(strpos($no_ws_line, $prefix_match_string) !== FALSE){
455
- $config_contents[$line_num] = str_replace($table_old_prefix, $table_new_prefix, $line);
 
 
456
  break;
457
  }
458
  }
452
  foreach ($config_contents as $line_num => $line) {
453
  $no_ws_line = preg_replace( '/\s+/', '', $line ); //Strip white spaces
454
  if(strpos($no_ws_line, $prefix_match_string) !== FALSE){
455
+ $prefix_parts = explode("=",$config_contents[$line_num]);
456
+ $prefix_parts[1] = str_replace($table_old_prefix, $table_new_prefix, $prefix_parts[1]);
457
+ $config_contents[$line_num] = implode("=",$prefix_parts);
458
  break;
459
  }
460
  }
admin/wp-security-list-registered-users.php CHANGED
@@ -134,7 +134,7 @@ class AIOWPSecurity_List_Registered_Users extends AIOWPSecurity_List_Table {
134
 
135
  function approve_selected_accounts($entries)
136
  {
137
- global $wpdb, $aio_wp_security;
138
  $meta_key = 'aiowps_account_status';
139
  $meta_value = 'approved'; //set account status
140
  $failed_accts = ''; //string to store comma separated accounts which failed to update
@@ -155,22 +155,7 @@ class AIOWPSecurity_List_Registered_Users extends AIOWPSecurity_List_Table {
155
  if($user === false){
156
  //don't send mail
157
  }else{
158
- $email_msg = '';
159
- $to_email_address = $user->user_email;
160
- $subject = '['.get_option('siteurl').'] '. __('Your account is now active','all-in-one-wp-security-and-firewall');
161
- $email_msg .= __('Your account with user ID:','all-in-one-wp-security-and-firewall').$user->ID.__(' is now active','all-in-one-wp-security-and-firewall')."\n";
162
- $site_title = get_bloginfo( 'name' );
163
- $from_name = empty($site_title)?'WordPress':$site_title;
164
- $subject = apply_filters( 'aiowps_register_approval_email_subject', $subject );
165
- $email_msg = apply_filters( 'aiowps_register_approval_email_msg', $email_msg, $user ); //also pass the WP_User object
166
- $from_name = apply_filters( 'aiowps_register_approval_email_from_name', $from_name );
167
-
168
- $email_header = 'From: '.$from_name.' <'.get_bloginfo('admin_email').'>' . "\r\n\\";
169
- $sendMail = wp_mail($to_email_address, $subject, $email_msg, $email_header);
170
- if(FALSE === $sendMail){
171
- $aio_wp_security->debug_logger->log_debug("Manual account approval notification email failed to send to ".$to_email_address,4);
172
- }
173
-
174
  }
175
  }
176
  }
@@ -189,29 +174,39 @@ class AIOWPSecurity_List_Registered_Users extends AIOWPSecurity_List_Table {
189
  {
190
  AIOWPSecurity_Admin_Menu::show_msg_updated_st(__('The selected account was approved successfully!','all-in-one-wp-security-and-firewall'));
191
  $user = get_user_by('id', $entries);
192
- $to_email_address = $user->user_email;
193
- $email_msg = '';
194
- $subject = '['.get_option('siteurl').'] '. __('Your account is now active','all-in-one-wp-security-and-firewall');
195
- $email_msg .= __('Your account with username: ','all-in-one-wp-security-and-firewall').$user->user_login.__(' is now active','all-in-one-wp-security-and-firewall')."\n";
196
- $site_title = get_bloginfo( 'name' );
197
- $from_name = empty($site_title)?'WordPress':$site_title;
198
- $subject = apply_filters( 'aiowps_register_approval_email_subject', $subject );
199
- $email_msg = apply_filters( 'aiowps_register_approval_email_msg', $email_msg, $user ); //also pass the WP_User object
200
- $from_name = apply_filters( 'aiowps_register_approval_email_from_name', $from_name );
201
-
202
- $email_header = 'From: '.$from_name.' <'.get_bloginfo('admin_email').'>' . "\r\n\\";
203
- $sendMail = wp_mail($to_email_address, $subject, $email_msg, $email_header);
204
- if(FALSE === $sendMail){
205
- $aio_wp_security->debug_logger->log_debug("Manual account approval notification email failed to send to ".$to_email_address,4);
206
- }
207
 
208
-
209
  }else if($result === false){
210
  $aio_wp_security->debug_logger->log_debug("AIOWPSecurity_List_Registered_Users::approve_selected_accounts() - could not approve account ID: $user_id",4);
211
  }
212
  }
213
  }
214
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
215
  function delete_selected_accounts($entries)
216
  {
217
  global $wpdb, $aio_wp_security;
134
 
135
  function approve_selected_accounts($entries)
136
  {
137
+ global $aio_wp_security;
138
  $meta_key = 'aiowps_account_status';
139
  $meta_value = 'approved'; //set account status
140
  $failed_accts = ''; //string to store comma separated accounts which failed to update
155
  if($user === false){
156
  //don't send mail
157
  }else{
158
+ $sendMail = $this->send_email_upon_account_activation($user);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
159
  }
160
  }
161
  }
174
  {
175
  AIOWPSecurity_Admin_Menu::show_msg_updated_st(__('The selected account was approved successfully!','all-in-one-wp-security-and-firewall'));
176
  $user = get_user_by('id', $entries);
177
+ $sendMail = $this->send_email_upon_account_activation($user);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
178
 
 
179
  }else if($result === false){
180
  $aio_wp_security->debug_logger->log_debug("AIOWPSecurity_List_Registered_Users::approve_selected_accounts() - could not approve account ID: $user_id",4);
181
  }
182
  }
183
  }
184
 
185
+ function send_email_upon_account_activation($user)
186
+ {
187
+ global $aio_wp_security;
188
+ if (!($user instanceof WP_User)) {
189
+ return false;
190
+ }
191
+
192
+ $to_email_address = $user->user_email;
193
+ $email_msg = '';
194
+ $subject = '['.get_option('siteurl').'] '. __('Your account is now active','all-in-one-wp-security-and-firewall');
195
+ $email_msg .= __('Your account with username: ','all-in-one-wp-security-and-firewall').$user->user_login.__(' is now active','all-in-one-wp-security-and-firewall')."\n";
196
+ $site_title = get_bloginfo( 'name' );
197
+ $from_name = empty($site_title)?'WordPress':$site_title;
198
+ $subject = apply_filters( 'aiowps_register_approval_email_subject', $subject );
199
+ $email_msg = apply_filters( 'aiowps_register_approval_email_msg', $email_msg, $user ); //also pass the WP_User object
200
+ $from_name = apply_filters( 'aiowps_register_approval_email_from_name', $from_name );
201
+
202
+ $email_header = 'From: '.$from_name.' <'.get_bloginfo('admin_email').'>' . "\r\n\\";
203
+ $sendMail = wp_mail($to_email_address, $subject, $email_msg, $email_header);
204
+ if(FALSE === $sendMail){
205
+ $aio_wp_security->debug_logger->log_debug("Manual account approval notification email failed to send to ".$to_email_address,4);
206
+ }
207
+ return $sendMail;
208
+ }
209
+
210
  function delete_selected_accounts($entries)
211
  {
212
  global $wpdb, $aio_wp_security;
admin/wp-security-maintenance-menu.php CHANGED
@@ -6,27 +6,27 @@ if(!defined('ABSPATH')){
6
  class AIOWPSecurity_Maintenance_Menu extends AIOWPSecurity_Admin_Menu
7
  {
8
  var $menu_page_slug = AIOWPSEC_MAINTENANCE_MENU_SLUG;
9
-
10
  /* Specify all the tabs of this menu in the following array */
11
  var $menu_tabs;
12
 
13
  var $menu_tabs_handler = array(
14
- 'tab1' => 'render_tab1',
15
  );
16
 
17
- function __construct()
18
  {
19
  $this->render_menu_page();
20
  }
21
 
22
- function set_menu_tabs()
23
  {
24
  $this->menu_tabs = array(
25
  'tab1' => __('Visitor Lockout', 'all-in-one-wp-security-and-firewall'),
26
  );
27
  }
28
 
29
- function get_current_tab()
30
  {
31
  $tab_keys = array_keys($this->menu_tabs);
32
  $tab = isset( $_GET['tab'] ) ? sanitize_text_field($_GET['tab']) : $tab_keys[0];
@@ -36,32 +36,32 @@ class AIOWPSecurity_Maintenance_Menu extends AIOWPSecurity_Admin_Menu
36
  /*
37
  * Renders our tabs of this menu as nav items
38
  */
39
- function render_menu_tabs()
40
  {
41
  $current_tab = $this->get_current_tab();
42
 
43
  echo '<h2 class="nav-tab-wrapper">';
44
- foreach ( $this->menu_tabs as $tab_key => $tab_caption )
45
  {
46
  $active = $current_tab == $tab_key ? 'nav-tab-active' : '';
47
- echo '<a class="nav-tab ' . $active . '" href="?page=' . $this->menu_page_slug . '&tab=' . $tab_key . '">' . $tab_caption . '</a>';
48
  }
49
  echo '</h2>';
50
  }
51
-
52
  /*
53
  * The menu rendering goes here
54
  */
55
- function render_menu_page()
56
  {
57
  echo '<div class="wrap">';
58
  echo '<h2>'.__('Maintenance','all-in-one-wp-security-and-firewall').'</h2>';//Interface title
59
  $this->set_menu_tabs();
60
  $tab = $this->get_current_tab();
61
  $this->render_menu_tabs();
62
- ?>
63
  <div id="poststuff"><div id="post-body">
64
- <?php
65
  //$tab_keys = array_keys($this->menu_tabs);
66
  call_user_func(array(&$this, $this->menu_tabs_handler[$tab]));
67
  ?>
@@ -69,7 +69,7 @@ class AIOWPSecurity_Maintenance_Menu extends AIOWPSecurity_Admin_Menu
69
  </div><!-- end of wrap -->
70
  <?php
71
  }
72
-
73
  function render_tab1()
74
  {
75
  global $aio_wp_security;
@@ -82,7 +82,7 @@ class AIOWPSecurity_Maintenance_Menu extends AIOWPSecurity_Admin_Menu
82
  $aio_wp_security->debug_logger->log_debug("Nonce check failed on site lockout feature settings save!",4);
83
  die("Nonce check failed on site lockout feature settings save!");
84
  }
85
-
86
  //Save settings
87
  $aio_wp_security->configs->set_value('aiowps_site_lockout',isset($_POST["aiowps_site_lockout"])?'1':'');
88
  $maint_msg = htmlentities(stripslashes($_POST['aiowps_site_lockout_msg']), ENT_COMPAT, "UTF-8");
@@ -91,6 +91,8 @@ class AIOWPSecurity_Maintenance_Menu extends AIOWPSecurity_Admin_Menu
91
 
92
  $this->show_msg_updated(__('Site lockout feature settings saved!', 'all-in-one-wp-security-and-firewall'));
93
 
 
 
94
  }
95
  ?>
96
  <div class="postbox">
@@ -122,7 +124,7 @@ class AIOWPSecurity_Maintenance_Menu extends AIOWPSecurity_Admin_Menu
122
  }
123
  $aiowps_site_lockout_msg = html_entity_decode($aiowps_site_lockout_msg_raw, ENT_COMPAT, "UTF-8");
124
  $aiowps_site_lockout_msg_settings = array('textarea_name' => 'aiowps_site_lockout_msg');
125
- wp_editor($aiowps_site_lockout_msg, "aiowps_site_lockout_msg_editor_content", $aiowps_site_lockout_msg_settings);
126
  ?>
127
  <br />
128
  <span class="description"><?php _e('Enter a message you wish to display to visitors when your site is in maintenance mode.','all-in-one-wp-security-and-firewall');?></span>
@@ -130,11 +132,11 @@ class AIOWPSecurity_Maintenance_Menu extends AIOWPSecurity_Admin_Menu
130
  </tr>
131
 
132
  </table>
133
-
134
  <div class="submit">
135
  <input type="submit" class="button-primary" name="aiowpsec_save_site_lockout" value="<?php _e('Save Site Lockout Settings', 'all-in-one-wp-security-and-firewall'); ?>" />
136
  </div>
137
- </form>
138
  </div></div>
139
  <?php
140
  }
6
  class AIOWPSecurity_Maintenance_Menu extends AIOWPSecurity_Admin_Menu
7
  {
8
  var $menu_page_slug = AIOWPSEC_MAINTENANCE_MENU_SLUG;
9
+
10
  /* Specify all the tabs of this menu in the following array */
11
  var $menu_tabs;
12
 
13
  var $menu_tabs_handler = array(
14
+ 'tab1' => 'render_tab1',
15
  );
16
 
17
+ function __construct()
18
  {
19
  $this->render_menu_page();
20
  }
21
 
22
+ function set_menu_tabs()
23
  {
24
  $this->menu_tabs = array(
25
  'tab1' => __('Visitor Lockout', 'all-in-one-wp-security-and-firewall'),
26
  );
27
  }
28
 
29
+ function get_current_tab()
30
  {
31
  $tab_keys = array_keys($this->menu_tabs);
32
  $tab = isset( $_GET['tab'] ) ? sanitize_text_field($_GET['tab']) : $tab_keys[0];
36
  /*
37
  * Renders our tabs of this menu as nav items
38
  */
39
+ function render_menu_tabs()
40
  {
41
  $current_tab = $this->get_current_tab();
42
 
43
  echo '<h2 class="nav-tab-wrapper">';
44
+ foreach ( $this->menu_tabs as $tab_key => $tab_caption )
45
  {
46
  $active = $current_tab == $tab_key ? 'nav-tab-active' : '';
47
+ echo '<a class="nav-tab ' . $active . '" href="?page=' . $this->menu_page_slug . '&tab=' . $tab_key . '">' . $tab_caption . '</a>';
48
  }
49
  echo '</h2>';
50
  }
51
+
52
  /*
53
  * The menu rendering goes here
54
  */
55
+ function render_menu_page()
56
  {
57
  echo '<div class="wrap">';
58
  echo '<h2>'.__('Maintenance','all-in-one-wp-security-and-firewall').'</h2>';//Interface title
59
  $this->set_menu_tabs();
60
  $tab = $this->get_current_tab();
61
  $this->render_menu_tabs();
62
+ ?>
63
  <div id="poststuff"><div id="post-body">
64
+ <?php
65
  //$tab_keys = array_keys($this->menu_tabs);
66
  call_user_func(array(&$this, $this->menu_tabs_handler[$tab]));
67
  ?>
69
  </div><!-- end of wrap -->
70
  <?php
71
  }
72
+
73
  function render_tab1()
74
  {
75
  global $aio_wp_security;
82
  $aio_wp_security->debug_logger->log_debug("Nonce check failed on site lockout feature settings save!",4);
83
  die("Nonce check failed on site lockout feature settings save!");
84
  }
85
+
86
  //Save settings
87
  $aio_wp_security->configs->set_value('aiowps_site_lockout',isset($_POST["aiowps_site_lockout"])?'1':'');
88
  $maint_msg = htmlentities(stripslashes($_POST['aiowps_site_lockout_msg']), ENT_COMPAT, "UTF-8");
91
 
92
  $this->show_msg_updated(__('Site lockout feature settings saved!', 'all-in-one-wp-security-and-firewall'));
93
 
94
+ do_action('aiowps_site_lockout_settings_saved');//Trigger action hook.
95
+
96
  }
97
  ?>
98
  <div class="postbox">
124
  }
125
  $aiowps_site_lockout_msg = html_entity_decode($aiowps_site_lockout_msg_raw, ENT_COMPAT, "UTF-8");
126
  $aiowps_site_lockout_msg_settings = array('textarea_name' => 'aiowps_site_lockout_msg');
127
+ wp_editor($aiowps_site_lockout_msg, "aiowps_site_lockout_msg_editor_content", $aiowps_site_lockout_msg_settings);
128
  ?>
129
  <br />
130
  <span class="description"><?php _e('Enter a message you wish to display to visitors when your site is in maintenance mode.','all-in-one-wp-security-and-firewall');?></span>
132
  </tr>
133
 
134
  </table>
135
+
136
  <div class="submit">
137
  <input type="submit" class="button-primary" name="aiowpsec_save_site_lockout" value="<?php _e('Save Site Lockout Settings', 'all-in-one-wp-security-and-firewall'); ?>" />
138
  </div>
139
+ </form>
140
  </div></div>
141
  <?php
142
  }
admin/wp-security-settings-menu.php CHANGED
@@ -152,7 +152,7 @@ class AIOWPSecurity_Settings_Menu extends AIOWPSecurity_Admin_Menu
152
  ?>
153
  <div class="aio_grey_box">
154
  <p><?php _e('For information, updates and documentation, please visit the', 'all-in-one-wp-security-and-firewall'); ?> <a href="https://www.tipsandtricks-hq.com/wordpress-security-and-firewall-plugin" target="_blank">AIO WP Security & Firewall Plugin</a> <?php _e('Page', 'all-in-one-wp-security-and-firewall'); ?>.</p>
155
- <p><a href="https://www.tipsandtricks-hq.com/development-center" target="_blank">Follow us</a> on Twitter, Google+ or via Email to stay upto date about the new security features of this plugin.</p>
156
  </div>
157
 
158
  <div class="postbox">
@@ -199,7 +199,7 @@ class AIOWPSecurity_Settings_Menu extends AIOWPSecurity_Admin_Menu
199
  ?>
200
  </div>
201
  <div class="submit">
202
- <input type="submit" class="button" name="aiowpsec_disable_all_firewall_rules" value="<?php _e('Disable All Firewall Rules'); ?>" />
203
  </div>
204
  </form>
205
  </div>
152
  ?>
153
  <div class="aio_grey_box">
154
  <p><?php _e('For information, updates and documentation, please visit the', 'all-in-one-wp-security-and-firewall'); ?> <a href="https://www.tipsandtricks-hq.com/wordpress-security-and-firewall-plugin" target="_blank">AIO WP Security & Firewall Plugin</a> <?php _e('Page', 'all-in-one-wp-security-and-firewall'); ?>.</p>
155
+ <p><a href="https://www.tipsandtricks-hq.com/development-center" target="_blank"><?php _e('Follow us', 'all-in-one-wp-security-and-firewall'); ?></a> <?php _e('on Twitter, Google+ or via Email to stay up to date about the new security features of this plugin.', 'all-in-one-wp-security-and-firewall'); ?></p>
156
  </div>
157
 
158
  <div class="postbox">
199
  ?>
200
  </div>
201
  <div class="submit">
202
+ <input type="submit" class="button" name="aiowpsec_disable_all_firewall_rules" value="<?php _e('Disable All Firewall Rules', 'all-in-one-wp-security-and-firewall'); ?>" />
203
  </div>
204
  </form>
205
  </div>
admin/wp-security-user-accounts-menu.php CHANGED
@@ -335,7 +335,7 @@ class AIOWPSecurity_User_Accounts_Menu extends AIOWPSecurity_Admin_Menu
335
  $account_output .= '<td>'.$entry->user_login.'</td>';
336
  }
337
  $user_acct_edit_link = admin_url('user-edit.php?user_id=' . $entry->ID);
338
- $account_output .= '<td><a href="'.$user_acct_edit_link.'" target="_blank">Edit User</a></td>';
339
  $account_output .= '</tr>';
340
  }
341
  $account_output .= '</table>';
335
  $account_output .= '<td>'.$entry->user_login.'</td>';
336
  }
337
  $user_acct_edit_link = admin_url('user-edit.php?user_id=' . $entry->ID);
338
+ $account_output .= '<td><a href="'.$user_acct_edit_link.'" target="_blank">'.__('Edit User', 'all-in-one-wp-security-and-firewall').'</a></td>';
339
  $account_output .= '</tr>';
340
  }
341
  $account_output .= '</table>';
admin/wp-security-user-login-menu.php CHANGED
@@ -230,7 +230,7 @@ class AIOWPSecurity_User_Login_Menu extends AIOWPSecurity_Admin_Menu
230
  <h2><?php _e('Login Lockdown Configuration', 'all-in-one-wp-security-and-firewall')?></h2>
231
  <div class="aio_blue_box">
232
  <?php
233
- $brute_force_login_feature_link = '<a href="admin.php?page='.AIOWPSEC_BRUTE_FORCE_MENU_SLUG.'&tab=tab2">Cookie-Based Brute Force Login Prevention</a>';
234
  echo '<p>'.__('One of the ways hackers try to compromise sites is via a ', 'all-in-one-wp-security-and-firewall').'<strong>'.__('Brute Force Login Attack', 'all-in-one-wp-security-and-firewall').'</strong>. '.__('This is where attackers use repeated login attempts until they guess the password.', 'all-in-one-wp-security-and-firewall').'
235
  <br />'.__('Apart from choosing strong passwords, monitoring and blocking IP addresses which are involved in repeated login failures in a short period of time is a very effective way to stop these types of attacks.', 'all-in-one-wp-security-and-firewall').
236
  '<p>'.sprintf( esc_html(__('You may also want to checkout our %s feature for another secure way to protect against these types of attacks.', 'all-in-one-wp-security-and-firewall')), $brute_force_login_feature_link).'</p>';
230
  <h2><?php _e('Login Lockdown Configuration', 'all-in-one-wp-security-and-firewall')?></h2>
231
  <div class="aio_blue_box">
232
  <?php
233
+ $brute_force_login_feature_link = '<a href="admin.php?page='.AIOWPSEC_BRUTE_FORCE_MENU_SLUG.'&tab=tab2">'.__('Cookie-Based Brute Force Login Prevention', 'all-in-one-wp-security-and-firewall').'</a>';
234
  echo '<p>'.__('One of the ways hackers try to compromise sites is via a ', 'all-in-one-wp-security-and-firewall').'<strong>'.__('Brute Force Login Attack', 'all-in-one-wp-security-and-firewall').'</strong>. '.__('This is where attackers use repeated login attempts until they guess the password.', 'all-in-one-wp-security-and-firewall').'
235
  <br />'.__('Apart from choosing strong passwords, monitoring and blocking IP addresses which are involved in repeated login failures in a short period of time is a very effective way to stop these types of attacks.', 'all-in-one-wp-security-and-firewall').
236
  '<p>'.sprintf( esc_html(__('You may also want to checkout our %s feature for another secure way to protect against these types of attacks.', 'all-in-one-wp-security-and-firewall')), $brute_force_login_feature_link).'</p>';
classes/wp-security-general-init-tasks.php CHANGED
@@ -562,7 +562,7 @@ class AIOWPSecurity_General_Init_Tasks
562
  function reapply_htaccess_rules_notice()
563
  {
564
  if (get_option('aiowps_temp_configs') !== FALSE){
565
- echo '<div class="updated"><p>'.__('Would you like All In One WP Security & Firewall to re-insert the security rules in your .htaccess file which were cleared when you deactivated the plugin?', 'all-in-one-wp-security-and-firewall').'&nbsp;&nbsp;<a href="admin.php?page='.AIOWPSEC_MENU_SLUG_PREFIX.'&aiowps_reapply_htaccess=1" class="button-primary">Yes</a>&nbsp;&nbsp;<a href="admin.php?page='.AIOWPSEC_MENU_SLUG_PREFIX.'&aiowps_reapply_htaccess=2" class="button-primary">No</a></p></div>';
566
  }
567
  }
568
 
562
  function reapply_htaccess_rules_notice()
563
  {
564
  if (get_option('aiowps_temp_configs') !== FALSE){
565
+ echo '<div class="updated"><p>'.__('Would you like All In One WP Security & Firewall to re-insert the security rules in your .htaccess file which were cleared when you deactivated the plugin?', 'all-in-one-wp-security-and-firewall').'&nbsp;&nbsp;<a href="admin.php?page='.AIOWPSEC_MENU_SLUG_PREFIX.'&aiowps_reapply_htaccess=1" class="button-primary">'.__('Yes', 'all-in-one-wp-security-and-firewall').'</a>&nbsp;&nbsp;<a href="admin.php?page='.AIOWPSEC_MENU_SLUG_PREFIX.'&aiowps_reapply_htaccess=2" class="button-primary">'.__('No', 'all-in-one-wp-security-and-firewall').'</a></p></div>';
566
  }
567
  }
568
 
classes/wp-security-installer.php CHANGED
@@ -82,7 +82,7 @@ class AIOWPSecurity_Installer
82
  id bigint(20) NOT NULL AUTO_INCREMENT,
83
  user_id bigint(20) NOT NULL,
84
  user_login VARCHAR(150) NOT NULL,
85
- failed_login_date datetime NOT NULL DEFAULT '1000-10-00 10:00:00',
86
  login_attempt_ip varchar(100) NOT NULL DEFAULT '',
87
  PRIMARY KEY (id)
88
  )" . $charset_collate . ";";
@@ -92,8 +92,8 @@ class AIOWPSecurity_Installer
92
  id bigint(20) NOT NULL AUTO_INCREMENT,
93
  user_id bigint(20) NOT NULL,
94
  user_login VARCHAR(150) NOT NULL,
95
- login_date datetime NOT NULL DEFAULT '1000-10-00 10:00:00',
96
- logout_date datetime NOT NULL DEFAULT '1000-10-00 10:00:00',
97
  login_ip varchar(100) NOT NULL DEFAULT '',
98
  login_country varchar(150) NOT NULL DEFAULT '',
99
  browser_type varchar(150) NOT NULL DEFAULT '',
82
  id bigint(20) NOT NULL AUTO_INCREMENT,
83
  user_id bigint(20) NOT NULL,
84
  user_login VARCHAR(150) NOT NULL,
85
+ failed_login_date datetime NOT NULL DEFAULT '1000-10-10 10:00:00',
86
  login_attempt_ip varchar(100) NOT NULL DEFAULT '',
87
  PRIMARY KEY (id)
88
  )" . $charset_collate . ";";
92
  id bigint(20) NOT NULL AUTO_INCREMENT,
93
  user_id bigint(20) NOT NULL,
94
  user_login VARCHAR(150) NOT NULL,
95
+ login_date datetime NOT NULL DEFAULT '1000-10-10 10:00:00',
96
+ logout_date datetime NOT NULL DEFAULT '1000-10-10 10:00:00',
97
  login_ip varchar(100) NOT NULL DEFAULT '',
98
  login_country varchar(150) NOT NULL DEFAULT '',
99
  browser_type varchar(150) NOT NULL DEFAULT '',
classes/wp-security-process-renamed-login-page.php CHANGED
@@ -6,7 +6,7 @@ if(!defined('ABSPATH')){
6
  class AIOWPSecurity_Process_Renamed_Login_Page
7
  {
8
 
9
- function __construct()
10
  {
11
  add_action('login_init', array(&$this, 'aiowps_login_init'));
12
  add_filter('site_url', array(&$this, 'aiowps_site_url'), 10, 2);
@@ -15,10 +15,10 @@ class AIOWPSecurity_Process_Renamed_Login_Page
15
  add_filter('register', array(&$this, 'register_link'));
16
  add_filter('user_request_action_email_content', array(&$this, 'aiowps_user_request_email_content'), 10, 2);
17
  remove_action('template_redirect', 'wp_redirect_admin_locations', 1000); //To prevent redirect to login page when people type "login" at end of home URL
18
-
19
  }
20
-
21
- function aiowps_login_init()
22
  {
23
  if (strpos($_SERVER['REQUEST_URI'], 'wp-login') !== false){
24
  $referer = wp_get_referer();
@@ -34,14 +34,14 @@ class AIOWPSecurity_Process_Renamed_Login_Page
34
  die;
35
  }
36
  }
37
- }
38
  }
39
  AIOWPSecurity_Process_Renamed_Login_Page::aiowps_set_404();
40
  }
41
 
42
  }
43
-
44
- function aiowps_site_url($url, $path)
45
  {
46
  return $this->aiowps_filter_wp_login_file($url);
47
  }
@@ -56,7 +56,7 @@ class AIOWPSecurity_Process_Renamed_Login_Page
56
  {
57
  return $this->aiowps_filter_wp_login_file($registration_url);
58
  }
59
-
60
  // Filter confirm link so we hide the secret login slug in the export_personal_data email
61
  function aiowps_user_request_email_content($email_text, $email_data)
62
  {
@@ -71,7 +71,7 @@ class AIOWPSecurity_Process_Renamed_Login_Page
71
  $search_pattern = '?'.$login_slug.'&action';
72
  $new_confirm_url = str_replace( $search_pattern, '/wp-login.php/?action', $confirm_url );
73
  }
74
-
75
  $email_text_modified = str_replace( '###CONFIRM_URL###', esc_url_raw( $new_confirm_url ), $email_text );
76
  return $email_text_modified;
77
  }
@@ -86,7 +86,7 @@ class AIOWPSecurity_Process_Renamed_Login_Page
86
  $args = explode( '?', $url );
87
  if (isset($args[1])){
88
  if (strpos($args[1], 'action=postpass') !== FALSE){
89
- return $url; //Don't reveal the secret URL in the post password action url
90
  }
91
  parse_str($args[1], $args);
92
  $url = esc_url(add_query_arg($args, AIOWPSecurity_Process_Renamed_Login_Page::new_login_url()));
@@ -103,7 +103,7 @@ class AIOWPSecurity_Process_Renamed_Login_Page
103
  global $aio_wp_security;
104
 
105
  //The following will process the native wordpress post password protection form
106
- //Normally this is done by wp-login.php file but we cannot use that since the login page has been renamed
107
  $action = isset($_GET['action'])?strip_tags($_GET['action']):'';
108
  if(isset($_POST['post_password']) && $action == 'postpass'){
109
  require_once ABSPATH . 'wp-includes/class-phpass.php';
@@ -125,8 +125,8 @@ class AIOWPSecurity_Process_Renamed_Login_Page
125
  wp_safe_redirect( wp_get_referer() );
126
  exit();
127
  }
128
-
129
- //case where someone attempting to reach wp-admin
130
  if (is_admin() && !is_user_logged_in() && !defined('DOING_AJAX') && basename( $_SERVER["SCRIPT_FILENAME"] ) !== 'admin-post.php'){
131
  //Fix to prevent fatal error caused by some themes and Yoast SEO
132
  do_action('aiowps_before_wp_die_renamed_login');
@@ -135,7 +135,7 @@ class AIOWPSecurity_Process_Renamed_Login_Page
135
 
136
  //case where someone attempting to reach wp-login
137
  if(isset($_SERVER['REQUEST_URI']) && strpos( $_SERVER['REQUEST_URI'], 'wp-login.php' ) && !is_user_logged_in()){
138
-
139
  // Handle export personal data request for rename login case
140
  if(isset($_GET['request_id'])) {
141
  $request_id = (int) $_GET['request_id'];
@@ -157,7 +157,7 @@ class AIOWPSecurity_Process_Renamed_Login_Page
157
  exit;
158
  }
159
  }
160
-
161
  //Check if the maintenance (lockout) mode is active - if so prevent access to site by not displaying 404 page!
162
  if($aio_wp_security->configs->get_value('aiowps_site_lockout') == '1'){
163
  AIOWPSecurity_WP_Loaded_Tasks::site_lockout_tasks();
@@ -165,7 +165,7 @@ class AIOWPSecurity_Process_Renamed_Login_Page
165
  AIOWPSecurity_Process_Renamed_Login_Page::aiowps_set_404();
166
  }
167
  }
168
-
169
  //case where someone attempting to reach the standard register or signup pages
170
  if(isset( $_SERVER['REQUEST_URI'] ) && strpos( $_SERVER['REQUEST_URI'], 'wp-register.php' ) ||
171
  isset( $_SERVER['REQUEST_URI'] ) && strpos( $_SERVER['REQUEST_URI'], 'wp-signup.php' )){
@@ -181,7 +181,7 @@ class AIOWPSecurity_Process_Renamed_Login_Page
181
 
182
  $login_slug = $aio_wp_security->configs->get_value('aiowps_login_page_slug');
183
  $home_url_with_slug = home_url($login_slug, 'relative');
184
-
185
  /*
186
  * Compatibility fix for WPML plugin
187
  */
@@ -211,17 +211,19 @@ class AIOWPSecurity_Process_Renamed_Login_Page
211
  global $wp_version;
212
  do_action('aiowps_rename_login_load');
213
  status_header( 200 );
214
- if ( version_compare( $wp_version, '5.2', '>=' ) ) {
215
  require_once(AIO_WP_SECURITY_PATH . '/other-includes/wp-security-rename-login-feature.php' );
 
 
216
  } else {
217
  require_once(AIO_WP_SECURITY_PATH . '/other-includes/wp-security-rename-login-feature-pre-5-2.php' );
218
  }
219
-
220
  die;
221
  }
222
- }
223
  }
224
-
225
  static function new_login_url()
226
  {
227
  global $aio_wp_security;
@@ -233,7 +235,7 @@ class AIOWPSecurity_Process_Renamed_Login_Page
233
  }
234
  }
235
 
236
- static function aiowps_set_404()
237
  {
238
  global $wp_query;
239
  do_action('aiopws_before_set_404'); //This hook is for themes which produce a fatal error when the rename login feature is enabled and someone visits "wp-admin" slug directly
@@ -246,5 +248,5 @@ class AIOWPSecurity_Process_Renamed_Login_Page
246
  }
247
  die;
248
  }
249
-
250
  }
6
  class AIOWPSecurity_Process_Renamed_Login_Page
7
  {
8
 
9
+ function __construct()
10
  {
11
  add_action('login_init', array(&$this, 'aiowps_login_init'));
12
  add_filter('site_url', array(&$this, 'aiowps_site_url'), 10, 2);
15
  add_filter('register', array(&$this, 'register_link'));
16
  add_filter('user_request_action_email_content', array(&$this, 'aiowps_user_request_email_content'), 10, 2);
17
  remove_action('template_redirect', 'wp_redirect_admin_locations', 1000); //To prevent redirect to login page when people type "login" at end of home URL
18
+
19
  }
20
+
21
+ function aiowps_login_init()
22
  {
23
  if (strpos($_SERVER['REQUEST_URI'], 'wp-login') !== false){
24
  $referer = wp_get_referer();
34
  die;
35
  }
36
  }
37
+ }
38
  }
39
  AIOWPSecurity_Process_Renamed_Login_Page::aiowps_set_404();
40
  }
41
 
42
  }
43
+
44
+ function aiowps_site_url($url, $path)
45
  {
46
  return $this->aiowps_filter_wp_login_file($url);
47
  }
56
  {
57
  return $this->aiowps_filter_wp_login_file($registration_url);
58
  }
59
+
60
  // Filter confirm link so we hide the secret login slug in the export_personal_data email
61
  function aiowps_user_request_email_content($email_text, $email_data)
62
  {
71
  $search_pattern = '?'.$login_slug.'&action';
72
  $new_confirm_url = str_replace( $search_pattern, '/wp-login.php/?action', $confirm_url );
73
  }
74
+
75
  $email_text_modified = str_replace( '###CONFIRM_URL###', esc_url_raw( $new_confirm_url ), $email_text );
76
  return $email_text_modified;
77
  }
86
  $args = explode( '?', $url );
87
  if (isset($args[1])){
88
  if (strpos($args[1], 'action=postpass') !== FALSE){
89
+ return $url; //Don't reveal the secret URL in the post password action url
90
  }
91
  parse_str($args[1], $args);
92
  $url = esc_url(add_query_arg($args, AIOWPSecurity_Process_Renamed_Login_Page::new_login_url()));
103
  global $aio_wp_security;
104
 
105
  //The following will process the native wordpress post password protection form
106
+ //Normally this is done by wp-login.php file but we cannot use that since the login page has been renamed
107
  $action = isset($_GET['action'])?strip_tags($_GET['action']):'';
108
  if(isset($_POST['post_password']) && $action == 'postpass'){
109
  require_once ABSPATH . 'wp-includes/class-phpass.php';
125
  wp_safe_redirect( wp_get_referer() );
126
  exit();
127
  }
128
+
129
+ //case where someone attempting to reach wp-admin
130
  if (is_admin() && !is_user_logged_in() && !defined('DOING_AJAX') && basename( $_SERVER["SCRIPT_FILENAME"] ) !== 'admin-post.php'){
131
  //Fix to prevent fatal error caused by some themes and Yoast SEO
132
  do_action('aiowps_before_wp_die_renamed_login');
135
 
136
  //case where someone attempting to reach wp-login
137
  if(isset($_SERVER['REQUEST_URI']) && strpos( $_SERVER['REQUEST_URI'], 'wp-login.php' ) && !is_user_logged_in()){
138
+
139
  // Handle export personal data request for rename login case
140
  if(isset($_GET['request_id'])) {
141
  $request_id = (int) $_GET['request_id'];
157
  exit;
158
  }
159
  }
160
+
161
  //Check if the maintenance (lockout) mode is active - if so prevent access to site by not displaying 404 page!
162
  if($aio_wp_security->configs->get_value('aiowps_site_lockout') == '1'){
163
  AIOWPSecurity_WP_Loaded_Tasks::site_lockout_tasks();
165
  AIOWPSecurity_Process_Renamed_Login_Page::aiowps_set_404();
166
  }
167
  }
168
+
169
  //case where someone attempting to reach the standard register or signup pages
170
  if(isset( $_SERVER['REQUEST_URI'] ) && strpos( $_SERVER['REQUEST_URI'], 'wp-register.php' ) ||
171
  isset( $_SERVER['REQUEST_URI'] ) && strpos( $_SERVER['REQUEST_URI'], 'wp-signup.php' )){
181
 
182
  $login_slug = $aio_wp_security->configs->get_value('aiowps_login_page_slug');
183
  $home_url_with_slug = home_url($login_slug, 'relative');
184
+
185
  /*
186
  * Compatibility fix for WPML plugin
187
  */
211
  global $wp_version;
212
  do_action('aiowps_rename_login_load');
213
  status_header( 200 );
214
+ if ( version_compare( $wp_version, '5.7', '>=' ) ) {
215
  require_once(AIO_WP_SECURITY_PATH . '/other-includes/wp-security-rename-login-feature.php' );
216
+ } else if ( version_compare( $wp_version, '5.2', '>=' ) ) {
217
+ require_once(AIO_WP_SECURITY_PATH . '/other-includes/wp-security-rename-login-feature-pre-5-7.php' );
218
  } else {
219
  require_once(AIO_WP_SECURITY_PATH . '/other-includes/wp-security-rename-login-feature-pre-5-2.php' );
220
  }
221
+
222
  die;
223
  }
224
+ }
225
  }
226
+
227
  static function new_login_url()
228
  {
229
  global $aio_wp_security;
235
  }
236
  }
237
 
238
+ static function aiowps_set_404()
239
  {
240
  global $wp_query;
241
  do_action('aiopws_before_set_404'); //This hook is for themes which produce a fatal error when the rename login feature is enabled and someone visits "wp-admin" slug directly
248
  }
249
  die;
250
  }
251
+
252
  }
classes/wp-security-user-login.php CHANGED
@@ -57,7 +57,7 @@ class AIOWPSecurity_User_Login
57
  return $user;
58
  }
59
  }
60
-
61
  /**
62
  * Check login captcha (if enabled).
63
  * @global AIO_WP_Security $aio_wp_security
@@ -71,12 +71,12 @@ class AIOWPSecurity_User_Login
71
  // Authentication has failed already at some earlier step.
72
  return $user;
73
  }
74
-
75
  if ( ! (isset($_POST['log']) && isset($_POST['pwd'])) ) {
76
  // XML-RPC authentication (not via wp-login.php), nothing to do here.
77
  return $user;
78
  }
79
-
80
  if ( $aio_wp_security->configs->get_value('aiowps_enable_login_captcha') != '1' ) {
81
  // Captcha not enabled, nothing to do here.
82
  return $user;
@@ -149,7 +149,7 @@ class AIOWPSecurity_User_Login
149
  $whitelisted_ips = $aio_wp_security->configs->get_value('aiowps_lockdown_allowed_ip_addresses');
150
  $is_whitelisted = AIOWPSecurity_Utility_IP::is_ip_whitelisted($ip, $whitelisted_ips);
151
  }
152
-
153
  if($is_whitelisted === false){
154
  // Too many failed logins from user's IP?
155
  $login_attempts_permitted = absint($aio_wp_security->configs->get_value('aiowps_max_login_attempts'));
@@ -171,7 +171,7 @@ class AIOWPSecurity_User_Login
171
  }
172
  }
173
  }
174
-
175
  if ( $aio_wp_security->configs->get_value('aiowps_set_generic_login_msg') == '1' )
176
  {
177
  // Return generic error message if configured
@@ -207,9 +207,9 @@ class AIOWPSecurity_User_Login
207
  $now = current_time( 'mysql' );
208
  $ip = AIOWPSecurity_Utility_IP::get_user_ip_address(); //Get the IP address of user
209
  if(empty($ip)) return false;
210
- $login_failures = $wpdb->get_var("SELECT COUNT(ID) FROM $failed_logins_table " .
211
  "WHERE failed_login_date + INTERVAL " .
212
- $login_retry_interval . " MINUTE > '" . esc_sql($now) . "' AND " .
213
  "login_attempt_ip = '" . esc_sql($ip) . "'");
214
  return $login_failures;
215
  }
@@ -237,7 +237,7 @@ class AIOWPSecurity_User_Login
237
  $user_id = 0;
238
  }
239
  $ip_range_str = esc_sql($ip_range).'.*';
240
-
241
  $lock_time = current_time( 'mysql' );
242
  $date = new DateTime($lock_time);
243
  $add_interval = 'PT'.absint($lock_minutes).'M';
@@ -247,7 +247,7 @@ class AIOWPSecurity_User_Login
247
  $data = array('user_id' => $user_id, 'user_login' => $username, 'lockdown_date' => $lock_time, 'release_date' => $release_time, 'failed_login_IP' => $ip, 'lock_reason' => $lock_reason);
248
  $format = array('%d', '%s', '%s', '%s', '%s', '%s');
249
  $result = $wpdb->insert($login_lockdown_table, $data, $format);
250
-
251
  if ($result === FALSE)
252
  {
253
  $aio_wp_security->debug_logger->log_debug("Error inserting record into ".$login_lockdown_table,4);//Log the highly unlikely event of DB error
@@ -313,10 +313,10 @@ class AIOWPSecurity_User_Login
313
  }
314
  }
315
  }
316
-
317
  /**
318
  * Generates and returns an unlock request link which will be used to send to the user.
319
- *
320
  * @global type $wpdb
321
  * @global AIO_WP_Security $aio_wp_security
322
  * @param type $ip_range
@@ -329,8 +329,7 @@ class AIOWPSecurity_User_Login
329
  $unlock_link = '';
330
  $lockdown_table_name = AIOWPSEC_TBL_LOGIN_LOCKDOWN;
331
  $secret_rand_key = (md5(uniqid(rand(), true)));
332
- $sql = $wpdb->prepare("UPDATE $lockdown_table_name SET unlock_key = '$secret_rand_key' WHERE release_date > now() AND failed_login_ip LIKE %s","%".esc_sql($ip_range)."%");
333
- $res = $wpdb->query($sql);
334
  if($res == NULL){
335
  $aio_wp_security->debug_logger->log_debug("No locked user found with IP range ".$ip_range,4);
336
  return false;
@@ -359,7 +358,7 @@ class AIOWPSecurity_User_Login
359
  {
360
  global $wpdb, $aio_wp_security;
361
  $lockdown_table_name = AIOWPSEC_TBL_LOGIN_LOCKDOWN;
362
-
363
  $unlock_command = $wpdb->prepare( "UPDATE ".$lockdown_table_name." SET release_date = now() WHERE unlock_key = %s", $unlock_key );
364
  $result = $wpdb->query($unlock_command);
365
  if($result === false)
@@ -393,14 +392,14 @@ class AIOWPSecurity_User_Login
393
  }else{
394
  $login_url = $home_url.$aio_wp_security->configs->get_value('aiowps_login_page_slug');
395
  }
396
-
397
  AIOWPSecurity_Utility::redirect_to_url($login_url);
398
  }else{
399
  AIOWPSecurity_Utility::redirect_to_url(wp_login_url());
400
  }
401
  }
402
  }
403
-
404
  /*
405
  * This function sends an unlock request email to a locked out user
406
  */
@@ -421,7 +420,7 @@ class AIOWPSecurity_User_Login
421
  $aio_wp_security->debug_logger->log_debug("Unlock Request Notification email failed to send to " . $email, 4);
422
  }
423
  }
424
-
425
  /*
426
  * This function will check the settings and log the user after the configured time period
427
  */
@@ -444,7 +443,7 @@ class AIOWPSecurity_User_Login
444
  {
445
  $aio_wp_security->debug_logger->log_debug("Force Logout - This user logged in more than (".$logout_time_interval_value.") minutes ago. Doing a force log out for the user with username: ".$current_user->user_login);
446
  $this->wp_logout_action_handler(); //this will register the logout time/date in the logout_date column
447
-
448
  $curr_page_url = AIOWPSecurity_Utility::get_current_page_url();
449
  $after_logout_payload = array('redirect_to'=>$curr_page_url, 'msg'=>$this->key_login_msg.'=session_expired');
450
  //Save some of the logout redirect data to a transient
@@ -457,17 +456,17 @@ class AIOWPSecurity_User_Login
457
  }
458
  }
459
  }
460
-
461
  function get_wp_user_last_login_time($user_id)
462
  {
463
  $last_login = get_user_meta($user_id, 'last_login_time', true);
464
  return $last_login;
465
  }
466
- static function wp_login_action_handler($user_login, $user='')
467
  {
468
  global $wpdb, $aio_wp_security;
469
  $login_activity_table = AIOWPSEC_TBL_USER_LOGIN_ACTIVITY;
470
-
471
  if ($user == ''){
472
  //Try and get user object
473
  $user = get_user_by('login', $user_login); //This should return WP_User obj
@@ -479,25 +478,25 @@ class AIOWPSecurity_User_Login
479
  $login_date_time = current_time( 'mysql' );
480
  update_user_meta($user->ID, 'last_login_time', $login_date_time); //store last login time in meta table
481
  $curr_ip_address = AIOWPSecurity_Utility_IP::get_user_ip_address();
482
- $insert = "INSERT INTO " . $login_activity_table . " (user_id, user_login, login_date, login_ip) " .
483
- "VALUES ('" . $user->ID . "', '" . $user_login . "', '" . $login_date_time . "', '" . $curr_ip_address . "')";
484
- $result = $wpdb->query($insert);
485
  if ($result === FALSE)
486
  {
487
  $aio_wp_security->debug_logger->log_debug("Error inserting record into ".$login_activity_table,4);//Log the highly unlikely event of DB error
488
  }
489
-
490
  }
491
  /**
492
  * The handler for logout events, ie, uses the WP "clear_auth_cookies" action.
493
-
494
  * Modifies the login activity record for the current user by registering the logout time/date in the logout_date column.
495
  * (NOTE: Because of the way we are doing a force logout, the "clear_auth_cookies" hook does not fire.
496
- * upon auto logout. The current workaround is to call this function directly from the aiowps_force_logout_action_handler() when
497
- * an auto logout occurs due to the "force logout" feature).
498
  *
499
  */
500
- function wp_logout_action_handler()
501
  {
502
  global $wpdb, $aio_wp_security;
503
  $current_user = wp_get_current_user();
@@ -510,14 +509,14 @@ class AIOWPSecurity_User_Login
510
  $data = array('logout_date' => $logout_date_time);
511
  $where = array('user_id' => $user_id,
512
  'login_ip' => $ip_addr,
513
- 'logout_date' => '1000-10-00 10:00:00');
514
  $result = $wpdb->update($login_activity_table, $data, $where);
515
  if ($result === FALSE)
516
  {
517
  $aio_wp_security->debug_logger->log_debug("Error inserting record into ".$login_activity_table,4);//Log the highly unlikely event of DB error
518
  }
519
  }
520
-
521
  /**
522
  * Update the 'users_online' transient
523
  * @return void
@@ -530,7 +529,7 @@ class AIOWPSecurity_User_Login
530
  // get the logged in users list from transients entry
531
  $logged_in_users = ($is_multi_site ? get_site_transient('users_online') : get_transient('users_online'));
532
  $current_user = wp_get_current_user();
533
- $current_user = $current_user->ID;
534
  $current_time = current_time('timestamp');
535
  $current_user_info = array();
536
 
@@ -540,9 +539,9 @@ class AIOWPSecurity_User_Login
540
  // For multi-sites also store blog_id
541
  $current_user_info = array("user_id" => $current_user, "last_activity" => $current_time, "ip_address" => $current_user_ip, "blog_id" => $current_blog_id);
542
  } else {
543
- $current_user_info = array("user_id" => $current_user, "last_activity" => $current_time, "ip_address" => $current_user_ip, "blog_id" => false);
544
  }
545
-
546
  if(empty($logged_in_users))
547
  {
548
  // case when "users_online" transient has been deleted after expiry or is empty
@@ -587,12 +586,12 @@ class AIOWPSecurity_User_Login
587
  }
588
  }
589
  }
590
-
591
  /**
592
- * This will clean up the "users_online" transient entry for the current user when a logout occurs
593
  * @return void
594
  */
595
- function cleanup_users_online_transient($user_id, $ip_addr)
596
  {
597
  global $aio_wp_security;
598
  $is_multi_site = AIOWPSecurity_Utility::is_multisite_install();
@@ -602,7 +601,7 @@ class AIOWPSecurity_User_Login
602
  } else {
603
  $logged_in_users = get_transient('users_online');
604
  }
605
-
606
  if (empty($logged_in_users))
607
  {
608
  return;
@@ -617,7 +616,7 @@ class AIOWPSecurity_User_Login
617
  }
618
  $j++;
619
  }
620
-
621
  // Save the transient
622
  if ($is_multi_site) {
623
  set_site_transient('users_online', $logged_in_users, 30 * 60);
@@ -626,7 +625,7 @@ class AIOWPSecurity_User_Login
626
  }
627
  return;
628
  }
629
-
630
  /**
631
  * The handler for the WP "login_message" filter
632
  * Adds custom messages to the other messages that appear above the login form.
@@ -638,7 +637,7 @@ class AIOWPSecurity_User_Login
638
  * @return string
639
  *
640
  */
641
- function aiowps_login_message($message = '')
642
  {
643
  global $aio_wp_security;
644
  $msg = '';
@@ -698,7 +697,7 @@ class AIOWPSecurity_User_Login
698
  */
699
  static function get_subsite_logged_in_users($blog_id=0) {
700
  if(empty($blog_id)) return false;
701
-
702
  $subsite_logged_in_users = array();
703
  if (AIOWPSecurity_Utility::is_multisite_install()) {
704
  // this contains all logged in users sitewide across subsites
57
  return $user;
58
  }
59
  }
60
+
61
  /**
62
  * Check login captcha (if enabled).
63
  * @global AIO_WP_Security $aio_wp_security
71
  // Authentication has failed already at some earlier step.
72
  return $user;
73
  }
74
+
75
  if ( ! (isset($_POST['log']) && isset($_POST['pwd'])) ) {
76
  // XML-RPC authentication (not via wp-login.php), nothing to do here.
77
  return $user;
78
  }
79
+
80
  if ( $aio_wp_security->configs->get_value('aiowps_enable_login_captcha') != '1' ) {
81
  // Captcha not enabled, nothing to do here.
82
  return $user;
149
  $whitelisted_ips = $aio_wp_security->configs->get_value('aiowps_lockdown_allowed_ip_addresses');
150
  $is_whitelisted = AIOWPSecurity_Utility_IP::is_ip_whitelisted($ip, $whitelisted_ips);
151
  }
152
+
153
  if($is_whitelisted === false){
154
  // Too many failed logins from user's IP?
155
  $login_attempts_permitted = absint($aio_wp_security->configs->get_value('aiowps_max_login_attempts'));
171
  }
172
  }
173
  }
174
+
175
  if ( $aio_wp_security->configs->get_value('aiowps_set_generic_login_msg') == '1' )
176
  {
177
  // Return generic error message if configured
207
  $now = current_time( 'mysql' );
208
  $ip = AIOWPSecurity_Utility_IP::get_user_ip_address(); //Get the IP address of user
209
  if(empty($ip)) return false;
210
+ $login_failures = $wpdb->get_var("SELECT COUNT(ID) FROM $failed_logins_table " .
211
  "WHERE failed_login_date + INTERVAL " .
212
+ esc_sql($login_retry_interval) . " MINUTE > '" . esc_sql($now) . "' AND " .
213
  "login_attempt_ip = '" . esc_sql($ip) . "'");
214
  return $login_failures;
215
  }
237
  $user_id = 0;
238
  }
239
  $ip_range_str = esc_sql($ip_range).'.*';
240
+
241
  $lock_time = current_time( 'mysql' );
242
  $date = new DateTime($lock_time);
243
  $add_interval = 'PT'.absint($lock_minutes).'M';
247
  $data = array('user_id' => $user_id, 'user_login' => $username, 'lockdown_date' => $lock_time, 'release_date' => $release_time, 'failed_login_IP' => $ip, 'lock_reason' => $lock_reason);
248
  $format = array('%d', '%s', '%s', '%s', '%s', '%s');
249
  $result = $wpdb->insert($login_lockdown_table, $data, $format);
250
+
251
  if ($result === FALSE)
252
  {
253
  $aio_wp_security->debug_logger->log_debug("Error inserting record into ".$login_lockdown_table,4);//Log the highly unlikely event of DB error
313
  }
314
  }
315
  }
316
+
317
  /**
318
  * Generates and returns an unlock request link which will be used to send to the user.
319
+ *
320
  * @global type $wpdb
321
  * @global AIO_WP_Security $aio_wp_security
322
  * @param type $ip_range
329
  $unlock_link = '';
330
  $lockdown_table_name = AIOWPSEC_TBL_LOGIN_LOCKDOWN;
331
  $secret_rand_key = (md5(uniqid(rand(), true)));
332
+ $res = $wpdb->query( $wpdb->prepare("UPDATE $lockdown_table_name SET unlock_key = '$secret_rand_key' WHERE release_date > now() AND failed_login_ip LIKE %s","%".esc_sql($ip_range)."%") );
 
333
  if($res == NULL){
334
  $aio_wp_security->debug_logger->log_debug("No locked user found with IP range ".$ip_range,4);
335
  return false;
358
  {
359
  global $wpdb, $aio_wp_security;
360
  $lockdown_table_name = AIOWPSEC_TBL_LOGIN_LOCKDOWN;
361
+
362
  $unlock_command = $wpdb->prepare( "UPDATE ".$lockdown_table_name." SET release_date = now() WHERE unlock_key = %s", $unlock_key );
363
  $result = $wpdb->query($unlock_command);
364
  if($result === false)
392
  }else{
393
  $login_url = $home_url.$aio_wp_security->configs->get_value('aiowps_login_page_slug');
394
  }
395
+
396
  AIOWPSecurity_Utility::redirect_to_url($login_url);
397
  }else{
398
  AIOWPSecurity_Utility::redirect_to_url(wp_login_url());
399
  }
400
  }
401
  }
402
+
403
  /*
404
  * This function sends an unlock request email to a locked out user
405
  */
420
  $aio_wp_security->debug_logger->log_debug("Unlock Request Notification email failed to send to " . $email, 4);
421
  }
422
  }
423
+
424
  /*
425
  * This function will check the settings and log the user after the configured time period
426
  */
443
  {
444
  $aio_wp_security->debug_logger->log_debug("Force Logout - This user logged in more than (".$logout_time_interval_value.") minutes ago. Doing a force log out for the user with username: ".$current_user->user_login);
445
  $this->wp_logout_action_handler(); //this will register the logout time/date in the logout_date column
446
+
447
  $curr_page_url = AIOWPSecurity_Utility::get_current_page_url();
448
  $after_logout_payload = array('redirect_to'=>$curr_page_url, 'msg'=>$this->key_login_msg.'=session_expired');
449
  //Save some of the logout redirect data to a transient
456
  }
457
  }
458
  }
459
+
460
  function get_wp_user_last_login_time($user_id)
461
  {
462
  $last_login = get_user_meta($user_id, 'last_login_time', true);
463
  return $last_login;
464
  }
465
+ static function wp_login_action_handler($user_login, $user='')
466
  {
467
  global $wpdb, $aio_wp_security;
468
  $login_activity_table = AIOWPSEC_TBL_USER_LOGIN_ACTIVITY;
469
+
470
  if ($user == ''){
471
  //Try and get user object
472
  $user = get_user_by('login', $user_login); //This should return WP_User obj
478
  $login_date_time = current_time( 'mysql' );
479
  update_user_meta($user->ID, 'last_login_time', $login_date_time); //store last login time in meta table
480
  $curr_ip_address = AIOWPSecurity_Utility_IP::get_user_ip_address();
481
+ $data = array('user_id' => $user->ID, 'user_login' => $user_login, 'login_date' => $login_date_time, 'login_ip' => $curr_ip_address);
482
+ $format = array('%d', '%s', '%s', '%s');
483
+ $result = $wpdb->insert($login_activity_table, $data, $format);
484
  if ($result === FALSE)
485
  {
486
  $aio_wp_security->debug_logger->log_debug("Error inserting record into ".$login_activity_table,4);//Log the highly unlikely event of DB error
487
  }
488
+
489
  }
490
  /**
491
  * The handler for logout events, ie, uses the WP "clear_auth_cookies" action.
492
+
493
  * Modifies the login activity record for the current user by registering the logout time/date in the logout_date column.
494
  * (NOTE: Because of the way we are doing a force logout, the "clear_auth_cookies" hook does not fire.
495
+ * upon auto logout. The current workaround is to call this function directly from the aiowps_force_logout_action_handler() when
496
+ * an auto logout occurs due to the "force logout" feature).
497
  *
498
  */
499
+ function wp_logout_action_handler()
500
  {
501
  global $wpdb, $aio_wp_security;
502
  $current_user = wp_get_current_user();
509
  $data = array('logout_date' => $logout_date_time);
510
  $where = array('user_id' => $user_id,
511
  'login_ip' => $ip_addr,
512
+ 'logout_date' => '1000-10-10 10:00:00');
513
  $result = $wpdb->update($login_activity_table, $data, $where);
514
  if ($result === FALSE)
515
  {
516
  $aio_wp_security->debug_logger->log_debug("Error inserting record into ".$login_activity_table,4);//Log the highly unlikely event of DB error
517
  }
518
  }
519
+
520
  /**
521
  * Update the 'users_online' transient
522
  * @return void
529
  // get the logged in users list from transients entry
530
  $logged_in_users = ($is_multi_site ? get_site_transient('users_online') : get_transient('users_online'));
531
  $current_user = wp_get_current_user();
532
+ $current_user = $current_user->ID;
533
  $current_time = current_time('timestamp');
534
  $current_user_info = array();
535
 
539
  // For multi-sites also store blog_id
540
  $current_user_info = array("user_id" => $current_user, "last_activity" => $current_time, "ip_address" => $current_user_ip, "blog_id" => $current_blog_id);
541
  } else {
542
+ $current_user_info = array("user_id" => $current_user, "last_activity" => $current_time, "ip_address" => $current_user_ip, "blog_id" => false);
543
  }
544
+
545
  if(empty($logged_in_users))
546
  {
547
  // case when "users_online" transient has been deleted after expiry or is empty
586
  }
587
  }
588
  }
589
+
590
  /**
591
+ * This will clean up the "users_online" transient entry for the current user when a logout occurs
592
  * @return void
593
  */
594
+ function cleanup_users_online_transient($user_id, $ip_addr)
595
  {
596
  global $aio_wp_security;
597
  $is_multi_site = AIOWPSecurity_Utility::is_multisite_install();
601
  } else {
602
  $logged_in_users = get_transient('users_online');
603
  }
604
+
605
  if (empty($logged_in_users))
606
  {
607
  return;
616
  }
617
  $j++;
618
  }
619
+
620
  // Save the transient
621
  if ($is_multi_site) {
622
  set_site_transient('users_online', $logged_in_users, 30 * 60);
625
  }
626
  return;
627
  }
628
+
629
  /**
630
  * The handler for the WP "login_message" filter
631
  * Adds custom messages to the other messages that appear above the login form.
637
  * @return string
638
  *
639
  */
640
+ function aiowps_login_message($message = '')
641
  {
642
  global $aio_wp_security;
643
  $msg = '';
697
  */
698
  static function get_subsite_logged_in_users($blog_id=0) {
699
  if(empty($blog_id)) return false;
700
+
701
  $subsite_logged_in_users = array();
702
  if (AIOWPSecurity_Utility::is_multisite_install()) {
703
  // this contains all logged in users sitewide across subsites
classes/wp-security-utility-file.php CHANGED
@@ -5,10 +5,10 @@ if(!defined('ABSPATH')){
5
 
6
  class AIOWPSecurity_Utility_File
7
  {
8
-
9
  /* This variable will be an array which will contain all of the files and/or directories we wish to check permissions for */
10
  public $files_and_dirs_to_check;
11
-
12
  function __construct(){
13
  /* Let's initiliaze our class variable array with all of the files and/or directories we wish to check permissions for.
14
  * NOTE: we can add to this list in future if we wish
@@ -18,7 +18,7 @@ class AIOWPSecurity_Utility_File
18
  if ( !function_exists( 'get_home_path' ) ) require_once( ABSPATH. '/wp-admin/includes/file.php' );
19
  $wp_config_path = AIOWPSecurity_Utility_File::get_wp_config_file_path();
20
  $home_path = get_home_path();
21
-
22
  $this->files_and_dirs_to_check = array(
23
  array('name'=>'root directory','path'=>ABSPATH,'permissions'=>'0755'),
24
  array('name'=>'wp-includes/','path'=>ABSPATH."wp-includes",'permissions'=>'0755'),
@@ -34,19 +34,19 @@ class AIOWPSecurity_Utility_File
34
  );
35
 
36
  }
37
-
38
  static function get_wp_config_file_path()
39
  {
40
  $wp_config_file = ABSPATH . 'wp-config.php';
41
  if(file_exists($wp_config_file)){
42
  return $wp_config_file;
43
  }
44
- else if (file_exists(dirname( ABSPATH ) . '/wp-config.php')){
45
  return dirname( ABSPATH ) . '/wp-config.php';
46
  }
47
  return $wp_config_file;
48
  }
49
-
50
  static function write_content_to_file($file_path, $new_contents)
51
  {
52
  @chmod($file_path, 0777);
@@ -63,7 +63,7 @@ class AIOWPSecurity_Utility_File
63
  return false;
64
  }
65
  }
66
-
67
  static function backup_a_file($src_file_path, $suffix = 'backup')
68
  {
69
  $backup_file_path = $src_file_path . '.' . $suffix;
@@ -77,7 +77,7 @@ class AIOWPSecurity_Utility_File
77
  static function backup_and_rename_wp_config($src_file_path, $prefix = 'backup')
78
  {
79
  global $aio_wp_security;
80
-
81
  //Check to see if the main "backups" directory exists - create it otherwise
82
  $aiowps_backup_dir = WP_CONTENT_DIR.'/'.AIO_WP_SECURITY_BACKUPS_DIR_NAME;
83
  if (!AIOWPSecurity_Utility_File::create_dir($aiowps_backup_dir))
@@ -85,10 +85,10 @@ class AIOWPSecurity_Utility_File
85
  $aio_wp_security->debug_logger->log_debug("backup_and_rename_wp_config - Creation of backup directory failed!",4);
86
  return false;
87
  }
88
-
89
  $src_parts = pathinfo($src_file_path);
90
  $backup_file_name = $prefix . '.' . $src_parts['basename'];
91
-
92
  $backup_file_path = $aiowps_backup_dir . '/' . $backup_file_name;
93
  if (!copy($src_file_path, $backup_file_path)) {
94
  //Failed to make a backup copy
@@ -96,11 +96,11 @@ class AIOWPSecurity_Utility_File
96
  }
97
  return true;
98
  }
99
-
100
  static function backup_and_rename_htaccess($src_file_path, $suffix = 'backup')
101
  {
102
  global $aio_wp_security;
103
-
104
  //Check to see if the main "backups" directory exists - create it otherwise
105
  $aiowps_backup_dir = WP_CONTENT_DIR.'/'.AIO_WP_SECURITY_BACKUPS_DIR_NAME;
106
  if (!AIOWPSecurity_Utility_File::create_dir($aiowps_backup_dir))
@@ -108,10 +108,10 @@ class AIOWPSecurity_Utility_File
108
  $aio_wp_security->debug_logger->log_debug("backup_and_rename_htaccess - Creation of backup directory failed!",4);
109
  return false;
110
  }
111
-
112
  $src_parts = pathinfo($src_file_path);
113
  $backup_file_name = $src_parts['basename'] . '.' . $suffix;
114
-
115
  $backup_file_path = $aiowps_backup_dir . '/' . $backup_file_name;
116
  if (!copy($src_file_path, $backup_file_path)) {
117
  //Failed to make a backup copy
@@ -125,14 +125,14 @@ class AIOWPSecurity_Utility_File
125
  {
126
  global $wpdb, $aio_wp_security;
127
  $file_contents = AIOWPSecurity_Utility_File::get_file_contents($src_file_path);
128
-
129
  $payload = serialize($file_contents);
130
  $date_time = current_time( 'mysql' );
131
  $data = array('date_time' => $date_time, 'meta_key1' => $key_description, 'meta_value2' => $payload);
132
 
133
  //First check if a backup entry already exists in the global_meta table
134
  $aiowps_global_meta_tbl_name = AIOWPSEC_TBL_GLOBAL_META_DATA;
135
- $resultset = $wpdb->get_row("SELECT * FROM $aiowps_global_meta_tbl_name WHERE meta_key1 = '$key_description'", OBJECT);
136
  if($resultset){
137
  $where = array('meta_key1' => $key_description);
138
  $res = $wpdb->update($aiowps_global_meta_tbl_name, $data, $where);
@@ -146,8 +146,8 @@ class AIOWPSecurity_Utility_File
146
  }
147
  return;
148
  }
149
-
150
-
151
  static function recursive_file_search($pattern='*', $flags = 0, $path='')
152
  {
153
  $paths=glob($path.'*', GLOB_MARK|GLOB_ONLYDIR|GLOB_NOSORT);
@@ -161,13 +161,13 @@ class AIOWPSecurity_Utility_File
161
  foreach ($paths as $path) { $files=array_merge($files,AIOWPSecurity_Utility_File::recursive_file_search($pattern, $flags, $path)); }
162
  return $files;
163
  }
164
-
165
  /*
166
  * Useful when wanting to echo file contents to screen with <br /> tags
167
  */
168
  static function get_file_contents_with_br($src_file)
169
  {
170
- $file_contents = file_get_contents($src_file);
171
  return nl2br($file_contents);
172
  }
173
 
@@ -176,20 +176,20 @@ class AIOWPSecurity_Utility_File
176
  */
177
  static function get_file_contents($src_file)
178
  {
179
- $file_contents = file_get_contents($src_file);
180
  return $file_contents;
181
  }
182
-
183
  /*
184
  * Returns the file's permission value eg, "0755"
185
  */
186
  static function get_file_permission($filepath)
187
  {
188
- if (!function_exists('fileperms'))
189
  {
190
  $perms = '-1';
191
  }
192
- else
193
  {
194
  clearstatcache();
195
  $perms = substr(sprintf("%o", @fileperms($filepath)), -4);
@@ -207,7 +207,7 @@ class AIOWPSecurity_Utility_File
207
  if ($write_result === false)
208
  {
209
  return false;
210
- }
211
  else
212
  {
213
  return true;
@@ -232,7 +232,7 @@ class AIOWPSecurity_Utility_File
232
  readfile($file);
233
  exit;
234
  }
235
-
236
  static function download_content_to_a_file($output, $file_name = '')
237
  {
238
  if(empty($file_name)){$file_name = "aiowps_" . date("Y-m-d_H-i", time()).".txt";}
@@ -247,7 +247,7 @@ class AIOWPSecurity_Utility_File
247
  echo $output;
248
  exit;
249
  }
250
-
251
  /*
252
  * This function will compare the current permission value for a file or dir with the recommended value.
253
  * It will compare the individual "execute", "write" and "read" bits for the "public", "group" and "owner" permissions.
@@ -275,7 +275,7 @@ class AIOWPSecurity_Utility_File
275
  //The "execute" bit is switched on for the actual value - meaning it is less secure
276
  $result = 0*$result;
277
  }
278
-
279
  //Compare the "write" bit values for the public actual versus the recommended
280
  if (substr($pva_bin,-2,1)<=substr($pvr_bin,-2,1))
281
  {
@@ -336,7 +336,7 @@ class AIOWPSecurity_Utility_File
336
  //The "read" bit is switched on for the actual value - meaning it is less secure
337
  $result = 0*$result;
338
  }
339
-
340
  //Check "owner" permissions
341
  $owner_value_actual = substr($actual,-3,1);
342
  $owner_value_rec = substr($recommended,-3,1);
5
 
6
  class AIOWPSecurity_Utility_File
7
  {
8
+
9
  /* This variable will be an array which will contain all of the files and/or directories we wish to check permissions for */
10
  public $files_and_dirs_to_check;
11
+
12
  function __construct(){
13
  /* Let's initiliaze our class variable array with all of the files and/or directories we wish to check permissions for.
14
  * NOTE: we can add to this list in future if we wish
18
  if ( !function_exists( 'get_home_path' ) ) require_once( ABSPATH. '/wp-admin/includes/file.php' );
19
  $wp_config_path = AIOWPSecurity_Utility_File::get_wp_config_file_path();
20
  $home_path = get_home_path();
21
+
22
  $this->files_and_dirs_to_check = array(
23
  array('name'=>'root directory','path'=>ABSPATH,'permissions'=>'0755'),
24
  array('name'=>'wp-includes/','path'=>ABSPATH."wp-includes",'permissions'=>'0755'),
34
  );
35
 
36
  }
37
+
38
  static function get_wp_config_file_path()
39
  {
40
  $wp_config_file = ABSPATH . 'wp-config.php';
41
  if(file_exists($wp_config_file)){
42
  return $wp_config_file;
43
  }
44
+ else if (file_exists(dirname( ABSPATH ) . '/wp-config.php')){
45
  return dirname( ABSPATH ) . '/wp-config.php';
46
  }
47
  return $wp_config_file;
48
  }
49
+
50
  static function write_content_to_file($file_path, $new_contents)
51
  {
52
  @chmod($file_path, 0777);
63
  return false;
64
  }
65
  }
66
+
67
  static function backup_a_file($src_file_path, $suffix = 'backup')
68
  {
69
  $backup_file_path = $src_file_path . '.' . $suffix;
77
  static function backup_and_rename_wp_config($src_file_path, $prefix = 'backup')
78
  {
79
  global $aio_wp_security;
80
+
81
  //Check to see if the main "backups" directory exists - create it otherwise
82
  $aiowps_backup_dir = WP_CONTENT_DIR.'/'.AIO_WP_SECURITY_BACKUPS_DIR_NAME;
83
  if (!AIOWPSecurity_Utility_File::create_dir($aiowps_backup_dir))
85
  $aio_wp_security->debug_logger->log_debug("backup_and_rename_wp_config - Creation of backup directory failed!",4);
86
  return false;
87
  }
88
+
89
  $src_parts = pathinfo($src_file_path);
90
  $backup_file_name = $prefix . '.' . $src_parts['basename'];
91
+
92
  $backup_file_path = $aiowps_backup_dir . '/' . $backup_file_name;
93
  if (!copy($src_file_path, $backup_file_path)) {
94
  //Failed to make a backup copy
96
  }
97
  return true;
98
  }
99
+
100
  static function backup_and_rename_htaccess($src_file_path, $suffix = 'backup')
101
  {
102
  global $aio_wp_security;
103
+
104
  //Check to see if the main "backups" directory exists - create it otherwise
105
  $aiowps_backup_dir = WP_CONTENT_DIR.'/'.AIO_WP_SECURITY_BACKUPS_DIR_NAME;
106
  if (!AIOWPSecurity_Utility_File::create_dir($aiowps_backup_dir))
108
  $aio_wp_security->debug_logger->log_debug("backup_and_rename_htaccess - Creation of backup directory failed!",4);
109
  return false;
110
  }
111
+
112
  $src_parts = pathinfo($src_file_path);
113
  $backup_file_name = $src_parts['basename'] . '.' . $suffix;
114
+
115
  $backup_file_path = $aiowps_backup_dir . '/' . $backup_file_name;
116
  if (!copy($src_file_path, $backup_file_path)) {
117
  //Failed to make a backup copy
125
  {
126
  global $wpdb, $aio_wp_security;
127
  $file_contents = AIOWPSecurity_Utility_File::get_file_contents($src_file_path);
128
+
129
  $payload = serialize($file_contents);
130
  $date_time = current_time( 'mysql' );
131
  $data = array('date_time' => $date_time, 'meta_key1' => $key_description, 'meta_value2' => $payload);
132
 
133
  //First check if a backup entry already exists in the global_meta table
134
  $aiowps_global_meta_tbl_name = AIOWPSEC_TBL_GLOBAL_META_DATA;
135
+ $resultset = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $aiowps_global_meta_tbl_name WHERE meta_key1 = '%s'", $key_description) );
136
  if($resultset){
137
  $where = array('meta_key1' => $key_description);
138
  $res = $wpdb->update($aiowps_global_meta_tbl_name, $data, $where);
146
  }
147
  return;
148
  }
149
+
150
+
151
  static function recursive_file_search($pattern='*', $flags = 0, $path='')
152
  {
153
  $paths=glob($path.'*', GLOB_MARK|GLOB_ONLYDIR|GLOB_NOSORT);
161
  foreach ($paths as $path) { $files=array_merge($files,AIOWPSecurity_Utility_File::recursive_file_search($pattern, $flags, $path)); }
162
  return $files;
163
  }
164
+
165
  /*
166
  * Useful when wanting to echo file contents to screen with <br /> tags
167
  */
168
  static function get_file_contents_with_br($src_file)
169
  {
170
+ $file_contents = file_get_contents($src_file);
171
  return nl2br($file_contents);
172
  }
173
 
176
  */
177
  static function get_file_contents($src_file)
178
  {
179
+ $file_contents = file_get_contents($src_file);
180
  return $file_contents;
181
  }
182
+
183
  /*
184
  * Returns the file's permission value eg, "0755"
185
  */
186
  static function get_file_permission($filepath)
187
  {
188
+ if (!function_exists('fileperms'))
189
  {
190
  $perms = '-1';
191
  }
192
+ else
193
  {
194
  clearstatcache();
195
  $perms = substr(sprintf("%o", @fileperms($filepath)), -4);
207
  if ($write_result === false)
208
  {
209
  return false;
210
+ }
211
  else
212
  {
213
  return true;
232
  readfile($file);
233
  exit;
234
  }
235
+
236
  static function download_content_to_a_file($output, $file_name = '')
237
  {
238
  if(empty($file_name)){$file_name = "aiowps_" . date("Y-m-d_H-i", time()).".txt";}
247
  echo $output;
248
  exit;
249
  }
250
+
251
  /*
252
  * This function will compare the current permission value for a file or dir with the recommended value.
253
  * It will compare the individual "execute", "write" and "read" bits for the "public", "group" and "owner" permissions.
275
  //The "execute" bit is switched on for the actual value - meaning it is less secure
276
  $result = 0*$result;
277
  }
278
+
279
  //Compare the "write" bit values for the public actual versus the recommended
280
  if (substr($pva_bin,-2,1)<=substr($pvr_bin,-2,1))
281
  {
336
  //The "read" bit is switched on for the actual value - meaning it is less secure
337
  $result = 0*$result;
338
  }
339
+
340
  //Check "owner" permissions
341
  $owner_value_actual = substr($actual,-3,1);
342
  $owner_value_rec = substr($recommended,-3,1);
languages/all-in-one-wp-security-and-firewall-ko_KR.mo ADDED
Binary file
languages/all-in-one-wp-security-and-firewall-ko_KR.po ADDED
@@ -0,0 +1,6503 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: All In One WP Security 4.4.4\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2017-04-18 18:26+0800\n"
6
+ "PO-Revision-Date: 2020-08-08 15:15+0900\n"
7
+ "Last-Translator: Luatic <mint@luatic.co.kr>\n"
8
+ "Language-Team: Luatic <mint@luatic.co.kr>\n"
9
+ "Language: ko_KR\n"
10
+ "MIME-Version: 1.0\n"
11
+ "Content-Type: text/plain; charset=UTF-8\n"
12
+ "Content-Transfer-Encoding: 8bit\n"
13
+ "Plural-Forms: nplurals=2; plural=1;\n"
14
+ "X-Generator: Poedit 1.8.13\n"
15
+ "X-Poedit-SourceCharset: UTF-8\n"
16
+ "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
17
+ "_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
18
+ "X-Poedit-Basepath: ..\n"
19
+ "X-Textdomain-Support: yes\n"
20
+ "X-Poedit-SearchPath-0: .\n"
21
+
22
+ # @ all-in-one-wp-security-and-firewall
23
+ #: admin/wp-security-admin-init.php:203
24
+ msgid "WP Security"
25
+ msgstr "WP 보안"
26
+
27
+ # @ all-in-one-wp-security-and-firewall
28
+ #: admin/wp-security-admin-init.php:204 admin/wp-security-dashboard-menu.php:25
29
+ #: admin/wp-security-dashboard-menu.php:61
30
+ msgid "Dashboard"
31
+ msgstr "상황판"
32
+
33
+ # @ all-in-one-wp-security-and-firewall
34
+ #: admin/wp-security-admin-init.php:205 admin/wp-security-settings-menu.php:63
35
+ msgid "Settings"
36
+ msgstr "설정"
37
+
38
+ # @ all-in-one-wp-security-and-firewall
39
+ #: admin/wp-security-admin-init.php:206
40
+ #: admin/wp-security-user-accounts-menu.php:64
41
+ msgid "User Accounts"
42
+ msgstr "사용자 계정"
43
+
44
+ # @ all-in-one-wp-security-and-firewall
45
+ #: admin/wp-security-admin-init.php:207
46
+ #: admin/wp-security-user-login-menu.php:62
47
+ msgid "User Login"
48
+ msgstr "사용자 로그인"
49
+
50
+ #: admin/wp-security-admin-init.php:208
51
+ #: admin/wp-security-user-registration-menu.php:57
52
+ msgid "User Registration"
53
+ msgstr "회원가입"
54
+
55
+ # @ all-in-one-wp-security-and-firewall
56
+ #: admin/wp-security-admin-init.php:209 admin/wp-security-database-menu.php:66
57
+ msgid "Database Security"
58
+ msgstr "데이터베이스 보안"
59
+
60
+ # @ all-in-one-wp-security-and-firewall
61
+ #: admin/wp-security-admin-init.php:213
62
+ #: admin/wp-security-filesystem-menu.php:62
63
+ msgid "Filesystem Security"
64
+ msgstr "파일 시스템 보안"
65
+
66
+ # @ all-in-one-wp-security-and-firewall
67
+ #: admin/wp-security-admin-init.php:215 admin/wp-security-whois-menu.php:55
68
+ msgid "WHOIS Lookup"
69
+ msgstr "후이스 조회"
70
+
71
+ # @ all-in-one-wp-security-and-firewall
72
+ #: admin/wp-security-admin-init.php:219 admin/wp-security-blacklist-menu.php:55
73
+ msgid "Blacklist Manager"
74
+ msgstr "블랙리스트 관리자"
75
+
76
+ # @ all-in-one-wp-security-and-firewall
77
+ #: admin/wp-security-admin-init.php:224 admin/wp-security-firewall-menu.php:67
78
+ msgid "Firewall"
79
+ msgstr "방화벽"
80
+
81
+ #: admin/wp-security-admin-init.php:226
82
+ #: admin/wp-security-brute-force-menu.php:69
83
+ msgid "Brute Force"
84
+ msgstr "무차별 대입 공격"
85
+
86
+ # @ all-in-one-wp-security-and-firewall
87
+ #: admin/wp-security-admin-init.php:227 admin/wp-security-spam-menu.php:59
88
+ msgid "SPAM Prevention"
89
+ msgstr "스팸 예방"
90
+
91
+ # @ all-in-one-wp-security-and-firewall
92
+ #: admin/wp-security-admin-init.php:231 admin/wp-security-filescan-menu.php:57
93
+ msgid "Scanner"
94
+ msgstr "스캐너"
95
+
96
+ # @ all-in-one-wp-security-and-firewall
97
+ #: admin/wp-security-admin-init.php:233
98
+ #: admin/wp-security-maintenance-menu.php:55
99
+ msgid "Maintenance"
100
+ msgstr "유지관리"
101
+
102
+ #: admin/wp-security-admin-init.php:234
103
+ #: admin/wp-security-misc-options-menu.php:59
104
+ msgid "Miscellaneous"
105
+ msgstr "기타설정"
106
+
107
+ # @ all-in-one-wp-security-and-firewall
108
+ #: admin/wp-security-admin-menu.php:43
109
+ msgid "Settings successfully updated."
110
+ msgstr "설정이 성공적으로 업데이트 되었습니다."
111
+
112
+ # @ all-in-one-wp-security-and-firewall
113
+ #: admin/wp-security-admin-menu.php:50
114
+ msgid "The selected record(s) deleted successfully!"
115
+ msgstr "선택한 레코드가 성공적으로 삭제되었습니다!"
116
+
117
+ #: admin/wp-security-blacklist-menu.php:22
118
+ msgid "Ban Users"
119
+ msgstr "사용자 차단"
120
+
121
+ # @ all-in-one-wp-security-and-firewall
122
+ #: admin/wp-security-blacklist-menu.php:81
123
+ msgid "Nonce check failed for save blacklist settings!"
124
+ msgstr "Nonce 확인 은 저장 블랙리스트 설정에 대한 실패!"
125
+
126
+ # @ all-in-one-wp-security-and-firewall
127
+ #: admin/wp-security-blacklist-menu.php:136
128
+ #: admin/wp-security-brute-force-menu.php:659
129
+ #: admin/wp-security-firewall-menu.php:1039 admin/wp-security-list-404.php:218
130
+ #: admin/wp-security-list-comment-spammer-ip.php:202
131
+ #: classes/wp-security-general-init-tasks.php:224
132
+ msgid ""
133
+ "The plugin was unable to write to the .htaccess file. Please edit file "
134
+ "manually."
135
+ msgstr ""
136
+ "플러그인은 .htaccess 파일에 쓸 수 없습니다. 수동으로 파일을 편집하십시오."
137
+
138
+ # @ all-in-one-wp-security-and-firewall
139
+ #: admin/wp-security-blacklist-menu.php:143
140
+ msgid "Ban IPs or User Agents"
141
+ msgstr "Ban IPs or User Agents"
142
+
143
+ # @ all-in-one-wp-security-and-firewall
144
+ #: admin/wp-security-blacklist-menu.php:146
145
+ msgid ""
146
+ "The All In One WP Security Blacklist feature gives you the option of banning "
147
+ "certain host IP addresses or ranges and also user agents."
148
+ msgstr ""
149
+ "All In One WP 보안 블랙리스트 기능은 특정 호스트 IP 주소 또는 범위 및 사용자 "
150
+ "에이전트를 금지하는 옵션을 제공합니다."
151
+
152
+ # @ all-in-one-wp-security-and-firewall
153
+ #: admin/wp-security-blacklist-menu.php:147
154
+ msgid ""
155
+ "This feature will deny total site access for users which have IP addresses "
156
+ "or user agents matching those which you have configured in the settings "
157
+ "below."
158
+ msgstr ""
159
+ "이 기능은 IP 주소 또는 사용자 에이전트가 아래 설정에서 구성한 것과 일치하는 "
160
+ "사용자의 총 사이트 액세스를 거부합니다."
161
+
162
+ # @ all-in-one-wp-security-and-firewall
163
+ #: admin/wp-security-blacklist-menu.php:148
164
+ msgid ""
165
+ "The plugin achieves this by making appropriate modifications to your ."
166
+ "htaccess file."
167
+ msgstr "플러그인은 .htaccess 파일을 적절하게 수정하여 이를 달성합니다."
168
+
169
+ # @ all-in-one-wp-security-and-firewall
170
+ #: admin/wp-security-blacklist-menu.php:149
171
+ msgid ""
172
+ "By blocking people via the .htaccess file your are using the most secure "
173
+ "first line of defence which denies all access to blacklisted visitors as "
174
+ "soon as they hit your hosting server."
175
+ msgstr ""
176
+ ".htaccess 파일을 통해 사람들을 차단함으로써 가장 안전한 첫 번째 방어 선을 사"
177
+ "용하여 호스팅 서버에 부딪히자마자 블랙리스트에 오른 방문자에 대한 모든 액세스"
178
+ "를 거부합니다."
179
+
180
+ #: admin/wp-security-blacklist-menu.php:156
181
+ #: admin/wp-security-firewall-menu.php:889
182
+ #, php-format
183
+ msgid "You may also be interested in our %s."
184
+ msgstr "당신은 또한 우리의 %s에 관심이있을 수 있습니다."
185
+
186
+ #: admin/wp-security-blacklist-menu.php:157
187
+ msgid ""
188
+ "This addon allows you to automatically block IP addresses based on their "
189
+ "country of origin."
190
+ msgstr ""
191
+ "이 애드온을 사용하면 원산지 국가에 따라 IP 주소를 자동으로 차단할 수 있습니"
192
+ "다."
193
+
194
+ # @ all-in-one-wp-security-and-firewall
195
+ #: admin/wp-security-blacklist-menu.php:165
196
+ msgid "IP Hosts and User Agent Blacklist Settings"
197
+ msgstr "IP 호스트 및 사용자 에이전트 블랙리스트 설정"
198
+
199
+ #: admin/wp-security-blacklist-menu.php:178
200
+ #: admin/wp-security-brute-force-menu.php:196
201
+ #, php-format
202
+ msgid ""
203
+ "This feature can lock you out of admin if it doesn't work correctly on your "
204
+ "site. You %s before activating this feature."
205
+ msgstr ""
206
+ "이 기능은 사이트에서 제대로 작동하지 않으면 관리자에서 잠글 수 있습니다. 이 "
207
+ "기능을 활성화하기 전에 %s를 사용할 수 있습니다."
208
+
209
+ # @ all-in-one-wp-security-and-firewall
210
+ #: admin/wp-security-blacklist-menu.php:184
211
+ msgid "Enable IP or User Agent Blacklisting"
212
+ msgstr "IP 또는 사용자 에이전트 블랙리스트 사용"
213
+
214
+ # @ all-in-one-wp-security-and-firewall
215
+ #: admin/wp-security-blacklist-menu.php:187
216
+ msgid ""
217
+ "Check this if you want to enable the banning (or blacklisting) of selected "
218
+ "IP addresses and/or user agents specified in the settings below"
219
+ msgstr ""
220
+ "아래 설정에 지정된 선택한 IP 주소 및/또는 사용자 에이전트의 금지(또는 블랙리"
221
+ "스트)를 사용하도록 설정하려는 경우 이 옵션을 확인합니다."
222
+
223
+ # @ all-in-one-wp-security-and-firewall
224
+ #: admin/wp-security-blacklist-menu.php:191
225
+ msgid "Enter IP Addresses:"
226
+ msgstr "IP 주소 입력:"
227
+
228
+ # @ all-in-one-wp-security-and-firewall
229
+ #: admin/wp-security-blacklist-menu.php:195
230
+ msgid "Enter one or more IP addresses or IP ranges."
231
+ msgstr "하나 이상의 IP 주소 또는 IP 범위를 입력합니다."
232
+
233
+ # @ all-in-one-wp-security-and-firewall
234
+ #: admin/wp-security-blacklist-menu.php:196
235
+ #: admin/wp-security-blacklist-menu.php:216
236
+ #: admin/wp-security-brute-force-menu.php:375
237
+ #: admin/wp-security-brute-force-menu.php:409
238
+ #: admin/wp-security-brute-force-menu.php:432
239
+ #: admin/wp-security-brute-force-menu.php:453
240
+ #: admin/wp-security-brute-force-menu.php:716
241
+ #: admin/wp-security-filescan-menu.php:297
242
+ #: admin/wp-security-filescan-menu.php:314
243
+ #: admin/wp-security-firewall-menu.php:173
244
+ #: admin/wp-security-firewall-menu.php:203
245
+ #: admin/wp-security-firewall-menu.php:223
246
+ #: admin/wp-security-firewall-menu.php:249
247
+ #: admin/wp-security-firewall-menu.php:376
248
+ #: admin/wp-security-firewall-menu.php:406
249
+ #: admin/wp-security-firewall-menu.php:437
250
+ #: admin/wp-security-firewall-menu.php:465
251
+ #: admin/wp-security-firewall-menu.php:494
252
+ #: admin/wp-security-firewall-menu.php:593
253
+ #: admin/wp-security-firewall-menu.php:611
254
+ #: admin/wp-security-firewall-menu.php:701
255
+ #: admin/wp-security-firewall-menu.php:914
256
+ #: admin/wp-security-firewall-menu.php:937 admin/wp-security-spam-menu.php:169
257
+ #: admin/wp-security-spam-menu.php:342 admin/wp-security-spam-menu.php:384
258
+ msgid "More Info"
259
+ msgstr "더보기"
260
+
261
+ # @ all-in-one-wp-security-and-firewall
262
+ #: admin/wp-security-blacklist-menu.php:199
263
+ #: admin/wp-security-brute-force-menu.php:719
264
+ msgid "Each IP address must be on a new line."
265
+ msgstr "각 IP 주소는 새 줄에 있어야 합니다."
266
+
267
+ # @ all-in-one-wp-security-and-firewall
268
+ #: admin/wp-security-blacklist-menu.php:200
269
+ msgid ""
270
+ "To specify an IP range use a wildcard \"*\" character. Acceptable ways to "
271
+ "use wildcards is shown in the examples below:"
272
+ msgstr ""
273
+ "IP 범위를 지정하려면 와일드카드 \"*\" 문자를 사용합니다. 와일드카드를 사용하"
274
+ "는 허용 가능한 방법은 아래 예제에 나와 있습니다."
275
+
276
+ # @ all-in-one-wp-security-and-firewall
277
+ #: admin/wp-security-blacklist-menu.php:201
278
+ #: admin/wp-security-brute-force-menu.php:721
279
+ msgid "Example 1: 195.47.89.*"
280
+ msgstr "예 1: 195.47.89.*"
281
+
282
+ # @ all-in-one-wp-security-and-firewall
283
+ #: admin/wp-security-blacklist-menu.php:202
284
+ #: admin/wp-security-brute-force-menu.php:722
285
+ msgid "Example 2: 195.47.*.*"
286
+ msgstr "示例 2:195.47.*.*"
287
+
288
+ # @ all-in-one-wp-security-and-firewall
289
+ #: admin/wp-security-blacklist-menu.php:203
290
+ #: admin/wp-security-brute-force-menu.php:723
291
+ msgid "Example 3: 195.*.*.*"
292
+ msgstr "示例 3:195.*.*.*"
293
+
294
+ # @ all-in-one-wp-security-and-firewall
295
+ #: admin/wp-security-blacklist-menu.php:210
296
+ msgid "Enter User Agents:"
297
+ msgstr "사용자 에이전트 입력:"
298
+
299
+ # @ all-in-one-wp-security-and-firewall
300
+ #: admin/wp-security-blacklist-menu.php:215
301
+ msgid "Enter one or more user agent strings."
302
+ msgstr "하나 이상의 사용자 에이전트 문자열을 입력합니다."
303
+
304
+ # @ all-in-one-wp-security-and-firewall
305
+ #: admin/wp-security-blacklist-menu.php:219
306
+ msgid "Each user agent string must be on a new line."
307
+ msgstr "각 사용자 에이전트 문자열은 새 줄에 있어야 합니다."
308
+
309
+ # @ all-in-one-wp-security-and-firewall
310
+ #: admin/wp-security-blacklist-menu.php:220
311
+ msgid "Example 1 - A single user agent string to block:"
312
+ msgstr "예 1 - 차단하는 단일 사용자 에이전트 문자열:"
313
+
314
+ # @ all-in-one-wp-security-and-firewall
315
+ #: admin/wp-security-blacklist-menu.php:222
316
+ msgid "Example 2 - A list of more than 1 user agent strings to block"
317
+ msgstr "예 2 - 차단할 사용자 에이전트 문자열이 1개 이상 나열됩니다."
318
+
319
+ # @ all-in-one-wp-security-and-firewall
320
+ #: admin/wp-security-blacklist-menu.php:230
321
+ #: admin/wp-security-brute-force-menu.php:215
322
+ #: admin/wp-security-brute-force-menu.php:595
323
+ #: admin/wp-security-brute-force-menu.php:733
324
+ #: admin/wp-security-brute-force-menu.php:795
325
+ #: admin/wp-security-database-menu.php:355
326
+ #: admin/wp-security-filescan-menu.php:337
327
+ #: admin/wp-security-filesystem-menu.php:239
328
+ #: admin/wp-security-firewall-menu.php:779
329
+ #: admin/wp-security-firewall-menu.php:956
330
+ #: admin/wp-security-misc-options-menu.php:169
331
+ #: admin/wp-security-misc-options-menu.php:220
332
+ #: admin/wp-security-settings-menu.php:542 admin/wp-security-spam-menu.php:184
333
+ #: admin/wp-security-spam-menu.php:359 admin/wp-security-spam-menu.php:480
334
+ #: admin/wp-security-user-login-menu.php:266
335
+ #: admin/wp-security-user-login-menu.php:434
336
+ #: admin/wp-security-user-registration-menu.php:151
337
+ #: admin/wp-security-user-registration-menu.php:237
338
+ msgid "Save Settings"
339
+ msgstr "설정 저장"
340
+
341
+ #: admin/wp-security-brute-force-menu.php:26
342
+ #: admin/wp-security-dashboard-menu.php:430
343
+ #: admin/wp-security-dashboard-menu.php:441
344
+ msgid "Rename Login Page"
345
+ msgstr "로그인 페이지 주소 변경"
346
+
347
+ #: admin/wp-security-brute-force-menu.php:27
348
+ msgid "Cookie Based Brute Force Prevention"
349
+ msgstr "쿠키 기반 무차별 무력 예방"
350
+
351
+ #: admin/wp-security-brute-force-menu.php:28
352
+ #: classes/grade-system/wp-security-feature-item-manager.php:44
353
+ msgid "Login Captcha"
354
+ msgstr "로그인 캡챠"
355
+
356
+ #: admin/wp-security-brute-force-menu.php:29
357
+ #: admin/wp-security-brute-force-menu.php:666
358
+ msgid "Login Whitelist"
359
+ msgstr "로그인 허용 목록"
360
+
361
+ #: admin/wp-security-brute-force-menu.php:30
362
+ msgid "Honeypot"
363
+ msgstr "허니팟(Honeypot)"
364
+
365
+ #: admin/wp-security-brute-force-menu.php:107
366
+ msgid "Please enter a value for your login page slug."
367
+ msgstr "로그인 페이지 슬러그에 대한 값을 입력하십시오."
368
+
369
+ #: admin/wp-security-brute-force-menu.php:111
370
+ msgid "You cannot use the value \"wp-admin\" for your login page slug."
371
+ msgstr "로그인 페이지 슬러그에 대해 \"wp-admin\" 값을 사용할 수 없습니다."
372
+
373
+ #: admin/wp-security-brute-force-menu.php:113
374
+ msgid "You must use alpha numeric characters for your login page slug."
375
+ msgstr "로그인 페이지 슬러그에 알파 숫자 문자를 사용해야 합니다."
376
+
377
+ # @ all-in-one-wp-security-and-firewall
378
+ #: admin/wp-security-brute-force-menu.php:118
379
+ #: admin/wp-security-database-menu.php:272
380
+ #: admin/wp-security-filescan-menu.php:175
381
+ #: admin/wp-security-firewall-menu.php:846 admin/wp-security-spam-menu.php:220
382
+ #: admin/wp-security-spam-menu.php:254
383
+ #: admin/wp-security-user-login-menu.php:139
384
+ #: admin/wp-security-user-login-menu.php:387
385
+ msgid "Attention!"
386
+ msgstr "주의!"
387
+
388
+ #: admin/wp-security-brute-force-menu.php:137
389
+ msgid ""
390
+ "Could not delete the Cookie-based directives from the .htaccess file. Please "
391
+ "check the file permissions."
392
+ msgstr ""
393
+ ".htaccess 파일에서 쿠키 기반 지침을 삭제할 수 없습니다. 파일 권한을 확인하십"
394
+ "시오."
395
+
396
+ #: admin/wp-security-brute-force-menu.php:157
397
+ msgid ""
398
+ "An effective Brute Force prevention technique is to change the default "
399
+ "WordPress login page URL."
400
+ msgstr ""
401
+ "효과적인 무차별 포스 방지 기술은 기본 워드 프레스 로그인 페이지 URL을 변경하"
402
+ "는 것입니다."
403
+
404
+ #: admin/wp-security-brute-force-menu.php:158
405
+ msgid ""
406
+ "Normally if you wanted to login to WordPress you would type your site's home "
407
+ "URL followed by wp-login.php."
408
+ msgstr ""
409
+ "일반적으로 WordPress에 로그인하려는 경우 사이트의 홈 URL을 입력한 다음 wp-"
410
+ "login.php를 입력합니다."
411
+
412
+ #: admin/wp-security-brute-force-menu.php:159
413
+ msgid ""
414
+ "This feature allows you to change the login URL by setting your own slug and "
415
+ "renaming the last portion of the login URL which contains the <strong>wp-"
416
+ "login.php</strong> to any string that you like."
417
+ msgstr ""
418
+ "이 기능을 사용하면 자신의 슬러그를 설정하고 <strong>wp-login.php를</strong> "
419
+ "포함하는 로그인 URL의 마지막 부분의 이름을 원하는 문자열로 변경하여 로그인 "
420
+ "URL을 변경할 수 있습니다."
421
+
422
+ #: admin/wp-security-brute-force-menu.php:160
423
+ msgid ""
424
+ "By doing this, malicious bots and hackers will not be able to access your "
425
+ "login page because they will not know the correct login page URL."
426
+ msgstr "이렇게 하면 악의적인 봇과 해커가 로그인 페이지에 액세스할 수 없습니다."
427
+
428
+ #: admin/wp-security-brute-force-menu.php:162
429
+ msgid ""
430
+ "You may also be interested in the following alternative brute force "
431
+ "prevention features:"
432
+ msgstr "또한 다음과 같은 대체 무차별 무력 방지 기능에 관심이 있을 수 있습니다."
433
+
434
+ #: admin/wp-security-brute-force-menu.php:173
435
+ msgid "Your WordPress login page URL has been renamed."
436
+ msgstr "워드 프레스 로그인 페이지 URL의 이름이 변경되었습니다."
437
+
438
+ #: admin/wp-security-brute-force-menu.php:174
439
+ msgid "Your current login URL is:"
440
+ msgstr "현재 로그인 URL은 다음과 같은 것입니다."
441
+
442
+ #: admin/wp-security-brute-force-menu.php:176
443
+ msgid ""
444
+ "NOTE: If you already had the Cookie-Based Brute Force Prevention feature "
445
+ "active, the plugin has automatically deactivated it because only one of "
446
+ "these features can be active at any one time."
447
+ msgstr ""
448
+ "참고: 이미 쿠키 기반 무차별 무력 방지 기능이 활성화된 경우 이러한 기능 중 하"
449
+ "나만 한 번에 활성화할 수 있으므로 플러그인이 자동으로 비활성화됩니다."
450
+
451
+ #: admin/wp-security-brute-force-menu.php:183
452
+ msgid "Rename Login Page Settings"
453
+ msgstr "로그인 페이지 주소 변경 설정"
454
+
455
+ #: admin/wp-security-brute-force-menu.php:197
456
+ msgid ""
457
+ "NOTE: If you are hosting your site on WPEngine or a provider which performs "
458
+ "server caching, you will need to ask the host support people to NOT cache "
459
+ "your renamed login page."
460
+ msgstr ""
461
+ "참고: WPEngine 또는 서버 캐싱을 수행하는 공급자에서 사이트를 호스팅하는 경우 "
462
+ "호스트 지원 사람들에게 이름이 변경된 로그인 페이지를 캐시하지 않도록 요청해"
463
+ "야 합니다."
464
+
465
+ #: admin/wp-security-brute-force-menu.php:202
466
+ msgid "Enable Rename Login Page Feature"
467
+ msgstr "이름 바꾸기 페이지 기능 사용"
468
+
469
+ #: admin/wp-security-brute-force-menu.php:205
470
+ msgid "Check this if you want to enable the rename login page feature"
471
+ msgstr ""
472
+ "이름 바꾸기 페이지 기능을 사용하도록 설정하려면 이 방법을 확인하십시오."
473
+
474
+ #: admin/wp-security-brute-force-menu.php:209
475
+ msgid "Login Page URL"
476
+ msgstr "로그인 페이지 URL"
477
+
478
+ #: admin/wp-security-brute-force-menu.php:211
479
+ msgid ""
480
+ "Enter a string which will represent your secure login page slug. You are "
481
+ "enouraged to choose something which is hard to guess and only you will "
482
+ "remember."
483
+ msgstr ""
484
+ "보안 로그인 페이지 슬러그를 나타내는 문자열을 입력합니다. 당신은 추측하기 어"
485
+ "려운 무언가를 선택하고 오직 당신만이 기억할 것입니다."
486
+
487
+ # @ all-in-one-wp-security-and-firewall
488
+ #: admin/wp-security-brute-force-menu.php:244
489
+ msgid ""
490
+ "Settings have not been saved - your secret word must consist only of "
491
+ "alphanumeric characters, ie, letters and/or numbers only!"
492
+ msgstr ""
493
+ "설정은 저장되지 않았습니다 - 당신의 비밀 단어는 영숫자 문자, 즉, 문자 및 / 또"
494
+ "는 숫자로만 구성해야합니다!"
495
+
496
+ # @ all-in-one-wp-security-and-firewall
497
+ #: admin/wp-security-brute-force-menu.php:263
498
+ msgid ""
499
+ "You have successfully enabled the cookie based brute force prevention feature"
500
+ msgstr "쿠키 기반 무차별 무력 방지 기능을 성공적으로 활성화했습니다."
501
+
502
+ # @ all-in-one-wp-security-and-firewall
503
+ #: admin/wp-security-brute-force-menu.php:264
504
+ msgid ""
505
+ "From now on you will need to log into your WP Admin using the following URL:"
506
+ msgstr "지금부터 다음 URL을 사용하여 WP 관리자에 로그인해야 합니다."
507
+
508
+ # @ all-in-one-wp-security-and-firewall
509
+ #: admin/wp-security-brute-force-menu.php:266
510
+ msgid ""
511
+ "It is important that you save this URL value somewhere in case you forget "
512
+ "it, OR,"
513
+ msgstr "이 URL 값을 잊어버린 경우 어딘가에 저장하는 것이 중요합니다."
514
+
515
+ # @ all-in-one-wp-security-and-firewall
516
+ #: admin/wp-security-brute-force-menu.php:267
517
+ #, php-format
518
+ msgid "simply remember to add a \"?%s=1\" to your current site URL address."
519
+ msgstr "단순히 현재 사이트 URL 주소에 \"?%s=1\"을 추가해야 합니다."
520
+
521
+ # @ all-in-one-wp-security-and-firewall
522
+ #: admin/wp-security-brute-force-menu.php:273
523
+ msgid ""
524
+ "You have successfully saved cookie based brute force prevention feature "
525
+ "settings."
526
+ msgstr "쿠키 기반 무차별 무력 방지 기능 설정을 성공적으로 저장했습니다."
527
+
528
+ # @ all-in-one-wp-security-and-firewall
529
+ #: admin/wp-security-brute-force-menu.php:308
530
+ #: admin/wp-security-filesystem-menu.php:283
531
+ #: admin/wp-security-firewall-menu.php:124
532
+ #: admin/wp-security-firewall-menu.php:337
533
+ #: admin/wp-security-firewall-menu.php:558
534
+ #: admin/wp-security-firewall-menu.php:746
535
+ #: admin/wp-security-settings-menu.php:636 admin/wp-security-spam-menu.php:109
536
+ msgid ""
537
+ "Could not write to the .htaccess file. Please check the file permissions."
538
+ msgstr ".htaccess 파일에 쓸 수 없습니다. 파일 권한을 확인하십시오."
539
+
540
+ # @ all-in-one-wp-security-and-firewall
541
+ #: admin/wp-security-brute-force-menu.php:318
542
+ msgid "Brute Force Prevention Firewall Settings"
543
+ msgstr "무차별 강제 방지 방화벽 설정"
544
+
545
+ # @ all-in-one-wp-security-and-firewall
546
+ #: admin/wp-security-brute-force-menu.php:323
547
+ msgid ""
548
+ "A Brute Force Attack is when a hacker tries many combinations of usernames "
549
+ "and passwords until they succeed in guessing the right combination."
550
+ msgstr ""
551
+ "무차별 포스 공격은 해커가 올바른 조합을 추측하는 데 성공할 때까지 사용자 이름"
552
+ "과 암호의 많은 조합을 시도할 때입니다."
553
+
554
+ # @ all-in-one-wp-security-and-firewall
555
+ #: admin/wp-security-brute-force-menu.php:324
556
+ msgid ""
557
+ "Due to the fact that at any one time there may be many concurrent login "
558
+ "attempts occurring on your site via malicious automated robots, this also "
559
+ "has a negative impact on your server's memory and performance."
560
+ msgstr ""
561
+ "악의적인 자동화 된 로봇을 통해 사이트에서 발생하는 동시 로그인 시도가 있을 "
562
+ "수 있으므로 서버의 메모리와 성능에도 부정적인 영향을 미칩니다."
563
+
564
+ # @ all-in-one-wp-security-and-firewall
565
+ #: admin/wp-security-brute-force-menu.php:325
566
+ msgid ""
567
+ "The features in this tab will stop the majority of Brute Force Login Attacks "
568
+ "at the .htaccess level thus providing even better protection for your WP "
569
+ "login page and also reducing the load on your server because the system does "
570
+ "not have to run PHP code to process the login attempts."
571
+ msgstr ""
572
+ "이 탭의 기능은 .htaccess 수준에서 대부분의 무차별 포스 로그인 공격을 중지하므"
573
+ "로 WP 로그인 페이지에 대한 더 나은 보호를 제공하고 시스템이 로그인 시도를 처"
574
+ "리하기 위해 PHP 코드를 실행할 필요가 없기 때문에 서버의 부하를 줄입니다."
575
+
576
+ #: admin/wp-security-brute-force-menu.php:332
577
+ #, php-format
578
+ msgid ""
579
+ "Even though this feature should not have any impact on your site's general "
580
+ "functionality <strong>you are strongly encouraged to take a %s of your ."
581
+ "htaccess file before proceeding</strong>."
582
+ msgstr ""
583
+ "이 기능은 사이트의 일반적인 기능에 영향을 미치지 않아야하지만 <strong>진행하"
584
+ "기 전에 .htaccess 파일의 %s를 가져 가는 것이 좋습니다.</strong>"
585
+
586
+ #: admin/wp-security-brute-force-menu.php:333
587
+ msgid ""
588
+ "If this feature is not used correctly, you can get locked out of your site. "
589
+ "A backed up .htaccess file will come in handy if that happens."
590
+ msgstr ""
591
+ "이 기능을 올바르게 사용하지 않으면 사이트에서 잠길 수 있습니다. 백업 ."
592
+ "htaccess 파일이 발생하면 유용합니다."
593
+
594
+ #: admin/wp-security-brute-force-menu.php:334
595
+ #, php-format
596
+ msgid ""
597
+ "To learn more about how to use this feature please watch the following %s."
598
+ msgstr ""
599
+ "이 기능을 사용하는 방법에 대해 자세히 알아보려면 다음 %s를 확인하십시오."
600
+
601
+ #: admin/wp-security-brute-force-menu.php:347
602
+ msgid ""
603
+ "NOTE: If you already had the Rename Login Page feature active, the plugin "
604
+ "has automatically deactivated it because only one of these features can be "
605
+ "active at any one time."
606
+ msgstr ""
607
+ "참고: 이미 이름 바꾸기 페이지 기능이 활성 상태인 경우 이러한 기능 중 하나만 "
608
+ "한 번에 활성화할 수 있으므로 플러그인이 자동으로 비활성화됩니다."
609
+
610
+ # @ all-in-one-wp-security-and-firewall
611
+ #: admin/wp-security-brute-force-menu.php:355
612
+ msgid "Cookie Based Brute Force Login Prevention"
613
+ msgstr "쿠키 기반 무차별 포스 로그인 방지"
614
+
615
+ #: admin/wp-security-brute-force-menu.php:366
616
+ msgid ""
617
+ "This feature can lock you out of admin if it doesn't work correctly on your "
618
+ "site. You <a href=\"https://www.tipsandtricks-hq.com/wordpress-security-and-"
619
+ "firewall-plugin#advanced_features_note\" target=\"_blank\">must read this "
620
+ "message</a> before activating this feature."
621
+ msgstr ""
622
+ "이 기능은 사이트에서 제대로 작동하지 않으면 관리자에서 잠글 수 있습니다. 이 "
623
+ "기능을 활성화하기 전에 <a href=\"https://www.tipsandtricks-hq.com/wordpress-"
624
+ "security-and-firewall-plugin#advanced_features_note\" target=\"_blank\">이 메"
625
+ "시지를 읽어야 합니다.</a>"
626
+
627
+ # @ all-in-one-wp-security-and-firewall
628
+ #: admin/wp-security-brute-force-menu.php:371
629
+ #: classes/grade-system/wp-security-feature-item-manager.php:91
630
+ msgid "Enable Brute Force Attack Prevention"
631
+ msgstr "무차별 무력 공격 방지 활성화"
632
+
633
+ # @ all-in-one-wp-security-and-firewall
634
+ #: admin/wp-security-brute-force-menu.php:374
635
+ msgid ""
636
+ "Check this if you want to protect your login page from Brute Force Attack."
637
+ msgstr ""
638
+ "브루트 포스 공격으로부터 로그인 페이지를 보호하려면 이 방법을 확인하십시오."
639
+
640
+ # @ all-in-one-wp-security-and-firewall
641
+ #: admin/wp-security-brute-force-menu.php:379
642
+ msgid ""
643
+ "This feature will deny access to your WordPress login page for all people "
644
+ "except those who have a special cookie in their browser."
645
+ msgstr ""
646
+ "이 기능은 브라우저에 특별한 쿠키가있는 사람들을 제외한 모든 사용자의 워드 프"
647
+ "레스 로그인 페이지에 대한 액세스를 거부합니다."
648
+
649
+ # @ all-in-one-wp-security-and-firewall
650
+ #: admin/wp-security-brute-force-menu.php:381
651
+ msgid "To use this feature do the following:"
652
+ msgstr "이 기능을 사용하려면 다음을 수행합니다."
653
+
654
+ # @ all-in-one-wp-security-and-firewall
655
+ #: admin/wp-security-brute-force-menu.php:383
656
+ msgid "1) Enable the checkbox."
657
+ msgstr "1) 확인란을 활성화합니다."
658
+
659
+ # @ all-in-one-wp-security-and-firewall
660
+ #: admin/wp-security-brute-force-menu.php:385
661
+ msgid ""
662
+ "2) Enter a secret word consisting of alphanumeric characters which will be "
663
+ "difficult to guess. This secret word will be useful whenever you need to "
664
+ "know the special URL which you will use to access the login page (see point "
665
+ "below)."
666
+ msgstr ""
667
+ "2) 추측하기 어려운 거넘 문자로 구성된 비밀 단어를 입력합니다. 이 비밀 단어는 "
668
+ "로그인 페이지에 액세스하는 데 사용할 특수 URL을 알아야 할 때마다 유용합니다"
669
+ "(아래 점 참조)."
670
+
671
+ # @ all-in-one-wp-security-and-firewall
672
+ #: admin/wp-security-brute-force-menu.php:387
673
+ msgid ""
674
+ "3) You will then be provided with a special login URL. You will need to use "
675
+ "this URL to login to your WordPress site instead of the usual login URL. "
676
+ "NOTE: The system will deposit a special cookie in your browser which will "
677
+ "allow you access to the WordPress administration login page."
678
+ msgstr ""
679
+ "3) 당신은 다음 특별한 로그인 URL이 제공됩니다. 이 URL을 사용하여 일반적인 로"
680
+ "그인 URL 대신 WordPress 사이트에 로그인해야 합니다. 참고 : 시스템은 당신이 워"
681
+ "드 프레스 관리 로그인 페이지에 액세스 할 수 있도록 브라우저에 특별한 쿠키를 "
682
+ "입금합니다."
683
+
684
+ # @ all-in-one-wp-security-and-firewall
685
+ #: admin/wp-security-brute-force-menu.php:389
686
+ msgid ""
687
+ "Any person trying to access your login page who does not have the special "
688
+ "cookie in their browser will be automatically blocked."
689
+ msgstr ""
690
+ "브라우저에 특별한 쿠키가 없는 로그인 페이지에 액세스하려는 모든 사람이 자동으"
691
+ "로 차단됩니다."
692
+
693
+ # @ all-in-one-wp-security-and-firewall
694
+ #: admin/wp-security-brute-force-menu.php:396
695
+ msgid "Secret Word"
696
+ msgstr "암호 문자"
697
+
698
+ # @ all-in-one-wp-security-and-firewall
699
+ #: admin/wp-security-brute-force-menu.php:398
700
+ msgid ""
701
+ "Choose a secret word consisting of alphanumeric characters which you can use "
702
+ "to access your special URL. Your are highly encouraged to choose a word "
703
+ "which will be difficult to guess."
704
+ msgstr ""
705
+ "특수 URL에 액세스하는 데 사용할 수 있는 유수 문자로 구성된 비밀 단어를 선택합"
706
+ "니다. 추측하기 어려운 단어를 선택하는 것이 좋습니다."
707
+
708
+ # @ all-in-one-wp-security-and-firewall
709
+ #: admin/wp-security-brute-force-menu.php:402
710
+ msgid "Re-direct URL"
711
+ msgstr "Re-direct URL"
712
+
713
+ # @ all-in-one-wp-security-and-firewall
714
+ #: admin/wp-security-brute-force-menu.php:406
715
+ msgid ""
716
+ "Specify a URL to redirect a hacker to when they try to access your WordPress "
717
+ "login page."
718
+ msgstr ""
719
+ "해커가 WordPress 로그인 페이지에 액세스하려고 할 때로 리디렉션할 URL을 지정합"
720
+ "니다."
721
+
722
+ # @ all-in-one-wp-security-and-firewall
723
+ #: admin/wp-security-brute-force-menu.php:413
724
+ msgid ""
725
+ "The URL specified here can be any site's URL and does not have to be your "
726
+ "own. For example you can be as creative as you like and send hackers to the "
727
+ "CIA or NSA home page."
728
+ msgstr ""
729
+ "여기에 지정된 URL은 사이트의 URL일 수 있으며 사용자 고유의 URL일 필요는 없습"
730
+ "니다. 예를 들어 원하는 만큼 창의적이며 해커를 CIA 또는 NSA 홈 페이지로 보낼 "
731
+ "수 있습니다."
732
+
733
+ # @ all-in-one-wp-security-and-firewall
734
+ #: admin/wp-security-brute-force-menu.php:415
735
+ msgid ""
736
+ "This field will default to: http://127.0.0.1 if you do not enter a value."
737
+ msgstr "값을 입력하지 않으면 이 필드는 기본값으로 http://127.0.0.1."
738
+
739
+ # @ all-in-one-wp-security-and-firewall
740
+ #: admin/wp-security-brute-force-menu.php:417
741
+ msgid "Useful Tip:"
742
+ msgstr "유용한 팁:"
743
+
744
+ # @ all-in-one-wp-security-and-firewall
745
+ #: admin/wp-security-brute-force-menu.php:419
746
+ msgid ""
747
+ "It's a good idea to not redirect attempted brute force login attempts to "
748
+ "your site because it increases the load on your server."
749
+ msgstr ""
750
+
751
+ # @ all-in-one-wp-security-and-firewall
752
+ #: admin/wp-security-brute-force-menu.php:421
753
+ msgid ""
754
+ "Redirecting a hacker or malicious bot back to \"http://127.0.0.1\" is ideal "
755
+ "because it deflects them back to their own local host and puts the load on "
756
+ "their server instead of yours."
757
+ msgstr ""
758
+ "해커 나 악성 봇을 다시 \"http://127.0.0.1\"로 리디렉션하는 것은 자신의 로컬 "
759
+ "호스트로 다시 편향하고 대신 서버의 부하를 넣기 때문에 이상적입니다."
760
+
761
+ # @ all-in-one-wp-security-and-firewall
762
+ #: admin/wp-security-brute-force-menu.php:428
763
+ msgid "My Site Has Posts Or Pages Which Are Password Protected"
764
+ msgstr "내 사이트에는 암호로 보호된 게시물 또는 페이지가 있습니다."
765
+
766
+ # @ all-in-one-wp-security-and-firewall
767
+ #: admin/wp-security-brute-force-menu.php:431
768
+ msgid ""
769
+ "Check this if you are using the native WordPress password protection feature "
770
+ "for some or all of your blog posts or pages."
771
+ msgstr ""
772
+ "블로그 게시물 또는 페이지의 일부 또는 전부에 대해 기본 WordPress 암호 보호 기"
773
+ "능을 사용하는 경우 이 기능을 확인하십시오."
774
+
775
+ # @ all-in-one-wp-security-and-firewall
776
+ #: admin/wp-security-brute-force-menu.php:436
777
+ msgid ""
778
+ "In the cases where you are protecting some of your posts or pages using the "
779
+ "in-built WordPress password protection feature, a few extra lines of "
780
+ "directives and exceptions need to be added to your .htacces file so that "
781
+ "people trying to access pages are not automatically blocked."
782
+ msgstr ""
783
+ "내장된 WordPress 암호 보호 기능을 사용하여 일부 게시물 이나 페이지를 보호하"
784
+ "는 경우 페이지에 액세스하려는 사람들이 자동으로 차단되지 않도록 .htacces 파일"
785
+ "에 몇 가지 추가 지침 및 예외줄을 추가해야 합니다."
786
+
787
+ # @ all-in-one-wp-security-and-firewall
788
+ #: admin/wp-security-brute-force-menu.php:438
789
+ msgid ""
790
+ "By enabling this checkbox the plugin will add the necessary rules and "
791
+ "exceptions to your .htacces file so that people trying to access these pages "
792
+ "are not automatically blocked."
793
+ msgstr ""
794
+ "이 확인란을 활성화하면 플러그인은 .htacces 파일에 필요한 규칙과 예외를 추가하"
795
+ "여 이러한 페이지에 액세스하려는 사람들이 자동으로 차단되지 않도록 합니다."
796
+
797
+ # @ all-in-one-wp-security-and-firewall
798
+ #: admin/wp-security-brute-force-menu.php:440
799
+ msgid "Helpful Tip:"
800
+ msgstr "유용한 팁:"
801
+
802
+ # @ all-in-one-wp-security-and-firewall
803
+ #: admin/wp-security-brute-force-menu.php:442
804
+ msgid ""
805
+ "If you do not use the WordPress password protection feature for your posts "
806
+ "or pages then it is highly recommended that you leave this checkbox disabled."
807
+ msgstr ""
808
+ "게시물이나 페이지에 대해 WordPress 암호 보호 기능을 사용하지 않는 경우 이 확"
809
+ "인란을 사용하지 않도록 두는 것이 좋습니다."
810
+
811
+ # @ all-in-one-wp-security-and-firewall
812
+ #: admin/wp-security-brute-force-menu.php:449
813
+ msgid "My Site Has a Theme or Plugins Which Use AJAX"
814
+ msgstr "내 사이트는 AJAX를 사용하는 테마 또는 플러그인이 있습니다."
815
+
816
+ # @ all-in-one-wp-security-and-firewall
817
+ #: admin/wp-security-brute-force-menu.php:452
818
+ msgid "Check this if your site uses AJAX functionality."
819
+ msgstr "사이트에서 AJAX 기능을 사용하는지 확인합니다."
820
+
821
+ # @ all-in-one-wp-security-and-firewall
822
+ #: admin/wp-security-brute-force-menu.php:457
823
+ msgid ""
824
+ "In the cases where your WordPress installation has a theme or plugins which "
825
+ "use AJAX, a few extra lines of directives and exceptions need to be added to "
826
+ "your .htacces file to prevent AJAX requests from being automatically blocked "
827
+ "by the brute force prevention feature."
828
+ msgstr ""
829
+ "워드 프레스 설치에 AJAX를 사용하는 테마 또는 플러그인이있는 경우 AJAX 요청이 "
830
+ "무차별 암호 힘 방지 기능에 의해 자동으로 차단되지 않도록 .htacces 파일에 몇 "
831
+ "가지 추가 지침 및 예외를 추가해야합니다."
832
+
833
+ # @ all-in-one-wp-security-and-firewall
834
+ #: admin/wp-security-brute-force-menu.php:459
835
+ msgid ""
836
+ "By enabling this checkbox the plugin will add the necessary rules and "
837
+ "exceptions to your .htacces file so that AJAX operations will work as "
838
+ "expected."
839
+ msgstr ""
840
+ "이 확인란을 활성화하면 플러그인은 AJAX 작업이 예상대로 작동하도록 .htacces 파"
841
+ "일에 필요한 규칙과 예외를 추가합니다."
842
+
843
+ # @ all-in-one-wp-security-and-firewall
844
+ #: admin/wp-security-brute-force-menu.php:474
845
+ msgid "The cookie test was successful. You can now enable this feature."
846
+ msgstr "쿠키 테스트는 성공적이었습니다. 이제 이 기능을 활성화할 수 있습니다."
847
+
848
+ # @ all-in-one-wp-security-and-firewall
849
+ #: admin/wp-security-brute-force-menu.php:477
850
+ msgid "Save Feature Settings"
851
+ msgstr "기능 설정 저장"
852
+
853
+ # @ all-in-one-wp-security-and-firewall
854
+ #: admin/wp-security-brute-force-menu.php:484
855
+ msgid ""
856
+ "The cookie test failed on this server. So this feature cannot be used on "
857
+ "this site."
858
+ msgstr ""
859
+ "이 서버에서 쿠키 테스트에 실패했습니다. 따라서 이 기능은 이 사이트에서 사용"
860
+ "할 수 없습니다."
861
+
862
+ # @ all-in-one-wp-security-and-firewall
863
+ #: admin/wp-security-brute-force-menu.php:489
864
+ msgid ""
865
+ "Before using this feature you are required to perform a cookie test first. "
866
+ "This is to make sure that your browser cookie is working correctly and that "
867
+ "you won't lock yourself out."
868
+ msgstr ""
869
+ "이 기능을 사용하기 전에 먼저 쿠키 테스트를 수행해야 합니다. 이는 브라우저 쿠"
870
+ "키가 올바르게 작동하고 자신을 잠그지 않도록 하기 위한 것입니다."
871
+
872
+ # @ all-in-one-wp-security-and-firewall
873
+ #: admin/wp-security-brute-force-menu.php:491
874
+ msgid "Perform Cookie Test"
875
+ msgstr "쿠키 테스트 수행"
876
+
877
+ #: admin/wp-security-brute-force-menu.php:531
878
+ msgid ""
879
+ "This feature allows you to add a captcha form on the WordPress login page."
880
+ msgstr ""
881
+ "이 기능을 사용하면 워드 프레스 로그인 페이지에 캡차 양식을 추가할 수 있습니"
882
+ "다."
883
+
884
+ #: admin/wp-security-brute-force-menu.php:532
885
+ msgid ""
886
+ "Users who attempt to login will also need to enter the answer to a simple "
887
+ "mathematical question - if they enter the wrong answer, the plugin will not "
888
+ "allow them login even if they entered the correct username and password."
889
+ msgstr ""
890
+ "로그인을 시도하는 사용자는 간단한 수학적 질문에 대한 답변을 입력해야합니다 - "
891
+ "잘못된 대답을 입력하면 플러그인은 올바른 사용자 이름과 암호를 입력하더라도 로"
892
+ "그인을 허용하지 않습니다."
893
+
894
+ #: admin/wp-security-brute-force-menu.php:533
895
+ msgid ""
896
+ "Therefore, adding a captcha form on the login page is another effective yet "
897
+ "simple \"Brute Force\" prevention technique."
898
+ msgstr ""
899
+ "따라서 로그인 페이지에 캡차 양식을 추가하는 것은 또 다른 효과적이면서도 간단"
900
+ "한 \"무차별 포스\" 예방 기술입니다."
901
+
902
+ #: admin/wp-security-brute-force-menu.php:539
903
+ msgid "Login Form Captcha Settings"
904
+ msgstr "로그인 양식 캡차 설정"
905
+
906
+ #: admin/wp-security-brute-force-menu.php:550
907
+ msgid "Enable Captcha On Login Page"
908
+ msgstr "로그인 페이지에서 Captcha 사용"
909
+
910
+ #: admin/wp-security-brute-force-menu.php:553
911
+ msgid "Check this if you want to insert a captcha form on the login page"
912
+ msgstr "로그인 페이지에 캡차 양식을 삽입하려는 경우 이 방법을 확인하십시오."
913
+
914
+ #: admin/wp-security-brute-force-menu.php:559
915
+ msgid "Custom Login Form Captcha Settings"
916
+ msgstr "사용자 정의 로그인 양식 캡차 설정"
917
+
918
+ #: admin/wp-security-brute-force-menu.php:568
919
+ msgid "Enable Captcha On Custom Login Form"
920
+ msgstr "맞춤형 로그인 양식에 보안 문자 사용"
921
+
922
+ #: admin/wp-security-brute-force-menu.php:571
923
+ msgid ""
924
+ "Check this if you want to insert captcha on a custom login form generated by "
925
+ "the following WP function: wp_login_form()"
926
+ msgstr ""
927
+ "다음 WP 함수에서 생성된 사용자 지정 로그인 양식에 보안 문자를 삽입하려는 경"
928
+ "우 wp_login_form()"
929
+
930
+ #: admin/wp-security-brute-force-menu.php:577
931
+ msgid "Lost Password Form Captcha Settings"
932
+ msgstr "비밀번호 찾기 양식에 보안 문자 설정"
933
+
934
+ #: admin/wp-security-brute-force-menu.php:587
935
+ msgid "Enable Captcha On Lost Password Page"
936
+ msgstr "암호 분실 페이지에서 보안 문자 활성화"
937
+
938
+ #: admin/wp-security-brute-force-menu.php:590
939
+ msgid ""
940
+ "Check this if you want to insert a captcha form on the lost password page"
941
+ msgstr ""
942
+ "비밀번호 찾기 페이지에 보안 문자 양식을 삽입하려는 경우 이 방법을 확인하십시"
943
+ "오."
944
+
945
+ #: admin/wp-security-brute-force-menu.php:612
946
+ msgid "Nonce check failed for save whitelist settings!"
947
+ msgstr "Nonce 확인은 저장 화이트리스트 설정에 실패!"
948
+
949
+ #: admin/wp-security-brute-force-menu.php:669
950
+ msgid ""
951
+ "The All In One WP Security Whitelist feature gives you the option of only "
952
+ "allowing certain IP addresses or ranges to have access to your WordPress "
953
+ "login page."
954
+ msgstr ""
955
+ "모든 WP 보안 화이트리스트 기능은 특정 IP 주소 또는 범위만 WordPress 로그인 페"
956
+ "이지에 액세스할 수 있도록 허용하는 옵션을 제공합니다."
957
+
958
+ #: admin/wp-security-brute-force-menu.php:670
959
+ msgid ""
960
+ "This feature will deny login access for all IP addresses which are not in "
961
+ "your whitelist as configured in the settings below."
962
+ msgstr ""
963
+ "이 기능은 아래 설정에서 구성된 대로 화이트리스트에 없는 모든 IP 주소에 대한 "
964
+ "로그인 액세스를 거부합니다."
965
+
966
+ #: admin/wp-security-brute-force-menu.php:671
967
+ msgid ""
968
+ "The plugin achieves this by writing the appropriate directives to your ."
969
+ "htaccess file."
970
+ msgstr "플러그인은 .htaccess 파일에 적절한 지침을 작성하여 이를 달성합니다."
971
+
972
+ #: admin/wp-security-brute-force-menu.php:672
973
+ msgid ""
974
+ "By allowing/blocking IP addresses via the .htaccess file your are using the "
975
+ "most secure first line of defence because login access will only be granted "
976
+ "to whitelisted IP addresses and other addresses will be blocked as soon as "
977
+ "they try to access your login page."
978
+ msgstr ""
979
+ ".htaccess 파일을 통해 IP 주소를 허용/차단하면 로그인 액세스가 허용되고 다른 "
980
+ "주소가 로그인 페이지에 액세스하려고 하는 즉시 차단되므로 가장 안전한 첫 번째 "
981
+ "방어 선을 사용하고 있습니다."
982
+
983
+ #: admin/wp-security-brute-force-menu.php:680
984
+ #, php-format
985
+ msgid ""
986
+ "Attention: If in addition to enabling the white list feature, you also have "
987
+ "one of the %s or %s features enabled, <strong>you will still need to use "
988
+ "your secret word or special slug in the URL when trying to access your "
989
+ "WordPress login page</strong>."
990
+ msgstr ""
991
+ "주의: 화이트 리스트 기능을 사용하도록 설정하는 것 외에도 %s 또는 %s 기능 중 "
992
+ "하나가 활성화된 경우 <strong>WordPress 로그인 페이지에 액세스하려고 할 때 URL"
993
+ "에서 비밀 단어 또는 특수 슬러그를 사용해야 합니다.</strong>"
994
+
995
+ #: admin/wp-security-brute-force-menu.php:681
996
+ msgid ""
997
+ "These features are NOT functionally related. Having both of them enabled on "
998
+ "your site means you are creating 2 layers of security."
999
+ msgstr ""
1000
+ "이러한 기능은 기능적으로 관련이 없습니다. 두 가지 를 모두 사이트에서 사용하도"
1001
+ "록 설정하면 2개의 보안 계층을 만드는 것을 의미합니다."
1002
+
1003
+ #: admin/wp-security-brute-force-menu.php:686
1004
+ msgid "Login IP Whitelist Settings"
1005
+ msgstr "로그인 IP 허용 목록 설정"
1006
+
1007
+ #: admin/wp-security-brute-force-menu.php:697
1008
+ msgid "Enable IP Whitelisting"
1009
+ msgstr "IP 화이트리스팅 활성화"
1010
+
1011
+ #: admin/wp-security-brute-force-menu.php:700
1012
+ msgid ""
1013
+ "Check this if you want to enable the whitelisting of selected IP addresses "
1014
+ "specified in the settings below"
1015
+ msgstr ""
1016
+ "아래 설정에 지정된 선택한 IP 주소의 화이트리스팅을 사용하도록 설정하려면 이 "
1017
+ "옵션을 확인하십시오."
1018
+
1019
+ #: admin/wp-security-brute-force-menu.php:704
1020
+ msgid "Your Current IP Address"
1021
+ msgstr "현재 IP 주소"
1022
+
1023
+ #: admin/wp-security-brute-force-menu.php:707
1024
+ msgid ""
1025
+ "You can copy and paste this address in the text box below if you want to "
1026
+ "include it in your login whitelist."
1027
+ msgstr ""
1028
+ "로그인 화이트리스트에 포함하려는 경우 아래 텍스트 상자에 이 주소를 복사하여 "
1029
+ "붙여넣기할 수 있습니다."
1030
+
1031
+ #: admin/wp-security-brute-force-menu.php:711
1032
+ msgid "Enter Whitelisted IP Addresses:"
1033
+ msgstr "화이트리스트 IP 주소 입력:"
1034
+
1035
+ #: admin/wp-security-brute-force-menu.php:715
1036
+ msgid ""
1037
+ "Enter one or more IP addresses or IP ranges you wish to include in your "
1038
+ "whitelist. Only the addresses specified here will have access to the "
1039
+ "WordPress login page."
1040
+ msgstr ""
1041
+
1042
+ #: admin/wp-security-brute-force-menu.php:720
1043
+ msgid ""
1044
+ "To specify an IPv4 range use a wildcard \"*\" character. Acceptable ways to "
1045
+ "use wildcards is shown in the examples below:"
1046
+ msgstr ""
1047
+
1048
+ #: admin/wp-security-brute-force-menu.php:724
1049
+ msgid ""
1050
+ "Or you can enter an IPv6 address (NOTE: ranges/wildcards are currently not "
1051
+ "supported for ipv6)"
1052
+ msgstr ""
1053
+
1054
+ #: admin/wp-security-brute-force-menu.php:725
1055
+ msgid "Example 4: 4102:0:3ea6:79fd:b:46f8:230f:bb05"
1056
+ msgstr ""
1057
+
1058
+ #: admin/wp-security-brute-force-menu.php:726
1059
+ msgid "Example 5: 2205:0:1ca2:810d::"
1060
+ msgstr ""
1061
+
1062
+ #: admin/wp-security-brute-force-menu.php:766
1063
+ msgid ""
1064
+ "This feature allows you to add a special hidden \"honeypot\" field on the "
1065
+ "WordPress login page. This will only be visible to robots and not humans."
1066
+ msgstr ""
1067
+
1068
+ #: admin/wp-security-brute-force-menu.php:767
1069
+ msgid ""
1070
+ "Since robots usually fill in every input field from a login form, they will "
1071
+ "also submit a value for the special hidden honeypot field."
1072
+ msgstr ""
1073
+
1074
+ #: admin/wp-security-brute-force-menu.php:768
1075
+ msgid ""
1076
+ "The way honeypots work is that a hidden field is placed somewhere inside a "
1077
+ "form which only robots will submit. If that field contains a value when the "
1078
+ "form is submitted then a robot has most likely submitted the form and it is "
1079
+ "consequently dealt with."
1080
+ msgstr ""
1081
+
1082
+ #: admin/wp-security-brute-force-menu.php:769
1083
+ msgid ""
1084
+ "Therefore, if the plugin detects that this field has a value when the login "
1085
+ "form is submitted, then the robot which is attempting to login to your site "
1086
+ "will be redirected to its localhost address - http://127.0.0.1."
1087
+ msgstr ""
1088
+
1089
+ #: admin/wp-security-brute-force-menu.php:775
1090
+ msgid "Login Form Honeypot Settings"
1091
+ msgstr ""
1092
+
1093
+ #: admin/wp-security-brute-force-menu.php:786
1094
+ msgid "Enable Honeypot On Login Page"
1095
+ msgstr ""
1096
+
1097
+ #: admin/wp-security-brute-force-menu.php:789
1098
+ msgid ""
1099
+ "Check this if you want to enable the honeypot feature for the login page"
1100
+ msgstr ""
1101
+
1102
+ #: admin/wp-security-dashboard-menu.php:26
1103
+ msgid "System Info"
1104
+ msgstr "시스템 정보"
1105
+
1106
+ #: admin/wp-security-dashboard-menu.php:27
1107
+ #: admin/wp-security-dashboard-menu.php:518
1108
+ msgid "Locked IP Addresses"
1109
+ msgstr "잠긴 IP 주소"
1110
+
1111
+ #: admin/wp-security-dashboard-menu.php:28
1112
+ msgid "Permanent Block List"
1113
+ msgstr "영구 블록 목록"
1114
+
1115
+ #: admin/wp-security-dashboard-menu.php:29
1116
+ msgid "AIOWPS Logs"
1117
+ msgstr "AIOWPS 로그"
1118
+
1119
+ #: admin/wp-security-dashboard-menu.php:79
1120
+ msgid "For information, updates and documentation, please visit the"
1121
+ msgstr "For information, updates and documentation, please visit the"
1122
+
1123
+ #: admin/wp-security-dashboard-menu.php:79
1124
+ msgid "AIO WP Security & Firewall Plugin"
1125
+ msgstr "AIO WP 보안 및 방화벽 플러그인"
1126
+
1127
+ #: admin/wp-security-dashboard-menu.php:79
1128
+ msgid "Page"
1129
+ msgstr "페이지"
1130
+
1131
+ #: admin/wp-security-dashboard-menu.php:80
1132
+ msgid "Follow us"
1133
+ msgstr "팔로우"
1134
+
1135
+ #: admin/wp-security-dashboard-menu.php:80
1136
+ msgid ""
1137
+ "Twitter, Google+ or via Email to stay up to date about the new security "
1138
+ "features of this plugin."
1139
+ msgstr ""
1140
+ "트위터, 구글 + 또는 이 플러그인의 새로운 보안 기능에 대 한 최신 상태로 이메일"
1141
+ "을 통해."
1142
+
1143
+ #: admin/wp-security-dashboard-menu.php:97
1144
+ msgid "Security Strength Meter"
1145
+ msgstr "보안 강도 계수"
1146
+
1147
+ # @ all-in-one-wp-security-and-firewall
1148
+ #: admin/wp-security-dashboard-menu.php:128
1149
+ msgid "Total Achievable Points: "
1150
+ msgstr "총 달성 가능한 포인트:"
1151
+
1152
+ # @ all-in-one-wp-security-and-firewall
1153
+ #: admin/wp-security-dashboard-menu.php:130
1154
+ msgid "Current Score of Your Site: "
1155
+ msgstr "사이트의 현재 점수:"
1156
+
1157
+ #: admin/wp-security-dashboard-menu.php:143
1158
+ msgid "Security Points Breakdown"
1159
+ msgstr "보안 지점 고장"
1160
+
1161
+ #: admin/wp-security-dashboard-menu.php:187
1162
+ msgid "Spread the Word"
1163
+ msgstr "입소문 내기"
1164
+
1165
+ #: admin/wp-security-dashboard-menu.php:192
1166
+ msgid ""
1167
+ "We are working hard to make your WordPress site more secure. Please support "
1168
+ "us, here is how:"
1169
+ msgstr ""
1170
+ "우리는 당신의 워드 프레스 사이트를 더 안전하게 만들기 위해 열심히 노력하고 있"
1171
+ "습니다. 우리를 지원하십시오, 여기에 방법입니다 :"
1172
+
1173
+ #: admin/wp-security-dashboard-menu.php:217
1174
+ msgid "Get To Know The Developers"
1175
+ msgstr "개발자에 대해 알아가기"
1176
+
1177
+ #: admin/wp-security-dashboard-menu.php:221
1178
+ msgid "Wanna know more about the developers behind this plugin?"
1179
+ msgstr "이 플러그인 뒤에 개발자에 대 한 자세한 내용은?"
1180
+
1181
+ #: admin/wp-security-dashboard-menu.php:238
1182
+ msgid "Critical Feature Status"
1183
+ msgstr "중요 기능 상태"
1184
+
1185
+ # @ all-in-one-wp-security-and-firewall
1186
+ #: admin/wp-security-dashboard-menu.php:244
1187
+ msgid ""
1188
+ "Below is the current status of the critical features that you should "
1189
+ "activate on your site to achieve a minimum level of recommended security"
1190
+ msgstr ""
1191
+ "다음은 최소한의 권장 보안을 달성하기 위해 사이트에서 활성화해야 하는 중요한 "
1192
+ "기능의 현재 상태입니다."
1193
+
1194
+ # @ all-in-one-wp-security-and-firewall
1195
+ #: admin/wp-security-dashboard-menu.php:248
1196
+ msgid "Admin Username"
1197
+ msgstr "관리자 아이디"
1198
+
1199
+ # @ all-in-one-wp-security-and-firewall
1200
+ #: admin/wp-security-dashboard-menu.php:263
1201
+ #: admin/wp-security-user-login-menu.php:25
1202
+ #: classes/grade-system/wp-security-feature-item-manager.php:42
1203
+ msgid "Login Lockdown"
1204
+ msgstr "로그인 잠금"
1205
+
1206
+ # @ all-in-one-wp-security-and-firewall
1207
+ #: admin/wp-security-dashboard-menu.php:278
1208
+ msgid "File Permission"
1209
+ msgstr "파일 권한"
1210
+
1211
+ # @ all-in-one-wp-security-and-firewall
1212
+ #: admin/wp-security-dashboard-menu.php:293
1213
+ msgid "Basic Firewall"
1214
+ msgstr "기본 방화벽"
1215
+
1216
+ #: admin/wp-security-dashboard-menu.php:314
1217
+ msgid "Last 5 Logins"
1218
+ msgstr "마지막 5 로그인"
1219
+
1220
+ #: admin/wp-security-dashboard-menu.php:332
1221
+ msgid "No data found!"
1222
+ msgstr "데이터가 없습니다"
1223
+
1224
+ #: admin/wp-security-dashboard-menu.php:336
1225
+ msgid "Last 5 logins summary:"
1226
+ msgstr "마지막 5 개의 로그인 요약:"
1227
+
1228
+ #: admin/wp-security-dashboard-menu.php:340
1229
+ msgid "User"
1230
+ msgstr "사용자"
1231
+
1232
+ #: admin/wp-security-dashboard-menu.php:341
1233
+ msgid "Date"
1234
+ msgstr "날짜"
1235
+
1236
+ #: admin/wp-security-dashboard-menu.php:342
1237
+ msgid "IP"
1238
+ msgstr "IP"
1239
+
1240
+ #: admin/wp-security-dashboard-menu.php:366
1241
+ msgid "Maintenance Mode Status"
1242
+ msgstr "유지 관리 모드 상태"
1243
+
1244
+ # @ all-in-one-wp-security-and-firewall
1245
+ #: admin/wp-security-dashboard-menu.php:372
1246
+ msgid ""
1247
+ "Maintenance mode is currently enabled. Remember to turn it off when you are "
1248
+ "done"
1249
+ msgstr "현재 유지 관리 모드가 활성화되어 있습니다. 완료되면 꺼야 합니다."
1250
+
1251
+ # @ all-in-one-wp-security-and-firewall
1252
+ #: admin/wp-security-dashboard-menu.php:374
1253
+ msgid "Maintenance mode is currently off."
1254
+ msgstr "유지 관리 모드가 현재 해제되었습니다."
1255
+
1256
+ # @ all-in-one-wp-security-and-firewall
1257
+ #: admin/wp-security-dashboard-menu.php:378
1258
+ msgid "Maintenance Mode"
1259
+ msgstr "유지관리 모드"
1260
+
1261
+ #: admin/wp-security-dashboard-menu.php:403
1262
+ msgid "Cookie Based Brute Prevention"
1263
+ msgstr "쿠키 기반 무차별 예방"
1264
+
1265
+ #: admin/wp-security-dashboard-menu.php:408
1266
+ msgid "Cookie-Based Brute Force"
1267
+ msgstr ""
1268
+
1269
+ #: admin/wp-security-dashboard-menu.php:412
1270
+ #: admin/wp-security-dashboard-menu.php:444
1271
+ #, php-format
1272
+ msgid "The %s feature is currently active."
1273
+ msgstr "%s 피쳐는 현재 활성 상태입니다."
1274
+
1275
+ #: admin/wp-security-dashboard-menu.php:413
1276
+ #: admin/wp-security-dashboard-menu.php:445
1277
+ msgid "Your new WordPress login URL is now:"
1278
+ msgstr "당신의 새 워드프레스 로그인 URL:"
1279
+
1280
+ #: admin/wp-security-dashboard-menu.php:478
1281
+ #: admin/wp-security-user-login-menu.php:29
1282
+ msgid "Logged In Users"
1283
+ msgstr "로그인한 사용자"
1284
+
1285
+ # @ all-in-one-wp-security-and-firewall
1286
+ #: admin/wp-security-dashboard-menu.php:488
1287
+ msgid "Number of users currently logged in site-wide is:"
1288
+ msgstr "현재 사이트에 로그인 한 사용자 :"
1289
+
1290
+ # @ all-in-one-wp-security-and-firewall
1291
+ #: admin/wp-security-dashboard-menu.php:489
1292
+ #: admin/wp-security-dashboard-menu.php:503
1293
+ #: admin/wp-security-dashboard-menu.php:531
1294
+ #, php-format
1295
+ msgid "Go to the %s menu to see more details"
1296
+ msgstr "자세한 내용을 보려면 %s 메뉴로 이동"
1297
+
1298
+ # @ all-in-one-wp-security-and-firewall
1299
+ #: admin/wp-security-dashboard-menu.php:492
1300
+ msgid "There are no other site-wide users currently logged in."
1301
+ msgstr "현재 로그인한 사이트 전체의 다른 사용자는 없습니다."
1302
+
1303
+ #: admin/wp-security-dashboard-menu.php:502
1304
+ msgid "Number of users currently logged into your site (including you) is:"
1305
+ msgstr "현재 사이트에 로그인한 사용자 수(회원 포함):"
1306
+
1307
+ # @ all-in-one-wp-security-and-firewall
1308
+ #: admin/wp-security-dashboard-menu.php:506
1309
+ msgid "There are no other users currently logged in."
1310
+ msgstr "현재 로그인한 다른 사용자는 없습니다."
1311
+
1312
+ #: admin/wp-security-dashboard-menu.php:527
1313
+ msgid "There are no IP addresses currently locked out."
1314
+ msgstr "현재 잠겨 있는 IP 주소가 없습니다."
1315
+
1316
+ #: admin/wp-security-dashboard-menu.php:530
1317
+ msgid "Number of temporarily locked out IP addresses: "
1318
+ msgstr "일시적으로 잠긴 IP 주소 수:"
1319
+
1320
+ #: admin/wp-security-dashboard-menu.php:576
1321
+ msgid "Site Info"
1322
+ msgstr "사이트 정보"
1323
+
1324
+ #: admin/wp-security-dashboard-menu.php:580
1325
+ msgid "Plugin Version"
1326
+ msgstr "플러그인 버전"
1327
+
1328
+ #: admin/wp-security-dashboard-menu.php:582
1329
+ msgid "WP Version"
1330
+ msgstr "워드프레스 버전"
1331
+
1332
+ # @ all-in-one-wp-security-and-firewall
1333
+ #: admin/wp-security-dashboard-menu.php:585
1334
+ #: admin/wp-security-dashboard-menu.php:589
1335
+ #: admin/wp-security-dashboard-menu.php:698
1336
+ msgid "Version"
1337
+ msgstr "버전"
1338
+
1339
+ #: admin/wp-security-dashboard-menu.php:587
1340
+ msgid "Table Prefix"
1341
+ msgstr "테이블 접두사"
1342
+
1343
+ #: admin/wp-security-dashboard-menu.php:591
1344
+ msgid "Session Save Path"
1345
+ msgstr "세션 저장 경로"
1346
+
1347
+ #: admin/wp-security-dashboard-menu.php:594
1348
+ msgid "Server Name"
1349
+ msgstr "서버 이름"
1350
+
1351
+ #: admin/wp-security-dashboard-menu.php:596
1352
+ msgid "Cookie Domain"
1353
+ msgstr "쿠키 도메인"
1354
+
1355
+ #: admin/wp-security-dashboard-menu.php:599
1356
+ msgid "Library Present"
1357
+ msgstr ""
1358
+
1359
+ #: admin/wp-security-dashboard-menu.php:601
1360
+ msgid "Debug File Write Permissions"
1361
+ msgstr "디버그 파일 쓰기 권한"
1362
+
1363
+ #: admin/wp-security-dashboard-menu.php:607
1364
+ msgid "PHP Info"
1365
+ msgstr "PHP 정보"
1366
+
1367
+ #: admin/wp-security-dashboard-menu.php:611
1368
+ msgid "PHP Version"
1369
+ msgstr "PHP 버전"
1370
+
1371
+ #: admin/wp-security-dashboard-menu.php:613
1372
+ msgid "PHP Memory Usage"
1373
+ msgstr "PHP 메모리 사용량"
1374
+
1375
+ #: admin/wp-security-dashboard-menu.php:614
1376
+ msgid " MB"
1377
+ msgstr " MB"
1378
+
1379
+ #: admin/wp-security-dashboard-menu.php:620
1380
+ #: admin/wp-security-dashboard-menu.php:629
1381
+ #: admin/wp-security-dashboard-menu.php:638
1382
+ #: admin/wp-security-dashboard-menu.php:676
1383
+ msgid "N/A"
1384
+ msgstr "N/A"
1385
+
1386
+ #: admin/wp-security-dashboard-menu.php:623
1387
+ msgid "PHP Memory Limit"
1388
+ msgstr "PHP 메모리 제한"
1389
+
1390
+ #: admin/wp-security-dashboard-menu.php:632
1391
+ msgid "PHP Max Upload Size"
1392
+ msgstr "PHP 최대 업로드 크기"
1393
+
1394
+ #: admin/wp-security-dashboard-menu.php:641
1395
+ msgid "PHP Max Post Size"
1396
+ msgstr "PHP 최대 포스트 크기"
1397
+
1398
+ #: admin/wp-security-dashboard-menu.php:645
1399
+ #: admin/wp-security-dashboard-menu.php:655
1400
+ #: admin/wp-security-dashboard-menu.php:664
1401
+ msgid "On"
1402
+ msgstr "On"
1403
+
1404
+ #: admin/wp-security-dashboard-menu.php:647
1405
+ #: admin/wp-security-dashboard-menu.php:657
1406
+ #: admin/wp-security-dashboard-menu.php:666
1407
+ msgid "Off"
1408
+ msgstr "Off"
1409
+
1410
+ #: admin/wp-security-dashboard-menu.php:650
1411
+ msgid "PHP Allow URL fopen"
1412
+ msgstr "PHP URL fopen 허용"
1413
+
1414
+ #: admin/wp-security-dashboard-menu.php:660
1415
+ msgid "PHP Allow URL Include"
1416
+ msgstr "PHP 허용 URL 포함"
1417
+
1418
+ #: admin/wp-security-dashboard-menu.php:669
1419
+ msgid "PHP Display Errors"
1420
+ msgstr "PHP 디스플레이 오류"
1421
+
1422
+ #: admin/wp-security-dashboard-menu.php:679
1423
+ msgid "PHP Max Script Execution Time"
1424
+ msgstr "PHP 최대 스크립트 실행 시간"
1425
+
1426
+ #: admin/wp-security-dashboard-menu.php:680
1427
+ msgid "Seconds"
1428
+ msgstr "초"
1429
+
1430
+ #: admin/wp-security-dashboard-menu.php:686
1431
+ msgid "Active Plugins"
1432
+ msgstr "활성된 플러그인"
1433
+
1434
+ # @ all-in-one-wp-security-and-firewall
1435
+ #: admin/wp-security-dashboard-menu.php:697
1436
+ #: admin/wp-security-filesystem-menu.php:131
1437
+ #: admin/wp-security-filesystem-menu.php:150
1438
+ msgid "Name"
1439
+ msgstr "이름"
1440
+
1441
+ # @ all-in-one-wp-security-and-firewall
1442
+ #: admin/wp-security-dashboard-menu.php:699
1443
+ msgid "Plugin URL"
1444
+ msgstr "플러그인 URL"
1445
+
1446
+ #: admin/wp-security-dashboard-menu.php:737
1447
+ msgid ""
1448
+ "This tab displays the list of all IP addresses which are currently "
1449
+ "temporarily locked out due to the Login Lockdown feature:"
1450
+ msgstr ""
1451
+ "이 탭에는 로그인 잠금 기능으로 인해 현재 일시적으로 잠겨 있는 모든 IP 주소 목"
1452
+ "록이 표시됩니다."
1453
+
1454
+ #: admin/wp-security-dashboard-menu.php:744
1455
+ msgid "Currently Locked Out IP Addresses and Ranges"
1456
+ msgstr "현재 잠겨 있는 IP 주소 및 범위"
1457
+
1458
+ #: admin/wp-security-dashboard-menu.php:787
1459
+ msgid "This tab displays the list of all permanently blocked IP addresses."
1460
+ msgstr "이 탭에는 영구적으로 차단된 모든 IP 주소 목록이 표시됩니다."
1461
+
1462
+ #: admin/wp-security-dashboard-menu.php:788 admin/wp-security-spam-menu.php:291
1463
+ msgid ""
1464
+ "NOTE: This feature does NOT use the .htaccess file to permanently block the "
1465
+ "IP addresses so it should be compatible with all web servers running "
1466
+ "WordPress."
1467
+ msgstr ""
1468
+ "참고: 이 기능은 .htaccess 파일을 사용하여 IP 주소를 영구적으로 차단하지 않으"
1469
+ "므로 WordPress를 실행하는 모든 웹 서버와 호환되어야 합니다."
1470
+
1471
+ #: admin/wp-security-dashboard-menu.php:794
1472
+ msgid "Permanently Blocked IP Addresses"
1473
+ msgstr "영구적으로 차단된 IP 주소"
1474
+
1475
+ #: admin/wp-security-dashboard-menu.php:828
1476
+ msgid "View Logs for All In WP Security & Firewall Plugin"
1477
+ msgstr "WP 보안 및 방화벽 플러그인의 모든 로그 보기"
1478
+
1479
+ #: admin/wp-security-dashboard-menu.php:836
1480
+ msgid "Log File"
1481
+ msgstr "로그 파일"
1482
+
1483
+ #: admin/wp-security-dashboard-menu.php:840
1484
+ msgid "--Select a file--"
1485
+ msgstr "--파일 선택--"
1486
+
1487
+ #: admin/wp-security-dashboard-menu.php:851
1488
+ msgid "Select one of the log files to view the contents"
1489
+ msgstr "로그 파일 중 하나를 선택하여 내용을 볼 수 있습니다."
1490
+
1491
+ #: admin/wp-security-dashboard-menu.php:856
1492
+ msgid "View Logs"
1493
+ msgstr "로그 보기"
1494
+
1495
+ #: admin/wp-security-dashboard-menu.php:877
1496
+ msgid ""
1497
+ "Error! The file you selected is not a permitted file. You can only view log "
1498
+ "files created by this plugin."
1499
+ msgstr ""
1500
+ "오류! 선택한 파일은 허용되는 파일이 아닙니다. 이 플러그인에서 만든 로그 파일"
1501
+ "만 볼 수 있습니다."
1502
+
1503
+ #: admin/wp-security-dashboard-menu.php:884
1504
+ msgid "Log File Contents For"
1505
+ msgstr ""
1506
+
1507
+ #: admin/wp-security-dashboard-menu.php:898
1508
+ msgid "Log file is empty!"
1509
+ msgstr "기록 파일이 비었어요."
1510
+
1511
+ #: admin/wp-security-database-menu.php:26
1512
+ #: admin/wp-security-database-menu.php:31
1513
+ #: classes/grade-system/wp-security-feature-item-manager.php:63
1514
+ msgid "DB Backup"
1515
+ msgstr "DB 백업"
1516
+
1517
+ #: admin/wp-security-database-menu.php:30
1518
+ #: classes/grade-system/wp-security-feature-item-manager.php:61
1519
+ msgid "DB Prefix"
1520
+ msgstr "DB 접두사"
1521
+
1522
+ # @ all-in-one-wp-security-and-firewall
1523
+ #: admin/wp-security-database-menu.php:94
1524
+ msgid "Nonce check failed for DB prefix change operation!"
1525
+ msgstr "NONCE 는 DB 접두사 변경 작업에 대한 실패 확인!"
1526
+
1527
+ # @ all-in-one-wp-security-and-firewall
1528
+ #: admin/wp-security-database-menu.php:102
1529
+ msgid ""
1530
+ "The plugin has detected that it cannot write to the wp-config.php file. This "
1531
+ "feature can only be used if the plugin can successfully write to the wp-"
1532
+ "config.php file."
1533
+ msgstr ""
1534
+ "플러그인은 wp-config.php 파일에 쓸 수 없다는 것을 감지했습니다. 이 기능은 플"
1535
+ "러그인이 wp-config.php 파일에 성공적으로 쓸 수 있는 경우에만 사용할 수 있습니"
1536
+ "다."
1537
+
1538
+ # @ all-in-one-wp-security-and-firewall
1539
+ #: admin/wp-security-database-menu.php:115
1540
+ msgid "Please enter a value for the DB prefix."
1541
+ msgstr "DB 접두사값을 입력하십시오."
1542
+
1543
+ # @ all-in-one-wp-security-and-firewall
1544
+ #: admin/wp-security-database-menu.php:124
1545
+ msgid ""
1546
+ "<strong>ERROR</strong>: The table prefix can only contain numbers, letters, "
1547
+ "and underscores."
1548
+ msgstr ""
1549
+ "<strong>오류</strong>: 테이블 접두사에는 숫자, 문자 및 밑줄만 포함될 수 있습"
1550
+ "니다."
1551
+
1552
+ # @ all-in-one-wp-security-and-firewall
1553
+ #: admin/wp-security-database-menu.php:133
1554
+ msgid "Change Database Prefix"
1555
+ msgstr "데이터베이스 접두사 변경"
1556
+
1557
+ # @ all-in-one-wp-security-and-firewall
1558
+ #: admin/wp-security-database-menu.php:136
1559
+ msgid ""
1560
+ "Your WordPress DB is the most important asset of your website because it "
1561
+ "contains a lot of your site's precious information."
1562
+ msgstr ""
1563
+ "귀하의 워드 프레스 DB는 사이트의 소중한 정보를 많이 포함하기 때문에 웹 사이트"
1564
+ "의 가장 중요한 자산입니다."
1565
+
1566
+ # @ all-in-one-wp-security-and-firewall
1567
+ #: admin/wp-security-database-menu.php:137
1568
+ msgid ""
1569
+ "The DB is also a target for hackers via methods such as SQL injections and "
1570
+ "malicious and automated code which targets certain tables."
1571
+ msgstr ""
1572
+ "DB는 또한 SQL 주사 및 특정 테이블을 대상으로 하는 악성 및 자동화된 코드와 같"
1573
+ "은 방법을 통해 해커의 대상이기도 합니다."
1574
+
1575
+ # @ all-in-one-wp-security-and-firewall
1576
+ #: admin/wp-security-database-menu.php:138
1577
+ msgid ""
1578
+ "One way to add a layer of protection for your DB is to change the default "
1579
+ "WordPress table prefix from \"wp_\" to something else which will be "
1580
+ "difficult for hackers to guess."
1581
+ msgstr ""
1582
+ "DB에 대한 보호 계층을 추가하는 한 가지 방법은 기본 워드 프레스 테이블 접두사"
1583
+ "를 \"wp_\"에서 해커가 추측하기 어려운 다른 것으로 변경하는 것입니다."
1584
+
1585
+ # @ all-in-one-wp-security-and-firewall
1586
+ #: admin/wp-security-database-menu.php:139
1587
+ msgid ""
1588
+ "This feature allows you to easily change the prefix to a value of your "
1589
+ "choice or to a random value set by this plugin."
1590
+ msgstr ""
1591
+ "이 기능을 사용하면 접두사를 원하는 값또는 이 플러그인으로 설정한 임의값으로 "
1592
+ "쉽게 변경할 수 있습니다."
1593
+
1594
+ # @ all-in-one-wp-security-and-firewall
1595
+ #: admin/wp-security-database-menu.php:145
1596
+ msgid "DB Prefix Options"
1597
+ msgstr "DB 접두사 옵션"
1598
+
1599
+ # @ all-in-one-wp-security-and-firewall
1600
+ #: admin/wp-security-database-menu.php:156
1601
+ #, php-format
1602
+ msgid "It is recommended that you perform a %s before using this feature"
1603
+ msgstr "이 기능을 사용하기 전에 %s를 수행하는 것이 좋습니다."
1604
+
1605
+ # @ all-in-one-wp-security-and-firewall
1606
+ #: admin/wp-security-database-menu.php:165
1607
+ msgid "Current DB Table Prefix"
1608
+ msgstr "현재 DB 테이블 접두사"
1609
+
1610
+ # @ all-in-one-wp-security-and-firewall
1611
+ #: admin/wp-security-database-menu.php:171
1612
+ msgid ""
1613
+ "Your site is currently using the default WordPress DB prefix value of \"wp_"
1614
+ "\". \n"
1615
+ " To increase your site's security you should "
1616
+ "consider changing the DB prefix value to another value."
1617
+ msgstr ""
1618
+ "귀하의 사이트는 현재 \"wp_\"의 기본 워드 프레스 DB 접두사 값을 사용하고 있습"
1619
+ "니다. \n"
1620
+ " 사이트의 보안을 높이려면 DB 접두사 값을 다른 값으"
1621
+ "로 변경하는 것이 좋습니다."
1622
+
1623
+ # @ all-in-one-wp-security-and-firewall
1624
+ #: admin/wp-security-database-menu.php:178
1625
+ msgid "Generate New DB Table Prefix"
1626
+ msgstr "새 DB 테이블 접두사 생성"
1627
+
1628
+ # @ all-in-one-wp-security-and-firewall
1629
+ #: admin/wp-security-database-menu.php:181
1630
+ msgid ""
1631
+ "Check this if you want the plugin to generate a random 6 character string "
1632
+ "for the table prefix"
1633
+ msgstr ""
1634
+ "플러그인이 테이블 접두사에 대한 임의의 6 자 문자열을 생성하려는 경우이 확인"
1635
+
1636
+ # @ all-in-one-wp-security-and-firewall
1637
+ #: admin/wp-security-database-menu.php:182
1638
+ msgid "OR"
1639
+ msgstr "또는"
1640
+
1641
+ # @ all-in-one-wp-security-and-firewall
1642
+ #: admin/wp-security-database-menu.php:184
1643
+ msgid ""
1644
+ "Choose your own DB prefix by specifying a string which contains letters and/"
1645
+ "or numbers and/or underscores. Example: xyz_"
1646
+ msgstr ""
1647
+ "문자 및/또는 숫자 및/또는 밑줄이 포함된 문자열을 지정하여 자신의 DB 접두사를 "
1648
+ "선택합니다. 예: xyz_"
1649
+
1650
+ # @ all-in-one-wp-security-and-firewall
1651
+ #: admin/wp-security-database-menu.php:188
1652
+ msgid "Change DB Prefix"
1653
+ msgstr "DB 접두사 변경"
1654
+
1655
+ # @ all-in-one-wp-security-and-firewall
1656
+ #: admin/wp-security-database-menu.php:209
1657
+ #: admin/wp-security-filesystem-menu.php:87
1658
+ msgid "Nonce check failed for manual DB backup operation!"
1659
+ msgstr "Nonce 확인 수동 DB 백업 작업에 대 한 실패!"
1660
+
1661
+ #: admin/wp-security-database-menu.php:226
1662
+ msgid ""
1663
+ "DB Backup was successfully completed! You will receive the backup file via "
1664
+ "email if you have enabled \"Send Backup File Via Email\", otherwise you can "
1665
+ "retrieve it via FTP from the following directory:"
1666
+ msgstr ""
1667
+ "DB 백업이 성공적으로 완료되었습니다! \"이메일을 통해 백업 파일 보내기\"를 활"
1668
+ "성화한 경우 이메일을 통해 백업 파일을 받게 되며, 그렇지 않으면 다음 디렉터리"
1669
+ "에서 FTP를 통해 검색할 수 있습니다."
1670
+
1671
+ #: admin/wp-security-database-menu.php:228
1672
+ msgid "Your DB Backup File location: "
1673
+ msgstr "DB 백업 파일 위치:"
1674
+
1675
+ # @ all-in-one-wp-security-and-firewall
1676
+ #: admin/wp-security-database-menu.php:235
1677
+ msgid "DB Backup failed. Please check the permissions of the backup directory."
1678
+ msgstr "DB 백업에 실패했습니다. 백업 디렉터리의 권한을 확인하십시오."
1679
+
1680
+ # @ all-in-one-wp-security-and-firewall
1681
+ #: admin/wp-security-database-menu.php:252
1682
+ #: admin/wp-security-filescan-menu.php:133
1683
+ msgid ""
1684
+ "You entered a non numeric value for the \"backup time interval\" field. It "
1685
+ "has been set to the default value."
1686
+ msgstr ""
1687
+ "\"백업 시간 간격\" 필드에 대한 비 숫자 값을 입력했습니다. 기본 값으로 설정되"
1688
+ "었습니다."
1689
+
1690
+ # @ all-in-one-wp-security-and-firewall
1691
+ #: admin/wp-security-database-menu.php:259
1692
+ msgid ""
1693
+ "You entered a non numeric value for the \"number of backup files to keep\" "
1694
+ "field. It has been set to the default value."
1695
+ msgstr ""
1696
+ "\"보관할 백업 파일 수\" 필드에 대한 비숫자 값을 입력했습니다. 기본 값으로 설"
1697
+ "정되었습니다."
1698
+
1699
+ # @ all-in-one-wp-security-and-firewall
1700
+ #: admin/wp-security-database-menu.php:266
1701
+ #: admin/wp-security-user-login-menu.php:118
1702
+ msgid ""
1703
+ "You have entered an incorrect email address format. It has been set to your "
1704
+ "WordPress admin email as default."
1705
+ msgstr ""
1706
+ "잘못된 이메일 주소 형식을 입력했습니다. 그것은 기본적으로 워드 프레스 관리자 "
1707
+ "이메일로 설정되었습니다."
1708
+
1709
+ # @ all-in-one-wp-security-and-firewall
1710
+ #: admin/wp-security-database-menu.php:299
1711
+ msgid "Manual Backup"
1712
+ msgstr "수동 백업"
1713
+
1714
+ # @ all-in-one-wp-security-and-firewall
1715
+ #: admin/wp-security-database-menu.php:304
1716
+ msgid "To create a new DB backup just click on the button below."
1717
+ msgstr "새 DB 백업을 만들려면 아래 버튼을 클릭하십시오."
1718
+
1719
+ # @ all-in-one-wp-security-and-firewall
1720
+ #: admin/wp-security-database-menu.php:306
1721
+ msgid "Create DB Backup Now"
1722
+ msgstr "지금 DB 백업 만들기"
1723
+
1724
+ # @ all-in-one-wp-security-and-firewall
1725
+ #: admin/wp-security-database-menu.php:310
1726
+ msgid "Automated Scheduled Backups"
1727
+ msgstr "자동 예약된 백업"
1728
+
1729
+ # @ all-in-one-wp-security-and-firewall
1730
+ #: admin/wp-security-database-menu.php:322
1731
+ msgid "Enable Automated Scheduled Backups"
1732
+ msgstr "자동 예약된 백업 사용"
1733
+
1734
+ # @ all-in-one-wp-security-and-firewall
1735
+ #: admin/wp-security-database-menu.php:325
1736
+ msgid ""
1737
+ "Check this if you want the system to automatically generate backups "
1738
+ "periodically based on the settings below"
1739
+ msgstr ""
1740
+ "아래 설정에 따라 시스템이 주기적으로 백업을 자동으로 생성하려는 경우 이 방법"
1741
+ "을 확인합니다."
1742
+
1743
+ # @ all-in-one-wp-security-and-firewall
1744
+ #: admin/wp-security-database-menu.php:329
1745
+ msgid "Backup Time Interval"
1746
+ msgstr "백업 시간 간격"
1747
+
1748
+ # @ all-in-one-wp-security-and-firewall
1749
+ #: admin/wp-security-database-menu.php:332
1750
+ #: admin/wp-security-filescan-menu.php:285
1751
+ msgid "Hours"
1752
+ msgstr "시간"
1753
+
1754
+ # @ all-in-one-wp-security-and-firewall
1755
+ #: admin/wp-security-database-menu.php:333
1756
+ #: admin/wp-security-filescan-menu.php:286
1757
+ msgid "Days"
1758
+ msgstr "일"
1759
+
1760
+ # @ all-in-one-wp-security-and-firewall
1761
+ #: admin/wp-security-database-menu.php:334
1762
+ #: admin/wp-security-filescan-menu.php:287
1763
+ msgid "Weeks"
1764
+ msgstr "주"
1765
+
1766
+ # @ all-in-one-wp-security-and-firewall
1767
+ #: admin/wp-security-database-menu.php:336
1768
+ msgid "Set the value for how often you would like an automated backup to occur"
1769
+ msgstr "자동화된 백업이 수행되도록 원하는 빈도에 대한 값을 설정합니다."
1770
+
1771
+ # @ all-in-one-wp-security-and-firewall
1772
+ #: admin/wp-security-database-menu.php:340
1773
+ msgid "Number of Backup Files To Keep"
1774
+ msgstr "보관할 백업 파일 수"
1775
+
1776
+ # @ all-in-one-wp-security-and-firewall
1777
+ #: admin/wp-security-database-menu.php:342
1778
+ msgid ""
1779
+ "Thie field allows you to choose the number of backup files you would like to "
1780
+ "keep in the backup directory"
1781
+ msgstr ""
1782
+ "Thie 필드를 사용하면 백업 디렉터리에 보관할 백업 파일 수를 선택할 수 있습니"
1783
+ "다."
1784
+
1785
+ # @ all-in-one-wp-security-and-firewall
1786
+ #: admin/wp-security-database-menu.php:346
1787
+ msgid "Send Backup File Via Email"
1788
+ msgstr "이메일을 통해 백업 파일 보내기"
1789
+
1790
+ # @ all-in-one-wp-security-and-firewall
1791
+ #: admin/wp-security-database-menu.php:349
1792
+ msgid ""
1793
+ "Check this if you want the system to email you the backup file after a DB "
1794
+ "backup has been performed"
1795
+ msgstr ""
1796
+ "DB 백업이 수행된 후 시스템이 백업 파일을 이메일로 보내려면 이 방법을 확인합니"
1797
+ "다."
1798
+
1799
+ # @ all-in-one-wp-security-and-firewall
1800
+ #: admin/wp-security-database-menu.php:351
1801
+ #: admin/wp-security-user-login-menu.php:262
1802
+ msgid "Enter an email address"
1803
+ msgstr "이메일 주소를 입력하십시오"
1804
+
1805
+ #: admin/wp-security-database-menu.php:382
1806
+ msgid "Error - Could not get tables or no tables found!"
1807
+ msgstr "오류 - 테이블을 얻을 수 없거나 테이블을 찾을 수 없습니다!"
1808
+
1809
+ # @ all-in-one-wp-security-and-firewall
1810
+ #: admin/wp-security-database-menu.php:386
1811
+ msgid "Starting DB prefix change operations....."
1812
+ msgstr "시작 DB 접두사 변경 작업....."
1813
+
1814
+ # @ all-in-one-wp-security-and-firewall
1815
+ #: admin/wp-security-database-menu.php:388
1816
+ #, php-format
1817
+ msgid ""
1818
+ "Your WordPress system has a total of %s tables and your new DB prefix will "
1819
+ "be: %s"
1820
+ msgstr ""
1821
+
1822
+ # @ all-in-one-wp-security-and-firewall
1823
+ #: admin/wp-security-database-menu.php:394 classes/wp-security-utility.php:279
1824
+ msgid ""
1825
+ "Failed to make a backup of the wp-config.php file. This operation will not "
1826
+ "go ahead."
1827
+ msgstr ""
1828
+ "wp-config.php 파일의 백업을 하지 못했습니다. 이 작업은 진행되지 않습니다."
1829
+
1830
+ # @ all-in-one-wp-security-and-firewall
1831
+ #: admin/wp-security-database-menu.php:398
1832
+ msgid "A backup copy of your wp-config.php file was created successfully!"
1833
+ msgstr "wp-config.php 파일의 백업 복사본이 성공적으로 만들어졌습니다!"
1834
+
1835
+ # @ all-in-one-wp-security-and-firewall
1836
+ #: admin/wp-security-database-menu.php:425
1837
+ #, php-format
1838
+ msgid "%s table name update failed"
1839
+ msgstr "%s 테이블 이름 업데이트 실패"
1840
+
1841
+ # @ all-in-one-wp-security-and-firewall
1842
+ #: admin/wp-security-database-menu.php:437
1843
+ #, php-format
1844
+ msgid "Please change the prefix manually for the above tables to: %s"
1845
+ msgstr "위의 테이블에 대해 수동으로 접두사를 변경하십시오: %s"
1846
+
1847
+ # @ all-in-one-wp-security-and-firewall
1848
+ #: admin/wp-security-database-menu.php:440
1849
+ #, php-format
1850
+ msgid "%s tables had their prefix updated successfully!"
1851
+ msgstr "%s 테이블은 접두사를 성공적으로 업데이트했습니다!"
1852
+
1853
+ # @ all-in-one-wp-security-and-firewall
1854
+ #: admin/wp-security-database-menu.php:459
1855
+ msgid "wp-config.php file was updated successfully!"
1856
+ msgstr "wp-config.php 파일이 성공적으로 업데이트되었습니다!"
1857
+
1858
+ # @ all-in-one-wp-security-and-firewall
1859
+ #: admin/wp-security-database-menu.php:462
1860
+ #, php-format
1861
+ msgid ""
1862
+ "The \"wp-config.php\" file was not able to be modified. Please modify this "
1863
+ "file manually using your favourite editor and search \n"
1864
+ " for variable \"$table_prefix\" and assign the following "
1865
+ "value to that variable: %s"
1866
+ msgstr ""
1867
+ "\"wp-config.php\" 파일을 수정할 수 없습니다. 즐겨찾기 편집기 및 검색을 사용하"
1868
+ "여 이 파일을 수동으로 수정하십시오. \n"
1869
+ " 변수 \"$table_접두사\"에 대해 다음 값을 해당 변수에 할당"
1870
+ "합니다: %s"
1871
+
1872
+ #: admin/wp-security-database-menu.php:474
1873
+ #: admin/wp-security-database-menu.php:493
1874
+ #, php-format
1875
+ msgid "Update of table %s failed: unable to change %s to %s"
1876
+ msgstr "테이블 %s 업데이트 실패: %s를 %s로 변경할 수 없음"
1877
+
1878
+ # @ all-in-one-wp-security-and-firewall
1879
+ #: admin/wp-security-database-menu.php:478
1880
+ msgid ""
1881
+ "The options table records which had references to the old DB prefix were "
1882
+ "updated successfully!"
1883
+ msgstr ""
1884
+ "이전 DB 접두사에 대한 참조가 있는 옵션 테이블 레코드가 성공적으로 업데이트되"
1885
+ "었습니다!"
1886
+
1887
+ #: admin/wp-security-database-menu.php:497
1888
+ #, php-format
1889
+ msgid ""
1890
+ "The %s table records which had references to the old DB prefix were updated "
1891
+ "successfully!"
1892
+ msgstr ""
1893
+ "이전 DB 접두사에 대한 참조가 있는 %s 테이블 레코드가 성공적으로 업데이트되었"
1894
+ "습니다!"
1895
+
1896
+ # @ all-in-one-wp-security-and-firewall
1897
+ #: admin/wp-security-database-menu.php:525
1898
+ #, php-format
1899
+ msgid ""
1900
+ "Error updating user_meta table where new meta_key = %s, old meta_key = %s "
1901
+ "and user_id = %s."
1902
+ msgstr ""
1903
+ "새 meta_key = %s, 이전 meta_key = %s 및 user_id = %s가 있는 user_meta 테이블"
1904
+ "을 업데이트하는 오류입니다."
1905
+
1906
+ # @ all-in-one-wp-security-and-firewall
1907
+ #: admin/wp-security-database-menu.php:530
1908
+ msgid ""
1909
+ "The usermeta table records which had references to the old DB prefix were "
1910
+ "updated successfully!"
1911
+ msgstr ""
1912
+ "이전 DB 접두사에 대한 참조가 있는 사용자메타 테이블 레코드가 성공적으로 업데"
1913
+ "이트되었습니다!"
1914
+
1915
+ # @ all-in-one-wp-security-and-firewall
1916
+ #: admin/wp-security-database-menu.php:532
1917
+ msgid "DB prefix change tasks have been completed."
1918
+ msgstr "DB 접두사 변경 작업이 완료되었습니다."
1919
+
1920
+ #: admin/wp-security-database-menu.php:575
1921
+ msgid "Checking for MySQL tables of type \"view\"....."
1922
+ msgstr "유형 \"보기\"의 MySQL 테이블을 확인합니다.."
1923
+
1924
+ #: admin/wp-security-database-menu.php:592
1925
+ #, php-format
1926
+ msgid "Update of the following MySQL view definition failed: %s"
1927
+ msgstr "다음 MySQL 보기 정의 업데이트 실패: %s"
1928
+
1929
+ #: admin/wp-security-database-menu.php:599
1930
+ #, php-format
1931
+ msgid "%s view definitions were updated successfully!"
1932
+ msgstr "%s 보기 정의가 성공적으로 업데이트되었습니다!"
1933
+
1934
+ #: admin/wp-security-filescan-menu.php:23
1935
+ #: classes/grade-system/wp-security-feature-item-manager.php:108
1936
+ msgid "File Change Detection"
1937
+ msgstr "파일 변경 감지"
1938
+
1939
+ #: admin/wp-security-filescan-menu.php:24
1940
+ msgid "Malware Scan"
1941
+ msgstr "악성 코드 검사"
1942
+
1943
+ #: admin/wp-security-filescan-menu.php:93
1944
+ msgid "There have been no file changes since the last scan."
1945
+ msgstr "마지막 검사 이후 파일 변경 사항이 없습니다."
1946
+
1947
+ # @ all-in-one-wp-security-and-firewall
1948
+ #: admin/wp-security-filescan-menu.php:103
1949
+ msgid "Nonce check failed for manual file change detection scan operation!"
1950
+ msgstr "Nonce 확인 수동 파일 변경 감지 검사 작업에 대 한 실패!"
1951
+
1952
+ # @ all-in-one-wp-security-and-firewall
1953
+ #: admin/wp-security-filescan-menu.php:110
1954
+ msgid ""
1955
+ "The plugin has detected that this is your first file change detection scan. "
1956
+ "The file details from this scan will be used to detect file changes for "
1957
+ "future scans!"
1958
+ msgstr ""
1959
+ "플러그인이 첫 번째 파일 변경 감지 검사임을 감지했습니다. 이 검사의 파일 세부 "
1960
+ "정보는 향후 검사에 대한 파일 변경 내용을 감지하는 데 사용됩니다!"
1961
+
1962
+ #: admin/wp-security-filescan-menu.php:112
1963
+ msgid "Scan Complete - There were no file changes detected!"
1964
+ msgstr "검사 완료 - 파일 변경 사항이 검색되지 않았습니다!"
1965
+
1966
+ #: admin/wp-security-filescan-menu.php:167
1967
+ msgid ""
1968
+ "The following address was removed because it is not a valid email address: "
1969
+ msgstr "유효한 이메일 주소가 아니므로 다음 주소가 삭제되었습니다."
1970
+
1971
+ # @ all-in-one-wp-security-and-firewall
1972
+ #: admin/wp-security-filescan-menu.php:207
1973
+ msgid ""
1974
+ "NEW SCAN COMPLETED: The plugin has detected that you have made changes to "
1975
+ "the \"File Types To Ignore\" or \"Files To Ignore\" fields.\n"
1976
+ " In order to ensure that future scan results are "
1977
+ "accurate, the old scan data has been refreshed."
1978
+ msgstr ""
1979
+ "새로운 스캔 완료: 플러그인은 \"무시할 파일 유형\" 또는 \"무시할 파일\" 필드"
1980
+ "를 변경한 것을 감지했습니다.\n"
1981
+ " 향후 검사 결과가 정확한지 확인하기 위해 이전 검사 데이터"
1982
+ "가 새로 고쳐졌습니다."
1983
+
1984
+ # @ all-in-one-wp-security-and-firewall
1985
+ #: admin/wp-security-filescan-menu.php:217
1986
+ msgid ""
1987
+ "All In One WP Security & Firewall has detected that there was a change in "
1988
+ "your host's files."
1989
+ msgstr ""
1990
+ "모든 하나의 WP 보안 및 방화벽은 호스트의 파일에 변경이 있음을 감지했습니다."
1991
+
1992
+ # @ all-in-one-wp-security-and-firewall
1993
+ #: admin/wp-security-filescan-menu.php:219
1994
+ msgid "View Scan Details & Clear This Message"
1995
+ msgstr "스캔 세부 정보 보기 및 이 메시지 지우기"
1996
+
1997
+ # @ all-in-one-wp-security-and-firewall
1998
+ #: admin/wp-security-filescan-menu.php:228
1999
+ msgid ""
2000
+ "If given an opportunity hackers can insert their code or files into your "
2001
+ "system which they can then use to carry out malicious acts on your site."
2002
+ msgstr ""
2003
+ "기회가 주어진 경우 해커는 자신의 코드 또는 파일을 시스템에 삽입할 수 있으며, "
2004
+ "이 파일을 시스템에 삽입하여 사이트에서 악의적인 행위를 수행하는 데 사용할 수 "
2005
+ "있습니다."
2006
+
2007
+ # @ all-in-one-wp-security-and-firewall
2008
+ #: admin/wp-security-filescan-menu.php:229
2009
+ msgid ""
2010
+ "Being informed of any changes in your files can be a good way to quickly "
2011
+ "prevent a hacker from causing damage to your website."
2012
+ msgstr ""
2013
+ "파일의 변경 사항을 알리는 것은 해커가 웹 사이트에 손상을 입히는 것을 신속하"
2014
+ "게 방지하는 좋은 방법이 될 수 있습니다."
2015
+
2016
+ # @ all-in-one-wp-security-and-firewall
2017
+ #: admin/wp-security-filescan-menu.php:230
2018
+ msgid ""
2019
+ "In general, WordPress core and plugin files and file types such as \".php\" "
2020
+ "or \".js\" should not change often and when they do, it is important that "
2021
+ "you are made aware when a change occurs and which file was affected."
2022
+ msgstr ""
2023
+ "일반적으로 워드 프레스 코어 및 플러그인 파일 및 \".php\" 또는 \".js\"와 같은 "
2024
+ "파일 유형은 자주 변경되지 않아야하며, 그렇게 할 때 변경이 발생하고 어떤 파일"
2025
+ "이 영향을 받은 지 알 수 있어야 합니다."
2026
+
2027
+ # @ all-in-one-wp-security-and-firewall
2028
+ #: admin/wp-security-filescan-menu.php:231
2029
+ msgid ""
2030
+ "The \"File Change Detection Feature\" will notify you of any file change "
2031
+ "which occurs on your system, including the addition and deletion of files by "
2032
+ "performing a regular automated or manual scan of your system's files."
2033
+ msgstr ""
2034
+ "\"파일 변경 감지 기능\"은 시스템 파일의 정기적인 자동 또는 수동 스캔을 수행하"
2035
+ "여 파일의 추가 및 삭제를 포함하여 시스템에서 발생하는 파일 변경 사항을 알려줍"
2036
+ "니다."
2037
+
2038
+ # @ all-in-one-wp-security-and-firewall
2039
+ #: admin/wp-security-filescan-menu.php:232
2040
+ msgid ""
2041
+ "This feature also allows you to exclude certain files or folders from the "
2042
+ "scan in cases where you know that they change often as part of their normal "
2043
+ "operation. (For example log files and certain caching plugin files may "
2044
+ "change often and hence you may choose to exclude such files from the file "
2045
+ "change detection scan)"
2046
+ msgstr ""
2047
+ "또한 이 기능을 사용하면 정규 작업의 일부로 자주 변경되는 경우 특정 파일 이나 "
2048
+ "폴더를 검색에서 제외할 수 있습니다. (예를 들어 로그 파일 및 특정 캐싱 플러그"
2049
+ "인 파일은 자주 변경될 수 있으므로 파일 변경 검색에서 이러한 파일을 제외하도"
2050
+ "록 선택할 수 있습니다.)"
2051
+
2052
+ # @ all-in-one-wp-security-and-firewall
2053
+ #: admin/wp-security-filescan-menu.php:237
2054
+ msgid "Manual File Change Detection Scan"
2055
+ msgstr "수동 파일 변경 감지 스캔"
2056
+
2057
+ # @ all-in-one-wp-security-and-firewall
2058
+ #: admin/wp-security-filescan-menu.php:243
2059
+ msgid ""
2060
+ "To perform a manual file change detection scan click on the button below."
2061
+ msgstr "수동 파일 변경 검색 스캔을 수행하려면 아래 버튼을 클릭하십시오."
2062
+
2063
+ # @ all-in-one-wp-security-and-firewall
2064
+ #: admin/wp-security-filescan-menu.php:246
2065
+ msgid "Perform Scan Now"
2066
+ msgstr "지금 검사 수행"
2067
+
2068
+ #: admin/wp-security-filescan-menu.php:250
2069
+ msgid "View Last Saved File Change Results"
2070
+ msgstr "마지막으로 저장된 파일 변경 결과 보기"
2071
+
2072
+ #: admin/wp-security-filescan-menu.php:256
2073
+ msgid ""
2074
+ "Click the button below to view the saved file change results from the last "
2075
+ "scan."
2076
+ msgstr "아래 버튼을 클릭하여 마지막 검사에서 저장된 파일 변경 결과를 봅니다."
2077
+
2078
+ #: admin/wp-security-filescan-menu.php:259
2079
+ msgid "View Last File Change"
2080
+ msgstr "마지막 파일 변경 보기"
2081
+
2082
+ #: admin/wp-security-filescan-menu.php:263
2083
+ msgid "File Change Detection Settings"
2084
+ msgstr "파일 변경 검색 설정"
2085
+
2086
+ # @ all-in-one-wp-security-and-firewall
2087
+ #: admin/wp-security-filescan-menu.php:275
2088
+ msgid "Enable Automated File Change Detection Scan"
2089
+ msgstr "자동 파일 변경 감지 검색 활성화"
2090
+
2091
+ # @ all-in-one-wp-security-and-firewall
2092
+ #: admin/wp-security-filescan-menu.php:278
2093
+ msgid ""
2094
+ "Check this if you want the system to automatically/periodically scan your "
2095
+ "files to check for file changes based on the settings below"
2096
+ msgstr ""
2097
+ "시스템이 파일을 자동으로/주기적으로 스캔하여 아래 설정에 따라 파일 변경 사항"
2098
+ "을 확인하려면 이 방법을 확인합니다."
2099
+
2100
+ # @ all-in-one-wp-security-and-firewall
2101
+ #: admin/wp-security-filescan-menu.php:282
2102
+ msgid "Scan Time Interval"
2103
+ msgstr "스캔 시간 간격"
2104
+
2105
+ # @ all-in-one-wp-security-and-firewall
2106
+ #: admin/wp-security-filescan-menu.php:289
2107
+ msgid "Set the value for how often you would like a scan to occur"
2108
+ msgstr "검사를 수행하려는 빈도에 대한 값을 설정합니다."
2109
+
2110
+ # @ all-in-one-wp-security-and-firewall
2111
+ #: admin/wp-security-filescan-menu.php:293
2112
+ msgid "File Types To Ignore"
2113
+ msgstr "무시할 파일 유형"
2114
+
2115
+ # @ all-in-one-wp-security-and-firewall
2116
+ #: admin/wp-security-filescan-menu.php:296
2117
+ msgid ""
2118
+ "Enter each file type or extension on a new line which you wish to exclude "
2119
+ "from the file change detection scan."
2120
+ msgstr ""
2121
+ "파일 변경 검색검색에서 제외하려는 새 줄에 각 파일 유형 또는 확장을 입력합니"
2122
+ "다."
2123
+
2124
+ # @ all-in-one-wp-security-and-firewall
2125
+ #: admin/wp-security-filescan-menu.php:300
2126
+ msgid ""
2127
+ "You can exclude file types from the scan which would not normally pose any "
2128
+ "security threat if they were changed. These can include things such as image "
2129
+ "files."
2130
+ msgstr ""
2131
+ "일반적으로 보안 위협이 변경되지 않는 검색에서 파일 형식을 제외할 수 있습니"
2132
+ "다. 여기에는 이미지 파일과 같은 것들이 포함될 수 있습니다."
2133
+
2134
+ # @ all-in-one-wp-security-and-firewall
2135
+ #: admin/wp-security-filescan-menu.php:301
2136
+ msgid ""
2137
+ "Example: If you want the scanner to ignore files of type jpg, png, and bmp, "
2138
+ "then you would enter the following:"
2139
+ msgstr ""
2140
+ "예: 스캐너가 jpg, png 및 bmp 유형 의 파일을 무시하려면 다음을 입력합니다."
2141
+
2142
+ # @ all-in-one-wp-security-and-firewall
2143
+ #: admin/wp-security-filescan-menu.php:302
2144
+ msgid "jpg"
2145
+ msgstr ""
2146
+
2147
+ # @ all-in-one-wp-security-and-firewall
2148
+ #: admin/wp-security-filescan-menu.php:303
2149
+ msgid "png"
2150
+ msgstr ""
2151
+
2152
+ # @ all-in-one-wp-security-and-firewall
2153
+ #: admin/wp-security-filescan-menu.php:304
2154
+ msgid "bmp"
2155
+ msgstr ""
2156
+
2157
+ # @ all-in-one-wp-security-and-firewall
2158
+ #: admin/wp-security-filescan-menu.php:310
2159
+ msgid "Files/Directories To Ignore"
2160
+ msgstr "무시할 파일/디렉터리"
2161
+
2162
+ # @ all-in-one-wp-security-and-firewall
2163
+ #: admin/wp-security-filescan-menu.php:313
2164
+ msgid ""
2165
+ "Enter each file or directory on a new line which you wish to exclude from "
2166
+ "the file change detection scan."
2167
+ msgstr ""
2168
+ "파일 변경 검색 검색에서 제외하려는 새 줄에 각 파일 또는 디렉터리를 입력합니"
2169
+ "다."
2170
+
2171
+ # @ all-in-one-wp-security-and-firewall
2172
+ #: admin/wp-security-filescan-menu.php:317
2173
+ msgid ""
2174
+ "You can exclude specific files/directories from the scan which would not "
2175
+ "normally pose any security threat if they were changed. These can include "
2176
+ "things such as log files."
2177
+ msgstr ""
2178
+ "특정 파일/디렉터리가 변경된 경우 일반적으로 보안 위협을 제기하지 않는 검색에"
2179
+ "서 제외할 수 있습니다. 여기에는 로그 파일과 같은 것들이 포함될 수 있습니다."
2180
+
2181
+ # @ all-in-one-wp-security-and-firewall
2182
+ #: admin/wp-security-filescan-menu.php:318
2183
+ msgid ""
2184
+ "Example: If you want the scanner to ignore certain files in different "
2185
+ "directories or whole directories, then you would enter the following:"
2186
+ msgstr ""
2187
+ "예: 스캐너가 다른 디렉터리 또는 전체 디렉터리의 특정 파일을 무시하려면 다음"
2188
+ "을 입력합니다."
2189
+
2190
+ # @ all-in-one-wp-security-and-firewall
2191
+ #: admin/wp-security-filescan-menu.php:319
2192
+ msgid "cache/config/master.php"
2193
+ msgstr ""
2194
+
2195
+ # @ all-in-one-wp-security-and-firewall
2196
+ #: admin/wp-security-filescan-menu.php:320
2197
+ msgid "somedirectory"
2198
+ msgstr "일부 디렉터리"
2199
+
2200
+ # @ all-in-one-wp-security-and-firewall
2201
+ #: admin/wp-security-filescan-menu.php:326
2202
+ msgid "Send Email When Change Detected"
2203
+ msgstr "변경이 감지되면 이메일 보내기"
2204
+
2205
+ # @ all-in-one-wp-security-and-firewall
2206
+ #: admin/wp-security-filescan-menu.php:329
2207
+ msgid ""
2208
+ "Check this if you want the system to email you if a file change was detected"
2209
+ msgstr ""
2210
+ "파일 변경이 감지된 경우 시스템에서 이메일을 보내려면 이 방법을 확인합니다."
2211
+
2212
+ #: admin/wp-security-filescan-menu.php:333
2213
+ msgid "Enter one or more email addresses on a new line."
2214
+ msgstr "새 줄에 하나 이상의 이메일 주소를 입력합니다."
2215
+
2216
+ #: admin/wp-security-filescan-menu.php:349
2217
+ msgid "What is Malware?"
2218
+ msgstr "악성 코드란 무엇입니까?"
2219
+
2220
+ #: admin/wp-security-filescan-menu.php:350
2221
+ msgid ""
2222
+ "The word Malware stands for Malicious Software. It can consist of things "
2223
+ "like trojan horses, adware, worms, spyware and any other undesirable code "
2224
+ "which a hacker will try to inject into your website."
2225
+ msgstr ""
2226
+ "악성 코드라는 단어는 악성 소프트웨어를 의미합니다. 그것은 트로이 목마 같은 "
2227
+ "것 들 구성될 수 있습니다., 애드웨어, 웜, 스파이웨어 및 해커 웹사이트에 주입 "
2228
+ "하려고 합니다 다른 바람직하지 않은 코드."
2229
+
2230
+ #: admin/wp-security-filescan-menu.php:351
2231
+ msgid ""
2232
+ "Often when malware code has been inserted into your site you will normally "
2233
+ "not notice anything out of the ordinary based on appearances, but it can "
2234
+ "have a dramatic effect on your site's search ranking."
2235
+ msgstr ""
2236
+ "종종 악성 코드는 사이트에 삽입 된 경우 당신은 일반적으로 외모에 따라 일반 아"
2237
+ "무것도 통지하지 않습니다, 하지만 사이트의 검색 순위에 극적인 영향을 미칠 수 "
2238
+ "있습니다."
2239
+
2240
+ #: admin/wp-security-filescan-menu.php:352
2241
+ msgid ""
2242
+ "This is because the bots and spiders from search engines such as Google have "
2243
+ "the capability to detect malware when they are indexing the pages on your "
2244
+ "site, and consequently they can blacklist your website which will in turn "
2245
+ "affect your search rankings."
2246
+ msgstr ""
2247
+ "Google과 같은 검색 엔진의 봇과 거미는 사이트의 페이지를 인덱싱할 때 맬웨어를 "
2248
+ "탐지할 수 있으며, 따라서 웹 사이트를 블랙리스트에 표시하여 검색 순위에 영향"
2249
+ "을 줄 수 있기 때문입니다."
2250
+
2251
+ #: admin/wp-security-filescan-menu.php:356
2252
+ msgid "Scanning For Malware"
2253
+ msgstr "악성 코드 검사중"
2254
+
2255
+ #: admin/wp-security-filescan-menu.php:357
2256
+ msgid ""
2257
+ "Due to the constantly changing and complex nature of Malware, scanning for "
2258
+ "such things using a standalone plugin will not work reliably. This is "
2259
+ "something best done via an external scan of your site regularly."
2260
+ msgstr ""
2261
+ "악성 코드는 끊임없이 변화하고 복잡한 특성으로 인해 독립 형 플러그인을 사용하"
2262
+ "여 이러한 것들을 검사하는 것은 안정적으로 작동하지 않습니다. 이것은 정기적으"
2263
+ "로 사이트의 외부 검사를 통해 수행 하는 것이 가장 좋습니다."
2264
+
2265
+ #: admin/wp-security-filescan-menu.php:358
2266
+ msgid ""
2267
+ "This is why we have created an easy-to-use scanning service which is hosted "
2268
+ "off our own server which will scan your site for malware once every day and "
2269
+ "notify you if it finds anything."
2270
+ msgstr ""
2271
+ "이 때문에 우리는 매일 한 번 악성 코드에 대한 사이트를 스캔하고 아무것도 발견"
2272
+ "하면 알려 우리의 자신의 서버에서 호스팅되는 사용하기 쉬운 스캔 서비스를 만들"
2273
+ "었습니다."
2274
+
2275
+ #: admin/wp-security-filescan-menu.php:359
2276
+ msgid "When you sign up for this service you will get the following:"
2277
+ msgstr "이 서비스에 가입하면 다음을 얻을 수 있습니다."
2278
+
2279
+ #: admin/wp-security-filescan-menu.php:361
2280
+ msgid "Automatic Daily Scan of 1 Website"
2281
+ msgstr "1 웹 사이트의 자동 일일 검사"
2282
+
2283
+ #: admin/wp-security-filescan-menu.php:362
2284
+ msgid "Automatic Malware & Blacklist Monitoring"
2285
+ msgstr "자동 악성 코드 및 블랙리스트 모니터링"
2286
+
2287
+ #: admin/wp-security-filescan-menu.php:363
2288
+ msgid "Automatic Email Alerting"
2289
+ msgstr "자동 이메일 경고"
2290
+
2291
+ #: admin/wp-security-filescan-menu.php:364
2292
+ msgid "Site uptime monitoring"
2293
+ msgstr "사이트 가동 시간 모니터링"
2294
+
2295
+ #: admin/wp-security-filescan-menu.php:365
2296
+ msgid "Site response time monitoring"
2297
+ msgstr "현장 대응 시간 모니터링"
2298
+
2299
+ #: admin/wp-security-filescan-menu.php:366
2300
+ msgid "We provide advice for malware cleanup"
2301
+ msgstr "우리는 악성 코드 정리에 대한 조언을 제공합니다"
2302
+
2303
+ #: admin/wp-security-filescan-menu.php:367
2304
+ msgid "Blacklist Removal"
2305
+ msgstr "블랙리스트 제거"
2306
+
2307
+ #: admin/wp-security-filescan-menu.php:368
2308
+ msgid "No Contract (Cancel Anytime)"
2309
+ msgstr ""
2310
+
2311
+ #: admin/wp-security-filescan-menu.php:370
2312
+ #, php-format
2313
+ msgid "To learn more please %s."
2314
+ msgstr "자세한 내용은 %s를 참조하십시오."
2315
+
2316
+ # @ all-in-one-wp-security-and-firewall
2317
+ #: admin/wp-security-filescan-menu.php:390
2318
+ msgid "Latest File Change Scan Results"
2319
+ msgstr "최신 파일 변경 검사 결과"
2320
+
2321
+ # @ all-in-one-wp-security-and-firewall
2322
+ #: admin/wp-security-filescan-menu.php:399
2323
+ msgid "The following files were added to your host."
2324
+ msgstr "호스트에 다음 파일이 추가되었습니다."
2325
+
2326
+ # @ all-in-one-wp-security-and-firewall
2327
+ #: admin/wp-security-filescan-menu.php:402
2328
+ #: admin/wp-security-filescan-menu.php:423
2329
+ #: admin/wp-security-filescan-menu.php:447
2330
+ #: admin/wp-security-settings-menu.php:27
2331
+ #: admin/wp-security-settings-menu.php:28
2332
+ msgid "File"
2333
+ msgstr ""
2334
+
2335
+ # @ all-in-one-wp-security-and-firewall
2336
+ #: admin/wp-security-filescan-menu.php:403
2337
+ #: admin/wp-security-filescan-menu.php:424
2338
+ #: admin/wp-security-filescan-menu.php:448
2339
+ msgid "File Size"
2340
+ msgstr ""
2341
+
2342
+ # @ all-in-one-wp-security-and-firewall
2343
+ #: admin/wp-security-filescan-menu.php:404
2344
+ #: admin/wp-security-filescan-menu.php:425
2345
+ #: admin/wp-security-filescan-menu.php:449
2346
+ msgid "File Modified"
2347
+ msgstr ""
2348
+
2349
+ # @ all-in-one-wp-security-and-firewall
2350
+ #: admin/wp-security-filescan-menu.php:420
2351
+ msgid "The following files were removed from your host."
2352
+ msgstr ""
2353
+
2354
+ # @ all-in-one-wp-security-and-firewall
2355
+ #: admin/wp-security-filescan-menu.php:444
2356
+ msgid "The following files were changed on your host."
2357
+ msgstr ""
2358
+
2359
+ #: admin/wp-security-filesystem-menu.php:26
2360
+ #: classes/grade-system/wp-security-feature-item-manager.php:67
2361
+ msgid "File Permissions"
2362
+ msgstr "파일 사용 권한"
2363
+
2364
+ #: admin/wp-security-filesystem-menu.php:27
2365
+ msgid "PHP File Editing"
2366
+ msgstr "PHP 파일 편집"
2367
+
2368
+ #: admin/wp-security-filesystem-menu.php:28
2369
+ msgid "WP File Access"
2370
+ msgstr "WP 파일 액세스"
2371
+
2372
+ #: admin/wp-security-filesystem-menu.php:29
2373
+ msgid "Host System Logs"
2374
+ msgstr "호스트 시스템 로그"
2375
+
2376
+ # @ all-in-one-wp-security-and-firewall
2377
+ #: admin/wp-security-filesystem-menu.php:97
2378
+ #, php-format
2379
+ msgid "The permissions for %s were succesfully changed to %s"
2380
+ msgstr "%s에 대한 사용 권한은 %s로 성공적으로 변경되었습니다."
2381
+
2382
+ # @ all-in-one-wp-security-and-firewall
2383
+ #: admin/wp-security-filesystem-menu.php:101
2384
+ #, php-format
2385
+ msgid "Unable to change permissions for %s!"
2386
+ msgstr "%s에 대한 권한을 변경할 수 없습니다!"
2387
+
2388
+ # @ all-in-one-wp-security-and-firewall
2389
+ #: admin/wp-security-filesystem-menu.php:107
2390
+ msgid "File Permissions Scan"
2391
+ msgstr "파일 권한 검사"
2392
+
2393
+ # @ all-in-one-wp-security-and-firewall
2394
+ #: admin/wp-security-filesystem-menu.php:110
2395
+ msgid ""
2396
+ "Your WordPress file and folder permission settings govern the accessability "
2397
+ "and read/write privileges of the files and folders which make up your WP "
2398
+ "installation."
2399
+ msgstr ""
2400
+ "워드 프레스 파일 및 폴더 권한 설정은 액세스 가능성을 제어하고 WP 설치를 구성"
2401
+ "하는 파일 및 폴더의 권한을 읽고 작성합니다."
2402
+
2403
+ # @ all-in-one-wp-security-and-firewall
2404
+ #: admin/wp-security-filesystem-menu.php:111
2405
+ msgid ""
2406
+ "Your WP installation already comes with reasonably secure file permission "
2407
+ "settings for the filesystem."
2408
+ msgstr ""
2409
+ "WP 설치에는 파일 시스템에 대한 합리적으로 안전한 파일 권한 설정이 이미 함께 "
2410
+ "제공됩니다."
2411
+
2412
+ # @ all-in-one-wp-security-and-firewall
2413
+ #: admin/wp-security-filesystem-menu.php:112
2414
+ msgid ""
2415
+ "However, sometimes people or other plugins modify the various permission "
2416
+ "settings of certain core WP folders or files such that they end up making "
2417
+ "their site less secure because they chose the wrong permission values."
2418
+ msgstr ""
2419
+ "그러나 때로는 사람 또는 다른 플러그인이 잘못된 권한 값을 선택했기 때문에 사이"
2420
+ "트를 덜 안전하게 만들 수 있도록 특정 핵심 WP 폴더 또는 파일의 다양한 권한 설"
2421
+ "정을 수정합니다."
2422
+
2423
+ # @ all-in-one-wp-security-and-firewall
2424
+ #: admin/wp-security-filesystem-menu.php:113
2425
+ msgid ""
2426
+ "This feature will scan the critical WP core folders and files and will "
2427
+ "highlight any permission settings which are insecure."
2428
+ msgstr ""
2429
+ "이 기능은 중요한 WP 핵심 폴더와 파일을 스캔하고 안전하지 않은 모든 권한 설정"
2430
+ "을 강조 표시합니다."
2431
+
2432
+ # @ all-in-one-wp-security-and-firewall
2433
+ #: admin/wp-security-filesystem-menu.php:119
2434
+ msgid "WP Directory and File Permissions Scan Results"
2435
+ msgstr ""
2436
+
2437
+ # @ all-in-one-wp-security-and-firewall
2438
+ #: admin/wp-security-filesystem-menu.php:132
2439
+ #: admin/wp-security-filesystem-menu.php:151
2440
+ msgid "File/Folder"
2441
+ msgstr ""
2442
+
2443
+ # @ all-in-one-wp-security-and-firewall
2444
+ #: admin/wp-security-filesystem-menu.php:133
2445
+ #: admin/wp-security-filesystem-menu.php:152
2446
+ msgid "Current Permissions"
2447
+ msgstr ""
2448
+
2449
+ # @ all-in-one-wp-security-and-firewall
2450
+ #: admin/wp-security-filesystem-menu.php:134
2451
+ #: admin/wp-security-filesystem-menu.php:153
2452
+ msgid "Recommended Permissions"
2453
+ msgstr ""
2454
+
2455
+ # @ all-in-one-wp-security-and-firewall
2456
+ #: admin/wp-security-filesystem-menu.php:135
2457
+ #: admin/wp-security-filesystem-menu.php:154
2458
+ msgid "Recommended Action"
2459
+ msgstr ""
2460
+
2461
+ # @ all-in-one-wp-security-and-firewall
2462
+ #: admin/wp-security-filesystem-menu.php:192
2463
+ msgid "Your PHP file editing settings were saved successfully."
2464
+ msgstr ""
2465
+
2466
+ # @ all-in-one-wp-security-and-firewall
2467
+ #: admin/wp-security-filesystem-menu.php:196
2468
+ msgid ""
2469
+ "Operation failed! Unable to modify or make a backup of wp-config.php file!"
2470
+ msgstr ""
2471
+
2472
+ # @ all-in-one-wp-security-and-firewall
2473
+ #: admin/wp-security-filesystem-menu.php:209
2474
+ #: classes/grade-system/wp-security-feature-item-manager.php:69
2475
+ msgid "File Editing"
2476
+ msgstr ""
2477
+
2478
+ # @ all-in-one-wp-security-and-firewall
2479
+ #: admin/wp-security-filesystem-menu.php:212
2480
+ msgid ""
2481
+ "The Wordpress Dashboard by default allows administrators to edit PHP files, "
2482
+ "such as plugin and theme files."
2483
+ msgstr ""
2484
+
2485
+ # @ all-in-one-wp-security-and-firewall
2486
+ #: admin/wp-security-filesystem-menu.php:213
2487
+ msgid ""
2488
+ "This is often the first tool an attacker will use if able to login, since it "
2489
+ "allows code execution."
2490
+ msgstr ""
2491
+
2492
+ # @ all-in-one-wp-security-and-firewall
2493
+ #: admin/wp-security-filesystem-menu.php:214
2494
+ msgid ""
2495
+ "This feature will disable the ability for people to edit PHP files via the "
2496
+ "dashboard."
2497
+ msgstr ""
2498
+
2499
+ # @ all-in-one-wp-security-and-firewall
2500
+ #: admin/wp-security-filesystem-menu.php:220
2501
+ msgid "Disable PHP File Editing"
2502
+ msgstr ""
2503
+
2504
+ # @ all-in-one-wp-security-and-firewall
2505
+ #: admin/wp-security-filesystem-menu.php:232
2506
+ msgid "Disable Ability To Edit PHP Files"
2507
+ msgstr ""
2508
+
2509
+ # @ all-in-one-wp-security-and-firewall
2510
+ #: admin/wp-security-filesystem-menu.php:235
2511
+ msgid ""
2512
+ "Check this if you want to remove the ability for people to edit PHP files "
2513
+ "via the WP dashboard"
2514
+ msgstr ""
2515
+
2516
+ # @ all-in-one-wp-security-and-firewall
2517
+ #: admin/wp-security-filesystem-menu.php:279
2518
+ msgid ""
2519
+ "You have successfully saved the Prevent Access to Default WP Files "
2520
+ "configuration."
2521
+ msgstr ""
2522
+
2523
+ # @ all-in-one-wp-security-and-firewall
2524
+ #: admin/wp-security-filesystem-menu.php:288
2525
+ msgid "WordPress Files"
2526
+ msgstr ""
2527
+
2528
+ # @ all-in-one-wp-security-and-firewall
2529
+ #: admin/wp-security-filesystem-menu.php:291
2530
+ #, php-format
2531
+ msgid ""
2532
+ "This feature allows you to prevent access to files such as %s, %s and %s "
2533
+ "which are delivered with all WP installations."
2534
+ msgstr ""
2535
+
2536
+ # @ all-in-one-wp-security-and-firewall
2537
+ #: admin/wp-security-filesystem-menu.php:292
2538
+ msgid ""
2539
+ "By preventing access to these files you are hiding some key pieces of "
2540
+ "information (such as WordPress version info) from potential hackers."
2541
+ msgstr ""
2542
+
2543
+ # @ all-in-one-wp-security-and-firewall
2544
+ #: admin/wp-security-filesystem-menu.php:297
2545
+ msgid "Prevent Access to Default WP Files"
2546
+ msgstr ""
2547
+
2548
+ # @ all-in-one-wp-security-and-firewall
2549
+ #: admin/wp-security-filesystem-menu.php:308
2550
+ msgid "Prevent Access to WP Default Install Files"
2551
+ msgstr ""
2552
+
2553
+ # @ all-in-one-wp-security-and-firewall
2554
+ #: admin/wp-security-filesystem-menu.php:311
2555
+ msgid ""
2556
+ "Check this if you want to prevent access to readme.html, license.txt and wp-"
2557
+ "config-sample.php."
2558
+ msgstr ""
2559
+
2560
+ # @ all-in-one-wp-security-and-firewall
2561
+ #: admin/wp-security-filesystem-menu.php:315
2562
+ msgid "Save Setting"
2563
+ msgstr ""
2564
+
2565
+ # @ all-in-one-wp-security-and-firewall
2566
+ #: admin/wp-security-filesystem-menu.php:339
2567
+ msgid "System Logs"
2568
+ msgstr ""
2569
+
2570
+ # @ all-in-one-wp-security-and-firewall
2571
+ #: admin/wp-security-filesystem-menu.php:342
2572
+ msgid ""
2573
+ "Sometimes your hosting platform will produce error or warning logs in a file "
2574
+ "called \"error_log\"."
2575
+ msgstr ""
2576
+
2577
+ # @ all-in-one-wp-security-and-firewall
2578
+ #: admin/wp-security-filesystem-menu.php:343
2579
+ msgid ""
2580
+ "Depending on the nature and cause of the error or warning, your hosting "
2581
+ "server can create multiple instances of this file in numerous directory "
2582
+ "locations of your WordPress installation."
2583
+ msgstr ""
2584
+
2585
+ # @ all-in-one-wp-security-and-firewall
2586
+ #: admin/wp-security-filesystem-menu.php:344
2587
+ msgid ""
2588
+ "By occassionally viewing the contents of these logs files you can keep "
2589
+ "informed of any underlying problems on your system which you might need to "
2590
+ "address."
2591
+ msgstr ""
2592
+
2593
+ # @ all-in-one-wp-security-and-firewall
2594
+ #: admin/wp-security-filesystem-menu.php:350
2595
+ msgid "View System Logs"
2596
+ msgstr ""
2597
+
2598
+ #: admin/wp-security-filesystem-menu.php:355
2599
+ msgid "Enter System Log File Name"
2600
+ msgstr ""
2601
+
2602
+ #: admin/wp-security-filesystem-menu.php:357
2603
+ msgid "Enter your system log file name. (Defaults to error_log)"
2604
+ msgstr ""
2605
+
2606
+ # @ all-in-one-wp-security-and-firewall
2607
+ #: admin/wp-security-filesystem-menu.php:360
2608
+ msgid "View Latest System Logs"
2609
+ msgstr ""
2610
+
2611
+ # @ all-in-one-wp-security-and-firewall
2612
+ #: admin/wp-security-filesystem-menu.php:362
2613
+ msgid "Loading..."
2614
+ msgstr ""
2615
+
2616
+ # @ all-in-one-wp-security-and-firewall
2617
+ #: admin/wp-security-filesystem-menu.php:379
2618
+ msgid "No system logs were found!"
2619
+ msgstr ""
2620
+
2621
+ # @ all-in-one-wp-security-and-firewall
2622
+ #: admin/wp-security-filesystem-menu.php:432
2623
+ msgid "Set Recommended Permissions"
2624
+ msgstr ""
2625
+
2626
+ # @ all-in-one-wp-security-and-firewall
2627
+ #: admin/wp-security-filesystem-menu.php:438
2628
+ msgid "No Action Required"
2629
+ msgstr ""
2630
+
2631
+ # @ all-in-one-wp-security-and-firewall
2632
+ #: admin/wp-security-filesystem-menu.php:478
2633
+ #, php-format
2634
+ msgid "Showing latest entries of error_log file: %s"
2635
+ msgstr ""
2636
+
2637
+ #: admin/wp-security-firewall-menu.php:28
2638
+ msgid "Basic Firewall Rules"
2639
+ msgstr "기본 방화벽 규칙"
2640
+
2641
+ #: admin/wp-security-firewall-menu.php:29
2642
+ msgid "Additional Firewall Rules"
2643
+ msgstr "추가 방화벽 규칙"
2644
+
2645
+ #: admin/wp-security-firewall-menu.php:30
2646
+ msgid "6G Blacklist Firewall Rules"
2647
+ msgstr "6G 블랙리스트 방화벽 규칙"
2648
+
2649
+ #: admin/wp-security-firewall-menu.php:31
2650
+ msgid "Internet Bots"
2651
+ msgstr "인터넷 봇"
2652
+
2653
+ #: admin/wp-security-firewall-menu.php:32
2654
+ msgid "Prevent Hotlinks"
2655
+ msgstr "핫링크 방지"
2656
+
2657
+ #: admin/wp-security-firewall-menu.php:33
2658
+ msgid "404 Detection"
2659
+ msgstr "404 감지"
2660
+
2661
+ #: admin/wp-security-firewall-menu.php:34
2662
+ msgid "Custom Rules"
2663
+ msgstr "사용자 지정 규칙"
2664
+
2665
+ # @ all-in-one-wp-security-and-firewall
2666
+ #: admin/wp-security-firewall-menu.php:120
2667
+ #: admin/wp-security-firewall-menu.php:742 admin/wp-security-spam-menu.php:105
2668
+ #: admin/wp-security-spam-menu.php:448
2669
+ #: admin/wp-security-user-registration-menu.php:97
2670
+ msgid "Settings were successfully saved"
2671
+ msgstr "설정이 저장되었습니다"
2672
+
2673
+ # @ all-in-one-wp-security-and-firewall
2674
+ #: admin/wp-security-firewall-menu.php:129
2675
+ #: admin/wp-security-firewall-menu.php:563
2676
+ msgid "Firewall Settings"
2677
+ msgstr "방화벽 설정"
2678
+
2679
+ # @ all-in-one-wp-security-and-firewall
2680
+ #: admin/wp-security-firewall-menu.php:136
2681
+ #, php-format
2682
+ msgid ""
2683
+ "This should not have any impact on your site's general functionality but if "
2684
+ "you wish you can take a %s of your .htaccess file before proceeding."
2685
+ msgstr ""
2686
+
2687
+ # @ all-in-one-wp-security-and-firewall
2688
+ #: admin/wp-security-firewall-menu.php:137
2689
+ msgid ""
2690
+ "The features in this tab allow you to activate some basic firewall security "
2691
+ "protection rules for your site."
2692
+ msgstr ""
2693
+
2694
+ # @ all-in-one-wp-security-and-firewall
2695
+ #: admin/wp-security-firewall-menu.php:138
2696
+ msgid ""
2697
+ "The firewall functionality is achieved via the insertion of special code "
2698
+ "into your currently active .htaccess file."
2699
+ msgstr ""
2700
+
2701
+ #: admin/wp-security-firewall-menu.php:149
2702
+ msgid ""
2703
+ "Attention: You have enabled the \"Completely Block Access To XMLRPC\" "
2704
+ "checkbox which means all XMLRPC functionality will be blocked."
2705
+ msgstr ""
2706
+
2707
+ #: admin/wp-security-firewall-menu.php:150
2708
+ msgid ""
2709
+ "By leaving this feature enabled you will prevent Jetpack or Wordpress iOS or "
2710
+ "other apps which need XMLRPC from working correctly on your site."
2711
+ msgstr ""
2712
+
2713
+ #: admin/wp-security-firewall-menu.php:151
2714
+ msgid ""
2715
+ "If you still need XMLRPC then uncheck the \"Completely Block Access To XMLRPC"
2716
+ "\" checkbox and enable only the \"Disable Pingback Functionality From XMLRPC"
2717
+ "\" checkbox."
2718
+ msgstr ""
2719
+
2720
+ # @ all-in-one-wp-security-and-firewall
2721
+ #: admin/wp-security-firewall-menu.php:161
2722
+ msgid "Basic Firewall Settings"
2723
+ msgstr "기본 방화벽 설정"
2724
+
2725
+ # @ all-in-one-wp-security-and-firewall
2726
+ #: admin/wp-security-firewall-menu.php:169
2727
+ msgid "Enable Basic Firewall Protection"
2728
+ msgstr "기본 방화벽 보호 활성화"
2729
+
2730
+ # @ all-in-one-wp-security-and-firewall
2731
+ #: admin/wp-security-firewall-menu.php:172
2732
+ msgid "Check this if you want to apply basic firewall protection to your site."
2733
+ msgstr "사이트에 기본 방화벽 보호를 적용하려는 경우 이 방법을 확인합니다."
2734
+
2735
+ # @ all-in-one-wp-security-and-firewall
2736
+ #: admin/wp-security-firewall-menu.php:176
2737
+ msgid ""
2738
+ "This setting will implement the following basic firewall protection "
2739
+ "mechanisms on your site:"
2740
+ msgstr ""
2741
+ "이 설정은 사이트에서 다음과 같은 기본 방화벽 보호 메커니즘을 구현합니다."
2742
+
2743
+ # @ all-in-one-wp-security-and-firewall
2744
+ #: admin/wp-security-firewall-menu.php:177
2745
+ msgid "1) Protect your htaccess file by denying access to it."
2746
+ msgstr "1) 액세스 권한을 거부하여 htaccess 파일을 보호합니다."
2747
+
2748
+ # @ all-in-one-wp-security-and-firewall
2749
+ #: admin/wp-security-firewall-menu.php:178
2750
+ msgid "2) Disable the server signature."
2751
+ msgstr "2) 서버 서명을 사용하지 않도록 설정합니다."
2752
+
2753
+ # @ all-in-one-wp-security-and-firewall
2754
+ #: admin/wp-security-firewall-menu.php:179
2755
+ msgid "3) Limit file upload size (10MB)."
2756
+ msgstr "3) 파일 업로드 크기(10MB)를 제한합니다."
2757
+
2758
+ # @ all-in-one-wp-security-and-firewall
2759
+ #: admin/wp-security-firewall-menu.php:180
2760
+ msgid "4) Protect your wp-config.php file by denying access to it."
2761
+ msgstr "4) 그것에 대한 액세스를 거부하여 wp-config.php 파일을 보호합니다."
2762
+
2763
+ # @ all-in-one-wp-security-and-firewall
2764
+ #: admin/wp-security-firewall-menu.php:181
2765
+ msgid ""
2766
+ "The above firewall features will be applied via your .htaccess file and "
2767
+ "should not affect your site's overall functionality."
2768
+ msgstr ""
2769
+ "위의 방화벽 기능은 .htaccess 파일을 통해 적용되며 사이트의 전반적인 기능에영"
2770
+ "향을 미치지 않아야 합니다."
2771
+
2772
+ # @ all-in-one-wp-security-and-firewall
2773
+ #: admin/wp-security-firewall-menu.php:182
2774
+ msgid ""
2775
+ "You are still advised to take a backup of your active .htaccess file just in "
2776
+ "case."
2777
+ msgstr "활성 .htaccess 파일의 백업을 하는 것이 좋습니다."
2778
+
2779
+ #: admin/wp-security-firewall-menu.php:191
2780
+ msgid "WordPress XMLRPC & Pingback Vulnerability Protection"
2781
+ msgstr "워드 프레스 XMLRPC 및 핑백 취약점 보호"
2782
+
2783
+ #: admin/wp-security-firewall-menu.php:199
2784
+ msgid "Completely Block Access To XMLRPC"
2785
+ msgstr "XMLRPC에 대한 액세스를 완전히 차단합니다."
2786
+
2787
+ #: admin/wp-security-firewall-menu.php:202
2788
+ msgid ""
2789
+ "Check this if you are not using the WP XML-RPC functionality and you want to "
2790
+ "completely block external access to XMLRPC."
2791
+ msgstr ""
2792
+ "WP XML-RPC 기능을 사용하지 않고 XMLRPC에 대한 외부 액세스를 완전히 차단하려"
2793
+ "는 경우 이 기능을 확인합니다."
2794
+
2795
+ #: admin/wp-security-firewall-menu.php:206
2796
+ msgid ""
2797
+ "This setting will add a directive in your .htaccess to disable access to the "
2798
+ "WordPress xmlrpc.php file which is responsible for the XML-RPC functionality "
2799
+ "in WordPress."
2800
+ msgstr ""
2801
+ "이 설정은 워드 프레스의 XML-RPC 기능에 대한 책임이있는 워드 프레스 xmlrpc."
2802
+ "php 파일에 대한 액세스를 비활성화하려면 .htaccess에 지시문을 추가합니다."
2803
+
2804
+ #: admin/wp-security-firewall-menu.php:207
2805
+ msgid ""
2806
+ "Hackers can exploit various vulnerabilities in the WordPress XML-RPC API in "
2807
+ "a number of ways such as:"
2808
+ msgstr ""
2809
+ "해커는 다음과 같은 여러 가지 방법으로 워드 프레스 XML-RPC API의 다양한 취약점"
2810
+ "을 악용 할 수 있습니다."
2811
+
2812
+ # @ all-in-one-wp-security-and-firewall
2813
+ #: admin/wp-security-firewall-menu.php:208
2814
+ msgid "1) Denial of Service (DoS) attacks"
2815
+ msgstr "1) 서비스 거부(DoS) 공격"
2816
+
2817
+ # @ all-in-one-wp-security-and-firewall
2818
+ #: admin/wp-security-firewall-menu.php:209
2819
+ msgid "2) Hacking internal routers."
2820
+ msgstr "2) 해킹 내부 라우터."
2821
+
2822
+ # @ all-in-one-wp-security-and-firewall
2823
+ #: admin/wp-security-firewall-menu.php:210
2824
+ msgid "3) Scanning ports in internal networks to get info from various hosts."
2825
+ msgstr ""
2826
+ "3) 다양한 호스트로부터 정보를 얻기 위해 내부 네트워크에서 포트를 스캔합니다."
2827
+
2828
+ # @ all-in-one-wp-security-and-firewall
2829
+ #: admin/wp-security-firewall-menu.php:211
2830
+ msgid ""
2831
+ "Apart from the security protection benefit, this feature may also help "
2832
+ "reduce load on your server, particularly if your site currently has a lot of "
2833
+ "unwanted traffic hitting the XML-RPC API on your installation."
2834
+ msgstr ""
2835
+ "보안 보호 이점 외에도 이 기능은 특히 사이트에 현재 설치시 XML-RPC API에 영향"
2836
+ "을 미치는 원치 않는 트래픽이 많은 경우 서버의 부하를 줄이는 데 도움이 될 수 "
2837
+ "있습니다."
2838
+
2839
+ # @ all-in-one-wp-security-and-firewall
2840
+ #: admin/wp-security-firewall-menu.php:212
2841
+ msgid ""
2842
+ "NOTE: You should only enable this feature if you are not currently using the "
2843
+ "XML-RPC functionality on your WordPress installation."
2844
+ msgstr ""
2845
+ "참고: 현재 WordPress 설치에서 XML-RPC 기능을 사용하지 않는 경우에만 이 기능"
2846
+ "을 사용하도록 설정해야 합니다."
2847
+
2848
+ #: admin/wp-security-firewall-menu.php:213
2849
+ msgid ""
2850
+ "Leave this feature disabled and use the feature below if you want pingback "
2851
+ "protection but you still need XMLRPC."
2852
+ msgstr ""
2853
+ "이 기능을 사용하지 않도록 두고 pingback 보호를 원하지만 여전히 XMLRPC가 필요"
2854
+ "한 경우 아래 기능을 사용합니다."
2855
+
2856
+ #: admin/wp-security-firewall-menu.php:219
2857
+ msgid "Disable Pingback Functionality From XMLRPC"
2858
+ msgstr "XMLRPC에서 Pingback 기능 비활성화"
2859
+
2860
+ #: admin/wp-security-firewall-menu.php:222
2861
+ msgid ""
2862
+ "If you use Jetpack or WP iOS or other apps which need WP XML-RPC "
2863
+ "functionality then check this. This will enable protection against WordPress "
2864
+ "pingback vulnerabilities."
2865
+ msgstr ""
2866
+ "Jetpack 또는 WP iOS 또는 WP XML-RPC 기능이 필요한 기타 앱을 사용하는 경우 이 "
2867
+ "기능을 확인합니다. 이렇게 하면 워드프레스 핑백 취약점을 보호할 수 있습니다."
2868
+
2869
+ #: admin/wp-security-firewall-menu.php:226
2870
+ msgid ""
2871
+ "NOTE: If you use Jetpack or the Wordpress iOS or other apps then you should "
2872
+ "enable this feature but leave the \"Completely Block Access To XMLRPC\" "
2873
+ "checkbox unchecked."
2874
+ msgstr ""
2875
+ "참고: Jetpack 또는 워드프레스 iOS 또는 기타 앱을 사용하는 경우 이 기능을 사용"
2876
+ "하도록 설정하지만 \"XMLRPC에 대한 완전히 차단\" 확인란을 선택하지 않은 상태"
2877
+ "로 두어야 합니다."
2878
+
2879
+ #: admin/wp-security-firewall-menu.php:227
2880
+ msgid ""
2881
+ "The feature will still allow XMLRPC functionality on your site but will "
2882
+ "disable the pingback methods."
2883
+ msgstr ""
2884
+ "이 기능은 여전히 사이트에서 XMLRPC 기능을 허용하지만 pingback 메서드를 비활성"
2885
+ "화합니다."
2886
+
2887
+ #: admin/wp-security-firewall-menu.php:228
2888
+ msgid ""
2889
+ "This feature will also remove the \"X-Pingback\" header if it is present."
2890
+ msgstr "이 기능은 \"X-Pingback\" 헤더가 있는 경우에도 제거합니다."
2891
+
2892
+ #: admin/wp-security-firewall-menu.php:237
2893
+ #: classes/grade-system/wp-security-feature-item-manager.php:81
2894
+ msgid "Block Accesss to Debug Log File"
2895
+ msgstr "디버그 로그 파일에 대한 액세스 차단"
2896
+
2897
+ #: admin/wp-security-firewall-menu.php:245
2898
+ msgid "Block Access to debug.log File"
2899
+ msgstr "디버그.로그 파일에 대한 액세스 차단"
2900
+
2901
+ #: admin/wp-security-firewall-menu.php:248
2902
+ msgid ""
2903
+ "Check this if you want to block access to the debug.log file that WordPress "
2904
+ "creates when debug logging is enabled."
2905
+ msgstr ""
2906
+ "디버그 로깅을 사용할 때 워드프레스가 만드는 debug.log 파일에 대한 액세스를 차"
2907
+ "단하려면 이 옵션을 확인합니다."
2908
+
2909
+ #: admin/wp-security-firewall-menu.php:252
2910
+ msgid ""
2911
+ "WordPress has an option to turn on the debug logging to a file located in wp-"
2912
+ "content/debug.log. This file may contain sensitive information."
2913
+ msgstr ""
2914
+ "워드 프레스는 wp-content/debug.log에 있는 파일에 디버그 로깅을 켤 수 있는 옵"
2915
+ "션이 있습니다. 이 파일에는 중요한 정보가 포함될 수 있습니다."
2916
+
2917
+ #: admin/wp-security-firewall-menu.php:253
2918
+ msgid ""
2919
+ "Using this optoin will block external access to this file. You can still "
2920
+ "access this file by logging into your site via FTP"
2921
+ msgstr ""
2922
+ "이 검토인을 사용하면 이 파일에 대한 외부 액세스가 차단됩니다. FTP를 통해 사이"
2923
+ "트에 로그인하여 이 파일에 계속 액세스할 수 있습니다."
2924
+
2925
+ # @ all-in-one-wp-security-and-firewall
2926
+ #: admin/wp-security-firewall-menu.php:261
2927
+ msgid "Save Basic Firewall Settings"
2928
+ msgstr "기본 방화벽 설정 저장"
2929
+
2930
+ # @ all-in-one-wp-security-and-firewall
2931
+ #: admin/wp-security-firewall-menu.php:333
2932
+ msgid ""
2933
+ "You have successfully saved the Additional Firewall Protection configuration"
2934
+ msgstr "추가 방화벽 보호 구성을 성공적으로 저장했습니다."
2935
+
2936
+ # @ all-in-one-wp-security-and-firewall
2937
+ #: admin/wp-security-firewall-menu.php:347
2938
+ msgid "Additional Firewall Protection"
2939
+ msgstr "추가 방화벽 보호"
2940
+
2941
+ # @ all-in-one-wp-security-and-firewall
2942
+ #: admin/wp-security-firewall-menu.php:351
2943
+ #, php-format
2944
+ msgid ""
2945
+ "Due to the nature of the code being inserted to the .htaccess file, this "
2946
+ "feature may break some functionality for certain plugins and you are "
2947
+ "therefore advised to take a %s of .htaccess before applying this "
2948
+ "configuration."
2949
+ msgstr ""
2950
+
2951
+ # @ all-in-one-wp-security-and-firewall
2952
+ #: admin/wp-security-firewall-menu.php:353
2953
+ msgid ""
2954
+ "This feature allows you to activate more advanced firewall settings to your "
2955
+ "site."
2956
+ msgstr ""
2957
+
2958
+ # @ all-in-one-wp-security-and-firewall
2959
+ #: admin/wp-security-firewall-menu.php:354
2960
+ msgid ""
2961
+ "The advanced firewall rules are applied via the insertion of special code to "
2962
+ "your currently active .htaccess file."
2963
+ msgstr ""
2964
+
2965
+ # @ all-in-one-wp-security-and-firewall
2966
+ #: admin/wp-security-firewall-menu.php:363
2967
+ msgid "Listing of Directory Contents"
2968
+ msgstr ""
2969
+
2970
+ # @ all-in-one-wp-security-and-firewall
2971
+ #: admin/wp-security-firewall-menu.php:372
2972
+ #: classes/grade-system/wp-security-feature-item-manager.php:92
2973
+ msgid "Disable Index Views"
2974
+ msgstr ""
2975
+
2976
+ # @ all-in-one-wp-security-and-firewall
2977
+ #: admin/wp-security-firewall-menu.php:375
2978
+ msgid "Check this if you want to disable directory and file listing."
2979
+ msgstr ""
2980
+
2981
+ # @ all-in-one-wp-security-and-firewall
2982
+ #: admin/wp-security-firewall-menu.php:380
2983
+ msgid ""
2984
+ "By default, an Apache server will allow the listing of the contents of a "
2985
+ "directory if it doesn't contain an index.php file."
2986
+ msgstr ""
2987
+
2988
+ # @ all-in-one-wp-security-and-firewall
2989
+ #: admin/wp-security-firewall-menu.php:382
2990
+ msgid "This feature will prevent the listing of contents for all directories."
2991
+ msgstr ""
2992
+
2993
+ #: admin/wp-security-firewall-menu.php:384
2994
+ msgid ""
2995
+ "NOTE: In order for this feature to work \"AllowOverride\" of the Indexes "
2996
+ "directive must be enabled in your httpd.conf file. Ask your hosting provider "
2997
+ "to check this if you don't have access to httpd.conf"
2998
+ msgstr ""
2999
+
3000
+ # @ all-in-one-wp-security-and-firewall
3001
+ #: admin/wp-security-firewall-menu.php:393
3002
+ msgid "Trace and Track"
3003
+ msgstr ""
3004
+
3005
+ # @ all-in-one-wp-security-and-firewall
3006
+ #: admin/wp-security-firewall-menu.php:402
3007
+ #: classes/grade-system/wp-security-feature-item-manager.php:93
3008
+ msgid "Disable Trace and Track"
3009
+ msgstr ""
3010
+
3011
+ # @ all-in-one-wp-security-and-firewall
3012
+ #: admin/wp-security-firewall-menu.php:405
3013
+ msgid "Check this if you want to disable trace and track."
3014
+ msgstr ""
3015
+
3016
+ # @ all-in-one-wp-security-and-firewall
3017
+ #: admin/wp-security-firewall-menu.php:410
3018
+ msgid ""
3019
+ "HTTP Trace attack (XST) can be used to return header requests and grab "
3020
+ "cookies and other information."
3021
+ msgstr ""
3022
+
3023
+ # @ all-in-one-wp-security-and-firewall
3024
+ #: admin/wp-security-firewall-menu.php:412
3025
+ msgid ""
3026
+ "This hacking technique is usually used together with cross site scripting "
3027
+ "attacks (XSS)."
3028
+ msgstr ""
3029
+
3030
+ # @ all-in-one-wp-security-and-firewall
3031
+ #: admin/wp-security-firewall-menu.php:414
3032
+ msgid ""
3033
+ "Disabling trace and track on your site will help prevent HTTP Trace attacks."
3034
+ msgstr ""
3035
+
3036
+ # @ all-in-one-wp-security-and-firewall
3037
+ #: admin/wp-security-firewall-menu.php:423
3038
+ msgid "Proxy Comment Posting"
3039
+ msgstr ""
3040
+
3041
+ # @ all-in-one-wp-security-and-firewall
3042
+ #: admin/wp-security-firewall-menu.php:433
3043
+ msgid "Forbid Proxy Comment Posting"
3044
+ msgstr ""
3045
+
3046
+ # @ all-in-one-wp-security-and-firewall
3047
+ #: admin/wp-security-firewall-menu.php:436
3048
+ msgid "Check this if you want to forbid proxy comment posting."
3049
+ msgstr ""
3050
+
3051
+ # @ all-in-one-wp-security-and-firewall
3052
+ #: admin/wp-security-firewall-menu.php:441
3053
+ msgid ""
3054
+ "This setting will deny any requests that use a proxy server when posting "
3055
+ "comments."
3056
+ msgstr ""
3057
+
3058
+ # @ all-in-one-wp-security-and-firewall
3059
+ #: admin/wp-security-firewall-menu.php:442
3060
+ msgid ""
3061
+ "By forbidding proxy comments you are in effect eliminating some SPAM and "
3062
+ "other proxy requests."
3063
+ msgstr ""
3064
+
3065
+ # @ all-in-one-wp-security-and-firewall
3066
+ #: admin/wp-security-firewall-menu.php:451
3067
+ msgid "Bad Query Strings"
3068
+ msgstr ""
3069
+
3070
+ # @ all-in-one-wp-security-and-firewall
3071
+ #: admin/wp-security-firewall-menu.php:461
3072
+ msgid "Deny Bad Query Strings"
3073
+ msgstr ""
3074
+
3075
+ # @ all-in-one-wp-security-and-firewall
3076
+ #: admin/wp-security-firewall-menu.php:464
3077
+ msgid "This will help protect you against malicious queries via XSS."
3078
+ msgstr ""
3079
+
3080
+ # @ all-in-one-wp-security-and-firewall
3081
+ #: admin/wp-security-firewall-menu.php:469
3082
+ msgid ""
3083
+ "This feature will write rules in your .htaccess file to prevent malicious "
3084
+ "string attacks on your site using XSS."
3085
+ msgstr ""
3086
+
3087
+ # @ all-in-one-wp-security-and-firewall
3088
+ #: admin/wp-security-firewall-menu.php:470
3089
+ msgid ""
3090
+ "NOTE: Some of these strings might be used for plugins or themes and hence "
3091
+ "this might break some functionality."
3092
+ msgstr ""
3093
+
3094
+ # @ all-in-one-wp-security-and-firewall
3095
+ #: admin/wp-security-firewall-menu.php:471
3096
+ #: admin/wp-security-firewall-menu.php:501
3097
+ msgid ""
3098
+ "You are therefore strongly advised to take a backup of your active .htaccess "
3099
+ "file before applying this feature."
3100
+ msgstr ""
3101
+
3102
+ # @ all-in-one-wp-security-and-firewall
3103
+ #: admin/wp-security-firewall-menu.php:480
3104
+ #: classes/grade-system/wp-security-feature-item-manager.php:96
3105
+ msgid "Advanced Character String Filter"
3106
+ msgstr ""
3107
+
3108
+ # @ all-in-one-wp-security-and-firewall
3109
+ #: admin/wp-security-firewall-menu.php:490
3110
+ msgid "Enable Advanced Character String Filter"
3111
+ msgstr ""
3112
+
3113
+ # @ all-in-one-wp-security-and-firewall
3114
+ #: admin/wp-security-firewall-menu.php:493
3115
+ msgid "This will block bad character matches from XSS."
3116
+ msgstr ""
3117
+
3118
+ # @ all-in-one-wp-security-and-firewall
3119
+ #: admin/wp-security-firewall-menu.php:498
3120
+ msgid ""
3121
+ "This is an advanced character string filter to prevent malicious string "
3122
+ "attacks on your site coming from Cross Site Scripting (XSS)."
3123
+ msgstr ""
3124
+
3125
+ # @ all-in-one-wp-security-and-firewall
3126
+ #: admin/wp-security-firewall-menu.php:499
3127
+ msgid ""
3128
+ "This setting matches for common malicious string patterns and exploits and "
3129
+ "will produce a 403 error for the hacker attempting the query."
3130
+ msgstr ""
3131
+
3132
+ # @ all-in-one-wp-security-and-firewall
3133
+ #: admin/wp-security-firewall-menu.php:500
3134
+ msgid "NOTE: Some strings for this setting might break some functionality."
3135
+ msgstr ""
3136
+
3137
+ # @ all-in-one-wp-security-and-firewall
3138
+ #: admin/wp-security-firewall-menu.php:509
3139
+ msgid "Save Additional Firewall Settings"
3140
+ msgstr ""
3141
+
3142
+ #: admin/wp-security-firewall-menu.php:552
3143
+ msgid "You have successfully saved the 5G/6G Firewall Protection configuration"
3144
+ msgstr ""
3145
+
3146
+ #: admin/wp-security-firewall-menu.php:567
3147
+ #, php-format
3148
+ msgid ""
3149
+ "This feature allows you to activate the %s (or legacy %s) firewall security "
3150
+ "protection rules designed and produced by %s."
3151
+ msgstr ""
3152
+
3153
+ #: admin/wp-security-firewall-menu.php:568
3154
+ msgid ""
3155
+ "The 6G Blacklist is updated and improved version of 5G Blacklist. If you "
3156
+ "have 5G Blacklist active, you might consider activating 6G Blacklist instead."
3157
+ msgstr ""
3158
+
3159
+ #: admin/wp-security-firewall-menu.php:569
3160
+ msgid ""
3161
+ "The 6G Blacklist is a simple, flexible blacklist that helps reduce the "
3162
+ "number of malicious URL requests that hit your website."
3163
+ msgstr ""
3164
+
3165
+ #: admin/wp-security-firewall-menu.php:570
3166
+ msgid ""
3167
+ "The added advantage of applying the 6G firewall to your site is that it has "
3168
+ "been tested and confirmed by the people at PerishablePress.com to be an "
3169
+ "optimal and least disruptive set of .htaccess security rules for general WP "
3170
+ "sites running on an Apache server or similar."
3171
+ msgstr ""
3172
+
3173
+ #: admin/wp-security-firewall-menu.php:571
3174
+ #, php-format
3175
+ msgid ""
3176
+ "Therefore the 6G firewall rules should not have any impact on your site's "
3177
+ "general functionality but if you wish you can take a %s of your .htaccess "
3178
+ "file before proceeding."
3179
+ msgstr ""
3180
+
3181
+ #: admin/wp-security-firewall-menu.php:577
3182
+ msgid "6G Blacklist/Firewall Settings"
3183
+ msgstr ""
3184
+
3185
+ #: admin/wp-security-firewall-menu.php:589
3186
+ msgid "Enable 6G Firewall Protection"
3187
+ msgstr ""
3188
+
3189
+ #: admin/wp-security-firewall-menu.php:592
3190
+ msgid ""
3191
+ "Check this if you want to apply the 6G Blacklist firewall protection from "
3192
+ "perishablepress.com to your site."
3193
+ msgstr ""
3194
+
3195
+ #: admin/wp-security-firewall-menu.php:596
3196
+ msgid ""
3197
+ "This setting will implement the 6G security firewall protection mechanisms "
3198
+ "on your site which include the following things:"
3199
+ msgstr ""
3200
+
3201
+ # @ all-in-one-wp-security-and-firewall
3202
+ #: admin/wp-security-firewall-menu.php:597
3203
+ #: admin/wp-security-firewall-menu.php:615
3204
+ msgid "1) Block forbidden characters commonly used in exploitative attacks."
3205
+ msgstr ""
3206
+
3207
+ # @ all-in-one-wp-security-and-firewall
3208
+ #: admin/wp-security-firewall-menu.php:598
3209
+ #: admin/wp-security-firewall-menu.php:616
3210
+ msgid "2) Block malicious encoded URL characters such as the \".css(\" string."
3211
+ msgstr ""
3212
+
3213
+ # @ all-in-one-wp-security-and-firewall
3214
+ #: admin/wp-security-firewall-menu.php:599
3215
+ #: admin/wp-security-firewall-menu.php:617
3216
+ msgid ""
3217
+ "3) Guard against the common patterns and specific exploits in the root "
3218
+ "portion of targeted URLs."
3219
+ msgstr ""
3220
+
3221
+ # @ all-in-one-wp-security-and-firewall
3222
+ #: admin/wp-security-firewall-menu.php:600
3223
+ #: admin/wp-security-firewall-menu.php:618
3224
+ msgid ""
3225
+ "4) Stop attackers from manipulating query strings by disallowing illicit "
3226
+ "characters."
3227
+ msgstr ""
3228
+
3229
+ # @ all-in-one-wp-security-and-firewall
3230
+ #: admin/wp-security-firewall-menu.php:601
3231
+ #: admin/wp-security-firewall-menu.php:619
3232
+ msgid "....and much more."
3233
+ msgstr ""
3234
+
3235
+ #: admin/wp-security-firewall-menu.php:607
3236
+ msgid "Enable legacy 5G Firewall Protection"
3237
+ msgstr ""
3238
+
3239
+ # @ all-in-one-wp-security-and-firewall
3240
+ #: admin/wp-security-firewall-menu.php:610
3241
+ msgid ""
3242
+ "Check this if you want to apply the 5G Blacklist firewall protection from "
3243
+ "perishablepress.com to your site."
3244
+ msgstr ""
3245
+
3246
+ # @ all-in-one-wp-security-and-firewall
3247
+ #: admin/wp-security-firewall-menu.php:614
3248
+ msgid ""
3249
+ "This setting will implement the 5G security firewall protection mechanisms "
3250
+ "on your site which include the following things:"
3251
+ msgstr ""
3252
+
3253
+ #: admin/wp-security-firewall-menu.php:625
3254
+ msgid "Save 5G/6G Firewall Settings"
3255
+ msgstr ""
3256
+
3257
+ #: admin/wp-security-firewall-menu.php:656
3258
+ msgid "The Internet bot settings were successfully saved"
3259
+ msgstr ""
3260
+
3261
+ #: admin/wp-security-firewall-menu.php:660
3262
+ msgid "Internet Bot Settings"
3263
+ msgstr ""
3264
+
3265
+ #: admin/wp-security-firewall-menu.php:667
3266
+ #, php-format
3267
+ msgid "%s?"
3268
+ msgstr ""
3269
+
3270
+ #: admin/wp-security-firewall-menu.php:669
3271
+ msgid ""
3272
+ "A bot is a piece of software which runs on the Internet and performs "
3273
+ "automatic tasks. For example when Google indexes your pages it uses "
3274
+ "automatic bots to achieve this task."
3275
+ msgstr ""
3276
+
3277
+ #: admin/wp-security-firewall-menu.php:670
3278
+ msgid ""
3279
+ "A lot of bots are legitimate and non-malicous but not all bots are good and "
3280
+ "often you will find some which try to impersonate legitimate bots such as "
3281
+ "\"Googlebot\" but in reality they have nohing to do with Google at all."
3282
+ msgstr ""
3283
+
3284
+ #: admin/wp-security-firewall-menu.php:671
3285
+ msgid ""
3286
+ "Although most of the bots out there are relatively harmless sometimes "
3287
+ "website owners want to have more control over which bots they allow into "
3288
+ "their site."
3289
+ msgstr ""
3290
+
3291
+ #: admin/wp-security-firewall-menu.php:672
3292
+ msgid ""
3293
+ "This feature allows you to block bots which are impersonating as a Googlebot "
3294
+ "but actually aren't. (In other words they are fake Google bots)"
3295
+ msgstr ""
3296
+
3297
+ #: admin/wp-security-firewall-menu.php:673
3298
+ msgid ""
3299
+ "Googlebots have a unique indentity which cannot easily be forged and this "
3300
+ "feature will indentify any fake Google bots and block them from reading your "
3301
+ "site's pages."
3302
+ msgstr ""
3303
+
3304
+ #: admin/wp-security-firewall-menu.php:679
3305
+ msgid ""
3306
+ "<strong>Attention</strong>: Sometimes non-malicious Internet organizations "
3307
+ "might have bots which impersonate as a \"Googlebot\"."
3308
+ msgstr ""
3309
+
3310
+ #: admin/wp-security-firewall-menu.php:680
3311
+ msgid ""
3312
+ "Just be aware that if you activate this feature the plugin will block all "
3313
+ "bots which use the \"Googlebot\" string in their User Agent information but "
3314
+ "are NOT officially from Google (irrespective whether they are malicious or "
3315
+ "not)."
3316
+ msgstr ""
3317
+
3318
+ #: admin/wp-security-firewall-menu.php:681
3319
+ msgid ""
3320
+ "All other bots from other organizations such as \"Yahoo\", \"Bing\" etc will "
3321
+ "not be affected by this feature."
3322
+ msgstr ""
3323
+
3324
+ #: admin/wp-security-firewall-menu.php:687
3325
+ #: admin/wp-security-firewall-menu.php:697
3326
+ #: classes/grade-system/wp-security-feature-item-manager.php:98
3327
+ msgid "Block Fake Googlebots"
3328
+ msgstr ""
3329
+
3330
+ #: admin/wp-security-firewall-menu.php:700
3331
+ msgid "Check this if you want to block all fake Googlebots."
3332
+ msgstr ""
3333
+
3334
+ #: admin/wp-security-firewall-menu.php:704
3335
+ msgid ""
3336
+ "This feature will check if the User Agent information of a bot contains the "
3337
+ "string \"Googlebot\"."
3338
+ msgstr ""
3339
+
3340
+ #: admin/wp-security-firewall-menu.php:705
3341
+ msgid ""
3342
+ "It will then perform a few tests to verify if the bot is legitimately from "
3343
+ "Google and if so it will allow the bot to proceed."
3344
+ msgstr ""
3345
+
3346
+ #: admin/wp-security-firewall-menu.php:706
3347
+ msgid ""
3348
+ "If the bot fails the checks then the plugin will mark it as being a fake "
3349
+ "Googlebot and it will block it"
3350
+ msgstr ""
3351
+
3352
+ #: admin/wp-security-firewall-menu.php:713
3353
+ msgid "Save Internet Bot Settings"
3354
+ msgstr ""
3355
+
3356
+ #: admin/wp-security-firewall-menu.php:750
3357
+ #: admin/wp-security-firewall-menu.php:772
3358
+ #: classes/grade-system/wp-security-feature-item-manager.php:32
3359
+ msgid "Prevent Image Hotlinking"
3360
+ msgstr ""
3361
+
3362
+ #: admin/wp-security-firewall-menu.php:753
3363
+ msgid ""
3364
+ "A Hotlink is where someone displays an image on their site which is actually "
3365
+ "located on your site by using a direct link to the source of the image on "
3366
+ "your server."
3367
+ msgstr ""
3368
+
3369
+ #: admin/wp-security-firewall-menu.php:754
3370
+ msgid ""
3371
+ "Due to the fact that the image being displayed on the other person's site is "
3372
+ "coming from your server, this can cause leaking of bandwidth and resources "
3373
+ "for you because your server has to present this image for the people viewing "
3374
+ "it on someone elses's site."
3375
+ msgstr ""
3376
+
3377
+ #: admin/wp-security-firewall-menu.php:755
3378
+ msgid ""
3379
+ "This feature will prevent people from directly hotlinking images from your "
3380
+ "site's pages by writing some directives in your .htaccess file."
3381
+ msgstr ""
3382
+
3383
+ #: admin/wp-security-firewall-menu.php:760
3384
+ msgid "Prevent Hotlinking"
3385
+ msgstr ""
3386
+
3387
+ #: admin/wp-security-firewall-menu.php:775
3388
+ msgid "Check this if you want to prevent hotlinking to images on your site."
3389
+ msgstr ""
3390
+
3391
+ #: admin/wp-security-firewall-menu.php:795
3392
+ msgid "Nonce check failed for delete all 404 event logs operation!"
3393
+ msgstr ""
3394
+
3395
+ #: admin/wp-security-firewall-menu.php:806
3396
+ msgid "404 Detection Feature - Delete all 404 event logs operation failed!"
3397
+ msgstr ""
3398
+
3399
+ #: admin/wp-security-firewall-menu.php:810
3400
+ msgid "All 404 event logs were deleted from the DB successfully!"
3401
+ msgstr ""
3402
+
3403
+ # @ all-in-one-wp-security-and-firewall
3404
+ #: admin/wp-security-firewall-menu.php:834
3405
+ #: admin/wp-security-user-login-menu.php:111
3406
+ msgid ""
3407
+ "You entered a non numeric value for the lockout time length field. It has "
3408
+ "been set to the default value."
3409
+ msgstr ""
3410
+
3411
+ #: admin/wp-security-firewall-menu.php:840
3412
+ msgid ""
3413
+ "You entered an incorrect format for the \"Redirect URL\" field. It has been "
3414
+ "set to the default value."
3415
+ msgstr ""
3416
+
3417
+ #: admin/wp-security-firewall-menu.php:875
3418
+ msgid "404 Detection Configuration"
3419
+ msgstr ""
3420
+
3421
+ #: admin/wp-security-firewall-menu.php:878
3422
+ msgid ""
3423
+ "A 404 or Not Found error occurs when somebody tries to access a non-existent "
3424
+ "page on your website."
3425
+ msgstr ""
3426
+
3427
+ #: admin/wp-security-firewall-menu.php:879
3428
+ msgid ""
3429
+ "Typically, most 404 errors happen quite innocently when people have mis-"
3430
+ "typed a URL or used an old link to page which doesn't exist anymore."
3431
+ msgstr ""
3432
+
3433
+ #: admin/wp-security-firewall-menu.php:880
3434
+ msgid ""
3435
+ "However, in some cases you may find many repeated 404 errors which occur in "
3436
+ "a relatively short space of time and from the same IP address which are all "
3437
+ "attempting to access a variety of non-existent page URLs."
3438
+ msgstr ""
3439
+
3440
+ #: admin/wp-security-firewall-menu.php:881
3441
+ msgid ""
3442
+ "Such behaviour can mean that a hacker might be trying to find a particular "
3443
+ "page or URL for sinister reasons."
3444
+ msgstr ""
3445
+
3446
+ #: admin/wp-security-firewall-menu.php:882
3447
+ msgid ""
3448
+ "This feature allows you to monitor all 404 events which occur on your site, "
3449
+ "and it also gives you the option of blocking IP addresses for a configured "
3450
+ "length of time."
3451
+ msgstr ""
3452
+
3453
+ #: admin/wp-security-firewall-menu.php:883
3454
+ msgid ""
3455
+ "If you want to temporarily block an IP address, simply click the \"Temp Block"
3456
+ "\" link for the applicable IP entry in the \"404 Event Logs\" table below."
3457
+ msgstr ""
3458
+
3459
+ #: admin/wp-security-firewall-menu.php:890
3460
+ msgid ""
3461
+ "This addon allows you to automatically and permanently block IP addresses "
3462
+ "based on how many 404 errors they produce."
3463
+ msgstr ""
3464
+
3465
+ #: admin/wp-security-firewall-menu.php:898
3466
+ msgid "404 Detection Options"
3467
+ msgstr ""
3468
+
3469
+ #: admin/wp-security-firewall-menu.php:910
3470
+ msgid "Enable 404 IP Detection and Lockout"
3471
+ msgstr ""
3472
+
3473
+ #: admin/wp-security-firewall-menu.php:913
3474
+ msgid "Check this if you want to enable the lockout of selected IP addresses."
3475
+ msgstr ""
3476
+
3477
+ #: admin/wp-security-firewall-menu.php:918
3478
+ msgid ""
3479
+ "When you enable this checkbox, all 404 events on your site will be logged in "
3480
+ "the table below. You can monitor these events and select some IP addresses "
3481
+ "listed in the table below and block them for a specified amount of time. All "
3482
+ "IP addresses you select to be blocked from the \"404 Event Logs\" table "
3483
+ "section will be unable to access your site during the time specified."
3484
+ msgstr ""
3485
+
3486
+ #: admin/wp-security-firewall-menu.php:926
3487
+ msgid "Enable 404 Event Logging"
3488
+ msgstr ""
3489
+
3490
+ #: admin/wp-security-firewall-menu.php:929
3491
+ msgid "Check this if you want to enable the logging of 404 events"
3492
+ msgstr ""
3493
+
3494
+ #: admin/wp-security-firewall-menu.php:934
3495
+ msgid "Time Length of 404 Lockout (min)"
3496
+ msgstr ""
3497
+
3498
+ #: admin/wp-security-firewall-menu.php:936
3499
+ msgid ""
3500
+ "Set the length of time for which a blocked IP address will be prevented from "
3501
+ "visiting your site"
3502
+ msgstr ""
3503
+
3504
+ #: admin/wp-security-firewall-menu.php:941
3505
+ msgid ""
3506
+ "You can lock any IP address which is recorded in the \"404 Event Logs\" "
3507
+ "table section below."
3508
+ msgstr ""
3509
+
3510
+ #: admin/wp-security-firewall-menu.php:943
3511
+ msgid ""
3512
+ "To temporarily lock an IP address, hover over the ID column and click the "
3513
+ "\"Temp Block\" link for the applicable IP entry."
3514
+ msgstr ""
3515
+
3516
+ #: admin/wp-security-firewall-menu.php:950
3517
+ msgid "404 Lockout Redirect URL"
3518
+ msgstr ""
3519
+
3520
+ #: admin/wp-security-firewall-menu.php:952
3521
+ msgid "A blocked visitor will be automatically redirected to this URL."
3522
+ msgstr ""
3523
+
3524
+ #: admin/wp-security-firewall-menu.php:961
3525
+ msgid "404 Event Logs"
3526
+ msgstr ""
3527
+
3528
+ #: admin/wp-security-firewall-menu.php:983
3529
+ #: admin/wp-security-firewall-menu.php:992
3530
+ msgid "Delete All 404 Event Logs"
3531
+ msgstr ""
3532
+
3533
+ #: admin/wp-security-firewall-menu.php:989
3534
+ msgid "Click this button if you wish to purge all 404 event logs from the DB."
3535
+ msgstr ""
3536
+
3537
+ #: admin/wp-security-firewall-menu.php:1047
3538
+ msgid "Custom .htaccess Rules Settings"
3539
+ msgstr ""
3540
+
3541
+ #: admin/wp-security-firewall-menu.php:1054
3542
+ msgid ""
3543
+ "This feature can be used to apply your own custom .htaccess rules and "
3544
+ "directives."
3545
+ msgstr ""
3546
+
3547
+ #: admin/wp-security-firewall-menu.php:1055
3548
+ msgid ""
3549
+ "It is useful for when you want to tweak our existing firewall rules or when "
3550
+ "you want to add your own."
3551
+ msgstr ""
3552
+
3553
+ #: admin/wp-security-firewall-menu.php:1056
3554
+ msgid ""
3555
+ "NOTE: This feature can only used if your site is hosted in an apache or "
3556
+ "similar web server."
3557
+ msgstr ""
3558
+
3559
+ #: admin/wp-security-firewall-menu.php:1062
3560
+ msgid ""
3561
+ "<strong>Warning</strong>: Only use this feature if you know what you are "
3562
+ "doing."
3563
+ msgstr ""
3564
+
3565
+ #: admin/wp-security-firewall-menu.php:1063
3566
+ msgid ""
3567
+ "Incorrect .htaccess rules or directives can break or prevent access to your "
3568
+ "site."
3569
+ msgstr ""
3570
+
3571
+ #: admin/wp-security-firewall-menu.php:1064
3572
+ msgid ""
3573
+ "It is your responsibility to ensure that you are entering the correct code!"
3574
+ msgstr ""
3575
+
3576
+ #: admin/wp-security-firewall-menu.php:1065
3577
+ msgid ""
3578
+ "If you break your site you will need to access your server via FTP or "
3579
+ "something similar and then edit your .htaccess file and delete the changes "
3580
+ "you made."
3581
+ msgstr ""
3582
+
3583
+ #: admin/wp-security-firewall-menu.php:1071
3584
+ msgid "Custom .htaccess Rules"
3585
+ msgstr ""
3586
+
3587
+ #: admin/wp-security-firewall-menu.php:1075
3588
+ msgid "Enable Custom .htaccess Rules"
3589
+ msgstr ""
3590
+
3591
+ #: admin/wp-security-firewall-menu.php:1078
3592
+ msgid ""
3593
+ "Check this if you want to enable custom rules entered in the text box below"
3594
+ msgstr ""
3595
+
3596
+ #: admin/wp-security-firewall-menu.php:1082
3597
+ msgid "Enter Custom .htaccess Rules:"
3598
+ msgstr ""
3599
+
3600
+ #: admin/wp-security-firewall-menu.php:1086
3601
+ msgid "Enter your custom .htaccess rules/directives."
3602
+ msgstr ""
3603
+
3604
+ #: admin/wp-security-firewall-menu.php:1091
3605
+ msgid "Save Custom Rules"
3606
+ msgstr ""
3607
+
3608
+ # @ all-in-one-wp-security-and-firewall
3609
+ #: admin/wp-security-list-404.php:118 admin/wp-security-list-404.php:126
3610
+ #: admin/wp-security-list-404.php:133
3611
+ #: admin/wp-security-list-acct-activity.php:83
3612
+ #: admin/wp-security-list-comment-spammer-ip.php:92
3613
+ #: admin/wp-security-list-locked-ip.php:90
3614
+ #: admin/wp-security-list-locked-ip.php:101
3615
+ #: admin/wp-security-list-login-fails.php:82
3616
+ #: admin/wp-security-list-permanent-blocked-ip.php:93
3617
+ #: admin/wp-security-list-registered-users.php:101
3618
+ #: admin/wp-security-list-registered-users.php:112
3619
+ #: admin/wp-security-list-registered-users.php:123
3620
+ msgid "Please select some records using the checkboxes"
3621
+ msgstr ""
3622
+
3623
+ #: admin/wp-security-list-404.php:155 admin/wp-security-list-404.php:193
3624
+ msgid ""
3625
+ "Could not process the request because the IP addresses for the selected "
3626
+ "entries could not be found!"
3627
+ msgstr ""
3628
+
3629
+ #: admin/wp-security-list-404.php:164
3630
+ msgid "The selected IP addresses are now temporarily blocked!"
3631
+ msgstr ""
3632
+
3633
+ #: admin/wp-security-list-404.php:169
3634
+ msgid "The selected IP address is now temporarily blocked!"
3635
+ msgstr ""
3636
+
3637
+ #: admin/wp-security-list-404.php:171
3638
+ msgid "The selected entry is not a valid IP address!"
3639
+ msgstr ""
3640
+
3641
+ #: admin/wp-security-list-404.php:216
3642
+ msgid ""
3643
+ "The selected IP addresses have been added to the blacklist and will be "
3644
+ "permanently blocked!"
3645
+ msgstr ""
3646
+
3647
+ #: admin/wp-security-list-404.php:256
3648
+ msgid "Nonce check failed for delete selected 404 event logs operation!"
3649
+ msgstr ""
3650
+
3651
+ # @ all-in-one-wp-security-and-firewall
3652
+ #: admin/wp-security-list-acct-activity.php:114
3653
+ #: admin/wp-security-list-login-fails.php:114
3654
+ msgid "The selected entries were deleted successfully!"
3655
+ msgstr ""
3656
+
3657
+ #: admin/wp-security-list-acct-activity.php:126
3658
+ msgid "Nonce check failed for delete selected account activity logs operation!"
3659
+ msgstr ""
3660
+
3661
+ # @ all-in-one-wp-security-and-firewall
3662
+ #: admin/wp-security-list-acct-activity.php:134
3663
+ #: admin/wp-security-list-login-fails.php:134
3664
+ msgid "The selected entry was deleted successfully!"
3665
+ msgstr ""
3666
+
3667
+ #: admin/wp-security-list-comment-spammer-ip.php:127
3668
+ #: admin/wp-security-list-comment-spammer-ip.php:176
3669
+ msgid "Nonce check failed for delete selected blocked IP operation!"
3670
+ msgstr ""
3671
+
3672
+ #: admin/wp-security-list-comment-spammer-ip.php:134
3673
+ msgid "The selected IP addresses are now permanently blocked!"
3674
+ msgstr ""
3675
+
3676
+ # @ all-in-one-wp-security-and-firewall
3677
+ #: admin/wp-security-list-comment-spammer-ip.php:190
3678
+ msgid ""
3679
+ "The selected IP addresses were saved in the blacklist configuration settings."
3680
+ msgstr ""
3681
+
3682
+ # @ all-in-one-wp-security-and-firewall
3683
+ #: admin/wp-security-list-comment-spammer-ip.php:198
3684
+ msgid ""
3685
+ "The .htaccess file was successfully modified to include the selected IP "
3686
+ "addresses."
3687
+ msgstr ""
3688
+
3689
+ # @ all-in-one-wp-security-and-firewall
3690
+ #: admin/wp-security-list-comment-spammer-ip.php:209
3691
+ msgid ""
3692
+ "NOTE: The .htaccess file was not modified because you have disabled the "
3693
+ "\"Enable IP or User Agent Blacklisting\" check box."
3694
+ msgstr ""
3695
+
3696
+ # @ all-in-one-wp-security-and-firewall
3697
+ #: admin/wp-security-list-comment-spammer-ip.php:210
3698
+ #, php-format
3699
+ msgid ""
3700
+ "To block these IP addresses you will need to enable the above flag in the %s "
3701
+ "menu"
3702
+ msgstr ""
3703
+
3704
+ #: admin/wp-security-list-locked-ip.php:128
3705
+ msgid "The selected IP entries were unlocked successfully!"
3706
+ msgstr "선택한 IP 항목이 성공적으로 잠금 해제되었습니다!"
3707
+
3708
+ #: admin/wp-security-list-locked-ip.php:137
3709
+ msgid "Nonce check failed for unlock IP operation!"
3710
+ msgstr ""
3711
+
3712
+ #: admin/wp-security-list-locked-ip.php:145
3713
+ msgid "The selected IP entry was unlocked successfully!"
3714
+ msgstr ""
3715
+
3716
+ #: admin/wp-security-list-locked-ip.php:179
3717
+ msgid "Nonce check failed for delete lockdown record operation!"
3718
+ msgstr ""
3719
+
3720
+ #: admin/wp-security-list-logged-in-users.php:84
3721
+ msgid "Nonce check failed for force user logout operation!"
3722
+ msgstr ""
3723
+
3724
+ #: admin/wp-security-list-logged-in-users.php:95
3725
+ msgid "The selected user was logged out successfully!"
3726
+ msgstr ""
3727
+
3728
+ #: admin/wp-security-list-login-fails.php:126
3729
+ msgid "Nonce check failed for delete failed login record operation!"
3730
+ msgstr ""
3731
+
3732
+ #: admin/wp-security-list-permanent-blocked-ip.php:123
3733
+ msgid "Nonce check failed for unblock IP operation!"
3734
+ msgstr ""
3735
+
3736
+ #: admin/wp-security-list-registered-users.php:48
3737
+ msgid "blocked"
3738
+ msgstr ""
3739
+
3740
+ #: admin/wp-security-list-registered-users.php:157
3741
+ #: admin/wp-security-list-registered-users.php:187
3742
+ msgid "Your account is now active"
3743
+ msgstr ""
3744
+
3745
+ #: admin/wp-security-list-registered-users.php:158
3746
+ msgid "Your account with user ID:"
3747
+ msgstr ""
3748
+
3749
+ #: admin/wp-security-list-registered-users.php:158
3750
+ #: admin/wp-security-list-registered-users.php:188
3751
+ msgid " is now active"
3752
+ msgstr ""
3753
+
3754
+ #: admin/wp-security-list-registered-users.php:171
3755
+ msgid "The selected accounts were approved successfully!"
3756
+ msgstr ""
3757
+
3758
+ #: admin/wp-security-list-registered-users.php:175
3759
+ msgid "The following accounts failed to update successfully: "
3760
+ msgstr ""
3761
+
3762
+ #: admin/wp-security-list-registered-users.php:183
3763
+ msgid "The selected account was approved successfully!"
3764
+ msgstr ""
3765
+
3766
+ #: admin/wp-security-list-registered-users.php:188
3767
+ msgid "Your account with username: "
3768
+ msgstr ""
3769
+
3770
+ #: admin/wp-security-list-registered-users.php:220
3771
+ msgid "The selected accounts were deleted successfully!"
3772
+ msgstr ""
3773
+
3774
+ #: admin/wp-security-list-registered-users.php:228
3775
+ msgid "Nonce check failed for delete registered user account operation!"
3776
+ msgstr ""
3777
+
3778
+ #: admin/wp-security-list-registered-users.php:236
3779
+ msgid "The selected account was deleted successfully!"
3780
+ msgstr ""
3781
+
3782
+ #: admin/wp-security-list-registered-users.php:262
3783
+ msgid ""
3784
+ "The selected IP addresses were successfully added to the permanent block "
3785
+ "list!"
3786
+ msgstr ""
3787
+
3788
+ #: admin/wp-security-list-registered-users.php:263
3789
+ #: admin/wp-security-list-registered-users.php:280
3790
+ #: admin/wp-security-spam-menu.php:319
3791
+ msgid "View Blocked IPs"
3792
+ msgstr ""
3793
+
3794
+ #: admin/wp-security-list-registered-users.php:272
3795
+ msgid "Nonce check failed for block IP operation of registered user!"
3796
+ msgstr ""
3797
+
3798
+ #: admin/wp-security-list-registered-users.php:279
3799
+ msgid "The selected IP was successfully added to the permanent block list!"
3800
+ msgstr ""
3801
+
3802
+ #: admin/wp-security-maintenance-menu.php:22
3803
+ msgid "Visitor Lockout"
3804
+ msgstr ""
3805
+
3806
+ # @ all-in-one-wp-security-and-firewall
3807
+ #: admin/wp-security-maintenance-menu.php:89
3808
+ msgid "Site lockout feature settings saved!"
3809
+ msgstr ""
3810
+
3811
+ # @ all-in-one-wp-security-and-firewall
3812
+ #: admin/wp-security-maintenance-menu.php:94
3813
+ msgid "General Visitor Lockout"
3814
+ msgstr ""
3815
+
3816
+ # @ all-in-one-wp-security-and-firewall
3817
+ #: admin/wp-security-maintenance-menu.php:100
3818
+ msgid ""
3819
+ "This feature allows you to put your site into \"maintenance mode\" by "
3820
+ "locking down the front-end to all visitors except logged in users with super "
3821
+ "admin privileges."
3822
+ msgstr ""
3823
+
3824
+ # @ all-in-one-wp-security-and-firewall
3825
+ #: admin/wp-security-maintenance-menu.php:101
3826
+ msgid ""
3827
+ "Locking your site down to general visitors can be useful if you are "
3828
+ "investigating some issues on your site or perhaps you might be doing some "
3829
+ "maintenance and wish to keep out all traffic for security reasons."
3830
+ msgstr ""
3831
+
3832
+ # @ all-in-one-wp-security-and-firewall
3833
+ #: admin/wp-security-maintenance-menu.php:106
3834
+ msgid "Enable Front-end Lockout"
3835
+ msgstr ""
3836
+
3837
+ # @ all-in-one-wp-security-and-firewall
3838
+ #: admin/wp-security-maintenance-menu.php:109
3839
+ msgid ""
3840
+ "Check this if you want all visitors except those who are logged in as "
3841
+ "administrator to be locked out of the front-end of your site."
3842
+ msgstr ""
3843
+
3844
+ # @ all-in-one-wp-security-and-firewall
3845
+ #: admin/wp-security-maintenance-menu.php:113
3846
+ msgid "Enter a Message:"
3847
+ msgstr ""
3848
+
3849
+ # @ all-in-one-wp-security-and-firewall
3850
+ #: admin/wp-security-maintenance-menu.php:125
3851
+ msgid ""
3852
+ "Enter a message you wish to display to visitors when your site is in "
3853
+ "maintenance mode."
3854
+ msgstr ""
3855
+
3856
+ # @ default
3857
+ #: admin/wp-security-maintenance-menu.php:132
3858
+ msgid "Save Site Lockout Settings"
3859
+ msgstr ""
3860
+
3861
+ #: admin/wp-security-misc-options-menu.php:24
3862
+ msgid "Copy Protection"
3863
+ msgstr ""
3864
+
3865
+ #: admin/wp-security-misc-options-menu.php:25
3866
+ msgid "Frames"
3867
+ msgstr ""
3868
+
3869
+ #: admin/wp-security-misc-options-menu.php:26
3870
+ msgid "Users Enumeration"
3871
+ msgstr ""
3872
+
3873
+ #: admin/wp-security-misc-options-menu.php:91
3874
+ msgid "Copy Protection feature settings saved!"
3875
+ msgstr ""
3876
+
3877
+ #: admin/wp-security-misc-options-menu.php:96
3878
+ msgid "Disable The Ability To Copy Text"
3879
+ msgstr ""
3880
+
3881
+ #: admin/wp-security-misc-options-menu.php:102
3882
+ msgid ""
3883
+ "This feature allows you to disable the ability to select and copy text from "
3884
+ "your front end."
3885
+ msgstr ""
3886
+
3887
+ #: admin/wp-security-misc-options-menu.php:103
3888
+ msgid ""
3889
+ "When admin user is logged in, the feature is automatically disabled for his "
3890
+ "session."
3891
+ msgstr ""
3892
+
3893
+ #: admin/wp-security-misc-options-menu.php:108
3894
+ msgid "Enable Copy Protection"
3895
+ msgstr ""
3896
+
3897
+ #: admin/wp-security-misc-options-menu.php:111
3898
+ msgid ""
3899
+ "Check this if you want to disable the \"Right Click\", \"Text Selection\" "
3900
+ "and \"Copy\" option on the front end of your site."
3901
+ msgstr ""
3902
+
3903
+ #: admin/wp-security-misc-options-menu.php:118
3904
+ msgid "Save Copy Protection Settings"
3905
+ msgstr ""
3906
+
3907
+ #: admin/wp-security-misc-options-menu.php:142
3908
+ msgid "Frame Display Prevention feature settings saved!"
3909
+ msgstr ""
3910
+
3911
+ #: admin/wp-security-misc-options-menu.php:147
3912
+ msgid "Prevent Your Site From Being Displayed In a Frame"
3913
+ msgstr ""
3914
+
3915
+ #: admin/wp-security-misc-options-menu.php:153
3916
+ msgid ""
3917
+ "This feature allows you to prevent other sites from displaying any of your "
3918
+ "content via a frame or iframe."
3919
+ msgstr ""
3920
+
3921
+ #: admin/wp-security-misc-options-menu.php:154
3922
+ msgid ""
3923
+ "When enabled, this feature will set the \"X-Frame-Options\" paramater to "
3924
+ "\"sameorigin\" in the HTTP header."
3925
+ msgstr ""
3926
+
3927
+ #: admin/wp-security-misc-options-menu.php:159
3928
+ msgid "Enable iFrame Protection"
3929
+ msgstr ""
3930
+
3931
+ #: admin/wp-security-misc-options-menu.php:162
3932
+ msgid ""
3933
+ "Check this if you want to stop other sites from displaying your content in a "
3934
+ "frame or iframe."
3935
+ msgstr ""
3936
+
3937
+ #: admin/wp-security-misc-options-menu.php:193
3938
+ msgid "Users Enumeration Prevention feature settings saved!"
3939
+ msgstr ""
3940
+
3941
+ #: admin/wp-security-misc-options-menu.php:198
3942
+ msgid "Prevent Users Enumeration"
3943
+ msgstr ""
3944
+
3945
+ #: admin/wp-security-misc-options-menu.php:204
3946
+ msgid ""
3947
+ "This feature allows you to prevent external users/bots from fetching the "
3948
+ "user info with urls like \"/?author=1\"."
3949
+ msgstr ""
3950
+
3951
+ #: admin/wp-security-misc-options-menu.php:205
3952
+ msgid ""
3953
+ "When enabled, this feature will print a \"forbidden\" error rather than the "
3954
+ "user information."
3955
+ msgstr ""
3956
+
3957
+ #: admin/wp-security-misc-options-menu.php:210
3958
+ msgid "Disable Users Enumeration"
3959
+ msgstr ""
3960
+
3961
+ #: admin/wp-security-misc-options-menu.php:213
3962
+ msgid "Check this if you want to stop users enumeration."
3963
+ msgstr ""
3964
+
3965
+ #: admin/wp-security-settings-menu.php:26
3966
+ msgid "General Settings"
3967
+ msgstr "일반 설정"
3968
+
3969
+ #: admin/wp-security-settings-menu.php:29
3970
+ msgid "WP Version Info"
3971
+ msgstr "WP 버전 정보"
3972
+
3973
+ #: admin/wp-security-settings-menu.php:30
3974
+ msgid "Import/Export"
3975
+ msgstr "가져오기/내보내기"
3976
+
3977
+ # @ all-in-one-wp-security-and-firewall
3978
+ #: admin/wp-security-settings-menu.php:98
3979
+ msgid "All the security features have been disabled successfully!"
3980
+ msgstr "모든 보안 기능이 성공적으로 비활성화되었습니다!"
3981
+
3982
+ # @ all-in-one-wp-security-and-firewall
3983
+ #: admin/wp-security-settings-menu.php:102
3984
+ #: admin/wp-security-settings-menu.php:129
3985
+ msgid ""
3986
+ "Could not write to the .htaccess file. Please restore your .htaccess file "
3987
+ "manually using the restore functionality in the \".htaccess File\"."
3988
+ msgstr ""
3989
+
3990
+ # @ all-in-one-wp-security-and-firewall
3991
+ #: admin/wp-security-settings-menu.php:107
3992
+ msgid ""
3993
+ "Could not write to the wp-config.php. Please restore your wp-config.php file "
3994
+ "manually using the restore functionality in the \"wp-config.php File\"."
3995
+ msgstr ""
3996
+
3997
+ # @ all-in-one-wp-security-and-firewall
3998
+ #: admin/wp-security-settings-menu.php:125
3999
+ msgid "All firewall rules have been disabled successfully!"
4000
+ msgstr ""
4001
+
4002
+ # @ all-in-one-wp-security-and-firewall
4003
+ #: admin/wp-security-settings-menu.php:154
4004
+ msgid "WP Security Plugin"
4005
+ msgstr "WP 보안 플러그인"
4006
+
4007
+ # @ all-in-one-wp-security-and-firewall
4008
+ #: admin/wp-security-settings-menu.php:156
4009
+ msgid ""
4010
+ "Thank you for using our WordPress security plugin. There are a lot of "
4011
+ "security features in this plugin."
4012
+ msgstr ""
4013
+
4014
+ # @ all-in-one-wp-security-and-firewall
4015
+ #: admin/wp-security-settings-menu.php:157
4016
+ msgid ""
4017
+ "Go through each menu items and enable the security options to add more "
4018
+ "security to your site. Start by activating the basic features first."
4019
+ msgstr ""
4020
+
4021
+ # @ all-in-one-wp-security-and-firewall
4022
+ #: admin/wp-security-settings-menu.php:158
4023
+ msgid ""
4024
+ "It is a good practice to take a backup of your .htaccess file, database and "
4025
+ "wp-config.php file before activating the security features. This plugin has "
4026
+ "options that you can use to backup those resources easily."
4027
+ msgstr ""
4028
+
4029
+ # @ all-in-one-wp-security-and-firewall
4030
+ #: admin/wp-security-settings-menu.php:161
4031
+ msgid "Backup your database"
4032
+ msgstr ""
4033
+
4034
+ # @ all-in-one-wp-security-and-firewall
4035
+ #: admin/wp-security-settings-menu.php:162
4036
+ msgid "Backup .htaccess file"
4037
+ msgstr ""
4038
+
4039
+ # @ all-in-one-wp-security-and-firewall
4040
+ #: admin/wp-security-settings-menu.php:163
4041
+ msgid "Backup wp-config.php file"
4042
+ msgstr ""
4043
+
4044
+ # @ all-in-one-wp-security-and-firewall
4045
+ #: admin/wp-security-settings-menu.php:170
4046
+ msgid "Disable Security Features"
4047
+ msgstr "보안 기능 비활성화"
4048
+
4049
+ # @ all-in-one-wp-security-and-firewall
4050
+ #: admin/wp-security-settings-menu.php:176
4051
+ msgid ""
4052
+ "If you think that some plugin functionality on your site is broken due to a "
4053
+ "security feature you enabled in this plugin, then use the following option "
4054
+ "to turn off all the security features of this plugin."
4055
+ msgstr ""
4056
+ "이 플러그인에서 활성화 된 보안 기능으로 인해 사이트의 일부 플러그인 기능이 손"
4057
+ "상된 것으로 생각되면 다음 옵션을 사용하여이 플러그인의 모든 보안 기능을 끕니"
4058
+ "다."
4059
+
4060
+ # @ default
4061
+ #: admin/wp-security-settings-menu.php:180
4062
+ msgid "Disable All Security Features"
4063
+ msgstr "모든 보안 기능 비활성화"
4064
+
4065
+ # @ all-in-one-wp-security-and-firewall
4066
+ # @ default
4067
+ #: admin/wp-security-settings-menu.php:187
4068
+ #: admin/wp-security-settings-menu.php:197
4069
+ msgid "Disable All Firewall Rules"
4070
+ msgstr "모든 방화벽 규칙 비활성화"
4071
+
4072
+ # @ all-in-one-wp-security-and-firewall
4073
+ #: admin/wp-security-settings-menu.php:193
4074
+ msgid ""
4075
+ "This feature will disable all firewall rules which are currently active in "
4076
+ "this plugin and it will also delete these rules from your .htacess file. Use "
4077
+ "it if you think one of the firewall rules is causing an issue on your site."
4078
+ msgstr ""
4079
+ "이 기능은 현재이 플러그인에서 활성화된 모든 방화벽 규칙을 비활성화하고 ."
4080
+ "htacess 파일에서 이러한 규칙을 삭제합니다. 방화벽 규칙 중 하나가 사이트에서 "
4081
+ "문제를 일으킨다고 생각되면 사용하십시오."
4082
+
4083
+ #: admin/wp-security-settings-menu.php:204
4084
+ msgid "Debug Settings"
4085
+ msgstr "디버그 설정"
4086
+
4087
+ #: admin/wp-security-settings-menu.php:210
4088
+ msgid "This setting allows you to enable/disable debug for this plugin."
4089
+ msgstr ""
4090
+ "이 설정을 사용하면 이 플러그인에 대한 디버그를 활성화/비활성화할 수 있습니다."
4091
+
4092
+ #: admin/wp-security-settings-menu.php:216
4093
+ msgid "Enable Debug"
4094
+ msgstr "디버그 사용"
4095
+
4096
+ #: admin/wp-security-settings-menu.php:219
4097
+ msgid ""
4098
+ "Check this if you want to enable debug. You should keep this option disabled "
4099
+ "after you have finished debugging the issue."
4100
+ msgstr ""
4101
+ "디버그를 사용하도록 설정하려면 이 방법을 확인합니다. 문제 디버깅을 완료한 후"
4102
+ "에도 이 옵션을 사용하지 않도록 설정해야 합니다."
4103
+
4104
+ #: admin/wp-security-settings-menu.php:220
4105
+ msgid "Please note that the log files are reset on every plugin update."
4106
+ msgstr "로그 파일은 모든 플러그인 업데이트에서 재설정됩니다."
4107
+
4108
+ #: admin/wp-security-settings-menu.php:224
4109
+ msgid "Save Debug Settings"
4110
+ msgstr "디버그 설정 저장"
4111
+
4112
+ #: admin/wp-security-settings-menu.php:253
4113
+ msgid ""
4114
+ "Your .htaccess file was successfully backed up! Using an FTP program go to "
4115
+ "the \"/wp-content/aiowps_backups\" directory to save a copy of the file to "
4116
+ "your computer."
4117
+ msgstr ""
4118
+ ".htaccess 파일이 성공적으로 백업되었습니다! FTP 프로그램을 사용하여 \"/wp-"
4119
+ "content/aiowps_backups\" 디렉터리로 이동하여 파일의 복사본을 컴퓨터에 저장합"
4120
+ "니다."
4121
+
4122
+ # @ all-in-one-wp-security-and-firewall
4123
+ #: admin/wp-security-settings-menu.php:259
4124
+ msgid ""
4125
+ "htaccess file rename failed during backup. Please check your root directory "
4126
+ "for the backup file using FTP."
4127
+ msgstr ""
4128
+ "htaccess 파일 이름 바꾸기 백업 중에 실패했습니다. FTP를 사용하여 백업 파일에 "
4129
+ "대한 루트 디렉토리를 확인하십시오."
4130
+
4131
+ # @ all-in-one-wp-security-and-firewall
4132
+ #: admin/wp-security-settings-menu.php:265
4133
+ msgid "htaccess backup failed."
4134
+ msgstr "htaccess 백업에 실패했습니다."
4135
+
4136
+ # @ all-in-one-wp-security-and-firewall
4137
+ #: admin/wp-security-settings-menu.php:280
4138
+ msgid "Please choose a .htaccess to restore from."
4139
+ msgstr "복원하려면 .htaccess를 선택하십시오."
4140
+
4141
+ # @ all-in-one-wp-security-and-firewall
4142
+ #: admin/wp-security-settings-menu.php:296
4143
+ msgid ""
4144
+ "htaccess file restore failed. Please attempt to restore the .htaccess "
4145
+ "manually using FTP."
4146
+ msgstr ""
4147
+ "htaccess 파일 복원에 실패했습니다. FTP를 사용하여 수동으로 .htaccess를 복원하"
4148
+ "십시오."
4149
+
4150
+ # @ all-in-one-wp-security-and-firewall
4151
+ #: admin/wp-security-settings-menu.php:300
4152
+ msgid "Your .htaccess file has successfully been restored!"
4153
+ msgstr ".htaccess 파일이 성공적으로 복원되었습니다!"
4154
+
4155
+ # @ all-in-one-wp-security-and-firewall
4156
+ #: admin/wp-security-settings-menu.php:306
4157
+ msgid ""
4158
+ "htaccess Restore operation failed! Please check the contents of the file you "
4159
+ "are trying to restore from."
4160
+ msgstr ""
4161
+ "htaccess 복원 작업이 실패했습니다! 복원하려는 파일의 내용을 확인하십시오."
4162
+
4163
+ # @ all-in-one-wp-security-and-firewall
4164
+ #: admin/wp-security-settings-menu.php:312
4165
+ msgid ".htaccess File Operations"
4166
+ msgstr ".htaccess 파일 작업"
4167
+
4168
+ # @ all-in-one-wp-security-and-firewall
4169
+ #: admin/wp-security-settings-menu.php:315
4170
+ msgid ""
4171
+ "Your \".htaccess\" file is a key component of your website's security and it "
4172
+ "can be modified to implement various levels of protection mechanisms."
4173
+ msgstr ""
4174
+ "\".htaccess\" 파일은 웹 사이트 보안의 핵심 구성 요소이며 다양한 수준의 보호 "
4175
+ "메커니즘을 구현하도록 수정할 수 있습니다."
4176
+
4177
+ # @ all-in-one-wp-security-and-firewall
4178
+ #: admin/wp-security-settings-menu.php:316
4179
+ msgid ""
4180
+ "This feature allows you to backup and save your currently active .htaccess "
4181
+ "file should you need to re-use the the backed up file in the future."
4182
+ msgstr ""
4183
+ "이 기능을 사용하면 나중에 백업된 파일을 다시 사용해야 하는 경우 현재 활성 ."
4184
+ "htaccess 파일을 백업하고 저장할 수 있습니다."
4185
+
4186
+ # @ all-in-one-wp-security-and-firewall
4187
+ #: admin/wp-security-settings-menu.php:317
4188
+ msgid ""
4189
+ "You can also restore your site's .htaccess settings using a backed up ."
4190
+ "htaccess file."
4191
+ msgstr ""
4192
+ "백업된 .htaccess 파일을 사용하여 사이트의 .htaccess 설정을 복원할 수도 있습니"
4193
+ "다."
4194
+
4195
+ # @ all-in-one-wp-security-and-firewall
4196
+ #: admin/wp-security-settings-menu.php:331
4197
+ msgid "Save the current .htaccess file"
4198
+ msgstr "현재 .htaccess 파일 저장"
4199
+
4200
+ # @ all-in-one-wp-security-and-firewall
4201
+ #: admin/wp-security-settings-menu.php:335
4202
+ msgid ""
4203
+ "Click the button below to backup and save the currently active .htaccess "
4204
+ "file."
4205
+ msgstr "아래 버튼을 클릭하여 현재 활성 .htaccess 파일을 백업하고 저장합니다."
4206
+
4207
+ # @ all-in-one-wp-security-and-firewall
4208
+ #: admin/wp-security-settings-menu.php:336
4209
+ msgid "Backup .htaccess File"
4210
+ msgstr "백업 .htaccess 파일"
4211
+
4212
+ # @ all-in-one-wp-security-and-firewall
4213
+ #: admin/wp-security-settings-menu.php:340
4214
+ msgid "Restore from a backed up .htaccess file"
4215
+ msgstr "백업된 .htaccess 파일에서 복원"
4216
+
4217
+ # @ all-in-one-wp-security-and-firewall
4218
+ #: admin/wp-security-settings-menu.php:346
4219
+ msgid ".htaccess file to restore from"
4220
+ msgstr "복원할 .htaccess 파일"
4221
+
4222
+ # @ all-in-one-wp-security-and-firewall
4223
+ #: admin/wp-security-settings-menu.php:352
4224
+ msgid ""
4225
+ "After selecting your file, click the button below to restore your site using "
4226
+ "the backed up htaccess file (htaccess_backup.txt)."
4227
+ msgstr ""
4228
+ "파일을 선택한 후 아래 버튼을 클릭하여 백업된 htaccess 파일(htaccess_backup."
4229
+ "txt)을 사용하여 사이트를 복원합니다."
4230
+
4231
+ # @ all-in-one-wp-security-and-firewall
4232
+ #: admin/wp-security-settings-menu.php:358
4233
+ msgid "Restore .htaccess File"
4234
+ msgstr ".htaccess 파일 복원"
4235
+
4236
+ # @ all-in-one-wp-security-and-firewall
4237
+ #: admin/wp-security-settings-menu.php:391
4238
+ msgid "Please choose a wp-config.php file to restore from."
4239
+ msgstr "복원하려면 wp-config.php 파일을 선택하십시오."
4240
+
4241
+ # @ all-in-one-wp-security-and-firewall
4242
+ #: admin/wp-security-settings-menu.php:407
4243
+ msgid ""
4244
+ "wp-config.php file restore failed. Please attempt to restore this file "
4245
+ "manually using FTP."
4246
+ msgstr ""
4247
+ "wp-config.php 파일 복원에 실패했습니다. FTP를 사용하여 수동으로 이 파일을 복"
4248
+ "원해 보십시오."
4249
+
4250
+ # @ all-in-one-wp-security-and-firewall
4251
+ #: admin/wp-security-settings-menu.php:411
4252
+ msgid "Your wp-config.php file has successfully been restored!"
4253
+ msgstr "wp-config.php 파일이 성공적으로 복원되었습니다!"
4254
+
4255
+ # @ all-in-one-wp-security-and-firewall
4256
+ #: admin/wp-security-settings-menu.php:417
4257
+ msgid ""
4258
+ "wp-config.php Restore operation failed! Please check the contents of the "
4259
+ "file you are trying to restore from."
4260
+ msgstr ""
4261
+ "wp-config.php 복원 작업이 실패했습니다! 복원하려는 파일의 내용을 확인하십시"
4262
+ "오."
4263
+
4264
+ # @ all-in-one-wp-security-and-firewall
4265
+ #: admin/wp-security-settings-menu.php:423
4266
+ msgid "wp-config.php File Operations"
4267
+ msgstr "wp-config.php 파일 작업"
4268
+
4269
+ # @ all-in-one-wp-security-and-firewall
4270
+ #: admin/wp-security-settings-menu.php:426
4271
+ msgid ""
4272
+ "Your \"wp-config.php\" file is one of the most important in your WordPress "
4273
+ "installation. It is a primary configuration file and contains crucial things "
4274
+ "such as details of your database and other critical components."
4275
+ msgstr ""
4276
+ "\"wp-config.php\" 파일은 워드 프레스 설치에서 가장 중요한 파일 중 하나입니"
4277
+ "다. 기본 구성 파일이며 데이터베이스 및 기타 중요한 구성 요소의 세부 정보와 같"
4278
+ "은 중요한 항목을 포함합니다."
4279
+
4280
+ # @ all-in-one-wp-security-and-firewall
4281
+ #: admin/wp-security-settings-menu.php:427
4282
+ msgid ""
4283
+ "This feature allows you to backup and save your currently active wp-config."
4284
+ "php file should you need to re-use the the backed up file in the future."
4285
+ msgstr ""
4286
+ "이 기능을 사용하면 나중에 백업된 파일을 다시 사용해야 하는 경우 현재 활성 중"
4287
+ "인 wp-config.php 파일을 백업하고 저장할 수 있습니다."
4288
+
4289
+ # @ all-in-one-wp-security-and-firewall
4290
+ #: admin/wp-security-settings-menu.php:428
4291
+ msgid ""
4292
+ "You can also restore your site's wp-config.php settings using a backed up wp-"
4293
+ "config.php file."
4294
+ msgstr ""
4295
+ "백업된 wp-config.php 파일을 사용하여 사이트의 wp-config.php 설정을 복원할 수"
4296
+ "도 있습니다."
4297
+
4298
+ # @ all-in-one-wp-security-and-firewall
4299
+ #: admin/wp-security-settings-menu.php:442
4300
+ msgid "Save the current wp-config.php file"
4301
+ msgstr "현재 wp-config.php 파일 저장"
4302
+
4303
+ # @ all-in-one-wp-security-and-firewall
4304
+ #: admin/wp-security-settings-menu.php:446
4305
+ msgid ""
4306
+ "Click the button below to backup and download the contents of the currently "
4307
+ "active wp-config.php file."
4308
+ msgstr ""
4309
+ "아래 버튼을 클릭하여 현재 활성 중인 wp-config.php 파일의 내용을 백업하고 다운"
4310
+ "로드합니다."
4311
+
4312
+ # @ all-in-one-wp-security-and-firewall
4313
+ #: admin/wp-security-settings-menu.php:447
4314
+ msgid "Backup wp-config.php File"
4315
+ msgstr "백업 wp-config.php 파일"
4316
+
4317
+ # @ all-in-one-wp-security-and-firewall
4318
+ #: admin/wp-security-settings-menu.php:452
4319
+ msgid "Restore from a backed up wp-config file"
4320
+ msgstr "백업된 wp-config 파일에서 복원"
4321
+
4322
+ # @ all-in-one-wp-security-and-firewall
4323
+ #: admin/wp-security-settings-menu.php:458
4324
+ msgid "wp-config file to restore from"
4325
+ msgstr ""
4326
+
4327
+ # @ all-in-one-wp-security-and-firewall
4328
+ #: admin/wp-security-settings-menu.php:464
4329
+ msgid ""
4330
+ "After selecting your file click the button below to restore your site using "
4331
+ "the backed up wp-config file (wp-config.php.backup.txt)."
4332
+ msgstr ""
4333
+ "파일을 선택한 후 아래 버튼을 클릭하여 백업된 wp-config 파일(wp-config.php."
4334
+ "backup.txt)을 사용하여 사이트를 복원합니다."
4335
+
4336
+ # @ all-in-one-wp-security-and-firewall
4337
+ #: admin/wp-security-settings-menu.php:470
4338
+ msgid "Restore wp-config File"
4339
+ msgstr "wp-config 파일 복원"
4340
+
4341
+ #: admin/wp-security-settings-menu.php:509
4342
+ msgid "WP Generator Meta Tag & Version Info"
4343
+ msgstr ""
4344
+
4345
+ # @ all-in-one-wp-security-and-firewall
4346
+ #: admin/wp-security-settings-menu.php:512
4347
+ msgid ""
4348
+ "Wordpress generator automatically adds some meta information inside the "
4349
+ "\"head\" tags of every page on your site's front end. Below is an example of "
4350
+ "this:"
4351
+ msgstr ""
4352
+
4353
+ # @ all-in-one-wp-security-and-firewall
4354
+ #: admin/wp-security-settings-menu.php:514
4355
+ msgid ""
4356
+ "The above meta information shows which version of WordPress your site is "
4357
+ "currently running and thus can help hackers or crawlers scan your site to "
4358
+ "see if you have an older version of WordPress or one with a known exploit."
4359
+ msgstr ""
4360
+
4361
+ #: admin/wp-security-settings-menu.php:515
4362
+ msgid ""
4363
+ "There are also other ways wordpress reveals version info such as during "
4364
+ "style and script loading. An example of this is:"
4365
+ msgstr ""
4366
+
4367
+ #: admin/wp-security-settings-menu.php:517
4368
+ msgid ""
4369
+ "This feature will allow you to remove the WP generator meta info and other "
4370
+ "version info from your site's pages."
4371
+ msgstr ""
4372
+
4373
+ # @ all-in-one-wp-security-and-firewall
4374
+ #: admin/wp-security-settings-menu.php:523
4375
+ msgid "WP Generator Meta Info"
4376
+ msgstr ""
4377
+
4378
+ # @ all-in-one-wp-security-and-firewall
4379
+ #: admin/wp-security-settings-menu.php:535
4380
+ msgid "Remove WP Generator Meta Info"
4381
+ msgstr ""
4382
+
4383
+ #: admin/wp-security-settings-menu.php:538
4384
+ msgid ""
4385
+ "Check this if you want to remove the version and meta info produced by WP "
4386
+ "from all pages"
4387
+ msgstr ""
4388
+
4389
+ #: admin/wp-security-settings-menu.php:568
4390
+ msgid "Please choose a file to import your settings from."
4391
+ msgstr ""
4392
+
4393
+ #: admin/wp-security-settings-menu.php:600
4394
+ msgid "Import AIOWPS settings from "
4395
+ msgstr ""
4396
+
4397
+ #: admin/wp-security-settings-menu.php:606
4398
+ #: admin/wp-security-settings-menu.php:650
4399
+ msgid ""
4400
+ "The deletion of the import file failed. Please delete this file manually via "
4401
+ "the media menu for security purposes."
4402
+ msgstr ""
4403
+
4404
+ #: admin/wp-security-settings-menu.php:608
4405
+ #: admin/wp-security-settings-menu.php:652
4406
+ msgid ""
4407
+ "The file you uploaded was also deleted for security purposes because it "
4408
+ "contains security settings details."
4409
+ msgstr ""
4410
+
4411
+ #: admin/wp-security-settings-menu.php:623
4412
+ msgid "Your AIOWPS settings were successfully imported via file input."
4413
+ msgstr ""
4414
+
4415
+ #: admin/wp-security-settings-menu.php:624
4416
+ msgid ""
4417
+ "The deletion of the import file failed. Please delete this file manually via "
4418
+ "the media menu for security purposes because it contains security settings "
4419
+ "details."
4420
+ msgstr ""
4421
+
4422
+ #: admin/wp-security-settings-menu.php:626
4423
+ msgid ""
4424
+ "Your AIOWPS settings were successfully imported. The file you uploaded was "
4425
+ "also deleted for security purposes because it contains security settings "
4426
+ "details."
4427
+ msgstr ""
4428
+
4429
+ #: admin/wp-security-settings-menu.php:629
4430
+ msgid "Your AIOWPS settings were successfully imported via text entry."
4431
+ msgstr ""
4432
+
4433
+ #: admin/wp-security-settings-menu.php:644
4434
+ msgid ""
4435
+ "The contents of your settings file appear invalid. Please check the contents "
4436
+ "of the file you are trying to import settings from."
4437
+ msgstr ""
4438
+
4439
+ #: admin/wp-security-settings-menu.php:661
4440
+ msgid "Export or Import Your AIOWPS Settings"
4441
+ msgstr "AIOWPS 설정 내보내기 또는 가져오기"
4442
+
4443
+ #: admin/wp-security-settings-menu.php:664
4444
+ msgid ""
4445
+ "This section allows you to export or import your All In One WP Security & "
4446
+ "Firewall settings."
4447
+ msgstr ""
4448
+ "이 섹션에서는 모든 WP 보안 및 방화벽 설정을 내보내거나 가져올 수 있습니다."
4449
+
4450
+ #: admin/wp-security-settings-menu.php:665
4451
+ msgid ""
4452
+ "This can be handy if you wanted to save time by applying the settings from "
4453
+ "one site to another site."
4454
+ msgstr ""
4455
+ "이 기능은 한 사이트에서 다른 사이트로 설정을 적용하여 시간을 절약하려는 경우"
4456
+ "에 유용할 수 있습니다."
4457
+
4458
+ #: admin/wp-security-settings-menu.php:666
4459
+ msgid ""
4460
+ "NOTE: Before importing, it is your responsibility to know what settings you "
4461
+ "are trying to import. Importing settings blindly can cause you to be locked "
4462
+ "out of your site."
4463
+ msgstr ""
4464
+ "참고: 가져오기 전에 가져오려는 설정을 파악하는 것은 사용자의 책임입니다. 설정"
4465
+ "을 맹목적으로 가져오면 사이트에서 잠길 수 있습니다."
4466
+
4467
+ #: admin/wp-security-settings-menu.php:667
4468
+ msgid ""
4469
+ "For Example: If a settings item relies on the domain URL then it may not "
4470
+ "work correctly when imported into a site with a different domain."
4471
+ msgstr ""
4472
+ "예를 들어 설정 항목이 도메인 URL에 의존하는 경우 다른 도메인이 있는 사이트로 "
4473
+ "가져올 때 제대로 작동하지 않을 수 있습니다."
4474
+
4475
+ #: admin/wp-security-settings-menu.php:673
4476
+ #: admin/wp-security-settings-menu.php:682
4477
+ msgid "Export AIOWPS Settings"
4478
+ msgstr "AIOWPS 설정 내보내기"
4479
+
4480
+ #: admin/wp-security-settings-menu.php:679
4481
+ msgid ""
4482
+ "To export your All In One WP Security & Firewall settings click the button "
4483
+ "below."
4484
+ msgstr "모든 WP 보안 및 방화벽 설정을 내보내려면 아래 버튼을 클릭하십시오."
4485
+
4486
+ #: admin/wp-security-settings-menu.php:686
4487
+ #: admin/wp-security-settings-menu.php:711
4488
+ msgid "Import AIOWPS Settings"
4489
+ msgstr "AIOWPS 설정 가져오기"
4490
+
4491
+ #: admin/wp-security-settings-menu.php:692
4492
+ msgid ""
4493
+ "Use this section to import your All In One WP Security & Firewall settings "
4494
+ "from a file. Alternatively, copy/paste the contents of your import file into "
4495
+ "the textarea below."
4496
+ msgstr ""
4497
+
4498
+ #: admin/wp-security-settings-menu.php:693
4499
+ msgid "Import File"
4500
+ msgstr "파일 가져오기"
4501
+
4502
+ #: admin/wp-security-settings-menu.php:699
4503
+ msgid ""
4504
+ "After selecting your file, click the button below to apply the settings to "
4505
+ "your site."
4506
+ msgstr ""
4507
+
4508
+ #: admin/wp-security-settings-menu.php:705
4509
+ msgid "Copy/Paste Import Data"
4510
+ msgstr "가져오기 데이터 복사/붙여넣기"
4511
+
4512
+ #: admin/wp-security-spam-menu.php:24
4513
+ msgid "Comment SPAM"
4514
+ msgstr ""
4515
+
4516
+ #: admin/wp-security-spam-menu.php:25
4517
+ msgid "Comment SPAM IP Monitoring"
4518
+ msgstr ""
4519
+
4520
+ #: admin/wp-security-spam-menu.php:26
4521
+ msgid "BuddyPress"
4522
+ msgstr ""
4523
+
4524
+ # @ all-in-one-wp-security-and-firewall
4525
+ #: admin/wp-security-spam-menu.php:114
4526
+ msgid "Comment SPAM Settings"
4527
+ msgstr ""
4528
+
4529
+ #: admin/wp-security-spam-menu.php:119
4530
+ msgid "Add Captcha To Comments Form"
4531
+ msgstr ""
4532
+
4533
+ #: admin/wp-security-spam-menu.php:123
4534
+ msgid ""
4535
+ "This feature will add a simple math captcha field in the WordPress comments "
4536
+ "form."
4537
+ msgstr ""
4538
+
4539
+ #: admin/wp-security-spam-menu.php:124
4540
+ msgid ""
4541
+ "Adding a captcha field in the comment form is a simple way of greatly "
4542
+ "reducing SPAM comments from bots without using .htaccess rules."
4543
+ msgstr ""
4544
+
4545
+ #: admin/wp-security-spam-menu.php:133
4546
+ msgid "Enable Captcha On Comment Forms"
4547
+ msgstr ""
4548
+
4549
+ #: admin/wp-security-spam-menu.php:136
4550
+ msgid "Check this if you want to insert a captcha field on the comment forms"
4551
+ msgstr ""
4552
+
4553
+ # @ all-in-one-wp-security-and-firewall
4554
+ #: admin/wp-security-spam-menu.php:143
4555
+ msgid "Block Spambot Comments"
4556
+ msgstr ""
4557
+
4558
+ # @ all-in-one-wp-security-and-firewall
4559
+ #: admin/wp-security-spam-menu.php:147
4560
+ msgid ""
4561
+ "A large portion of WordPress blog comment SPAM is mainly produced by "
4562
+ "automated bots and not necessarily by humans. "
4563
+ msgstr ""
4564
+
4565
+ # @ all-in-one-wp-security-and-firewall
4566
+ #: admin/wp-security-spam-menu.php:148
4567
+ msgid ""
4568
+ "This feature will greatly minimize the useless and unecessary traffic and "
4569
+ "load on your server resulting from SPAM comments by blocking all comment "
4570
+ "requests which do not originate from your domain."
4571
+ msgstr ""
4572
+
4573
+ #: admin/wp-security-spam-menu.php:149
4574
+ msgid ""
4575
+ "In other words, if the comment was not submitted by a human who physically "
4576
+ "submitted the comment on your site, the request will be blocked."
4577
+ msgstr ""
4578
+
4579
+ # @ all-in-one-wp-security-and-firewall
4580
+ #: admin/wp-security-spam-menu.php:165
4581
+ msgid "Block Spambots From Posting Comments"
4582
+ msgstr ""
4583
+
4584
+ # @ all-in-one-wp-security-and-firewall
4585
+ #: admin/wp-security-spam-menu.php:168
4586
+ msgid ""
4587
+ "Check this if you want to apply a firewall rule which will block comments "
4588
+ "originating from spambots."
4589
+ msgstr ""
4590
+
4591
+ # @ all-in-one-wp-security-and-firewall
4592
+ #: admin/wp-security-spam-menu.php:172
4593
+ msgid ""
4594
+ "This feature will implement a firewall rule to block all comment attempts "
4595
+ "which do not originate from your domain."
4596
+ msgstr ""
4597
+
4598
+ # @ all-in-one-wp-security-and-firewall
4599
+ #: admin/wp-security-spam-menu.php:173
4600
+ msgid ""
4601
+ "A legitimate comment is one which is submitted by a human who physically "
4602
+ "fills out the comment form and clicks the submit button. For such events, "
4603
+ "the HTTP_REFERRER is always set to your own domain."
4604
+ msgstr ""
4605
+
4606
+ # @ all-in-one-wp-security-and-firewall
4607
+ #: admin/wp-security-spam-menu.php:174
4608
+ msgid ""
4609
+ "A comment submitted by a spambot is done by directly calling the comments."
4610
+ "php file, which usually means that the HTTP_REFERRER value is not your "
4611
+ "domain and often times empty."
4612
+ msgstr ""
4613
+
4614
+ # @ all-in-one-wp-security-and-firewall
4615
+ #: admin/wp-security-spam-menu.php:175
4616
+ msgid ""
4617
+ "This feature will check and block comment requests which are not referred by "
4618
+ "your domain thus greatly reducing your overall blog SPAM and PHP requests "
4619
+ "done by the server to process these comments."
4620
+ msgstr ""
4621
+
4622
+ #: admin/wp-security-spam-menu.php:210
4623
+ msgid ""
4624
+ "You entered a non numeric value for the minimum number of spam comments "
4625
+ "field. It has been set to the default value."
4626
+ msgstr ""
4627
+
4628
+ #: admin/wp-security-spam-menu.php:213
4629
+ msgid ""
4630
+ "You must enter an integer greater than zero for minimum number of spam "
4631
+ "comments field. It has been set to the default value."
4632
+ msgstr ""
4633
+
4634
+ # @ all-in-one-wp-security-and-firewall
4635
+ #: admin/wp-security-spam-menu.php:242
4636
+ msgid "Nonce check failed for list SPAM comment IPs!"
4637
+ msgstr ""
4638
+
4639
+ # @ all-in-one-wp-security-and-firewall
4640
+ #: admin/wp-security-spam-menu.php:248
4641
+ msgid ""
4642
+ "You entered a non numeric value for the minimum SPAM comments per IP field. "
4643
+ "It has been set to the default value."
4644
+ msgstr ""
4645
+
4646
+ # @ all-in-one-wp-security-and-firewall
4647
+ #: admin/wp-security-spam-menu.php:260
4648
+ #, php-format
4649
+ msgid ""
4650
+ "Displaying results for IP addresses which have posted a minimum of %s SPAM "
4651
+ "comments"
4652
+ msgstr ""
4653
+
4654
+ #: admin/wp-security-spam-menu.php:275
4655
+ msgid "Auto Block SPAMMER IPs"
4656
+ msgstr ""
4657
+
4658
+ #: admin/wp-security-spam-menu.php:280
4659
+ #, php-format
4660
+ msgid ""
4661
+ "This feature has detected that %s is not active. It is highly recommended "
4662
+ "that you activate the Akismet plugin to make the most of this feature."
4663
+ msgstr ""
4664
+
4665
+ #: admin/wp-security-spam-menu.php:289
4666
+ msgid ""
4667
+ "This feature allows you to automatically and permanently block IP addresses "
4668
+ "which have exceeded a certain number of comments labelled as SPAM."
4669
+ msgstr ""
4670
+
4671
+ #: admin/wp-security-spam-menu.php:290
4672
+ msgid ""
4673
+ "Comments are usually labelled as SPAM either by the Akismet plugin or "
4674
+ "manually by the WP administrator when they mark a comment as \"spam\" from "
4675
+ "the WordPress Comments menu."
4676
+ msgstr ""
4677
+
4678
+ #: admin/wp-security-spam-menu.php:304
4679
+ msgid "You currently have no IP addresses permanently blocked due to SPAM."
4680
+ msgstr ""
4681
+
4682
+ #: admin/wp-security-spam-menu.php:317
4683
+ msgid "Spammer IPs Added To Permanent Block List Today: "
4684
+ msgstr ""
4685
+
4686
+ #: admin/wp-security-spam-menu.php:318
4687
+ msgid "All Time Total: "
4688
+ msgstr ""
4689
+
4690
+ #: admin/wp-security-spam-menu.php:332
4691
+ msgid "Enable Auto Block of SPAM Comment IPs"
4692
+ msgstr ""
4693
+
4694
+ #: admin/wp-security-spam-menu.php:335
4695
+ msgid ""
4696
+ "Check this box if you want this plugin to automatically block IP addresses "
4697
+ "which submit SPAM comments."
4698
+ msgstr ""
4699
+
4700
+ #: admin/wp-security-spam-menu.php:339
4701
+ msgid "Minimum number of SPAM comments"
4702
+ msgstr ""
4703
+
4704
+ #: admin/wp-security-spam-menu.php:341
4705
+ msgid ""
4706
+ "Specify the minimum number of SPAM comments for an IP address before it is "
4707
+ "permanently blocked."
4708
+ msgstr ""
4709
+
4710
+ #: admin/wp-security-spam-menu.php:345
4711
+ msgid ""
4712
+ "Example 1: Setting this value to \"1\" will block ALL IP addresses which "
4713
+ "were used to submit at least one SPAM comment."
4714
+ msgstr ""
4715
+
4716
+ #: admin/wp-security-spam-menu.php:346
4717
+ msgid ""
4718
+ "Example 2: Setting this value to \"5\" will block only those IP addresses "
4719
+ "which were used to submit 5 SPAM comments or more on your site."
4720
+ msgstr ""
4721
+
4722
+ # @ all-in-one-wp-security-and-firewall
4723
+ #: admin/wp-security-spam-menu.php:364
4724
+ msgid "List SPAMMER IP Addresses"
4725
+ msgstr ""
4726
+
4727
+ #: admin/wp-security-spam-menu.php:368
4728
+ msgid ""
4729
+ "This section displays a list of the IP addresses of the people or bots who "
4730
+ "have left SPAM comments on your site."
4731
+ msgstr ""
4732
+
4733
+ # @ all-in-one-wp-security-and-firewall
4734
+ #: admin/wp-security-spam-menu.php:369
4735
+ msgid ""
4736
+ "This information can be handy for identifying the most persistent IP "
4737
+ "addresses or ranges used by spammers."
4738
+ msgstr ""
4739
+
4740
+ # @ all-in-one-wp-security-and-firewall
4741
+ #: admin/wp-security-spam-menu.php:370
4742
+ msgid ""
4743
+ "By inspecting the IP address data coming from spammers you will be in a "
4744
+ "better position to determine which addresses or address ranges you should "
4745
+ "block by adding them to your blacklist."
4746
+ msgstr ""
4747
+
4748
+ #: admin/wp-security-spam-menu.php:371
4749
+ msgid ""
4750
+ "To add one or more of the IP addresses displayed in the table below to your "
4751
+ "blacklist, simply click the \"Block\" link for the individual row or select "
4752
+ "more than one address\n"
4753
+ " using the checkboxes and then choose the \"block"
4754
+ "\" option from the Bulk Actions dropdown list and click the \"Apply\" button."
4755
+ msgstr ""
4756
+
4757
+ # @ all-in-one-wp-security-and-firewall
4758
+ #: admin/wp-security-spam-menu.php:381
4759
+ msgid "Minimum number of SPAM comments per IP"
4760
+ msgstr ""
4761
+
4762
+ # @ all-in-one-wp-security-and-firewall
4763
+ #: admin/wp-security-spam-menu.php:383
4764
+ msgid ""
4765
+ "This field allows you to list only those IP addresses which have been used "
4766
+ "to post X or more SPAM comments."
4767
+ msgstr ""
4768
+
4769
+ # @ all-in-one-wp-security-and-firewall
4770
+ #: admin/wp-security-spam-menu.php:387
4771
+ msgid ""
4772
+ "Example 1: Setting this value to \"0\" or \"1\" will list ALL IP addresses "
4773
+ "which were used to submit SPAM comments."
4774
+ msgstr ""
4775
+
4776
+ # @ all-in-one-wp-security-and-firewall
4777
+ #: admin/wp-security-spam-menu.php:388
4778
+ msgid ""
4779
+ "Example 2: Setting this value to \"5\" will list only those IP addresses "
4780
+ "which were used to submit 5 SPAM comments or more on your site."
4781
+ msgstr ""
4782
+
4783
+ # @ all-in-one-wp-security-and-firewall
4784
+ #: admin/wp-security-spam-menu.php:395
4785
+ msgid "Find IP Addresses"
4786
+ msgstr ""
4787
+
4788
+ # @ all-in-one-wp-security-and-firewall
4789
+ #: admin/wp-security-spam-menu.php:399
4790
+ msgid "SPAMMER IP Address Results"
4791
+ msgstr ""
4792
+
4793
+ # @ all-in-one-wp-security-and-firewall
4794
+ #: admin/wp-security-spam-menu.php:405 classes/wp-security-utility.php:225
4795
+ msgid ""
4796
+ "The plugin has detected that you are using a Multi-Site WordPress "
4797
+ "installation."
4798
+ msgstr ""
4799
+
4800
+ # @ all-in-one-wp-security-and-firewall
4801
+ #: admin/wp-security-spam-menu.php:406
4802
+ msgid "Only the \"superadmin\" can block IP addresses from the main site."
4803
+ msgstr ""
4804
+
4805
+ # @ all-in-one-wp-security-and-firewall
4806
+ #: admin/wp-security-spam-menu.php:407
4807
+ msgid ""
4808
+ "Take note of the IP addresses you want blocked and ask the superadmin to add "
4809
+ "these to the blacklist using the \"Blacklist Manager\" on the main site."
4810
+ msgstr ""
4811
+
4812
+ #: admin/wp-security-spam-menu.php:452
4813
+ msgid "BuddyPress SPAM Settings"
4814
+ msgstr ""
4815
+
4816
+ #: admin/wp-security-spam-menu.php:457
4817
+ msgid "Add Captcha To BuddyPress Registration Form"
4818
+ msgstr ""
4819
+
4820
+ #: admin/wp-security-spam-menu.php:461
4821
+ msgid ""
4822
+ "This feature will add a simple math captcha field in the BuddyPress "
4823
+ "registration form."
4824
+ msgstr ""
4825
+
4826
+ #: admin/wp-security-spam-menu.php:462
4827
+ msgid ""
4828
+ "Adding a captcha field in the registration form is a simple way of greatly "
4829
+ "reducing SPAM signups from bots without using .htaccess rules."
4830
+ msgstr ""
4831
+
4832
+ #: admin/wp-security-spam-menu.php:472
4833
+ msgid "Enable Captcha On BuddyPress Registration Form"
4834
+ msgstr ""
4835
+
4836
+ #: admin/wp-security-spam-menu.php:475
4837
+ msgid ""
4838
+ "Check this if you want to insert a captcha field on the BuddyPress "
4839
+ "registration forms"
4840
+ msgstr ""
4841
+
4842
+ #: admin/wp-security-spam-menu.php:484
4843
+ msgid ""
4844
+ "BuddyPress is not active! In order to use this feature you will need to have "
4845
+ "BuddyPress installed and activated."
4846
+ msgstr ""
4847
+
4848
+ #: admin/wp-security-user-accounts-menu.php:29
4849
+ msgid "WP Username"
4850
+ msgstr "WP 사용자 이름"
4851
+
4852
+ #: admin/wp-security-user-accounts-menu.php:30
4853
+ msgid "Display Name"
4854
+ msgstr "표시 이름"
4855
+
4856
+ #: admin/wp-security-user-accounts-menu.php:31
4857
+ #: other-includes/wp-security-rename-login-feature.php:915
4858
+ msgid "Password"
4859
+ msgstr "비밀번호"
4860
+
4861
+ # @ all-in-one-wp-security-and-firewall
4862
+ #: admin/wp-security-user-accounts-menu.php:86
4863
+ msgid "Admin User Security"
4864
+ msgstr "관리자 사용자 보안"
4865
+
4866
+ # @ all-in-one-wp-security-and-firewall
4867
+ #: admin/wp-security-user-accounts-menu.php:89
4868
+ msgid ""
4869
+ "By default, WordPress sets the administrator username to \"admin\" at "
4870
+ "installation time."
4871
+ msgstr ""
4872
+
4873
+ # @ all-in-one-wp-security-and-firewall
4874
+ #: admin/wp-security-user-accounts-menu.php:90
4875
+ msgid ""
4876
+ "A lot of hackers try to take advantage of this information by attempting "
4877
+ "\"Brute Force Login Attacks\" where they repeatedly try to guess the "
4878
+ "password by using \"admin\" for username."
4879
+ msgstr ""
4880
+
4881
+ # @ all-in-one-wp-security-and-firewall
4882
+ #: admin/wp-security-user-accounts-menu.php:91
4883
+ msgid ""
4884
+ "From a security perspective, changing the default \"admin\" user name is one "
4885
+ "of the first and smartest things you should do on your site."
4886
+ msgstr ""
4887
+
4888
+ # @ all-in-one-wp-security-and-firewall
4889
+ #: admin/wp-security-user-accounts-menu.php:92
4890
+ msgid ""
4891
+ "This feature will allow you to change your default \"admin\" user name to a "
4892
+ "more secure name of your choosing."
4893
+ msgstr ""
4894
+
4895
+ # @ all-in-one-wp-security-and-firewall
4896
+ #: admin/wp-security-user-accounts-menu.php:99
4897
+ msgid "List of Administrator Accounts"
4898
+ msgstr "관리자 계정 목록"
4899
+
4900
+ # @ all-in-one-wp-security-and-firewall
4901
+ #: admin/wp-security-user-accounts-menu.php:108
4902
+ #: classes/grade-system/wp-security-feature-item-manager.php:36
4903
+ msgid "Change Admin Username"
4904
+ msgstr "관리자 사용자 이름 변경"
4905
+
4906
+ # @ all-in-one-wp-security-and-firewall
4907
+ #: admin/wp-security-user-accounts-menu.php:116
4908
+ msgid ""
4909
+ "Your site currently has an account which uses the default \"admin\" "
4910
+ "username. \n"
4911
+ " It is highly recommended that you change this name to "
4912
+ "something else. \n"
4913
+ " Use the following field to change the admin username."
4914
+ msgstr ""
4915
+
4916
+ # @ all-in-one-wp-security-and-firewall
4917
+ #: admin/wp-security-user-accounts-menu.php:124
4918
+ msgid "New Admin Username"
4919
+ msgstr ""
4920
+
4921
+ # @ all-in-one-wp-security-and-firewall
4922
+ #: admin/wp-security-user-accounts-menu.php:126
4923
+ msgid "Choose a new username for admin."
4924
+ msgstr ""
4925
+
4926
+ # @ all-in-one-wp-security-and-firewall
4927
+ #: admin/wp-security-user-accounts-menu.php:130
4928
+ msgid "Change Username"
4929
+ msgstr ""
4930
+
4931
+ # @ all-in-one-wp-security-and-firewall
4932
+ #: admin/wp-security-user-accounts-menu.php:132
4933
+ msgid ""
4934
+ "NOTE: If you are currently logged in as \"admin\" you will be automatically "
4935
+ "logged out after changing your username and will be required to log back in."
4936
+ msgstr ""
4937
+
4938
+ # @ all-in-one-wp-security-and-firewall
4939
+ #: admin/wp-security-user-accounts-menu.php:139
4940
+ msgid "No action required! "
4941
+ msgstr "필요한 조치가 없습니다."
4942
+
4943
+ # @ all-in-one-wp-security-and-firewall
4944
+ #: admin/wp-security-user-accounts-menu.php:141
4945
+ msgid ""
4946
+ "Your site does not have any account which uses the default \"admin\" "
4947
+ "username. "
4948
+ msgstr "사이트에기본 \"관리자\" 사용자 이름을 사용하는 계정이 없습니다."
4949
+
4950
+ # @ all-in-one-wp-security-and-firewall
4951
+ #: admin/wp-security-user-accounts-menu.php:142
4952
+ msgid "This is good security practice."
4953
+ msgstr "이것은 좋은 보안 관행입니다."
4954
+
4955
+ # @ all-in-one-wp-security-and-firewall
4956
+ #: admin/wp-security-user-accounts-menu.php:154
4957
+ msgid "Display Name Security"
4958
+ msgstr ""
4959
+
4960
+ # @ all-in-one-wp-security-and-firewall
4961
+ #: admin/wp-security-user-accounts-menu.php:157
4962
+ msgid ""
4963
+ "When you submit a post or answer a comment, WordPress will usually display "
4964
+ "your \"nickname\"."
4965
+ msgstr ""
4966
+
4967
+ # @ all-in-one-wp-security-and-firewall
4968
+ #: admin/wp-security-user-accounts-menu.php:158
4969
+ msgid ""
4970
+ "By default the nickname is set to the login (or user) name of your account."
4971
+ msgstr ""
4972
+
4973
+ # @ all-in-one-wp-security-and-firewall
4974
+ #: admin/wp-security-user-accounts-menu.php:159
4975
+ msgid ""
4976
+ "From a security perspective, leaving your nickname the same as your user "
4977
+ "name is bad practice because it gives a hacker at least half of your "
4978
+ "account's login credentials."
4979
+ msgstr ""
4980
+
4981
+ # @ all-in-one-wp-security-and-firewall
4982
+ #: admin/wp-security-user-accounts-menu.php:160
4983
+ msgid ""
4984
+ "Therefore to further tighten your site's security you are advised to change "
4985
+ "your <strong>nickname</strong> and <strong>Display name</strong> to be "
4986
+ "different from your <strong>Username</strong>."
4987
+ msgstr ""
4988
+
4989
+ # @ all-in-one-wp-security-and-firewall
4990
+ #: admin/wp-security-user-accounts-menu.php:166
4991
+ msgid "Modify Accounts With Identical Login Name & Display Name"
4992
+ msgstr "동일한 로그인 이름 및 표시 이름으로 계정 수정"
4993
+
4994
+ # @ all-in-one-wp-security-and-firewall
4995
+ #: admin/wp-security-user-accounts-menu.php:175
4996
+ msgid ""
4997
+ "Your site currently has the following accounts which have an identical login "
4998
+ "name and display name."
4999
+ msgstr "사이트에는 현재 로그인 이름과 표시 이름이 동일한 다음 계정이 있습니다."
5000
+
5001
+ # @ all-in-one-wp-security-and-firewall
5002
+ #: admin/wp-security-user-accounts-menu.php:176
5003
+ msgid "Click on the link to edit the settings of that particular user account"
5004
+ msgstr "링크를 클릭하여 해당 특정 사용자 계정의 설정을 수정합니다."
5005
+
5006
+ # @ all-in-one-wp-security-and-firewall
5007
+ #: admin/wp-security-user-accounts-menu.php:191
5008
+ msgid "No action required."
5009
+ msgstr "필요한 조치가 없습니다."
5010
+
5011
+ # @ all-in-one-wp-security-and-firewall
5012
+ #: admin/wp-security-user-accounts-menu.php:192
5013
+ msgid ""
5014
+ "Your site does not have a user account where the display name is identical "
5015
+ "to the username."
5016
+ msgstr ""
5017
+
5018
+ # @ all-in-one-wp-security-and-firewall
5019
+ #: admin/wp-security-user-accounts-menu.php:203
5020
+ msgid "Password Tool"
5021
+ msgstr "암호 도구"
5022
+
5023
+ # @ all-in-one-wp-security-and-firewall
5024
+ #: admin/wp-security-user-accounts-menu.php:206
5025
+ msgid ""
5026
+ "Poor password selection is one of the most common weak points of many sites "
5027
+ "and is usually the first thing a hacker will try to exploit when attempting "
5028
+ "to break into your site."
5029
+ msgstr ""
5030
+
5031
+ # @ all-in-one-wp-security-and-firewall
5032
+ #: admin/wp-security-user-accounts-menu.php:207
5033
+ msgid ""
5034
+ "Many people fall into the trap of using a simple word or series of numbers "
5035
+ "as their password. Such a predictable and simple password would take a "
5036
+ "competent hacker merely minutes to guess your password by using a simple "
5037
+ "script which cycles through the easy and most common combinations."
5038
+ msgstr ""
5039
+
5040
+ # @ all-in-one-wp-security-and-firewall
5041
+ #: admin/wp-security-user-accounts-menu.php:208
5042
+ msgid ""
5043
+ "The longer and more complex your password is the harder it is for hackers to "
5044
+ "\"crack\" because more complex passwords require much greater computing "
5045
+ "power and time."
5046
+ msgstr ""
5047
+
5048
+ # @ all-in-one-wp-security-and-firewall
5049
+ #: admin/wp-security-user-accounts-menu.php:209
5050
+ msgid ""
5051
+ "This section contains a useful password strength tool which you can use to "
5052
+ "check whether your password is sufficiently strong enough."
5053
+ msgstr ""
5054
+
5055
+ # @ all-in-one-wp-security-and-firewall
5056
+ #: admin/wp-security-user-accounts-menu.php:214
5057
+ msgid "Password Strength Tool"
5058
+ msgstr "암호 강도 도구"
5059
+
5060
+ # @ all-in-one-wp-security-and-firewall
5061
+ #: admin/wp-security-user-accounts-menu.php:219
5062
+ msgid "Start typing a password."
5063
+ msgstr "암호 입력을 시작합니다."
5064
+
5065
+ #: admin/wp-security-user-accounts-menu.php:222
5066
+ msgid "It would take a desktop PC approximately"
5067
+ msgstr ""
5068
+
5069
+ #: admin/wp-security-user-accounts-menu.php:223
5070
+ msgid "1 sec"
5071
+ msgstr "1 초"
5072
+
5073
+ #: admin/wp-security-user-accounts-menu.php:223
5074
+ msgid "to crack your password!"
5075
+ msgstr ""
5076
+
5077
+ #: admin/wp-security-user-accounts-menu.php:228
5078
+ msgid "Password Strength"
5079
+ msgstr "비밀번호 보안수준"
5080
+
5081
+ # @ all-in-one-wp-security-and-firewall
5082
+ #: admin/wp-security-user-accounts-menu.php:244
5083
+ msgid "Nonce check failed on admin username change operation!"
5084
+ msgstr "Nonce 확인 관리자 사용자 이름 변경 작업에 실패!"
5085
+
5086
+ # @ all-in-one-wp-security-and-firewall
5087
+ #: admin/wp-security-user-accounts-menu.php:251
5088
+ msgid "Username "
5089
+ msgstr "이용자명"
5090
+
5091
+ # @ all-in-one-wp-security-and-firewall
5092
+ #: admin/wp-security-user-accounts-menu.php:251
5093
+ msgid " already exists. Please enter another value. "
5094
+ msgstr ""
5095
+
5096
+ # @ all-in-one-wp-security-and-firewall
5097
+ #: admin/wp-security-user-accounts-menu.php:268
5098
+ msgid "The database update operation of the user account failed!"
5099
+ msgstr ""
5100
+
5101
+ # @ all-in-one-wp-security-and-firewall
5102
+ #: admin/wp-security-user-accounts-menu.php:297
5103
+ msgid "You entered an invalid username. Please enter another value. "
5104
+ msgstr ""
5105
+
5106
+ # @ all-in-one-wp-security-and-firewall
5107
+ #: admin/wp-security-user-accounts-menu.php:301
5108
+ msgid "Please enter a value for your username. "
5109
+ msgstr ""
5110
+
5111
+ # @ all-in-one-wp-security-and-firewall
5112
+ #: admin/wp-security-user-accounts-menu.php:308
5113
+ msgid "Username Successfully Changed!"
5114
+ msgstr ""
5115
+
5116
+ # @ all-in-one-wp-security-and-firewall
5117
+ #: admin/wp-security-user-accounts-menu.php:328
5118
+ msgid "Account Login Name"
5119
+ msgstr "계정 로그인 이름"
5120
+
5121
+ # @ all-in-one-wp-security-and-firewall
5122
+ #: admin/wp-security-user-login-menu.php:26
5123
+ #: admin/wp-security-user-login-menu.php:325
5124
+ msgid "Failed Login Records"
5125
+ msgstr "실패한 로그인 레코드"
5126
+
5127
+ #: admin/wp-security-user-login-menu.php:27
5128
+ #: classes/grade-system/wp-security-feature-item-manager.php:51
5129
+ msgid "Force Logout"
5130
+ msgstr "강제 로그아웃"
5131
+
5132
+ # @ all-in-one-wp-security-and-firewall
5133
+ #: admin/wp-security-user-login-menu.php:28
5134
+ #: admin/wp-security-user-login-menu.php:459
5135
+ msgid "Account Activity Logs"
5136
+ msgstr "계정 활동 로그"
5137
+
5138
+ # @ all-in-one-wp-security-and-firewall
5139
+ #: admin/wp-security-user-login-menu.php:97
5140
+ msgid ""
5141
+ "You entered a non numeric value for the max login attempts field. It has "
5142
+ "been set to the default value."
5143
+ msgstr ""
5144
+
5145
+ # @ all-in-one-wp-security-and-firewall
5146
+ #: admin/wp-security-user-login-menu.php:104
5147
+ msgid ""
5148
+ "You entered a non numeric value for the login retry time period field. It "
5149
+ "has been set to the default value."
5150
+ msgstr ""
5151
+
5152
+ # @ all-in-one-wp-security-and-firewall
5153
+ #: admin/wp-security-user-login-menu.php:176
5154
+ msgid "Login Lockdown Configuration"
5155
+ msgstr "로그인 잠금 구성"
5156
+
5157
+ # @ all-in-one-wp-security-and-firewall
5158
+ #: admin/wp-security-user-login-menu.php:180
5159
+ msgid "One of the ways hackers try to compromise sites is via a "
5160
+ msgstr ""
5161
+
5162
+ # @ all-in-one-wp-security-and-firewall
5163
+ #: admin/wp-security-user-login-menu.php:180
5164
+ msgid "Brute Force Login Attack"
5165
+ msgstr ""
5166
+
5167
+ # @ all-in-one-wp-security-and-firewall
5168
+ #: admin/wp-security-user-login-menu.php:180
5169
+ msgid ""
5170
+ "This is where attackers use repeated login attempts until they guess the "
5171
+ "password."
5172
+ msgstr ""
5173
+
5174
+ # @ all-in-one-wp-security-and-firewall
5175
+ #: admin/wp-security-user-login-menu.php:181
5176
+ msgid ""
5177
+ "Apart from choosing strong passwords, monitoring and blocking IP addresses "
5178
+ "which are involved in repeated login failures in a short period of time is a "
5179
+ "very effective way to stop these types of attacks."
5180
+ msgstr ""
5181
+
5182
+ # @ all-in-one-wp-security-and-firewall
5183
+ #: admin/wp-security-user-login-menu.php:182
5184
+ #, php-format
5185
+ msgid ""
5186
+ "You may also want to checkout our %s feature for another secure way to "
5187
+ "protect against these types of attacks."
5188
+ msgstr ""
5189
+
5190
+ # @ all-in-one-wp-security-and-firewall
5191
+ #: admin/wp-security-user-login-menu.php:187
5192
+ msgid "Login Lockdown Options"
5193
+ msgstr "로그인 잠금 옵션"
5194
+
5195
+ # @ all-in-one-wp-security-and-firewall
5196
+ #: admin/wp-security-user-login-menu.php:198
5197
+ msgid "Enable Login Lockdown Feature"
5198
+ msgstr "로그인 잠금 기능 사용"
5199
+
5200
+ # @ all-in-one-wp-security-and-firewall
5201
+ #: admin/wp-security-user-login-menu.php:201
5202
+ msgid ""
5203
+ "Check this if you want to enable the login lockdown feature and apply the "
5204
+ "settings below"
5205
+ msgstr ""
5206
+ "로그인 잠금 기능을 사용하도록 설정하고 아래 설정을 적용하려면 이 방법을 확인"
5207
+ "하십시오."
5208
+
5209
+ #: admin/wp-security-user-login-menu.php:205
5210
+ msgid "Allow Unlock Requests"
5211
+ msgstr "잠금 해제 요청 허용"
5212
+
5213
+ #: admin/wp-security-user-login-menu.php:208
5214
+ msgid ""
5215
+ "Check this if you want to allow users to generate an automated unlock "
5216
+ "request link which will unlock their account"
5217
+ msgstr ""
5218
+ "사용자가 계정잠금을 해제하는 자동 잠금 해제 요청 링크를 생성하도록 허용하려"
5219
+ "면 이 방법을 확인합니다."
5220
+
5221
+ # @ all-in-one-wp-security-and-firewall
5222
+ #: admin/wp-security-user-login-menu.php:212
5223
+ msgid "Max Login Attempts"
5224
+ msgstr "최대 로그인 시도"
5225
+
5226
+ # @ all-in-one-wp-security-and-firewall
5227
+ #: admin/wp-security-user-login-menu.php:214
5228
+ msgid ""
5229
+ "Set the value for the maximum login retries before IP address is locked out"
5230
+ msgstr "IP 주소가 잠기기 전에 최대 로그인 리트리에 대한 값을 설정합니다."
5231
+
5232
+ # @ all-in-one-wp-security-and-firewall
5233
+ #: admin/wp-security-user-login-menu.php:218
5234
+ msgid "Login Retry Time Period (min)"
5235
+ msgstr "로그인 재시도 기간(최소)"
5236
+
5237
+ # @ all-in-one-wp-security-and-firewall
5238
+ #: admin/wp-security-user-login-menu.php:220
5239
+ msgid ""
5240
+ "If the maximum number of failed login attempts for a particular IP address "
5241
+ "occur within this time period the plugin will lock out that address"
5242
+ msgstr ""
5243
+ "특정 IP 주소에 대한 로그인 시도가 최대 실패한 경우 이 기간 내에 플러그인이 해"
5244
+ "당 주소를 잠그게 됩니다."
5245
+
5246
+ # @ all-in-one-wp-security-and-firewall
5247
+ #: admin/wp-security-user-login-menu.php:224
5248
+ msgid "Time Length of Lockout (min)"
5249
+ msgstr "잠금 시간 (최소)"
5250
+
5251
+ # @ all-in-one-wp-security-and-firewall
5252
+ #: admin/wp-security-user-login-menu.php:226
5253
+ msgid ""
5254
+ "Set the length of time for which a particular IP address will be prevented "
5255
+ "from logging in"
5256
+ msgstr "특정 IP 주소가 로그인되지 못하도록 하는 시간 의 길이 설정"
5257
+
5258
+ # @ all-in-one-wp-security-and-firewall
5259
+ #: admin/wp-security-user-login-menu.php:230
5260
+ msgid "Display Generic Error Message"
5261
+ msgstr "일반 오류 메시지 표시"
5262
+
5263
+ # @ all-in-one-wp-security-and-firewall
5264
+ #: admin/wp-security-user-login-menu.php:233
5265
+ msgid ""
5266
+ "Check this if you want to show a generic error message when a login attempt "
5267
+ "fails"
5268
+ msgstr ""
5269
+ "로그인 시도가 실패할 때 일반 오류 메시지를 표시하려는 경우 이 방법을 확인합니"
5270
+ "다."
5271
+
5272
+ # @ all-in-one-wp-security-and-firewall
5273
+ #: admin/wp-security-user-login-menu.php:237
5274
+ msgid "Instantly Lockout Invalid Usernames"
5275
+ msgstr "즉시 잘못된 사용자 이름을 잠그기"
5276
+
5277
+ # @ all-in-one-wp-security-and-firewall
5278
+ #: admin/wp-security-user-login-menu.php:240
5279
+ msgid ""
5280
+ "Check this if you want to instantly lockout login attempts with usernames "
5281
+ "which do not exist on your system"
5282
+ msgstr ""
5283
+ "시스템에 존재하지 않는 사용자 이름으로 로그인 시도를 즉시 잠그려면 이 방법을 "
5284
+ "확인하십시오."
5285
+
5286
+ #: admin/wp-security-user-login-menu.php:244
5287
+ msgid "Instantly Lockout Specific Usernames"
5288
+ msgstr "특정 사용자 이름을 즉시 잠그기"
5289
+
5290
+ #: admin/wp-security-user-login-menu.php:253
5291
+ msgid ""
5292
+ "Insert one username per line. Existing usernames are not blocked even if "
5293
+ "present in the list."
5294
+ msgstr ""
5295
+ "줄당 하나의 사용자 이름을 삽입합니다. 목록에 있는 경우에도 기존 사용자 이름"
5296
+ "은 차단되지 않습니다."
5297
+
5298
+ # @ all-in-one-wp-security-and-firewall
5299
+ #: admin/wp-security-user-login-menu.php:257
5300
+ msgid "Notify By Email"
5301
+ msgstr "이메일로 알림"
5302
+
5303
+ # @ all-in-one-wp-security-and-firewall
5304
+ #: admin/wp-security-user-login-menu.php:260
5305
+ msgid ""
5306
+ "Check this if you want to receive an email when someone has been locked out "
5307
+ "due to maximum failed login attempts"
5308
+ msgstr ""
5309
+ "로그인 시도가 최대 실패로 인해 다른 사람이 잠긴 경우 이메일을 수신하려는 경"
5310
+ "우 이 방법을 확인하십시오."
5311
+
5312
+ # @ all-in-one-wp-security-and-firewall
5313
+ #: admin/wp-security-user-login-menu.php:270
5314
+ msgid "Currently Locked Out IP Address Ranges"
5315
+ msgstr "현재 잠긴 IP 주소 범위"
5316
+
5317
+ #: admin/wp-security-user-login-menu.php:275
5318
+ #, php-format
5319
+ msgid ""
5320
+ "To see a list of all locked IP addresses and ranges go to the %s tab in the "
5321
+ "dashboard menu."
5322
+ msgstr ""
5323
+ "잠긴 모든 IP 주소 와 범위 목록을 보려면 대시보드 메뉴의 %s 탭으로 이동합니다."
5324
+
5325
+ # @ all-in-one-wp-security-and-firewall
5326
+ #: admin/wp-security-user-login-menu.php:291
5327
+ msgid "Nonce check failed for delete all failed login records operation!"
5328
+ msgstr ""
5329
+
5330
+ # @ all-in-one-wp-security-and-firewall
5331
+ #: admin/wp-security-user-login-menu.php:300
5332
+ msgid "User Login Feature - Delete all failed login records operation failed!"
5333
+ msgstr ""
5334
+
5335
+ # @ all-in-one-wp-security-and-firewall
5336
+ #: admin/wp-security-user-login-menu.php:304
5337
+ msgid "All records from the Failed Logins table were deleted successfully!"
5338
+ msgstr ""
5339
+
5340
+ # @ all-in-one-wp-security-and-firewall
5341
+ #: admin/wp-security-user-login-menu.php:319
5342
+ msgid "This tab displays the failed login attempts for your site."
5343
+ msgstr ""
5344
+
5345
+ # @ all-in-one-wp-security-and-firewall
5346
+ #: admin/wp-security-user-login-menu.php:320
5347
+ msgid ""
5348
+ "The information below can be handy if you need to do security investigations "
5349
+ "because it will show you the IP range, username and ID (if applicable) and "
5350
+ "the time/date of the failed login attempt."
5351
+ msgstr ""
5352
+
5353
+ # @ all-in-one-wp-security-and-firewall
5354
+ #: admin/wp-security-user-login-menu.php:341
5355
+ #: admin/wp-security-user-login-menu.php:350
5356
+ msgid "Delete All Failed Login Records"
5357
+ msgstr "실패한 로그인 레코드 모두 삭제"
5358
+
5359
+ # @ all-in-one-wp-security-and-firewall
5360
+ #: admin/wp-security-user-login-menu.php:347
5361
+ msgid ""
5362
+ "Click this button if you wish to delete all failed login records in one go."
5363
+ msgstr "한 번에 모든 실패한 로그인 레코드를 삭제하려면 이 단추를 클릭합니다."
5364
+
5365
+ # @ all-in-one-wp-security-and-firewall
5366
+ #: admin/wp-security-user-login-menu.php:375
5367
+ msgid ""
5368
+ "You entered a non numeric value for the logout time period field. It has "
5369
+ "been set to the default value."
5370
+ msgstr ""
5371
+
5372
+ # @ all-in-one-wp-security-and-firewall
5373
+ #: admin/wp-security-user-login-menu.php:403
5374
+ msgid ""
5375
+ "Setting an expiry period for your WP administration session is a simple way "
5376
+ "to protect against unauthorized access to your site from your computer."
5377
+ msgstr ""
5378
+
5379
+ # @ all-in-one-wp-security-and-firewall
5380
+ #: admin/wp-security-user-login-menu.php:404
5381
+ msgid ""
5382
+ "This feature allows you to specify a time period in minutes after which the "
5383
+ "admin session will expire and the user will be forced to log back in."
5384
+ msgstr ""
5385
+
5386
+ # @ all-in-one-wp-security-and-firewall
5387
+ #: admin/wp-security-user-login-menu.php:409
5388
+ msgid "Force User Logout Options"
5389
+ msgstr "사용자 로그아웃 옵션 강제"
5390
+
5391
+ # @ all-in-one-wp-security-and-firewall
5392
+ #: admin/wp-security-user-login-menu.php:421
5393
+ msgid "Enable Force WP User Logout"
5394
+ msgstr "강제 WP 사용자 로그아웃 사용"
5395
+
5396
+ # @ all-in-one-wp-security-and-firewall
5397
+ #: admin/wp-security-user-login-menu.php:424
5398
+ msgid ""
5399
+ "Check this if you want to force a wp user to be logged out after a "
5400
+ "configured amount of time"
5401
+ msgstr ""
5402
+ "구성된 시간 이후에 WP 사용자를 강제로 로그아웃하도록 하려면 이 방법을 확인합"
5403
+ "니다."
5404
+
5405
+ # @ all-in-one-wp-security-and-firewall
5406
+ #: admin/wp-security-user-login-menu.php:428
5407
+ msgid "Logout the WP User After XX Minutes"
5408
+ msgstr "XX 분 후 WP 사용자 로그아웃"
5409
+
5410
+ # @ all-in-one-wp-security-and-firewall
5411
+ #: admin/wp-security-user-login-menu.php:430
5412
+ msgid ""
5413
+ "(Minutes) The user will be forced to log back in after this time period has "
5414
+ "elapased."
5415
+ msgstr "(분) 이 기간이 중복된 후에는 사용자가 다시 로그인해야 합니다."
5416
+
5417
+ # @ all-in-one-wp-security-and-firewall
5418
+ #: admin/wp-security-user-login-menu.php:453
5419
+ msgid ""
5420
+ "This tab displays the login activity for WordPress admin accounts registered "
5421
+ "with your site."
5422
+ msgstr ""
5423
+
5424
+ # @ all-in-one-wp-security-and-firewall
5425
+ #: admin/wp-security-user-login-menu.php:454
5426
+ msgid ""
5427
+ "The information below can be handy if you need to do security investigations "
5428
+ "because it will show you the last 50 recent login events by username, IP "
5429
+ "address and time/date."
5430
+ msgstr ""
5431
+
5432
+ # @ all-in-one-wp-security-and-firewall
5433
+ #: admin/wp-security-user-login-menu.php:497
5434
+ msgid "Nonce check failed for users logged in list!"
5435
+ msgstr ""
5436
+
5437
+ # @ all-in-one-wp-security-and-firewall
5438
+ #: admin/wp-security-user-login-menu.php:505
5439
+ msgid "Refresh Logged In User Data"
5440
+ msgstr "사용자 데이터에 로그인한 새로 고침"
5441
+
5442
+ # @ all-in-one-wp-security-and-firewall
5443
+ #: admin/wp-security-user-login-menu.php:509
5444
+ msgid "Refresh Data"
5445
+ msgstr "데이터 새로 고침"
5446
+
5447
+ # @ all-in-one-wp-security-and-firewall
5448
+ #: admin/wp-security-user-login-menu.php:515
5449
+ msgid "This tab displays all users who are currently logged into your site."
5450
+ msgstr ""
5451
+
5452
+ # @ all-in-one-wp-security-and-firewall
5453
+ #: admin/wp-security-user-login-menu.php:516
5454
+ msgid ""
5455
+ "If you suspect there is a user or users who are logged in which should not "
5456
+ "be, you can block them by inspecting the IP addresses from the data below "
5457
+ "and adding them to your blacklist."
5458
+ msgstr ""
5459
+
5460
+ #: admin/wp-security-user-login-menu.php:517
5461
+ msgid ""
5462
+ "You can also instantly log them out by clicking on the \"Force Logout\" link "
5463
+ "when you hover over the row in the User Id column."
5464
+ msgstr ""
5465
+
5466
+ # @ all-in-one-wp-security-and-firewall
5467
+ #: admin/wp-security-user-login-menu.php:522
5468
+ msgid "Currently Logged In Users"
5469
+ msgstr "현재 로그인한 사용자"
5470
+
5471
+ #: admin/wp-security-user-registration-menu.php:23
5472
+ msgid "Manual Approval"
5473
+ msgstr "수동 승인"
5474
+
5475
+ #: admin/wp-security-user-registration-menu.php:24
5476
+ #: classes/grade-system/wp-security-feature-item-manager.php:57
5477
+ msgid "Registration Captcha"
5478
+ msgstr "등록 캡차"
5479
+
5480
+ #: admin/wp-security-user-registration-menu.php:117
5481
+ msgid "User Registration Settings"
5482
+ msgstr "사용자 등록 설정"
5483
+
5484
+ #: admin/wp-security-user-registration-menu.php:121
5485
+ msgid "Manually Approve New Registrations"
5486
+ msgstr ""
5487
+
5488
+ #: admin/wp-security-user-registration-menu.php:125
5489
+ msgid ""
5490
+ "If your site allows people to create their own accounts via the WordPress "
5491
+ "registration form, then you can minimize SPAM or bogus registrations by "
5492
+ "manually approving each registration."
5493
+ msgstr ""
5494
+
5495
+ #: admin/wp-security-user-registration-menu.php:126
5496
+ msgid ""
5497
+ "This feature will automatically set a newly registered account to \"pending"
5498
+ "\" until the administrator activates it. Therefore undesirable registrants "
5499
+ "will be unable to log in without your express approval."
5500
+ msgstr ""
5501
+
5502
+ #: admin/wp-security-user-registration-menu.php:127
5503
+ msgid ""
5504
+ "You can view all accounts which have been newly registered via the handy "
5505
+ "table below and you can also perform bulk activation/deactivation/deletion "
5506
+ "tasks on each account."
5507
+ msgstr ""
5508
+
5509
+ #: admin/wp-security-user-registration-menu.php:143
5510
+ msgid "Enable manual approval of new registrations"
5511
+ msgstr ""
5512
+
5513
+ #: admin/wp-security-user-registration-menu.php:146
5514
+ msgid ""
5515
+ "Check this if you want to automatically disable all newly registered "
5516
+ "accounts so that you can approve them manually."
5517
+ msgstr ""
5518
+
5519
+ #: admin/wp-security-user-registration-menu.php:155
5520
+ msgid "Approve Registered Users"
5521
+ msgstr ""
5522
+
5523
+ #: admin/wp-security-user-registration-menu.php:200
5524
+ msgid ""
5525
+ "This feature allows you to add a captcha form on the WordPress registration "
5526
+ "page."
5527
+ msgstr ""
5528
+
5529
+ #: admin/wp-security-user-registration-menu.php:201
5530
+ msgid ""
5531
+ "Users who attempt to register will also need to enter the answer to a simple "
5532
+ "mathematical question - if they enter the wrong answer, the plugin will not "
5533
+ "allow them to register."
5534
+ msgstr ""
5535
+
5536
+ #: admin/wp-security-user-registration-menu.php:202
5537
+ msgid ""
5538
+ "Therefore, adding a captcha form on the registration page is another "
5539
+ "effective yet simple SPAM registration prevention technique."
5540
+ msgstr ""
5541
+
5542
+ #: admin/wp-security-user-registration-menu.php:207
5543
+ msgid "Registration Page Captcha Settings"
5544
+ msgstr "등록 페이지 캡차 설정"
5545
+
5546
+ #: admin/wp-security-user-registration-menu.php:214
5547
+ msgid ""
5548
+ "The core default behaviour for WordPress Multi Site regarding user "
5549
+ "registration is that all users are registered via the main site."
5550
+ msgstr ""
5551
+
5552
+ #: admin/wp-security-user-registration-menu.php:215
5553
+ msgid ""
5554
+ "Therefore, if you would like to add a captcha form to the registration page "
5555
+ "for a Multi Site, please go to \"Registration Captcha\" settings on the main "
5556
+ "site."
5557
+ msgstr ""
5558
+
5559
+ #: admin/wp-security-user-registration-menu.php:230
5560
+ msgid "Enable Captcha On Registration Page"
5561
+ msgstr "등록시 보안 문자 사용"
5562
+
5563
+ #: admin/wp-security-user-registration-menu.php:233
5564
+ msgid ""
5565
+ "Check this if you want to insert a captcha form on the WordPress user "
5566
+ "registration page (if you allow user registration)."
5567
+ msgstr ""
5568
+ "워드 프레스 사용자 등록 페이지에 captcha 양식을 삽입하려는 경우 (사용자 등록"
5569
+ "을 허용하는 경우)을 확인하십시오."
5570
+
5571
+ #: admin/wp-security-whois-menu.php:22
5572
+ msgid "WhoIS Lookup"
5573
+ msgstr ""
5574
+
5575
+ # @ all-in-one-wp-security-and-firewall
5576
+ #: admin/wp-security-whois-menu.php:75
5577
+ msgid "WHOIS Lookup Information"
5578
+ msgstr "WHOIS 조회 정보"
5579
+
5580
+ # @ all-in-one-wp-security-and-firewall
5581
+ #: admin/wp-security-whois-menu.php:78
5582
+ msgid ""
5583
+ "This feature allows you to look up more detailed information about an IP "
5584
+ "address or domain name by querying the WHOIS API."
5585
+ msgstr ""
5586
+ "이 기능을 사용하면 WHOIS API를 쿼리하여 IP 주소 또는 도메인 이름에 대한 자세"
5587
+ "한 정보를 찾을 수 있습니다."
5588
+
5589
+ # @ all-in-one-wp-security-and-firewall
5590
+ #: admin/wp-security-whois-menu.php:84
5591
+ msgid "Perform a WHOIS Lookup for an IP or Domain Name"
5592
+ msgstr ""
5593
+
5594
+ # @ all-in-one-wp-security-and-firewall
5595
+ #: admin/wp-security-whois-menu.php:90
5596
+ msgid "Enter IP Address or Domain Name"
5597
+ msgstr ""
5598
+
5599
+ # @ all-in-one-wp-security-and-firewall
5600
+ #: admin/wp-security-whois-menu.php:92
5601
+ msgid ""
5602
+ "Enter an IP address or domain name. Example: 111.11.12.13 OR some-domain-"
5603
+ "name.com"
5604
+ msgstr ""
5605
+
5606
+ # @ all-in-one-wp-security-and-firewall
5607
+ #: admin/wp-security-whois-menu.php:96
5608
+ msgid "Perform IP or Domain Lookup"
5609
+ msgstr ""
5610
+
5611
+ # @ all-in-one-wp-security-and-firewall
5612
+ #: admin/wp-security-whois-menu.php:117
5613
+ msgid "WHOIS lookup successfully completed. Please see the results below:"
5614
+ msgstr ""
5615
+
5616
+ # @ all-in-one-wp-security-and-firewall
5617
+ #: admin/wp-security-whois-menu.php:129
5618
+ msgid ""
5619
+ "You have entered an incorrectly formatted IP address or domain name. Please "
5620
+ "try again."
5621
+ msgstr ""
5622
+
5623
+ # @ default
5624
+ #: admin/general/wp-security-list-table.php:178
5625
+ msgid "No items found."
5626
+ msgstr ""
5627
+
5628
+ # @ default
5629
+ #: admin/general/wp-security-list-table.php:281
5630
+ msgid "Bulk Actions"
5631
+ msgstr ""
5632
+
5633
+ # @ default
5634
+ #: admin/general/wp-security-list-table.php:291
5635
+ msgid "Apply"
5636
+ msgstr ""
5637
+
5638
+ # @ default
5639
+ #: admin/general/wp-security-list-table.php:365
5640
+ msgid "Show all dates"
5641
+ msgstr ""
5642
+
5643
+ # @ default
5644
+ #: admin/general/wp-security-list-table.php:378
5645
+ #, php-format
5646
+ msgid "%1$s %2$d"
5647
+ msgstr ""
5648
+
5649
+ # @ default
5650
+ #: admin/general/wp-security-list-table.php:394
5651
+ msgid "List View"
5652
+ msgstr ""
5653
+
5654
+ # @ default
5655
+ #: admin/general/wp-security-list-table.php:395
5656
+ msgid "Excerpt View"
5657
+ msgstr ""
5658
+
5659
+ # @ default
5660
+ #: admin/general/wp-security-list-table.php:421
5661
+ #, php-format
5662
+ msgid "%s pending"
5663
+ msgstr ""
5664
+
5665
+ # @ default
5666
+ #: admin/general/wp-security-list-table.php:653
5667
+ msgid "Select All"
5668
+ msgstr ""
5669
+
5670
+ # @ all-in-one-wp-security-and-firewall
5671
+ #: classes/wp-security-backup.php:235
5672
+ msgid "All In One WP Security - Site Database Backup"
5673
+ msgstr ""
5674
+
5675
+ # @ all-in-one-wp-security-and-firewall
5676
+ #: classes/wp-security-backup.php:237
5677
+ msgid "Attached is your latest DB backup file for site URL"
5678
+ msgstr ""
5679
+
5680
+ # @ all-in-one-wp-security-and-firewall
5681
+ #: classes/wp-security-backup.php:237
5682
+ msgid " generated on"
5683
+ msgstr ""
5684
+
5685
+ #: classes/wp-security-captcha.php:17
5686
+ #: classes/wp-security-general-init-tasks.php:366
5687
+ msgid "Please enter an answer in digits:"
5688
+ msgstr "숫자로 답변을 입력하십시오."
5689
+
5690
+ #: classes/wp-security-captcha.php:98
5691
+ msgid "one"
5692
+ msgstr "1"
5693
+
5694
+ #: classes/wp-security-captcha.php:99
5695
+ msgid "two"
5696
+ msgstr "2"
5697
+
5698
+ #: classes/wp-security-captcha.php:100
5699
+ msgid "three"
5700
+ msgstr "3"
5701
+
5702
+ #: classes/wp-security-captcha.php:101
5703
+ msgid "four"
5704
+ msgstr "4"
5705
+
5706
+ #: classes/wp-security-captcha.php:102
5707
+ msgid "five"
5708
+ msgstr "5"
5709
+
5710
+ #: classes/wp-security-captcha.php:103
5711
+ msgid "six"
5712
+ msgstr "6"
5713
+
5714
+ #: classes/wp-security-captcha.php:104
5715
+ msgid "seven"
5716
+ msgstr "7"
5717
+
5718
+ #: classes/wp-security-captcha.php:105
5719
+ msgid "eight"
5720
+ msgstr "8"
5721
+
5722
+ #: classes/wp-security-captcha.php:106
5723
+ msgid "nine"
5724
+ msgstr "9"
5725
+
5726
+ #: classes/wp-security-captcha.php:107
5727
+ msgid "ten"
5728
+ msgstr "10"
5729
+
5730
+ #: classes/wp-security-captcha.php:108
5731
+ msgid "eleven"
5732
+ msgstr "11"
5733
+
5734
+ #: classes/wp-security-captcha.php:109
5735
+ msgid "twelve"
5736
+ msgstr "12"
5737
+
5738
+ #: classes/wp-security-captcha.php:110
5739
+ msgid "thirteen"
5740
+ msgstr "13"
5741
+
5742
+ #: classes/wp-security-captcha.php:111
5743
+ msgid "fourteen"
5744
+ msgstr "14"
5745
+
5746
+ #: classes/wp-security-captcha.php:112
5747
+ msgid "fifteen"
5748
+ msgstr "15"
5749
+
5750
+ #: classes/wp-security-captcha.php:113
5751
+ msgid "sixteen"
5752
+ msgstr "16"
5753
+
5754
+ #: classes/wp-security-captcha.php:114
5755
+ msgid "seventeen"
5756
+ msgstr "17"
5757
+
5758
+ #: classes/wp-security-captcha.php:115
5759
+ msgid "eighteen"
5760
+ msgstr "18"
5761
+
5762
+ #: classes/wp-security-captcha.php:116
5763
+ msgid "nineteen"
5764
+ msgstr "19"
5765
+
5766
+ #: classes/wp-security-captcha.php:117
5767
+ msgid "twenty"
5768
+ msgstr "20"
5769
+
5770
+ # @ all-in-one-wp-security-and-firewall
5771
+ #: classes/wp-security-file-scan.php:60
5772
+ msgid "All In One WP Security - File change detected!"
5773
+ msgstr ""
5774
+
5775
+ # @ all-in-one-wp-security-and-firewall
5776
+ #: classes/wp-security-file-scan.php:62
5777
+ msgid "A file change was detected on your system for site URL"
5778
+ msgstr ""
5779
+
5780
+ # @ all-in-one-wp-security-and-firewall
5781
+ #: classes/wp-security-file-scan.php:62
5782
+ msgid ". Scan was generated on"
5783
+ msgstr ""
5784
+
5785
+ #: classes/wp-security-file-scan.php:63
5786
+ msgid "A summary of the scan results is shown below:"
5787
+ msgstr ""
5788
+
5789
+ # @ all-in-one-wp-security-and-firewall
5790
+ #: classes/wp-security-file-scan.php:66
5791
+ msgid "Login to your site to view the scan details."
5792
+ msgstr ""
5793
+
5794
+ #: classes/wp-security-file-scan.php:295
5795
+ msgid ""
5796
+ "Starting DB scan.....please wait while the plugin scans your database......."
5797
+ msgstr ""
5798
+
5799
+ #: classes/wp-security-file-scan.php:299
5800
+ msgid "Scanning options table........."
5801
+ msgstr ""
5802
+
5803
+ #: classes/wp-security-file-scan.php:368
5804
+ #, php-format
5805
+ msgid "%s and option_id: %s"
5806
+ msgstr ""
5807
+
5808
+ #: classes/wp-security-file-scan.php:371
5809
+ #, php-format
5810
+ msgid ""
5811
+ "Deletion of known pharma hack entry for option_name %s failed. Please delete "
5812
+ "this entry manually!"
5813
+ msgstr ""
5814
+
5815
+ #: classes/wp-security-file-scan.php:373
5816
+ #, php-format
5817
+ msgid ""
5818
+ "The options table entry with known pharma hack for option_id %s with "
5819
+ "option_name %s was successfully deleted"
5820
+ msgstr ""
5821
+
5822
+ #: classes/wp-security-file-scan.php:387
5823
+ #, php-format
5824
+ msgid "Possible suspicious entry found (for option_id: %s) - %s "
5825
+ msgstr ""
5826
+
5827
+ #: classes/wp-security-file-scan.php:396
5828
+ msgid "No suspicious entries found in options table"
5829
+ msgstr ""
5830
+
5831
+ #: classes/wp-security-file-scan.php:400
5832
+ msgid "Scanning posts table........."
5833
+ msgstr ""
5834
+
5835
+ #: classes/wp-security-file-scan.php:440
5836
+ #, php-format
5837
+ msgid ""
5838
+ "Possible suspicious entry found (for Post ID: %s) in the following column - "
5839
+ "%s "
5840
+ msgstr ""
5841
+
5842
+ #: classes/wp-security-file-scan.php:449
5843
+ msgid "No suspicious entries found in posts table"
5844
+ msgstr ""
5845
+
5846
+ #: classes/wp-security-file-scan.php:453
5847
+ msgid "Scanning links table........."
5848
+ msgstr ""
5849
+
5850
+ #: classes/wp-security-file-scan.php:492 classes/wp-security-file-scan.php:543
5851
+ #: classes/wp-security-file-scan.php:571 classes/wp-security-file-scan.php:599
5852
+ #: classes/wp-security-file-scan.php:648
5853
+ #, php-format
5854
+ msgid "Possible suspicious entry - %s "
5855
+ msgstr ""
5856
+
5857
+ #: classes/wp-security-file-scan.php:501
5858
+ msgid "No suspicious entries found in links table"
5859
+ msgstr ""
5860
+
5861
+ #: classes/wp-security-file-scan.php:505
5862
+ msgid "Scanning comments table........."
5863
+ msgstr ""
5864
+
5865
+ #: classes/wp-security-file-scan.php:552
5866
+ msgid "No suspicious entries found in comments table"
5867
+ msgstr ""
5868
+
5869
+ #: classes/wp-security-file-scan.php:556
5870
+ msgid "Scanning postmeta table........."
5871
+ msgstr ""
5872
+
5873
+ #: classes/wp-security-file-scan.php:580
5874
+ msgid "No suspicious entries found in postmeta table"
5875
+ msgstr ""
5876
+
5877
+ #: classes/wp-security-file-scan.php:584
5878
+ msgid "Scanning usermeta table........."
5879
+ msgstr ""
5880
+
5881
+ #: classes/wp-security-file-scan.php:608
5882
+ msgid "No suspicious entries found in usermeta table"
5883
+ msgstr ""
5884
+
5885
+ #: classes/wp-security-file-scan.php:612
5886
+ msgid "Scanning users table........."
5887
+ msgstr ""
5888
+
5889
+ #: classes/wp-security-file-scan.php:657
5890
+ msgid "No suspicious entries found in users table"
5891
+ msgstr ""
5892
+
5893
+ #: classes/wp-security-file-scan.php:664
5894
+ msgid ""
5895
+ "The plugin has detected that there are some potentially suspicious entries "
5896
+ "in your database."
5897
+ msgstr ""
5898
+
5899
+ #: classes/wp-security-file-scan.php:665
5900
+ msgid ""
5901
+ "Please verify the results listed below to confirm whether the entries "
5902
+ "detected are genuinely suspicious or if they are false positives."
5903
+ msgstr ""
5904
+
5905
+ #: classes/wp-security-file-scan.php:670 classes/wp-security-file-scan.php:685
5906
+ msgid "Disclaimer:"
5907
+ msgstr ""
5908
+
5909
+ #: classes/wp-security-file-scan.php:671
5910
+ msgid ""
5911
+ "Even though this database scan has revealed some suspicious entries, this "
5912
+ "does not necessarily mean that other parts of your DB or site are also not "
5913
+ "compromised."
5914
+ msgstr ""
5915
+
5916
+ #: classes/wp-security-file-scan.php:672 classes/wp-security-file-scan.php:687
5917
+ msgid ""
5918
+ "Please note that database scan performed by this feature is basic and looks "
5919
+ "for common malicious entries. Since hackers are continually evolving their "
5920
+ "methods this scan is not meant to be a guaranteed catch-all for malware."
5921
+ msgstr ""
5922
+
5923
+ #: classes/wp-security-file-scan.php:673 classes/wp-security-file-scan.php:688
5924
+ #, php-format
5925
+ msgid ""
5926
+ "It is your responsibility to do the due diligence and perform a robust %s on "
5927
+ "your site if you wish to be more certain that your site is clean."
5928
+ msgstr ""
5929
+
5930
+ #: classes/wp-security-file-scan.php:680
5931
+ msgid "DB Scan was completed successfully. No suspicious entries found."
5932
+ msgstr ""
5933
+
5934
+ #: classes/wp-security-file-scan.php:686
5935
+ msgid ""
5936
+ "Even though the database scan has not revealed any suspicious entries, this "
5937
+ "does not necessarily mean that your site is actually completely clean or not "
5938
+ "compromised."
5939
+ msgstr ""
5940
+
5941
+ #: classes/wp-security-file-scan.php:725
5942
+ msgid "The following files were added to your host"
5943
+ msgstr ""
5944
+
5945
+ #: classes/wp-security-file-scan.php:727 classes/wp-security-file-scan.php:736
5946
+ #: classes/wp-security-file-scan.php:746
5947
+ msgid "modified on: "
5948
+ msgstr ""
5949
+
5950
+ #: classes/wp-security-file-scan.php:734
5951
+ msgid "The following files were removed from your host"
5952
+ msgstr ""
5953
+
5954
+ #: classes/wp-security-file-scan.php:744
5955
+ msgid "The following files were changed on your host"
5956
+ msgstr ""
5957
+
5958
+ #: classes/wp-security-general-init-tasks.php:395
5959
+ #: classes/wp-security-general-init-tasks.php:478
5960
+ #: classes/wp-security-user-login.php:75
5961
+ #: classes/wp-security-user-registration.php:78
5962
+ #: classes/wp-security-user-registration.php:108
5963
+ msgid "<strong>ERROR</strong>: Your answer was incorrect - please try again."
5964
+ msgstr ""
5965
+ "<strong>오류</strong>: 당신의 대답은 잘못되었습니다 - 다시 시도하십시오."
5966
+
5967
+ #: classes/wp-security-general-init-tasks.php:407
5968
+ msgid "Enter something special:"
5969
+ msgstr ""
5970
+
5971
+ #: classes/wp-security-general-init-tasks.php:434
5972
+ msgid "Please enter an answer in the CAPTCHA field."
5973
+ msgstr ""
5974
+
5975
+ #: classes/wp-security-general-init-tasks.php:447
5976
+ msgid ""
5977
+ "Error: You entered an incorrect CAPTCHA answer. Please go back and try again."
5978
+ msgstr ""
5979
+
5980
+ #: classes/wp-security-general-init-tasks.php:505
5981
+ msgid "Your CAPTCHA answer was incorrect - please try again."
5982
+ msgstr ""
5983
+
5984
+ #: classes/wp-security-general-init-tasks.php:534
5985
+ msgid "Your registration is pending approval."
5986
+ msgstr ""
5987
+
5988
+ #: classes/wp-security-process-renamed-login-page.php:106
5989
+ msgid "Not available."
5990
+ msgstr ""
5991
+
5992
+ #: classes/wp-security-user-login.php:39
5993
+ msgid ""
5994
+ "<strong>ERROR</strong>: Access from your IP address has been blocked for "
5995
+ "security reasons. Please contact the administrator."
5996
+ msgstr ""
5997
+ "<strong>오류</strong>: 보안상의 이유로 IP 주소의 액세스가 차단되었습니다. 관"
5998
+ "리자에게 문의하십시오."
5999
+
6000
+ #: classes/wp-security-user-login.php:45
6001
+ msgid "Service Temporarily Unavailable"
6002
+ msgstr "일시적으로 사용할 수 없는 서비스"
6003
+
6004
+ #: classes/wp-security-user-login.php:118
6005
+ msgid ""
6006
+ "<strong>ACCOUNT PENDING</strong>: Your account is currently not active. An "
6007
+ "administrator needs to activate your account before you can login."
6008
+ msgstr ""
6009
+
6010
+ # @ all-in-one-wp-security-and-firewall
6011
+ #: classes/wp-security-user-login.php:175
6012
+ msgid "<strong>ERROR</strong>: Invalid login credentials."
6013
+ msgstr "<strong>오류</strong>: 잘못된 로그인 자격 증명."
6014
+
6015
+ # @ all-in-one-wp-security-and-firewall
6016
+ #: classes/wp-security-user-login.php:300
6017
+ msgid "Site Lockout Notification"
6018
+ msgstr "사이트 잠금 알림"
6019
+
6020
+ # @ all-in-one-wp-security-and-firewall
6021
+ #: classes/wp-security-user-login.php:301
6022
+ msgid ""
6023
+ "A lockdown event has occurred due to too many failed login attempts or "
6024
+ "invalid username:"
6025
+ msgstr ""
6026
+ "너무 많은 로그인 시도 또는 잘못된 사용자 이름으로 인해 잠금 이벤트가 발생했습"
6027
+ "니다."
6028
+
6029
+ #: classes/wp-security-user-login.php:302
6030
+ msgid "Username:"
6031
+ msgstr "사용자 이름:"
6032
+
6033
+ #: classes/wp-security-user-login.php:303
6034
+ msgid "IP Address:"
6035
+ msgstr "IP 주소:"
6036
+
6037
+ #: classes/wp-security-user-login.php:304
6038
+ msgid "IP Range:"
6039
+ msgstr "IP 범위:"
6040
+
6041
+ # @ all-in-one-wp-security-and-firewall
6042
+ #: classes/wp-security-user-login.php:305
6043
+ msgid ""
6044
+ "Log into your site's WordPress administration panel to see the duration of "
6045
+ "the lockout or to unlock the user."
6046
+ msgstr ""
6047
+ "사이트의 워드 프레스 관리 패널에 로그인하여 잠금 기간을 확인하거나 사용자의 "
6048
+ "잠금을 해제합니다."
6049
+
6050
+ #: classes/wp-security-user-login.php:377
6051
+ msgid "Unlock Request Notification"
6052
+ msgstr "요청 알림 잠금 해제"
6053
+
6054
+ #: classes/wp-security-user-login.php:379
6055
+ #, php-format
6056
+ msgid ""
6057
+ "You have requested for the account with email address %s to be unlocked. "
6058
+ "Please click the link below to unlock your account:"
6059
+ msgstr ""
6060
+ "이메일 주소 %s가 있는 계정의 잠금을 해제하도록 요청했습니다. 계정 잠금을 해제"
6061
+ "하려면 아래 링크를 클릭하십시오."
6062
+
6063
+ #: classes/wp-security-user-login.php:380
6064
+ #, php-format
6065
+ msgid "Unlock link: %s"
6066
+ msgstr "링크 잠금 해제: %s"
6067
+
6068
+ #: classes/wp-security-user-login.php:381
6069
+ msgid ""
6070
+ "After clicking the above link you will be able to login to the WordPress "
6071
+ "administration panel."
6072
+ msgstr "위의 링크를 클릭하면 WordPress 관리 패널에 로그인할 수 있습니다."
6073
+
6074
+ # @ all-in-one-wp-security-and-firewall
6075
+ #: classes/wp-security-user-login.php:538
6076
+ #, php-format
6077
+ msgid ""
6078
+ "Your session has expired because it has been over %d minutes since your last "
6079
+ "login."
6080
+ msgstr "마지막 로그인 이후 %d 분 이상되었기 때문에 세션이 만료되었습니다."
6081
+
6082
+ # @ all-in-one-wp-security-and-firewall
6083
+ #: classes/wp-security-user-login.php:539
6084
+ #: classes/wp-security-user-login.php:543
6085
+ msgid "Please log back in to continue."
6086
+ msgstr ""
6087
+
6088
+ # @ all-in-one-wp-security-and-firewall
6089
+ #: classes/wp-security-user-login.php:542
6090
+ msgid "You were logged out because you just changed the \"admin\" username."
6091
+ msgstr "방금 \"관리자\" 사용자 이름을 변경했기 때문에 로그아웃되었습니다."
6092
+
6093
+ #: classes/wp-security-user-login.php:571
6094
+ msgid "Request Unlock"
6095
+ msgstr "잠금 해제 요청"
6096
+
6097
+ #: classes/wp-security-user-registration.php:62
6098
+ #: classes/wp-security-user-registration.php:93
6099
+ msgid ""
6100
+ "<strong>ERROR</strong>: You are not allowed to register because your IP "
6101
+ "address is currently locked!"
6102
+ msgstr ""
6103
+ "<strong>오류</strong>: IP 주소가 현재 잠겨 있기 때문에 등록할 수 없습니다!"
6104
+
6105
+ # @ all-in-one-wp-security-and-firewall
6106
+ #: classes/wp-security-utility-ip-address.php:74
6107
+ #: classes/wp-security-utility-ip-address.php:89
6108
+ #: classes/wp-security-utility-ip-address.php:108
6109
+ #: classes/wp-security-utility-ip-address.php:123
6110
+ #: classes/wp-security-utility-ip-address.php:138
6111
+ msgid " is not a valid ip address format."
6112
+ msgstr "유효한 IP 주소 형식이 아닙니다."
6113
+
6114
+ # @ all-in-one-wp-security-and-firewall
6115
+ #: classes/wp-security-utility-ip-address.php:146
6116
+ msgid "You cannot ban your own IP address: "
6117
+ msgstr "자신의 IP 주소를 금지할 수 없습니다."
6118
+
6119
+ # @ all-in-one-wp-security-and-firewall
6120
+ #: classes/wp-security-utility.php:226
6121
+ msgid ""
6122
+ "This feature can only be configured by the \"superadmin\" on the main site."
6123
+ msgstr ""
6124
+
6125
+ #: classes/grade-system/wp-security-feature-item-manager.php:29
6126
+ msgid "Remove WP Generatore Meta Tag"
6127
+ msgstr ""
6128
+
6129
+ #: classes/grade-system/wp-security-feature-item-manager.php:38
6130
+ msgid "Change Display Name"
6131
+ msgstr "표시 이름 변경"
6132
+
6133
+ #: classes/grade-system/wp-security-feature-item-manager.php:45
6134
+ msgid "Custom Login Captcha"
6135
+ msgstr "사용자 정의 로그인 캡타"
6136
+
6137
+ #: classes/grade-system/wp-security-feature-item-manager.php:47
6138
+ msgid "Lost Password Captcha"
6139
+ msgstr ""
6140
+
6141
+ #: classes/grade-system/wp-security-feature-item-manager.php:49
6142
+ msgid "Login IP Whitelisting"
6143
+ msgstr "로그인 IP 화이트리스팅"
6144
+
6145
+ #: classes/grade-system/wp-security-feature-item-manager.php:55
6146
+ msgid "Registration Approval"
6147
+ msgstr "등록 승인"
6148
+
6149
+ #: classes/grade-system/wp-security-feature-item-manager.php:71
6150
+ msgid "WordPress Files Access"
6151
+ msgstr "워드 프레스 파일 액세스"
6152
+
6153
+ #: classes/grade-system/wp-security-feature-item-manager.php:75
6154
+ msgid "IP and User Agent Blacklisting"
6155
+ msgstr "IP 또는 사용자 에이전트 블랙리스트 사용"
6156
+
6157
+ #: classes/grade-system/wp-security-feature-item-manager.php:79
6158
+ msgid "Enable Basic Firewall"
6159
+ msgstr "기본 방화벽 사용"
6160
+
6161
+ #: classes/grade-system/wp-security-feature-item-manager.php:80
6162
+ msgid "Enable Pingback Vulnerability Protection"
6163
+ msgstr ""
6164
+
6165
+ #: classes/grade-system/wp-security-feature-item-manager.php:82
6166
+ msgid "Enable IP blocking for 404 detection"
6167
+ msgstr ""
6168
+
6169
+ #: classes/grade-system/wp-security-feature-item-manager.php:86
6170
+ msgid "Enable Rename Login Page"
6171
+ msgstr "이름 바꾸기 페이지 기능 사용"
6172
+
6173
+ #: classes/grade-system/wp-security-feature-item-manager.php:88
6174
+ msgid "Enable Login Honeypot"
6175
+ msgstr "로그인 허니팟 사용"
6176
+
6177
+ #: classes/grade-system/wp-security-feature-item-manager.php:94
6178
+ msgid "Forbid Proxy Comments"
6179
+ msgstr ""
6180
+
6181
+ #: classes/grade-system/wp-security-feature-item-manager.php:95
6182
+ msgid "Deny Bad Queries"
6183
+ msgstr ""
6184
+
6185
+ #: classes/grade-system/wp-security-feature-item-manager.php:97
6186
+ msgid "5G/6G Blacklist"
6187
+ msgstr ""
6188
+
6189
+ #: classes/grade-system/wp-security-feature-item-manager.php:100
6190
+ msgid "Block Spambots"
6191
+ msgstr ""
6192
+
6193
+ #: classes/grade-system/wp-security-feature-item-manager.php:102
6194
+ msgid "Comment Captcha"
6195
+ msgstr ""
6196
+
6197
+ #: classes/grade-system/wp-security-feature-item-manager.php:104
6198
+ msgid "BuddyPress Registration Captcha"
6199
+ msgstr ""
6200
+
6201
+ #: classes/grade-system/wp-security-feature-item.php:28
6202
+ msgid "Basic"
6203
+ msgstr "기본"
6204
+
6205
+ #: classes/grade-system/wp-security-feature-item.php:31
6206
+ msgid "Intermediate"
6207
+ msgstr "중급"
6208
+
6209
+ #: classes/grade-system/wp-security-feature-item.php:34
6210
+ msgid "Advanced"
6211
+ msgstr "고급"
6212
+
6213
+ #: other-includes/wp-security-rename-login-feature.php:99
6214
+ msgid "https://wordpress.org/"
6215
+ msgstr "https://ko.wordpress.org/"
6216
+
6217
+ #: other-includes/wp-security-rename-login-feature.php:100
6218
+ #: other-includes/wp-security-unlock-request.php:14
6219
+ msgid "Powered by WordPress"
6220
+ msgstr ""
6221
+
6222
+ #: other-includes/wp-security-rename-login-feature.php:217
6223
+ #, php-format
6224
+ msgid "&larr; Back to %s"
6225
+ msgstr "&larr; %s 돌아가기"
6226
+
6227
+ #: other-includes/wp-security-rename-login-feature.php:282
6228
+ msgid "<strong>ERROR</strong>: Enter a username or e-mail address."
6229
+ msgstr "<strong>오류.</strong>: 사용자 이름 또는 이메일 주소를 입력합니다."
6230
+
6231
+ #: other-includes/wp-security-rename-login-feature.php:286
6232
+ msgid ""
6233
+ "<strong>ERROR</strong>: There is no user registered with that email address."
6234
+ msgstr ""
6235
+
6236
+ #: other-includes/wp-security-rename-login-feature.php:303
6237
+ msgid "<strong>ERROR</strong>: Invalid username or e-mail."
6238
+ msgstr "<strong>오류</strong>: 잘못된 사용자 이름 또는 이메일."
6239
+
6240
+ #: other-includes/wp-security-rename-login-feature.php:341
6241
+ msgid "Password reset is not allowed for this user"
6242
+ msgstr "비밀번호 리셋은 해당 사용자에게 허용되지 않습니다."
6243
+
6244
+ #: other-includes/wp-security-rename-login-feature.php:367
6245
+ msgid "Someone requested that the password be reset for the following account:"
6246
+ msgstr "누군가 다음 계정에 대한 암호를 재설정하도록 요청했습니다."
6247
+
6248
+ #: other-includes/wp-security-rename-login-feature.php:369
6249
+ #, php-format
6250
+ msgid "Username: %s"
6251
+ msgstr "사용자 ID: %s"
6252
+
6253
+ #: other-includes/wp-security-rename-login-feature.php:370
6254
+ msgid "If this was a mistake, just ignore this email and nothing will happen."
6255
+ msgstr "실수라면 이 이메일은 무시하셔도 됩니다."
6256
+
6257
+ #: other-includes/wp-security-rename-login-feature.php:371
6258
+ msgid "To reset your password, visit the following address:"
6259
+ msgstr "비밀번호 재설정을 원하시면, 다음 주소를 방문하세요 :"
6260
+
6261
+ #: other-includes/wp-security-rename-login-feature.php:383
6262
+ #, php-format
6263
+ msgid "[%s] Password Reset"
6264
+ msgstr ""
6265
+
6266
+ #: other-includes/wp-security-rename-login-feature.php:408
6267
+ msgid "The e-mail could not be sent."
6268
+ msgstr ""
6269
+
6270
+ #: other-includes/wp-security-rename-login-feature.php:408
6271
+ msgid "Possible reason: your host may have disabled the mail() function."
6272
+ msgstr ""
6273
+
6274
+ #: other-includes/wp-security-rename-login-feature.php:530
6275
+ msgid ""
6276
+ "Your password reset link appears to be invalid. Please request a new link "
6277
+ "below."
6278
+ msgstr ""
6279
+
6280
+ #: other-includes/wp-security-rename-login-feature.php:532
6281
+ msgid "Your password reset link has expired. Please request a new link below."
6282
+ msgstr ""
6283
+
6284
+ #: other-includes/wp-security-rename-login-feature.php:553
6285
+ msgid "Lost Password"
6286
+ msgstr ""
6287
+
6288
+ #: other-includes/wp-security-rename-login-feature.php:553
6289
+ msgid ""
6290
+ "Please enter your username or email address. You will receive a link to "
6291
+ "create a new password via email."
6292
+ msgstr ""
6293
+
6294
+ #: other-includes/wp-security-rename-login-feature.php:561
6295
+ msgid "Username or E-mail:"
6296
+ msgstr ""
6297
+
6298
+ #: other-includes/wp-security-rename-login-feature.php:576
6299
+ #: other-includes/wp-security-rename-login-feature.php:639
6300
+ #: other-includes/wp-security-rename-login-feature.php:685
6301
+ #: other-includes/wp-security-rename-login-feature.php:767
6302
+ msgid "Log in"
6303
+ msgstr ""
6304
+
6305
+ #: other-includes/wp-security-rename-login-feature.php:579
6306
+ #: other-includes/wp-security-rename-login-feature.php:688
6307
+ #: other-includes/wp-security-rename-login-feature.php:945
6308
+ msgid "Register"
6309
+ msgstr ""
6310
+
6311
+ #: other-includes/wp-security-rename-login-feature.php:624
6312
+ msgid "The passwords do not match."
6313
+ msgstr ""
6314
+
6315
+ #: other-includes/wp-security-rename-login-feature.php:639
6316
+ msgid "Password Reset"
6317
+ msgstr ""
6318
+
6319
+ #: other-includes/wp-security-rename-login-feature.php:639
6320
+ msgid "Your password has been reset."
6321
+ msgstr ""
6322
+
6323
+ #: other-includes/wp-security-rename-login-feature.php:647
6324
+ msgid "Reset Password"
6325
+ msgstr ""
6326
+
6327
+ #: other-includes/wp-security-rename-login-feature.php:647
6328
+ msgid "Enter your new password below."
6329
+ msgstr ""
6330
+
6331
+ #: other-includes/wp-security-rename-login-feature.php:654
6332
+ msgid "New password"
6333
+ msgstr ""
6334
+
6335
+ #: other-includes/wp-security-rename-login-feature.php:659
6336
+ msgid "Strength indicator"
6337
+ msgstr ""
6338
+
6339
+ #: other-includes/wp-security-rename-login-feature.php:663
6340
+ msgid "Confirm new password"
6341
+ msgstr ""
6342
+
6343
+ #: other-includes/wp-security-rename-login-feature.php:740
6344
+ msgid "Registration Form"
6345
+ msgstr ""
6346
+
6347
+ #: other-includes/wp-security-rename-login-feature.php:740
6348
+ msgid "Register For This Site"
6349
+ msgstr ""
6350
+
6351
+ #: other-includes/wp-security-rename-login-feature.php:745
6352
+ msgid "Username"
6353
+ msgstr ""
6354
+
6355
+ #: other-includes/wp-security-rename-login-feature.php:749
6356
+ msgid "E-mail"
6357
+ msgstr ""
6358
+
6359
+ #: other-includes/wp-security-rename-login-feature.php:760
6360
+ msgid "Registration confirmation will be e-mailed to you."
6361
+ msgstr ""
6362
+
6363
+ #: other-includes/wp-security-rename-login-feature.php:768
6364
+ #: other-includes/wp-security-rename-login-feature.php:951
6365
+ msgid "Lost your password?"
6366
+ msgstr ""
6367
+
6368
+ #: other-includes/wp-security-rename-login-feature.php:808
6369
+ #, php-format
6370
+ msgid ""
6371
+ "<strong>ERROR</strong>: Cookies are blocked due to unexpected output. For "
6372
+ "help, please see <a href=\"%1$s\">this documentation</a> or try the <a href="
6373
+ "\"%2$s\">support forums</a>."
6374
+ msgstr ""
6375
+
6376
+ #: other-includes/wp-security-rename-login-feature.php:809
6377
+ #: other-includes/wp-security-rename-login-feature.php:813
6378
+ msgid "https://codex.wordpress.org/Cookies"
6379
+ msgstr ""
6380
+
6381
+ #: other-includes/wp-security-rename-login-feature.php:809
6382
+ msgid "https://wordpress.org/support/"
6383
+ msgstr ""
6384
+
6385
+ #: other-includes/wp-security-rename-login-feature.php:812
6386
+ #, php-format
6387
+ msgid ""
6388
+ "<strong>ERROR</strong>: Cookies are blocked or not supported by your "
6389
+ "browser. You must <a href=\"%s\">enable cookies</a> to use WordPress."
6390
+ msgstr ""
6391
+
6392
+ #: other-includes/wp-security-rename-login-feature.php:831
6393
+ msgid "You have logged in successfully."
6394
+ msgstr ""
6395
+
6396
+ #: other-includes/wp-security-rename-login-feature.php:865
6397
+ msgid ""
6398
+ "Session expired. Please log in again. You will not move away from this page."
6399
+ msgstr ""
6400
+
6401
+ #: other-includes/wp-security-rename-login-feature.php:869
6402
+ msgid "You are now logged out."
6403
+ msgstr ""
6404
+
6405
+ #: other-includes/wp-security-rename-login-feature.php:871
6406
+ msgid "User registration is currently not allowed."
6407
+ msgstr ""
6408
+
6409
+ #: other-includes/wp-security-rename-login-feature.php:873
6410
+ msgid "Check your e-mail for the confirmation link."
6411
+ msgstr ""
6412
+
6413
+ #: other-includes/wp-security-rename-login-feature.php:875
6414
+ msgid "Check your e-mail for your new password."
6415
+ msgstr ""
6416
+
6417
+ #: other-includes/wp-security-rename-login-feature.php:877
6418
+ msgid "Registration complete. Please check your e-mail."
6419
+ msgstr ""
6420
+
6421
+ #: other-includes/wp-security-rename-login-feature.php:879
6422
+ msgid ""
6423
+ "<strong>You have successfully updated WordPress!</strong> Please log back in "
6424
+ "to see what&#8217;s new."
6425
+ msgstr ""
6426
+
6427
+ #: other-includes/wp-security-rename-login-feature.php:896
6428
+ msgid "Log In"
6429
+ msgstr ""
6430
+
6431
+ #: other-includes/wp-security-rename-login-feature.php:911
6432
+ msgid "Username or Email"
6433
+ msgstr ""
6434
+
6435
+ #: other-includes/wp-security-unlock-request.php:13
6436
+ msgid "http://wordpress.org/"
6437
+ msgstr ""
6438
+
6439
+ #: other-includes/wp-security-unlock-request.php:33
6440
+ msgid "ERROR: Unable to process your request!"
6441
+ msgstr ""
6442
+
6443
+ #: other-includes/wp-security-unlock-request.php:50
6444
+ msgid "Please enter a valid email address"
6445
+ msgstr "올바은 이메일 주소를 입력하세요"
6446
+
6447
+ #: other-includes/wp-security-unlock-request.php:62
6448
+ msgid "User account not found!"
6449
+ msgstr "계정을 찾지 못했습니다."
6450
+
6451
+ #: other-includes/wp-security-unlock-request.php:77
6452
+ msgid "Error: No locked entry was found in the DB with your IP address range!"
6453
+ msgstr ""
6454
+
6455
+ #: other-includes/wp-security-unlock-request.php:82
6456
+ msgid "An email has been sent to you with the unlock instructions."
6457
+ msgstr "잠금 해제 지침과 함께 이메일이 전송되었습니다."
6458
+
6459
+ #: other-includes/wp-security-unlock-request.php:100
6460
+ msgid ""
6461
+ "You are here because you have been locked out due to too many incorrect "
6462
+ "login attempts."
6463
+ msgstr "잘못된 로그인 시도가 너무 많아 서 잠겨 있기 때문에 여기에 있습니다."
6464
+
6465
+ #: other-includes/wp-security-unlock-request.php:101
6466
+ msgid ""
6467
+ "Please enter your email address and you will receive an email with "
6468
+ "instructions on how to unlock yourself."
6469
+ msgstr ""
6470
+ "이메일 주소를 입력하면 잠금을 해제하는 방법에 대한 지침이 있는 이메일을 받게 "
6471
+ "됩니다."
6472
+
6473
+ #: other-includes/wp-security-unlock-request.php:107
6474
+ msgid "Email Address"
6475
+ msgstr "이메일 주소"
6476
+
6477
+ #~ msgid "PHP Safe Mode"
6478
+ #~ msgstr "PHP的安全模式"
6479
+
6480
+ #~ msgid "5G Blacklist Firewall Rules"
6481
+ #~ msgstr "5G黑名单防火墙规则"
6482
+
6483
+ #~ msgid "Attention:"
6484
+ #~ msgstr "注意:"
6485
+
6486
+ #~ msgid "WP Meta Info"
6487
+ #~ msgstr "WP元信息"
6488
+
6489
+ # @ all-in-one-wp-security-and-firewall
6490
+ #~ msgid "WP Generator Meta Tag"
6491
+ #~ msgstr "WP生成的元标签"
6492
+
6493
+ # @ all-in-one-wp-security-and-firewall
6494
+ #~ msgid ""
6495
+ #~ "Check this if you want to remove the meta info produced by WP Generator "
6496
+ #~ "from all pages"
6497
+ #~ msgstr "如果要从所有页面中删除WP生成的元信息,请选中此项"
6498
+
6499
+ #~ msgid ""
6500
+ #~ "<strong>ERROR</strong>: Login failed because your IP address has been "
6501
+ #~ "blocked. Please contact the administrator."
6502
+ #~ msgstr ""
6503
+ #~ "<strong>错误</strong>:登录失败,因为您的IP地址已被锁定。请与管理员联系。"
languages/all-in-one-wp-security-and-firewall.pot CHANGED
@@ -1,16 +1,16 @@
1
- # Copyright (C) 2019 Tips and Tricks HQ, Peter Petreski, Ruhul, Ivy
2
  # This file is distributed under the same license as the All In One WP Security plugin.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: All In One WP Security 4.3.9.4\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/all-in-one-wp-security-and-firewall\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "POT-Creation-Date: 2019-06-28T20:21:28+10:00\n"
13
- "PO-Revision-Date: 2019-06-28T20:21:28+10:00\n"
14
  "X-Generator: WP-CLI 2.2.0\n"
15
  "X-Domain: all-in-one-wp-security-and-firewall\n"
16
 
@@ -146,11 +146,11 @@ msgid "Nonce check failed for save blacklist settings!"
146
  msgstr ""
147
 
148
  #: admin/wp-security-blacklist-menu.php:139
149
- #: admin/wp-security-brute-force-menu.php:763
150
- #: admin/wp-security-firewall-menu.php:1053
151
  #: admin/wp-security-list-404.php:221
152
  #: admin/wp-security-list-comment-spammer-ip.php:205
153
- #: classes/wp-security-general-init-tasks.php:301
154
  msgid "The plugin was unable to write to the .htaccess file. Please edit file manually."
155
  msgstr ""
156
 
@@ -179,7 +179,7 @@ msgid "Country Blocking Addon"
179
  msgstr ""
180
 
181
  #: admin/wp-security-blacklist-menu.php:159
182
- #: admin/wp-security-firewall-menu.php:889
183
  msgid "You may also be interested in our %s."
184
  msgstr ""
185
 
@@ -224,23 +224,23 @@ msgstr ""
224
  #: admin/wp-security-brute-force-menu.php:422
225
  #: admin/wp-security-brute-force-menu.php:445
226
  #: admin/wp-security-brute-force-menu.php:466
227
- #: admin/wp-security-brute-force-menu.php:820
228
- #: admin/wp-security-filescan-menu.php:314
229
- #: admin/wp-security-filescan-menu.php:331
230
- #: admin/wp-security-firewall-menu.php:173
231
- #: admin/wp-security-firewall-menu.php:203
232
- #: admin/wp-security-firewall-menu.php:223
233
- #: admin/wp-security-firewall-menu.php:249
234
- #: admin/wp-security-firewall-menu.php:376
235
- #: admin/wp-security-firewall-menu.php:406
236
- #: admin/wp-security-firewall-menu.php:437
237
- #: admin/wp-security-firewall-menu.php:465
238
- #: admin/wp-security-firewall-menu.php:494
239
- #: admin/wp-security-firewall-menu.php:593
240
- #: admin/wp-security-firewall-menu.php:611
241
- #: admin/wp-security-firewall-menu.php:701
242
- #: admin/wp-security-firewall-menu.php:914
243
- #: admin/wp-security-firewall-menu.php:937
244
  #: admin/wp-security-settings-menu.php:771
245
  #: admin/wp-security-spam-menu.php:175
246
  #: admin/wp-security-spam-menu.php:348
@@ -250,7 +250,7 @@ msgid "More Info"
250
  msgstr ""
251
 
252
  #: admin/wp-security-blacklist-menu.php:202
253
- #: admin/wp-security-brute-force-menu.php:823
254
  #: admin/wp-security-user-login-menu.php:355
255
  msgid "Each IP address must be on a new line."
256
  msgstr ""
@@ -261,19 +261,19 @@ msgid "To specify an IP range use a wildcard \"*\" character. Acceptable ways to
261
  msgstr ""
262
 
263
  #: admin/wp-security-blacklist-menu.php:204
264
- #: admin/wp-security-brute-force-menu.php:825
265
  #: admin/wp-security-user-login-menu.php:357
266
  msgid "Example 1: 195.47.89.*"
267
  msgstr ""
268
 
269
  #: admin/wp-security-blacklist-menu.php:205
270
- #: admin/wp-security-brute-force-menu.php:826
271
  #: admin/wp-security-user-login-menu.php:358
272
  msgid "Example 2: 195.47.*.*"
273
  msgstr ""
274
 
275
  #: admin/wp-security-blacklist-menu.php:206
276
- #: admin/wp-security-brute-force-menu.php:827
277
  #: admin/wp-security-user-login-menu.php:359
278
  msgid "Example 3: 195.*.*.*"
279
  msgstr ""
@@ -300,14 +300,14 @@ msgstr ""
300
 
301
  #: admin/wp-security-blacklist-menu.php:233
302
  #: admin/wp-security-brute-force-menu.php:228
303
- #: admin/wp-security-brute-force-menu.php:699
304
- #: admin/wp-security-brute-force-menu.php:837
305
- #: admin/wp-security-brute-force-menu.php:899
306
  #: admin/wp-security-database-menu.php:358
307
- #: admin/wp-security-filescan-menu.php:354
308
  #: admin/wp-security-filesystem-menu.php:249
309
- #: admin/wp-security-firewall-menu.php:779
310
- #: admin/wp-security-firewall-menu.php:956
311
  #: admin/wp-security-misc-options-menu.php:174
312
  #: admin/wp-security-misc-options-menu.php:225
313
  #: admin/wp-security-misc-options-menu.php:285
@@ -327,8 +327,8 @@ msgid "Save Settings"
327
  msgstr ""
328
 
329
  #: admin/wp-security-brute-force-menu.php:29
330
- #: admin/wp-security-brute-force-menu.php:783
331
- #: admin/wp-security-dashboard-menu.php:768
332
  msgid "Rename Login Page"
333
  msgstr ""
334
 
@@ -343,7 +343,7 @@ msgid "Login Captcha"
343
  msgstr ""
344
 
345
  #: admin/wp-security-brute-force-menu.php:32
346
- #: admin/wp-security-brute-force-menu.php:770
347
  msgid "Login Whitelist"
348
  msgstr ""
349
 
@@ -365,8 +365,8 @@ msgstr ""
365
 
366
  #: admin/wp-security-brute-force-menu.php:121
367
  #: admin/wp-security-database-menu.php:275
368
- #: admin/wp-security-filescan-menu.php:178
369
- #: admin/wp-security-firewall-menu.php:846
370
  #: admin/wp-security-spam-menu.php:226
371
  #: admin/wp-security-spam-menu.php:260
372
  #: admin/wp-security-user-login-menu.php:142
@@ -464,10 +464,10 @@ msgstr ""
464
 
465
  #: admin/wp-security-brute-force-menu.php:321
466
  #: admin/wp-security-filesystem-menu.php:293
467
- #: admin/wp-security-firewall-menu.php:124
468
- #: admin/wp-security-firewall-menu.php:337
469
- #: admin/wp-security-firewall-menu.php:558
470
- #: admin/wp-security-firewall-menu.php:746
471
  #: admin/wp-security-settings-menu.php:636
472
  #: admin/wp-security-spam-menu.php:114
473
  msgid "Could not write to the .htaccess file. Please check the file permissions."
@@ -510,6 +510,8 @@ msgid "To learn more about how to use this feature please watch the following %s
510
  msgstr ""
511
 
512
  #: admin/wp-security-brute-force-menu.php:348
 
 
513
  msgid "Cookie-Based Brute Force Login Prevention"
514
  msgstr ""
515
 
@@ -679,7 +681,7 @@ msgid "Google reCAPTCHA Settings"
679
  msgstr ""
680
 
681
  #: admin/wp-security-brute-force-menu.php:575
682
- msgid "By enabling these settings the Google reCAPTCHA v2 widget will be applied by default for all forms in the captcha settings below."
683
  msgstr ""
684
 
685
  #: admin/wp-security-brute-force-menu.php:582
@@ -734,134 +736,134 @@ msgstr ""
734
  msgid "Check this if you want to insert captcha on a custom login form generated by the following WP function: wp_login_form()"
735
  msgstr ""
736
 
737
- #: admin/wp-security-brute-force-menu.php:656
738
  msgid "Woocommerce Forms Captcha Settings"
739
  msgstr ""
740
 
741
- #: admin/wp-security-brute-force-menu.php:665
742
  msgid "Enable Captcha On Woocommerce Login Form"
743
  msgstr ""
744
 
745
- #: admin/wp-security-brute-force-menu.php:668
746
  msgid "Check this if you want to insert captcha on a Woocommerce login form"
747
  msgstr ""
748
 
749
- #: admin/wp-security-brute-force-menu.php:678
750
  msgid "Enable Captcha On Woocommerce Lost Password Form"
751
  msgstr ""
752
 
753
- #: admin/wp-security-brute-force-menu.php:681
754
  msgid "Check this if you want to insert captcha on a Woocommerce lost password form"
755
  msgstr ""
756
 
757
- #: admin/wp-security-brute-force-menu.php:691
758
  msgid "Enable Captcha On Woocommerce Registration Form"
759
  msgstr ""
760
 
761
- #: admin/wp-security-brute-force-menu.php:694
762
  msgid "Check this if you want to insert captcha on a Woocommerce registration form"
763
  msgstr ""
764
 
765
- #: admin/wp-security-brute-force-menu.php:716
766
  msgid "Nonce check failed for save whitelist settings!"
767
  msgstr ""
768
 
769
- #: admin/wp-security-brute-force-menu.php:773
770
  msgid "The All In One WP Security Whitelist feature gives you the option of only allowing certain IP addresses or ranges to have access to your WordPress login page."
771
  msgstr ""
772
 
773
- #: admin/wp-security-brute-force-menu.php:774
774
  msgid "This feature will deny login access for all IP addresses which are not in your whitelist as configured in the settings below."
775
  msgstr ""
776
 
777
- #: admin/wp-security-brute-force-menu.php:775
778
  msgid "The plugin achieves this by writing the appropriate directives to your .htaccess file."
779
  msgstr ""
780
 
781
- #: admin/wp-security-brute-force-menu.php:776
782
  msgid "By allowing/blocking IP addresses via the .htaccess file your are using the most secure first line of defence because login access will only be granted to whitelisted IP addresses and other addresses will be blocked as soon as they try to access your login page."
783
  msgstr ""
784
 
785
- #: admin/wp-security-brute-force-menu.php:784
786
  msgid "Attention: If in addition to enabling the white list feature, you also have one of the %s or %s features enabled, <strong>you will still need to use your secret word or special slug in the URL when trying to access your WordPress login page</strong>."
787
  msgstr ""
788
 
789
- #: admin/wp-security-brute-force-menu.php:785
790
  msgid "These features are NOT functionally related. Having both of them enabled on your site means you are creating 2 layers of security."
791
  msgstr ""
792
 
793
- #: admin/wp-security-brute-force-menu.php:790
794
  msgid "Login IP Whitelist Settings"
795
  msgstr ""
796
 
797
- #: admin/wp-security-brute-force-menu.php:801
798
  msgid "Enable IP Whitelisting"
799
  msgstr ""
800
 
801
- #: admin/wp-security-brute-force-menu.php:804
802
  #: admin/wp-security-user-login-menu.php:343
803
  msgid "Check this if you want to enable the whitelisting of selected IP addresses specified in the settings below"
804
  msgstr ""
805
 
806
- #: admin/wp-security-brute-force-menu.php:808
807
  msgid "Your Current IP Address"
808
  msgstr ""
809
 
810
- #: admin/wp-security-brute-force-menu.php:811
811
  msgid "You can copy and paste this address in the text box below if you want to include it in your login whitelist."
812
  msgstr ""
813
 
814
- #: admin/wp-security-brute-force-menu.php:815
815
  #: admin/wp-security-user-login-menu.php:347
816
  msgid "Enter Whitelisted IP Addresses:"
817
  msgstr ""
818
 
819
- #: admin/wp-security-brute-force-menu.php:819
820
  msgid "Enter one or more IP addresses or IP ranges you wish to include in your whitelist. Only the addresses specified here will have access to the WordPress login page."
821
  msgstr ""
822
 
823
- #: admin/wp-security-brute-force-menu.php:824
824
  msgid "To specify an IPv4 range use a wildcard \"*\" character. Acceptable ways to use wildcards is shown in the examples below:"
825
  msgstr ""
826
 
827
- #: admin/wp-security-brute-force-menu.php:828
828
  msgid "Or you can enter an IPv6 address (NOTE: ranges/wildcards are currently not supported for ipv6)"
829
  msgstr ""
830
 
831
- #: admin/wp-security-brute-force-menu.php:829
832
  msgid "Example 4: 4102:0:3ea6:79fd:b:46f8:230f:bb05"
833
  msgstr ""
834
 
835
- #: admin/wp-security-brute-force-menu.php:830
836
  msgid "Example 5: 2205:0:1ca2:810d::"
837
  msgstr ""
838
 
839
- #: admin/wp-security-brute-force-menu.php:870
840
  msgid "This feature allows you to add a special hidden \"honeypot\" field on the WordPress login page. This will only be visible to robots and not humans."
841
  msgstr ""
842
 
843
- #: admin/wp-security-brute-force-menu.php:871
844
  msgid "Since robots usually fill in every input field from a login form, they will also submit a value for the special hidden honeypot field."
845
  msgstr ""
846
 
847
- #: admin/wp-security-brute-force-menu.php:872
848
  #: admin/wp-security-user-registration-menu.php:286
849
  msgid "The way honeypots work is that a hidden field is placed somewhere inside a form which only robots will submit. If that field contains a value when the form is submitted then a robot has most likely submitted the form and it is consequently dealt with."
850
  msgstr ""
851
 
852
- #: admin/wp-security-brute-force-menu.php:873
853
  msgid "Therefore, if the plugin detects that this field has a value when the login form is submitted, then the robot which is attempting to login to your site will be redirected to its localhost address - http://127.0.0.1."
854
  msgstr ""
855
 
856
- #: admin/wp-security-brute-force-menu.php:879
857
  msgid "Login Form Honeypot Settings"
858
  msgstr ""
859
 
860
- #: admin/wp-security-brute-force-menu.php:890
861
  msgid "Enable Honeypot On Login Page"
862
  msgstr ""
863
 
864
- #: admin/wp-security-brute-force-menu.php:893
865
  msgid "Check this if you want to enable the honeypot feature for the login page"
866
  msgstr ""
867
 
@@ -870,7 +872,7 @@ msgid "System Info"
870
  msgstr ""
871
 
872
  #: admin/wp-security-dashboard-menu.php:30
873
- #: admin/wp-security-dashboard-menu.php:490
874
  msgid "Locked IP Addresses"
875
  msgstr ""
876
 
@@ -896,7 +898,7 @@ msgstr ""
896
 
897
  #: admin/wp-security-dashboard-menu.php:109
898
  #: admin/wp-security-dashboard-menu.php:113
899
- #: admin/wp-security-dashboard-menu.php:222
900
  msgid "Version"
901
  msgstr ""
902
 
@@ -943,7 +945,7 @@ msgstr ""
943
  #: admin/wp-security-dashboard-menu.php:144
944
  #: admin/wp-security-dashboard-menu.php:153
945
  #: admin/wp-security-dashboard-menu.php:162
946
- #: admin/wp-security-dashboard-menu.php:200
947
  msgid "N/A"
948
  msgstr ""
949
 
@@ -961,13 +963,11 @@ msgstr ""
961
 
962
  #: admin/wp-security-dashboard-menu.php:169
963
  #: admin/wp-security-dashboard-menu.php:179
964
- #: admin/wp-security-dashboard-menu.php:188
965
  msgid "On"
966
  msgstr ""
967
 
968
  #: admin/wp-security-dashboard-menu.php:171
969
  #: admin/wp-security-dashboard-menu.php:181
970
- #: admin/wp-security-dashboard-menu.php:190
971
  msgid "Off"
972
  msgstr ""
973
 
@@ -975,248 +975,248 @@ msgstr ""
975
  msgid "PHP Allow URL fopen"
976
  msgstr ""
977
 
978
- #: admin/wp-security-dashboard-menu.php:193
979
  msgid "PHP Display Errors"
980
  msgstr ""
981
 
982
- #: admin/wp-security-dashboard-menu.php:203
983
  msgid "PHP Max Script Execution Time"
984
  msgstr ""
985
 
986
- #: admin/wp-security-dashboard-menu.php:210
987
  msgid "Active Plugins"
988
  msgstr ""
989
 
990
- #: admin/wp-security-dashboard-menu.php:221
991
  #: admin/wp-security-filesystem-menu.php:140
992
  #: admin/wp-security-filesystem-menu.php:159
993
  msgid "Name"
994
  msgstr ""
995
 
996
- #: admin/wp-security-dashboard-menu.php:223
997
  msgid "Plugin URL"
998
  msgstr ""
999
 
1000
- #: admin/wp-security-dashboard-menu.php:261
 
 
 
 
 
 
 
1001
  msgid "This tab displays the list of all IP addresses which are currently temporarily locked out due to the Login Lockdown feature:"
1002
  msgstr ""
1003
 
1004
- #: admin/wp-security-dashboard-menu.php:268
1005
  msgid "Currently Locked Out IP Addresses and Ranges"
1006
  msgstr ""
1007
 
1008
- #: admin/wp-security-dashboard-menu.php:312
1009
  msgid "This tab displays the list of all permanently blocked IP addresses."
1010
  msgstr ""
1011
 
1012
- #: admin/wp-security-dashboard-menu.php:313
1013
  #: admin/wp-security-spam-menu.php:297
1014
  msgid "NOTE: This feature does NOT use the .htaccess file to permanently block the IP addresses so it should be compatible with all web servers running WordPress."
1015
  msgstr ""
1016
 
1017
- #: admin/wp-security-dashboard-menu.php:319
1018
  msgid "Permanently Blocked IP Addresses"
1019
  msgstr ""
1020
 
1021
- #: admin/wp-security-dashboard-menu.php:331
1022
- #: admin/wp-security-firewall-menu.php:971
1023
  #: admin/wp-security-user-login-menu.php:429
1024
  #: admin/wp-security-user-login-menu.php:583
1025
  #: admin/wp-security-user-registration-menu.php:171
1026
  msgid "Search"
1027
  msgstr ""
1028
 
1029
- #: admin/wp-security-dashboard-menu.php:353
1030
  msgid "View Logs for All In WP Security & Firewall Plugin"
1031
  msgstr ""
1032
 
1033
- #: admin/wp-security-dashboard-menu.php:361
1034
  msgid "Log File"
1035
  msgstr ""
1036
 
1037
- #: admin/wp-security-dashboard-menu.php:365
1038
  msgid "--Select a file--"
1039
  msgstr ""
1040
 
1041
- #: admin/wp-security-dashboard-menu.php:376
1042
  msgid "Select one of the log files to view the contents"
1043
  msgstr ""
1044
 
1045
- #: admin/wp-security-dashboard-menu.php:381
1046
  msgid "View Logs"
1047
  msgstr ""
1048
 
1049
- #: admin/wp-security-dashboard-menu.php:402
1050
  msgid "Error! The file you selected is not a permitted file. You can only view log files created by this plugin."
1051
  msgstr ""
1052
 
1053
- #: admin/wp-security-dashboard-menu.php:409
1054
  msgid "Log File Contents For"
1055
  msgstr ""
1056
 
1057
- #: admin/wp-security-dashboard-menu.php:423
1058
  msgid "Log file is empty!"
1059
  msgstr ""
1060
 
1061
- #: admin/wp-security-dashboard-menu.php:478
1062
  msgid "Security Strength Meter"
1063
  msgstr ""
1064
 
1065
- #: admin/wp-security-dashboard-menu.php:479
1066
  msgid "Security Points Breakdown"
1067
  msgstr ""
1068
 
1069
- #: admin/wp-security-dashboard-menu.php:480
1070
  msgid "Spread the Word"
1071
  msgstr ""
1072
 
1073
- #: admin/wp-security-dashboard-menu.php:481
1074
  msgid "Get To Know The Developers"
1075
  msgstr ""
1076
 
1077
- #: admin/wp-security-dashboard-menu.php:482
1078
  msgid "Critical Feature Status"
1079
  msgstr ""
1080
 
1081
- #: admin/wp-security-dashboard-menu.php:483
1082
  msgid "Last 5 Logins"
1083
  msgstr ""
1084
 
1085
- #: admin/wp-security-dashboard-menu.php:484
1086
  msgid "Maintenance Mode Status"
1087
  msgstr ""
1088
 
1089
- #: admin/wp-security-dashboard-menu.php:489
1090
  #: admin/wp-security-user-login-menu.php:32
1091
  msgid "Logged In Users"
1092
  msgstr ""
1093
 
1094
- #: admin/wp-security-dashboard-menu.php:533
1095
  msgid "Total Achievable Points: "
1096
  msgstr ""
1097
 
1098
- #: admin/wp-security-dashboard-menu.php:535
1099
  msgid "Current Score of Your Site: "
1100
  msgstr ""
1101
 
1102
- #: admin/wp-security-dashboard-menu.php:588
1103
  msgid "We are working hard to make your WordPress site more secure. Please support us, here is how:"
1104
  msgstr ""
1105
 
1106
- #: admin/wp-security-dashboard-menu.php:589
1107
  msgid "Follow us on"
1108
  msgstr ""
1109
 
1110
- #: admin/wp-security-dashboard-menu.php:593
1111
  msgid "Post to Twitter"
1112
  msgstr ""
1113
 
1114
- #: admin/wp-security-dashboard-menu.php:597
1115
  msgid "Give us a Good Rating"
1116
  msgstr ""
1117
 
1118
- #: admin/wp-security-dashboard-menu.php:604
1119
  msgid "Wanna know more about the developers behind this plugin?"
1120
  msgstr ""
1121
 
1122
- #: admin/wp-security-dashboard-menu.php:616
1123
  msgid "Below is the current status of the critical features that you should activate on your site to achieve a minimum level of recommended security"
1124
  msgstr ""
1125
 
1126
- #: admin/wp-security-dashboard-menu.php:620
1127
  msgid "Admin Username"
1128
  msgstr ""
1129
 
1130
- #: admin/wp-security-dashboard-menu.php:635
1131
- #: admin/wp-security-user-login-menu.php:28
1132
- #: classes/grade-system/wp-security-feature-item-manager.php:42
1133
- msgid "Login Lockdown"
1134
- msgstr ""
1135
-
1136
- #: admin/wp-security-dashboard-menu.php:650
1137
  msgid "File Permission"
1138
  msgstr ""
1139
 
1140
- #: admin/wp-security-dashboard-menu.php:665
1141
  msgid "Basic Firewall"
1142
  msgstr ""
1143
 
1144
- #: admin/wp-security-dashboard-menu.php:694
1145
  msgid "No data found!"
1146
  msgstr ""
1147
 
1148
- #: admin/wp-security-dashboard-menu.php:698
1149
  msgid "Last 5 logins summary:"
1150
  msgstr ""
1151
 
1152
- #: admin/wp-security-dashboard-menu.php:702
1153
  msgid "User"
1154
  msgstr ""
1155
 
1156
- #: admin/wp-security-dashboard-menu.php:703
1157
  #: admin/wp-security-list-404.php:88
1158
  #: admin/wp-security-list-login-fails.php:57
1159
  #: admin/wp-security-list-permanent-blocked-ip.php:68
1160
  msgid "Date"
1161
  msgstr ""
1162
 
1163
- #: admin/wp-security-dashboard-menu.php:704
1164
  msgid "IP"
1165
  msgstr ""
1166
 
1167
- #: admin/wp-security-dashboard-menu.php:725
1168
  msgid "Maintenance mode is currently enabled. Remember to turn it off when you are done"
1169
  msgstr ""
1170
 
1171
- #: admin/wp-security-dashboard-menu.php:727
1172
  msgid "Maintenance mode is currently off."
1173
  msgstr ""
1174
 
1175
- #: admin/wp-security-dashboard-menu.php:731
1176
  msgid "Maintenance Mode"
1177
  msgstr ""
1178
 
1179
- #: admin/wp-security-dashboard-menu.php:749
1180
  msgid "Cookie-Based Brute Force"
1181
  msgstr ""
1182
 
1183
- #: admin/wp-security-dashboard-menu.php:753
1184
- #: admin/wp-security-dashboard-menu.php:771
1185
  msgid "The %s feature is currently active."
1186
  msgstr ""
1187
 
1188
- #: admin/wp-security-dashboard-menu.php:754
1189
- #: admin/wp-security-dashboard-menu.php:772
1190
  msgid "Your new WordPress login URL is now:"
1191
  msgstr ""
1192
 
1193
- #: admin/wp-security-dashboard-menu.php:786
1194
- msgid "Number of users currently logged in site-wide is:"
1195
  msgstr ""
1196
 
1197
- #: admin/wp-security-dashboard-menu.php:787
1198
- #: admin/wp-security-dashboard-menu.php:801
1199
- #: admin/wp-security-dashboard-menu.php:818
1200
- msgid "Go to the %s menu to see more details"
1201
  msgstr ""
1202
 
1203
- #: admin/wp-security-dashboard-menu.php:790
1204
- msgid "There are no other site-wide users currently logged in."
1205
  msgstr ""
1206
 
1207
- #: admin/wp-security-dashboard-menu.php:800
1208
- msgid "Number of users currently logged into your site (including you) is:"
1209
  msgstr ""
1210
 
1211
- #: admin/wp-security-dashboard-menu.php:804
1212
- msgid "There are no other users currently logged in."
 
1213
  msgstr ""
1214
 
1215
- #: admin/wp-security-dashboard-menu.php:814
1216
  msgid "There are no IP addresses currently locked out."
1217
  msgstr ""
1218
 
1219
- #: admin/wp-security-dashboard-menu.php:817
1220
  msgid "Number of temporarily locked out IP addresses: "
1221
  msgstr ""
1222
 
@@ -1320,7 +1320,7 @@ msgid "DB Backup failed. Please check the permissions of the backup directory."
1320
  msgstr ""
1321
 
1322
  #: admin/wp-security-database-menu.php:255
1323
- #: admin/wp-security-filescan-menu.php:136
1324
  msgid "You entered a non numeric value for the \"backup time interval\" field. It has been set to the default value."
1325
  msgstr ""
1326
 
@@ -1362,17 +1362,17 @@ msgid "Backup Time Interval"
1362
  msgstr ""
1363
 
1364
  #: admin/wp-security-database-menu.php:335
1365
- #: admin/wp-security-filescan-menu.php:302
1366
  msgid "Hours"
1367
  msgstr ""
1368
 
1369
  #: admin/wp-security-database-menu.php:336
1370
- #: admin/wp-security-filescan-menu.php:303
1371
  msgid "Days"
1372
  msgstr ""
1373
 
1374
  #: admin/wp-security-database-menu.php:337
1375
- #: admin/wp-security-filescan-menu.php:304
1376
  msgid "Weeks"
1377
  msgstr ""
1378
 
@@ -1434,51 +1434,51 @@ msgstr ""
1434
  msgid "%s tables had their prefix updated successfully!"
1435
  msgstr ""
1436
 
1437
- #: admin/wp-security-database-menu.php:462
1438
  msgid "wp-config.php file was updated successfully!"
1439
  msgstr ""
1440
 
1441
- #: admin/wp-security-database-menu.php:465
1442
  msgid ""
1443
  "The \"wp-config.php\" file was not able to be modified. Please modify this file manually using your favourite editor and search
1444
  \n"
1445
  " for variable \"$table_prefix\" and assign the following value to that variable: %s"
1446
  msgstr ""
1447
 
1448
- #: admin/wp-security-database-menu.php:477
1449
- #: admin/wp-security-database-menu.php:496
1450
  msgid "Update of table %s failed: unable to change %s to %s"
1451
  msgstr ""
1452
 
1453
- #: admin/wp-security-database-menu.php:481
1454
  msgid "The options table records which had references to the old DB prefix were updated successfully!"
1455
  msgstr ""
1456
 
1457
- #: admin/wp-security-database-menu.php:500
1458
  msgid "The %s table records which had references to the old DB prefix were updated successfully!"
1459
  msgstr ""
1460
 
1461
- #: admin/wp-security-database-menu.php:528
1462
  msgid "Error updating user_meta table where new meta_key = %s, old meta_key = %s and user_id = %s."
1463
  msgstr ""
1464
 
1465
- #: admin/wp-security-database-menu.php:533
1466
  msgid "The usermeta table records which had references to the old DB prefix were updated successfully!"
1467
  msgstr ""
1468
 
1469
- #: admin/wp-security-database-menu.php:535
1470
  msgid "DB prefix change tasks have been completed."
1471
  msgstr ""
1472
 
1473
- #: admin/wp-security-database-menu.php:579
1474
  msgid "Checking for MySQL tables of type \"view\"....."
1475
  msgstr ""
1476
 
1477
- #: admin/wp-security-database-menu.php:596
1478
  msgid "Update of the following MySQL view definition failed: %s"
1479
  msgstr ""
1480
 
1481
- #: admin/wp-security-database-menu.php:603
1482
  msgid "%s view definitions were updated successfully!"
1483
  msgstr ""
1484
 
@@ -1491,278 +1491,282 @@ msgstr ""
1491
  msgid "Malware Scan"
1492
  msgstr ""
1493
 
1494
- #: admin/wp-security-filescan-menu.php:96
1495
  msgid "There have been no file changes since the last scan."
1496
  msgstr ""
1497
 
1498
- #: admin/wp-security-filescan-menu.php:106
1499
  msgid "Nonce check failed for manual file change detection scan operation!"
1500
  msgstr ""
1501
 
1502
- #: admin/wp-security-filescan-menu.php:113
1503
- msgid "The plugin has detected that this is your first file change detection scan. The file details from this scan will be used to detect file changes for future scans!"
1504
  msgstr ""
1505
 
1506
- #: admin/wp-security-filescan-menu.php:115
 
 
 
 
1507
  msgid "Scan Complete - There were no file changes detected!"
1508
  msgstr ""
1509
 
1510
- #: admin/wp-security-filescan-menu.php:170
1511
  msgid "The following address was removed because it is not a valid email address: "
1512
  msgstr ""
1513
 
1514
- #: admin/wp-security-filescan-menu.php:210
1515
  msgid ""
1516
  "NEW SCAN COMPLETED: The plugin has detected that you have made changes to the \"File Types To Ignore\" or \"Files To Ignore\" fields.
1517
  \n"
1518
  " In order to ensure that future scan results are accurate, the old scan data has been refreshed."
1519
  msgstr ""
1520
 
1521
- #: admin/wp-security-filescan-menu.php:220
1522
  msgid "All In One WP Security & Firewall has detected that there was a change in your host's files."
1523
  msgstr ""
1524
 
1525
- #: admin/wp-security-filescan-menu.php:222
1526
  msgid "View Scan Details & Clear This Message"
1527
  msgstr ""
1528
 
1529
- #: admin/wp-security-filescan-menu.php:231
1530
  msgid "If given an opportunity hackers can insert their code or files into your system which they can then use to carry out malicious acts on your site."
1531
  msgstr ""
1532
 
1533
- #: admin/wp-security-filescan-menu.php:232
1534
  msgid "Being informed of any changes in your files can be a good way to quickly prevent a hacker from causing damage to your website."
1535
  msgstr ""
1536
 
1537
- #: admin/wp-security-filescan-menu.php:233
1538
  msgid "In general, WordPress core and plugin files and file types such as \".php\" or \".js\" should not change often and when they do, it is important that you are made aware when a change occurs and which file was affected."
1539
  msgstr ""
1540
 
1541
- #: admin/wp-security-filescan-menu.php:234
1542
  msgid "The \"File Change Detection Feature\" will notify you of any file change which occurs on your system, including the addition and deletion of files by performing a regular automated or manual scan of your system's files."
1543
  msgstr ""
1544
 
1545
- #: admin/wp-security-filescan-menu.php:235
1546
  msgid "This feature also allows you to exclude certain files or folders from the scan in cases where you know that they change often as part of their normal operation. (For example log files and certain caching plugin files may change often and hence you may choose to exclude such files from the file change detection scan)"
1547
  msgstr ""
1548
 
1549
- #: admin/wp-security-filescan-menu.php:246
1550
  msgid "It appears that your server is using an old PHP version which is missing the %s. The file scanner feature needs this class in order to work. If you would like to use this feature please upgrade your server PHP version to 5.3 or greater."
1551
  msgstr ""
1552
 
1553
- #: admin/wp-security-filescan-menu.php:254
1554
  msgid "Manual File Change Detection Scan"
1555
  msgstr ""
1556
 
1557
- #: admin/wp-security-filescan-menu.php:260
1558
  msgid "To perform a manual file change detection scan click on the button below."
1559
  msgstr ""
1560
 
1561
- #: admin/wp-security-filescan-menu.php:263
1562
  msgid "Perform Scan Now"
1563
  msgstr ""
1564
 
1565
- #: admin/wp-security-filescan-menu.php:267
1566
  msgid "View Last Saved File Change Results"
1567
  msgstr ""
1568
 
1569
- #: admin/wp-security-filescan-menu.php:273
1570
  msgid "Click the button below to view the saved file change results from the last scan."
1571
  msgstr ""
1572
 
1573
- #: admin/wp-security-filescan-menu.php:276
1574
  msgid "View Last File Change"
1575
  msgstr ""
1576
 
1577
- #: admin/wp-security-filescan-menu.php:280
1578
  msgid "File Change Detection Settings"
1579
  msgstr ""
1580
 
1581
- #: admin/wp-security-filescan-menu.php:292
1582
  msgid "Enable Automated File Change Detection Scan"
1583
  msgstr ""
1584
 
1585
- #: admin/wp-security-filescan-menu.php:295
1586
  msgid "Check this if you want the system to automatically/periodically scan your files to check for file changes based on the settings below"
1587
  msgstr ""
1588
 
1589
- #: admin/wp-security-filescan-menu.php:299
1590
  msgid "Scan Time Interval"
1591
  msgstr ""
1592
 
1593
- #: admin/wp-security-filescan-menu.php:306
1594
  msgid "Set the value for how often you would like a scan to occur"
1595
  msgstr ""
1596
 
1597
- #: admin/wp-security-filescan-menu.php:310
1598
  msgid "File Types To Ignore"
1599
  msgstr ""
1600
 
1601
- #: admin/wp-security-filescan-menu.php:313
1602
  msgid "Enter each file type or extension on a new line which you wish to exclude from the file change detection scan."
1603
  msgstr ""
1604
 
1605
- #: admin/wp-security-filescan-menu.php:317
1606
  msgid "You can exclude file types from the scan which would not normally pose any security threat if they were changed. These can include things such as image files."
1607
  msgstr ""
1608
 
1609
- #: admin/wp-security-filescan-menu.php:318
1610
  msgid "Example: If you want the scanner to ignore files of type jpg, png, and bmp, then you would enter the following:"
1611
  msgstr ""
1612
 
1613
- #: admin/wp-security-filescan-menu.php:319
1614
  msgid "jpg"
1615
  msgstr ""
1616
 
1617
- #: admin/wp-security-filescan-menu.php:320
1618
  msgid "png"
1619
  msgstr ""
1620
 
1621
- #: admin/wp-security-filescan-menu.php:321
1622
  msgid "bmp"
1623
  msgstr ""
1624
 
1625
- #: admin/wp-security-filescan-menu.php:327
1626
  msgid "Files/Directories To Ignore"
1627
  msgstr ""
1628
 
1629
- #: admin/wp-security-filescan-menu.php:330
1630
  msgid "Enter each file or directory on a new line which you wish to exclude from the file change detection scan."
1631
  msgstr ""
1632
 
1633
- #: admin/wp-security-filescan-menu.php:334
1634
  msgid "You can exclude specific files/directories from the scan which would not normally pose any security threat if they were changed. These can include things such as log files."
1635
  msgstr ""
1636
 
1637
- #: admin/wp-security-filescan-menu.php:335
1638
  msgid "Example: If you want the scanner to ignore certain files in different directories or whole directories, then you would enter the following:"
1639
  msgstr ""
1640
 
1641
- #: admin/wp-security-filescan-menu.php:336
1642
  msgid "cache/config/master.php"
1643
  msgstr ""
1644
 
1645
- #: admin/wp-security-filescan-menu.php:337
1646
  msgid "somedirectory"
1647
  msgstr ""
1648
 
1649
- #: admin/wp-security-filescan-menu.php:343
1650
  msgid "Send Email When Change Detected"
1651
  msgstr ""
1652
 
1653
- #: admin/wp-security-filescan-menu.php:346
1654
  msgid "Check this if you want the system to email you if a file change was detected"
1655
  msgstr ""
1656
 
1657
- #: admin/wp-security-filescan-menu.php:350
1658
  msgid "Enter one or more email addresses on a new line."
1659
  msgstr ""
1660
 
1661
- #: admin/wp-security-filescan-menu.php:367
1662
  msgid "What is Malware?"
1663
  msgstr ""
1664
 
1665
- #: admin/wp-security-filescan-menu.php:368
1666
  msgid "The word Malware stands for Malicious Software. It can consist of things like trojan horses, adware, worms, spyware and any other undesirable code which a hacker will try to inject into your website."
1667
  msgstr ""
1668
 
1669
- #: admin/wp-security-filescan-menu.php:369
1670
  msgid "Often when malware code has been inserted into your site you will normally not notice anything out of the ordinary based on appearances, but it can have a dramatic effect on your site's search ranking."
1671
  msgstr ""
1672
 
1673
- #: admin/wp-security-filescan-menu.php:370
1674
  msgid "This is because the bots and spiders from search engines such as Google have the capability to detect malware when they are indexing the pages on your site, and consequently they can blacklist your website which will in turn affect your search rankings."
1675
  msgstr ""
1676
 
1677
- #: admin/wp-security-filescan-menu.php:372
1678
  msgid "CLICK HERE"
1679
  msgstr ""
1680
 
1681
- #: admin/wp-security-filescan-menu.php:374
1682
  msgid "Scanning For Malware"
1683
  msgstr ""
1684
 
1685
- #: admin/wp-security-filescan-menu.php:375
1686
  msgid "Due to the constantly changing and complex nature of Malware, scanning for such things using a standalone plugin will not work reliably. This is something best done via an external scan of your site regularly."
1687
  msgstr ""
1688
 
1689
- #: admin/wp-security-filescan-menu.php:376
1690
  msgid "This is why we have created an easy-to-use scanning service which is hosted off our own server which will scan your site for malware once every day and notify you if it finds anything."
1691
  msgstr ""
1692
 
1693
- #: admin/wp-security-filescan-menu.php:377
1694
  msgid "When you sign up for this service you will get the following:"
1695
  msgstr ""
1696
 
1697
- #: admin/wp-security-filescan-menu.php:379
1698
  msgid "Automatic Daily Scan of 1 Website"
1699
  msgstr ""
1700
 
1701
- #: admin/wp-security-filescan-menu.php:380
1702
  msgid "Automatic Malware & Blacklist Monitoring"
1703
  msgstr ""
1704
 
1705
- #: admin/wp-security-filescan-menu.php:381
1706
  msgid "Automatic Email Alerting"
1707
  msgstr ""
1708
 
1709
- #: admin/wp-security-filescan-menu.php:382
1710
  msgid "Site uptime monitoring"
1711
  msgstr ""
1712
 
1713
- #: admin/wp-security-filescan-menu.php:383
1714
  msgid "Site response time monitoring"
1715
  msgstr ""
1716
 
1717
- #: admin/wp-security-filescan-menu.php:384
1718
  msgid "We provide advice for malware cleanup"
1719
  msgstr ""
1720
 
1721
- #: admin/wp-security-filescan-menu.php:385
1722
  msgid "Blacklist Removal"
1723
  msgstr ""
1724
 
1725
- #: admin/wp-security-filescan-menu.php:386
1726
  msgid "No Contract (Cancel Anytime)"
1727
  msgstr ""
1728
 
1729
- #: admin/wp-security-filescan-menu.php:388
1730
  msgid "To learn more please %s."
1731
  msgstr ""
1732
 
1733
- #: admin/wp-security-filescan-menu.php:408
1734
  msgid "Latest File Change Scan Results"
1735
  msgstr ""
1736
 
1737
- #: admin/wp-security-filescan-menu.php:417
1738
  msgid "The following files were added to your host."
1739
  msgstr ""
1740
 
1741
- #: admin/wp-security-filescan-menu.php:420
1742
- #: admin/wp-security-filescan-menu.php:441
1743
- #: admin/wp-security-filescan-menu.php:465
1744
  #: admin/wp-security-settings-menu.php:31
1745
  #: admin/wp-security-settings-menu.php:32
1746
  msgid "File"
1747
  msgstr ""
1748
 
1749
- #: admin/wp-security-filescan-menu.php:421
1750
- #: admin/wp-security-filescan-menu.php:442
1751
- #: admin/wp-security-filescan-menu.php:466
1752
  msgid "File Size"
1753
  msgstr ""
1754
 
1755
- #: admin/wp-security-filescan-menu.php:422
1756
- #: admin/wp-security-filescan-menu.php:443
1757
- #: admin/wp-security-filescan-menu.php:467
1758
  msgid "File Modified"
1759
  msgstr ""
1760
 
1761
- #: admin/wp-security-filescan-menu.php:438
1762
  msgid "The following files were removed from your host."
1763
  msgstr ""
1764
 
1765
- #: admin/wp-security-filescan-menu.php:462
1766
  msgid "The following files were changed on your host."
1767
  msgstr ""
1768
 
@@ -1996,8 +2000,8 @@ msgstr ""
1996
  msgid "Custom Rules"
1997
  msgstr ""
1998
 
1999
- #: admin/wp-security-firewall-menu.php:120
2000
- #: admin/wp-security-firewall-menu.php:742
2001
  #: admin/wp-security-spam-menu.php:110
2002
  #: admin/wp-security-spam-menu.php:454
2003
  #: admin/wp-security-spam-menu.php:516
@@ -2005,595 +2009,603 @@ msgstr ""
2005
  msgid "Settings were successfully saved"
2006
  msgstr ""
2007
 
2008
- #: admin/wp-security-firewall-menu.php:129
2009
- #: admin/wp-security-firewall-menu.php:563
2010
  msgid "Firewall Settings"
2011
  msgstr ""
2012
 
2013
- #: admin/wp-security-firewall-menu.php:136
2014
  msgid "This should not have any impact on your site's general functionality but if you wish you can take a %s of your .htaccess file before proceeding."
2015
  msgstr ""
2016
 
2017
- #: admin/wp-security-firewall-menu.php:137
2018
  msgid "The features in this tab allow you to activate some basic firewall security protection rules for your site."
2019
  msgstr ""
2020
 
2021
- #: admin/wp-security-firewall-menu.php:138
2022
  msgid "The firewall functionality is achieved via the insertion of special code into your currently active .htaccess file."
2023
  msgstr ""
2024
 
2025
- #: admin/wp-security-firewall-menu.php:149
2026
  msgid "Attention: You have enabled the \"Completely Block Access To XMLRPC\" checkbox which means all XMLRPC functionality will be blocked."
2027
  msgstr ""
2028
 
2029
- #: admin/wp-security-firewall-menu.php:150
2030
  msgid "By leaving this feature enabled you will prevent Jetpack or Wordpress iOS or other apps which need XMLRPC from working correctly on your site."
2031
  msgstr ""
2032
 
2033
- #: admin/wp-security-firewall-menu.php:151
2034
  msgid "If you still need XMLRPC then uncheck the \"Completely Block Access To XMLRPC\" checkbox and enable only the \"Disable Pingback Functionality From XMLRPC\" checkbox."
2035
  msgstr ""
2036
 
2037
- #: admin/wp-security-firewall-menu.php:161
2038
  msgid "Basic Firewall Settings"
2039
  msgstr ""
2040
 
2041
- #: admin/wp-security-firewall-menu.php:169
2042
  msgid "Enable Basic Firewall Protection"
2043
  msgstr ""
2044
 
2045
- #: admin/wp-security-firewall-menu.php:172
2046
  msgid "Check this if you want to apply basic firewall protection to your site."
2047
  msgstr ""
2048
 
2049
- #: admin/wp-security-firewall-menu.php:176
2050
  msgid "This setting will implement the following basic firewall protection mechanisms on your site:"
2051
  msgstr ""
2052
 
2053
- #: admin/wp-security-firewall-menu.php:177
2054
  msgid "1) Protect your htaccess file by denying access to it."
2055
  msgstr ""
2056
 
2057
- #: admin/wp-security-firewall-menu.php:178
2058
  msgid "2) Disable the server signature."
2059
  msgstr ""
2060
 
2061
- #: admin/wp-security-firewall-menu.php:179
2062
  msgid "3) Limit file upload size (10MB)."
2063
  msgstr ""
2064
 
2065
- #: admin/wp-security-firewall-menu.php:180
2066
  msgid "4) Protect your wp-config.php file by denying access to it."
2067
  msgstr ""
2068
 
2069
- #: admin/wp-security-firewall-menu.php:181
2070
  msgid "The above firewall features will be applied via your .htaccess file and should not affect your site's overall functionality."
2071
  msgstr ""
2072
 
2073
- #: admin/wp-security-firewall-menu.php:182
2074
  msgid "You are still advised to take a backup of your active .htaccess file just in case."
2075
  msgstr ""
2076
 
2077
- #: admin/wp-security-firewall-menu.php:191
 
 
 
 
 
 
 
 
2078
  msgid "WordPress XMLRPC & Pingback Vulnerability Protection"
2079
  msgstr ""
2080
 
2081
- #: admin/wp-security-firewall-menu.php:199
2082
  msgid "Completely Block Access To XMLRPC"
2083
  msgstr ""
2084
 
2085
- #: admin/wp-security-firewall-menu.php:202
2086
  msgid "Check this if you are not using the WP XML-RPC functionality and you want to completely block external access to XMLRPC."
2087
  msgstr ""
2088
 
2089
- #: admin/wp-security-firewall-menu.php:206
2090
  msgid "This setting will add a directive in your .htaccess to disable access to the WordPress xmlrpc.php file which is responsible for the XML-RPC functionality in WordPress."
2091
  msgstr ""
2092
 
2093
- #: admin/wp-security-firewall-menu.php:207
2094
  msgid "Hackers can exploit various vulnerabilities in the WordPress XML-RPC API in a number of ways such as:"
2095
  msgstr ""
2096
 
2097
- #: admin/wp-security-firewall-menu.php:208
2098
  msgid "1) Denial of Service (DoS) attacks"
2099
  msgstr ""
2100
 
2101
- #: admin/wp-security-firewall-menu.php:209
2102
  msgid "2) Hacking internal routers."
2103
  msgstr ""
2104
 
2105
- #: admin/wp-security-firewall-menu.php:210
2106
  msgid "3) Scanning ports in internal networks to get info from various hosts."
2107
  msgstr ""
2108
 
2109
- #: admin/wp-security-firewall-menu.php:211
2110
  msgid "Apart from the security protection benefit, this feature may also help reduce load on your server, particularly if your site currently has a lot of unwanted traffic hitting the XML-RPC API on your installation."
2111
  msgstr ""
2112
 
2113
- #: admin/wp-security-firewall-menu.php:212
2114
  msgid "NOTE: You should only enable this feature if you are not currently using the XML-RPC functionality on your WordPress installation."
2115
  msgstr ""
2116
 
2117
- #: admin/wp-security-firewall-menu.php:213
2118
  msgid "Leave this feature disabled and use the feature below if you want pingback protection but you still need XMLRPC."
2119
  msgstr ""
2120
 
2121
- #: admin/wp-security-firewall-menu.php:219
2122
  msgid "Disable Pingback Functionality From XMLRPC"
2123
  msgstr ""
2124
 
2125
- #: admin/wp-security-firewall-menu.php:222
2126
  msgid "If you use Jetpack or WP iOS or other apps which need WP XML-RPC functionality then check this. This will enable protection against WordPress pingback vulnerabilities."
2127
  msgstr ""
2128
 
2129
- #: admin/wp-security-firewall-menu.php:226
2130
  msgid "NOTE: If you use Jetpack or the Wordpress iOS or other apps then you should enable this feature but leave the \"Completely Block Access To XMLRPC\" checkbox unchecked."
2131
  msgstr ""
2132
 
2133
- #: admin/wp-security-firewall-menu.php:227
2134
  msgid "The feature will still allow XMLRPC functionality on your site but will disable the pingback methods."
2135
  msgstr ""
2136
 
2137
- #: admin/wp-security-firewall-menu.php:228
2138
  msgid "This feature will also remove the \"X-Pingback\" header if it is present."
2139
  msgstr ""
2140
 
2141
- #: admin/wp-security-firewall-menu.php:237
2142
  msgid "Block Access to Debug Log File"
2143
  msgstr ""
2144
 
2145
- #: admin/wp-security-firewall-menu.php:245
2146
  msgid "Block Access to debug.log File"
2147
  msgstr ""
2148
 
2149
- #: admin/wp-security-firewall-menu.php:248
2150
  msgid "Check this if you want to block access to the debug.log file that WordPress creates when debug logging is enabled."
2151
  msgstr ""
2152
 
2153
- #: admin/wp-security-firewall-menu.php:252
2154
  msgid "WordPress has an option to turn on the debug logging to a file located in wp-content/debug.log. This file may contain sensitive information."
2155
  msgstr ""
2156
 
2157
- #: admin/wp-security-firewall-menu.php:253
2158
  msgid "Using this optoin will block external access to this file. You can still access this file by logging into your site via FTP"
2159
  msgstr ""
2160
 
2161
- #: admin/wp-security-firewall-menu.php:261
2162
  msgid "Save Basic Firewall Settings"
2163
  msgstr ""
2164
 
2165
- #: admin/wp-security-firewall-menu.php:333
2166
  msgid "You have successfully saved the Additional Firewall Protection configuration"
2167
  msgstr ""
2168
 
2169
- #: admin/wp-security-firewall-menu.php:347
2170
  msgid "Additional Firewall Protection"
2171
  msgstr ""
2172
 
2173
- #: admin/wp-security-firewall-menu.php:351
2174
  msgid "Due to the nature of the code being inserted to the .htaccess file, this feature may break some functionality for certain plugins and you are therefore advised to take a %s of .htaccess before applying this configuration."
2175
  msgstr ""
2176
 
2177
- #: admin/wp-security-firewall-menu.php:353
2178
  msgid "This feature allows you to activate more advanced firewall settings to your site."
2179
  msgstr ""
2180
 
2181
- #: admin/wp-security-firewall-menu.php:354
2182
  msgid "The advanced firewall rules are applied via the insertion of special code to your currently active .htaccess file."
2183
  msgstr ""
2184
 
2185
- #: admin/wp-security-firewall-menu.php:363
2186
  msgid "Listing of Directory Contents"
2187
  msgstr ""
2188
 
2189
- #: admin/wp-security-firewall-menu.php:372
2190
  #: classes/grade-system/wp-security-feature-item-manager.php:97
2191
  msgid "Disable Index Views"
2192
  msgstr ""
2193
 
2194
- #: admin/wp-security-firewall-menu.php:375
2195
  msgid "Check this if you want to disable directory and file listing."
2196
  msgstr ""
2197
 
2198
- #: admin/wp-security-firewall-menu.php:380
2199
  msgid "By default, an Apache server will allow the listing of the contents of a directory if it doesn't contain an index.php file."
2200
  msgstr ""
2201
 
2202
- #: admin/wp-security-firewall-menu.php:382
2203
  msgid "This feature will prevent the listing of contents for all directories."
2204
  msgstr ""
2205
 
2206
- #: admin/wp-security-firewall-menu.php:384
2207
  msgid "NOTE: In order for this feature to work \"AllowOverride\" of the Indexes directive must be enabled in your httpd.conf file. Ask your hosting provider to check this if you don't have access to httpd.conf"
2208
  msgstr ""
2209
 
2210
- #: admin/wp-security-firewall-menu.php:393
2211
  msgid "Trace and Track"
2212
  msgstr ""
2213
 
2214
- #: admin/wp-security-firewall-menu.php:402
2215
  #: classes/grade-system/wp-security-feature-item-manager.php:98
2216
  msgid "Disable Trace and Track"
2217
  msgstr ""
2218
 
2219
- #: admin/wp-security-firewall-menu.php:405
2220
  msgid "Check this if you want to disable trace and track."
2221
  msgstr ""
2222
 
2223
- #: admin/wp-security-firewall-menu.php:410
2224
  msgid "HTTP Trace attack (XST) can be used to return header requests and grab cookies and other information."
2225
  msgstr ""
2226
 
2227
- #: admin/wp-security-firewall-menu.php:412
2228
  msgid "This hacking technique is usually used together with cross site scripting attacks (XSS)."
2229
  msgstr ""
2230
 
2231
- #: admin/wp-security-firewall-menu.php:414
2232
  msgid "Disabling trace and track on your site will help prevent HTTP Trace attacks."
2233
  msgstr ""
2234
 
2235
- #: admin/wp-security-firewall-menu.php:423
2236
  msgid "Proxy Comment Posting"
2237
  msgstr ""
2238
 
2239
- #: admin/wp-security-firewall-menu.php:433
2240
  msgid "Forbid Proxy Comment Posting"
2241
  msgstr ""
2242
 
2243
- #: admin/wp-security-firewall-menu.php:436
2244
  msgid "Check this if you want to forbid proxy comment posting."
2245
  msgstr ""
2246
 
2247
- #: admin/wp-security-firewall-menu.php:441
2248
  msgid "This setting will deny any requests that use a proxy server when posting comments."
2249
  msgstr ""
2250
 
2251
- #: admin/wp-security-firewall-menu.php:442
2252
  msgid "By forbidding proxy comments you are in effect eliminating some SPAM and other proxy requests."
2253
  msgstr ""
2254
 
2255
- #: admin/wp-security-firewall-menu.php:451
2256
  msgid "Bad Query Strings"
2257
  msgstr ""
2258
 
2259
- #: admin/wp-security-firewall-menu.php:461
2260
  msgid "Deny Bad Query Strings"
2261
  msgstr ""
2262
 
2263
- #: admin/wp-security-firewall-menu.php:464
2264
  msgid "This will help protect you against malicious queries via XSS."
2265
  msgstr ""
2266
 
2267
- #: admin/wp-security-firewall-menu.php:469
2268
  msgid "This feature will write rules in your .htaccess file to prevent malicious string attacks on your site using XSS."
2269
  msgstr ""
2270
 
2271
- #: admin/wp-security-firewall-menu.php:470
2272
  msgid "NOTE: Some of these strings might be used for plugins or themes and hence this might break some functionality."
2273
  msgstr ""
2274
 
2275
- #: admin/wp-security-firewall-menu.php:471
2276
- #: admin/wp-security-firewall-menu.php:501
2277
  msgid "You are therefore strongly advised to take a backup of your active .htaccess file before applying this feature."
2278
  msgstr ""
2279
 
2280
- #: admin/wp-security-firewall-menu.php:480
2281
  #: classes/grade-system/wp-security-feature-item-manager.php:101
2282
  msgid "Advanced Character String Filter"
2283
  msgstr ""
2284
 
2285
- #: admin/wp-security-firewall-menu.php:490
2286
  msgid "Enable Advanced Character String Filter"
2287
  msgstr ""
2288
 
2289
- #: admin/wp-security-firewall-menu.php:493
2290
  msgid "This will block bad character matches from XSS."
2291
  msgstr ""
2292
 
2293
- #: admin/wp-security-firewall-menu.php:498
2294
  msgid "This is an advanced character string filter to prevent malicious string attacks on your site coming from Cross Site Scripting (XSS)."
2295
  msgstr ""
2296
 
2297
- #: admin/wp-security-firewall-menu.php:499
2298
  msgid "This setting matches for common malicious string patterns and exploits and will produce a 403 error for the hacker attempting the query."
2299
  msgstr ""
2300
 
2301
- #: admin/wp-security-firewall-menu.php:500
2302
  msgid "NOTE: Some strings for this setting might break some functionality."
2303
  msgstr ""
2304
 
2305
- #: admin/wp-security-firewall-menu.php:509
2306
  msgid "Save Additional Firewall Settings"
2307
  msgstr ""
2308
 
2309
- #: admin/wp-security-firewall-menu.php:552
2310
  msgid "You have successfully saved the 5G/6G Firewall Protection configuration"
2311
  msgstr ""
2312
 
2313
- #: admin/wp-security-firewall-menu.php:567
2314
  msgid "This feature allows you to activate the %s (or legacy %s) firewall security protection rules designed and produced by %s."
2315
  msgstr ""
2316
 
2317
- #: admin/wp-security-firewall-menu.php:568
2318
  msgid "The 6G Blacklist is updated and improved version of 5G Blacklist. If you have 5G Blacklist active, you might consider activating 6G Blacklist instead."
2319
  msgstr ""
2320
 
2321
- #: admin/wp-security-firewall-menu.php:569
2322
  msgid "The 6G Blacklist is a simple, flexible blacklist that helps reduce the number of malicious URL requests that hit your website."
2323
  msgstr ""
2324
 
2325
- #: admin/wp-security-firewall-menu.php:570
2326
  msgid "The added advantage of applying the 6G firewall to your site is that it has been tested and confirmed by the people at PerishablePress.com to be an optimal and least disruptive set of .htaccess security rules for general WP sites running on an Apache server or similar."
2327
  msgstr ""
2328
 
2329
- #: admin/wp-security-firewall-menu.php:571
2330
  msgid "Therefore the 6G firewall rules should not have any impact on your site's general functionality but if you wish you can take a %s of your .htaccess file before proceeding."
2331
  msgstr ""
2332
 
2333
- #: admin/wp-security-firewall-menu.php:577
2334
  msgid "6G Blacklist/Firewall Settings"
2335
  msgstr ""
2336
 
2337
- #: admin/wp-security-firewall-menu.php:589
2338
  msgid "Enable 6G Firewall Protection"
2339
  msgstr ""
2340
 
2341
- #: admin/wp-security-firewall-menu.php:592
2342
  msgid "Check this if you want to apply the 6G Blacklist firewall protection from perishablepress.com to your site."
2343
  msgstr ""
2344
 
2345
- #: admin/wp-security-firewall-menu.php:596
2346
  msgid "This setting will implement the 6G security firewall protection mechanisms on your site which include the following things:"
2347
  msgstr ""
2348
 
2349
- #: admin/wp-security-firewall-menu.php:597
2350
- #: admin/wp-security-firewall-menu.php:615
2351
  msgid "1) Block forbidden characters commonly used in exploitative attacks."
2352
  msgstr ""
2353
 
2354
- #: admin/wp-security-firewall-menu.php:598
2355
- #: admin/wp-security-firewall-menu.php:616
2356
  msgid "2) Block malicious encoded URL characters such as the \".css(\" string."
2357
  msgstr ""
2358
 
2359
- #: admin/wp-security-firewall-menu.php:599
2360
- #: admin/wp-security-firewall-menu.php:617
2361
  msgid "3) Guard against the common patterns and specific exploits in the root portion of targeted URLs."
2362
  msgstr ""
2363
 
2364
- #: admin/wp-security-firewall-menu.php:600
2365
- #: admin/wp-security-firewall-menu.php:618
2366
  msgid "4) Stop attackers from manipulating query strings by disallowing illicit characters."
2367
  msgstr ""
2368
 
2369
- #: admin/wp-security-firewall-menu.php:601
2370
- #: admin/wp-security-firewall-menu.php:619
2371
  msgid "....and much more."
2372
  msgstr ""
2373
 
2374
- #: admin/wp-security-firewall-menu.php:607
2375
  msgid "Enable legacy 5G Firewall Protection"
2376
  msgstr ""
2377
 
2378
- #: admin/wp-security-firewall-menu.php:610
2379
  msgid "Check this if you want to apply the 5G Blacklist firewall protection from perishablepress.com to your site."
2380
  msgstr ""
2381
 
2382
- #: admin/wp-security-firewall-menu.php:614
2383
  msgid "This setting will implement the 5G security firewall protection mechanisms on your site which include the following things:"
2384
  msgstr ""
2385
 
2386
- #: admin/wp-security-firewall-menu.php:625
2387
  msgid "Save 5G/6G Firewall Settings"
2388
  msgstr ""
2389
 
2390
- #: admin/wp-security-firewall-menu.php:656
2391
  msgid "The Internet bot settings were successfully saved"
2392
  msgstr ""
2393
 
2394
- #: admin/wp-security-firewall-menu.php:660
2395
  msgid "Internet Bot Settings"
2396
  msgstr ""
2397
 
2398
- #: admin/wp-security-firewall-menu.php:666
2399
  msgid "What is an Internet Bot"
2400
  msgstr ""
2401
 
2402
- #: admin/wp-security-firewall-menu.php:667
2403
  msgid "%s?"
2404
  msgstr ""
2405
 
2406
- #: admin/wp-security-firewall-menu.php:669
2407
  msgid "A bot is a piece of software which runs on the Internet and performs automatic tasks. For example when Google indexes your pages it uses automatic bots to achieve this task."
2408
  msgstr ""
2409
 
2410
- #: admin/wp-security-firewall-menu.php:670
2411
  msgid "A lot of bots are legitimate and non-malicous but not all bots are good and often you will find some which try to impersonate legitimate bots such as \"Googlebot\" but in reality they have nohing to do with Google at all."
2412
  msgstr ""
2413
 
2414
- #: admin/wp-security-firewall-menu.php:671
2415
  msgid "Although most of the bots out there are relatively harmless sometimes website owners want to have more control over which bots they allow into their site."
2416
  msgstr ""
2417
 
2418
- #: admin/wp-security-firewall-menu.php:672
2419
  msgid "This feature allows you to block bots which are impersonating as a Googlebot but actually aren't. (In other words they are fake Google bots)"
2420
  msgstr ""
2421
 
2422
- #: admin/wp-security-firewall-menu.php:673
2423
  msgid "Googlebots have a unique indentity which cannot easily be forged and this feature will indentify any fake Google bots and block them from reading your site's pages."
2424
  msgstr ""
2425
 
2426
- #: admin/wp-security-firewall-menu.php:679
2427
  msgid "<strong>Attention</strong>: Sometimes non-malicious Internet organizations might have bots which impersonate as a \"Googlebot\"."
2428
  msgstr ""
2429
 
2430
- #: admin/wp-security-firewall-menu.php:680
2431
  msgid "Just be aware that if you activate this feature the plugin will block all bots which use the \"Googlebot\" string in their User Agent information but are NOT officially from Google (irrespective whether they are malicious or not)."
2432
  msgstr ""
2433
 
2434
- #: admin/wp-security-firewall-menu.php:681
2435
  msgid "All other bots from other organizations such as \"Yahoo\", \"Bing\" etc will not be affected by this feature."
2436
  msgstr ""
2437
 
2438
- #: admin/wp-security-firewall-menu.php:687
2439
- #: admin/wp-security-firewall-menu.php:697
2440
  #: classes/grade-system/wp-security-feature-item-manager.php:103
2441
  msgid "Block Fake Googlebots"
2442
  msgstr ""
2443
 
2444
- #: admin/wp-security-firewall-menu.php:700
2445
  msgid "Check this if you want to block all fake Googlebots."
2446
  msgstr ""
2447
 
2448
- #: admin/wp-security-firewall-menu.php:704
2449
  msgid "This feature will check if the User Agent information of a bot contains the string \"Googlebot\"."
2450
  msgstr ""
2451
 
2452
- #: admin/wp-security-firewall-menu.php:705
2453
  msgid "It will then perform a few tests to verify if the bot is legitimately from Google and if so it will allow the bot to proceed."
2454
  msgstr ""
2455
 
2456
- #: admin/wp-security-firewall-menu.php:706
2457
  msgid "If the bot fails the checks then the plugin will mark it as being a fake Googlebot and it will block it"
2458
  msgstr ""
2459
 
2460
- #: admin/wp-security-firewall-menu.php:713
2461
  msgid "Save Internet Bot Settings"
2462
  msgstr ""
2463
 
2464
- #: admin/wp-security-firewall-menu.php:750
2465
- #: admin/wp-security-firewall-menu.php:772
2466
  #: classes/grade-system/wp-security-feature-item-manager.php:32
2467
  msgid "Prevent Image Hotlinking"
2468
  msgstr ""
2469
 
2470
- #: admin/wp-security-firewall-menu.php:753
2471
  msgid "A Hotlink is where someone displays an image on their site which is actually located on your site by using a direct link to the source of the image on your server."
2472
  msgstr ""
2473
 
2474
- #: admin/wp-security-firewall-menu.php:754
2475
  msgid "Due to the fact that the image being displayed on the other person's site is coming from your server, this can cause leaking of bandwidth and resources for you because your server has to present this image for the people viewing it on someone elses's site."
2476
  msgstr ""
2477
 
2478
- #: admin/wp-security-firewall-menu.php:755
2479
  msgid "This feature will prevent people from directly hotlinking images from your site's pages by writing some directives in your .htaccess file."
2480
  msgstr ""
2481
 
2482
- #: admin/wp-security-firewall-menu.php:760
2483
  msgid "Prevent Hotlinking"
2484
  msgstr ""
2485
 
2486
- #: admin/wp-security-firewall-menu.php:775
2487
  msgid "Check this if you want to prevent hotlinking to images on your site."
2488
  msgstr ""
2489
 
2490
- #: admin/wp-security-firewall-menu.php:795
2491
  msgid "Nonce check failed for delete all 404 event logs operation!"
2492
  msgstr ""
2493
 
2494
- #: admin/wp-security-firewall-menu.php:806
2495
  msgid "404 Detection Feature - Delete all 404 event logs operation failed!"
2496
  msgstr ""
2497
 
2498
- #: admin/wp-security-firewall-menu.php:810
2499
  msgid "All 404 event logs were deleted from the DB successfully!"
2500
  msgstr ""
2501
 
2502
- #: admin/wp-security-firewall-menu.php:834
2503
  #: admin/wp-security-user-login-menu.php:114
2504
  msgid "You entered a non numeric value for the lockout time length field. It has been set to the default value."
2505
  msgstr ""
2506
 
2507
- #: admin/wp-security-firewall-menu.php:840
2508
  msgid "You entered an incorrect format for the \"Redirect URL\" field. It has been set to the default value."
2509
  msgstr ""
2510
 
2511
- #: admin/wp-security-firewall-menu.php:875
2512
  msgid "404 Detection Configuration"
2513
  msgstr ""
2514
 
2515
- #: admin/wp-security-firewall-menu.php:878
2516
  msgid "A 404 or Not Found error occurs when somebody tries to access a non-existent page on your website."
2517
  msgstr ""
2518
 
2519
- #: admin/wp-security-firewall-menu.php:879
2520
  msgid "Typically, most 404 errors happen quite innocently when people have mis-typed a URL or used an old link to page which doesn't exist anymore."
2521
  msgstr ""
2522
 
2523
- #: admin/wp-security-firewall-menu.php:880
2524
  msgid "However, in some cases you may find many repeated 404 errors which occur in a relatively short space of time and from the same IP address which are all attempting to access a variety of non-existent page URLs."
2525
  msgstr ""
2526
 
2527
- #: admin/wp-security-firewall-menu.php:881
2528
  msgid "Such behaviour can mean that a hacker might be trying to find a particular page or URL for sinister reasons."
2529
  msgstr ""
2530
 
2531
- #: admin/wp-security-firewall-menu.php:882
2532
  msgid "This feature allows you to monitor all 404 events which occur on your site, and it also gives you the option of blocking IP addresses for a configured length of time."
2533
  msgstr ""
2534
 
2535
- #: admin/wp-security-firewall-menu.php:883
2536
  msgid "If you want to temporarily block or blacklist an IP address, simply click the \"Temp Block\" or \"Blacklist IP\" link for the applicable IP entry in the \"404 Event Logs\" table below."
2537
  msgstr ""
2538
 
2539
- #: admin/wp-security-firewall-menu.php:890
2540
  msgid "This addon allows you to automatically and permanently block IP addresses based on how many 404 errors they produce."
2541
  msgstr ""
2542
 
2543
- #: admin/wp-security-firewall-menu.php:898
2544
  msgid "404 Detection Options"
2545
  msgstr ""
2546
 
2547
- #: admin/wp-security-firewall-menu.php:910
2548
  msgid "Enable 404 IP Detection and Lockout"
2549
  msgstr ""
2550
 
2551
- #: admin/wp-security-firewall-menu.php:913
2552
  msgid "Check this if you want to enable the lockout of selected IP addresses."
2553
  msgstr ""
2554
 
2555
- #: admin/wp-security-firewall-menu.php:918
2556
  msgid "When you enable this checkbox, all 404 events on your site will be logged in the table below. You can monitor these events and select some IP addresses listed in the table below and block them for a specified amount of time. All IP addresses you select to be blocked from the \"404 Event Logs\" table section will be unable to access your site during the time specified."
2557
  msgstr ""
2558
 
2559
- #: admin/wp-security-firewall-menu.php:926
2560
  msgid "Enable 404 Event Logging"
2561
  msgstr ""
2562
 
2563
- #: admin/wp-security-firewall-menu.php:929
2564
  msgid "Check this if you want to enable the logging of 404 events"
2565
  msgstr ""
2566
 
2567
- #: admin/wp-security-firewall-menu.php:934
2568
  msgid "Time Length of 404 Lockout (min)"
2569
  msgstr ""
2570
 
2571
- #: admin/wp-security-firewall-menu.php:936
2572
  msgid "Set the length of time for which a blocked IP address will be prevented from visiting your site"
2573
  msgstr ""
2574
 
2575
- #: admin/wp-security-firewall-menu.php:941
2576
  msgid "You can lock any IP address which is recorded in the \"404 Event Logs\" table section below."
2577
  msgstr ""
2578
 
2579
- #: admin/wp-security-firewall-menu.php:943
2580
  msgid "To temporarily lock an IP address, hover over the ID column and click the \"Temp Block\" link for the applicable IP entry."
2581
  msgstr ""
2582
 
2583
- #: admin/wp-security-firewall-menu.php:950
2584
  msgid "404 Lockout Redirect URL"
2585
  msgstr ""
2586
 
2587
- #: admin/wp-security-firewall-menu.php:952
2588
  msgid "A blocked visitor will be automatically redirected to this URL."
2589
  msgstr ""
2590
 
2591
- #: admin/wp-security-firewall-menu.php:961
2592
  msgid "404 Event Logs"
2593
  msgstr ""
2594
 
2595
- #: admin/wp-security-firewall-menu.php:983
2596
- #: admin/wp-security-firewall-menu.php:992
2597
  #: admin/wp-security-user-login-menu.php:439
2598
  #: admin/wp-security-user-login-menu.php:448
2599
  #: admin/wp-security-user-login-menu.php:593
@@ -2601,82 +2613,82 @@ msgstr ""
2601
  msgid "Export to CSV"
2602
  msgstr ""
2603
 
2604
- #: admin/wp-security-firewall-menu.php:989
2605
  #: admin/wp-security-user-login-menu.php:445
2606
  #: admin/wp-security-user-login-menu.php:599
2607
  msgid "Click this button if you wish to download this log in CSV format."
2608
  msgstr ""
2609
 
2610
- #: admin/wp-security-firewall-menu.php:996
2611
- #: admin/wp-security-firewall-menu.php:1005
2612
  msgid "Delete All 404 Event Logs"
2613
  msgstr ""
2614
 
2615
- #: admin/wp-security-firewall-menu.php:1002
2616
  msgid "Click this button if you wish to purge all 404 event logs from the DB."
2617
  msgstr ""
2618
 
2619
- #: admin/wp-security-firewall-menu.php:1061
2620
  msgid "Custom .htaccess Rules Settings"
2621
  msgstr ""
2622
 
2623
- #: admin/wp-security-firewall-menu.php:1068
2624
  msgid "This feature can be used to apply your own custom .htaccess rules and directives."
2625
  msgstr ""
2626
 
2627
- #: admin/wp-security-firewall-menu.php:1069
2628
  msgid "It is useful for when you want to tweak our existing firewall rules or when you want to add your own."
2629
  msgstr ""
2630
 
2631
- #: admin/wp-security-firewall-menu.php:1070
2632
  msgid "NOTE: This feature can only used if your site is hosted in an apache or similar web server."
2633
  msgstr ""
2634
 
2635
- #: admin/wp-security-firewall-menu.php:1076
2636
  msgid "<strong>Warning</strong>: Only use this feature if you know what you are doing."
2637
  msgstr ""
2638
 
2639
- #: admin/wp-security-firewall-menu.php:1077
2640
  msgid "Incorrect .htaccess rules or directives can break or prevent access to your site."
2641
  msgstr ""
2642
 
2643
- #: admin/wp-security-firewall-menu.php:1078
2644
  msgid "It is your responsibility to ensure that you are entering the correct code!"
2645
  msgstr ""
2646
 
2647
- #: admin/wp-security-firewall-menu.php:1079
2648
  msgid "If you break your site you will need to access your server via FTP or something similar and then edit your .htaccess file and delete the changes you made."
2649
  msgstr ""
2650
 
2651
- #: admin/wp-security-firewall-menu.php:1085
2652
  msgid "Custom .htaccess Rules"
2653
  msgstr ""
2654
 
2655
- #: admin/wp-security-firewall-menu.php:1089
2656
  msgid "Enable Custom .htaccess Rules"
2657
  msgstr ""
2658
 
2659
- #: admin/wp-security-firewall-menu.php:1092
2660
  msgid "Check this if you want to enable custom rules entered in the text box below"
2661
  msgstr ""
2662
 
2663
- #: admin/wp-security-firewall-menu.php:1096
2664
  msgid "Place custom rules at the top"
2665
  msgstr ""
2666
 
2667
- #: admin/wp-security-firewall-menu.php:1099
2668
  msgid "Check this if you want to place your custom rules at the beginning of all the rules applied by this plugin"
2669
  msgstr ""
2670
 
2671
- #: admin/wp-security-firewall-menu.php:1103
2672
  msgid "Enter Custom .htaccess Rules:"
2673
  msgstr ""
2674
 
2675
- #: admin/wp-security-firewall-menu.php:1107
2676
  msgid "Enter your custom .htaccess rules/directives."
2677
  msgstr ""
2678
 
2679
- #: admin/wp-security-firewall-menu.php:1112
2680
  msgid "Save Custom Rules"
2681
  msgstr ""
2682
 
@@ -2843,7 +2855,7 @@ msgstr ""
2843
  msgid "Nonce check failed for force user logout operation!"
2844
  msgstr ""
2845
 
2846
- #: admin/wp-security-list-logged-in-users.php:98
2847
  msgid "The selected user was logged out successfully!"
2848
  msgstr ""
2849
 
@@ -3136,6 +3148,14 @@ msgstr ""
3136
  msgid "Page"
3137
  msgstr ""
3138
 
 
 
 
 
 
 
 
 
3139
  #: admin/wp-security-settings-menu.php:159
3140
  msgid "WP Security Plugin"
3141
  msgstr ""
@@ -3177,6 +3197,7 @@ msgid "Disable All Security Features"
3177
  msgstr ""
3178
 
3179
  #: admin/wp-security-settings-menu.php:192
 
3180
  msgid "Disable All Firewall Rules"
3181
  msgstr ""
3182
 
@@ -3533,7 +3554,7 @@ msgid "Add Captcha To Comments Form"
3533
  msgstr ""
3534
 
3535
  #: admin/wp-security-spam-menu.php:128
3536
- msgid "This feature will add a simple math captcha field in the WordPress comments form."
3537
  msgstr ""
3538
 
3539
  #: admin/wp-security-spam-menu.php:129
@@ -3761,7 +3782,7 @@ msgid "This feature will add a simple math captcha field in the BBPress new topi
3761
  msgstr ""
3762
 
3763
  #: admin/wp-security-spam-menu.php:530
3764
- msgid "Adding a captcha field in the this form is a simple way of greatly reducing SPAM submitted from bots."
3765
  msgstr ""
3766
 
3767
  #: admin/wp-security-spam-menu.php:540
@@ -3969,6 +3990,10 @@ msgstr ""
3969
  msgid "Account Login Name"
3970
  msgstr ""
3971
 
 
 
 
 
3972
  #: admin/wp-security-user-login-menu.php:29
3973
  #: admin/wp-security-user-login-menu.php:418
3974
  msgid "Failed Login Records"
@@ -4178,7 +4203,7 @@ msgid "This tab displays the activity for accounts registered with your site tha
4178
  msgstr ""
4179
 
4180
  #: admin/wp-security-user-login-menu.php:567
4181
- msgid "The information below can be handy if you need to do security investigations because it will show you the last 50 recent login events by username, IP address and time/date."
4182
  msgstr ""
4183
 
4184
  #: admin/wp-security-user-login-menu.php:628
@@ -4435,7 +4460,7 @@ msgid " generated on"
4435
  msgstr ""
4436
 
4437
  #: classes/wp-security-captcha.php:42
4438
- #: classes/wp-security-general-init-tasks.php:456
4439
  msgid "Please enter an answer in digits:"
4440
  msgstr ""
4441
 
@@ -4519,74 +4544,81 @@ msgstr ""
4519
  msgid "twenty"
4520
  msgstr ""
4521
 
4522
- #: classes/wp-security-file-scan.php:64
4523
  msgid "All In One WP Security - File change detected!"
4524
  msgstr ""
4525
 
4526
- #: classes/wp-security-file-scan.php:66
4527
  msgid "A file change was detected on your system for site URL"
4528
  msgstr ""
4529
 
4530
- #: classes/wp-security-file-scan.php:66
4531
  msgid ". Scan was generated on"
4532
  msgstr ""
4533
 
4534
- #: classes/wp-security-file-scan.php:67
4535
  msgid "A summary of the scan results is shown below:"
4536
  msgstr ""
4537
 
4538
- #: classes/wp-security-file-scan.php:70
4539
  msgid "Login to your site to view the scan details."
4540
  msgstr ""
4541
 
4542
- #: classes/wp-security-file-scan.php:321
4543
  msgid "The following files were added to your host"
4544
  msgstr ""
4545
 
4546
- #: classes/wp-security-file-scan.php:323
4547
- #: classes/wp-security-file-scan.php:332
4548
- #: classes/wp-security-file-scan.php:342
4549
  msgid "modified on: "
4550
  msgstr ""
4551
 
4552
- #: classes/wp-security-file-scan.php:330
4553
  msgid "The following files were removed from your host"
4554
  msgstr ""
4555
 
4556
- #: classes/wp-security-file-scan.php:340
4557
  msgid "The following files were changed on your host"
4558
  msgstr ""
4559
 
4560
- #: classes/wp-security-general-init-tasks.php:479
4561
- #: classes/wp-security-general-init-tasks.php:567
4562
- #: classes/wp-security-general-init-tasks.php:602
4563
- #: classes/wp-security-user-login.php:81
4564
- #: classes/wp-security-user-registration.php:76
4565
- #: classes/wp-security-user-registration.php:97
4566
  msgid "<strong>ERROR</strong>: Your answer was incorrect - please try again."
4567
  msgstr ""
4568
 
4569
- #: classes/wp-security-general-init-tasks.php:514
4570
  msgid "Enter something special:"
4571
  msgstr ""
4572
 
4573
- #: classes/wp-security-general-init-tasks.php:540
4574
  msgid "Error: You entered an incorrect CAPTCHA answer. Please go back and try again."
4575
  msgstr ""
4576
 
4577
- #: classes/wp-security-general-init-tasks.php:586
4578
  msgid "Your CAPTCHA answer was incorrect - please try again."
4579
  msgstr ""
4580
 
4581
- #: classes/wp-security-general-init-tasks.php:595
4582
  msgid "<strong>ERROR</strong>: Your IP address is currently locked please contact the administrator!"
4583
  msgstr ""
4584
 
4585
- #: classes/wp-security-general-init-tasks.php:632
4586
  msgid "Would you like All In One WP Security & Firewall to re-insert the security rules in your .htaccess file which were cleared when you deactivated the plugin?"
4587
  msgstr ""
4588
 
4589
- #: classes/wp-security-general-init-tasks.php:649
 
 
 
 
 
 
 
 
4590
  msgid "Your registration is pending approval."
4591
  msgstr ""
4592
 
@@ -4594,81 +4626,80 @@ msgstr ""
4594
  msgid "Not available."
4595
  msgstr ""
4596
 
4597
- #: classes/wp-security-user-login.php:43
4598
  msgid "<strong>ERROR</strong>: Access from your IP address has been blocked for security reasons. Please contact the administrator."
4599
  msgstr ""
4600
 
4601
- #: classes/wp-security-user-login.php:52
4602
  msgid "Service Temporarily Unavailable"
4603
  msgstr ""
4604
 
4605
- #: classes/wp-security-user-login.php:109
4606
  msgid "<strong>ACCOUNT PENDING</strong>: Your account is currently not active. An administrator needs to activate your account before you can login."
4607
  msgstr ""
4608
 
4609
- #: classes/wp-security-user-login.php:177
4610
  msgid "<strong>ERROR</strong>: Invalid login credentials."
4611
  msgstr ""
4612
 
4613
- #: classes/wp-security-user-login.php:300
4614
  msgid "Site Lockout Notification"
4615
  msgstr ""
4616
 
4617
- #: classes/wp-security-user-login.php:301
4618
  msgid "A lockdown event has occurred due to too many failed login attempts or invalid username:"
4619
  msgstr ""
4620
 
4621
- #: classes/wp-security-user-login.php:302
4622
  msgid "Username:"
4623
  msgstr ""
4624
 
4625
- #: classes/wp-security-user-login.php:303
4626
  msgid "IP Address:"
4627
  msgstr ""
4628
 
4629
- #: classes/wp-security-user-login.php:304
4630
  msgid "IP Range:"
4631
  msgstr ""
4632
 
4633
- #: classes/wp-security-user-login.php:305
4634
  msgid "Log into your site's WordPress administration panel to see the duration of the lockout or to unlock the user."
4635
  msgstr ""
4636
 
4637
- #: classes/wp-security-user-login.php:409
4638
  msgid "Unlock Request Notification"
4639
  msgstr ""
4640
 
4641
- #: classes/wp-security-user-login.php:411
4642
  msgid "You have requested for the account with email address %s to be unlocked. Please click the link below to unlock your account:"
4643
  msgstr ""
4644
 
4645
- #: classes/wp-security-user-login.php:412
4646
  msgid "Unlock link: %s"
4647
  msgstr ""
4648
 
4649
- #: classes/wp-security-user-login.php:413
4650
  msgid "After clicking the above link you will be able to login to the WordPress administration panel."
4651
  msgstr ""
4652
 
4653
- #: classes/wp-security-user-login.php:570
4654
  msgid "Your session has expired because it has been over %d minutes since your last login."
4655
  msgstr ""
4656
 
4657
- #: classes/wp-security-user-login.php:571
4658
- #: classes/wp-security-user-login.php:575
4659
  msgid "Please log back in to continue."
4660
  msgstr ""
4661
 
4662
- #: classes/wp-security-user-login.php:574
4663
  msgid "You were logged out because you just changed the \"admin\" username."
4664
  msgstr ""
4665
 
4666
- #: classes/wp-security-user-login.php:606
4667
  msgid "Request Unlock"
4668
  msgstr ""
4669
 
4670
- #: classes/wp-security-user-registration.php:69
4671
- #: classes/wp-security-user-registration.php:90
4672
  msgid "<strong>ERROR</strong>: You are not allowed to register because your IP address is currently locked!"
4673
  msgstr ""
4674
 
1
+ # Copyright (C) 2020 Tips and Tricks HQ, Peter Petreski, Ruhul, Ivy
2
  # This file is distributed under the same license as the All In One WP Security plugin.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: All In One WP Security 4.4.4\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/all-in-one-wp-security-and-firewall\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2020-12-02T21:21:20+11:00\n"
13
+ "PO-Revision-Date: 2020-12-02T21:21:20+11:00\n"
14
  "X-Generator: WP-CLI 2.2.0\n"
15
  "X-Domain: all-in-one-wp-security-and-firewall\n"
16
 
146
  msgstr ""
147
 
148
  #: admin/wp-security-blacklist-menu.php:139
149
+ #: admin/wp-security-brute-force-menu.php:771
150
+ #: admin/wp-security-firewall-menu.php:1065
151
  #: admin/wp-security-list-404.php:221
152
  #: admin/wp-security-list-comment-spammer-ip.php:205
153
+ #: classes/wp-security-general-init-tasks.php:288
154
  msgid "The plugin was unable to write to the .htaccess file. Please edit file manually."
155
  msgstr ""
156
 
179
  msgstr ""
180
 
181
  #: admin/wp-security-blacklist-menu.php:159
182
+ #: admin/wp-security-firewall-menu.php:901
183
  msgid "You may also be interested in our %s."
184
  msgstr ""
185
 
224
  #: admin/wp-security-brute-force-menu.php:422
225
  #: admin/wp-security-brute-force-menu.php:445
226
  #: admin/wp-security-brute-force-menu.php:466
227
+ #: admin/wp-security-brute-force-menu.php:828
228
+ #: admin/wp-security-filescan-menu.php:318
229
+ #: admin/wp-security-filescan-menu.php:335
230
+ #: admin/wp-security-firewall-menu.php:178
231
+ #: admin/wp-security-firewall-menu.php:215
232
+ #: admin/wp-security-firewall-menu.php:235
233
+ #: admin/wp-security-firewall-menu.php:261
234
+ #: admin/wp-security-firewall-menu.php:388
235
+ #: admin/wp-security-firewall-menu.php:418
236
+ #: admin/wp-security-firewall-menu.php:449
237
+ #: admin/wp-security-firewall-menu.php:477
238
+ #: admin/wp-security-firewall-menu.php:506
239
+ #: admin/wp-security-firewall-menu.php:605
240
+ #: admin/wp-security-firewall-menu.php:623
241
+ #: admin/wp-security-firewall-menu.php:713
242
+ #: admin/wp-security-firewall-menu.php:926
243
+ #: admin/wp-security-firewall-menu.php:949
244
  #: admin/wp-security-settings-menu.php:771
245
  #: admin/wp-security-spam-menu.php:175
246
  #: admin/wp-security-spam-menu.php:348
250
  msgstr ""
251
 
252
  #: admin/wp-security-blacklist-menu.php:202
253
+ #: admin/wp-security-brute-force-menu.php:831
254
  #: admin/wp-security-user-login-menu.php:355
255
  msgid "Each IP address must be on a new line."
256
  msgstr ""
261
  msgstr ""
262
 
263
  #: admin/wp-security-blacklist-menu.php:204
264
+ #: admin/wp-security-brute-force-menu.php:833
265
  #: admin/wp-security-user-login-menu.php:357
266
  msgid "Example 1: 195.47.89.*"
267
  msgstr ""
268
 
269
  #: admin/wp-security-blacklist-menu.php:205
270
+ #: admin/wp-security-brute-force-menu.php:834
271
  #: admin/wp-security-user-login-menu.php:358
272
  msgid "Example 2: 195.47.*.*"
273
  msgstr ""
274
 
275
  #: admin/wp-security-blacklist-menu.php:206
276
+ #: admin/wp-security-brute-force-menu.php:835
277
  #: admin/wp-security-user-login-menu.php:359
278
  msgid "Example 3: 195.*.*.*"
279
  msgstr ""
300
 
301
  #: admin/wp-security-blacklist-menu.php:233
302
  #: admin/wp-security-brute-force-menu.php:228
303
+ #: admin/wp-security-brute-force-menu.php:707
304
+ #: admin/wp-security-brute-force-menu.php:845
305
+ #: admin/wp-security-brute-force-menu.php:907
306
  #: admin/wp-security-database-menu.php:358
307
+ #: admin/wp-security-filescan-menu.php:358
308
  #: admin/wp-security-filesystem-menu.php:249
309
+ #: admin/wp-security-firewall-menu.php:791
310
+ #: admin/wp-security-firewall-menu.php:968
311
  #: admin/wp-security-misc-options-menu.php:174
312
  #: admin/wp-security-misc-options-menu.php:225
313
  #: admin/wp-security-misc-options-menu.php:285
327
  msgstr ""
328
 
329
  #: admin/wp-security-brute-force-menu.php:29
330
+ #: admin/wp-security-brute-force-menu.php:791
331
+ #: admin/wp-security-dashboard-menu.php:759
332
  msgid "Rename Login Page"
333
  msgstr ""
334
 
343
  msgstr ""
344
 
345
  #: admin/wp-security-brute-force-menu.php:32
346
+ #: admin/wp-security-brute-force-menu.php:778
347
  msgid "Login Whitelist"
348
  msgstr ""
349
 
365
 
366
  #: admin/wp-security-brute-force-menu.php:121
367
  #: admin/wp-security-database-menu.php:275
368
+ #: admin/wp-security-filescan-menu.php:182
369
+ #: admin/wp-security-firewall-menu.php:858
370
  #: admin/wp-security-spam-menu.php:226
371
  #: admin/wp-security-spam-menu.php:260
372
  #: admin/wp-security-user-login-menu.php:142
464
 
465
  #: admin/wp-security-brute-force-menu.php:321
466
  #: admin/wp-security-filesystem-menu.php:293
467
+ #: admin/wp-security-firewall-menu.php:129
468
+ #: admin/wp-security-firewall-menu.php:349
469
+ #: admin/wp-security-firewall-menu.php:570
470
+ #: admin/wp-security-firewall-menu.php:758
471
  #: admin/wp-security-settings-menu.php:636
472
  #: admin/wp-security-spam-menu.php:114
473
  msgid "Could not write to the .htaccess file. Please check the file permissions."
510
  msgstr ""
511
 
512
  #: admin/wp-security-brute-force-menu.php:348
513
+ #: admin/wp-security-brute-force-menu.php:790
514
+ #: admin/wp-security-user-login-menu.php:233
515
  msgid "Cookie-Based Brute Force Login Prevention"
516
  msgstr ""
517
 
681
  msgstr ""
682
 
683
  #: admin/wp-security-brute-force-menu.php:575
684
+ msgid "By enabling these settings the Google reCAPTCHA v2 widget will be applied by default for all forms with captcha enabled."
685
  msgstr ""
686
 
687
  #: admin/wp-security-brute-force-menu.php:582
736
  msgid "Check this if you want to insert captcha on a custom login form generated by the following WP function: wp_login_form()"
737
  msgstr ""
738
 
739
+ #: admin/wp-security-brute-force-menu.php:660
740
  msgid "Woocommerce Forms Captcha Settings"
741
  msgstr ""
742
 
743
+ #: admin/wp-security-brute-force-menu.php:669
744
  msgid "Enable Captcha On Woocommerce Login Form"
745
  msgstr ""
746
 
747
+ #: admin/wp-security-brute-force-menu.php:672
748
  msgid "Check this if you want to insert captcha on a Woocommerce login form"
749
  msgstr ""
750
 
751
+ #: admin/wp-security-brute-force-menu.php:682
752
  msgid "Enable Captcha On Woocommerce Lost Password Form"
753
  msgstr ""
754
 
755
+ #: admin/wp-security-brute-force-menu.php:685
756
  msgid "Check this if you want to insert captcha on a Woocommerce lost password form"
757
  msgstr ""
758
 
759
+ #: admin/wp-security-brute-force-menu.php:695
760
  msgid "Enable Captcha On Woocommerce Registration Form"
761
  msgstr ""
762
 
763
+ #: admin/wp-security-brute-force-menu.php:698
764
  msgid "Check this if you want to insert captcha on a Woocommerce registration form"
765
  msgstr ""
766
 
767
+ #: admin/wp-security-brute-force-menu.php:724
768
  msgid "Nonce check failed for save whitelist settings!"
769
  msgstr ""
770
 
771
+ #: admin/wp-security-brute-force-menu.php:781
772
  msgid "The All In One WP Security Whitelist feature gives you the option of only allowing certain IP addresses or ranges to have access to your WordPress login page."
773
  msgstr ""
774
 
775
+ #: admin/wp-security-brute-force-menu.php:782
776
  msgid "This feature will deny login access for all IP addresses which are not in your whitelist as configured in the settings below."
777
  msgstr ""
778
 
779
+ #: admin/wp-security-brute-force-menu.php:783
780
  msgid "The plugin achieves this by writing the appropriate directives to your .htaccess file."
781
  msgstr ""
782
 
783
+ #: admin/wp-security-brute-force-menu.php:784
784
  msgid "By allowing/blocking IP addresses via the .htaccess file your are using the most secure first line of defence because login access will only be granted to whitelisted IP addresses and other addresses will be blocked as soon as they try to access your login page."
785
  msgstr ""
786
 
787
+ #: admin/wp-security-brute-force-menu.php:792
788
  msgid "Attention: If in addition to enabling the white list feature, you also have one of the %s or %s features enabled, <strong>you will still need to use your secret word or special slug in the URL when trying to access your WordPress login page</strong>."
789
  msgstr ""
790
 
791
+ #: admin/wp-security-brute-force-menu.php:793
792
  msgid "These features are NOT functionally related. Having both of them enabled on your site means you are creating 2 layers of security."
793
  msgstr ""
794
 
795
+ #: admin/wp-security-brute-force-menu.php:798
796
  msgid "Login IP Whitelist Settings"
797
  msgstr ""
798
 
799
+ #: admin/wp-security-brute-force-menu.php:809
800
  msgid "Enable IP Whitelisting"
801
  msgstr ""
802
 
803
+ #: admin/wp-security-brute-force-menu.php:812
804
  #: admin/wp-security-user-login-menu.php:343
805
  msgid "Check this if you want to enable the whitelisting of selected IP addresses specified in the settings below"
806
  msgstr ""
807
 
808
+ #: admin/wp-security-brute-force-menu.php:816
809
  msgid "Your Current IP Address"
810
  msgstr ""
811
 
812
+ #: admin/wp-security-brute-force-menu.php:819
813
  msgid "You can copy and paste this address in the text box below if you want to include it in your login whitelist."
814
  msgstr ""
815
 
816
+ #: admin/wp-security-brute-force-menu.php:823
817
  #: admin/wp-security-user-login-menu.php:347
818
  msgid "Enter Whitelisted IP Addresses:"
819
  msgstr ""
820
 
821
+ #: admin/wp-security-brute-force-menu.php:827
822
  msgid "Enter one or more IP addresses or IP ranges you wish to include in your whitelist. Only the addresses specified here will have access to the WordPress login page."
823
  msgstr ""
824
 
825
+ #: admin/wp-security-brute-force-menu.php:832
826
  msgid "To specify an IPv4 range use a wildcard \"*\" character. Acceptable ways to use wildcards is shown in the examples below:"
827
  msgstr ""
828
 
829
+ #: admin/wp-security-brute-force-menu.php:836
830
  msgid "Or you can enter an IPv6 address (NOTE: ranges/wildcards are currently not supported for ipv6)"
831
  msgstr ""
832
 
833
+ #: admin/wp-security-brute-force-menu.php:837
834
  msgid "Example 4: 4102:0:3ea6:79fd:b:46f8:230f:bb05"
835
  msgstr ""
836
 
837
+ #: admin/wp-security-brute-force-menu.php:838
838
  msgid "Example 5: 2205:0:1ca2:810d::"
839
  msgstr ""
840
 
841
+ #: admin/wp-security-brute-force-menu.php:878
842
  msgid "This feature allows you to add a special hidden \"honeypot\" field on the WordPress login page. This will only be visible to robots and not humans."
843
  msgstr ""
844
 
845
+ #: admin/wp-security-brute-force-menu.php:879
846
  msgid "Since robots usually fill in every input field from a login form, they will also submit a value for the special hidden honeypot field."
847
  msgstr ""
848
 
849
+ #: admin/wp-security-brute-force-menu.php:880
850
  #: admin/wp-security-user-registration-menu.php:286
851
  msgid "The way honeypots work is that a hidden field is placed somewhere inside a form which only robots will submit. If that field contains a value when the form is submitted then a robot has most likely submitted the form and it is consequently dealt with."
852
  msgstr ""
853
 
854
+ #: admin/wp-security-brute-force-menu.php:881
855
  msgid "Therefore, if the plugin detects that this field has a value when the login form is submitted, then the robot which is attempting to login to your site will be redirected to its localhost address - http://127.0.0.1."
856
  msgstr ""
857
 
858
+ #: admin/wp-security-brute-force-menu.php:887
859
  msgid "Login Form Honeypot Settings"
860
  msgstr ""
861
 
862
+ #: admin/wp-security-brute-force-menu.php:898
863
  msgid "Enable Honeypot On Login Page"
864
  msgstr ""
865
 
866
+ #: admin/wp-security-brute-force-menu.php:901
867
  msgid "Check this if you want to enable the honeypot feature for the login page"
868
  msgstr ""
869
 
872
  msgstr ""
873
 
874
  #: admin/wp-security-dashboard-menu.php:30
875
+ #: admin/wp-security-dashboard-menu.php:481
876
  msgid "Locked IP Addresses"
877
  msgstr ""
878
 
898
 
899
  #: admin/wp-security-dashboard-menu.php:109
900
  #: admin/wp-security-dashboard-menu.php:113
901
+ #: admin/wp-security-dashboard-menu.php:213
902
  msgid "Version"
903
  msgstr ""
904
 
945
  #: admin/wp-security-dashboard-menu.php:144
946
  #: admin/wp-security-dashboard-menu.php:153
947
  #: admin/wp-security-dashboard-menu.php:162
948
+ #: admin/wp-security-dashboard-menu.php:191
949
  msgid "N/A"
950
  msgstr ""
951
 
963
 
964
  #: admin/wp-security-dashboard-menu.php:169
965
  #: admin/wp-security-dashboard-menu.php:179
 
966
  msgid "On"
967
  msgstr ""
968
 
969
  #: admin/wp-security-dashboard-menu.php:171
970
  #: admin/wp-security-dashboard-menu.php:181
 
971
  msgid "Off"
972
  msgstr ""
973
 
975
  msgid "PHP Allow URL fopen"
976
  msgstr ""
977
 
978
+ #: admin/wp-security-dashboard-menu.php:184
979
  msgid "PHP Display Errors"
980
  msgstr ""
981
 
982
+ #: admin/wp-security-dashboard-menu.php:194
983
  msgid "PHP Max Script Execution Time"
984
  msgstr ""
985
 
986
+ #: admin/wp-security-dashboard-menu.php:201
987
  msgid "Active Plugins"
988
  msgstr ""
989
 
990
+ #: admin/wp-security-dashboard-menu.php:212
991
  #: admin/wp-security-filesystem-menu.php:140
992
  #: admin/wp-security-filesystem-menu.php:159
993
  msgid "Name"
994
  msgstr ""
995
 
996
+ #: admin/wp-security-dashboard-menu.php:214
997
  msgid "Plugin URL"
998
  msgstr ""
999
 
1000
+ #: admin/wp-security-dashboard-menu.php:251
1001
+ #: admin/wp-security-dashboard-menu.php:626
1002
+ #: admin/wp-security-user-login-menu.php:28
1003
+ #: classes/grade-system/wp-security-feature-item-manager.php:42
1004
+ msgid "Login Lockdown"
1005
+ msgstr ""
1006
+
1007
+ #: admin/wp-security-dashboard-menu.php:252
1008
  msgid "This tab displays the list of all IP addresses which are currently temporarily locked out due to the Login Lockdown feature:"
1009
  msgstr ""
1010
 
1011
+ #: admin/wp-security-dashboard-menu.php:259
1012
  msgid "Currently Locked Out IP Addresses and Ranges"
1013
  msgstr ""
1014
 
1015
+ #: admin/wp-security-dashboard-menu.php:303
1016
  msgid "This tab displays the list of all permanently blocked IP addresses."
1017
  msgstr ""
1018
 
1019
+ #: admin/wp-security-dashboard-menu.php:304
1020
  #: admin/wp-security-spam-menu.php:297
1021
  msgid "NOTE: This feature does NOT use the .htaccess file to permanently block the IP addresses so it should be compatible with all web servers running WordPress."
1022
  msgstr ""
1023
 
1024
+ #: admin/wp-security-dashboard-menu.php:310
1025
  msgid "Permanently Blocked IP Addresses"
1026
  msgstr ""
1027
 
1028
+ #: admin/wp-security-dashboard-menu.php:322
1029
+ #: admin/wp-security-firewall-menu.php:983
1030
  #: admin/wp-security-user-login-menu.php:429
1031
  #: admin/wp-security-user-login-menu.php:583
1032
  #: admin/wp-security-user-registration-menu.php:171
1033
  msgid "Search"
1034
  msgstr ""
1035
 
1036
+ #: admin/wp-security-dashboard-menu.php:344
1037
  msgid "View Logs for All In WP Security & Firewall Plugin"
1038
  msgstr ""
1039
 
1040
+ #: admin/wp-security-dashboard-menu.php:352
1041
  msgid "Log File"
1042
  msgstr ""
1043
 
1044
+ #: admin/wp-security-dashboard-menu.php:356
1045
  msgid "--Select a file--"
1046
  msgstr ""
1047
 
1048
+ #: admin/wp-security-dashboard-menu.php:367
1049
  msgid "Select one of the log files to view the contents"
1050
  msgstr ""
1051
 
1052
+ #: admin/wp-security-dashboard-menu.php:372
1053
  msgid "View Logs"
1054
  msgstr ""
1055
 
1056
+ #: admin/wp-security-dashboard-menu.php:393
1057
  msgid "Error! The file you selected is not a permitted file. You can only view log files created by this plugin."
1058
  msgstr ""
1059
 
1060
+ #: admin/wp-security-dashboard-menu.php:400
1061
  msgid "Log File Contents For"
1062
  msgstr ""
1063
 
1064
+ #: admin/wp-security-dashboard-menu.php:414
1065
  msgid "Log file is empty!"
1066
  msgstr ""
1067
 
1068
+ #: admin/wp-security-dashboard-menu.php:469
1069
  msgid "Security Strength Meter"
1070
  msgstr ""
1071
 
1072
+ #: admin/wp-security-dashboard-menu.php:470
1073
  msgid "Security Points Breakdown"
1074
  msgstr ""
1075
 
1076
+ #: admin/wp-security-dashboard-menu.php:471
1077
  msgid "Spread the Word"
1078
  msgstr ""
1079
 
1080
+ #: admin/wp-security-dashboard-menu.php:472
1081
  msgid "Get To Know The Developers"
1082
  msgstr ""
1083
 
1084
+ #: admin/wp-security-dashboard-menu.php:473
1085
  msgid "Critical Feature Status"
1086
  msgstr ""
1087
 
1088
+ #: admin/wp-security-dashboard-menu.php:474
1089
  msgid "Last 5 Logins"
1090
  msgstr ""
1091
 
1092
+ #: admin/wp-security-dashboard-menu.php:475
1093
  msgid "Maintenance Mode Status"
1094
  msgstr ""
1095
 
1096
+ #: admin/wp-security-dashboard-menu.php:480
1097
  #: admin/wp-security-user-login-menu.php:32
1098
  msgid "Logged In Users"
1099
  msgstr ""
1100
 
1101
+ #: admin/wp-security-dashboard-menu.php:524
1102
  msgid "Total Achievable Points: "
1103
  msgstr ""
1104
 
1105
+ #: admin/wp-security-dashboard-menu.php:526
1106
  msgid "Current Score of Your Site: "
1107
  msgstr ""
1108
 
1109
+ #: admin/wp-security-dashboard-menu.php:579
1110
  msgid "We are working hard to make your WordPress site more secure. Please support us, here is how:"
1111
  msgstr ""
1112
 
1113
+ #: admin/wp-security-dashboard-menu.php:580
1114
  msgid "Follow us on"
1115
  msgstr ""
1116
 
1117
+ #: admin/wp-security-dashboard-menu.php:584
1118
  msgid "Post to Twitter"
1119
  msgstr ""
1120
 
1121
+ #: admin/wp-security-dashboard-menu.php:588
1122
  msgid "Give us a Good Rating"
1123
  msgstr ""
1124
 
1125
+ #: admin/wp-security-dashboard-menu.php:595
1126
  msgid "Wanna know more about the developers behind this plugin?"
1127
  msgstr ""
1128
 
1129
+ #: admin/wp-security-dashboard-menu.php:607
1130
  msgid "Below is the current status of the critical features that you should activate on your site to achieve a minimum level of recommended security"
1131
  msgstr ""
1132
 
1133
+ #: admin/wp-security-dashboard-menu.php:611
1134
  msgid "Admin Username"
1135
  msgstr ""
1136
 
1137
+ #: admin/wp-security-dashboard-menu.php:641
 
 
 
 
 
 
1138
  msgid "File Permission"
1139
  msgstr ""
1140
 
1141
+ #: admin/wp-security-dashboard-menu.php:656
1142
  msgid "Basic Firewall"
1143
  msgstr ""
1144
 
1145
+ #: admin/wp-security-dashboard-menu.php:685
1146
  msgid "No data found!"
1147
  msgstr ""
1148
 
1149
+ #: admin/wp-security-dashboard-menu.php:689
1150
  msgid "Last 5 logins summary:"
1151
  msgstr ""
1152
 
1153
+ #: admin/wp-security-dashboard-menu.php:693
1154
  msgid "User"
1155
  msgstr ""
1156
 
1157
+ #: admin/wp-security-dashboard-menu.php:694
1158
  #: admin/wp-security-list-404.php:88
1159
  #: admin/wp-security-list-login-fails.php:57
1160
  #: admin/wp-security-list-permanent-blocked-ip.php:68
1161
  msgid "Date"
1162
  msgstr ""
1163
 
1164
+ #: admin/wp-security-dashboard-menu.php:695
1165
  msgid "IP"
1166
  msgstr ""
1167
 
1168
+ #: admin/wp-security-dashboard-menu.php:716
1169
  msgid "Maintenance mode is currently enabled. Remember to turn it off when you are done"
1170
  msgstr ""
1171
 
1172
+ #: admin/wp-security-dashboard-menu.php:718
1173
  msgid "Maintenance mode is currently off."
1174
  msgstr ""
1175
 
1176
+ #: admin/wp-security-dashboard-menu.php:722
1177
  msgid "Maintenance Mode"
1178
  msgstr ""
1179
 
1180
+ #: admin/wp-security-dashboard-menu.php:740
1181
  msgid "Cookie-Based Brute Force"
1182
  msgstr ""
1183
 
1184
+ #: admin/wp-security-dashboard-menu.php:744
1185
+ #: admin/wp-security-dashboard-menu.php:762
1186
  msgid "The %s feature is currently active."
1187
  msgstr ""
1188
 
1189
+ #: admin/wp-security-dashboard-menu.php:745
1190
+ #: admin/wp-security-dashboard-menu.php:763
1191
  msgid "Your new WordPress login URL is now:"
1192
  msgstr ""
1193
 
1194
+ #: admin/wp-security-dashboard-menu.php:774
1195
+ msgid "Number of users currently logged into your site (including you) is:"
1196
  msgstr ""
1197
 
1198
+ #: admin/wp-security-dashboard-menu.php:775
1199
+ msgid "There are no other users currently logged in."
 
 
1200
  msgstr ""
1201
 
1202
+ #: admin/wp-security-dashboard-menu.php:788
1203
+ msgid "Number of users currently logged in site-wide (including you) is:"
1204
  msgstr ""
1205
 
1206
+ #: admin/wp-security-dashboard-menu.php:789
1207
+ msgid "There are no other site-wide users currently logged in."
1208
  msgstr ""
1209
 
1210
+ #: admin/wp-security-dashboard-menu.php:802
1211
+ #: admin/wp-security-dashboard-menu.php:819
1212
+ msgid "Go to the %s menu to see more details"
1213
  msgstr ""
1214
 
1215
+ #: admin/wp-security-dashboard-menu.php:815
1216
  msgid "There are no IP addresses currently locked out."
1217
  msgstr ""
1218
 
1219
+ #: admin/wp-security-dashboard-menu.php:818
1220
  msgid "Number of temporarily locked out IP addresses: "
1221
  msgstr ""
1222
 
1320
  msgstr ""
1321
 
1322
  #: admin/wp-security-database-menu.php:255
1323
+ #: admin/wp-security-filescan-menu.php:140
1324
  msgid "You entered a non numeric value for the \"backup time interval\" field. It has been set to the default value."
1325
  msgstr ""
1326
 
1362
  msgstr ""
1363
 
1364
  #: admin/wp-security-database-menu.php:335
1365
+ #: admin/wp-security-filescan-menu.php:306
1366
  msgid "Hours"
1367
  msgstr ""
1368
 
1369
  #: admin/wp-security-database-menu.php:336
1370
+ #: admin/wp-security-filescan-menu.php:307
1371
  msgid "Days"
1372
  msgstr ""
1373
 
1374
  #: admin/wp-security-database-menu.php:337
1375
+ #: admin/wp-security-filescan-menu.php:308
1376
  msgid "Weeks"
1377
  msgstr ""
1378
 
1434
  msgid "%s tables had their prefix updated successfully!"
1435
  msgstr ""
1436
 
1437
+ #: admin/wp-security-database-menu.php:464
1438
  msgid "wp-config.php file was updated successfully!"
1439
  msgstr ""
1440
 
1441
+ #: admin/wp-security-database-menu.php:467
1442
  msgid ""
1443
  "The \"wp-config.php\" file was not able to be modified. Please modify this file manually using your favourite editor and search
1444
  \n"
1445
  " for variable \"$table_prefix\" and assign the following value to that variable: %s"
1446
  msgstr ""
1447
 
1448
+ #: admin/wp-security-database-menu.php:479
1449
+ #: admin/wp-security-database-menu.php:498
1450
  msgid "Update of table %s failed: unable to change %s to %s"
1451
  msgstr ""
1452
 
1453
+ #: admin/wp-security-database-menu.php:483
1454
  msgid "The options table records which had references to the old DB prefix were updated successfully!"
1455
  msgstr ""
1456
 
1457
+ #: admin/wp-security-database-menu.php:502
1458
  msgid "The %s table records which had references to the old DB prefix were updated successfully!"
1459
  msgstr ""
1460
 
1461
+ #: admin/wp-security-database-menu.php:530
1462
  msgid "Error updating user_meta table where new meta_key = %s, old meta_key = %s and user_id = %s."
1463
  msgstr ""
1464
 
1465
+ #: admin/wp-security-database-menu.php:535
1466
  msgid "The usermeta table records which had references to the old DB prefix were updated successfully!"
1467
  msgstr ""
1468
 
1469
+ #: admin/wp-security-database-menu.php:537
1470
  msgid "DB prefix change tasks have been completed."
1471
  msgstr ""
1472
 
1473
+ #: admin/wp-security-database-menu.php:581
1474
  msgid "Checking for MySQL tables of type \"view\"....."
1475
  msgstr ""
1476
 
1477
+ #: admin/wp-security-database-menu.php:598
1478
  msgid "Update of the following MySQL view definition failed: %s"
1479
  msgstr ""
1480
 
1481
+ #: admin/wp-security-database-menu.php:605
1482
  msgid "%s view definitions were updated successfully!"
1483
  msgstr ""
1484
 
1491
  msgid "Malware Scan"
1492
  msgstr ""
1493
 
1494
+ #: admin/wp-security-filescan-menu.php:95
1495
  msgid "There have been no file changes since the last scan."
1496
  msgstr ""
1497
 
1498
+ #: admin/wp-security-filescan-menu.php:105
1499
  msgid "Nonce check failed for manual file change detection scan operation!"
1500
  msgstr ""
1501
 
1502
+ #: admin/wp-security-filescan-menu.php:111
1503
+ msgid "There was an error during the file change detection scan. Please check the aiowps logs."
1504
  msgstr ""
1505
 
1506
+ #: admin/wp-security-filescan-menu.php:117
1507
+ msgid "The plugin has detected that this is your first file change detection scan. The file details from this scan will be used to detect file changes for future scans."
1508
+ msgstr ""
1509
+
1510
+ #: admin/wp-security-filescan-menu.php:119
1511
  msgid "Scan Complete - There were no file changes detected!"
1512
  msgstr ""
1513
 
1514
+ #: admin/wp-security-filescan-menu.php:174
1515
  msgid "The following address was removed because it is not a valid email address: "
1516
  msgstr ""
1517
 
1518
+ #: admin/wp-security-filescan-menu.php:214
1519
  msgid ""
1520
  "NEW SCAN COMPLETED: The plugin has detected that you have made changes to the \"File Types To Ignore\" or \"Files To Ignore\" fields.
1521
  \n"
1522
  " In order to ensure that future scan results are accurate, the old scan data has been refreshed."
1523
  msgstr ""
1524
 
1525
+ #: admin/wp-security-filescan-menu.php:224
1526
  msgid "All In One WP Security & Firewall has detected that there was a change in your host's files."
1527
  msgstr ""
1528
 
1529
+ #: admin/wp-security-filescan-menu.php:226
1530
  msgid "View Scan Details & Clear This Message"
1531
  msgstr ""
1532
 
1533
+ #: admin/wp-security-filescan-menu.php:235
1534
  msgid "If given an opportunity hackers can insert their code or files into your system which they can then use to carry out malicious acts on your site."
1535
  msgstr ""
1536
 
1537
+ #: admin/wp-security-filescan-menu.php:236
1538
  msgid "Being informed of any changes in your files can be a good way to quickly prevent a hacker from causing damage to your website."
1539
  msgstr ""
1540
 
1541
+ #: admin/wp-security-filescan-menu.php:237
1542
  msgid "In general, WordPress core and plugin files and file types such as \".php\" or \".js\" should not change often and when they do, it is important that you are made aware when a change occurs and which file was affected."
1543
  msgstr ""
1544
 
1545
+ #: admin/wp-security-filescan-menu.php:238
1546
  msgid "The \"File Change Detection Feature\" will notify you of any file change which occurs on your system, including the addition and deletion of files by performing a regular automated or manual scan of your system's files."
1547
  msgstr ""
1548
 
1549
+ #: admin/wp-security-filescan-menu.php:239
1550
  msgid "This feature also allows you to exclude certain files or folders from the scan in cases where you know that they change often as part of their normal operation. (For example log files and certain caching plugin files may change often and hence you may choose to exclude such files from the file change detection scan)"
1551
  msgstr ""
1552
 
1553
+ #: admin/wp-security-filescan-menu.php:250
1554
  msgid "It appears that your server is using an old PHP version which is missing the %s. The file scanner feature needs this class in order to work. If you would like to use this feature please upgrade your server PHP version to 5.3 or greater."
1555
  msgstr ""
1556
 
1557
+ #: admin/wp-security-filescan-menu.php:258
1558
  msgid "Manual File Change Detection Scan"
1559
  msgstr ""
1560
 
1561
+ #: admin/wp-security-filescan-menu.php:264
1562
  msgid "To perform a manual file change detection scan click on the button below."
1563
  msgstr ""
1564
 
1565
+ #: admin/wp-security-filescan-menu.php:267
1566
  msgid "Perform Scan Now"
1567
  msgstr ""
1568
 
1569
+ #: admin/wp-security-filescan-menu.php:271
1570
  msgid "View Last Saved File Change Results"
1571
  msgstr ""
1572
 
1573
+ #: admin/wp-security-filescan-menu.php:277
1574
  msgid "Click the button below to view the saved file change results from the last scan."
1575
  msgstr ""
1576
 
1577
+ #: admin/wp-security-filescan-menu.php:280
1578
  msgid "View Last File Change"
1579
  msgstr ""
1580
 
1581
+ #: admin/wp-security-filescan-menu.php:284
1582
  msgid "File Change Detection Settings"
1583
  msgstr ""
1584
 
1585
+ #: admin/wp-security-filescan-menu.php:296
1586
  msgid "Enable Automated File Change Detection Scan"
1587
  msgstr ""
1588
 
1589
+ #: admin/wp-security-filescan-menu.php:299
1590
  msgid "Check this if you want the system to automatically/periodically scan your files to check for file changes based on the settings below"
1591
  msgstr ""
1592
 
1593
+ #: admin/wp-security-filescan-menu.php:303
1594
  msgid "Scan Time Interval"
1595
  msgstr ""
1596
 
1597
+ #: admin/wp-security-filescan-menu.php:310
1598
  msgid "Set the value for how often you would like a scan to occur"
1599
  msgstr ""
1600
 
1601
+ #: admin/wp-security-filescan-menu.php:314
1602
  msgid "File Types To Ignore"
1603
  msgstr ""
1604
 
1605
+ #: admin/wp-security-filescan-menu.php:317
1606
  msgid "Enter each file type or extension on a new line which you wish to exclude from the file change detection scan."
1607
  msgstr ""
1608
 
1609
+ #: admin/wp-security-filescan-menu.php:321
1610
  msgid "You can exclude file types from the scan which would not normally pose any security threat if they were changed. These can include things such as image files."
1611
  msgstr ""
1612
 
1613
+ #: admin/wp-security-filescan-menu.php:322
1614
  msgid "Example: If you want the scanner to ignore files of type jpg, png, and bmp, then you would enter the following:"
1615
  msgstr ""
1616
 
1617
+ #: admin/wp-security-filescan-menu.php:323
1618
  msgid "jpg"
1619
  msgstr ""
1620
 
1621
+ #: admin/wp-security-filescan-menu.php:324
1622
  msgid "png"
1623
  msgstr ""
1624
 
1625
+ #: admin/wp-security-filescan-menu.php:325
1626
  msgid "bmp"
1627
  msgstr ""
1628
 
1629
+ #: admin/wp-security-filescan-menu.php:331
1630
  msgid "Files/Directories To Ignore"
1631
  msgstr ""
1632
 
1633
+ #: admin/wp-security-filescan-menu.php:334
1634
  msgid "Enter each file or directory on a new line which you wish to exclude from the file change detection scan."
1635
  msgstr ""
1636
 
1637
+ #: admin/wp-security-filescan-menu.php:338
1638
  msgid "You can exclude specific files/directories from the scan which would not normally pose any security threat if they were changed. These can include things such as log files."
1639
  msgstr ""
1640
 
1641
+ #: admin/wp-security-filescan-menu.php:339
1642
  msgid "Example: If you want the scanner to ignore certain files in different directories or whole directories, then you would enter the following:"
1643
  msgstr ""
1644
 
1645
+ #: admin/wp-security-filescan-menu.php:340
1646
  msgid "cache/config/master.php"
1647
  msgstr ""
1648
 
1649
+ #: admin/wp-security-filescan-menu.php:341
1650
  msgid "somedirectory"
1651
  msgstr ""
1652
 
1653
+ #: admin/wp-security-filescan-menu.php:347
1654
  msgid "Send Email When Change Detected"
1655
  msgstr ""
1656
 
1657
+ #: admin/wp-security-filescan-menu.php:350
1658
  msgid "Check this if you want the system to email you if a file change was detected"
1659
  msgstr ""
1660
 
1661
+ #: admin/wp-security-filescan-menu.php:354
1662
  msgid "Enter one or more email addresses on a new line."
1663
  msgstr ""
1664
 
1665
+ #: admin/wp-security-filescan-menu.php:371
1666
  msgid "What is Malware?"
1667
  msgstr ""
1668
 
1669
+ #: admin/wp-security-filescan-menu.php:372
1670
  msgid "The word Malware stands for Malicious Software. It can consist of things like trojan horses, adware, worms, spyware and any other undesirable code which a hacker will try to inject into your website."
1671
  msgstr ""
1672
 
1673
+ #: admin/wp-security-filescan-menu.php:373
1674
  msgid "Often when malware code has been inserted into your site you will normally not notice anything out of the ordinary based on appearances, but it can have a dramatic effect on your site's search ranking."
1675
  msgstr ""
1676
 
1677
+ #: admin/wp-security-filescan-menu.php:374
1678
  msgid "This is because the bots and spiders from search engines such as Google have the capability to detect malware when they are indexing the pages on your site, and consequently they can blacklist your website which will in turn affect your search rankings."
1679
  msgstr ""
1680
 
1681
+ #: admin/wp-security-filescan-menu.php:376
1682
  msgid "CLICK HERE"
1683
  msgstr ""
1684
 
1685
+ #: admin/wp-security-filescan-menu.php:378
1686
  msgid "Scanning For Malware"
1687
  msgstr ""
1688
 
1689
+ #: admin/wp-security-filescan-menu.php:379
1690
  msgid "Due to the constantly changing and complex nature of Malware, scanning for such things using a standalone plugin will not work reliably. This is something best done via an external scan of your site regularly."
1691
  msgstr ""
1692
 
1693
+ #: admin/wp-security-filescan-menu.php:380
1694
  msgid "This is why we have created an easy-to-use scanning service which is hosted off our own server which will scan your site for malware once every day and notify you if it finds anything."
1695
  msgstr ""
1696
 
1697
+ #: admin/wp-security-filescan-menu.php:381
1698
  msgid "When you sign up for this service you will get the following:"
1699
  msgstr ""
1700
 
1701
+ #: admin/wp-security-filescan-menu.php:383
1702
  msgid "Automatic Daily Scan of 1 Website"
1703
  msgstr ""
1704
 
1705
+ #: admin/wp-security-filescan-menu.php:384
1706
  msgid "Automatic Malware & Blacklist Monitoring"
1707
  msgstr ""
1708
 
1709
+ #: admin/wp-security-filescan-menu.php:385
1710
  msgid "Automatic Email Alerting"
1711
  msgstr ""
1712
 
1713
+ #: admin/wp-security-filescan-menu.php:386
1714
  msgid "Site uptime monitoring"
1715
  msgstr ""
1716
 
1717
+ #: admin/wp-security-filescan-menu.php:387
1718
  msgid "Site response time monitoring"
1719
  msgstr ""
1720
 
1721
+ #: admin/wp-security-filescan-menu.php:388
1722
  msgid "We provide advice for malware cleanup"
1723
  msgstr ""
1724
 
1725
+ #: admin/wp-security-filescan-menu.php:389
1726
  msgid "Blacklist Removal"
1727
  msgstr ""
1728
 
1729
+ #: admin/wp-security-filescan-menu.php:390
1730
  msgid "No Contract (Cancel Anytime)"
1731
  msgstr ""
1732
 
1733
+ #: admin/wp-security-filescan-menu.php:392
1734
  msgid "To learn more please %s."
1735
  msgstr ""
1736
 
1737
+ #: admin/wp-security-filescan-menu.php:413
1738
  msgid "Latest File Change Scan Results"
1739
  msgstr ""
1740
 
1741
+ #: admin/wp-security-filescan-menu.php:423
1742
  msgid "The following files were added to your host."
1743
  msgstr ""
1744
 
1745
+ #: admin/wp-security-filescan-menu.php:426
1746
+ #: admin/wp-security-filescan-menu.php:447
1747
+ #: admin/wp-security-filescan-menu.php:471
1748
  #: admin/wp-security-settings-menu.php:31
1749
  #: admin/wp-security-settings-menu.php:32
1750
  msgid "File"
1751
  msgstr ""
1752
 
1753
+ #: admin/wp-security-filescan-menu.php:427
1754
+ #: admin/wp-security-filescan-menu.php:448
1755
+ #: admin/wp-security-filescan-menu.php:472
1756
  msgid "File Size"
1757
  msgstr ""
1758
 
1759
+ #: admin/wp-security-filescan-menu.php:428
1760
+ #: admin/wp-security-filescan-menu.php:449
1761
+ #: admin/wp-security-filescan-menu.php:473
1762
  msgid "File Modified"
1763
  msgstr ""
1764
 
1765
+ #: admin/wp-security-filescan-menu.php:444
1766
  msgid "The following files were removed from your host."
1767
  msgstr ""
1768
 
1769
+ #: admin/wp-security-filescan-menu.php:468
1770
  msgid "The following files were changed on your host."
1771
  msgstr ""
1772
 
2000
  msgid "Custom Rules"
2001
  msgstr ""
2002
 
2003
+ #: admin/wp-security-firewall-menu.php:125
2004
+ #: admin/wp-security-firewall-menu.php:754
2005
  #: admin/wp-security-spam-menu.php:110
2006
  #: admin/wp-security-spam-menu.php:454
2007
  #: admin/wp-security-spam-menu.php:516
2009
  msgid "Settings were successfully saved"
2010
  msgstr ""
2011
 
2012
+ #: admin/wp-security-firewall-menu.php:134
2013
+ #: admin/wp-security-firewall-menu.php:575
2014
  msgid "Firewall Settings"
2015
  msgstr ""
2016
 
2017
+ #: admin/wp-security-firewall-menu.php:141
2018
  msgid "This should not have any impact on your site's general functionality but if you wish you can take a %s of your .htaccess file before proceeding."
2019
  msgstr ""
2020
 
2021
+ #: admin/wp-security-firewall-menu.php:142
2022
  msgid "The features in this tab allow you to activate some basic firewall security protection rules for your site."
2023
  msgstr ""
2024
 
2025
+ #: admin/wp-security-firewall-menu.php:143
2026
  msgid "The firewall functionality is achieved via the insertion of special code into your currently active .htaccess file."
2027
  msgstr ""
2028
 
2029
+ #: admin/wp-security-firewall-menu.php:154
2030
  msgid "Attention: You have enabled the \"Completely Block Access To XMLRPC\" checkbox which means all XMLRPC functionality will be blocked."
2031
  msgstr ""
2032
 
2033
+ #: admin/wp-security-firewall-menu.php:155
2034
  msgid "By leaving this feature enabled you will prevent Jetpack or Wordpress iOS or other apps which need XMLRPC from working correctly on your site."
2035
  msgstr ""
2036
 
2037
+ #: admin/wp-security-firewall-menu.php:156
2038
  msgid "If you still need XMLRPC then uncheck the \"Completely Block Access To XMLRPC\" checkbox and enable only the \"Disable Pingback Functionality From XMLRPC\" checkbox."
2039
  msgstr ""
2040
 
2041
+ #: admin/wp-security-firewall-menu.php:166
2042
  msgid "Basic Firewall Settings"
2043
  msgstr ""
2044
 
2045
+ #: admin/wp-security-firewall-menu.php:174
2046
  msgid "Enable Basic Firewall Protection"
2047
  msgstr ""
2048
 
2049
+ #: admin/wp-security-firewall-menu.php:177
2050
  msgid "Check this if you want to apply basic firewall protection to your site."
2051
  msgstr ""
2052
 
2053
+ #: admin/wp-security-firewall-menu.php:181
2054
  msgid "This setting will implement the following basic firewall protection mechanisms on your site:"
2055
  msgstr ""
2056
 
2057
+ #: admin/wp-security-firewall-menu.php:182
2058
  msgid "1) Protect your htaccess file by denying access to it."
2059
  msgstr ""
2060
 
2061
+ #: admin/wp-security-firewall-menu.php:183
2062
  msgid "2) Disable the server signature."
2063
  msgstr ""
2064
 
2065
+ #: admin/wp-security-firewall-menu.php:184
2066
  msgid "3) Limit file upload size (10MB)."
2067
  msgstr ""
2068
 
2069
+ #: admin/wp-security-firewall-menu.php:185
2070
  msgid "4) Protect your wp-config.php file by denying access to it."
2071
  msgstr ""
2072
 
2073
+ #: admin/wp-security-firewall-menu.php:186
2074
  msgid "The above firewall features will be applied via your .htaccess file and should not affect your site's overall functionality."
2075
  msgstr ""
2076
 
2077
+ #: admin/wp-security-firewall-menu.php:187
2078
  msgid "You are still advised to take a backup of your active .htaccess file just in case."
2079
  msgstr ""
2080
 
2081
+ #: admin/wp-security-firewall-menu.php:193
2082
+ msgid "Max File Upload Size (MB)"
2083
+ msgstr ""
2084
+
2085
+ #: admin/wp-security-firewall-menu.php:195
2086
+ msgid "The value for the maximum file upload size used in the .htaccess file. (Defaults to 10MB if left blank)"
2087
+ msgstr ""
2088
+
2089
+ #: admin/wp-security-firewall-menu.php:203
2090
  msgid "WordPress XMLRPC & Pingback Vulnerability Protection"
2091
  msgstr ""
2092
 
2093
+ #: admin/wp-security-firewall-menu.php:211
2094
  msgid "Completely Block Access To XMLRPC"
2095
  msgstr ""
2096
 
2097
+ #: admin/wp-security-firewall-menu.php:214
2098
  msgid "Check this if you are not using the WP XML-RPC functionality and you want to completely block external access to XMLRPC."
2099
  msgstr ""
2100
 
2101
+ #: admin/wp-security-firewall-menu.php:218
2102
  msgid "This setting will add a directive in your .htaccess to disable access to the WordPress xmlrpc.php file which is responsible for the XML-RPC functionality in WordPress."
2103
  msgstr ""
2104
 
2105
+ #: admin/wp-security-firewall-menu.php:219
2106
  msgid "Hackers can exploit various vulnerabilities in the WordPress XML-RPC API in a number of ways such as:"
2107
  msgstr ""
2108
 
2109
+ #: admin/wp-security-firewall-menu.php:220
2110
  msgid "1) Denial of Service (DoS) attacks"
2111
  msgstr ""
2112
 
2113
+ #: admin/wp-security-firewall-menu.php:221
2114
  msgid "2) Hacking internal routers."
2115
  msgstr ""
2116
 
2117
+ #: admin/wp-security-firewall-menu.php:222
2118
  msgid "3) Scanning ports in internal networks to get info from various hosts."
2119
  msgstr ""
2120
 
2121
+ #: admin/wp-security-firewall-menu.php:223
2122
  msgid "Apart from the security protection benefit, this feature may also help reduce load on your server, particularly if your site currently has a lot of unwanted traffic hitting the XML-RPC API on your installation."
2123
  msgstr ""
2124
 
2125
+ #: admin/wp-security-firewall-menu.php:224
2126
  msgid "NOTE: You should only enable this feature if you are not currently using the XML-RPC functionality on your WordPress installation."
2127
  msgstr ""
2128
 
2129
+ #: admin/wp-security-firewall-menu.php:225
2130
  msgid "Leave this feature disabled and use the feature below if you want pingback protection but you still need XMLRPC."
2131
  msgstr ""
2132
 
2133
+ #: admin/wp-security-firewall-menu.php:231
2134
  msgid "Disable Pingback Functionality From XMLRPC"
2135
  msgstr ""
2136
 
2137
+ #: admin/wp-security-firewall-menu.php:234
2138
  msgid "If you use Jetpack or WP iOS or other apps which need WP XML-RPC functionality then check this. This will enable protection against WordPress pingback vulnerabilities."
2139
  msgstr ""
2140
 
2141
+ #: admin/wp-security-firewall-menu.php:238
2142
  msgid "NOTE: If you use Jetpack or the Wordpress iOS or other apps then you should enable this feature but leave the \"Completely Block Access To XMLRPC\" checkbox unchecked."
2143
  msgstr ""
2144
 
2145
+ #: admin/wp-security-firewall-menu.php:239
2146
  msgid "The feature will still allow XMLRPC functionality on your site but will disable the pingback methods."
2147
  msgstr ""
2148
 
2149
+ #: admin/wp-security-firewall-menu.php:240
2150
  msgid "This feature will also remove the \"X-Pingback\" header if it is present."
2151
  msgstr ""
2152
 
2153
+ #: admin/wp-security-firewall-menu.php:249
2154
  msgid "Block Access to Debug Log File"
2155
  msgstr ""
2156
 
2157
+ #: admin/wp-security-firewall-menu.php:257
2158
  msgid "Block Access to debug.log File"
2159
  msgstr ""
2160
 
2161
+ #: admin/wp-security-firewall-menu.php:260
2162
  msgid "Check this if you want to block access to the debug.log file that WordPress creates when debug logging is enabled."
2163
  msgstr ""
2164
 
2165
+ #: admin/wp-security-firewall-menu.php:264
2166
  msgid "WordPress has an option to turn on the debug logging to a file located in wp-content/debug.log. This file may contain sensitive information."
2167
  msgstr ""
2168
 
2169
+ #: admin/wp-security-firewall-menu.php:265
2170
  msgid "Using this optoin will block external access to this file. You can still access this file by logging into your site via FTP"
2171
  msgstr ""
2172
 
2173
+ #: admin/wp-security-firewall-menu.php:273
2174
  msgid "Save Basic Firewall Settings"
2175
  msgstr ""
2176
 
2177
+ #: admin/wp-security-firewall-menu.php:345
2178
  msgid "You have successfully saved the Additional Firewall Protection configuration"
2179
  msgstr ""
2180
 
2181
+ #: admin/wp-security-firewall-menu.php:359
2182
  msgid "Additional Firewall Protection"
2183
  msgstr ""
2184
 
2185
+ #: admin/wp-security-firewall-menu.php:363
2186
  msgid "Due to the nature of the code being inserted to the .htaccess file, this feature may break some functionality for certain plugins and you are therefore advised to take a %s of .htaccess before applying this configuration."
2187
  msgstr ""
2188
 
2189
+ #: admin/wp-security-firewall-menu.php:365
2190
  msgid "This feature allows you to activate more advanced firewall settings to your site."
2191
  msgstr ""
2192
 
2193
+ #: admin/wp-security-firewall-menu.php:366
2194
  msgid "The advanced firewall rules are applied via the insertion of special code to your currently active .htaccess file."
2195
  msgstr ""
2196
 
2197
+ #: admin/wp-security-firewall-menu.php:375
2198
  msgid "Listing of Directory Contents"
2199
  msgstr ""
2200
 
2201
+ #: admin/wp-security-firewall-menu.php:384
2202
  #: classes/grade-system/wp-security-feature-item-manager.php:97
2203
  msgid "Disable Index Views"
2204
  msgstr ""
2205
 
2206
+ #: admin/wp-security-firewall-menu.php:387
2207
  msgid "Check this if you want to disable directory and file listing."
2208
  msgstr ""
2209
 
2210
+ #: admin/wp-security-firewall-menu.php:392
2211
  msgid "By default, an Apache server will allow the listing of the contents of a directory if it doesn't contain an index.php file."
2212
  msgstr ""
2213
 
2214
+ #: admin/wp-security-firewall-menu.php:394
2215
  msgid "This feature will prevent the listing of contents for all directories."
2216
  msgstr ""
2217
 
2218
+ #: admin/wp-security-firewall-menu.php:396
2219
  msgid "NOTE: In order for this feature to work \"AllowOverride\" of the Indexes directive must be enabled in your httpd.conf file. Ask your hosting provider to check this if you don't have access to httpd.conf"
2220
  msgstr ""
2221
 
2222
+ #: admin/wp-security-firewall-menu.php:405
2223
  msgid "Trace and Track"
2224
  msgstr ""
2225
 
2226
+ #: admin/wp-security-firewall-menu.php:414
2227
  #: classes/grade-system/wp-security-feature-item-manager.php:98
2228
  msgid "Disable Trace and Track"
2229
  msgstr ""
2230
 
2231
+ #: admin/wp-security-firewall-menu.php:417
2232
  msgid "Check this if you want to disable trace and track."
2233
  msgstr ""
2234
 
2235
+ #: admin/wp-security-firewall-menu.php:422
2236
  msgid "HTTP Trace attack (XST) can be used to return header requests and grab cookies and other information."
2237
  msgstr ""
2238
 
2239
+ #: admin/wp-security-firewall-menu.php:424
2240
  msgid "This hacking technique is usually used together with cross site scripting attacks (XSS)."
2241
  msgstr ""
2242
 
2243
+ #: admin/wp-security-firewall-menu.php:426
2244
  msgid "Disabling trace and track on your site will help prevent HTTP Trace attacks."
2245
  msgstr ""
2246
 
2247
+ #: admin/wp-security-firewall-menu.php:435
2248
  msgid "Proxy Comment Posting"
2249
  msgstr ""
2250
 
2251
+ #: admin/wp-security-firewall-menu.php:445
2252
  msgid "Forbid Proxy Comment Posting"
2253
  msgstr ""
2254
 
2255
+ #: admin/wp-security-firewall-menu.php:448
2256
  msgid "Check this if you want to forbid proxy comment posting."
2257
  msgstr ""
2258
 
2259
+ #: admin/wp-security-firewall-menu.php:453
2260
  msgid "This setting will deny any requests that use a proxy server when posting comments."
2261
  msgstr ""
2262
 
2263
+ #: admin/wp-security-firewall-menu.php:454
2264
  msgid "By forbidding proxy comments you are in effect eliminating some SPAM and other proxy requests."
2265
  msgstr ""
2266
 
2267
+ #: admin/wp-security-firewall-menu.php:463
2268
  msgid "Bad Query Strings"
2269
  msgstr ""
2270
 
2271
+ #: admin/wp-security-firewall-menu.php:473
2272
  msgid "Deny Bad Query Strings"
2273
  msgstr ""
2274
 
2275
+ #: admin/wp-security-firewall-menu.php:476
2276
  msgid "This will help protect you against malicious queries via XSS."
2277
  msgstr ""
2278
 
2279
+ #: admin/wp-security-firewall-menu.php:481
2280
  msgid "This feature will write rules in your .htaccess file to prevent malicious string attacks on your site using XSS."
2281
  msgstr ""
2282
 
2283
+ #: admin/wp-security-firewall-menu.php:482
2284
  msgid "NOTE: Some of these strings might be used for plugins or themes and hence this might break some functionality."
2285
  msgstr ""
2286
 
2287
+ #: admin/wp-security-firewall-menu.php:483
2288
+ #: admin/wp-security-firewall-menu.php:513
2289
  msgid "You are therefore strongly advised to take a backup of your active .htaccess file before applying this feature."
2290
  msgstr ""
2291
 
2292
+ #: admin/wp-security-firewall-menu.php:492
2293
  #: classes/grade-system/wp-security-feature-item-manager.php:101
2294
  msgid "Advanced Character String Filter"
2295
  msgstr ""
2296
 
2297
+ #: admin/wp-security-firewall-menu.php:502
2298
  msgid "Enable Advanced Character String Filter"
2299
  msgstr ""
2300
 
2301
+ #: admin/wp-security-firewall-menu.php:505
2302
  msgid "This will block bad character matches from XSS."
2303
  msgstr ""
2304
 
2305
+ #: admin/wp-security-firewall-menu.php:510
2306
  msgid "This is an advanced character string filter to prevent malicious string attacks on your site coming from Cross Site Scripting (XSS)."
2307
  msgstr ""
2308
 
2309
+ #: admin/wp-security-firewall-menu.php:511
2310
  msgid "This setting matches for common malicious string patterns and exploits and will produce a 403 error for the hacker attempting the query."
2311
  msgstr ""
2312
 
2313
+ #: admin/wp-security-firewall-menu.php:512
2314
  msgid "NOTE: Some strings for this setting might break some functionality."
2315
  msgstr ""
2316
 
2317
+ #: admin/wp-security-firewall-menu.php:521
2318
  msgid "Save Additional Firewall Settings"
2319
  msgstr ""
2320
 
2321
+ #: admin/wp-security-firewall-menu.php:564
2322
  msgid "You have successfully saved the 5G/6G Firewall Protection configuration"
2323
  msgstr ""
2324
 
2325
+ #: admin/wp-security-firewall-menu.php:579
2326
  msgid "This feature allows you to activate the %s (or legacy %s) firewall security protection rules designed and produced by %s."
2327
  msgstr ""
2328
 
2329
+ #: admin/wp-security-firewall-menu.php:580
2330
  msgid "The 6G Blacklist is updated and improved version of 5G Blacklist. If you have 5G Blacklist active, you might consider activating 6G Blacklist instead."
2331
  msgstr ""
2332
 
2333
+ #: admin/wp-security-firewall-menu.php:581
2334
  msgid "The 6G Blacklist is a simple, flexible blacklist that helps reduce the number of malicious URL requests that hit your website."
2335
  msgstr ""
2336
 
2337
+ #: admin/wp-security-firewall-menu.php:582
2338
  msgid "The added advantage of applying the 6G firewall to your site is that it has been tested and confirmed by the people at PerishablePress.com to be an optimal and least disruptive set of .htaccess security rules for general WP sites running on an Apache server or similar."
2339
  msgstr ""
2340
 
2341
+ #: admin/wp-security-firewall-menu.php:583
2342
  msgid "Therefore the 6G firewall rules should not have any impact on your site's general functionality but if you wish you can take a %s of your .htaccess file before proceeding."
2343
  msgstr ""
2344
 
2345
+ #: admin/wp-security-firewall-menu.php:589
2346
  msgid "6G Blacklist/Firewall Settings"
2347
  msgstr ""
2348
 
2349
+ #: admin/wp-security-firewall-menu.php:601
2350
  msgid "Enable 6G Firewall Protection"
2351
  msgstr ""
2352
 
2353
+ #: admin/wp-security-firewall-menu.php:604
2354
  msgid "Check this if you want to apply the 6G Blacklist firewall protection from perishablepress.com to your site."
2355
  msgstr ""
2356
 
2357
+ #: admin/wp-security-firewall-menu.php:608
2358
  msgid "This setting will implement the 6G security firewall protection mechanisms on your site which include the following things:"
2359
  msgstr ""
2360
 
2361
+ #: admin/wp-security-firewall-menu.php:609
2362
+ #: admin/wp-security-firewall-menu.php:627
2363
  msgid "1) Block forbidden characters commonly used in exploitative attacks."
2364
  msgstr ""
2365
 
2366
+ #: admin/wp-security-firewall-menu.php:610
2367
+ #: admin/wp-security-firewall-menu.php:628
2368
  msgid "2) Block malicious encoded URL characters such as the \".css(\" string."
2369
  msgstr ""
2370
 
2371
+ #: admin/wp-security-firewall-menu.php:611
2372
+ #: admin/wp-security-firewall-menu.php:629
2373
  msgid "3) Guard against the common patterns and specific exploits in the root portion of targeted URLs."
2374
  msgstr ""
2375
 
2376
+ #: admin/wp-security-firewall-menu.php:612
2377
+ #: admin/wp-security-firewall-menu.php:630
2378
  msgid "4) Stop attackers from manipulating query strings by disallowing illicit characters."
2379
  msgstr ""
2380
 
2381
+ #: admin/wp-security-firewall-menu.php:613
2382
+ #: admin/wp-security-firewall-menu.php:631
2383
  msgid "....and much more."
2384
  msgstr ""
2385
 
2386
+ #: admin/wp-security-firewall-menu.php:619
2387
  msgid "Enable legacy 5G Firewall Protection"
2388
  msgstr ""
2389
 
2390
+ #: admin/wp-security-firewall-menu.php:622
2391
  msgid "Check this if you want to apply the 5G Blacklist firewall protection from perishablepress.com to your site."
2392
  msgstr ""
2393
 
2394
+ #: admin/wp-security-firewall-menu.php:626
2395
  msgid "This setting will implement the 5G security firewall protection mechanisms on your site which include the following things:"
2396
  msgstr ""
2397
 
2398
+ #: admin/wp-security-firewall-menu.php:637
2399
  msgid "Save 5G/6G Firewall Settings"
2400
  msgstr ""
2401
 
2402
+ #: admin/wp-security-firewall-menu.php:668
2403
  msgid "The Internet bot settings were successfully saved"
2404
  msgstr ""
2405
 
2406
+ #: admin/wp-security-firewall-menu.php:672
2407
  msgid "Internet Bot Settings"
2408
  msgstr ""
2409
 
2410
+ #: admin/wp-security-firewall-menu.php:678
2411
  msgid "What is an Internet Bot"
2412
  msgstr ""
2413
 
2414
+ #: admin/wp-security-firewall-menu.php:679
2415
  msgid "%s?"
2416
  msgstr ""
2417
 
2418
+ #: admin/wp-security-firewall-menu.php:681
2419
  msgid "A bot is a piece of software which runs on the Internet and performs automatic tasks. For example when Google indexes your pages it uses automatic bots to achieve this task."
2420
  msgstr ""
2421
 
2422
+ #: admin/wp-security-firewall-menu.php:682
2423
  msgid "A lot of bots are legitimate and non-malicous but not all bots are good and often you will find some which try to impersonate legitimate bots such as \"Googlebot\" but in reality they have nohing to do with Google at all."
2424
  msgstr ""
2425
 
2426
+ #: admin/wp-security-firewall-menu.php:683
2427
  msgid "Although most of the bots out there are relatively harmless sometimes website owners want to have more control over which bots they allow into their site."
2428
  msgstr ""
2429
 
2430
+ #: admin/wp-security-firewall-menu.php:684
2431
  msgid "This feature allows you to block bots which are impersonating as a Googlebot but actually aren't. (In other words they are fake Google bots)"
2432
  msgstr ""
2433
 
2434
+ #: admin/wp-security-firewall-menu.php:685
2435
  msgid "Googlebots have a unique indentity which cannot easily be forged and this feature will indentify any fake Google bots and block them from reading your site's pages."
2436
  msgstr ""
2437
 
2438
+ #: admin/wp-security-firewall-menu.php:691
2439
  msgid "<strong>Attention</strong>: Sometimes non-malicious Internet organizations might have bots which impersonate as a \"Googlebot\"."
2440
  msgstr ""
2441
 
2442
+ #: admin/wp-security-firewall-menu.php:692
2443
  msgid "Just be aware that if you activate this feature the plugin will block all bots which use the \"Googlebot\" string in their User Agent information but are NOT officially from Google (irrespective whether they are malicious or not)."
2444
  msgstr ""
2445
 
2446
+ #: admin/wp-security-firewall-menu.php:693
2447
  msgid "All other bots from other organizations such as \"Yahoo\", \"Bing\" etc will not be affected by this feature."
2448
  msgstr ""
2449
 
2450
+ #: admin/wp-security-firewall-menu.php:699
2451
+ #: admin/wp-security-firewall-menu.php:709
2452
  #: classes/grade-system/wp-security-feature-item-manager.php:103
2453
  msgid "Block Fake Googlebots"
2454
  msgstr ""
2455
 
2456
+ #: admin/wp-security-firewall-menu.php:712
2457
  msgid "Check this if you want to block all fake Googlebots."
2458
  msgstr ""
2459
 
2460
+ #: admin/wp-security-firewall-menu.php:716
2461
  msgid "This feature will check if the User Agent information of a bot contains the string \"Googlebot\"."
2462
  msgstr ""
2463
 
2464
+ #: admin/wp-security-firewall-menu.php:717
2465
  msgid "It will then perform a few tests to verify if the bot is legitimately from Google and if so it will allow the bot to proceed."
2466
  msgstr ""
2467
 
2468
+ #: admin/wp-security-firewall-menu.php:718
2469
  msgid "If the bot fails the checks then the plugin will mark it as being a fake Googlebot and it will block it"
2470
  msgstr ""
2471
 
2472
+ #: admin/wp-security-firewall-menu.php:725
2473
  msgid "Save Internet Bot Settings"
2474
  msgstr ""
2475
 
2476
+ #: admin/wp-security-firewall-menu.php:762
2477
+ #: admin/wp-security-firewall-menu.php:784
2478
  #: classes/grade-system/wp-security-feature-item-manager.php:32
2479
  msgid "Prevent Image Hotlinking"
2480
  msgstr ""
2481
 
2482
+ #: admin/wp-security-firewall-menu.php:765
2483
  msgid "A Hotlink is where someone displays an image on their site which is actually located on your site by using a direct link to the source of the image on your server."
2484
  msgstr ""
2485
 
2486
+ #: admin/wp-security-firewall-menu.php:766
2487
  msgid "Due to the fact that the image being displayed on the other person's site is coming from your server, this can cause leaking of bandwidth and resources for you because your server has to present this image for the people viewing it on someone elses's site."
2488
  msgstr ""
2489
 
2490
+ #: admin/wp-security-firewall-menu.php:767
2491
  msgid "This feature will prevent people from directly hotlinking images from your site's pages by writing some directives in your .htaccess file."
2492
  msgstr ""
2493
 
2494
+ #: admin/wp-security-firewall-menu.php:772
2495
  msgid "Prevent Hotlinking"
2496
  msgstr ""
2497
 
2498
+ #: admin/wp-security-firewall-menu.php:787
2499
  msgid "Check this if you want to prevent hotlinking to images on your site."
2500
  msgstr ""
2501
 
2502
+ #: admin/wp-security-firewall-menu.php:807
2503
  msgid "Nonce check failed for delete all 404 event logs operation!"
2504
  msgstr ""
2505
 
2506
+ #: admin/wp-security-firewall-menu.php:818
2507
  msgid "404 Detection Feature - Delete all 404 event logs operation failed!"
2508
  msgstr ""
2509
 
2510
+ #: admin/wp-security-firewall-menu.php:822
2511
  msgid "All 404 event logs were deleted from the DB successfully!"
2512
  msgstr ""
2513
 
2514
+ #: admin/wp-security-firewall-menu.php:846
2515
  #: admin/wp-security-user-login-menu.php:114
2516
  msgid "You entered a non numeric value for the lockout time length field. It has been set to the default value."
2517
  msgstr ""
2518
 
2519
+ #: admin/wp-security-firewall-menu.php:852
2520
  msgid "You entered an incorrect format for the \"Redirect URL\" field. It has been set to the default value."
2521
  msgstr ""
2522
 
2523
+ #: admin/wp-security-firewall-menu.php:887
2524
  msgid "404 Detection Configuration"
2525
  msgstr ""
2526
 
2527
+ #: admin/wp-security-firewall-menu.php:890
2528
  msgid "A 404 or Not Found error occurs when somebody tries to access a non-existent page on your website."
2529
  msgstr ""
2530
 
2531
+ #: admin/wp-security-firewall-menu.php:891
2532
  msgid "Typically, most 404 errors happen quite innocently when people have mis-typed a URL or used an old link to page which doesn't exist anymore."
2533
  msgstr ""
2534
 
2535
+ #: admin/wp-security-firewall-menu.php:892
2536
  msgid "However, in some cases you may find many repeated 404 errors which occur in a relatively short space of time and from the same IP address which are all attempting to access a variety of non-existent page URLs."
2537
  msgstr ""
2538
 
2539
+ #: admin/wp-security-firewall-menu.php:893
2540
  msgid "Such behaviour can mean that a hacker might be trying to find a particular page or URL for sinister reasons."
2541
  msgstr ""
2542
 
2543
+ #: admin/wp-security-firewall-menu.php:894
2544
  msgid "This feature allows you to monitor all 404 events which occur on your site, and it also gives you the option of blocking IP addresses for a configured length of time."
2545
  msgstr ""
2546
 
2547
+ #: admin/wp-security-firewall-menu.php:895
2548
  msgid "If you want to temporarily block or blacklist an IP address, simply click the \"Temp Block\" or \"Blacklist IP\" link for the applicable IP entry in the \"404 Event Logs\" table below."
2549
  msgstr ""
2550
 
2551
+ #: admin/wp-security-firewall-menu.php:902
2552
  msgid "This addon allows you to automatically and permanently block IP addresses based on how many 404 errors they produce."
2553
  msgstr ""
2554
 
2555
+ #: admin/wp-security-firewall-menu.php:910
2556
  msgid "404 Detection Options"
2557
  msgstr ""
2558
 
2559
+ #: admin/wp-security-firewall-menu.php:922
2560
  msgid "Enable 404 IP Detection and Lockout"
2561
  msgstr ""
2562
 
2563
+ #: admin/wp-security-firewall-menu.php:925
2564
  msgid "Check this if you want to enable the lockout of selected IP addresses."
2565
  msgstr ""
2566
 
2567
+ #: admin/wp-security-firewall-menu.php:930
2568
  msgid "When you enable this checkbox, all 404 events on your site will be logged in the table below. You can monitor these events and select some IP addresses listed in the table below and block them for a specified amount of time. All IP addresses you select to be blocked from the \"404 Event Logs\" table section will be unable to access your site during the time specified."
2569
  msgstr ""
2570
 
2571
+ #: admin/wp-security-firewall-menu.php:938
2572
  msgid "Enable 404 Event Logging"
2573
  msgstr ""
2574
 
2575
+ #: admin/wp-security-firewall-menu.php:941
2576
  msgid "Check this if you want to enable the logging of 404 events"
2577
  msgstr ""
2578
 
2579
+ #: admin/wp-security-firewall-menu.php:946
2580
  msgid "Time Length of 404 Lockout (min)"
2581
  msgstr ""
2582
 
2583
+ #: admin/wp-security-firewall-menu.php:948
2584
  msgid "Set the length of time for which a blocked IP address will be prevented from visiting your site"
2585
  msgstr ""
2586
 
2587
+ #: admin/wp-security-firewall-menu.php:953
2588
  msgid "You can lock any IP address which is recorded in the \"404 Event Logs\" table section below."
2589
  msgstr ""
2590
 
2591
+ #: admin/wp-security-firewall-menu.php:955
2592
  msgid "To temporarily lock an IP address, hover over the ID column and click the \"Temp Block\" link for the applicable IP entry."
2593
  msgstr ""
2594
 
2595
+ #: admin/wp-security-firewall-menu.php:962
2596
  msgid "404 Lockout Redirect URL"
2597
  msgstr ""
2598
 
2599
+ #: admin/wp-security-firewall-menu.php:964
2600
  msgid "A blocked visitor will be automatically redirected to this URL."
2601
  msgstr ""
2602
 
2603
+ #: admin/wp-security-firewall-menu.php:973
2604
  msgid "404 Event Logs"
2605
  msgstr ""
2606
 
2607
+ #: admin/wp-security-firewall-menu.php:995
2608
+ #: admin/wp-security-firewall-menu.php:1004
2609
  #: admin/wp-security-user-login-menu.php:439
2610
  #: admin/wp-security-user-login-menu.php:448
2611
  #: admin/wp-security-user-login-menu.php:593
2613
  msgid "Export to CSV"
2614
  msgstr ""
2615
 
2616
+ #: admin/wp-security-firewall-menu.php:1001
2617
  #: admin/wp-security-user-login-menu.php:445
2618
  #: admin/wp-security-user-login-menu.php:599
2619
  msgid "Click this button if you wish to download this log in CSV format."
2620
  msgstr ""
2621
 
2622
+ #: admin/wp-security-firewall-menu.php:1008
2623
+ #: admin/wp-security-firewall-menu.php:1017
2624
  msgid "Delete All 404 Event Logs"
2625
  msgstr ""
2626
 
2627
+ #: admin/wp-security-firewall-menu.php:1014
2628
  msgid "Click this button if you wish to purge all 404 event logs from the DB."
2629
  msgstr ""
2630
 
2631
+ #: admin/wp-security-firewall-menu.php:1073
2632
  msgid "Custom .htaccess Rules Settings"
2633
  msgstr ""
2634
 
2635
+ #: admin/wp-security-firewall-menu.php:1080
2636
  msgid "This feature can be used to apply your own custom .htaccess rules and directives."
2637
  msgstr ""
2638
 
2639
+ #: admin/wp-security-firewall-menu.php:1081
2640
  msgid "It is useful for when you want to tweak our existing firewall rules or when you want to add your own."
2641
  msgstr ""
2642
 
2643
+ #: admin/wp-security-firewall-menu.php:1082
2644
  msgid "NOTE: This feature can only used if your site is hosted in an apache or similar web server."
2645
  msgstr ""
2646
 
2647
+ #: admin/wp-security-firewall-menu.php:1088
2648
  msgid "<strong>Warning</strong>: Only use this feature if you know what you are doing."
2649
  msgstr ""
2650
 
2651
+ #: admin/wp-security-firewall-menu.php:1089
2652
  msgid "Incorrect .htaccess rules or directives can break or prevent access to your site."
2653
  msgstr ""
2654
 
2655
+ #: admin/wp-security-firewall-menu.php:1090
2656
  msgid "It is your responsibility to ensure that you are entering the correct code!"
2657
  msgstr ""
2658
 
2659
+ #: admin/wp-security-firewall-menu.php:1091
2660
  msgid "If you break your site you will need to access your server via FTP or something similar and then edit your .htaccess file and delete the changes you made."
2661
  msgstr ""
2662
 
2663
+ #: admin/wp-security-firewall-menu.php:1097
2664
  msgid "Custom .htaccess Rules"
2665
  msgstr ""
2666
 
2667
+ #: admin/wp-security-firewall-menu.php:1101
2668
  msgid "Enable Custom .htaccess Rules"
2669
  msgstr ""
2670
 
2671
+ #: admin/wp-security-firewall-menu.php:1104
2672
  msgid "Check this if you want to enable custom rules entered in the text box below"
2673
  msgstr ""
2674
 
2675
+ #: admin/wp-security-firewall-menu.php:1108
2676
  msgid "Place custom rules at the top"
2677
  msgstr ""
2678
 
2679
+ #: admin/wp-security-firewall-menu.php:1111
2680
  msgid "Check this if you want to place your custom rules at the beginning of all the rules applied by this plugin"
2681
  msgstr ""
2682
 
2683
+ #: admin/wp-security-firewall-menu.php:1115
2684
  msgid "Enter Custom .htaccess Rules:"
2685
  msgstr ""
2686
 
2687
+ #: admin/wp-security-firewall-menu.php:1119
2688
  msgid "Enter your custom .htaccess rules/directives."
2689
  msgstr ""
2690
 
2691
+ #: admin/wp-security-firewall-menu.php:1124
2692
  msgid "Save Custom Rules"
2693
  msgstr ""
2694
 
2855
  msgid "Nonce check failed for force user logout operation!"
2856
  msgstr ""
2857
 
2858
+ #: admin/wp-security-list-logged-in-users.php:96
2859
  msgid "The selected user was logged out successfully!"
2860
  msgstr ""
2861
 
3148
  msgid "Page"
3149
  msgstr ""
3150
 
3151
+ #: admin/wp-security-settings-menu.php:155
3152
+ msgid "Follow us"
3153
+ msgstr ""
3154
+
3155
+ #: admin/wp-security-settings-menu.php:155
3156
+ msgid "on Twitter, Google+ or via Email to stay up to date about the new security features of this plugin."
3157
+ msgstr ""
3158
+
3159
  #: admin/wp-security-settings-menu.php:159
3160
  msgid "WP Security Plugin"
3161
  msgstr ""
3197
  msgstr ""
3198
 
3199
  #: admin/wp-security-settings-menu.php:192
3200
+ #: admin/wp-security-settings-menu.php:202
3201
  msgid "Disable All Firewall Rules"
3202
  msgstr ""
3203
 
3554
  msgstr ""
3555
 
3556
  #: admin/wp-security-spam-menu.php:128
3557
+ msgid "This feature will add a captcha field in the WordPress comments form."
3558
  msgstr ""
3559
 
3560
  #: admin/wp-security-spam-menu.php:129
3782
  msgstr ""
3783
 
3784
  #: admin/wp-security-spam-menu.php:530
3785
+ msgid "Adding a captcha field in this form is a simple way of greatly reducing SPAM submitted from bots."
3786
  msgstr ""
3787
 
3788
  #: admin/wp-security-spam-menu.php:540
3990
  msgid "Account Login Name"
3991
  msgstr ""
3992
 
3993
+ #: admin/wp-security-user-accounts-menu.php:338
3994
+ msgid "Edit User"
3995
+ msgstr ""
3996
+
3997
  #: admin/wp-security-user-login-menu.php:29
3998
  #: admin/wp-security-user-login-menu.php:418
3999
  msgid "Failed Login Records"
4203
  msgstr ""
4204
 
4205
  #: admin/wp-security-user-login-menu.php:567
4206
+ msgid "The information below can be handy if you need to do security investigations because it will show you the last 100 recent login events by username, IP address and time/date."
4207
  msgstr ""
4208
 
4209
  #: admin/wp-security-user-login-menu.php:628
4460
  msgstr ""
4461
 
4462
  #: classes/wp-security-captcha.php:42
4463
+ #: classes/wp-security-general-init-tasks.php:389
4464
  msgid "Please enter an answer in digits:"
4465
  msgstr ""
4466
 
4544
  msgid "twenty"
4545
  msgstr ""
4546
 
4547
+ #: classes/wp-security-file-scan.php:88
4548
  msgid "All In One WP Security - File change detected!"
4549
  msgstr ""
4550
 
4551
+ #: classes/wp-security-file-scan.php:90
4552
  msgid "A file change was detected on your system for site URL"
4553
  msgstr ""
4554
 
4555
+ #: classes/wp-security-file-scan.php:90
4556
  msgid ". Scan was generated on"
4557
  msgstr ""
4558
 
4559
+ #: classes/wp-security-file-scan.php:91
4560
  msgid "A summary of the scan results is shown below:"
4561
  msgstr ""
4562
 
4563
+ #: classes/wp-security-file-scan.php:94
4564
  msgid "Login to your site to view the scan details."
4565
  msgstr ""
4566
 
4567
+ #: classes/wp-security-file-scan.php:334
4568
  msgid "The following files were added to your host"
4569
  msgstr ""
4570
 
4571
+ #: classes/wp-security-file-scan.php:336
4572
+ #: classes/wp-security-file-scan.php:345
4573
+ #: classes/wp-security-file-scan.php:355
4574
  msgid "modified on: "
4575
  msgstr ""
4576
 
4577
+ #: classes/wp-security-file-scan.php:343
4578
  msgid "The following files were removed from your host"
4579
  msgstr ""
4580
 
4581
+ #: classes/wp-security-file-scan.php:353
4582
  msgid "The following files were changed on your host"
4583
  msgstr ""
4584
 
4585
+ #: classes/wp-security-general-init-tasks.php:412
4586
+ #: classes/wp-security-general-init-tasks.php:500
4587
+ #: classes/wp-security-general-init-tasks.php:535
4588
+ #: classes/wp-security-user-login.php:84
4589
+ #: classes/wp-security-user-registration.php:75
 
4590
  msgid "<strong>ERROR</strong>: Your answer was incorrect - please try again."
4591
  msgstr ""
4592
 
4593
+ #: classes/wp-security-general-init-tasks.php:447
4594
  msgid "Enter something special:"
4595
  msgstr ""
4596
 
4597
+ #: classes/wp-security-general-init-tasks.php:473
4598
  msgid "Error: You entered an incorrect CAPTCHA answer. Please go back and try again."
4599
  msgstr ""
4600
 
4601
+ #: classes/wp-security-general-init-tasks.php:519
4602
  msgid "Your CAPTCHA answer was incorrect - please try again."
4603
  msgstr ""
4604
 
4605
+ #: classes/wp-security-general-init-tasks.php:528
4606
  msgid "<strong>ERROR</strong>: Your IP address is currently locked please contact the administrator!"
4607
  msgstr ""
4608
 
4609
+ #: classes/wp-security-general-init-tasks.php:565
4610
  msgid "Would you like All In One WP Security & Firewall to re-insert the security rules in your .htaccess file which were cleared when you deactivated the plugin?"
4611
  msgstr ""
4612
 
4613
+ #: classes/wp-security-general-init-tasks.php:565
4614
+ msgid "Yes"
4615
+ msgstr ""
4616
+
4617
+ #: classes/wp-security-general-init-tasks.php:565
4618
+ msgid "No"
4619
+ msgstr ""
4620
+
4621
+ #: classes/wp-security-general-init-tasks.php:582
4622
  msgid "Your registration is pending approval."
4623
  msgstr ""
4624
 
4626
  msgid "Not available."
4627
  msgstr ""
4628
 
4629
+ #: classes/wp-security-user-login.php:46
4630
  msgid "<strong>ERROR</strong>: Access from your IP address has been blocked for security reasons. Please contact the administrator."
4631
  msgstr ""
4632
 
4633
+ #: classes/wp-security-user-login.php:55
4634
  msgid "Service Temporarily Unavailable"
4635
  msgstr ""
4636
 
4637
+ #: classes/wp-security-user-login.php:110
4638
  msgid "<strong>ACCOUNT PENDING</strong>: Your account is currently not active. An administrator needs to activate your account before you can login."
4639
  msgstr ""
4640
 
4641
+ #: classes/wp-security-user-login.php:178
4642
  msgid "<strong>ERROR</strong>: Invalid login credentials."
4643
  msgstr ""
4644
 
4645
+ #: classes/wp-security-user-login.php:301
4646
  msgid "Site Lockout Notification"
4647
  msgstr ""
4648
 
4649
+ #: classes/wp-security-user-login.php:302
4650
  msgid "A lockdown event has occurred due to too many failed login attempts or invalid username:"
4651
  msgstr ""
4652
 
4653
+ #: classes/wp-security-user-login.php:303
4654
  msgid "Username:"
4655
  msgstr ""
4656
 
4657
+ #: classes/wp-security-user-login.php:304
4658
  msgid "IP Address:"
4659
  msgstr ""
4660
 
4661
+ #: classes/wp-security-user-login.php:305
4662
  msgid "IP Range:"
4663
  msgstr ""
4664
 
4665
+ #: classes/wp-security-user-login.php:306
4666
  msgid "Log into your site's WordPress administration panel to see the duration of the lockout or to unlock the user."
4667
  msgstr ""
4668
 
4669
+ #: classes/wp-security-user-login.php:410
4670
  msgid "Unlock Request Notification"
4671
  msgstr ""
4672
 
4673
+ #: classes/wp-security-user-login.php:412
4674
  msgid "You have requested for the account with email address %s to be unlocked. Please click the link below to unlock your account:"
4675
  msgstr ""
4676
 
4677
+ #: classes/wp-security-user-login.php:413
4678
  msgid "Unlock link: %s"
4679
  msgstr ""
4680
 
4681
+ #: classes/wp-security-user-login.php:414
4682
  msgid "After clicking the above link you will be able to login to the WordPress administration panel."
4683
  msgstr ""
4684
 
4685
+ #: classes/wp-security-user-login.php:653
4686
  msgid "Your session has expired because it has been over %d minutes since your last login."
4687
  msgstr ""
4688
 
4689
+ #: classes/wp-security-user-login.php:654
4690
+ #: classes/wp-security-user-login.php:658
4691
  msgid "Please log back in to continue."
4692
  msgstr ""
4693
 
4694
+ #: classes/wp-security-user-login.php:657
4695
  msgid "You were logged out because you just changed the \"admin\" username."
4696
  msgstr ""
4697
 
4698
+ #: classes/wp-security-user-login.php:689
4699
  msgid "Request Unlock"
4700
  msgstr ""
4701
 
4702
+ #: classes/wp-security-user-registration.php:68
 
4703
  msgid "<strong>ERROR</strong>: You are not allowed to register because your IP address is currently locked!"
4704
  msgstr ""
4705
 
other-includes/wp-security-rename-login-feature-pre-5-7.php ADDED
@@ -0,0 +1,1573 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * WordPress User Page
4
+ *
5
+ * Handles authentication, registering, resetting passwords, forgot password,
6
+ * and other user handling.
7
+ *
8
+ * @package WordPress
9
+ */
10
+
11
+ /** Make sure that the WordPress bootstrap has run before continuing. */
12
+
13
+ // aiowps - for our special case we do not want to include wp-load.php
14
+ //require __DIR__ . '/wp-load.php';
15
+
16
+ // Redirect to HTTPS login if forced to use SSL.
17
+ if ( force_ssl_admin() && ! is_ssl() ) {
18
+ if ( 0 === strpos( $_SERVER['REQUEST_URI'], 'http' ) ) {
19
+ wp_safe_redirect( set_url_scheme( $_SERVER['REQUEST_URI'], 'https' ) );
20
+ exit;
21
+ } else {
22
+ wp_safe_redirect( 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
23
+ exit;
24
+ }
25
+ }
26
+
27
+ /**
28
+ * Output the login page header.
29
+ *
30
+ * @since 2.1.0
31
+ *
32
+ * @global string $error Login error message set by deprecated pluggable wp_login() function
33
+ * or plugins replacing it.
34
+ * @global bool|string $interim_login Whether interim login modal is being displayed. String 'success'
35
+ * upon successful login.
36
+ * @global string $action The action that brought the visitor to the login page.
37
+ *
38
+ * @param string $title Optional. WordPress login Page title to display in the `<title>` element.
39
+ * Default 'Log In'.
40
+ * @param string $message Optional. Message to display in header. Default empty.
41
+ * @param WP_Error $wp_error Optional. The error to pass. Default is a WP_Error instance.
42
+ */
43
+ function login_header( $title = 'Log In', $message = '', $wp_error = null ) {
44
+ global $error, $interim_login, $action;
45
+
46
+ // Don't index any of these forms.
47
+ add_action( 'login_head', 'wp_sensitive_page_meta' );
48
+
49
+ add_action( 'login_head', 'wp_login_viewport_meta' );
50
+
51
+ if ( ! is_wp_error( $wp_error ) ) {
52
+ $wp_error = new WP_Error();
53
+ }
54
+
55
+ // Shake it!
56
+ $shake_error_codes = array( 'empty_password', 'empty_email', 'invalid_email', 'invalidcombo', 'empty_username', 'invalid_username', 'incorrect_password', 'retrieve_password_email_failure' );
57
+ /**
58
+ * Filters the error codes array for shaking the login form.
59
+ *
60
+ * @since 3.0.0
61
+ *
62
+ * @param array $shake_error_codes Error codes that shake the login form.
63
+ */
64
+ $shake_error_codes = apply_filters( 'shake_error_codes', $shake_error_codes );
65
+
66
+ if ( $shake_error_codes && $wp_error->has_errors() && in_array( $wp_error->get_error_code(), $shake_error_codes, true ) ) {
67
+ add_action( 'login_footer', 'wp_shake_js', 12 );
68
+ }
69
+
70
+ $login_title = get_bloginfo( 'name', 'display' );
71
+
72
+ /* translators: Login screen title. 1: Login screen name, 2: Network or site name. */
73
+ $login_title = sprintf( __( '%1$s &lsaquo; %2$s &#8212; WordPress' ), $title, $login_title );
74
+
75
+ if ( wp_is_recovery_mode() ) {
76
+ /* translators: %s: Login screen title. */
77
+ $login_title = sprintf( __( 'Recovery Mode &#8212; %s' ), $login_title );
78
+ }
79
+
80
+ /**
81
+ * Filters the title tag content for login page.
82
+ *
83
+ * @since 4.9.0
84
+ *
85
+ * @param string $login_title The page title, with extra context added.
86
+ * @param string $title The original page title.
87
+ */
88
+ $login_title = apply_filters( 'login_title', $login_title, $title );
89
+
90
+ ?><!DOCTYPE html>
91
+ <html <?php language_attributes(); ?>>
92
+ <head>
93
+ <meta http-equiv="Content-Type" content="<?php bloginfo( 'html_type' ); ?>; charset=<?php bloginfo( 'charset' ); ?>" />
94
+ <title><?php echo $login_title; ?></title>
95
+ <?php
96
+
97
+ wp_enqueue_style( 'login' );
98
+
99
+ /*
100
+ * Remove all stored post data on logging out.
101
+ * This could be added by add_action('login_head'...) like wp_shake_js(),
102
+ * but maybe better if it's not removable by plugins.
103
+ */
104
+ if ( 'loggedout' === $wp_error->get_error_code() ) {
105
+ ?>
106
+ <script>if("sessionStorage" in window){try{for(var key in sessionStorage){if(key.indexOf("wp-autosave-")!=-1){sessionStorage.removeItem(key)}}}catch(e){}};</script>
107
+ <?php
108
+ }
109
+
110
+ /**
111
+ * Enqueue scripts and styles for the login page.
112
+ *
113
+ * @since 3.1.0
114
+ */
115
+ do_action( 'login_enqueue_scripts' );
116
+
117
+ /**
118
+ * Fires in the login page header after scripts are enqueued.
119
+ *
120
+ * @since 2.1.0
121
+ */
122
+ do_action( 'login_head' );
123
+
124
+ $login_header_url = __( 'https://wordpress.org/' );
125
+
126
+ /**
127
+ * Filters link URL of the header logo above login form.
128
+ *
129
+ * @since 2.1.0
130
+ *
131
+ * @param string $login_header_url Login header logo URL.
132
+ */
133
+ $login_header_url = apply_filters( 'login_headerurl', $login_header_url );
134
+
135
+ $login_header_title = '';
136
+
137
+ /**
138
+ * Filters the title attribute of the header logo above login form.
139
+ *
140
+ * @since 2.1.0
141
+ * @deprecated 5.2.0 Use {@see 'login_headertext'} instead.
142
+ *
143
+ * @param string $login_header_title Login header logo title attribute.
144
+ */
145
+ $login_header_title = apply_filters_deprecated(
146
+ 'login_headertitle',
147
+ array( $login_header_title ),
148
+ '5.2.0',
149
+ 'login_headertext',
150
+ __( 'Usage of the title attribute on the login logo is not recommended for accessibility reasons. Use the link text instead.' )
151
+ );
152
+
153
+ $login_header_text = empty( $login_header_title ) ? __( 'Powered by WordPress' ) : $login_header_title;
154
+
155
+ /**
156
+ * Filters the link text of the header logo above the login form.
157
+ *
158
+ * @since 5.2.0
159
+ *
160
+ * @param string $login_header_text The login header logo link text.
161
+ */
162
+ $login_header_text = apply_filters( 'login_headertext', $login_header_text );
163
+
164
+ $classes = array( 'login-action-' . $action, 'wp-core-ui' );
165
+
166
+ if ( is_rtl() ) {
167
+ $classes[] = 'rtl';
168
+ }
169
+
170
+ if ( $interim_login ) {
171
+ $classes[] = 'interim-login';
172
+
173
+ ?>
174
+ <style type="text/css">html{background-color: transparent;}</style>
175
+ <?php
176
+
177
+ if ( 'success' === $interim_login ) {
178
+ $classes[] = 'interim-login-success';
179
+ }
180
+ }
181
+
182
+ $classes[] = ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_locale() ) ) );
183
+
184
+ /**
185
+ * Filters the login page body classes.
186
+ *
187
+ * @since 3.5.0
188
+ *
189
+ * @param array $classes An array of body classes.
190
+ * @param string $action The action that brought the visitor to the login page.
191
+ */
192
+ $classes = apply_filters( 'login_body_class', $classes, $action );
193
+
194
+ ?>
195
+ </head>
196
+ <body class="login no-js <?php echo esc_attr( implode( ' ', $classes ) ); ?>">
197
+ <script type="text/javascript">
198
+ document.body.className = document.body.className.replace('no-js','js');
199
+ </script>
200
+ <?php
201
+ /**
202
+ * Fires in the login page header after the body tag is opened.
203
+ *
204
+ * @since 4.6.0
205
+ */
206
+ do_action( 'login_header' );
207
+
208
+ ?>
209
+ <div id="login">
210
+ <h1><a href="<?php echo esc_url( $login_header_url ); ?>"><?php echo $login_header_text; ?></a></h1>
211
+ <?php
212
+ /**
213
+ * Filters the message to display above the login form.
214
+ *
215
+ * @since 2.1.0
216
+ *
217
+ * @param string $message Login message text.
218
+ */
219
+ $message = apply_filters( 'login_message', $message );
220
+
221
+ if ( ! empty( $message ) ) {
222
+ echo $message . "\n";
223
+ }
224
+
225
+ // In case a plugin uses $error rather than the $wp_errors object.
226
+ if ( ! empty( $error ) ) {
227
+ $wp_error->add( 'error', $error );
228
+ unset( $error );
229
+ }
230
+
231
+ if ( $wp_error->has_errors() ) {
232
+ $errors = '';
233
+ $messages = '';
234
+
235
+ foreach ( $wp_error->get_error_codes() as $code ) {
236
+ $severity = $wp_error->get_error_data( $code );
237
+ foreach ( $wp_error->get_error_messages( $code ) as $error_message ) {
238
+ if ( 'message' === $severity ) {
239
+ $messages .= ' ' . $error_message . "<br />\n";
240
+ } else {
241
+ $errors .= ' ' . $error_message . "<br />\n";
242
+ }
243
+ }
244
+ }
245
+
246
+ if ( ! empty( $errors ) ) {
247
+ /**
248
+ * Filters the error messages displayed above the login form.
249
+ *
250
+ * @since 2.1.0
251
+ *
252
+ * @param string $errors Login error message.
253
+ */
254
+ echo '<div id="login_error">' . apply_filters( 'login_errors', $errors ) . "</div>\n";
255
+ }
256
+
257
+ if ( ! empty( $messages ) ) {
258
+ /**
259
+ * Filters instructional messages displayed above the login form.
260
+ *
261
+ * @since 2.5.0
262
+ *
263
+ * @param string $messages Login messages.
264
+ */
265
+ echo '<p class="message">' . apply_filters( 'login_messages', $messages ) . "</p>\n";
266
+ }
267
+ }
268
+ } // End of login_header().
269
+
270
+ /**
271
+ * Outputs the footer for the login page.
272
+ *
273
+ * @since 3.1.0
274
+ *
275
+ * @global bool|string $interim_login Whether interim login modal is being displayed. String 'success'
276
+ * upon successful login.
277
+ *
278
+ * @param string $input_id Which input to auto-focus.
279
+ */
280
+ function login_footer( $input_id = '' ) {
281
+ global $interim_login;
282
+
283
+ // Don't allow interim logins to navigate away from the page.
284
+ if ( ! $interim_login ) {
285
+ ?>
286
+ <p id="backtoblog"><a href="<?php echo esc_url( home_url( '/' ) ); ?>">
287
+ <?php
288
+
289
+ /* translators: %s: Site title. */
290
+ printf( _x( '&larr; Go to %s', 'site' ), get_bloginfo( 'title', 'display' ) );
291
+
292
+ ?>
293
+ </a></p>
294
+ <?php
295
+
296
+ the_privacy_policy_link( '<div class="privacy-policy-page-link">', '</div>' );
297
+ }
298
+
299
+ ?>
300
+ </div><?php // End of <div id="login">. ?>
301
+
302
+ <?php
303
+
304
+ if ( ! empty( $input_id ) ) {
305
+ ?>
306
+ <script type="text/javascript">
307
+ try{document.getElementById('<?php echo $input_id; ?>').focus();}catch(e){}
308
+ if(typeof wpOnload=='function')wpOnload();
309
+ </script>
310
+ <?php
311
+ }
312
+
313
+ /**
314
+ * Fires in the login page footer.
315
+ *
316
+ * @since 3.1.0
317
+ */
318
+ do_action( 'login_footer' );
319
+
320
+ ?>
321
+ <div class="clear"></div>
322
+ </body>
323
+ </html>
324
+ <?php
325
+ }
326
+
327
+ /**
328
+ * Outputs the Javascript to handle the form shaking on the login page.
329
+ *
330
+ * @since 3.0.0
331
+ */
332
+ function wp_shake_js() {
333
+ ?>
334
+ <script type="text/javascript">
335
+ document.querySelector('form').classList.add('shake');
336
+ </script>
337
+ <?php
338
+ }
339
+
340
+ /**
341
+ * Outputs the viewport meta tag for the login page.
342
+ *
343
+ * @since 3.7.0
344
+ */
345
+ function wp_login_viewport_meta() {
346
+ ?>
347
+ <meta name="viewport" content="width=device-width" />
348
+ <?php
349
+ }
350
+
351
+ /**
352
+ * Handles sending a password retrieval email to a user.
353
+ *
354
+ * @since 2.5.0
355
+ *
356
+ * @return true|WP_Error True when finished, WP_Error object on error.
357
+ */
358
+ function retrieve_password() {
359
+ $errors = new WP_Error();
360
+ $user_data = false;
361
+
362
+ if ( empty( $_POST['user_login'] ) || ! is_string( $_POST['user_login'] ) ) {
363
+ $errors->add( 'empty_username', __( '<strong>Error</strong>: Please enter a username or email address.' ) );
364
+ } elseif ( strpos( $_POST['user_login'], '@' ) ) {
365
+ $user_data = get_user_by( 'email', trim( wp_unslash( $_POST['user_login'] ) ) );
366
+ if ( empty( $user_data ) ) {
367
+ $errors->add( 'invalid_email', __( '<strong>Error</strong>: There is no account with that username or email address.' ) );
368
+ }
369
+ } else {
370
+ $login = trim( wp_unslash( $_POST['user_login'] ) );
371
+ $user_data = get_user_by( 'login', $login );
372
+ }
373
+
374
+ /**
375
+ * Fires before errors are returned from a password reset request.
376
+ *
377
+ * @since 2.1.0
378
+ * @since 4.4.0 Added the `$errors` parameter.
379
+ * @since 5.4.0 Added the `$user_data` parameter.
380
+ *
381
+ * @param WP_Error $errors A WP_Error object containing any errors generated
382
+ * by using invalid credentials.
383
+ * @param WP_User|false $user_data WP_User object if found, false if the user does not exist.
384
+ */
385
+ do_action( 'lostpassword_post', $errors, $user_data );
386
+
387
+ /**
388
+ * Filters the errors encountered on a password reset request.
389
+ *
390
+ * The filtered WP_Error object may, for example, contain errors for an invalid
391
+ * username or email address. A WP_Error object should always be returned,
392
+ * but may or may not contain errors.
393
+ *
394
+ * If any errors are present in $errors, this will abort the password reset request.
395
+ *
396
+ * @since 5.5.0
397
+ *
398
+ * @param WP_Error $errors A WP_Error object containing any errors generated
399
+ * by using invalid credentials.
400
+ * @param WP_User|false $user_data WP_User object if found, false if the user does not exist.
401
+ */
402
+ $errors = apply_filters( 'lostpassword_errors', $errors, $user_data );
403
+
404
+ if ( $errors->has_errors() ) {
405
+ return $errors;
406
+ }
407
+
408
+ if ( ! $user_data ) {
409
+ $errors->add( 'invalidcombo', __( '<strong>Error</strong>: There is no account with that username or email address.' ) );
410
+ return $errors;
411
+ }
412
+
413
+ // Redefining user_login ensures we return the right case in the email.
414
+ $user_login = $user_data->user_login;
415
+ $user_email = $user_data->user_email;
416
+ $key = get_password_reset_key( $user_data );
417
+
418
+ if ( is_wp_error( $key ) ) {
419
+ return $key;
420
+ }
421
+
422
+ if ( is_multisite() ) {
423
+ $site_name = get_network()->site_name;
424
+ } else {
425
+ /*
426
+ * The blogname option is escaped with esc_html on the way into the database
427
+ * in sanitize_option. We want to reverse this for the plain text arena of emails.
428
+ */
429
+ $site_name = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );
430
+ }
431
+
432
+ $message = __( 'Someone has requested a password reset for the following account:' ) . "\r\n\r\n";
433
+ /* translators: %s: Site name. */
434
+ $message .= sprintf( __( 'Site Name: %s' ), $site_name ) . "\r\n\r\n";
435
+ /* translators: %s: User login. */
436
+ $message .= sprintf( __( 'Username: %s' ), $user_login ) . "\r\n\r\n";
437
+ $message .= __( 'If this was a mistake, ignore this email and nothing will happen.' ) . "\r\n\r\n";
438
+ $message .= __( 'To reset your password, visit the following address:' ) . "\r\n\r\n";
439
+ $message .= network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user_login ), 'login' ) . "\r\n\r\n";
440
+
441
+ $requester_ip = $_SERVER['REMOTE_ADDR'];
442
+ if ( $requester_ip ) {
443
+ $message .= sprintf(
444
+ /* translators: %s: IP address of password reset requester. */
445
+ __( 'This password reset request originated from the IP address %s.' ),
446
+ $requester_ip
447
+ ) . "\r\n";
448
+ }
449
+
450
+ /* translators: Password reset notification email subject. %s: Site title. */
451
+ $title = sprintf( __( '[%s] Password Reset' ), $site_name );
452
+
453
+ /**
454
+ * Filters the subject of the password reset email.
455
+ *
456
+ * @since 2.8.0
457
+ * @since 4.4.0 Added the `$user_login` and `$user_data` parameters.
458
+ *
459
+ * @param string $title Email subject.
460
+ * @param string $user_login The username for the user.
461
+ * @param WP_User $user_data WP_User object.
462
+ */
463
+ $title = apply_filters( 'retrieve_password_title', $title, $user_login, $user_data );
464
+
465
+ /**
466
+ * Filters the message body of the password reset mail.
467
+ *
468
+ * If the filtered message is empty, the password reset email will not be sent.
469
+ *
470
+ * @since 2.8.0
471
+ * @since 4.1.0 Added `$user_login` and `$user_data` parameters.
472
+ *
473
+ * @param string $message Email message.
474
+ * @param string $key The activation key.
475
+ * @param string $user_login The username for the user.
476
+ * @param WP_User $user_data WP_User object.
477
+ */
478
+ $message = apply_filters( 'retrieve_password_message', $message, $key, $user_login, $user_data );
479
+
480
+ if ( $message && ! wp_mail( $user_email, wp_specialchars_decode( $title ), $message ) ) {
481
+ $errors->add(
482
+ 'retrieve_password_email_failure',
483
+ sprintf(
484
+ /* translators: %s: Documentation URL. */
485
+ __( '<strong>Error</strong>: The email could not be sent. Your site may not be correctly configured to send emails. <a href="%s">Get support for resetting your password</a>.' ),
486
+ esc_url( __( 'https://wordpress.org/support/article/resetting-your-password/' ) )
487
+ )
488
+ );
489
+ return $errors;
490
+ }
491
+
492
+ return true;
493
+ }
494
+
495
+ //
496
+ // Main.
497
+ //
498
+
499
+ $action = isset( $_REQUEST['action'] ) ? $_REQUEST['action'] : 'login';
500
+ $errors = new WP_Error();
501
+
502
+ if ( isset( $_GET['key'] ) ) {
503
+ $action = 'resetpass';
504
+ }
505
+
506
+ if ( isset( $_GET['checkemail'] ) ) {
507
+ $action = 'checkemail';
508
+ }
509
+
510
+ $default_actions = array(
511
+ 'confirm_admin_email',
512
+ 'postpass',
513
+ 'logout',
514
+ 'lostpassword',
515
+ 'retrievepassword',
516
+ 'resetpass',
517
+ 'rp',
518
+ 'register',
519
+ 'checkemail',
520
+ 'confirmaction',
521
+ 'login',
522
+ WP_Recovery_Mode_Link_Service::LOGIN_ACTION_ENTERED,
523
+ );
524
+
525
+ // Validate action so as to default to the login screen.
526
+ if ( ! in_array( $action, $default_actions, true ) && false === has_filter( 'login_form_' . $action ) ) {
527
+ $action = 'login';
528
+ }
529
+
530
+ nocache_headers();
531
+
532
+ header( 'Content-Type: ' . get_bloginfo( 'html_type' ) . '; charset=' . get_bloginfo( 'charset' ) );
533
+
534
+ if ( defined( 'RELOCATE' ) && RELOCATE ) { // Move flag is set.
535
+ if ( isset( $_SERVER['PATH_INFO'] ) && ( $_SERVER['PATH_INFO'] !== $_SERVER['PHP_SELF'] ) ) {
536
+ $_SERVER['PHP_SELF'] = str_replace( $_SERVER['PATH_INFO'], '', $_SERVER['PHP_SELF'] );
537
+ }
538
+
539
+ $url = dirname( set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] ) );
540
+
541
+ if ( get_option( 'siteurl' ) !== $url ) {
542
+ update_option( 'siteurl', $url );
543
+ }
544
+ }
545
+
546
+ // Set a cookie now to see if they are supported by the browser.
547
+ $secure = ( 'https' === parse_url( wp_login_url(), PHP_URL_SCHEME ) );
548
+ setcookie( TEST_COOKIE, 'WP Cookie check', 0, COOKIEPATH, COOKIE_DOMAIN, $secure );
549
+
550
+ if ( SITECOOKIEPATH !== COOKIEPATH ) {
551
+ setcookie( TEST_COOKIE, 'WP Cookie check', 0, SITECOOKIEPATH, COOKIE_DOMAIN, $secure );
552
+ }
553
+
554
+ /**
555
+ * Fires when the login form is initialized.
556
+ *
557
+ * @since 3.2.0
558
+ */
559
+ do_action( 'login_init' );
560
+
561
+ /**
562
+ * Fires before a specified login form action.
563
+ *
564
+ * The dynamic portion of the hook name, `$action`, refers to the action
565
+ * that brought the visitor to the login form. Actions include 'postpass',
566
+ * 'logout', 'lostpassword', etc.
567
+ *
568
+ * @since 2.8.0
569
+ */
570
+ do_action( "login_form_{$action}" );
571
+
572
+ $http_post = ( 'POST' === $_SERVER['REQUEST_METHOD'] );
573
+ $interim_login = isset( $_REQUEST['interim-login'] );
574
+
575
+ /**
576
+ * Filters the separator used between login form navigation links.
577
+ *
578
+ * @since 4.9.0
579
+ *
580
+ * @param string $login_link_separator The separator used between login form navigation links.
581
+ */
582
+ $login_link_separator = apply_filters( 'login_link_separator', ' | ' );
583
+
584
+ switch ( $action ) {
585
+
586
+ case 'confirm_admin_email':
587
+ /*
588
+ * Note that `is_user_logged_in()` will return false immediately after logging in
589
+ * as the current user is not set, see wp-includes/pluggable.php.
590
+ * However this action runs on a redirect after logging in.
591
+ */
592
+ if ( ! is_user_logged_in() ) {
593
+ wp_safe_redirect( wp_login_url() );
594
+ exit;
595
+ }
596
+
597
+ if ( ! empty( $_REQUEST['redirect_to'] ) ) {
598
+ $redirect_to = $_REQUEST['redirect_to'];
599
+ } else {
600
+ $redirect_to = admin_url();
601
+ }
602
+
603
+ if ( current_user_can( 'manage_options' ) ) {
604
+ $admin_email = get_option( 'admin_email' );
605
+ } else {
606
+ wp_safe_redirect( $redirect_to );
607
+ exit;
608
+ }
609
+
610
+ /**
611
+ * Filters the interval for dismissing the admin email confirmation screen.
612
+ *
613
+ * If `0` (zero) is returned, the "Remind me later" link will not be displayed.
614
+ *
615
+ * @since 5.3.1
616
+ *
617
+ * @param int $interval Interval time (in seconds). Default is 3 days.
618
+ */
619
+ $remind_interval = (int) apply_filters( 'admin_email_remind_interval', 3 * DAY_IN_SECONDS );
620
+
621
+ if ( ! empty( $_GET['remind_me_later'] ) ) {
622
+ if ( ! wp_verify_nonce( $_GET['remind_me_later'], 'remind_me_later_nonce' ) ) {
623
+ wp_safe_redirect( wp_login_url() );
624
+ exit;
625
+ }
626
+
627
+ if ( $remind_interval > 0 ) {
628
+ update_option( 'admin_email_lifespan', time() + $remind_interval );
629
+ }
630
+
631
+ $redirect_to = add_query_arg( 'admin_email_remind_later', 1, $redirect_to );
632
+ wp_safe_redirect( $redirect_to );
633
+ exit;
634
+ }
635
+
636
+ if ( ! empty( $_POST['correct-admin-email'] ) ) {
637
+ if ( ! check_admin_referer( 'confirm_admin_email', 'confirm_admin_email_nonce' ) ) {
638
+ wp_safe_redirect( wp_login_url() );
639
+ exit;
640
+ }
641
+
642
+ /**
643
+ * Filters the interval for redirecting the user to the admin email confirmation screen.
644
+ *
645
+ * If `0` (zero) is returned, the user will not be redirected.
646
+ *
647
+ * @since 5.3.0
648
+ *
649
+ * @param int $interval Interval time (in seconds). Default is 6 months.
650
+ */
651
+ $admin_email_check_interval = (int) apply_filters( 'admin_email_check_interval', 6 * MONTH_IN_SECONDS );
652
+
653
+ if ( $admin_email_check_interval > 0 ) {
654
+ update_option( 'admin_email_lifespan', time() + $admin_email_check_interval );
655
+ }
656
+
657
+ wp_safe_redirect( $redirect_to );
658
+ exit;
659
+ }
660
+
661
+ login_header( __( 'Confirm your administration email' ), '', $errors );
662
+
663
+ /**
664
+ * Fires before the admin email confirm form.
665
+ *
666
+ * @since 5.3.0
667
+ *
668
+ * @param WP_Error $errors A `WP_Error` object containing any errors generated by using invalid
669
+ * credentials. Note that the error object may not contain any errors.
670
+ */
671
+ do_action( 'admin_email_confirm', $errors );
672
+
673
+ ?>
674
+
675
+ <form class="admin-email-confirm-form" name="admin-email-confirm-form" action="<?php echo esc_url( site_url( 'wp-login.php?action=confirm_admin_email', 'login_post' ) ); ?>" method="post">
676
+ <?php
677
+ /**
678
+ * Fires inside the admin-email-confirm-form form tags, before the hidden fields.
679
+ *
680
+ * @since 5.3.0
681
+ */
682
+ do_action( 'admin_email_confirm_form' );
683
+
684
+ wp_nonce_field( 'confirm_admin_email', 'confirm_admin_email_nonce' );
685
+
686
+ ?>
687
+ <input type="hidden" name="redirect_to" value="<?php echo esc_attr( $redirect_to ); ?>" />
688
+
689
+ <h1 class="admin-email__heading">
690
+ <?php _e( 'Administration email verification' ); ?>
691
+ </h1>
692
+ <p class="admin-email__details">
693
+ <?php _e( 'Please verify that the <strong>administration email</strong> for this website is still correct.' ); ?>
694
+ <?php
695
+
696
+ /* translators: URL to the WordPress help section about admin email. */
697
+ $admin_email_help_url = __( 'https://wordpress.org/support/article/settings-general-screen/#email-address' );
698
+
699
+ /* translators: Accessibility text. */
700
+ $accessibility_text = sprintf( '<span class="screen-reader-text"> %s</span>', __( '(opens in a new tab)' ) );
701
+
702
+ printf(
703
+ '<a href="%s" rel="noopener" target="_blank">%s%s</a>',
704
+ esc_url( $admin_email_help_url ),
705
+ __( 'Why is this important?' ),
706
+ $accessibility_text
707
+ );
708
+
709
+ ?>
710
+ </p>
711
+ <p class="admin-email__details">
712
+ <?php
713
+
714
+ printf(
715
+ /* translators: %s: Admin email address. */
716
+ __( 'Current administration email: %s' ),
717
+ '<strong>' . esc_html( $admin_email ) . '</strong>'
718
+ );
719
+
720
+ ?>
721
+ </p>
722
+ <p class="admin-email__details">
723
+ <?php _e( 'This email may be different from your personal email address.' ); ?>
724
+ </p>
725
+
726
+ <div class="admin-email__actions">
727
+ <div class="admin-email__actions-primary">
728
+ <?php
729
+
730
+ $change_link = admin_url( 'options-general.php' );
731
+ $change_link = add_query_arg( 'highlight', 'confirm_admin_email', $change_link );
732
+
733
+ ?>
734
+ <a class="button button-large" href="<?php echo esc_url( $change_link ); ?>"><?php _e( 'Update' ); ?></a>
735
+ <input type="submit" name="correct-admin-email" id="correct-admin-email" class="button button-primary button-large" value="<?php esc_attr_e( 'The email is correct' ); ?>" />
736
+ </div>
737
+ <?php if ( $remind_interval > 0 ) : ?>
738
+ <div class="admin-email__actions-secondary">
739
+ <?php
740
+
741
+ $remind_me_link = wp_login_url( $redirect_to );
742
+ $remind_me_link = add_query_arg(
743
+ array(
744
+ 'action' => 'confirm_admin_email',
745
+ 'remind_me_later' => wp_create_nonce( 'remind_me_later_nonce' ),
746
+ ),
747
+ $remind_me_link
748
+ );
749
+
750
+ ?>
751
+ <a href="<?php echo esc_url( $remind_me_link ); ?>"><?php _e( 'Remind me later' ); ?></a>
752
+ </div>
753
+ <?php endif; ?>
754
+ </div>
755
+ </form>
756
+
757
+ <?php
758
+
759
+ login_footer();
760
+ break;
761
+
762
+ case 'postpass':
763
+ if ( ! array_key_exists( 'post_password', $_POST ) ) {
764
+ wp_safe_redirect( wp_get_referer() );
765
+ exit;
766
+ }
767
+
768
+ require_once ABSPATH . WPINC . '/class-phpass.php';
769
+ $hasher = new PasswordHash( 8, true );
770
+
771
+ /**
772
+ * Filters the life span of the post password cookie.
773
+ *
774
+ * By default, the cookie expires 10 days from creation. To turn this
775
+ * into a session cookie, return 0.
776
+ *
777
+ * @since 3.7.0
778
+ *
779
+ * @param int $expires The expiry time, as passed to setcookie().
780
+ */
781
+ $expire = apply_filters( 'post_password_expires', time() + 10 * DAY_IN_SECONDS );
782
+ $referer = wp_get_referer();
783
+
784
+ if ( $referer ) {
785
+ $secure = ( 'https' === parse_url( $referer, PHP_URL_SCHEME ) );
786
+ } else {
787
+ $secure = false;
788
+ }
789
+
790
+ setcookie( 'wp-postpass_' . COOKIEHASH, $hasher->HashPassword( wp_unslash( $_POST['post_password'] ) ), $expire, COOKIEPATH, COOKIE_DOMAIN, $secure );
791
+
792
+ wp_safe_redirect( wp_get_referer() );
793
+ exit;
794
+
795
+ case 'logout':
796
+ check_admin_referer( 'log-out' );
797
+
798
+ $user = wp_get_current_user();
799
+
800
+ wp_logout();
801
+
802
+ if ( ! empty( $_REQUEST['redirect_to'] ) ) {
803
+ $redirect_to = $_REQUEST['redirect_to'];
804
+ $requested_redirect_to = $redirect_to;
805
+ } else {
806
+ $redirect_to = add_query_arg(
807
+ array(
808
+ 'loggedout' => 'true',
809
+ 'wp_lang' => get_user_locale( $user ),
810
+ ),
811
+ wp_login_url()
812
+ );
813
+
814
+ $requested_redirect_to = '';
815
+ }
816
+
817
+ /**
818
+ * Filters the log out redirect URL.
819
+ *
820
+ * @since 4.2.0
821
+ *
822
+ * @param string $redirect_to The redirect destination URL.
823
+ * @param string $requested_redirect_to The requested redirect destination URL passed as a parameter.
824
+ * @param WP_User $user The WP_User object for the user that's logging out.
825
+ */
826
+ $redirect_to = apply_filters( 'logout_redirect', $redirect_to, $requested_redirect_to, $user );
827
+
828
+ wp_safe_redirect( $redirect_to );
829
+ exit;
830
+
831
+ case 'lostpassword':
832
+ case 'retrievepassword':
833
+ if ( $http_post ) {
834
+ $errors = retrieve_password();
835
+
836
+ if ( ! is_wp_error( $errors ) ) {
837
+ $redirect_to = ! empty( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : 'wp-login.php?checkemail=confirm';
838
+ wp_safe_redirect( $redirect_to );
839
+ exit;
840
+ }
841
+ }
842
+
843
+ if ( isset( $_GET['error'] ) ) {
844
+ if ( 'invalidkey' === $_GET['error'] ) {
845
+ $errors->add( 'invalidkey', __( 'Your password reset link appears to be invalid. Please request a new link below.' ) );
846
+ } elseif ( 'expiredkey' === $_GET['error'] ) {
847
+ $errors->add( 'expiredkey', __( 'Your password reset link has expired. Please request a new link below.' ) );
848
+ }
849
+ }
850
+
851
+ $lostpassword_redirect = ! empty( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : '';
852
+ /**
853
+ * Filters the URL redirected to after submitting the lostpassword/retrievepassword form.
854
+ *
855
+ * @since 3.0.0
856
+ *
857
+ * @param string $lostpassword_redirect The redirect destination URL.
858
+ */
859
+ $redirect_to = apply_filters( 'lostpassword_redirect', $lostpassword_redirect );
860
+
861
+ /**
862
+ * Fires before the lost password form.
863
+ *
864
+ * @since 1.5.1
865
+ * @since 5.1.0 Added the `$errors` parameter.
866
+ *
867
+ * @param WP_Error $errors A `WP_Error` object containing any errors generated by using invalid
868
+ * credentials. Note that the error object may not contain any errors.
869
+ */
870
+ do_action( 'lost_password', $errors );
871
+
872
+ login_header( __( 'Lost Password' ), '<p class="message">' . __( 'Please enter your username or email address. You will receive an email message with instructions on how to reset your password.' ) . '</p>', $errors );
873
+
874
+ $user_login = '';
875
+
876
+ if ( isset( $_POST['user_login'] ) && is_string( $_POST['user_login'] ) ) {
877
+ $user_login = wp_unslash( $_POST['user_login'] );
878
+ }
879
+
880
+ ?>
881
+
882
+ <form name="lostpasswordform" id="lostpasswordform" action="<?php echo esc_url( network_site_url( 'wp-login.php?action=lostpassword', 'login_post' ) ); ?>" method="post">
883
+ <p>
884
+ <label for="user_login"><?php _e( 'Username or Email Address' ); ?></label>
885
+ <input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr( $user_login ); ?>" size="20" autocapitalize="off" />
886
+ </p>
887
+ <?php
888
+
889
+ /**
890
+ * Fires inside the lostpassword form tags, before the hidden fields.
891
+ *
892
+ * @since 2.1.0
893
+ */
894
+ do_action( 'lostpassword_form' );
895
+
896
+ ?>
897
+ <input type="hidden" name="redirect_to" value="<?php echo esc_attr( $redirect_to ); ?>" />
898
+ <p class="submit">
899
+ <input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e( 'Get New Password' ); ?>" />
900
+ </p>
901
+ </form>
902
+
903
+ <p id="nav">
904
+ <a href="<?php echo esc_url( wp_login_url() ); ?>"><?php _e( 'Log in' ); ?></a>
905
+ <?php
906
+
907
+ if ( get_option( 'users_can_register' ) ) {
908
+ $registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) );
909
+
910
+ echo esc_html( $login_link_separator );
911
+
912
+ /** This filter is documented in wp-includes/general-template.php */
913
+ echo apply_filters( 'register', $registration_url );
914
+ }
915
+
916
+ ?>
917
+ </p>
918
+ <?php
919
+
920
+ login_footer( 'user_login' );
921
+ break;
922
+
923
+ case 'resetpass':
924
+ case 'rp':
925
+ list( $rp_path ) = explode( '?', wp_unslash( $_SERVER['REQUEST_URI'] ) );
926
+ $rp_cookie = 'wp-resetpass-' . COOKIEHASH;
927
+
928
+ if ( isset( $_GET['key'] ) ) {
929
+ $value = sprintf( '%s:%s', wp_unslash( $_GET['login'] ), wp_unslash( $_GET['key'] ) );
930
+ setcookie( $rp_cookie, $value, 0, $rp_path, COOKIE_DOMAIN, is_ssl(), true );
931
+
932
+ wp_safe_redirect( remove_query_arg( array( 'key', 'login' ) ) );
933
+ exit;
934
+ }
935
+
936
+ if ( isset( $_COOKIE[ $rp_cookie ] ) && 0 < strpos( $_COOKIE[ $rp_cookie ], ':' ) ) {
937
+ list( $rp_login, $rp_key ) = explode( ':', wp_unslash( $_COOKIE[ $rp_cookie ] ), 2 );
938
+
939
+ $user = check_password_reset_key( $rp_key, $rp_login );
940
+
941
+ if ( isset( $_POST['pass1'] ) && ! hash_equals( $rp_key, $_POST['rp_key'] ) ) {
942
+ $user = false;
943
+ }
944
+ } else {
945
+ $user = false;
946
+ }
947
+
948
+ if ( ! $user || is_wp_error( $user ) ) {
949
+ setcookie( $rp_cookie, ' ', time() - YEAR_IN_SECONDS, $rp_path, COOKIE_DOMAIN, is_ssl(), true );
950
+
951
+ if ( $user && $user->get_error_code() === 'expired_key' ) {
952
+ wp_redirect( site_url( 'wp-login.php?action=lostpassword&error=expiredkey' ) );
953
+ } else {
954
+ wp_redirect( site_url( 'wp-login.php?action=lostpassword&error=invalidkey' ) );
955
+ }
956
+
957
+ exit;
958
+ }
959
+
960
+ $errors = new WP_Error();
961
+
962
+ if ( isset( $_POST['pass1'] ) && $_POST['pass1'] !== $_POST['pass2'] ) {
963
+ $errors->add( 'password_reset_mismatch', __( 'The passwords do not match.' ) );
964
+ }
965
+
966
+ /**
967
+ * Fires before the password reset procedure is validated.
968
+ *
969
+ * @since 3.5.0
970
+ *
971
+ * @param WP_Error $errors WP Error object.
972
+ * @param WP_User|WP_Error $user WP_User object if the login and reset key match. WP_Error object otherwise.
973
+ */
974
+ do_action( 'validate_password_reset', $errors, $user );
975
+
976
+ if ( ( ! $errors->has_errors() ) && isset( $_POST['pass1'] ) && ! empty( $_POST['pass1'] ) ) {
977
+ reset_password( $user, $_POST['pass1'] );
978
+ setcookie( $rp_cookie, ' ', time() - YEAR_IN_SECONDS, $rp_path, COOKIE_DOMAIN, is_ssl(), true );
979
+ login_header( __( 'Password Reset' ), '<p class="message reset-pass">' . __( 'Your password has been reset.' ) . ' <a href="' . esc_url( wp_login_url() ) . '">' . __( 'Log in' ) . '</a></p>' );
980
+ login_footer();
981
+ exit;
982
+ }
983
+
984
+ wp_enqueue_script( 'utils' );
985
+ wp_enqueue_script( 'user-profile' );
986
+
987
+ login_header( __( 'Reset Password' ), '<p class="message reset-pass">' . __( 'Enter your new password below.' ) . '</p>', $errors );
988
+
989
+ ?>
990
+ <form name="resetpassform" id="resetpassform" action="<?php echo esc_url( network_site_url( 'wp-login.php?action=resetpass', 'login_post' ) ); ?>" method="post" autocomplete="off">
991
+ <input type="hidden" id="user_login" value="<?php echo esc_attr( $rp_login ); ?>" autocomplete="off" />
992
+
993
+ <div class="user-pass1-wrap">
994
+ <p>
995
+ <label for="pass1"><?php _e( 'New password' ); ?></label>
996
+ </p>
997
+
998
+ <div class="wp-pwd">
999
+ <input type="password" data-reveal="1" data-pw="<?php echo esc_attr( wp_generate_password( 16 ) ); ?>" name="pass1" id="pass1" class="input password-input" size="24" value="" autocomplete="off" aria-describedby="pass-strength-result" />
1000
+
1001
+ <button type="button" class="button button-secondary wp-hide-pw hide-if-no-js" data-toggle="0" aria-label="<?php esc_attr_e( 'Hide password' ); ?>">
1002
+ <span class="dashicons dashicons-hidden" aria-hidden="true"></span>
1003
+ </button>
1004
+ <div id="pass-strength-result" class="hide-if-no-js" aria-live="polite"><?php _e( 'Strength indicator' ); ?></div>
1005
+ </div>
1006
+ <div class="pw-weak">
1007
+ <input type="checkbox" name="pw_weak" id="pw-weak" class="pw-checkbox" />
1008
+ <label for="pw-weak"><?php _e( 'Confirm use of weak password' ); ?></label>
1009
+ </div>
1010
+ </div>
1011
+
1012
+ <p class="user-pass2-wrap">
1013
+ <label for="pass2"><?php _e( 'Confirm new password' ); ?></label>
1014
+ <input type="password" name="pass2" id="pass2" class="input" size="20" value="" autocomplete="off" />
1015
+ </p>
1016
+
1017
+ <p class="description indicator-hint"><?php echo wp_get_password_hint(); ?></p>
1018
+ <br class="clear" />
1019
+
1020
+ <?php
1021
+
1022
+ /**
1023
+ * Fires following the 'Strength indicator' meter in the user password reset form.
1024
+ *
1025
+ * @since 3.9.0
1026
+ *
1027
+ * @param WP_User $user User object of the user whose password is being reset.
1028
+ */
1029
+ do_action( 'resetpass_form', $user );
1030
+
1031
+ ?>
1032
+ <input type="hidden" name="rp_key" value="<?php echo esc_attr( $rp_key ); ?>" />
1033
+ <p class="submit">
1034
+ <input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e( 'Reset Password' ); ?>" />
1035
+ </p>
1036
+ </form>
1037
+
1038
+ <p id="nav">
1039
+ <a href="<?php echo esc_url( wp_login_url() ); ?>"><?php _e( 'Log in' ); ?></a>
1040
+ <?php
1041
+
1042
+ if ( get_option( 'users_can_register' ) ) {
1043
+ $registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) );
1044
+
1045
+ echo esc_html( $login_link_separator );
1046
+
1047
+ /** This filter is documented in wp-includes/general-template.php */
1048
+ echo apply_filters( 'register', $registration_url );
1049
+ }
1050
+
1051
+ ?>
1052
+ </p>
1053
+ <?php
1054
+
1055
+ login_footer( 'user_pass' );
1056
+ break;
1057
+
1058
+ case 'register':
1059
+ if ( is_multisite() ) {
1060
+ /**
1061
+ * Filters the Multisite sign up URL.
1062
+ *
1063
+ * @since 3.0.0
1064
+ *
1065
+ * @param string $sign_up_url The sign up URL.
1066
+ */
1067
+ wp_redirect( apply_filters( 'wp_signup_location', network_site_url( 'wp-signup.php' ) ) );
1068
+ exit;
1069
+ }
1070
+
1071
+ if ( ! get_option( 'users_can_register' ) ) {
1072
+ wp_redirect( site_url( 'wp-login.php?registration=disabled' ) );
1073
+ exit;
1074
+ }
1075
+
1076
+ $user_login = '';
1077
+ $user_email = '';
1078
+
1079
+ if ( $http_post ) {
1080
+ if ( isset( $_POST['user_login'] ) && is_string( $_POST['user_login'] ) ) {
1081
+ $user_login = wp_unslash( $_POST['user_login'] );
1082
+ }
1083
+
1084
+ if ( isset( $_POST['user_email'] ) && is_string( $_POST['user_email'] ) ) {
1085
+ $user_email = wp_unslash( $_POST['user_email'] );
1086
+ }
1087
+
1088
+ $errors = register_new_user( $user_login, $user_email );
1089
+
1090
+ if ( ! is_wp_error( $errors ) ) {
1091
+ $redirect_to = ! empty( $_POST['redirect_to'] ) ? $_POST['redirect_to'] : 'wp-login.php?checkemail=registered';
1092
+ wp_safe_redirect( $redirect_to );
1093
+ exit;
1094
+ }
1095
+ }
1096
+
1097
+ $registration_redirect = ! empty( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : '';
1098
+
1099
+ /**
1100
+ * Filters the registration redirect URL.
1101
+ *
1102
+ * @since 3.0.0
1103
+ *
1104
+ * @param string $registration_redirect The redirect destination URL.
1105
+ */
1106
+ $redirect_to = apply_filters( 'registration_redirect', $registration_redirect );
1107
+
1108
+ login_header( __( 'Registration Form' ), '<p class="message register">' . __( 'Register For This Site' ) . '</p>', $errors );
1109
+
1110
+ ?>
1111
+ <form name="registerform" id="registerform" action="<?php echo esc_url( site_url( 'wp-login.php?action=register', 'login_post' ) ); ?>" method="post" novalidate="novalidate">
1112
+ <p>
1113
+ <label for="user_login"><?php _e( 'Username' ); ?></label>
1114
+ <input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr( wp_unslash( $user_login ) ); ?>" size="20" autocapitalize="off" />
1115
+ </p>
1116
+ <p>
1117
+ <label for="user_email"><?php _e( 'Email' ); ?></label>
1118
+ <input type="email" name="user_email" id="user_email" class="input" value="<?php echo esc_attr( wp_unslash( $user_email ) ); ?>" size="25" />
1119
+ </p>
1120
+ <?php
1121
+
1122
+ /**
1123
+ * Fires following the 'Email' field in the user registration form.
1124
+ *
1125
+ * @since 2.1.0
1126
+ */
1127
+ do_action( 'register_form' );
1128
+
1129
+ ?>
1130
+ <p id="reg_passmail">
1131
+ <?php _e( 'Registration confirmation will be emailed to you.' ); ?>
1132
+ </p>
1133
+ <br class="clear" />
1134
+ <input type="hidden" name="redirect_to" value="<?php echo esc_attr( $redirect_to ); ?>" />
1135
+ <p class="submit">
1136
+ <input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e( 'Register' ); ?>" />
1137
+ </p>
1138
+ </form>
1139
+
1140
+ <p id="nav">
1141
+ <a href="<?php echo esc_url( wp_login_url() ); ?>"><?php _e( 'Log in' ); ?></a>
1142
+ <?php echo esc_html( $login_link_separator ); ?>
1143
+ <a href="<?php echo esc_url( wp_lostpassword_url() ); ?>"><?php _e( 'Lost your password?' ); ?></a>
1144
+ </p>
1145
+ <?php
1146
+
1147
+ login_footer( 'user_login' );
1148
+ break;
1149
+
1150
+ case 'checkemail':
1151
+ $redirect_to = admin_url();
1152
+ $errors = new WP_Error();
1153
+
1154
+ if ( 'confirm' === $_GET['checkemail'] ) {
1155
+ $errors->add(
1156
+ 'confirm',
1157
+ sprintf(
1158
+ /* translators: %s: Link to the login page. */
1159
+ __( 'Check your email for the confirmation link, then visit the <a href="%s">login page</a>.' ),
1160
+ wp_login_url()
1161
+ ),
1162
+ 'message'
1163
+ );
1164
+ } elseif ( 'registered' === $_GET['checkemail'] ) {
1165
+ $errors->add(
1166
+ 'registered',
1167
+ sprintf(
1168
+ /* translators: %s: Link to the login page. */
1169
+ __( 'Registration complete. Please check your email, then visit the <a href="%s">login page</a>.' ),
1170
+ wp_login_url()
1171
+ ),
1172
+ 'message'
1173
+ );
1174
+ }
1175
+
1176
+ /** This action is documented in wp-login.php */
1177
+ $errors = apply_filters( 'wp_login_errors', $errors, $redirect_to );
1178
+
1179
+ login_header( __( 'Check your email' ), '', $errors );
1180
+ login_footer();
1181
+ break;
1182
+
1183
+ case 'confirmaction':
1184
+ if ( ! isset( $_GET['request_id'] ) ) {
1185
+ wp_die( __( 'Missing request ID.' ) );
1186
+ }
1187
+
1188
+ if ( ! isset( $_GET['confirm_key'] ) ) {
1189
+ wp_die( __( 'Missing confirm key.' ) );
1190
+ }
1191
+
1192
+ $request_id = (int) $_GET['request_id'];
1193
+ $key = sanitize_text_field( wp_unslash( $_GET['confirm_key'] ) );
1194
+ $result = wp_validate_user_request_key( $request_id, $key );
1195
+
1196
+ if ( is_wp_error( $result ) ) {
1197
+ wp_die( $result );
1198
+ }
1199
+
1200
+ /**
1201
+ * Fires an action hook when the account action has been confirmed by the user.
1202
+ *
1203
+ * Using this you can assume the user has agreed to perform the action by
1204
+ * clicking on the link in the confirmation email.
1205
+ *
1206
+ * After firing this action hook the page will redirect to wp-login a callback
1207
+ * redirects or exits first.
1208
+ *
1209
+ * @since 4.9.6
1210
+ *
1211
+ * @param int $request_id Request ID.
1212
+ */
1213
+ do_action( 'user_request_action_confirmed', $request_id );
1214
+
1215
+ $message = _wp_privacy_account_request_confirmed_message( $request_id );
1216
+
1217
+ login_header( __( 'User action confirmed.' ), $message );
1218
+ login_footer();
1219
+ exit;
1220
+
1221
+ case 'login':
1222
+ default:
1223
+ $secure_cookie = '';
1224
+ $customize_login = isset( $_REQUEST['customize-login'] );
1225
+
1226
+ if ( $customize_login ) {
1227
+ wp_enqueue_script( 'customize-base' );
1228
+ }
1229
+
1230
+ // If the user wants SSL but the session is not SSL, force a secure cookie.
1231
+ if ( ! empty( $_POST['log'] ) && ! force_ssl_admin() ) {
1232
+ $user_name = sanitize_user( wp_unslash( $_POST['log'] ) );
1233
+ $user = get_user_by( 'login', $user_name );
1234
+
1235
+ if ( ! $user && strpos( $user_name, '@' ) ) {
1236
+ $user = get_user_by( 'email', $user_name );
1237
+ }
1238
+
1239
+ if ( $user ) {
1240
+ if ( get_user_option( 'use_ssl', $user->ID ) ) {
1241
+ $secure_cookie = true;
1242
+ force_ssl_admin( true );
1243
+ }
1244
+ }
1245
+ }
1246
+
1247
+ if ( isset( $_REQUEST['redirect_to'] ) ) {
1248
+ $redirect_to = $_REQUEST['redirect_to'];
1249
+ // Redirect to HTTPS if user wants SSL.
1250
+ if ( $secure_cookie && false !== strpos( $redirect_to, 'wp-admin' ) ) {
1251
+ $redirect_to = preg_replace( '|^http://|', 'https://', $redirect_to );
1252
+ }
1253
+ } else {
1254
+ $redirect_to = admin_url();
1255
+ }
1256
+
1257
+ $reauth = empty( $_REQUEST['reauth'] ) ? false : true;
1258
+
1259
+ $user = wp_signon( array(), $secure_cookie );
1260
+
1261
+ if ( empty( $_COOKIE[ LOGGED_IN_COOKIE ] ) ) {
1262
+ if ( headers_sent() ) {
1263
+ $user = new WP_Error(
1264
+ 'test_cookie',
1265
+ sprintf(
1266
+ /* translators: 1: Browser cookie documentation URL, 2: Support forums URL. */
1267
+ __( '<strong>Error</strong>: Cookies are blocked due to unexpected output. For help, please see <a href="%1$s">this documentation</a> or try the <a href="%2$s">support forums</a>.' ),
1268
+ __( 'https://wordpress.org/support/article/cookies/' ),
1269
+ __( 'https://wordpress.org/support/forums/' )
1270
+ )
1271
+ );
1272
+ } elseif ( isset( $_POST['testcookie'] ) && empty( $_COOKIE[ TEST_COOKIE ] ) ) {
1273
+ // If cookies are disabled, we can't log in even with a valid user and password.
1274
+ $user = new WP_Error(
1275
+ 'test_cookie',
1276
+ sprintf(
1277
+ /* translators: %s: Browser cookie documentation URL. */
1278
+ __( '<strong>Error</strong>: Cookies are blocked or not supported by your browser. You must <a href="%s">enable cookies</a> to use WordPress.' ),
1279
+ __( 'https://wordpress.org/support/article/cookies/#enable-cookies-in-your-browser' )
1280
+ )
1281
+ );
1282
+ }
1283
+ }
1284
+
1285
+ $requested_redirect_to = isset( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : '';
1286
+ /**
1287
+ * Filters the login redirect URL.
1288
+ *
1289
+ * @since 3.0.0
1290
+ *
1291
+ * @param string $redirect_to The redirect destination URL.
1292
+ * @param string $requested_redirect_to The requested redirect destination URL passed as a parameter.
1293
+ * @param WP_User|WP_Error $user WP_User object if login was successful, WP_Error object otherwise.
1294
+ */
1295
+ $redirect_to = apply_filters( 'login_redirect', $redirect_to, $requested_redirect_to, $user );
1296
+
1297
+ if ( ! is_wp_error( $user ) && ! $reauth ) {
1298
+ if ( $interim_login ) {
1299
+ $message = '<p class="message">' . __( 'You have logged in successfully.' ) . '</p>';
1300
+ $interim_login = 'success';
1301
+ login_header( '', $message );
1302
+
1303
+ ?>
1304
+ </div>
1305
+ <?php
1306
+
1307
+ /** This action is documented in wp-login.php */
1308
+ do_action( 'login_footer' );
1309
+
1310
+ if ( $customize_login ) {
1311
+ ?>
1312
+ <script type="text/javascript">setTimeout( function(){ new wp.customize.Messenger({ url: '<?php echo wp_customize_url(); ?>', channel: 'login' }).send('login') }, 1000 );</script>
1313
+ <?php
1314
+ }
1315
+
1316
+ ?>
1317
+ </body></html>
1318
+ <?php
1319
+
1320
+ exit;
1321
+ }
1322
+
1323
+ // Check if it is time to add a redirect to the admin email confirmation screen.
1324
+ if ( is_a( $user, 'WP_User' ) && $user->exists() && $user->has_cap( 'manage_options' ) ) {
1325
+ $admin_email_lifespan = (int) get_option( 'admin_email_lifespan' );
1326
+
1327
+ // If `0` (or anything "falsey" as it is cast to int) is returned, the user will not be redirected
1328
+ // to the admin email confirmation screen.
1329
+ /** This filter is documented in wp-login.php */
1330
+ $admin_email_check_interval = (int) apply_filters( 'admin_email_check_interval', 6 * MONTH_IN_SECONDS );
1331
+
1332
+ if ( $admin_email_check_interval > 0 && time() > $admin_email_lifespan ) {
1333
+ $redirect_to = add_query_arg(
1334
+ array(
1335
+ 'action' => 'confirm_admin_email',
1336
+ 'wp_lang' => get_user_locale( $user ),
1337
+ ),
1338
+ wp_login_url( $redirect_to )
1339
+ );
1340
+ }
1341
+ }
1342
+
1343
+ if ( ( empty( $redirect_to ) || 'wp-admin/' === $redirect_to || admin_url() === $redirect_to ) ) {
1344
+ // If the user doesn't belong to a blog, send them to user admin. If the user can't edit posts, send them to their profile.
1345
+ if ( is_multisite() && ! get_active_blog_for_user( $user->ID ) && ! is_super_admin( $user->ID ) ) {
1346
+ $redirect_to = user_admin_url();
1347
+ } elseif ( is_multisite() && ! $user->has_cap( 'read' ) ) {
1348
+ $redirect_to = get_dashboard_url( $user->ID );
1349
+ } elseif ( ! $user->has_cap( 'edit_posts' ) ) {
1350
+ $redirect_to = $user->has_cap( 'read' ) ? admin_url( 'profile.php' ) : home_url();
1351
+ }
1352
+
1353
+ wp_redirect( $redirect_to );
1354
+ exit;
1355
+ }
1356
+
1357
+ wp_safe_redirect( $redirect_to );
1358
+ exit;
1359
+ }
1360
+
1361
+ $errors = $user;
1362
+ // Clear errors if loggedout is set.
1363
+ if ( ! empty( $_GET['loggedout'] ) || $reauth ) {
1364
+ $errors = new WP_Error();
1365
+ }
1366
+
1367
+ if ( empty( $_POST ) && $errors->get_error_codes() === array( 'empty_username', 'empty_password' ) ) {
1368
+ $errors = new WP_Error( '', '' );
1369
+ }
1370
+
1371
+ if ( $interim_login ) {
1372
+ if ( ! $errors->has_errors() ) {
1373
+ $errors->add( 'expired', __( 'Your session has expired. Please log in to continue where you left off.' ), 'message' );
1374
+ }
1375
+ } else {
1376
+ // Some parts of this script use the main login form to display a message.
1377
+ if ( isset( $_GET['loggedout'] ) && $_GET['loggedout'] ) {
1378
+ $errors->add( 'loggedout', __( 'You are now logged out.' ), 'message' );
1379
+ } elseif ( isset( $_GET['registration'] ) && 'disabled' === $_GET['registration'] ) {
1380
+ $errors->add( 'registerdisabled', __( 'User registration is currently not allowed.' ) );
1381
+ } elseif ( strpos( $redirect_to, 'about.php?updated' ) ) {
1382
+ $errors->add( 'updated', __( '<strong>You have successfully updated WordPress!</strong> Please log back in to see what&#8217;s new.' ), 'message' );
1383
+ } elseif ( WP_Recovery_Mode_Link_Service::LOGIN_ACTION_ENTERED === $action ) {
1384
+ $errors->add( 'enter_recovery_mode', __( 'Recovery Mode Initialized. Please log in to continue.' ), 'message' );
1385
+ } elseif ( isset( $_GET['redirect_to'] ) && false !== strpos( $_GET['redirect_to'], 'wp-admin/authorize-application.php' ) ) {
1386
+ $query_component = wp_parse_url( $_GET['redirect_to'], PHP_URL_QUERY );
1387
+ parse_str( $query_component, $query );
1388
+
1389
+ if ( ! empty( $query['app_name'] ) ) {
1390
+ /* translators: 1: Website name, 2: Application name. */
1391
+ $message = sprintf( 'Please log in to %1$s to authorize %2$s to connect to your account.', get_bloginfo( 'name', 'display' ), '<strong>' . esc_html( $query['app_name'] ) . '</strong>' );
1392
+ } else {
1393
+ /* translators: %s: Website name. */
1394
+ $message = sprintf( 'Please log in to %s to proceed with authorization.', get_bloginfo( 'name', 'display' ) );
1395
+ }
1396
+
1397
+ $errors->add( 'authorize_application', $message, 'message' );
1398
+ }
1399
+ }
1400
+
1401
+ /**
1402
+ * Filters the login page errors.
1403
+ *
1404
+ * @since 3.6.0
1405
+ *
1406
+ * @param WP_Error $errors WP Error object.
1407
+ * @param string $redirect_to Redirect destination URL.
1408
+ */
1409
+ $errors = apply_filters( 'wp_login_errors', $errors, $redirect_to );
1410
+
1411
+ // Clear any stale cookies.
1412
+ if ( $reauth ) {
1413
+ wp_clear_auth_cookie();
1414
+ }
1415
+
1416
+ login_header( __( 'Log In' ), '', $errors );
1417
+
1418
+ if ( isset( $_POST['log'] ) ) {
1419
+ $user_login = ( 'incorrect_password' === $errors->get_error_code() || 'empty_password' === $errors->get_error_code() ) ? esc_attr( wp_unslash( $_POST['log'] ) ) : '';
1420
+ }
1421
+
1422
+ $rememberme = ! empty( $_POST['rememberme'] );
1423
+
1424
+ if ( $errors->has_errors() ) {
1425
+ $aria_describedby_error = ' aria-describedby="login_error"';
1426
+ } else {
1427
+ $aria_describedby_error = '';
1428
+ }
1429
+
1430
+ wp_enqueue_script( 'user-profile' );
1431
+
1432
+ //aiowps - this check is necessary because otherwise if variables are undefined we get a warning!
1433
+ if(empty($user_login)){
1434
+ $user_login = '';
1435
+ }
1436
+ if(empty($error)){
1437
+ $error = '';
1438
+ }
1439
+ ?>
1440
+
1441
+ <form name="loginform" id="loginform" action="<?php echo esc_url( site_url( 'wp-login.php', 'login_post' ) ); ?>" method="post">
1442
+ <p>
1443
+ <label for="user_login"><?php _e( 'Username or Email Address' ); ?></label>
1444
+ <input type="text" name="log" id="user_login"<?php echo $aria_describedby_error; ?> class="input" value="<?php echo esc_attr( $user_login ); ?>" size="20" autocapitalize="off" />
1445
+ </p>
1446
+
1447
+ <div class="user-pass-wrap">
1448
+ <label for="user_pass"><?php _e( 'Password' ); ?></label>
1449
+ <div class="wp-pwd">
1450
+ <input type="password" name="pwd" id="user_pass"<?php echo $aria_describedby_error; ?> class="input password-input" value="" size="20" />
1451
+ <button type="button" class="button button-secondary wp-hide-pw hide-if-no-js" data-toggle="0" aria-label="<?php esc_attr_e( 'Show password' ); ?>">
1452
+ <span class="dashicons dashicons-visibility" aria-hidden="true"></span>
1453
+ </button>
1454
+ </div>
1455
+ </div>
1456
+ <?php
1457
+
1458
+ /**
1459
+ * Fires following the 'Password' field in the login form.
1460
+ *
1461
+ * @since 2.1.0
1462
+ */
1463
+ do_action( 'login_form' );
1464
+
1465
+ ?>
1466
+ <p class="forgetmenot"><input name="rememberme" type="checkbox" id="rememberme" value="forever" <?php checked( $rememberme ); ?> /> <label for="rememberme"><?php esc_html_e( 'Remember Me' ); ?></label></p>
1467
+ <p class="submit">
1468
+ <input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e( 'Log In' ); ?>" />
1469
+ <?php
1470
+
1471
+ if ( $interim_login ) {
1472
+ ?>
1473
+ <input type="hidden" name="interim-login" value="1" />
1474
+ <?php
1475
+ } else {
1476
+ ?>
1477
+ <input type="hidden" name="redirect_to" value="<?php echo esc_attr( $redirect_to ); ?>" />
1478
+ <?php
1479
+ }
1480
+
1481
+ if ( $customize_login ) {
1482
+ ?>
1483
+ <input type="hidden" name="customize-login" value="1" />
1484
+ <?php
1485
+ }
1486
+
1487
+ ?>
1488
+ <input type="hidden" name="testcookie" value="1" />
1489
+ </p>
1490
+ </form>
1491
+
1492
+ <?php
1493
+
1494
+ if ( ! $interim_login ) {
1495
+ ?>
1496
+ <p id="nav">
1497
+ <?php
1498
+
1499
+ if ( get_option( 'users_can_register' ) ) {
1500
+ $registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) );
1501
+
1502
+ /** This filter is documented in wp-includes/general-template.php */
1503
+ echo apply_filters( 'register', $registration_url );
1504
+
1505
+ echo esc_html( $login_link_separator );
1506
+ }
1507
+
1508
+ ?>
1509
+ <a href="<?php echo esc_url( wp_lostpassword_url() ); ?>"><?php _e( 'Lost your password?' ); ?></a>
1510
+ </p>
1511
+ <?php
1512
+ }
1513
+
1514
+ $login_script = 'function wp_attempt_focus() {';
1515
+ $login_script .= 'setTimeout( function() {';
1516
+ $login_script .= 'try {';
1517
+
1518
+ if ( $user_login ) {
1519
+ $login_script .= 'd = document.getElementById( "user_pass" ); d.value = "";';
1520
+ } else {
1521
+ $login_script .= 'd = document.getElementById( "user_login" );';
1522
+
1523
+ if ( $errors->get_error_code() === 'invalid_username' ) {
1524
+ $login_script .= 'd.value = "";';
1525
+ }
1526
+ }
1527
+
1528
+ $login_script .= 'd.focus(); d.select();';
1529
+ $login_script .= '} catch( er ) {}';
1530
+ $login_script .= '}, 200);';
1531
+ $login_script .= "}\n"; // End of wp_attempt_focus().
1532
+
1533
+ /**
1534
+ * Filters whether to print the call to `wp_attempt_focus()` on the login screen.
1535
+ *
1536
+ * @since 4.8.0
1537
+ *
1538
+ * @param bool $print Whether to print the function call. Default true.
1539
+ */
1540
+ if ( apply_filters( 'enable_login_autofocus', true ) && ! $error ) {
1541
+ $login_script .= "wp_attempt_focus();\n";
1542
+ }
1543
+
1544
+ // Run `wpOnload()` if defined.
1545
+ $login_script .= "if ( typeof wpOnload === 'function' ) { wpOnload() }";
1546
+
1547
+ ?>
1548
+ <script type="text/javascript">
1549
+ <?php echo $login_script; ?>
1550
+ </script>
1551
+ <?php
1552
+
1553
+ if ( $interim_login ) {
1554
+ ?>
1555
+ <script type="text/javascript">
1556
+ ( function() {
1557
+ try {
1558
+ var i, links = document.getElementsByTagName( 'a' );
1559
+ for ( i in links ) {
1560
+ if ( links[i].href ) {
1561
+ links[i].target = '_blank';
1562
+ links[i].rel = 'noopener';
1563
+ }
1564
+ }
1565
+ } catch( er ) {}
1566
+ }());
1567
+ </script>
1568
+ <?php
1569
+ }
1570
+
1571
+ login_footer();
1572
+ break;
1573
+ } // End action switch.
other-includes/wp-security-rename-login-feature.php CHANGED
@@ -10,14 +10,17 @@
10
 
11
  /** Make sure that the WordPress bootstrap has run before continuing. */
12
 
 
 
 
13
  // Redirect to HTTPS login if forced to use SSL.
14
  if ( force_ssl_admin() && ! is_ssl() ) {
15
  if ( 0 === strpos( $_SERVER['REQUEST_URI'], 'http' ) ) {
16
  wp_safe_redirect( set_url_scheme( $_SERVER['REQUEST_URI'], 'https' ) );
17
- exit();
18
  } else {
19
  wp_safe_redirect( 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
20
- exit();
21
  }
22
  }
23
 
@@ -26,6 +29,12 @@ if ( force_ssl_admin() && ! is_ssl() ) {
26
  *
27
  * @since 2.1.0
28
  *
 
 
 
 
 
 
29
  * @param string $title Optional. WordPress login Page title to display in the `<title>` element.
30
  * Default 'Log In'.
31
  * @param string $message Optional. Message to display in header. Default empty.
@@ -34,8 +43,9 @@ if ( force_ssl_admin() && ! is_ssl() ) {
34
  function login_header( $title = 'Log In', $message = '', $wp_error = null ) {
35
  global $error, $interim_login, $action;
36
 
37
- // Don't index any of these forms
38
- add_action( 'login_head', 'wp_sensitive_page_meta' );
 
39
 
40
  add_action( 'login_head', 'wp_login_viewport_meta' );
41
 
@@ -44,7 +54,7 @@ function login_header( $title = 'Log In', $message = '', $wp_error = null ) {
44
  }
45
 
46
  // Shake it!
47
- $shake_error_codes = array( 'empty_password', 'empty_email', 'invalid_email', 'invalidcombo', 'empty_username', 'invalid_username', 'incorrect_password' );
48
  /**
49
  * Filters the error codes array for shaking the login form.
50
  *
@@ -54,13 +64,13 @@ function login_header( $title = 'Log In', $message = '', $wp_error = null ) {
54
  */
55
  $shake_error_codes = apply_filters( 'shake_error_codes', $shake_error_codes );
56
 
57
- if ( $shake_error_codes && $wp_error->has_errors() && in_array( $wp_error->get_error_code(), $shake_error_codes ) ) {
58
- add_action( 'login_head', 'wp_shake_js', 12 );
59
  }
60
 
61
  $login_title = get_bloginfo( 'name', 'display' );
62
 
63
- /* translators: Login screen title. 1: Login screen name, 2: Network or site name */
64
  $login_title = sprintf( __( '%1$s &lsaquo; %2$s &#8212; WordPress' ), $title, $login_title );
65
 
66
  if ( wp_is_recovery_mode() ) {
@@ -79,12 +89,7 @@ function login_header( $title = 'Log In', $message = '', $wp_error = null ) {
79
  $login_title = apply_filters( 'login_title', $login_title, $title );
80
 
81
  ?><!DOCTYPE html>
82
- <!--[if IE 8]>
83
- <html xmlns="http://www.w3.org/1999/xhtml" class="ie8" <?php language_attributes(); ?>>
84
- <![endif]-->
85
- <!--[if !(IE 8) ]><!-->
86
- <html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
87
- <!--<![endif]-->
88
  <head>
89
  <meta http-equiv="Content-Type" content="<?php bloginfo( 'html_type' ); ?>; charset=<?php bloginfo( 'charset' ); ?>" />
90
  <title><?php echo $login_title; ?></title>
@@ -97,7 +102,7 @@ function login_header( $title = 'Log In', $message = '', $wp_error = null ) {
97
  * This could be added by add_action('login_head'...) like wp_shake_js(),
98
  * but maybe better if it's not removable by plugins.
99
  */
100
- if ( 'loggedout' == $wp_error->get_error_code() ) {
101
  ?>
102
  <script>if("sessionStorage" in window){try{for(var key in sessionStorage){if(key.indexOf("wp-autosave-")!=-1){sessionStorage.removeItem(key)}}}catch(e){}};</script>
103
  <?php
@@ -134,7 +139,7 @@ function login_header( $title = 'Log In', $message = '', $wp_error = null ) {
134
  * Filters the title attribute of the header logo above login form.
135
  *
136
  * @since 2.1.0
137
- * @deprecated 5.2.0 Use login_headertext
138
  *
139
  * @param string $login_header_title Login header logo title attribute.
140
  */
@@ -158,11 +163,14 @@ function login_header( $title = 'Log In', $message = '', $wp_error = null ) {
158
  $login_header_text = apply_filters( 'login_headertext', $login_header_text );
159
 
160
  $classes = array( 'login-action-' . $action, 'wp-core-ui' );
 
161
  if ( is_rtl() ) {
162
  $classes[] = 'rtl';
163
  }
 
164
  if ( $interim_login ) {
165
  $classes[] = 'interim-login';
 
166
  ?>
167
  <style type="text/css">html{background-color: transparent;}</style>
168
  <?php
@@ -171,6 +179,7 @@ function login_header( $title = 'Log In', $message = '', $wp_error = null ) {
171
  $classes[] = 'interim-login-success';
172
  }
173
  }
 
174
  $classes[] = ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_locale() ) ) );
175
 
176
  /**
@@ -185,7 +194,10 @@ function login_header( $title = 'Log In', $message = '', $wp_error = null ) {
185
 
186
  ?>
187
  </head>
188
- <body class="login <?php echo esc_attr( implode( ' ', $classes ) ); ?>">
 
 
 
189
  <?php
190
  /**
191
  * Fires in the login page header after the body tag is opened.
@@ -193,6 +205,7 @@ function login_header( $title = 'Log In', $message = '', $wp_error = null ) {
193
  * @since 4.6.0
194
  */
195
  do_action( 'login_header' );
 
196
  ?>
197
  <div id="login">
198
  <h1><a href="<?php echo esc_url( $login_header_url ); ?>"><?php echo $login_header_text; ?></a></h1>
@@ -205,6 +218,7 @@ function login_header( $title = 'Log In', $message = '', $wp_error = null ) {
205
  * @param string $message Login message text.
206
  */
207
  $message = apply_filters( 'login_message', $message );
 
208
  if ( ! empty( $message ) ) {
209
  echo $message . "\n";
210
  }
@@ -218,16 +232,18 @@ function login_header( $title = 'Log In', $message = '', $wp_error = null ) {
218
  if ( $wp_error->has_errors() ) {
219
  $errors = '';
220
  $messages = '';
 
221
  foreach ( $wp_error->get_error_codes() as $code ) {
222
  $severity = $wp_error->get_error_data( $code );
223
  foreach ( $wp_error->get_error_messages( $code ) as $error_message ) {
224
- if ( 'message' == $severity ) {
225
  $messages .= ' ' . $error_message . "<br />\n";
226
  } else {
227
  $errors .= ' ' . $error_message . "<br />\n";
228
  }
229
  }
230
  }
 
231
  if ( ! empty( $errors ) ) {
232
  /**
233
  * Filters the error messages displayed above the login form.
@@ -238,6 +254,7 @@ function login_header( $title = 'Log In', $message = '', $wp_error = null ) {
238
  */
239
  echo '<div id="login_error">' . apply_filters( 'login_errors', $errors ) . "</div>\n";
240
  }
 
241
  if ( ! empty( $messages ) ) {
242
  /**
243
  * Filters instructional messages displayed above the login form.
@@ -249,46 +266,58 @@ function login_header( $title = 'Log In', $message = '', $wp_error = null ) {
249
  echo '<p class="message">' . apply_filters( 'login_messages', $messages ) . "</p>\n";
250
  }
251
  }
252
- } // End of login_header()
253
 
254
  /**
255
  * Outputs the footer for the login page.
256
  *
257
  * @since 3.1.0
258
  *
 
 
 
259
  * @param string $input_id Which input to auto-focus.
260
  */
261
  function login_footer( $input_id = '' ) {
262
  global $interim_login;
263
 
264
  // Don't allow interim logins to navigate away from the page.
265
- if ( ! $interim_login ) :
266
  ?>
267
- <p id="backtoblog"><a href="<?php echo esc_url( home_url( '/' ) ); ?>">
268
  <?php
269
- /* translators: %s: site title */
270
- printf( _x( '&larr; Back to %s', 'site' ), get_bloginfo( 'title', 'display' ) );
 
 
271
  ?>
272
- </a></p>
273
- <?php the_privacy_policy_link( '<div class="privacy-policy-page-link">', '</div>' ); ?>
274
- <?php endif; ?>
275
 
276
- </div>
 
277
 
278
- <?php if ( ! empty( $input_id ) ) : ?>
279
- <script type="text/javascript">
280
- try{document.getElementById('<?php echo $input_id; ?>').focus();}catch(e){}
281
- if(typeof wpOnload=='function')wpOnload();
282
- </script>
283
- <?php endif; ?>
284
 
285
  <?php
 
 
 
 
 
 
 
 
 
 
286
  /**
287
  * Fires in the login page footer.
288
  *
289
  * @since 3.1.0
290
  */
291
  do_action( 'login_footer' );
 
292
  ?>
293
  <div class="clear"></div>
294
  </body>
@@ -297,24 +326,20 @@ function login_footer( $input_id = '' ) {
297
  }
298
 
299
  /**
300
- * Outputs the Javascript to handle the form shaking.
301
  *
302
  * @since 3.0.0
303
  */
304
  function wp_shake_js() {
305
  ?>
306
- <script type="text/javascript">
307
- addLoadEvent = function(func){if(typeof jQuery!="undefined")jQuery(document).ready(func);else if(typeof wpOnload!='function'){wpOnload=func;}else{var oldonload=wpOnload;wpOnload=function(){oldonload();func();}}};
308
- function s(id,pos){g(id).left=pos+'px';}
309
- function g(id){return document.getElementById(id).style;}
310
- function shake(id,a,d){c=a.shift();s(id,c);if(a.length>0){setTimeout(function(){shake(id,a,d);},d);}else{try{g(id).position='static';wp_attempt_focus();}catch(e){}}}
311
- addLoadEvent(function(){ var p=new Array(15,30,15,0,-15,-30,-15,0);p=p.concat(p.concat(p));var i=document.forms[0].id;g(i).position='relative';shake(i,p,20);});
312
- </script>
313
  <?php
314
  }
315
 
316
  /**
317
- * Outputs the viewport meta tag.
318
  *
319
  * @since 3.7.0
320
  */
@@ -324,112 +349,6 @@ function wp_login_viewport_meta() {
324
  <?php
325
  }
326
 
327
- /**
328
- * Handles sending password retrieval email to user.
329
- *
330
- * @since 2.5.0
331
- *
332
- * @return bool|WP_Error True: when finish. WP_Error on error
333
- */
334
- function retrieve_password() {
335
- $errors = new WP_Error();
336
-
337
- if ( empty( $_POST['user_login'] ) || ! is_string( $_POST['user_login'] ) ) {
338
- $errors->add( 'empty_username', __( '<strong>ERROR</strong>: Enter a username or email address.' ) );
339
- } elseif ( strpos( $_POST['user_login'], '@' ) ) {
340
- $user_data = get_user_by( 'email', trim( wp_unslash( $_POST['user_login'] ) ) );
341
- if ( empty( $user_data ) ) {
342
- $errors->add( 'invalid_email', __( '<strong>ERROR</strong>: There is no account with that username or email address.' ) );
343
- }
344
- } else {
345
- $login = trim( $_POST['user_login'] );
346
- $user_data = get_user_by( 'login', $login );
347
- }
348
-
349
- /**
350
- * Fires before errors are returned from a password reset request.
351
- *
352
- * @since 2.1.0
353
- * @since 4.4.0 Added the `$errors` parameter.
354
- *
355
- * @param WP_Error $errors A WP_Error object containing any errors generated
356
- * by using invalid credentials.
357
- */
358
- do_action( 'lostpassword_post', $errors );
359
-
360
- if ( $errors->has_errors() ) {
361
- return $errors;
362
- }
363
-
364
- if ( ! $user_data ) {
365
- $errors->add( 'invalidcombo', __( '<strong>ERROR</strong>: There is no account with that username or email address.' ) );
366
- return $errors;
367
- }
368
-
369
- // Redefining user_login ensures we return the right case in the email.
370
- $user_login = $user_data->user_login;
371
- $user_email = $user_data->user_email;
372
- $key = get_password_reset_key( $user_data );
373
-
374
- if ( is_wp_error( $key ) ) {
375
- return $key;
376
- }
377
-
378
- if ( is_multisite() ) {
379
- $site_name = get_network()->site_name;
380
- } else {
381
- /*
382
- * The blogname option is escaped with esc_html on the way into the database
383
- * in sanitize_option we want to reverse this for the plain text arena of emails.
384
- */
385
- $site_name = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );
386
- }
387
-
388
- $message = __( 'Someone has requested a password reset for the following account:' ) . "\r\n\r\n";
389
- /* translators: %s: site name */
390
- $message .= sprintf( __( 'Site Name: %s' ), $site_name ) . "\r\n\r\n";
391
- /* translators: %s: user login */
392
- $message .= sprintf( __( 'Username: %s' ), $user_login ) . "\r\n\r\n";
393
- $message .= __( 'If this was a mistake, just ignore this email and nothing will happen.' ) . "\r\n\r\n";
394
- $message .= __( 'To reset your password, visit the following address:' ) . "\r\n\r\n";
395
- $message .= '<' . network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user_login ), 'login' ) . ">\r\n";
396
-
397
- /* translators: Password reset notification email subject. %s: Site title */
398
- $title = sprintf( __( '[%s] Password Reset' ), $site_name );
399
-
400
- /**
401
- * Filters the subject of the password reset email.
402
- *
403
- * @since 2.8.0
404
- * @since 4.4.0 Added the `$user_login` and `$user_data` parameters.
405
- *
406
- * @param string $title Default email title.
407
- * @param string $user_login The username for the user.
408
- * @param WP_User $user_data WP_User object.
409
- */
410
- $title = apply_filters( 'retrieve_password_title', $title, $user_login, $user_data );
411
-
412
- /**
413
- * Filters the message body of the password reset mail.
414
- *
415
- * If the filtered message is empty, the password reset email will not be sent.
416
- *
417
- * @since 2.8.0
418
- * @since 4.1.0 Added `$user_login` and `$user_data` parameters.
419
- *
420
- * @param string $message Default mail message.
421
- * @param string $key The activation key.
422
- * @param string $user_login The username for the user.
423
- * @param WP_User $user_data WP_User object.
424
- */
425
- $message = apply_filters( 'retrieve_password_message', $message, $key, $user_login, $user_data );
426
-
427
- if ( $message && ! wp_mail( $user_email, wp_specialchars_decode( $title ), $message ) ) {
428
- wp_die( __( 'The email could not be sent.' ) . "<br />\n" . __( 'Possible reason: your host may have disabled the mail() function.' ) );
429
- }
430
-
431
- return true;
432
- }
433
 
434
  //
435
  // Main.
@@ -442,8 +361,27 @@ if ( isset( $_GET['key'] ) ) {
442
  $action = 'resetpass';
443
  }
444
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
445
  // Validate action so as to default to the login screen.
446
- if ( ! in_array( $action, array( 'postpass', 'logout', 'lostpassword', 'retrievepassword', 'resetpass', 'rp', 'register', 'login', 'confirmaction', WP_Recovery_Mode_Link_Service::LOGIN_ACTION_ENTERED ), true ) && false === has_filter( 'login_form_' . $action ) ) {
447
  $action = 'login';
448
  }
449
 
@@ -451,21 +389,23 @@ nocache_headers();
451
 
452
  header( 'Content-Type: ' . get_bloginfo( 'html_type' ) . '; charset=' . get_bloginfo( 'charset' ) );
453
 
454
- if ( defined( 'RELOCATE' ) && RELOCATE ) { // Move flag is set
455
- if ( isset( $_SERVER['PATH_INFO'] ) && ( $_SERVER['PATH_INFO'] != $_SERVER['PHP_SELF'] ) ) {
456
  $_SERVER['PHP_SELF'] = str_replace( $_SERVER['PATH_INFO'], '', $_SERVER['PHP_SELF'] );
457
  }
458
 
459
  $url = dirname( set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] ) );
460
- if ( $url != get_option( 'siteurl' ) ) {
 
461
  update_option( 'siteurl', $url );
462
  }
463
  }
464
 
465
- //Set a cookie now to see if they are supported by the browser.
466
  $secure = ( 'https' === parse_url( wp_login_url(), PHP_URL_SCHEME ) );
467
  setcookie( TEST_COOKIE, 'WP Cookie check', 0, COOKIEPATH, COOKIE_DOMAIN, $secure );
468
- if ( SITECOOKIEPATH != COOKIEPATH ) {
 
469
  setcookie( TEST_COOKIE, 'WP Cookie check', 0, SITECOOKIEPATH, COOKIE_DOMAIN, $secure );
470
  }
471
 
@@ -487,7 +427,7 @@ do_action( 'login_init' );
487
  */
488
  do_action( "login_form_{$action}" );
489
 
490
- $http_post = ( 'POST' == $_SERVER['REQUEST_METHOD'] );
491
  $interim_login = isset( $_REQUEST['interim-login'] );
492
 
493
  /**
@@ -501,10 +441,186 @@ $login_link_separator = apply_filters( 'login_link_separator', ' | ' );
501
 
502
  switch ( $action ) {
503
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
504
  case 'postpass':
505
  if ( ! array_key_exists( 'post_password', $_POST ) ) {
506
  wp_safe_redirect( wp_get_referer() );
507
- exit();
508
  }
509
 
510
  require_once ABSPATH . WPINC . '/class-phpass.php';
@@ -522,15 +638,17 @@ switch ( $action ) {
522
  */
523
  $expire = apply_filters( 'post_password_expires', time() + 10 * DAY_IN_SECONDS );
524
  $referer = wp_get_referer();
 
525
  if ( $referer ) {
526
  $secure = ( 'https' === parse_url( $referer, PHP_URL_SCHEME ) );
527
  } else {
528
  $secure = false;
529
  }
 
530
  setcookie( 'wp-postpass_' . COOKIEHASH, $hasher->HashPassword( wp_unslash( $_POST['post_password'] ) ), $expire, COOKIEPATH, COOKIE_DOMAIN, $secure );
531
 
532
  wp_safe_redirect( wp_get_referer() );
533
- exit();
534
 
535
  case 'logout':
536
  check_admin_referer( 'log-out' );
@@ -540,9 +658,17 @@ switch ( $action ) {
540
  wp_logout();
541
 
542
  if ( ! empty( $_REQUEST['redirect_to'] ) ) {
543
- $redirect_to = $requested_redirect_to = $_REQUEST['redirect_to'];
 
544
  } else {
545
- $redirect_to = 'wp-login.php?loggedout=true';
 
 
 
 
 
 
 
546
  $requested_redirect_to = '';
547
  }
548
 
@@ -556,24 +682,26 @@ switch ( $action ) {
556
  * @param WP_User $user The WP_User object for the user that's logging out.
557
  */
558
  $redirect_to = apply_filters( 'logout_redirect', $redirect_to, $requested_redirect_to, $user );
 
559
  wp_safe_redirect( $redirect_to );
560
- exit();
561
 
562
  case 'lostpassword':
563
  case 'retrievepassword':
564
  if ( $http_post ) {
565
  $errors = retrieve_password();
 
566
  if ( ! is_wp_error( $errors ) ) {
567
  $redirect_to = ! empty( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : 'wp-login.php?checkemail=confirm';
568
  wp_safe_redirect( $redirect_to );
569
- exit();
570
  }
571
  }
572
 
573
  if ( isset( $_GET['error'] ) ) {
574
- if ( 'invalidkey' == $_GET['error'] ) {
575
  $errors->add( 'invalidkey', __( 'Your password reset link appears to be invalid. Please request a new link below.' ) );
576
- } elseif ( 'expiredkey' == $_GET['error'] ) {
577
  $errors->add( 'expiredkey', __( 'Your password reset link has expired. Please request a new link below.' ) );
578
  }
579
  }
@@ -599,7 +727,7 @@ switch ( $action ) {
599
  */
600
  do_action( 'lost_password', $errors );
601
 
602
- login_header( __( 'Lost Password' ), '<p class="message">' . __( 'Please enter your username or email address. You will receive a link to create a new password via email.' ) . '</p>', $errors );
603
 
604
  $user_login = '';
605
 
@@ -609,56 +737,65 @@ switch ( $action ) {
609
 
610
  ?>
611
 
612
- <form name="lostpasswordform" id="lostpasswordform" action="<?php echo esc_url( network_site_url( 'wp-login.php?action=lostpassword', 'login_post' ) ); ?>" method="post">
613
- <p>
614
- <label for="user_login" ><?php _e( 'Username or Email Address' ); ?><br />
615
- <input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr( $user_login ); ?>" size="20" autocapitalize="off" /></label>
616
- </p>
617
- <?php
618
- /**
619
- * Fires inside the lostpassword form tags, before the hidden fields.
620
- *
621
- * @since 2.1.0
622
- */
623
- do_action( 'lostpassword_form' );
624
- ?>
625
- <input type="hidden" name="redirect_to" value="<?php echo esc_attr( $redirect_to ); ?>" />
626
- <p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e( 'Get New Password' ); ?>" /></p>
627
- </form>
628
 
629
- <p id="nav">
630
- <a href="<?php echo esc_url( wp_login_url() ); ?>"><?php _e( 'Log in' ); ?></a>
631
- <?php
632
- if ( get_option( 'users_can_register' ) ) :
633
- $registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) );
 
 
 
 
 
 
 
 
 
 
 
 
634
 
635
- echo esc_html( $login_link_separator );
 
636
 
637
- /** This filter is documented in wp-includes/general-template.php */
638
- echo apply_filters( 'register', $registration_url );
639
- endif;
640
- ?>
641
- </p>
642
 
 
 
 
 
 
 
643
  <?php
644
- login_footer( 'user_login' );
645
 
 
646
  break;
647
 
648
  case 'resetpass':
649
  case 'rp':
650
  list( $rp_path ) = explode( '?', wp_unslash( $_SERVER['REQUEST_URI'] ) );
651
  $rp_cookie = 'wp-resetpass-' . COOKIEHASH;
 
652
  if ( isset( $_GET['key'] ) ) {
653
  $value = sprintf( '%s:%s', wp_unslash( $_GET['login'] ), wp_unslash( $_GET['key'] ) );
654
  setcookie( $rp_cookie, $value, 0, $rp_path, COOKIE_DOMAIN, is_ssl(), true );
 
655
  wp_safe_redirect( remove_query_arg( array( 'key', 'login' ) ) );
656
  exit;
657
  }
658
 
659
  if ( isset( $_COOKIE[ $rp_cookie ] ) && 0 < strpos( $_COOKIE[ $rp_cookie ], ':' ) ) {
660
  list( $rp_login, $rp_key ) = explode( ':', wp_unslash( $_COOKIE[ $rp_cookie ] ), 2 );
661
- $user = check_password_reset_key( $rp_key, $rp_login );
 
 
662
  if ( isset( $_POST['pass1'] ) && ! hash_equals( $rp_key, $_POST['rp_key'] ) ) {
663
  $user = false;
664
  }
@@ -668,17 +805,19 @@ switch ( $action ) {
668
 
669
  if ( ! $user || is_wp_error( $user ) ) {
670
  setcookie( $rp_cookie, ' ', time() - YEAR_IN_SECONDS, $rp_path, COOKIE_DOMAIN, is_ssl(), true );
 
671
  if ( $user && $user->get_error_code() === 'expired_key' ) {
672
  wp_redirect( site_url( 'wp-login.php?action=lostpassword&error=expiredkey' ) );
673
  } else {
674
  wp_redirect( site_url( 'wp-login.php?action=lostpassword&error=invalidkey' ) );
675
  }
 
676
  exit;
677
  }
678
 
679
  $errors = new WP_Error();
680
 
681
- if ( isset( $_POST['pass1'] ) && $_POST['pass1'] != $_POST['pass2'] ) {
682
  $errors->add( 'password_reset_mismatch', __( 'The passwords do not match.' ) );
683
  }
684
 
@@ -687,7 +826,7 @@ switch ( $action ) {
687
  *
688
  * @since 3.5.0
689
  *
690
- * @param object $errors WP Error object.
691
  * @param WP_User|WP_Error $user WP_User object if the login and reset key match. WP_Error object otherwise.
692
  */
693
  do_action( 'validate_password_reset', $errors, $user );
@@ -706,70 +845,72 @@ switch ( $action ) {
706
  login_header( __( 'Reset Password' ), '<p class="message reset-pass">' . __( 'Enter your new password below.' ) . '</p>', $errors );
707
 
708
  ?>
709
- <form name="resetpassform" id="resetpassform" action="<?php echo esc_url( network_site_url( 'wp-login.php?action=resetpass', 'login_post' ) ); ?>" method="post" autocomplete="off">
710
- <input type="hidden" id="user_login" value="<?php echo esc_attr( $rp_login ); ?>" autocomplete="off" />
711
 
712
- <div class="user-pass1-wrap">
713
- <p>
714
- <label for="pass1"><?php _e( 'New password' ); ?></label>
715
- </p>
716
 
717
- <div class="wp-pwd">
718
- <div class="password-input-wrapper">
719
- <input type="password" data-reveal="1" data-pw="<?php echo esc_attr( wp_generate_password( 16 ) ); ?>" name="pass1" id="pass1" class="input password-input" size="24" value="" autocomplete="off" aria-describedby="pass-strength-result" />
720
- <button type="button" class="button button-secondary wp-hide-pw hide-if-no-js">
721
- <span class="dashicons dashicons-hidden" aria-hidden="true"></span>
722
- </button>
 
 
 
 
 
 
723
  </div>
724
- <div id="pass-strength-result" class="hide-if-no-js" aria-live="polite"><?php _e( 'Strength indicator' ); ?></div>
725
- </div>
726
- <div class="pw-weak">
727
- <label>
728
- <input type="checkbox" name="pw_weak" class="pw-checkbox" />
729
- <?php _e( 'Confirm use of weak password' ); ?>
730
- </label>
731
- </div>
732
- </div>
733
-
734
- <p class="user-pass2-wrap">
735
- <label for="pass2"><?php _e( 'Confirm new password' ); ?></label><br />
736
- <input type="password" name="pass2" id="pass2" class="input" size="20" value="" autocomplete="off" />
737
- </p>
738
-
739
- <p class="description indicator-hint"><?php echo wp_get_password_hint(); ?></p>
740
- <br class="clear" />
741
 
742
- <?php
743
- /**
744
- * Fires following the 'Strength indicator' meter in the user password reset form.
745
- *
746
- * @since 3.9.0
747
- *
748
- * @param WP_User $user User object of the user whose password is being reset.
749
- */
750
- do_action( 'resetpass_form', $user );
751
- ?>
752
- <input type="hidden" name="rp_key" value="<?php echo esc_attr( $rp_key ); ?>" />
753
- <p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e( 'Reset Password' ); ?>" /></p>
754
- </form>
755
 
756
- <p id="nav">
757
- <a href="<?php echo esc_url( wp_login_url() ); ?>"><?php _e( 'Log in' ); ?></a>
758
- <?php
759
- if ( get_option( 'users_can_register' ) ) :
760
- $registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) );
761
 
762
- echo esc_html( $login_link_separator );
763
 
764
- /** This filter is documented in wp-includes/general-template.php */
765
- echo apply_filters( 'register', $registration_url );
766
- endif;
767
- ?>
768
- </p>
 
 
 
769
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
770
  <?php
771
- login_footer( 'user_pass' );
772
 
 
773
  break;
774
 
775
  case 'register':
@@ -787,7 +928,7 @@ switch ( $action ) {
787
 
788
  if ( ! get_option( 'users_can_register' ) ) {
789
  wp_redirect( site_url( 'wp-login.php?registration=disabled' ) );
790
- exit();
791
  }
792
 
793
  $user_login = '';
@@ -795,7 +936,7 @@ switch ( $action ) {
795
 
796
  if ( $http_post ) {
797
  if ( isset( $_POST['user_login'] ) && is_string( $_POST['user_login'] ) ) {
798
- $user_login = $_POST['user_login'];
799
  }
800
 
801
  if ( isset( $_POST['user_email'] ) && is_string( $_POST['user_email'] ) ) {
@@ -803,14 +944,16 @@ switch ( $action ) {
803
  }
804
 
805
  $errors = register_new_user( $user_login, $user_email );
 
806
  if ( ! is_wp_error( $errors ) ) {
807
  $redirect_to = ! empty( $_POST['redirect_to'] ) ? $_POST['redirect_to'] : 'wp-login.php?checkemail=registered';
808
  wp_safe_redirect( $redirect_to );
809
- exit();
810
  }
811
  }
812
 
813
  $registration_redirect = ! empty( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : '';
 
814
  /**
815
  * Filters the registration redirect URL.
816
  *
@@ -819,40 +962,80 @@ switch ( $action ) {
819
  * @param string $registration_redirect The redirect destination URL.
820
  */
821
  $redirect_to = apply_filters( 'registration_redirect', $registration_redirect );
 
822
  login_header( __( 'Registration Form' ), '<p class="message register">' . __( 'Register For This Site' ) . '</p>', $errors );
 
823
  ?>
824
- <form name="registerform" id="registerform" action="<?php echo esc_url( site_url( 'wp-login.php?action=register', 'login_post' ) ); ?>" method="post" novalidate="novalidate">
825
- <p>
826
- <label for="user_login"><?php _e( 'Username' ); ?><br />
827
- <input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr( wp_unslash( $user_login ) ); ?>" size="20" autocapitalize="off" /></label>
828
- </p>
829
- <p>
830
- <label for="user_email"><?php _e( 'Email' ); ?><br />
831
- <input type="email" name="user_email" id="user_email" class="input" value="<?php echo esc_attr( wp_unslash( $user_email ) ); ?>" size="25" /></label>
832
- </p>
833
- <?php
834
- /**
835
- * Fires following the 'Email' field in the user registration form.
836
- *
837
- * @since 2.1.0
838
- */
839
- do_action( 'register_form' );
840
- ?>
841
- <p id="reg_passmail"><?php _e( 'Registration confirmation will be emailed to you.' ); ?></p>
842
- <br class="clear" />
843
- <input type="hidden" name="redirect_to" value="<?php echo esc_attr( $redirect_to ); ?>" />
844
- <p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e( 'Register' ); ?>" /></p>
845
- </form>
846
-
847
- <p id="nav">
848
- <a href="<?php echo esc_url( wp_login_url() ); ?>"><?php _e( 'Log in' ); ?></a>
849
- <?php echo esc_html( $login_link_separator ); ?>
850
- <a href="<?php echo esc_url( wp_lostpassword_url() ); ?>"><?php _e( 'Lost your password?' ); ?></a>
851
- </p>
852
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
853
  <?php
 
854
  login_footer( 'user_login' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
855
 
 
 
856
  break;
857
 
858
  case 'confirmaction':
@@ -897,13 +1080,14 @@ switch ( $action ) {
897
  default:
898
  $secure_cookie = '';
899
  $customize_login = isset( $_REQUEST['customize-login'] );
 
900
  if ( $customize_login ) {
901
  wp_enqueue_script( 'customize-base' );
902
  }
903
 
904
  // If the user wants SSL but the session is not SSL, force a secure cookie.
905
  if ( ! empty( $_POST['log'] ) && ! force_ssl_admin() ) {
906
- $user_name = sanitize_user( $_POST['log'] );
907
  $user = get_user_by( 'login', $user_name );
908
 
909
  if ( ! $user && strpos( $user_name, '@' ) ) {
@@ -931,26 +1115,25 @@ switch ( $action ) {
931
  $reauth = empty( $_REQUEST['reauth'] ) ? false : true;
932
 
933
  $user = wp_signon( array(), $secure_cookie );
934
-
935
 
936
  if ( empty( $_COOKIE[ LOGGED_IN_COOKIE ] ) ) {
937
  if ( headers_sent() ) {
938
  $user = new WP_Error(
939
  'test_cookie',
940
  sprintf(
941
- /* translators: 1: Browser cookie documentation URL, 2: Support forums URL */
942
- __( '<strong>ERROR</strong>: Cookies are blocked due to unexpected output. For help, please see <a href="%1$s">this documentation</a> or try the <a href="%2$s">support forums</a>.' ),
943
  __( 'https://wordpress.org/support/article/cookies/' ),
944
- __( 'https://wordpress.org/support/' )
945
  )
946
  );
947
  } elseif ( isset( $_POST['testcookie'] ) && empty( $_COOKIE[ TEST_COOKIE ] ) ) {
948
- // If cookies are disabled we can't log in even with a valid user+pass
949
  $user = new WP_Error(
950
  'test_cookie',
951
  sprintf(
952
- /* translators: %s: Browser cookie documentation URL */
953
- __( '<strong>ERROR</strong>: Cookies are blocked or not supported by your browser. You must <a href="%s">enable cookies</a> to use WordPress.' ),
954
  __( 'https://wordpress.org/support/article/cookies/#enable-cookies-in-your-browser' )
955
  )
956
  );
@@ -974,21 +1157,48 @@ switch ( $action ) {
974
  $message = '<p class="message">' . __( 'You have logged in successfully.' ) . '</p>';
975
  $interim_login = 'success';
976
  login_header( '', $message );
 
977
  ?>
978
  </div>
979
  <?php
 
980
  /** This action is documented in wp-login.php */
981
  do_action( 'login_footer' );
 
 
 
 
 
 
 
982
  ?>
983
- <?php if ( $customize_login ) : ?>
984
- <script type="text/javascript">setTimeout( function(){ new wp.customize.Messenger({ url: '<?php echo wp_customize_url(); ?>', channel: 'login' }).send('login') }, 1000 );</script>
985
- <?php endif; ?>
986
  </body></html>
987
  <?php
 
988
  exit;
989
  }
990
 
991
- if ( ( empty( $redirect_to ) || $redirect_to == 'wp-admin/' || $redirect_to == admin_url() ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
992
  // If the user doesn't belong to a blog, send them to user admin. If the user can't edit posts, send them to their profile.
993
  if ( is_multisite() && ! get_active_blog_for_user( $user->ID ) && ! is_super_admin( $user->ID ) ) {
994
  $redirect_to = user_admin_url();
@@ -999,10 +1209,11 @@ switch ( $action ) {
999
  }
1000
 
1001
  wp_redirect( $redirect_to );
1002
- exit();
1003
  }
 
1004
  wp_safe_redirect( $redirect_to );
1005
- exit();
1006
  }
1007
 
1008
  $errors = $user;
@@ -1021,20 +1232,27 @@ switch ( $action ) {
1021
  }
1022
  } else {
1023
  // Some parts of this script use the main login form to display a message.
1024
- if ( isset( $_GET['loggedout'] ) && true == $_GET['loggedout'] ) {
1025
  $errors->add( 'loggedout', __( 'You are now logged out.' ), 'message' );
1026
- } elseif ( isset( $_GET['registration'] ) && 'disabled' == $_GET['registration'] ) {
1027
  $errors->add( 'registerdisabled', __( 'User registration is currently not allowed.' ) );
1028
- } elseif ( isset( $_GET['checkemail'] ) && 'confirm' == $_GET['checkemail'] ) {
1029
- $errors->add( 'confirm', __( 'Check your email for the confirmation link.' ), 'message' );
1030
- } elseif ( isset( $_GET['checkemail'] ) && 'newpass' == $_GET['checkemail'] ) {
1031
- $errors->add( 'newpass', __( 'Check your email for your new password.' ), 'message' );
1032
- } elseif ( isset( $_GET['checkemail'] ) && 'registered' == $_GET['checkemail'] ) {
1033
- $errors->add( 'registered', __( 'Registration complete. Please check your email.' ), 'message' );
1034
  } elseif ( strpos( $redirect_to, 'about.php?updated' ) ) {
1035
  $errors->add( 'updated', __( '<strong>You have successfully updated WordPress!</strong> Please log back in to see what&#8217;s new.' ), 'message' );
1036
  } elseif ( WP_Recovery_Mode_Link_Service::LOGIN_ACTION_ENTERED === $action ) {
1037
  $errors->add( 'enter_recovery_mode', __( 'Recovery Mode Initialized. Please log in to continue.' ), 'message' );
 
 
 
 
 
 
 
 
 
 
 
 
 
1038
  }
1039
  }
1040
 
@@ -1043,8 +1261,8 @@ switch ( $action ) {
1043
  *
1044
  * @since 3.6.0
1045
  *
1046
- * @param object $errors WP Error object.
1047
- * @param string $redirect_to Redirect destination URL.
1048
  */
1049
  $errors = apply_filters( 'wp_login_errors', $errors, $redirect_to );
1050
 
@@ -1056,8 +1274,9 @@ switch ( $action ) {
1056
  login_header( __( 'Log In' ), '', $errors );
1057
 
1058
  if ( isset( $_POST['log'] ) ) {
1059
- $user_login = ( 'incorrect_password' == $errors->get_error_code() || 'empty_password' == $errors->get_error_code() ) ? esc_attr( wp_unslash( $_POST['log'] ) ) : '';
1060
  }
 
1061
  $rememberme = ! empty( $_POST['rememberme'] );
1062
 
1063
  if ( $errors->has_errors() ) {
@@ -1065,89 +1284,110 @@ switch ( $action ) {
1065
  } else {
1066
  $aria_describedby_error = '';
1067
  }
1068
-
1069
- //aiowps - this check is necessary because otherwise if variables are undefined we get a warning!
1070
- if(empty($user_login)){
1071
- $user_login = '';
1072
- }
1073
- if(empty($error)){
1074
- $error = '';
1075
- }
1076
-
1077
- ?>
1078
 
1079
- <form name="loginform" id="loginform" action="<?php echo esc_url( site_url( 'wp-login.php', 'login_post' ) ); ?>" method="post">
1080
- <p>
1081
- <label for="user_login"><?php _e( 'Username or Email Address' ); ?><br />
1082
- <input type="text" name="log" id="user_login"<?php echo $aria_describedby_error; ?> class="input" value="<?php echo esc_attr( $user_login ); ?>" size="20" autocapitalize="off" /></label>
1083
- </p>
1084
- <p>
1085
- <label for="user_pass"><?php _e( 'Password' ); ?><br />
1086
- <input type="password" name="pwd" id="user_pass"<?php echo $aria_describedby_error; ?> class="input" value="" size="20" /></label>
1087
- </p>
1088
- <?php
1089
- /**
1090
- * Fires following the 'Password' field in the login form.
1091
- *
1092
- * @since 2.1.0
1093
- */
1094
- do_action( 'login_form' );
1095
  ?>
1096
- <p class="forgetmenot"><label for="rememberme"><input name="rememberme" type="checkbox" id="rememberme" value="forever" <?php checked( $rememberme ); ?> /> <?php esc_html_e( 'Remember Me' ); ?></label></p>
1097
- <p class="submit">
1098
- <input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e( 'Log In' ); ?>" />
1099
- <?php if ( $interim_login ) { ?>
1100
- <input type="hidden" name="interim-login" value="1" />
1101
- <?php } else { ?>
1102
- <input type="hidden" name="redirect_to" value="<?php echo esc_attr( $redirect_to ); ?>" />
1103
- <?php } ?>
1104
- <?php if ( $customize_login ) : ?>
1105
- <input type="hidden" name="customize-login" value="1" />
1106
- <?php endif; ?>
1107
- <input type="hidden" name="testcookie" value="1" />
1108
- </p>
1109
- </form>
1110
-
1111
- <?php if ( ! $interim_login ) { ?>
1112
- <p id="nav">
1113
  <?php
1114
- if ( ! isset( $_GET['checkemail'] ) || ! in_array( $_GET['checkemail'], array( 'confirm', 'newpass' ) ) ) :
1115
- if ( get_option( 'users_can_register' ) ) :
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1116
  $registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) );
1117
 
1118
  /** This filter is documented in wp-includes/general-template.php */
1119
  echo apply_filters( 'register', $registration_url );
1120
 
1121
  echo esc_html( $login_link_separator );
1122
- endif;
 
1123
  ?>
1124
- <a href="<?php echo esc_url( wp_lostpassword_url() ); ?>"><?php _e( 'Lost your password?' ); ?></a>
1125
- <?php endif; ?>
1126
- </p>
1127
- <?php } ?>
1128
 
1129
- <script type="text/javascript">
1130
- function wp_attempt_focus(){
1131
- setTimeout( function(){ try{
1132
- <?php if ( $user_login ) { ?>
1133
- d = document.getElementById('user_pass');
1134
- d.value = '';
1135
- <?php } else { ?>
1136
- d = document.getElementById('user_login');
1137
- <?php if ( 'invalid_username' == $errors->get_error_code() ) { ?>
1138
- if( d.value != '' )
1139
- d.value = '';
1140
- <?php
1141
  }
1142
- }
1143
- ?>
1144
- d.focus();
1145
- d.select();
1146
- } catch(e){}
1147
- }, 200);
1148
- }
1149
 
1150
- <?php
1151
  /**
1152
  * Filters whether to print the call to `wp_attempt_focus()` on the login screen.
1153
  *
@@ -1156,25 +1396,36 @@ switch ( $action ) {
1156
  * @param bool $print Whether to print the function call. Default true.
1157
  */
1158
  if ( apply_filters( 'enable_login_autofocus', true ) && ! $error ) {
1159
- ?>
1160
- wp_attempt_focus();
1161
- <?php } ?>
1162
- if(typeof wpOnload=='function')wpOnload();
1163
- <?php if ( $interim_login ) { ?>
1164
- (function(){
1165
- try {
1166
- var i, links = document.getElementsByTagName('a');
1167
- for ( i in links ) {
1168
- if ( links[i].href )
1169
- links[i].target = '_blank';
1170
  }
1171
- } catch(e){}
1172
- }());
1173
- <?php } ?>
1174
- </script>
1175
 
 
 
 
 
 
 
 
1176
  <?php
1177
- login_footer();
1178
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1179
  break;
1180
  } // End action switch.
10
 
11
  /** Make sure that the WordPress bootstrap has run before continuing. */
12
 
13
+ // aiowps - for our special case we do not want to include wp-load.php
14
+ //require __DIR__ . '/wp-load.php';
15
+
16
  // Redirect to HTTPS login if forced to use SSL.
17
  if ( force_ssl_admin() && ! is_ssl() ) {
18
  if ( 0 === strpos( $_SERVER['REQUEST_URI'], 'http' ) ) {
19
  wp_safe_redirect( set_url_scheme( $_SERVER['REQUEST_URI'], 'https' ) );
20
+ exit;
21
  } else {
22
  wp_safe_redirect( 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
23
+ exit;
24
  }
25
  }
26
 
29
  *
30
  * @since 2.1.0
31
  *
32
+ * @global string $error Login error message set by deprecated pluggable wp_login() function
33
+ * or plugins replacing it.
34
+ * @global bool|string $interim_login Whether interim login modal is being displayed. String 'success'
35
+ * upon successful login.
36
+ * @global string $action The action that brought the visitor to the login page.
37
+ *
38
  * @param string $title Optional. WordPress login Page title to display in the `<title>` element.
39
  * Default 'Log In'.
40
  * @param string $message Optional. Message to display in header. Default empty.
43
  function login_header( $title = 'Log In', $message = '', $wp_error = null ) {
44
  global $error, $interim_login, $action;
45
 
46
+ // Don't index any of these forms.
47
+ add_filter( 'wp_robots', 'wp_robots_sensitive_page' );
48
+ add_action( 'login_head', 'wp_strict_cross_origin_referrer' );
49
 
50
  add_action( 'login_head', 'wp_login_viewport_meta' );
51
 
54
  }
55
 
56
  // Shake it!
57
+ $shake_error_codes = array( 'empty_password', 'empty_email', 'invalid_email', 'invalidcombo', 'empty_username', 'invalid_username', 'incorrect_password', 'retrieve_password_email_failure' );
58
  /**
59
  * Filters the error codes array for shaking the login form.
60
  *
64
  */
65
  $shake_error_codes = apply_filters( 'shake_error_codes', $shake_error_codes );
66
 
67
+ if ( $shake_error_codes && $wp_error->has_errors() && in_array( $wp_error->get_error_code(), $shake_error_codes, true ) ) {
68
+ add_action( 'login_footer', 'wp_shake_js', 12 );
69
  }
70
 
71
  $login_title = get_bloginfo( 'name', 'display' );
72
 
73
+ /* translators: Login screen title. 1: Login screen name, 2: Network or site name. */
74
  $login_title = sprintf( __( '%1$s &lsaquo; %2$s &#8212; WordPress' ), $title, $login_title );
75
 
76
  if ( wp_is_recovery_mode() ) {
89
  $login_title = apply_filters( 'login_title', $login_title, $title );
90
 
91
  ?><!DOCTYPE html>
92
+ <html <?php language_attributes(); ?>>
 
 
 
 
 
93
  <head>
94
  <meta http-equiv="Content-Type" content="<?php bloginfo( 'html_type' ); ?>; charset=<?php bloginfo( 'charset' ); ?>" />
95
  <title><?php echo $login_title; ?></title>
102
  * This could be added by add_action('login_head'...) like wp_shake_js(),
103
  * but maybe better if it's not removable by plugins.
104
  */
105
+ if ( 'loggedout' === $wp_error->get_error_code() ) {
106
  ?>
107
  <script>if("sessionStorage" in window){try{for(var key in sessionStorage){if(key.indexOf("wp-autosave-")!=-1){sessionStorage.removeItem(key)}}}catch(e){}};</script>
108
  <?php
139
  * Filters the title attribute of the header logo above login form.
140
  *
141
  * @since 2.1.0
142
+ * @deprecated 5.2.0 Use {@see 'login_headertext'} instead.
143
  *
144
  * @param string $login_header_title Login header logo title attribute.
145
  */
163
  $login_header_text = apply_filters( 'login_headertext', $login_header_text );
164
 
165
  $classes = array( 'login-action-' . $action, 'wp-core-ui' );
166
+
167
  if ( is_rtl() ) {
168
  $classes[] = 'rtl';
169
  }
170
+
171
  if ( $interim_login ) {
172
  $classes[] = 'interim-login';
173
+
174
  ?>
175
  <style type="text/css">html{background-color: transparent;}</style>
176
  <?php
179
  $classes[] = 'interim-login-success';
180
  }
181
  }
182
+
183
  $classes[] = ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_locale() ) ) );
184
 
185
  /**
194
 
195
  ?>
196
  </head>
197
+ <body class="login no-js <?php echo esc_attr( implode( ' ', $classes ) ); ?>">
198
+ <script type="text/javascript">
199
+ document.body.className = document.body.className.replace('no-js','js');
200
+ </script>
201
  <?php
202
  /**
203
  * Fires in the login page header after the body tag is opened.
205
  * @since 4.6.0
206
  */
207
  do_action( 'login_header' );
208
+
209
  ?>
210
  <div id="login">
211
  <h1><a href="<?php echo esc_url( $login_header_url ); ?>"><?php echo $login_header_text; ?></a></h1>
218
  * @param string $message Login message text.
219
  */
220
  $message = apply_filters( 'login_message', $message );
221
+
222
  if ( ! empty( $message ) ) {
223
  echo $message . "\n";
224
  }
232
  if ( $wp_error->has_errors() ) {
233
  $errors = '';
234
  $messages = '';
235
+
236
  foreach ( $wp_error->get_error_codes() as $code ) {
237
  $severity = $wp_error->get_error_data( $code );
238
  foreach ( $wp_error->get_error_messages( $code ) as $error_message ) {
239
+ if ( 'message' === $severity ) {
240
  $messages .= ' ' . $error_message . "<br />\n";
241
  } else {
242
  $errors .= ' ' . $error_message . "<br />\n";
243
  }
244
  }
245
  }
246
+
247
  if ( ! empty( $errors ) ) {
248
  /**
249
  * Filters the error messages displayed above the login form.
254
  */
255
  echo '<div id="login_error">' . apply_filters( 'login_errors', $errors ) . "</div>\n";
256
  }
257
+
258
  if ( ! empty( $messages ) ) {
259
  /**
260
  * Filters instructional messages displayed above the login form.
266
  echo '<p class="message">' . apply_filters( 'login_messages', $messages ) . "</p>\n";
267
  }
268
  }
269
+ } // End of login_header().
270
 
271
  /**
272
  * Outputs the footer for the login page.
273
  *
274
  * @since 3.1.0
275
  *
276
+ * @global bool|string $interim_login Whether interim login modal is being displayed. String 'success'
277
+ * upon successful login.
278
+ *
279
  * @param string $input_id Which input to auto-focus.
280
  */
281
  function login_footer( $input_id = '' ) {
282
  global $interim_login;
283
 
284
  // Don't allow interim logins to navigate away from the page.
285
+ if ( ! $interim_login ) {
286
  ?>
287
+ <p id="backtoblog"><a href="<?php echo esc_url( home_url( '/' ) ); ?>">
288
  <?php
289
+
290
+ /* translators: %s: Site title. */
291
+ printf( _x( '&larr; Go to %s', 'site' ), get_bloginfo( 'title', 'display' ) );
292
+
293
  ?>
294
+ </a></p>
295
+ <?php
 
296
 
297
+ the_privacy_policy_link( '<div class="privacy-policy-page-link">', '</div>' );
298
+ }
299
 
300
+ ?>
301
+ </div><?php // End of <div id="login">. ?>
 
 
 
 
302
 
303
  <?php
304
+
305
+ if ( ! empty( $input_id ) ) {
306
+ ?>
307
+ <script type="text/javascript">
308
+ try{document.getElementById('<?php echo $input_id; ?>').focus();}catch(e){}
309
+ if(typeof wpOnload=='function')wpOnload();
310
+ </script>
311
+ <?php
312
+ }
313
+
314
  /**
315
  * Fires in the login page footer.
316
  *
317
  * @since 3.1.0
318
  */
319
  do_action( 'login_footer' );
320
+
321
  ?>
322
  <div class="clear"></div>
323
  </body>
326
  }
327
 
328
  /**
329
+ * Outputs the Javascript to handle the form shaking on the login page.
330
  *
331
  * @since 3.0.0
332
  */
333
  function wp_shake_js() {
334
  ?>
335
+ <script type="text/javascript">
336
+ document.querySelector('form').classList.add('shake');
337
+ </script>
 
 
 
 
338
  <?php
339
  }
340
 
341
  /**
342
+ * Outputs the viewport meta tag for the login page.
343
  *
344
  * @since 3.7.0
345
  */
349
  <?php
350
  }
351
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
352
 
353
  //
354
  // Main.
361
  $action = 'resetpass';
362
  }
363
 
364
+ if ( isset( $_GET['checkemail'] ) ) {
365
+ $action = 'checkemail';
366
+ }
367
+
368
+ $default_actions = array(
369
+ 'confirm_admin_email',
370
+ 'postpass',
371
+ 'logout',
372
+ 'lostpassword',
373
+ 'retrievepassword',
374
+ 'resetpass',
375
+ 'rp',
376
+ 'register',
377
+ 'checkemail',
378
+ 'confirmaction',
379
+ 'login',
380
+ WP_Recovery_Mode_Link_Service::LOGIN_ACTION_ENTERED,
381
+ );
382
+
383
  // Validate action so as to default to the login screen.
384
+ if ( ! in_array( $action, $default_actions, true ) && false === has_filter( 'login_form_' . $action ) ) {
385
  $action = 'login';
386
  }
387
 
389
 
390
  header( 'Content-Type: ' . get_bloginfo( 'html_type' ) . '; charset=' . get_bloginfo( 'charset' ) );
391
 
392
+ if ( defined( 'RELOCATE' ) && RELOCATE ) { // Move flag is set.
393
+ if ( isset( $_SERVER['PATH_INFO'] ) && ( $_SERVER['PATH_INFO'] !== $_SERVER['PHP_SELF'] ) ) {
394
  $_SERVER['PHP_SELF'] = str_replace( $_SERVER['PATH_INFO'], '', $_SERVER['PHP_SELF'] );
395
  }
396
 
397
  $url = dirname( set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] ) );
398
+
399
+ if ( get_option( 'siteurl' ) !== $url ) {
400
  update_option( 'siteurl', $url );
401
  }
402
  }
403
 
404
+ // Set a cookie now to see if they are supported by the browser.
405
  $secure = ( 'https' === parse_url( wp_login_url(), PHP_URL_SCHEME ) );
406
  setcookie( TEST_COOKIE, 'WP Cookie check', 0, COOKIEPATH, COOKIE_DOMAIN, $secure );
407
+
408
+ if ( SITECOOKIEPATH !== COOKIEPATH ) {
409
  setcookie( TEST_COOKIE, 'WP Cookie check', 0, SITECOOKIEPATH, COOKIE_DOMAIN, $secure );
410
  }
411
 
427
  */
428
  do_action( "login_form_{$action}" );
429
 
430
+ $http_post = ( 'POST' === $_SERVER['REQUEST_METHOD'] );
431
  $interim_login = isset( $_REQUEST['interim-login'] );
432
 
433
  /**
441
 
442
  switch ( $action ) {
443
 
444
+ case 'confirm_admin_email':
445
+ /*
446
+ * Note that `is_user_logged_in()` will return false immediately after logging in
447
+ * as the current user is not set, see wp-includes/pluggable.php.
448
+ * However this action runs on a redirect after logging in.
449
+ */
450
+ if ( ! is_user_logged_in() ) {
451
+ wp_safe_redirect( wp_login_url() );
452
+ exit;
453
+ }
454
+
455
+ if ( ! empty( $_REQUEST['redirect_to'] ) ) {
456
+ $redirect_to = $_REQUEST['redirect_to'];
457
+ } else {
458
+ $redirect_to = admin_url();
459
+ }
460
+
461
+ if ( current_user_can( 'manage_options' ) ) {
462
+ $admin_email = get_option( 'admin_email' );
463
+ } else {
464
+ wp_safe_redirect( $redirect_to );
465
+ exit;
466
+ }
467
+
468
+ /**
469
+ * Filters the interval for dismissing the admin email confirmation screen.
470
+ *
471
+ * If `0` (zero) is returned, the "Remind me later" link will not be displayed.
472
+ *
473
+ * @since 5.3.1
474
+ *
475
+ * @param int $interval Interval time (in seconds). Default is 3 days.
476
+ */
477
+ $remind_interval = (int) apply_filters( 'admin_email_remind_interval', 3 * DAY_IN_SECONDS );
478
+
479
+ if ( ! empty( $_GET['remind_me_later'] ) ) {
480
+ if ( ! wp_verify_nonce( $_GET['remind_me_later'], 'remind_me_later_nonce' ) ) {
481
+ wp_safe_redirect( wp_login_url() );
482
+ exit;
483
+ }
484
+
485
+ if ( $remind_interval > 0 ) {
486
+ update_option( 'admin_email_lifespan', time() + $remind_interval );
487
+ }
488
+
489
+ $redirect_to = add_query_arg( 'admin_email_remind_later', 1, $redirect_to );
490
+ wp_safe_redirect( $redirect_to );
491
+ exit;
492
+ }
493
+
494
+ if ( ! empty( $_POST['correct-admin-email'] ) ) {
495
+ if ( ! check_admin_referer( 'confirm_admin_email', 'confirm_admin_email_nonce' ) ) {
496
+ wp_safe_redirect( wp_login_url() );
497
+ exit;
498
+ }
499
+
500
+ /**
501
+ * Filters the interval for redirecting the user to the admin email confirmation screen.
502
+ *
503
+ * If `0` (zero) is returned, the user will not be redirected.
504
+ *
505
+ * @since 5.3.0
506
+ *
507
+ * @param int $interval Interval time (in seconds). Default is 6 months.
508
+ */
509
+ $admin_email_check_interval = (int) apply_filters( 'admin_email_check_interval', 6 * MONTH_IN_SECONDS );
510
+
511
+ if ( $admin_email_check_interval > 0 ) {
512
+ update_option( 'admin_email_lifespan', time() + $admin_email_check_interval );
513
+ }
514
+
515
+ wp_safe_redirect( $redirect_to );
516
+ exit;
517
+ }
518
+
519
+ login_header( __( 'Confirm your administration email' ), '', $errors );
520
+
521
+ /**
522
+ * Fires before the admin email confirm form.
523
+ *
524
+ * @since 5.3.0
525
+ *
526
+ * @param WP_Error $errors A `WP_Error` object containing any errors generated by using invalid
527
+ * credentials. Note that the error object may not contain any errors.
528
+ */
529
+ do_action( 'admin_email_confirm', $errors );
530
+
531
+ ?>
532
+
533
+ <form class="admin-email-confirm-form" name="admin-email-confirm-form" action="<?php echo esc_url( site_url( 'wp-login.php?action=confirm_admin_email', 'login_post' ) ); ?>" method="post">
534
+ <?php
535
+ /**
536
+ * Fires inside the admin-email-confirm-form form tags, before the hidden fields.
537
+ *
538
+ * @since 5.3.0
539
+ */
540
+ do_action( 'admin_email_confirm_form' );
541
+
542
+ wp_nonce_field( 'confirm_admin_email', 'confirm_admin_email_nonce' );
543
+
544
+ ?>
545
+ <input type="hidden" name="redirect_to" value="<?php echo esc_attr( $redirect_to ); ?>" />
546
+
547
+ <h1 class="admin-email__heading">
548
+ <?php _e( 'Administration email verification' ); ?>
549
+ </h1>
550
+ <p class="admin-email__details">
551
+ <?php _e( 'Please verify that the <strong>administration email</strong> for this website is still correct.' ); ?>
552
+ <?php
553
+
554
+ /* translators: URL to the WordPress help section about admin email. */
555
+ $admin_email_help_url = __( 'https://wordpress.org/support/article/settings-general-screen/#email-address' );
556
+
557
+ /* translators: Accessibility text. */
558
+ $accessibility_text = sprintf( '<span class="screen-reader-text"> %s</span>', __( '(opens in a new tab)' ) );
559
+
560
+ printf(
561
+ '<a href="%s" rel="noopener" target="_blank">%s%s</a>',
562
+ esc_url( $admin_email_help_url ),
563
+ __( 'Why is this important?' ),
564
+ $accessibility_text
565
+ );
566
+
567
+ ?>
568
+ </p>
569
+ <p class="admin-email__details">
570
+ <?php
571
+
572
+ printf(
573
+ /* translators: %s: Admin email address. */
574
+ __( 'Current administration email: %s' ),
575
+ '<strong>' . esc_html( $admin_email ) . '</strong>'
576
+ );
577
+
578
+ ?>
579
+ </p>
580
+ <p class="admin-email__details">
581
+ <?php _e( 'This email may be different from your personal email address.' ); ?>
582
+ </p>
583
+
584
+ <div class="admin-email__actions">
585
+ <div class="admin-email__actions-primary">
586
+ <?php
587
+
588
+ $change_link = admin_url( 'options-general.php' );
589
+ $change_link = add_query_arg( 'highlight', 'confirm_admin_email', $change_link );
590
+
591
+ ?>
592
+ <a class="button button-large" href="<?php echo esc_url( $change_link ); ?>"><?php _e( 'Update' ); ?></a>
593
+ <input type="submit" name="correct-admin-email" id="correct-admin-email" class="button button-primary button-large" value="<?php esc_attr_e( 'The email is correct' ); ?>" />
594
+ </div>
595
+ <?php if ( $remind_interval > 0 ) : ?>
596
+ <div class="admin-email__actions-secondary">
597
+ <?php
598
+
599
+ $remind_me_link = wp_login_url( $redirect_to );
600
+ $remind_me_link = add_query_arg(
601
+ array(
602
+ 'action' => 'confirm_admin_email',
603
+ 'remind_me_later' => wp_create_nonce( 'remind_me_later_nonce' ),
604
+ ),
605
+ $remind_me_link
606
+ );
607
+
608
+ ?>
609
+ <a href="<?php echo esc_url( $remind_me_link ); ?>"><?php _e( 'Remind me later' ); ?></a>
610
+ </div>
611
+ <?php endif; ?>
612
+ </div>
613
+ </form>
614
+
615
+ <?php
616
+
617
+ login_footer();
618
+ break;
619
+
620
  case 'postpass':
621
  if ( ! array_key_exists( 'post_password', $_POST ) ) {
622
  wp_safe_redirect( wp_get_referer() );
623
+ exit;
624
  }
625
 
626
  require_once ABSPATH . WPINC . '/class-phpass.php';
638
  */
639
  $expire = apply_filters( 'post_password_expires', time() + 10 * DAY_IN_SECONDS );
640
  $referer = wp_get_referer();
641
+
642
  if ( $referer ) {
643
  $secure = ( 'https' === parse_url( $referer, PHP_URL_SCHEME ) );
644
  } else {
645
  $secure = false;
646
  }
647
+
648
  setcookie( 'wp-postpass_' . COOKIEHASH, $hasher->HashPassword( wp_unslash( $_POST['post_password'] ) ), $expire, COOKIEPATH, COOKIE_DOMAIN, $secure );
649
 
650
  wp_safe_redirect( wp_get_referer() );
651
+ exit;
652
 
653
  case 'logout':
654
  check_admin_referer( 'log-out' );
658
  wp_logout();
659
 
660
  if ( ! empty( $_REQUEST['redirect_to'] ) ) {
661
+ $redirect_to = $_REQUEST['redirect_to'];
662
+ $requested_redirect_to = $redirect_to;
663
  } else {
664
+ $redirect_to = add_query_arg(
665
+ array(
666
+ 'loggedout' => 'true',
667
+ 'wp_lang' => get_user_locale( $user ),
668
+ ),
669
+ wp_login_url()
670
+ );
671
+
672
  $requested_redirect_to = '';
673
  }
674
 
682
  * @param WP_User $user The WP_User object for the user that's logging out.
683
  */
684
  $redirect_to = apply_filters( 'logout_redirect', $redirect_to, $requested_redirect_to, $user );
685
+
686
  wp_safe_redirect( $redirect_to );
687
+ exit;
688
 
689
  case 'lostpassword':
690
  case 'retrievepassword':
691
  if ( $http_post ) {
692
  $errors = retrieve_password();
693
+
694
  if ( ! is_wp_error( $errors ) ) {
695
  $redirect_to = ! empty( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : 'wp-login.php?checkemail=confirm';
696
  wp_safe_redirect( $redirect_to );
697
+ exit;
698
  }
699
  }
700
 
701
  if ( isset( $_GET['error'] ) ) {
702
+ if ( 'invalidkey' === $_GET['error'] ) {
703
  $errors->add( 'invalidkey', __( 'Your password reset link appears to be invalid. Please request a new link below.' ) );
704
+ } elseif ( 'expiredkey' === $_GET['error'] ) {
705
  $errors->add( 'expiredkey', __( 'Your password reset link has expired. Please request a new link below.' ) );
706
  }
707
  }
727
  */
728
  do_action( 'lost_password', $errors );
729
 
730
+ login_header( __( 'Lost Password' ), '<p class="message">' . __( 'Please enter your username or email address. You will receive an email message with instructions on how to reset your password.' ) . '</p>', $errors );
731
 
732
  $user_login = '';
733
 
737
 
738
  ?>
739
 
740
+ <form name="lostpasswordform" id="lostpasswordform" action="<?php echo esc_url( network_site_url( 'wp-login.php?action=lostpassword', 'login_post' ) ); ?>" method="post">
741
+ <p>
742
+ <label for="user_login"><?php _e( 'Username or Email Address' ); ?></label>
743
+ <input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr( $user_login ); ?>" size="20" autocapitalize="off" />
744
+ </p>
745
+ <?php
 
 
 
 
 
 
 
 
 
 
746
 
747
+ /**
748
+ * Fires inside the lostpassword form tags, before the hidden fields.
749
+ *
750
+ * @since 2.1.0
751
+ */
752
+ do_action( 'lostpassword_form' );
753
+
754
+ ?>
755
+ <input type="hidden" name="redirect_to" value="<?php echo esc_attr( $redirect_to ); ?>" />
756
+ <p class="submit">
757
+ <input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e( 'Get New Password' ); ?>" />
758
+ </p>
759
+ </form>
760
+
761
+ <p id="nav">
762
+ <a href="<?php echo esc_url( wp_login_url() ); ?>"><?php _e( 'Log in' ); ?></a>
763
+ <?php
764
 
765
+ if ( get_option( 'users_can_register' ) ) {
766
+ $registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) );
767
 
768
+ echo esc_html( $login_link_separator );
 
 
 
 
769
 
770
+ /** This filter is documented in wp-includes/general-template.php */
771
+ echo apply_filters( 'register', $registration_url );
772
+ }
773
+
774
+ ?>
775
+ </p>
776
  <?php
 
777
 
778
+ login_footer( 'user_login' );
779
  break;
780
 
781
  case 'resetpass':
782
  case 'rp':
783
  list( $rp_path ) = explode( '?', wp_unslash( $_SERVER['REQUEST_URI'] ) );
784
  $rp_cookie = 'wp-resetpass-' . COOKIEHASH;
785
+
786
  if ( isset( $_GET['key'] ) ) {
787
  $value = sprintf( '%s:%s', wp_unslash( $_GET['login'] ), wp_unslash( $_GET['key'] ) );
788
  setcookie( $rp_cookie, $value, 0, $rp_path, COOKIE_DOMAIN, is_ssl(), true );
789
+
790
  wp_safe_redirect( remove_query_arg( array( 'key', 'login' ) ) );
791
  exit;
792
  }
793
 
794
  if ( isset( $_COOKIE[ $rp_cookie ] ) && 0 < strpos( $_COOKIE[ $rp_cookie ], ':' ) ) {
795
  list( $rp_login, $rp_key ) = explode( ':', wp_unslash( $_COOKIE[ $rp_cookie ] ), 2 );
796
+
797
+ $user = check_password_reset_key( $rp_key, $rp_login );
798
+
799
  if ( isset( $_POST['pass1'] ) && ! hash_equals( $rp_key, $_POST['rp_key'] ) ) {
800
  $user = false;
801
  }
805
 
806
  if ( ! $user || is_wp_error( $user ) ) {
807
  setcookie( $rp_cookie, ' ', time() - YEAR_IN_SECONDS, $rp_path, COOKIE_DOMAIN, is_ssl(), true );
808
+
809
  if ( $user && $user->get_error_code() === 'expired_key' ) {
810
  wp_redirect( site_url( 'wp-login.php?action=lostpassword&error=expiredkey' ) );
811
  } else {
812
  wp_redirect( site_url( 'wp-login.php?action=lostpassword&error=invalidkey' ) );
813
  }
814
+
815
  exit;
816
  }
817
 
818
  $errors = new WP_Error();
819
 
820
+ if ( isset( $_POST['pass1'] ) && $_POST['pass1'] !== $_POST['pass2'] ) {
821
  $errors->add( 'password_reset_mismatch', __( 'The passwords do not match.' ) );
822
  }
823
 
826
  *
827
  * @since 3.5.0
828
  *
829
+ * @param WP_Error $errors WP Error object.
830
  * @param WP_User|WP_Error $user WP_User object if the login and reset key match. WP_Error object otherwise.
831
  */
832
  do_action( 'validate_password_reset', $errors, $user );
845
  login_header( __( 'Reset Password' ), '<p class="message reset-pass">' . __( 'Enter your new password below.' ) . '</p>', $errors );
846
 
847
  ?>
848
+ <form name="resetpassform" id="resetpassform" action="<?php echo esc_url( network_site_url( 'wp-login.php?action=resetpass', 'login_post' ) ); ?>" method="post" autocomplete="off">
849
+ <input type="hidden" id="user_login" value="<?php echo esc_attr( $rp_login ); ?>" autocomplete="off" />
850
 
851
+ <div class="user-pass1-wrap">
852
+ <p>
853
+ <label for="pass1"><?php _e( 'New password' ); ?></label>
854
+ </p>
855
 
856
+ <div class="wp-pwd">
857
+ <input type="password" data-reveal="1" data-pw="<?php echo esc_attr( wp_generate_password( 16 ) ); ?>" name="pass1" id="pass1" class="input password-input" size="24" value="" autocomplete="off" aria-describedby="pass-strength-result" />
858
+
859
+ <button type="button" class="button button-secondary wp-hide-pw hide-if-no-js" data-toggle="0" aria-label="<?php esc_attr_e( 'Hide password' ); ?>">
860
+ <span class="dashicons dashicons-hidden" aria-hidden="true"></span>
861
+ </button>
862
+ <div id="pass-strength-result" class="hide-if-no-js" aria-live="polite"><?php _e( 'Strength indicator' ); ?></div>
863
+ </div>
864
+ <div class="pw-weak">
865
+ <input type="checkbox" name="pw_weak" id="pw-weak" class="pw-checkbox" />
866
+ <label for="pw-weak"><?php _e( 'Confirm use of weak password' ); ?></label>
867
+ </div>
868
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
869
 
870
+ <p class="user-pass2-wrap">
871
+ <label for="pass2"><?php _e( 'Confirm new password' ); ?></label>
872
+ <input type="password" name="pass2" id="pass2" class="input" size="20" value="" autocomplete="off" />
873
+ </p>
 
 
 
 
 
 
 
 
 
874
 
875
+ <p class="description indicator-hint"><?php echo wp_get_password_hint(); ?></p>
876
+ <br class="clear" />
 
 
 
877
 
878
+ <?php
879
 
880
+ /**
881
+ * Fires following the 'Strength indicator' meter in the user password reset form.
882
+ *
883
+ * @since 3.9.0
884
+ *
885
+ * @param WP_User $user User object of the user whose password is being reset.
886
+ */
887
+ do_action( 'resetpass_form', $user );
888
 
889
+ ?>
890
+ <input type="hidden" name="rp_key" value="<?php echo esc_attr( $rp_key ); ?>" />
891
+ <p class="submit">
892
+ <input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e( 'Reset Password' ); ?>" />
893
+ </p>
894
+ </form>
895
+
896
+ <p id="nav">
897
+ <a href="<?php echo esc_url( wp_login_url() ); ?>"><?php _e( 'Log in' ); ?></a>
898
+ <?php
899
+
900
+ if ( get_option( 'users_can_register' ) ) {
901
+ $registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) );
902
+
903
+ echo esc_html( $login_link_separator );
904
+
905
+ /** This filter is documented in wp-includes/general-template.php */
906
+ echo apply_filters( 'register', $registration_url );
907
+ }
908
+
909
+ ?>
910
+ </p>
911
  <?php
 
912
 
913
+ login_footer( 'user_pass' );
914
  break;
915
 
916
  case 'register':
928
 
929
  if ( ! get_option( 'users_can_register' ) ) {
930
  wp_redirect( site_url( 'wp-login.php?registration=disabled' ) );
931
+ exit;
932
  }
933
 
934
  $user_login = '';
936
 
937
  if ( $http_post ) {
938
  if ( isset( $_POST['user_login'] ) && is_string( $_POST['user_login'] ) ) {
939
+ $user_login = wp_unslash( $_POST['user_login'] );
940
  }
941
 
942
  if ( isset( $_POST['user_email'] ) && is_string( $_POST['user_email'] ) ) {
944
  }
945
 
946
  $errors = register_new_user( $user_login, $user_email );
947
+
948
  if ( ! is_wp_error( $errors ) ) {
949
  $redirect_to = ! empty( $_POST['redirect_to'] ) ? $_POST['redirect_to'] : 'wp-login.php?checkemail=registered';
950
  wp_safe_redirect( $redirect_to );
951
+ exit;
952
  }
953
  }
954
 
955
  $registration_redirect = ! empty( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : '';
956
+
957
  /**
958
  * Filters the registration redirect URL.
959
  *
962
  * @param string $registration_redirect The redirect destination URL.
963
  */
964
  $redirect_to = apply_filters( 'registration_redirect', $registration_redirect );
965
+
966
  login_header( __( 'Registration Form' ), '<p class="message register">' . __( 'Register For This Site' ) . '</p>', $errors );
967
+
968
  ?>
969
+ <form name="registerform" id="registerform" action="<?php echo esc_url( site_url( 'wp-login.php?action=register', 'login_post' ) ); ?>" method="post" novalidate="novalidate">
970
+ <p>
971
+ <label for="user_login"><?php _e( 'Username' ); ?></label>
972
+ <input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr( wp_unslash( $user_login ) ); ?>" size="20" autocapitalize="off" />
973
+ </p>
974
+ <p>
975
+ <label for="user_email"><?php _e( 'Email' ); ?></label>
976
+ <input type="email" name="user_email" id="user_email" class="input" value="<?php echo esc_attr( wp_unslash( $user_email ) ); ?>" size="25" />
977
+ </p>
978
+ <?php
979
+
980
+ /**
981
+ * Fires following the 'Email' field in the user registration form.
982
+ *
983
+ * @since 2.1.0
984
+ */
985
+ do_action( 'register_form' );
 
 
 
 
 
 
 
 
 
 
 
986
 
987
+ ?>
988
+ <p id="reg_passmail">
989
+ <?php _e( 'Registration confirmation will be emailed to you.' ); ?>
990
+ </p>
991
+ <br class="clear" />
992
+ <input type="hidden" name="redirect_to" value="<?php echo esc_attr( $redirect_to ); ?>" />
993
+ <p class="submit">
994
+ <input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e( 'Register' ); ?>" />
995
+ </p>
996
+ </form>
997
+
998
+ <p id="nav">
999
+ <a href="<?php echo esc_url( wp_login_url() ); ?>"><?php _e( 'Log in' ); ?></a>
1000
+ <?php echo esc_html( $login_link_separator ); ?>
1001
+ <a href="<?php echo esc_url( wp_lostpassword_url() ); ?>"><?php _e( 'Lost your password?' ); ?></a>
1002
+ </p>
1003
  <?php
1004
+
1005
  login_footer( 'user_login' );
1006
+ break;
1007
+
1008
+ case 'checkemail':
1009
+ $redirect_to = admin_url();
1010
+ $errors = new WP_Error();
1011
+
1012
+ if ( 'confirm' === $_GET['checkemail'] ) {
1013
+ $errors->add(
1014
+ 'confirm',
1015
+ sprintf(
1016
+ /* translators: %s: Link to the login page. */
1017
+ __( 'Check your email for the confirmation link, then visit the <a href="%s">login page</a>.' ),
1018
+ wp_login_url()
1019
+ ),
1020
+ 'message'
1021
+ );
1022
+ } elseif ( 'registered' === $_GET['checkemail'] ) {
1023
+ $errors->add(
1024
+ 'registered',
1025
+ sprintf(
1026
+ /* translators: %s: Link to the login page. */
1027
+ __( 'Registration complete. Please check your email, then visit the <a href="%s">login page</a>.' ),
1028
+ wp_login_url()
1029
+ ),
1030
+ 'message'
1031
+ );
1032
+ }
1033
+
1034
+ /** This action is documented in wp-login.php */
1035
+ $errors = apply_filters( 'wp_login_errors', $errors, $redirect_to );
1036
 
1037
+ login_header( __( 'Check your email' ), '', $errors );
1038
+ login_footer();
1039
  break;
1040
 
1041
  case 'confirmaction':
1080
  default:
1081
  $secure_cookie = '';
1082
  $customize_login = isset( $_REQUEST['customize-login'] );
1083
+
1084
  if ( $customize_login ) {
1085
  wp_enqueue_script( 'customize-base' );
1086
  }
1087
 
1088
  // If the user wants SSL but the session is not SSL, force a secure cookie.
1089
  if ( ! empty( $_POST['log'] ) && ! force_ssl_admin() ) {
1090
+ $user_name = sanitize_user( wp_unslash( $_POST['log'] ) );
1091
  $user = get_user_by( 'login', $user_name );
1092
 
1093
  if ( ! $user && strpos( $user_name, '@' ) ) {
1115
  $reauth = empty( $_REQUEST['reauth'] ) ? false : true;
1116
 
1117
  $user = wp_signon( array(), $secure_cookie );
 
1118
 
1119
  if ( empty( $_COOKIE[ LOGGED_IN_COOKIE ] ) ) {
1120
  if ( headers_sent() ) {
1121
  $user = new WP_Error(
1122
  'test_cookie',
1123
  sprintf(
1124
+ /* translators: 1: Browser cookie documentation URL, 2: Support forums URL. */
1125
+ __( '<strong>Error</strong>: Cookies are blocked due to unexpected output. For help, please see <a href="%1$s">this documentation</a> or try the <a href="%2$s">support forums</a>.' ),
1126
  __( 'https://wordpress.org/support/article/cookies/' ),
1127
+ __( 'https://wordpress.org/support/forums/' )
1128
  )
1129
  );
1130
  } elseif ( isset( $_POST['testcookie'] ) && empty( $_COOKIE[ TEST_COOKIE ] ) ) {
1131
+ // If cookies are disabled, we can't log in even with a valid user and password.
1132
  $user = new WP_Error(
1133
  'test_cookie',
1134
  sprintf(
1135
+ /* translators: %s: Browser cookie documentation URL. */
1136
+ __( '<strong>Error</strong>: Cookies are blocked or not supported by your browser. You must <a href="%s">enable cookies</a> to use WordPress.' ),
1137
  __( 'https://wordpress.org/support/article/cookies/#enable-cookies-in-your-browser' )
1138
  )
1139
  );
1157
  $message = '<p class="message">' . __( 'You have logged in successfully.' ) . '</p>';
1158
  $interim_login = 'success';
1159
  login_header( '', $message );
1160
+
1161
  ?>
1162
  </div>
1163
  <?php
1164
+
1165
  /** This action is documented in wp-login.php */
1166
  do_action( 'login_footer' );
1167
+
1168
+ if ( $customize_login ) {
1169
+ ?>
1170
+ <script type="text/javascript">setTimeout( function(){ new wp.customize.Messenger({ url: '<?php echo wp_customize_url(); ?>', channel: 'login' }).send('login') }, 1000 );</script>
1171
+ <?php
1172
+ }
1173
+
1174
  ?>
 
 
 
1175
  </body></html>
1176
  <?php
1177
+
1178
  exit;
1179
  }
1180
 
1181
+ // Check if it is time to add a redirect to the admin email confirmation screen.
1182
+ if ( is_a( $user, 'WP_User' ) && $user->exists() && $user->has_cap( 'manage_options' ) ) {
1183
+ $admin_email_lifespan = (int) get_option( 'admin_email_lifespan' );
1184
+
1185
+ // If `0` (or anything "falsey" as it is cast to int) is returned, the user will not be redirected
1186
+ // to the admin email confirmation screen.
1187
+ /** This filter is documented in wp-login.php */
1188
+ $admin_email_check_interval = (int) apply_filters( 'admin_email_check_interval', 6 * MONTH_IN_SECONDS );
1189
+
1190
+ if ( $admin_email_check_interval > 0 && time() > $admin_email_lifespan ) {
1191
+ $redirect_to = add_query_arg(
1192
+ array(
1193
+ 'action' => 'confirm_admin_email',
1194
+ 'wp_lang' => get_user_locale( $user ),
1195
+ ),
1196
+ wp_login_url( $redirect_to )
1197
+ );
1198
+ }
1199
+ }
1200
+
1201
+ if ( ( empty( $redirect_to ) || 'wp-admin/' === $redirect_to || admin_url() === $redirect_to ) ) {
1202
  // If the user doesn't belong to a blog, send them to user admin. If the user can't edit posts, send them to their profile.
1203
  if ( is_multisite() && ! get_active_blog_for_user( $user->ID ) && ! is_super_admin( $user->ID ) ) {
1204
  $redirect_to = user_admin_url();
1209
  }
1210
 
1211
  wp_redirect( $redirect_to );
1212
+ exit;
1213
  }
1214
+
1215
  wp_safe_redirect( $redirect_to );
1216
+ exit;
1217
  }
1218
 
1219
  $errors = $user;
1232
  }
1233
  } else {
1234
  // Some parts of this script use the main login form to display a message.
1235
+ if ( isset( $_GET['loggedout'] ) && $_GET['loggedout'] ) {
1236
  $errors->add( 'loggedout', __( 'You are now logged out.' ), 'message' );
1237
+ } elseif ( isset( $_GET['registration'] ) && 'disabled' === $_GET['registration'] ) {
1238
  $errors->add( 'registerdisabled', __( 'User registration is currently not allowed.' ) );
 
 
 
 
 
 
1239
  } elseif ( strpos( $redirect_to, 'about.php?updated' ) ) {
1240
  $errors->add( 'updated', __( '<strong>You have successfully updated WordPress!</strong> Please log back in to see what&#8217;s new.' ), 'message' );
1241
  } elseif ( WP_Recovery_Mode_Link_Service::LOGIN_ACTION_ENTERED === $action ) {
1242
  $errors->add( 'enter_recovery_mode', __( 'Recovery Mode Initialized. Please log in to continue.' ), 'message' );
1243
+ } elseif ( isset( $_GET['redirect_to'] ) && false !== strpos( $_GET['redirect_to'], 'wp-admin/authorize-application.php' ) ) {
1244
+ $query_component = wp_parse_url( $_GET['redirect_to'], PHP_URL_QUERY );
1245
+ parse_str( $query_component, $query );
1246
+
1247
+ if ( ! empty( $query['app_name'] ) ) {
1248
+ /* translators: 1: Website name, 2: Application name. */
1249
+ $message = sprintf( 'Please log in to %1$s to authorize %2$s to connect to your account.', get_bloginfo( 'name', 'display' ), '<strong>' . esc_html( $query['app_name'] ) . '</strong>' );
1250
+ } else {
1251
+ /* translators: %s: Website name. */
1252
+ $message = sprintf( 'Please log in to %s to proceed with authorization.', get_bloginfo( 'name', 'display' ) );
1253
+ }
1254
+
1255
+ $errors->add( 'authorize_application', $message, 'message' );
1256
  }
1257
  }
1258
 
1261
  *
1262
  * @since 3.6.0
1263
  *
1264
+ * @param WP_Error $errors WP Error object.
1265
+ * @param string $redirect_to Redirect destination URL.
1266
  */
1267
  $errors = apply_filters( 'wp_login_errors', $errors, $redirect_to );
1268
 
1274
  login_header( __( 'Log In' ), '', $errors );
1275
 
1276
  if ( isset( $_POST['log'] ) ) {
1277
+ $user_login = ( 'incorrect_password' === $errors->get_error_code() || 'empty_password' === $errors->get_error_code() ) ? esc_attr( wp_unslash( $_POST['log'] ) ) : '';
1278
  }
1279
+
1280
  $rememberme = ! empty( $_POST['rememberme'] );
1281
 
1282
  if ( $errors->has_errors() ) {
1284
  } else {
1285
  $aria_describedby_error = '';
1286
  }
 
 
 
 
 
 
 
 
 
 
1287
 
1288
+ wp_enqueue_script( 'user-profile' );
1289
+
1290
+ //aiowps - this check is necessary because otherwise if variables are undefined we get a warning!
1291
+ if(empty($user_login)){
1292
+ $user_login = '';
1293
+ }
1294
+ if(empty($error)){
1295
+ $error = '';
1296
+ }
 
 
 
 
 
 
 
1297
  ?>
1298
+
1299
+ <form name="loginform" id="loginform" action="<?php echo esc_url( site_url( 'wp-login.php', 'login_post' ) ); ?>" method="post">
1300
+ <p>
1301
+ <label for="user_login"><?php _e( 'Username or Email Address' ); ?></label>
1302
+ <input type="text" name="log" id="user_login"<?php echo $aria_describedby_error; ?> class="input" value="<?php echo esc_attr( $user_login ); ?>" size="20" autocapitalize="off" />
1303
+ </p>
1304
+
1305
+ <div class="user-pass-wrap">
1306
+ <label for="user_pass"><?php _e( 'Password' ); ?></label>
1307
+ <div class="wp-pwd">
1308
+ <input type="password" name="pwd" id="user_pass"<?php echo $aria_describedby_error; ?> class="input password-input" value="" size="20" />
1309
+ <button type="button" class="button button-secondary wp-hide-pw hide-if-no-js" data-toggle="0" aria-label="<?php esc_attr_e( 'Show password' ); ?>">
1310
+ <span class="dashicons dashicons-visibility" aria-hidden="true"></span>
1311
+ </button>
1312
+ </div>
1313
+ </div>
 
1314
  <?php
1315
+
1316
+ /**
1317
+ * Fires following the 'Password' field in the login form.
1318
+ *
1319
+ * @since 2.1.0
1320
+ */
1321
+ do_action( 'login_form' );
1322
+
1323
+ ?>
1324
+ <p class="forgetmenot"><input name="rememberme" type="checkbox" id="rememberme" value="forever" <?php checked( $rememberme ); ?> /> <label for="rememberme"><?php esc_html_e( 'Remember Me' ); ?></label></p>
1325
+ <p class="submit">
1326
+ <input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e( 'Log In' ); ?>" />
1327
+ <?php
1328
+
1329
+ if ( $interim_login ) {
1330
+ ?>
1331
+ <input type="hidden" name="interim-login" value="1" />
1332
+ <?php
1333
+ } else {
1334
+ ?>
1335
+ <input type="hidden" name="redirect_to" value="<?php echo esc_attr( $redirect_to ); ?>" />
1336
+ <?php
1337
+ }
1338
+
1339
+ if ( $customize_login ) {
1340
+ ?>
1341
+ <input type="hidden" name="customize-login" value="1" />
1342
+ <?php
1343
+ }
1344
+
1345
+ ?>
1346
+ <input type="hidden" name="testcookie" value="1" />
1347
+ </p>
1348
+ </form>
1349
+
1350
+ <?php
1351
+
1352
+ if ( ! $interim_login ) {
1353
+ ?>
1354
+ <p id="nav">
1355
+ <?php
1356
+
1357
+ if ( get_option( 'users_can_register' ) ) {
1358
  $registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url() ), __( 'Register' ) );
1359
 
1360
  /** This filter is documented in wp-includes/general-template.php */
1361
  echo apply_filters( 'register', $registration_url );
1362
 
1363
  echo esc_html( $login_link_separator );
1364
+ }
1365
+
1366
  ?>
1367
+ <a href="<?php echo esc_url( wp_lostpassword_url() ); ?>"><?php _e( 'Lost your password?' ); ?></a>
1368
+ </p>
1369
+ <?php
1370
+ }
1371
 
1372
+ $login_script = 'function wp_attempt_focus() {';
1373
+ $login_script .= 'setTimeout( function() {';
1374
+ $login_script .= 'try {';
1375
+
1376
+ if ( $user_login ) {
1377
+ $login_script .= 'd = document.getElementById( "user_pass" ); d.value = "";';
1378
+ } else {
1379
+ $login_script .= 'd = document.getElementById( "user_login" );';
1380
+
1381
+ if ( $errors->get_error_code() === 'invalid_username' ) {
1382
+ $login_script .= 'd.value = "";';
 
1383
  }
1384
+ }
1385
+
1386
+ $login_script .= 'd.focus(); d.select();';
1387
+ $login_script .= '} catch( er ) {}';
1388
+ $login_script .= '}, 200);';
1389
+ $login_script .= "}\n"; // End of wp_attempt_focus().
 
1390
 
 
1391
  /**
1392
  * Filters whether to print the call to `wp_attempt_focus()` on the login screen.
1393
  *
1396
  * @param bool $print Whether to print the function call. Default true.
1397
  */
1398
  if ( apply_filters( 'enable_login_autofocus', true ) && ! $error ) {
1399
+ $login_script .= "wp_attempt_focus();\n";
 
 
 
 
 
 
 
 
 
 
1400
  }
 
 
 
 
1401
 
1402
+ // Run `wpOnload()` if defined.
1403
+ $login_script .= "if ( typeof wpOnload === 'function' ) { wpOnload() }";
1404
+
1405
+ ?>
1406
+ <script type="text/javascript">
1407
+ <?php echo $login_script; ?>
1408
+ </script>
1409
  <?php
 
1410
 
1411
+ if ( $interim_login ) {
1412
+ ?>
1413
+ <script type="text/javascript">
1414
+ ( function() {
1415
+ try {
1416
+ var i, links = document.getElementsByTagName( 'a' );
1417
+ for ( i in links ) {
1418
+ if ( links[i].href ) {
1419
+ links[i].target = '_blank';
1420
+ links[i].rel = 'noopener';
1421
+ }
1422
+ }
1423
+ } catch( er ) {}
1424
+ }());
1425
+ </script>
1426
+ <?php
1427
+ }
1428
+
1429
+ login_footer();
1430
  break;
1431
  } // End action switch.
readme.txt CHANGED
@@ -2,9 +2,9 @@
2
  Contributors: Tips and Tricks HQ, wpsolutions, Peter Petreski, Ruhul Amin, mbrsolution
3
  Donate link: https://www.tipsandtricks-hq.com
4
  Tags: security, secure, Anti Virus, antivirus, ban, ban hacker, virus, firewall, firewall security, login, lockdown, htaccess, hack, malware, vulnerability, protect, protection, phishing, database, backup, plugin, sql injection, ssl, restrict, login captcha, bot, hotlink, 404 detection, admin, rename, all in one, scan, scanner, iframe,
5
- Requires at least: 4.7
6
- Tested up to: 5.5
7
- Stable tag: 4.4.4
8
  License: GPLv3
9
 
10
  A comprehensive, user-friendly, all in one WordPress security and firewall plugin for your site.
@@ -184,6 +184,25 @@ None
184
 
185
  == Changelog ==
186
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
187
  = 4.4.4 =
188
  - Fixed bugs and improved functionality related to "logged in users" functionality.
189
  - Google recaptha checks for WooCommerce product reviews
2
  Contributors: Tips and Tricks HQ, wpsolutions, Peter Petreski, Ruhul Amin, mbrsolution
3
  Donate link: https://www.tipsandtricks-hq.com
4
  Tags: security, secure, Anti Virus, antivirus, ban, ban hacker, virus, firewall, firewall security, login, lockdown, htaccess, hack, malware, vulnerability, protect, protection, phishing, database, backup, plugin, sql injection, ssl, restrict, login captcha, bot, hotlink, 404 detection, admin, rename, all in one, scan, scanner, iframe,
5
+ Requires at least: 5.0
6
+ Tested up to: 5.7
7
+ Stable tag: 4.4.8
8
  License: GPLv3
9
 
10
  A comprehensive, user-friendly, all in one WordPress security and firewall plugin for your site.
184
 
185
  == Changelog ==
186
 
187
+ = 4.4.8 =
188
+ - Fixed an issue with the rename login page feature on WordPress v5.7.
189
+
190
+ = 4.4.7 =
191
+ - Updated the renamed login page code to reflect the latest WordPress wp-login.php code.
192
+ - Cleaned up/improved repeated code.
193
+ - Translation string fix in the rename login feature.
194
+ - Added action hook "aiowps_site_lockout_settings_saved" that is triggered after the site lockout configuration is saved.
195
+ - Updated some queries to use $wpdb->prepare() or esc_sql() wherever possible.
196
+
197
+ = 4.4.6 =
198
+ - Fixed potential vulnerability with the Banned User Agents feature (in the blacklist menu). Thanks to WonTae Jang.
199
+
200
+ = 4.4.5 =
201
+ - Fixed default DateTime to prevent DB error.
202
+ - Added Korean language translation files. Thanks to Jonghyun Cho.
203
+ - Reworked the code for the "Generate New DB Table Prefix" feature to make it more robust. Thanks to @baddiedev.
204
+ - Added translation ability to some strings.
205
+
206
  = 4.4.4 =
207
  - Fixed bugs and improved functionality related to "logged in users" functionality.
208
  - Google recaptha checks for WooCommerce product reviews
wp-security-core.php CHANGED
@@ -7,7 +7,7 @@ if ( !defined('ABSPATH') ) {
7
  if (!class_exists('AIO_WP_Security')){
8
 
9
  class AIO_WP_Security{
10
- var $version = '4.4.4';
11
  var $db_version = '1.9';
12
  var $plugin_url;
13
  var $plugin_path;
7
  if (!class_exists('AIO_WP_Security')){
8
 
9
  class AIO_WP_Security{
10
+ var $version = '4.4.8';
11
  var $db_version = '1.9';
12
  var $plugin_url;
13
  var $plugin_path;
wp-security.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  Plugin Name: All In One WP Security
4
- Version: 4.4.4
5
  Plugin URI: https://www.tipsandtricks-hq.com/wordpress-security-and-firewall-plugin
6
  Author: Tips and Tricks HQ, Peter Petreski, Ruhul, Ivy
7
  Author URI: https://www.tipsandtricks-hq.com/
1
  <?php
2
  /*
3
  Plugin Name: All In One WP Security
4
+ Version: 4.4.8
5
  Plugin URI: https://www.tipsandtricks-hq.com/wordpress-security-and-firewall-plugin
6
  Author: Tips and Tricks HQ, Peter Petreski, Ruhul, Ivy
7
  Author URI: https://www.tipsandtricks-hq.com/