Spam protection, AntiSpam, FireWall by CleanTalk - Version 5.40.3

Version Description

2016-05-26 = * Added option to encrypt (SSL) connection to CleanTalk anti-spam servers. * Added JSON encoding for AJAX forms. * Obfuscated private data for Custom contact forms option. * Optimized bulk users check for spam over blacklists database. * Fixed issue with lost connection to servers and JavaScript anti-spam test. * Fixed issue with WordFence and collect_details.

Download this release

Release Info

Developer shagimuratov
Plugin Icon 128x128 Spam protection, AntiSpam, FireWall by CleanTalk
Version 5.40.3
Comparing to
See all releases

Code changes from version 5.40.2 to 5.40.3

cleantalk.php CHANGED
@@ -3,12 +3,12 @@
3
  Plugin Name: Anti-Spam by CleanTalk
4
  Plugin URI: http://cleantalk.org
5
  Description: Max power, all-in-one, captcha less, premium anti-spam plugin. No comment spam, no registration spam, no contact spam, protects any WordPress forms.
6
- Version: 5.40.2
7
  Author: СleanTalk <welcome@cleantalk.org>
8
  Author URI: http://cleantalk.org
9
  */
10
- $cleantalk_plugin_version='5.40.2';
11
- $ct_agent_version = 'wordpress-5402';
12
  $cleantalk_executed=false;
13
  $ct_sfw_updated = false;
14
 
3
  Plugin Name: Anti-Spam by CleanTalk
4
  Plugin URI: http://cleantalk.org
5
  Description: Max power, all-in-one, captcha less, premium anti-spam plugin. No comment spam, no registration spam, no contact spam, protects any WordPress forms.
6
+ Version: 5.40.3
7
  Author: СleanTalk <welcome@cleantalk.org>
8
  Author URI: http://cleantalk.org
9
  */
10
+ $cleantalk_plugin_version='5.40.3';
11
+ $ct_agent_version = 'wordpress-5403';
12
  $cleantalk_executed=false;
13
  $ct_sfw_updated = false;
14
 
i18n/cleantalk-ru_RU.mo CHANGED
Binary file
inc/cleantalk-admin.php CHANGED
@@ -398,7 +398,8 @@ function ct_admin_init()
398
  add_settings_field('cleantalk_check_external', __('Protect external forms', 'cleantalk'), 'ct_input_check_external', 'cleantalk', 'cleantalk_settings_anti_spam');
399
  add_settings_field('cleantalk_check_comments_number', __("Don't check comments", 'cleantalk'), 'ct_input_check_comments_number', 'cleantalk', 'cleantalk_settings_anti_spam');
400
  add_settings_field('cleantalk_set_cookies', __("Set cookies", 'cleantalk'), 'ct_input_set_cookies', 'cleantalk', 'cleantalk_settings_anti_spam');
401
- //add_settings_field('cleantalk_check_messages_number', __("Don't check messages", 'cleantalk'), 'ct_input_check_messages_number', 'cleantalk', 'cleantalk_settings_anti_spam');
 
402
  add_settings_field('cleantalk_spam_firewall', __('', 'cleantalk'), 'ct_input_spam_firewall', 'cleantalk', 'cleantalk_settings_banner');
403
  add_settings_field('cleantalk_collect_details', __('Collect details about browsers', 'cleantalk'), 'ct_input_collect_details', 'cleantalk', 'cleantalk_settings_anti_spam');
404
  add_settings_field('cleantalk_show_link', __('', 'cleantalk'), 'ct_input_show_link', 'cleantalk', 'cleantalk_settings_banner');
@@ -908,6 +909,26 @@ function ct_input_set_cookies() {
908
  @admin_addDescriptionsFields(sprintf(__('Turn this option off to deny plugin generates any cookies on website front-end. This option is helpful if you use Varnish. But most of contact forms will not be protected by CleanTalk if the option is turned off!', 'cleantalk')));
909
  }
910
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
911
  function ct_input_show_link() {
912
  global $ct_options, $ct_data;
913
 
398
  add_settings_field('cleantalk_check_external', __('Protect external forms', 'cleantalk'), 'ct_input_check_external', 'cleantalk', 'cleantalk_settings_anti_spam');
399
  add_settings_field('cleantalk_check_comments_number', __("Don't check comments", 'cleantalk'), 'ct_input_check_comments_number', 'cleantalk', 'cleantalk_settings_anti_spam');
400
  add_settings_field('cleantalk_set_cookies', __("Set cookies", 'cleantalk'), 'ct_input_set_cookies', 'cleantalk', 'cleantalk_settings_anti_spam');
401
+ add_settings_field('cleantalk_set_cookies', __("Use SSL", 'cleantalk'), 'ct_input_ssl_on', 'cleantalk', 'cleantalk_settings_anti_spam');
402
+
403
  add_settings_field('cleantalk_spam_firewall', __('', 'cleantalk'), 'ct_input_spam_firewall', 'cleantalk', 'cleantalk_settings_banner');
404
  add_settings_field('cleantalk_collect_details', __('Collect details about browsers', 'cleantalk'), 'ct_input_collect_details', 'cleantalk', 'cleantalk_settings_anti_spam');
405
  add_settings_field('cleantalk_show_link', __('', 'cleantalk'), 'ct_input_show_link', 'cleantalk', 'cleantalk_settings_banner');
909
  @admin_addDescriptionsFields(sprintf(__('Turn this option off to deny plugin generates any cookies on website front-end. This option is helpful if you use Varnish. But most of contact forms will not be protected by CleanTalk if the option is turned off!', 'cleantalk')));
910
  }
911
 
912
+ function ct_input_ssl_on() {
913
+ global $ct_options, $ct_data;
914
+
915
+ $ct_options = ct_get_options();
916
+ $ct_data = ct_get_data();
917
+
918
+ if(isset($ct_options['ssl_on']))
919
+ {
920
+ $value = @intval($ct_options['ssl_on']);
921
+ }
922
+ else
923
+ {
924
+ $value=0;
925
+ }
926
+ echo "<input type='radio' id='cleantalk_ssl_on1' name='cleantalk_settings[ssl_on]' value='1' " . ($value == '1' ? 'checked' : '') . " /><label for='cleantalk_ssl_on1'> " . __('Yes') . "</label>";
927
+ echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
928
+ echo "<input type='radio' id='cleantalk_ssl_on0' name='cleantalk_settings[ssl_on]' value='0' " . ($value == '0' ? 'checked' : '') . " /><label for='cleantalk_ssl_on0'> " . __('No') . "</label>";
929
+ @admin_addDescriptionsFields(sprintf(__('Turn this option on to use encrypted (SSL) connection with CleanTalk servers.', 'cleantalk')));
930
+ }
931
+
932
  function ct_input_show_link() {
933
  global $ct_options, $ct_data;
934
 
inc/cleantalk-ajax.php CHANGED
@@ -292,28 +292,6 @@ function ct_user_register_ajaxlogin($user_id)
292
  return $user_id;
293
  }
294
 
295
- function ct_get_fields(&$email,&$message,$arr)
296
- {
297
- foreach($arr as $key=>$value)
298
- {
299
- if(!is_array($value))
300
- {
301
- if ($email === null && preg_match("/^\S+@\S+\.\S+$/", $value))
302
- {
303
- $email = $value;
304
- }
305
- else
306
- {
307
- $message.="$value\n";
308
- }
309
- }
310
- else
311
- {
312
- ct_get_fields($email,$message,$value);
313
- }
314
- }
315
- }
316
-
317
  function ct_ajax_hook()
318
  {
319
  require_once(CLEANTALK_PLUGIN_DIR . 'inc/cleantalk-public.php');
@@ -324,7 +302,9 @@ function ct_ajax_hook()
324
  $sender_email = null;
325
  $message = '';
326
  $nickname=null;
327
-
 
 
328
  //
329
  // Skip test if Custom contact forms is disabled.
330
  //
@@ -375,8 +355,12 @@ function ct_ajax_hook()
375
  $_POST['target']=1;
376
  }
377
 
378
- ct_get_fields($sender_email,$message,$_POST);
379
-
 
 
 
 
380
  if(isset($_POST['cscf']['confirm-email']))
381
  {
382
  $_POST['cscf']['confirm-email']=$tmp;
@@ -398,6 +382,12 @@ function ct_ajax_hook()
398
  {
399
  $sender_info= '';
400
  }
 
 
 
 
 
 
401
 
402
  $ct_base_call_result = ct_base_call(array(
403
  'message' => $message,
@@ -405,7 +395,7 @@ function ct_ajax_hook()
405
  'sender_email' => $sender_email,
406
  'sender_nickname' => $nickname,
407
  'sender_info' => $sender_info,
408
- 'post_info'=>null,
409
  'checkjs' => $checkjs));
410
 
411
  $ct = $ct_base_call_result['ct'];
292
  return $user_id;
293
  }
294
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
295
  function ct_ajax_hook()
296
  {
297
  require_once(CLEANTALK_PLUGIN_DIR . 'inc/cleantalk-public.php');
302
  $sender_email = null;
303
  $message = '';
304
  $nickname=null;
305
+ $contact = true;
306
+ $subject = '';
307
+
308
  //
309
  // Skip test if Custom contact forms is disabled.
310
  //
355
  $_POST['target']=1;
356
  }
357
 
358
+ ct_get_fields_any($sender_email, $message, $nickname, $subject, $contact, $_POST);
359
+ if ($subject != '') {
360
+ $message = array_merge(array('subject' => $subject), $message);
361
+ }
362
+ $message = json_encode($message);
363
+
364
  if(isset($_POST['cscf']['confirm-email']))
365
  {
366
  $_POST['cscf']['confirm-email']=$tmp;
382
  {
383
  $sender_info= '';
384
  }
385
+
386
+ $post_info['comment_type'] = 'feedback_ajax';
387
+ $post_info = json_encode($post_info);
388
+ if ($post_info === false)
389
+ $post_info = '';
390
+
391
 
392
  $ct_base_call_result = ct_base_call(array(
393
  'message' => $message,
395
  'sender_email' => $sender_email,
396
  'sender_nickname' => $nickname,
397
  'sender_info' => $sender_info,
398
+ 'post_info'=> $post_info,
399
  'checkjs' => $checkjs));
400
 
401
  $ct = $ct_base_call_result['ct'];
inc/cleantalk-common.php CHANGED
@@ -423,7 +423,8 @@ function ct_def_options() {
423
  'relevance_test' => 0, // Test comment for relevance
424
  'notice_api_errors' => 0, // Send API error notices to WP admin
425
  'user_token'=>'', //user token for auto login into spam statistics
426
- 'set_cookies'=> 1 // Disable cookies generatation to be compatible with Varnish.
 
427
  );
428
  }
429
 
@@ -625,6 +626,15 @@ function ct_get_fields_any(&$email,&$message,&$nickname,&$subject, &$contact,$ar
625
  'txn_type', // PayPal transaction type
626
  'payment_status', // PayPal payment status
627
  'ccbill_ipn' //CCBill IPN
 
 
 
 
 
 
 
 
 
628
  );
629
  foreach($skip_params as $key=>$value)
630
  {
@@ -640,20 +650,26 @@ function ct_get_fields_any(&$email,&$message,&$nickname,&$subject, &$contact,$ar
640
  if (in_array($key, $skip_params) && $key!=0 && $key!='' || preg_match("/^ct_checkjs/", $key)) {
641
  $contact = false;
642
  }
643
- if ($email === '' && @preg_match("/^\S+@\S+\.\S+$/", $value))
644
  {
645
  $email = $value;
646
  }
647
- else if ($nickname === '' && ct_get_data_from_submit($value, 'name'))
648
  {
649
  $nickname = $value;
650
  }
651
- else if ($subject === '' && ct_get_data_from_submit($value, 'subject'))
652
  {
653
  $subject = $value;
654
  }
655
  else
656
- {
 
 
 
 
 
 
657
  $message[$key] = $value;
658
  }
659
  }
@@ -664,6 +680,19 @@ function ct_get_fields_any(&$email,&$message,&$nickname,&$subject, &$contact,$ar
664
  }
665
  }
666
 
 
 
 
 
 
 
 
 
 
 
 
 
 
667
  function ct_get_fields_any_postdata(&$message,$arr)
668
  {
669
  $skip_params = array(
423
  'relevance_test' => 0, // Test comment for relevance
424
  'notice_api_errors' => 0, // Send API error notices to WP admin
425
  'user_token'=>'', //user token for auto login into spam statistics
426
+ 'set_cookies'=> 1, // Disable cookies generatation to be compatible with Varnish.
427
+ 'collect_details' => 0 // Collect details about browser of the visitor.
428
  );
429
  }
430
 
626
  'txn_type', // PayPal transaction type
627
  'payment_status', // PayPal payment status
628
  'ccbill_ipn' //CCBill IPN
629
+ );
630
+ $obfuscate_params = array(
631
+ 'password',
632
+ 'password0',
633
+ 'password1',
634
+ 'password2',
635
+ 'pass',
636
+ 'pwd',
637
+ 'user_pass'
638
  );
639
  foreach($skip_params as $key=>$value)
640
  {
650
  if (in_array($key, $skip_params) && $key!=0 && $key!='' || preg_match("/^ct_checkjs/", $key)) {
651
  $contact = false;
652
  }
653
+ if (!$email && @preg_match("/^\S+@\S+\.\S+$/", $value))
654
  {
655
  $email = $value;
656
  }
657
+ else if ($nickname === '' && ct_get_data_from_submit($key, 'name'))
658
  {
659
  $nickname = $value;
660
  }
661
+ else if ($subject === '' && ct_get_data_from_submit($key, 'subject'))
662
  {
663
  $subject = $value;
664
  }
665
  else
666
+ {
667
+ //
668
+ // Obfuscate private data
669
+ //
670
+ if (in_array($key, $obfuscate_params)) {
671
+ $value = ct_obfuscate_param($value);
672
+ }
673
  $message[$key] = $value;
674
  }
675
  }
680
  }
681
  }
682
 
683
+ /**
684
+ * Masks a value with asterisks (*)
685
+ * @return string
686
+ */
687
+ function ct_obfuscate_param ($value = null) {
688
+ if ($value && is_string($value)) {
689
+ $length = strlen($value);
690
+ $value = str_repeat('*', $length);
691
+ }
692
+
693
+ return $value;
694
+ }
695
+
696
  function ct_get_fields_any_postdata(&$message,$arr)
697
  {
698
  $skip_params = array(
inc/cleantalk-public.php CHANGED
@@ -1014,7 +1014,7 @@ function ct_test_registration($nickname, $email, $ip){
1014
 
1015
  if(@intval($ct_result->errno) != 0)
1016
  {
1017
- if($params['checkjs']!=1)
1018
  {
1019
  $ct_result->allow = 0;
1020
  $ct_result->spam = 1;
@@ -1092,7 +1092,6 @@ function ct_registration_errors($errors, $sanitized_user_login = null, $user_ema
1092
 
1093
  $checkjs = js_test($ct_checkjs_register_form, $_POST, true);
1094
  $sender_info['post_checkjs_passed'] = $checkjs;
1095
-
1096
  //
1097
  // This hack can be helpfull when plugin uses with untested themes&signups plugins.
1098
  //
@@ -1143,9 +1142,11 @@ function ct_registration_errors($errors, $sanitized_user_login = null, $user_ema
1143
  ct_send_error_notice($ct_result->comment);
1144
  return $errors;
1145
  }*/
 
1146
  if(@intval($ct_result->errno) != 0)
1147
  {
1148
- if($params['checkjs']!=1)
 
1149
  {
1150
  $ct_result->allow = 0;
1151
  $ct_result->spam = 1;
@@ -1522,6 +1523,7 @@ function ct_si_contact_form_validate($form_errors = array(), $form_id_num = 0) {
1522
  //getting info from custom fields
1523
  @ct_get_fields_any($sender_email, $message, $sender_nickname, $subject, $contact_form, $_POST);
1524
  //setting fields if they with defaults names
 
1525
  if ($subject != '') {
1526
  $message = array_merge(array('subject' => $subject), $message);
1527
  }
@@ -1772,7 +1774,7 @@ function ct_s2member_registration_test() {
1772
 
1773
  if(@intval($ct_result->errno) != 0)
1774
  {
1775
- if($params['checkjs']!=1)
1776
  {
1777
  $ct_result->allow = 0;
1778
  $ct_result->spam = 1;
@@ -1870,7 +1872,7 @@ function ct_contact_form_validate () {
1870
  $message = array();
1871
 
1872
  @ct_get_fields_any($sender_email, $message, $sender_nickname, $subject, $contact_form, $_POST);
1873
-
1874
  if ($subject != '') {
1875
  $message = array_merge(array('subject' => $subject), $message);
1876
  }
1014
 
1015
  if(@intval($ct_result->errno) != 0)
1016
  {
1017
+ if($checkjs != 1)
1018
  {
1019
  $ct_result->allow = 0;
1020
  $ct_result->spam = 1;
1092
 
1093
  $checkjs = js_test($ct_checkjs_register_form, $_POST, true);
1094
  $sender_info['post_checkjs_passed'] = $checkjs;
 
1095
  //
1096
  // This hack can be helpfull when plugin uses with untested themes&signups plugins.
1097
  //
1142
  ct_send_error_notice($ct_result->comment);
1143
  return $errors;
1144
  }*/
1145
+
1146
  if(@intval($ct_result->errno) != 0)
1147
  {
1148
+
1149
+ if($checkjs != 1)
1150
  {
1151
  $ct_result->allow = 0;
1152
  $ct_result->spam = 1;
1523
  //getting info from custom fields
1524
  @ct_get_fields_any($sender_email, $message, $sender_nickname, $subject, $contact_form, $_POST);
1525
  //setting fields if they with defaults names
1526
+
1527
  if ($subject != '') {
1528
  $message = array_merge(array('subject' => $subject), $message);
1529
  }
1774
 
1775
  if(@intval($ct_result->errno) != 0)
1776
  {
1777
+ if($checkjs !=1)
1778
  {
1779
  $ct_result->allow = 0;
1780
  $ct_result->spam = 1;
1872
  $message = array();
1873
 
1874
  @ct_get_fields_any($sender_email, $message, $sender_nickname, $subject, $contact_form, $_POST);
1875
+
1876
  if ($subject != '') {
1877
  $message = array_merge(array('subject' => $subject), $message);
1878
  }
inc/cleantalk-users.php CHANGED
@@ -11,25 +11,11 @@ function ct_add_users_menu()
11
 
12
  function ct_show_users_page()
13
  {
 
14
  ?>
15
  <div class="wrap">
16
- <h2><?php _e("Anti-spam by CleanTalk", 'cleantalk'); ?></h2><br />
17
  <?php
18
- /*$args_unchecked = array(
19
- 'meta_query' => array(
20
- 'relation' => 'AND',
21
- Array(
22
- 'key' => 'ct_checked',
23
- 'value' => '1',
24
- 'compare' => 'NOT EXISTS'
25
- ),
26
- Array(
27
- 'key' => 'ct_hash',
28
- 'value' => '1',
29
- 'compare' => 'NOT EXISTS'
30
- )
31
- )
32
- );*/
33
  global $wpdb;
34
  $r=$wpdb->get_results("select distinct count($wpdb->users.ID) as cnt from $wpdb->users inner join $wpdb->usermeta on $wpdb->users.ID=$wpdb->usermeta.user_id where $wpdb->usermeta.meta_key='ct_checked' or $wpdb->usermeta.meta_key='ct_hash';");
35
  $cnt_checked=$r[0]->cnt;
@@ -238,24 +224,18 @@ function ct_ajax_check_users()
238
 
239
  $args_unchecked = array(
240
  'meta_query' => array(
241
- 'relation' => 'AND',
242
  Array(
243
  'key' => 'ct_checked',
244
  'value' => '1',
245
  'compare' => 'NOT EXISTS'
246
  ),
247
- Array(
248
- 'key' => 'ct_hash',
249
- 'value' => '1',
250
- 'compare' => 'NOT EXISTS'
251
- )
252
  ),
253
  'number'=>500
254
  );
255
 
256
  $u=get_users($args_unchecked);
257
- //$u=array_slice($u,0,10);
258
- if(sizeof($u)>0)
259
  {
260
  $data=Array();
261
  for($i=0;$i<sizeof($u);$i++)
11
 
12
  function ct_show_users_page()
13
  {
14
+ global $ct_plugin_name;
15
  ?>
16
  <div class="wrap">
17
+ <h2><?php echo $ct_plugin_name; ?></h2><br />
18
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  global $wpdb;
20
  $r=$wpdb->get_results("select distinct count($wpdb->users.ID) as cnt from $wpdb->users inner join $wpdb->usermeta on $wpdb->users.ID=$wpdb->usermeta.user_id where $wpdb->usermeta.meta_key='ct_checked' or $wpdb->usermeta.meta_key='ct_hash';");
21
  $cnt_checked=$r[0]->cnt;
224
 
225
  $args_unchecked = array(
226
  'meta_query' => array(
 
227
  Array(
228
  'key' => 'ct_checked',
229
  'value' => '1',
230
  'compare' => 'NOT EXISTS'
231
  ),
 
 
 
 
 
232
  ),
233
  'number'=>500
234
  );
235
 
236
  $u=get_users($args_unchecked);
237
+
238
+ if(sizeof($u)>0)
239
  {
240
  $data=Array();
241
  for($i=0;$i<sizeof($u);$i++)
readme.txt CHANGED
@@ -1,6 +1,6 @@
1
  === Anti-Spam by CleanTalk - No Captcha, no comments & registrations spam ===
2
- Contributors: znaeff, shagimuratov
3
- Tags: spam, anti-spam, antispam, anti spam, bbpress, buddypress, captcha, capcha, captha, catcha, cf7 spam, comments, contact form spam, signup, spammers, spammy, woocommerce, wordpress spam, booking, order, subscription, gravity spam, jetpack, bots, contact form 7, contact form, registrations, ninja, Fast Secure Contact, Gravity forms, formidable, mailchimp, s2member, protection, protect, email, akismet, plugin, contact, recaptcha, google captcha, google recaptcha, math, security, login, blacklist, prevent spam comments, wordpress, User Frontend, bulk delete, bulk remove, cloudflare, widget, review, auth forms, firewall, ddos, cleantalk, mailpoet, profile builder, comment spam, registration spam, spam comments, comment moderation, spam bots, block spam, signup spam, spam blocker, spam filter, user registration spam,pingback,trackback, spam trackbacks, anti-spam plugin, varnish, amp, spam free
4
  Requires at least: 3.0
5
  Tested up to: 4.5.2
6
  Stable tag: 5.40.3
@@ -210,7 +210,6 @@ Now, all subsites will have this access key.
210
  Go to <a href="https://cleantalk.org/my" target="_blank">Dashboard</a> at the cleantalk.org or use <a href="https://play.google.com/store/apps/details?id=org.cleantalk.app">Android</a>, <a href="https://itunes.apple.com/us/app/cleantalk/id825479913?mt=8">iPhone</a> anti-spam app to manage and control spam protection.
211
 
212
  == Frequently Asked Questions ==
213
-
214
  = Does the plugin protect against brute force, DoS attacks as well as against spam attacks? =
215
  No, it doesn't. Anti-spam by CleanTalk **is anti-spam solution** for comments, registrations and other other forms on a website only. The plugin saves your time in managing spam problems, but doesn't protect against any security issues.
216
 
@@ -234,28 +233,28 @@ Yes, it will. The Anti-spam by CleanTalk is compatible with any WordPress theme.
234
  Please use the email **stop_email@example.com** for comments, contacts or signups to see how the anti-spam protection works. Also you can see the logs for the last 7 days at the <a href="http://cleantalk.org/my/show_requests">Control panel</a> or look at the folder "Spam" for banned comments.
235
 
236
  = Is the plugin effective against spam bots? =
237
- Plugin Anti-spam by CleanTalk stops up to 99.998% of spam comments, spam signups (registrations), spam contact emails, spam subscriptions, spam bookings or spam orders.
238
 
239
  = What about pingback, trackback spam? =
240
- Plugin by default pass pingbacks without any checks. All trackbacks will be blocked if the sender had spam activity.
241
 
242
  = Can I use CleanTalk with Akismet? =
243
- Sure, you can use CleanTalk with Akismet. In this case probably you will have bigger false/positive rate (when legitimate comments/signups denies), but you will have stronger antispam protection at website.
244
 
245
  = Is CleanTalk better than Akismet? =
246
- Please look features comparison here https://cleantalk.org/cleantalk-vs-akismet
247
 
248
  = Can I use CleanTalk to remove pending spam comments? =
249
- Yes, you can. The plugin has option to test all pending comments via database of <a href="https://cleantalk.org/blacklists">spam active IP/Email</a>, finded spam comments plugin moves to Trash folder.
250
 
251
- = How the plugin finds spam in pending comments or registered accounts? =
252
- Plugin checks all not spam comments against blacklists database and show you senders that have spam activity on other websites.
253
- There is some differencies between blacklists database and API to protect against spam bots registrations/comments online. Blacklists show all history of spam activity, but our API (that used in spam tests) used another parameters, too: last day of activity, number of spam attacks during last days etc. This mechanisms help us to reduce number of false positivitie. So, there is nothing strange, if some emails/IPs will be not found by bulk comments/accounts test.
254
 
255
- To check comments please click this,
256
  > WordPress console -> Comments -> Find spam comments
257
 
258
- To check users please click this,
259
  > WordPress console -> Users -> Find spam users
260
 
261
  = Should I use another anti-spam tools (Captcha, reCaptcha and etc.)? =
1
  === Anti-Spam by CleanTalk - No Captcha, no comments & registrations spam ===
2
+ Contributors: CleanTalk Inc
3
+ Tags: spam, anti-spam, antispam, anti spam, capcha, captha, catcha, cf7 spam, comments, contact form spam, spammers, spammy, wordpress spam, gravity spam, bots, protection, protect, akismet, recaptcha, google captcha, google recaptcha, math, security, blacklist, prevent spam comments, bulk delete, bulk remove, firewall, ddos, cleantalk, comment spam, registration spam, spam comments, comment moderation, spam bots, block spam, signup spam, spam blocker, spam filter, user registration spam,spam trackbacks, anti-spam plugin, amp, spam free
4
  Requires at least: 3.0
5
  Tested up to: 4.5.2
6
  Stable tag: 5.40.3
210
  Go to <a href="https://cleantalk.org/my" target="_blank">Dashboard</a> at the cleantalk.org or use <a href="https://play.google.com/store/apps/details?id=org.cleantalk.app">Android</a>, <a href="https://itunes.apple.com/us/app/cleantalk/id825479913?mt=8">iPhone</a> anti-spam app to manage and control spam protection.
211
 
212
  == Frequently Asked Questions ==
 
213
  = Does the plugin protect against brute force, DoS attacks as well as against spam attacks? =
214
  No, it doesn't. Anti-spam by CleanTalk **is anti-spam solution** for comments, registrations and other other forms on a website only. The plugin saves your time in managing spam problems, but doesn't protect against any security issues.
215
 
233
  Please use the email **stop_email@example.com** for comments, contacts or signups to see how the anti-spam protection works. Also you can see the logs for the last 7 days at the <a href="http://cleantalk.org/my/show_requests">Control panel</a> or look at the folder "Spam" for banned comments.
234
 
235
  = Is the plugin effective against spam bots? =
236
+ The plugin Anti-Spam by CleanTalk stops up to 99.998% of spam comments, spam signups (registrations), spam contact emails, spam subscriptions, spam bookings or spam orders.
237
 
238
  = What about pingback, trackback spam? =
239
+ The plugin passes pingbacks without any checks by default. All trackbacks will be blocked if the sender had spam activity.
240
 
241
  = Can I use CleanTalk with Akismet? =
242
+ Sure, you can use CleanTalk with Akismet. In this case you will probably have higher false/positive rate (when legitimate comments/signups are being denied), but you will have stronger antispam protection at website.
243
 
244
  = Is CleanTalk better than Akismet? =
245
+ Please look at this features comparison here https://cleantalk.org/cleantalk-vs-akismet
246
 
247
  = Can I use CleanTalk to remove pending spam comments? =
248
+ Yes, you can. The plugin has the option to test all pending comments via database of <a href="https://cleantalk.org/blacklists">spam active IP/Email</a>, found spam comments will be moved to Trash folder.
249
 
250
+ = How does the plugin find spam in pending comments or registered accounts? =
251
+ The plugin checks all non-spam comments in the blacklist database and shows your those senders who have spam activity on other websites.
252
+ There are some differences between blacklist database and API to protect you from spam bot registrations/comments online. Blacklists show all history of spam activity, but our API (which is used in spam tests) relies on other parameters, too: last day of activity, number of spam attacks during the last days etc. This mechanisms help us to reduce number of false/outcomes. So, there is nothing strange, if some emails/IPs are not found by bulk comments/accounts test.
253
 
254
+ To check comments please go here,
255
  > WordPress console -> Comments -> Find spam comments
256
 
257
+ To check users please go here,
258
  > WordPress console -> Users -> Find spam users
259
 
260
  = Should I use another anti-spam tools (Captcha, reCaptcha and etc.)? =