All In One WP Security & Firewall - Version 2.8

Version Description

  • Added a feature to insert a simple math captcha to the WordPress comment form (to reduce comment spam). Check the spam prevention menu for this new feature.
  • Fixed a minor bug with bulk unlock/delete in user login menu
  • Fixed a minor bug with math captcha logic.
Download this release

Release Info

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

Code changes from version 2.7 to 2.8

admin/wp-security-spam-menu.php CHANGED
@@ -69,13 +69,14 @@ class AIOWPSecurity_Spam_Menu extends AIOWPSecurity_Admin_Menu
69
  if(isset($_POST['aiowps_apply_comment_spam_prevention_settings']))//Do form submission tasks
70
  {
71
  $nonce=$_REQUEST['_wpnonce'];
72
- if (!wp_verify_nonce($nonce, 'aiowpsec-block-spambots-nonce'))
73
  {
74
- $aio_wp_security->debug_logger->log_debug("Nonce check failed on enable basic firewall settings!",4);
75
- die("Nonce check failed on enable basic firewall settings!");
76
  }
77
 
78
  //Save settings
 
79
  $aio_wp_security->configs->set_value('aiowps_enable_spambot_blocking',isset($_POST["aiowps_enable_spambot_blocking"])?'1':'');
80
 
81
  //Commit the config settings
@@ -100,19 +101,50 @@ class AIOWPSecurity_Spam_Menu extends AIOWPSecurity_Admin_Menu
100
  ?>
101
  <h2><?php _e('Comment SPAM Settings', 'aiowpsecurity')?></h2>
102
  <form action="" method="POST">
103
- <?php wp_nonce_field('aiowpsec-block-spambots-nonce'); ?>
104
 
 
 
 
105
  <div class="aio_blue_box">
106
  <?php
107
- echo '<p>'.__('A large portion of WordPress blog comment SPAM is mainly produced by automated bots and not necessarily by humans. ', 'aiowpsecurity').
108
- '<br />'.__('This feature will greatly minimize the useless and unecessary traffic and load on your server resulting from SPAM comments by blocking all comment requests which do not originate from your domain.', 'aiowpsecurity').
109
- '<br />In other words, if the comment was not submitted by a human who physically submitted the comment on your site, the request will be blocked.</p>';
110
  ?>
111
  </div>
112
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
113
  <div class="postbox">
114
  <h3><label for="title"><?php _e('Block Spambot Comments', 'aiowpsecurity'); ?></label></h3>
115
  <div class="inside">
 
 
 
 
 
 
 
116
  <?php
117
  //Display security info badge
118
  $aiowps_feature_mgr->output_feature_details_badge("block-spambots");
69
  if(isset($_POST['aiowps_apply_comment_spam_prevention_settings']))//Do form submission tasks
70
  {
71
  $nonce=$_REQUEST['_wpnonce'];
72
+ if (!wp_verify_nonce($nonce, 'aiowpsec-comment-spam-settings-nonce'))
73
  {
74
+ $aio_wp_security->debug_logger->log_debug("Nonce check failed on save comment spam settings!",4);
75
+ die("Nonce check failed on save comment spam settings!");
76
  }
77
 
78
  //Save settings
79
+ $aio_wp_security->configs->set_value('aiowps_enable_comment_captcha',isset($_POST["aiowps_enable_comment_captcha"])?'1':'');
80
  $aio_wp_security->configs->set_value('aiowps_enable_spambot_blocking',isset($_POST["aiowps_enable_spambot_blocking"])?'1':'');
81
 
82
  //Commit the config settings
101
  ?>
102
  <h2><?php _e('Comment SPAM Settings', 'aiowpsecurity')?></h2>
103
  <form action="" method="POST">
104
+ <?php wp_nonce_field('aiowpsec-comment-spam-settings-nonce'); ?>
105
 
106
+ <div class="postbox">
107
+ <h3><label for="title"><?php _e('Add Captcha To Comments Form', 'aiowpsecurity'); ?></label></h3>
108
+ <div class="inside">
109
  <div class="aio_blue_box">
110
  <?php
111
+ echo '<p>'.__('This feature will add a simple math captcha field in the WordPress comments form.', 'aiowpsecurity').
112
+ '<br />Adding a captcha field in the comment form is a simple way of greatly reducing SPAM comments from bots without using .htaccess rules.</p>';
 
113
  ?>
114
  </div>
115
+ <?php
116
+ //Display security info badge
117
+ $aiowps_feature_mgr->output_feature_details_badge("comment-form-captcha");
118
+ if (AIOWPSecurity_Utility::is_multisite_install() && get_current_blog_id() != 1)
119
+ {
120
+ //Hide config settings if MS and not main site
121
+ AIOWPSecurity_Utility::display_multisite_message();
122
+ }
123
+ else
124
+ {
125
+ ?>
126
+ <table class="form-table">
127
+ <tr valign="top">
128
+ <th scope="row"><?php _e('Enable Captcha On Comment Forms', 'aiowpsecurity')?>:</th>
129
+ <td>
130
+ <input name="aiowps_enable_comment_captcha" type="checkbox"<?php if($aio_wp_security->configs->get_value('aiowps_enable_comment_captcha')=='1') echo ' checked="checked"'; ?> value="1"/>
131
+ <span class="description"><?php _e('Check this if you want to insert a captcha field on the comment forms', 'aiowpsecurity'); ?></span>
132
+ </td>
133
+ </tr>
134
+ </table>
135
+ <?php } //End if statement ?>
136
+ </div></div>
137
+
138
  <div class="postbox">
139
  <h3><label for="title"><?php _e('Block Spambot Comments', 'aiowpsecurity'); ?></label></h3>
140
  <div class="inside">
141
+ <div class="aio_blue_box">
142
+ <?php
143
+ echo '<p>'.__('A large portion of WordPress blog comment SPAM is mainly produced by automated bots and not necessarily by humans. ', 'aiowpsecurity').
144
+ '<br />'.__('This feature will greatly minimize the useless and unecessary traffic and load on your server resulting from SPAM comments by blocking all comment requests which do not originate from your domain.', 'aiowpsecurity').
145
+ '<br />In other words, if the comment was not submitted by a human who physically submitted the comment on your site, the request will be blocked.</p>';
146
+ ?>
147
+ </div>
148
  <?php
149
  //Display security info badge
150
  $aiowps_feature_mgr->output_feature_details_badge("block-spambots");
admin/wp-security-user-login-menu.php CHANGED
@@ -238,7 +238,12 @@ class AIOWPSecurity_User_Login_Menu extends AIOWPSecurity_Admin_Menu
238
  <form id="tables-filter" method="get" onSubmit="return confirm('Are you sure you want to perform this bulk operation on the selected entries?');">
239
  <!-- For plugins, we also need to ensure that the form posts back to our current page -->
240
  <input type="hidden" name="page" value="<?php echo $_REQUEST['page']; ?>" />
241
- <input type="hidden" name="tab" value="<?php echo $_REQUEST['tab']; ?>" />
 
 
 
 
 
242
  <!-- Now we can render the completed list table -->
243
  <?php $locked_ip_list->display(); ?>
244
  </form>
@@ -661,7 +666,7 @@ class AIOWPSecurity_User_Login_Menu extends AIOWPSecurity_Admin_Menu
661
  <div class="aio_blue_box">
662
  <?php
663
  echo '<p>'.__('This tab displays all users who are currently logged into your site.', 'aiowpsecurity').'
664
- <br />'.__('If you suspect there is a user or users who are logged in which should not be, you can block them by inspecting the IP addresses from the data below and adding them to your whitelist.', 'aiowpsecurity').'
665
  </p>';
666
  ?>
667
  </div>
238
  <form id="tables-filter" method="get" onSubmit="return confirm('Are you sure you want to perform this bulk operation on the selected entries?');">
239
  <!-- For plugins, we also need to ensure that the form posts back to our current page -->
240
  <input type="hidden" name="page" value="<?php echo $_REQUEST['page']; ?>" />
241
+ <?php
242
+ if(isset($_REQUEST["tab"]))
243
+ {
244
+ echo '<input type="hidden" name="tab" value="'.$_REQUEST["tab"].'" />';
245
+ }
246
+ ?>
247
  <!-- Now we can render the completed list table -->
248
  <?php $locked_ip_list->display(); ?>
249
  </form>
666
  <div class="aio_blue_box">
667
  <?php
668
  echo '<p>'.__('This tab displays all users who are currently logged into your site.', 'aiowpsecurity').'
669
+ <br />'.__('If you suspect there is a user or users who are logged in which should not be, you can block them by inspecting the IP addresses from the data below and adding them to your blacklist.', 'aiowpsecurity').'
670
  </p>';
671
  ?>
672
  </div>
classes/grade-system/wp-security-feature-item-manager.php CHANGED
@@ -78,6 +78,8 @@ class AIOWPSecurity_Feature_Item_Manager
78
 
79
  //SPAM Prevention
80
  $this->feature_items[] = new AIOWPSecurity_Feature_Item("block-spambots", "Block Spambots", $this->feature_point_2, $this->sec_level_basic);
 
 
81
 
82
  //Filescan
83
  //File change detection
@@ -160,6 +162,10 @@ class AIOWPSecurity_Feature_Item_Manager
160
  {
161
  $this->check_login_captcha_feature($item);
162
  }
 
 
 
 
163
  if($item->feature_id == "whitelist-manager-ip-login-whitelisting")
164
  {
165
  $this->check_login_whitelist_feature($item);
@@ -323,6 +329,18 @@ class AIOWPSecurity_Feature_Item_Manager
323
  }
324
  }
325
 
 
 
 
 
 
 
 
 
 
 
 
 
326
  function check_login_whitelist_feature($item)
327
  {
328
  global $aio_wp_security;
78
 
79
  //SPAM Prevention
80
  $this->feature_items[] = new AIOWPSecurity_Feature_Item("block-spambots", "Block Spambots", $this->feature_point_2, $this->sec_level_basic);
81
+ //Comment Captcha
82
+ $this->feature_items[] = new AIOWPSecurity_Feature_Item("comment-form-captcha", "Comment Captcha", $this->feature_point_4, $this->sec_level_basic);
83
 
84
  //Filescan
85
  //File change detection
162
  {
163
  $this->check_login_captcha_feature($item);
164
  }
165
+ if($item->feature_id == "comment-form-captcha")
166
+ {
167
+ $this->check_comment_captcha_feature($item);
168
+ }
169
  if($item->feature_id == "whitelist-manager-ip-login-whitelisting")
170
  {
171
  $this->check_login_whitelist_feature($item);
329
  }
330
  }
331
 
332
+ function check_comment_captcha_feature($item)
333
+ {
334
+ global $aio_wp_security;
335
+ if ($aio_wp_security->configs->get_value('aiowps_enable_comment_captcha') == '1') {
336
+ $item->set_feature_status($this->feature_active);
337
+ }
338
+ else
339
+ {
340
+ $item->set_feature_status($this->feature_inactive);
341
+ }
342
+ }
343
+
344
  function check_login_whitelist_feature($item)
345
  {
346
  global $aio_wp_security;
classes/wp-security-captcha.php CHANGED
@@ -25,16 +25,23 @@ class AIOWPSecurity_Captcha
25
  $operand_display = array('word', 'number');
26
 
27
  //let's now generate an equation
28
- $first_digit = rand(1,20);
 
 
 
 
 
 
 
 
 
 
29
  if($operand_display[rand(0,1)] == 'word'){
30
  $first_operand = $this->number_word_mapping($first_digit);
31
  }else{
32
  $first_operand = $first_digit;
33
  }
34
 
35
- $operator = $operator_type[rand(0,2)];
36
-
37
- $second_digit = rand(1,20);
38
  if($operand_display[rand(0,1)] == 'word'){
39
  $second_operand = $this->number_word_mapping($second_digit);
40
  }else{
25
  $operand_display = array('word', 'number');
26
 
27
  //let's now generate an equation
28
+ $operator = $operator_type[rand(0,2)];
29
+
30
+ if($operator === '&#215;'){
31
+ //Don't make the question too hard if multiplication
32
+ $first_digit = rand(1,5);
33
+ $second_digit = rand(1,5);
34
+ }else{
35
+ $first_digit = rand(1,20);
36
+ $second_digit = rand(1,20);
37
+ }
38
+
39
  if($operand_display[rand(0,1)] == 'word'){
40
  $first_operand = $this->number_word_mapping($first_digit);
41
  }else{
42
  $first_operand = $first_digit;
43
  }
44
 
 
 
 
45
  if($operand_display[rand(0,1)] == 'word'){
46
  $second_operand = $this->number_word_mapping($second_digit);
47
  }else{
classes/wp-security-configure-settings.php CHANGED
@@ -76,6 +76,7 @@ class AIOWPSecurity_Configure_Settings
76
 
77
  //SPAM Prevention menu
78
  $aio_wp_security->configs->set_value('aiowps_enable_spambot_blocking','');//Checkbox
 
79
 
80
  //Filescan features
81
  //File change detection feature
@@ -166,7 +167,8 @@ class AIOWPSecurity_Configure_Settings
166
 
167
  //SPAM Prevention menu
168
  $aio_wp_security->configs->add_value('aiowps_enable_spambot_blocking','');//Checkbox
169
-
 
170
  //Filescan features
171
  //File change detection feature
172
  $aio_wp_security->configs->add_value('aiowps_enable_automated_fcd_scan','');//Checkbox
@@ -208,6 +210,9 @@ class AIOWPSecurity_Configure_Settings
208
  $aio_wp_security->configs->set_value('aiowps_prevent_default_wp_file_access','');//Checkbox
209
 
210
  $aio_wp_security->configs->set_value('aiowps_enable_spambot_blocking','');//Checkbox
 
 
 
211
 
212
  $aio_wp_security->configs->save_config();
213
  }
76
 
77
  //SPAM Prevention menu
78
  $aio_wp_security->configs->set_value('aiowps_enable_spambot_blocking','');//Checkbox
79
+ $aio_wp_security->configs->set_value('aiowps_enable_comment_captcha','');//Checkbox
80
 
81
  //Filescan features
82
  //File change detection feature
167
 
168
  //SPAM Prevention menu
169
  $aio_wp_security->configs->add_value('aiowps_enable_spambot_blocking','');//Checkbox
170
+ $aio_wp_security->configs->add_value('aiowps_enable_comment_captcha','');//Checkbox
171
+
172
  //Filescan features
173
  //File change detection feature
174
  $aio_wp_security->configs->add_value('aiowps_enable_automated_fcd_scan','');//Checkbox
210
  $aio_wp_security->configs->set_value('aiowps_prevent_default_wp_file_access','');//Checkbox
211
 
212
  $aio_wp_security->configs->set_value('aiowps_enable_spambot_blocking','');//Checkbox
213
+ $aio_wp_security->configs->set_value('aiowps_enable_login_captcha','');//Checkbox
214
+ $aio_wp_security->configs->set_value('aiowps_enable_comment_captcha','');//Checkbox
215
+
216
 
217
  $aio_wp_security->configs->save_config();
218
  }
classes/wp-security-general-init-tasks.php CHANGED
@@ -26,11 +26,18 @@ class AIOWPSecurity_General_Init_Tasks
26
 
27
  //For login captcha feature
28
  if($aio_wp_security->configs->get_value('aiowps_enable_login_captcha') == '1'){
29
- if (!is_user_logged_in() && !current_user_can('administrator') && !is_admin() && in_array( $GLOBALS['pagenow'], array( 'wp-login.php'))) {
30
- add_action('login_form', array(&$this, 'insert_captcha_form_login_page'));
31
  }
32
  }
33
 
 
 
 
 
 
 
 
34
  //For feature which displays logged in users
35
  $this->update_logged_in_user_transient();
36
 
@@ -106,9 +113,42 @@ class AIOWPSecurity_General_Init_Tasks
106
  }
107
  }
108
 
109
- function insert_captcha_form_login_page(){
110
- if(is_admin()) return;
111
  global $aio_wp_security;
112
  $aio_wp_security->captcha_obj->display_captcha_form();
113
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
114
  }
26
 
27
  //For login captcha feature
28
  if($aio_wp_security->configs->get_value('aiowps_enable_login_captcha') == '1'){
29
+ if (!is_user_logged_in()) {
30
+ add_action('login_form', array(&$this, 'insert_captcha_question_form'));
31
  }
32
  }
33
 
34
+ //For comment captcha feature
35
+ if($aio_wp_security->configs->get_value('aiowps_enable_comment_captcha') == '1'){
36
+ add_action( 'comment_form_after_fields', array(&$this, 'insert_captcha_question_form'), 1 );
37
+ add_action( 'comment_form_logged_in_after', array(&$this, 'insert_captcha_question_form'), 1 );
38
+ add_filter( 'preprocess_comment', array(&$this, 'process_comment_post') );
39
+ }
40
+
41
  //For feature which displays logged in users
42
  $this->update_logged_in_user_transient();
43
 
113
  }
114
  }
115
 
116
+ function insert_captcha_question_form(){
 
117
  global $aio_wp_security;
118
  $aio_wp_security->captcha_obj->display_captcha_form();
119
  }
120
+
121
+ function process_comment_post( $comment )
122
+ {
123
+ if (is_user_logged_in()) {
124
+ return $comment;
125
+ }
126
+
127
+ //Don't process captcha for comment replies inside admin menu
128
+ if (isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'replyto-comment' &&
129
+ (check_ajax_referer('replyto-comment', '_ajax_nonce', false) || check_ajax_referer('replyto-comment', '_ajax_nonce-replyto-comment', false))) {
130
+ return $comment;
131
+ }
132
+
133
+ //Don't do captcha for pingback/trackback
134
+ if ($comment['comment_type'] != '' && $comment['comment_type'] != 'comment') {
135
+ return $comment;
136
+ }
137
+
138
+ if (isset($_REQUEST['aiowps-captcha-answer']))
139
+ {
140
+ // If answer is empty
141
+ if ($_REQUEST['aiowps-captcha-answer'] == ''){
142
+ wp_die( __('Please enter an answer in the CAPTCHA field.', 'aiowpsecurity' ) );
143
+ }
144
+
145
+ if ($_REQUEST['aiowps-captcha-answer'] === get_transient('aiowps_captcha')){
146
+ //Correct answer given
147
+ return($comment);
148
+ }else{
149
+ //Wrong answer
150
+ wp_die( __('Error: You entered an incorrect CAPTCHA answer. Please go back and try again.', 'aiowpsecurity'));
151
+ }
152
+ }
153
+ }
154
  }
classes/wp-security-user-login.php CHANGED
@@ -43,8 +43,10 @@ class AIOWPSecurity_User_Login
43
  //Check if captcha enabled
44
  if ($aio_wp_security->configs->get_value('aiowps_enable_login_captcha') == '1')
45
  {
46
- if(isset($_POST['aiowps-captcha-answer']) && $_POST['aiowps-captcha-answer'] !== ''){
47
- if(strip_tags(trim($_POST['aiowps-captcha-answer'])) !== get_transient('aiowps_captcha'))
 
 
48
  {
49
  //This means a wrong answer was entered
50
  $this->increment_failed_logins($username);
43
  //Check if captcha enabled
44
  if ($aio_wp_security->configs->get_value('aiowps_enable_login_captcha') == '1')
45
  {
46
+ if (array_key_exists('aiowps-captcha-answer', $_POST)) //If the login form with captcha was submitted then do some processing
47
+ {
48
+ isset($_POST['aiowps-captcha-answer'])?$captcha_answer = strip_tags(trim($_POST['aiowps-captcha-answer'])): $captcha_answer = '';
49
+ if($captcha_answer !== get_transient('aiowps_captcha'))
50
  {
51
  //This means a wrong answer was entered
52
  $this->increment_failed_logins($username);
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === All In One WP Security & Firewall ===
2
  Contributors: Tips and Tricks HQ, wpsolutions, Peter Petreski, Ruhul Amin
3
  Donate link: http://www.tipsandtricks-hq.com
4
- Tags: security, secure, Anti Virus, antivirus, ban, ban hacker, virus, firewall, login, lockdown, htaccess, hack, malware, vulnerability, protect, protection, phishing, database, backup, plugin, sql injection, ssl, restrict
5
  Requires at least: 3.5
6
  Tested up to: 3.6.1
7
- Stable tag: 2.7
8
  License: GPLv3
9
 
10
  A comprehensive, user-friendly, all in one WordPress security and firewall plugin for your site.
@@ -48,6 +48,7 @@ via email whenever somebody gets locked out due to too many login attempts.
48
  * Ability to automatically lockout IP address ranges which attempt to login with an invalid username.
49
  * Ability to see a list of all the users who are currently logged into your site.
50
  * Allows you to specify one or more IP addresses in a special whitelist. The whitelisted IP addresses will have access to your WP login page.
 
51
 
52
  = Database Security =
53
  * Easily the default WP prefix to a value of your choice with the click of a button.
@@ -95,6 +96,7 @@ or malicious bots who do not have a special cookie in their browser. You (the si
95
  = Comment SPAM Security =
96
  * Monitor the most active IP addresses which persistently produce the most SPAM comments and instantly block them with the click of a button.
97
  * Prevent comments from being submitted if it doesn't originate from your domain (this should reduce some SPAM bot comment posting on your site).
 
98
 
99
  = Regular updates and additions of new security features =
100
  * WordPress Security is something that evolves over time. We will be updating the All In One WP Security plugin with new security features (and fixes if required) on a regular basis so you can rest assured that your site will be on the cutting edge of security protection techniques.
@@ -132,7 +134,7 @@ Check the following page for screenshots:
132
  http://www.tipsandtricks-hq.com/wordpress-security-and-firewall-plugin
133
 
134
  == Frequently Asked Questions ==
135
- Check the following page for F.A.Q:
136
  http://www.tipsandtricks-hq.com/wordpress-security-and-firewall-plugin
137
 
138
  == Upgrade Notice ==
@@ -140,6 +142,11 @@ None
140
 
141
  == Changelog ==
142
 
 
 
 
 
 
143
  = 2.7 =
144
  - Added a simple math captcha functionality for the WP login page. This is another easy yet effective way to combat Brute Force Login Attacks. You can enable this new feature from the user login security menu.
145
 
1
  === All In One WP Security & Firewall ===
2
  Contributors: Tips and Tricks HQ, wpsolutions, Peter Petreski, Ruhul Amin
3
  Donate link: http://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
5
  Requires at least: 3.5
6
  Tested up to: 3.6.1
7
+ Stable tag: 2.8
8
  License: GPLv3
9
 
10
  A comprehensive, user-friendly, all in one WordPress security and firewall plugin for your site.
48
  * Ability to automatically lockout IP address ranges which attempt to login with an invalid username.
49
  * Ability to see a list of all the users who are currently logged into your site.
50
  * Allows you to specify one or more IP addresses in a special whitelist. The whitelisted IP addresses will have access to your WP login page.
51
+ * Add captcha to WordPress Login form
52
 
53
  = Database Security =
54
  * Easily the default WP prefix to a value of your choice with the click of a button.
96
  = Comment SPAM Security =
97
  * Monitor the most active IP addresses which persistently produce the most SPAM comments and instantly block them with the click of a button.
98
  * Prevent comments from being submitted if it doesn't originate from your domain (this should reduce some SPAM bot comment posting on your site).
99
+ * Add a captcha to your wordpress comment form to add security against comment spam.
100
 
101
  = Regular updates and additions of new security features =
102
  * WordPress Security is something that evolves over time. We will be updating the All In One WP Security plugin with new security features (and fixes if required) on a regular basis so you can rest assured that your site will be on the cutting edge of security protection techniques.
134
  http://www.tipsandtricks-hq.com/wordpress-security-and-firewall-plugin
135
 
136
  == Frequently Asked Questions ==
137
+ Check the following page for F.A.Q (see the faq section):
138
  http://www.tipsandtricks-hq.com/wordpress-security-and-firewall-plugin
139
 
140
  == Upgrade Notice ==
142
 
143
  == Changelog ==
144
 
145
+ = 2.8 =
146
+ - Added a feature to insert a simple math captcha to the WordPress comment form (to reduce comment spam). Check the spam prevention menu for this new feature.
147
+ - Fixed a minor bug with bulk unlock/delete in user login menu
148
+ - Fixed a minor bug with math captcha logic.
149
+
150
  = 2.7 =
151
  - Added a simple math captcha functionality for the WP login page. This is another easy yet effective way to combat Brute Force Login Attacks. You can enable this new feature from the user login security menu.
152
 
wp-security-core.php CHANGED
@@ -3,7 +3,7 @@
3
  if (!class_exists('AIO_WP_Security')){
4
 
5
  class AIO_WP_Security{
6
- var $version = '2.7';
7
  var $db_version = '1.3';
8
  var $plugin_url;
9
  var $plugin_path;
3
  if (!class_exists('AIO_WP_Security')){
4
 
5
  class AIO_WP_Security{
6
+ var $version = '2.8';
7
  var $db_version = '1.3';
8
  var $plugin_url;
9
  var $plugin_path;
wp-security.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  Plugin Name: All In One WP Security
4
- Version: v2.7
5
  Plugin URI: http://www.tipsandtricks-hq.com/
6
  Author: Tips and Tricks HQ, Peter, Ruhul Amin
7
  Author URI: http://www.tipsandtricks-hq.com/
1
  <?php
2
  /*
3
  Plugin Name: All In One WP Security
4
+ Version: v2.8
5
  Plugin URI: http://www.tipsandtricks-hq.com/
6
  Author: Tips and Tricks HQ, Peter, Ruhul Amin
7
  Author URI: http://www.tipsandtricks-hq.com/