Version Description
2016-03-10 = * Fixed bug with broken MailPoet previews. * Fixed bug with broken Geo My WP pop-up windows. * Fixed issue with mb_convert_encoding() function. * Removed double JavaScript code in front-end. * Removed unused variables in anti spam logic. * Added option 'Set cookies' (turned on by default). If the option turned off, the plugin will not generate cookies, but in this case plugin will not protect some rarely used contact forms. Any way, turn this option off be compatible with Varnish in spam protection for WordPress core comments, registrations and most popular contact forms. * Added spam protection for Gravity forms via option 'Contact forms' with hook gform_entry_is_spam().
Download this release
Release Info
Developer | shagimuratov |
Plugin | Spam protection, AntiSpam, FireWall by CleanTalk |
Version | 5.37.3 |
Comparing to | |
See all releases |
Code changes from version 5.36.1 to 5.37.3
- cleantalk.php +37 -29
- cleantalk_nocache.js +0 -133
- inc/cleantalk-admin.php +27 -4
- inc/cleantalk-ajax.php +23 -5
- inc/cleantalk-common.php +14 -37
- inc/cleantalk-public.php +83 -22
- inc/cleantalk_nocache.js +11 -23
- readme.txt +27 -7
cleantalk.php
CHANGED
@@ -3,11 +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.
|
7 |
Author: СleanTalk <welcome@cleantalk.org>
|
8 |
Author URI: http://cleantalk.org
|
9 |
*/
|
10 |
-
$cleantalk_plugin_version='5.
|
|
|
11 |
$cleantalk_executed=false;
|
12 |
|
13 |
if(defined('CLEANTALK_AJAX_USE_BUFFER'))
|
@@ -341,21 +342,39 @@ function ct_add_nocache_script_footer()
|
|
341 |
}
|
342 |
}
|
343 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
344 |
function ct_add_nocache_script_header()
|
345 |
{
|
346 |
if(strpos($_SERVER['REQUEST_URI'],'jm-ajax')===false)
|
347 |
{
|
348 |
-
|
349 |
-
$ct_options=ct_get_options();
|
350 |
-
if(@intval($ct_options['collect_details'])==1)
|
351 |
-
{
|
352 |
-
$ct_info_flag="var ct_info_flag=true;\n";
|
353 |
-
}
|
354 |
-
else
|
355 |
-
{
|
356 |
-
$ct_info_flag="var ct_info_flag=false;\n";
|
357 |
-
}
|
358 |
-
|
359 |
print "\n<script type='text/javascript'>\nvar ct_ajaxurl = '".admin_url('admin-ajax.php')."';\n $ct_info_flag </script>\n";
|
360 |
}
|
361 |
}
|
@@ -365,16 +384,10 @@ function ct_inject_nocache_script($html)
|
|
365 |
if(strpos($_SERVER['REQUEST_URI'],'jm-ajax')===false)
|
366 |
{
|
367 |
global $test_external_forms, $cleantalk_plugin_version, $ct_options;
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
}
|
373 |
-
else
|
374 |
-
{
|
375 |
-
$ct_info_flag="var ct_info_flag=false;\n";
|
376 |
-
}
|
377 |
-
if(!is_admin()&&stripos($html,"</body")!==false)
|
378 |
{
|
379 |
//$ct_replace.="\n<script type='text/javascript'>var ajaxurl = '".admin_url('admin-ajax.php')."';\n $ct_info_flag </script>\n";
|
380 |
$ct_replace="<script async type='text/javascript' src='".plugins_url( '/inc/cleantalk_nocache.js' , __FILE__ )."?random=".$cleantalk_plugin_version."'></script>\n";
|
@@ -387,11 +400,6 @@ function ct_inject_nocache_script($html)
|
|
387 |
//$html=str_ireplace("</body",$ct_replace."</body",$html);
|
388 |
$html=substr_replace($html,$ct_replace."</body",strripos($html,"</body"),6);
|
389 |
}
|
390 |
-
if(!is_admin()&&preg_match("#<head[^>]*>#i",$html)==1)
|
391 |
-
{
|
392 |
-
$ct_replace="\n<script type='text/javascript'>\nvar ct_ajaxurl = '".admin_url('admin-ajax.php')."';\n $ct_info_flag </script>\n";
|
393 |
-
$html=preg_replace("(<head[^>]*>)","$0".$ct_replace,$html,1);
|
394 |
-
}
|
395 |
}
|
396 |
return $html;
|
397 |
}
|
@@ -504,4 +512,4 @@ function ct_send_sfw_log()
|
|
504 |
$sfw = new CleanTalkSFW();
|
505 |
$sfw->send_logs();
|
506 |
}
|
507 |
-
?>
|
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.37.3
|
7 |
Author: СleanTalk <welcome@cleantalk.org>
|
8 |
Author URI: http://cleantalk.org
|
9 |
*/
|
10 |
+
$cleantalk_plugin_version='5.37.3';
|
11 |
+
$ct_agent_version = 'wordpress-5373';
|
12 |
$cleantalk_executed=false;
|
13 |
|
14 |
if(defined('CLEANTALK_AJAX_USE_BUFFER'))
|
342 |
}
|
343 |
}
|
344 |
|
345 |
+
/**
|
346 |
+
* Function prepares values to manage JavaScript code
|
347 |
+
* @return string
|
348 |
+
*/
|
349 |
+
function ct_set_info_flag () {
|
350 |
+
global $ct_options;
|
351 |
+
|
352 |
+
$ct_options=ct_get_options();
|
353 |
+
|
354 |
+
$result = 'false';
|
355 |
+
if(@intval($ct_options['collect_details'])==1
|
356 |
+
&& @intval($ct_options['set_cookies']) == 1
|
357 |
+
) {
|
358 |
+
$result = 'true';
|
359 |
+
}
|
360 |
+
|
361 |
+
$ct_info_flag = "var ct_info_flag=$result;\n";
|
362 |
+
|
363 |
+
$result = 'true';
|
364 |
+
if (@intval($ct_options['set_cookies']) == 0) {
|
365 |
+
$result = 'false';
|
366 |
+
}
|
367 |
+
|
368 |
+
$ct_set_cookies_flag = "var ct_set_cookies_flag=$result;\n";
|
369 |
+
|
370 |
+
return $ct_info_flag . $ct_set_cookies_flag;
|
371 |
+
}
|
372 |
+
|
373 |
function ct_add_nocache_script_header()
|
374 |
{
|
375 |
if(strpos($_SERVER['REQUEST_URI'],'jm-ajax')===false)
|
376 |
{
|
377 |
+
$ct_info_flag = ct_set_info_flag();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
378 |
print "\n<script type='text/javascript'>\nvar ct_ajaxurl = '".admin_url('admin-ajax.php')."';\n $ct_info_flag </script>\n";
|
379 |
}
|
380 |
}
|
384 |
if(strpos($_SERVER['REQUEST_URI'],'jm-ajax')===false)
|
385 |
{
|
386 |
global $test_external_forms, $cleantalk_plugin_version, $ct_options;
|
387 |
+
|
388 |
+
$ct_info_flag = ct_set_info_flag();
|
389 |
+
|
390 |
+
if(!is_admin()&&stripos($html,"</body")!==false)
|
|
|
|
|
|
|
|
|
|
|
|
|
391 |
{
|
392 |
//$ct_replace.="\n<script type='text/javascript'>var ajaxurl = '".admin_url('admin-ajax.php')."';\n $ct_info_flag </script>\n";
|
393 |
$ct_replace="<script async type='text/javascript' src='".plugins_url( '/inc/cleantalk_nocache.js' , __FILE__ )."?random=".$cleantalk_plugin_version."'></script>\n";
|
400 |
//$html=str_ireplace("</body",$ct_replace."</body",$html);
|
401 |
$html=substr_replace($html,$ct_replace."</body",strripos($html,"</body"),6);
|
402 |
}
|
|
|
|
|
|
|
|
|
|
|
403 |
}
|
404 |
return $html;
|
405 |
}
|
512 |
$sfw = new CleanTalkSFW();
|
513 |
$sfw->send_logs();
|
514 |
}
|
515 |
+
?>
|
cleantalk_nocache.js
DELETED
@@ -1,133 +0,0 @@
|
|
1 |
-
function sendRequest(url,callback,postData) {
|
2 |
-
var req = createXMLHTTPObject();
|
3 |
-
if (!req) return;
|
4 |
-
var method = (postData) ? "POST" : "GET";
|
5 |
-
req.open(method,url,true);
|
6 |
-
if (postData)
|
7 |
-
req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
|
8 |
-
req.onreadystatechange = function () {
|
9 |
-
if (req.readyState != 4) return;
|
10 |
-
if (req.status != 200 && req.status != 304) {
|
11 |
-
// alert('HTTP error ' + req.status);
|
12 |
-
return;
|
13 |
-
}
|
14 |
-
callback(req);
|
15 |
-
};
|
16 |
-
if (req.readyState == 4) return;
|
17 |
-
req.send(postData);
|
18 |
-
}
|
19 |
-
|
20 |
-
var XMLHttpFactories = [
|
21 |
-
function () {return new XMLHttpRequest()},
|
22 |
-
function () {return new ActiveXObject("Msxml2.XMLHTTP")},
|
23 |
-
function () {return new ActiveXObject("Msxml3.XMLHTTP")},
|
24 |
-
function () {return new ActiveXObject("Microsoft.XMLHTTP")}
|
25 |
-
];
|
26 |
-
|
27 |
-
function createXMLHTTPObject() {
|
28 |
-
var xmlhttp = false;
|
29 |
-
for (var i=0;i<XMLHttpFactories.length;i++) {
|
30 |
-
try {
|
31 |
-
xmlhttp = XMLHttpFactories[i]();
|
32 |
-
}
|
33 |
-
catch (e) {
|
34 |
-
continue;
|
35 |
-
}
|
36 |
-
break;
|
37 |
-
}
|
38 |
-
return xmlhttp;
|
39 |
-
}
|
40 |
-
|
41 |
-
function ct_getCookie(name) {
|
42 |
-
var matches = document.cookie.match(new RegExp(
|
43 |
-
"(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
|
44 |
-
));
|
45 |
-
return matches ? decodeURIComponent(matches[1]) : undefined;
|
46 |
-
}
|
47 |
-
|
48 |
-
function ct_setCookie(name, value)
|
49 |
-
{
|
50 |
-
/*var domain=location.hostname;
|
51 |
-
tmp=domain.split('.');
|
52 |
-
if(tmp[0].toLowerCase()=='www')
|
53 |
-
{
|
54 |
-
tmp[0]='';
|
55 |
-
}
|
56 |
-
else
|
57 |
-
{
|
58 |
-
tmp[0]='.'+tmp[0];
|
59 |
-
}
|
60 |
-
domain=tmp.join('.');*/
|
61 |
-
|
62 |
-
document.cookie = name+" =; expires=Thu, 01 Jan 1970 00:00:01 GMT; path = /";
|
63 |
-
document.cookie = name+" =; expires=Thu, 01 Jan 1970 00:00:01 GMT";
|
64 |
-
//document.cookie = name+" =; expires=Thu, 01 Jan 1970 00:00:01 GMT; path = /; domain = " + domain;
|
65 |
-
|
66 |
-
var date = new Date;
|
67 |
-
date.setDate(date.getDate() + 1);
|
68 |
-
//setTimeout(function() { document.cookie = name+"=" + value + "; expires=" + date.toUTCString() + "; path = /; domain = " + domain}, 500)
|
69 |
-
setTimeout(function() { document.cookie = name+"=" + value + "; expires=" + date.toUTCString() + "; path = /;"}, 500);
|
70 |
-
//document.cookie = name+"=" + value + "; expires=" + date.toUTCString() + "; path = /;";
|
71 |
-
}
|
72 |
-
|
73 |
-
function ct_callback(req)
|
74 |
-
{
|
75 |
-
ct_cookie=req.responseText.trim();
|
76 |
-
//alert('Key value: ' + ct_cookie);
|
77 |
-
|
78 |
-
ct_setCookie('ct_checkjs', ct_cookie);
|
79 |
-
|
80 |
-
for(i=0;i<document.forms.length;i++)
|
81 |
-
{
|
82 |
-
f=document.forms[i];
|
83 |
-
for(j=0;j<f.elements.length;j++)
|
84 |
-
{
|
85 |
-
e=f.elements[j];
|
86 |
-
if(e.name!==undefined&&e.name.indexOf('ct_checkjs')!=-1)
|
87 |
-
{
|
88 |
-
e.value=ct_cookie;
|
89 |
-
//alert('Form #' + i + ', field ' + e.name + ' = ' + ct_cookie);
|
90 |
-
}
|
91 |
-
}
|
92 |
-
}
|
93 |
-
|
94 |
-
//alert('Set cookie: \n' + document.cookie);
|
95 |
-
}
|
96 |
-
|
97 |
-
if (!Date.now) {
|
98 |
-
Date.now = function() { return new Date().getTime(); }
|
99 |
-
}
|
100 |
-
|
101 |
-
if(ct_nocache_executed==undefined)
|
102 |
-
{
|
103 |
-
var ct_nocache_executed=true;
|
104 |
-
var new_timestamp=Math.floor(Date.now() / 1000);
|
105 |
-
|
106 |
-
var old_timestamp=ct_getCookie('ct_timestamp');
|
107 |
-
|
108 |
-
var checkjs_cookie=ct_getCookie('ct_checkjs');
|
109 |
-
|
110 |
-
if(checkjs_cookie!=undefined)
|
111 |
-
{
|
112 |
-
for(i=0;i<document.forms.length;i++)
|
113 |
-
{
|
114 |
-
f=document.forms[i];
|
115 |
-
for(j=0;j<f.elements.length;j++)
|
116 |
-
{
|
117 |
-
e=f.elements[j];
|
118 |
-
if(e.name!==undefined&&e.name.indexOf('ct_checkjs')!=-1)
|
119 |
-
{
|
120 |
-
e.value=checkjs_cookie;
|
121 |
-
//alert('Form #' + i + ', field ' + e.name + ' = ' + ct_cookie);
|
122 |
-
}
|
123 |
-
}
|
124 |
-
}
|
125 |
-
}
|
126 |
-
|
127 |
-
if(old_timestamp==undefined||new_timestamp-old_timestamp>86400||checkjs_cookie==undefined) //86400 is 24 hours
|
128 |
-
{
|
129 |
-
ct_setCookie('ct_timestamp', new_timestamp);
|
130 |
-
//alert('set!');
|
131 |
-
sendRequest(ct_ajaxurl+'?'+Math.random(),ct_callback,'action=ct_get_cookie');
|
132 |
-
}
|
133 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inc/cleantalk-admin.php
CHANGED
@@ -50,8 +50,10 @@ $ct_server_timeout = 10;
|
|
50 |
/**
|
51 |
* Admin action 'admin_print_footer_scripts' - Enqueue admin script for checking if timezone offset is saved in settings
|
52 |
*/
|
53 |
-
|
54 |
-
|
|
|
|
|
55 |
|
56 |
function ct_add_stats_js()
|
57 |
{
|
@@ -408,9 +410,10 @@ function ct_admin_init()
|
|
408 |
add_settings_field('cleantalk_use_ajax', __('Use AJAX for JavaScript check', 'cleantalk'), 'ct_input_use_ajax', 'cleantalk', 'cleantalk_settings_anti_spam');
|
409 |
add_settings_field('cleantalk_check_external', __('Protect external forms', 'cleantalk'), 'ct_input_check_external', 'cleantalk', 'cleantalk_settings_anti_spam');
|
410 |
add_settings_field('cleantalk_check_comments_number', __("Don't check comments", 'cleantalk'), 'ct_input_check_comments_number', 'cleantalk', 'cleantalk_settings_anti_spam');
|
|
|
411 |
//add_settings_field('cleantalk_check_messages_number', __("Don't check messages", 'cleantalk'), 'ct_input_check_messages_number', 'cleantalk', 'cleantalk_settings_anti_spam');
|
412 |
add_settings_field('cleantalk_spam_firewall', __('', 'cleantalk'), 'ct_input_spam_firewall', 'cleantalk', 'cleantalk_settings_banner');
|
413 |
-
add_settings_field('cleantalk_collect_details', __('Collect details about browsers', 'cleantalk'), 'ct_input_collect_details', 'cleantalk', '
|
414 |
add_settings_field('cleantalk_show_link', __('', 'cleantalk'), 'ct_input_show_link', 'cleantalk', 'cleantalk_settings_banner');
|
415 |
}
|
416 |
}
|
@@ -898,6 +901,26 @@ function ct_input_check_external() {
|
|
898 |
@admin_addDescriptionsFields(sprintf(__('', 'cleantalk'), $ct_options['check_external']));
|
899 |
}
|
900 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
901 |
function ct_input_show_link() {
|
902 |
global $ct_options, $ct_data;
|
903 |
|
@@ -1425,4 +1448,4 @@ function ct_unmark_red($message) {
|
|
1425 |
return $message;
|
1426 |
}
|
1427 |
|
1428 |
-
?>
|
50 |
/**
|
51 |
* Admin action 'admin_print_footer_scripts' - Enqueue admin script for checking if timezone offset is saved in settings
|
52 |
*/
|
53 |
+
if(isset($ct_options['show_adminbar']) && @intval($ct_options['show_adminbar']) == 1)
|
54 |
+
{
|
55 |
+
add_action( 'admin_print_footer_scripts', 'ct_add_stats_js' );
|
56 |
+
}
|
57 |
|
58 |
function ct_add_stats_js()
|
59 |
{
|
410 |
add_settings_field('cleantalk_use_ajax', __('Use AJAX for JavaScript check', 'cleantalk'), 'ct_input_use_ajax', 'cleantalk', 'cleantalk_settings_anti_spam');
|
411 |
add_settings_field('cleantalk_check_external', __('Protect external forms', 'cleantalk'), 'ct_input_check_external', 'cleantalk', 'cleantalk_settings_anti_spam');
|
412 |
add_settings_field('cleantalk_check_comments_number', __("Don't check comments", 'cleantalk'), 'ct_input_check_comments_number', 'cleantalk', 'cleantalk_settings_anti_spam');
|
413 |
+
add_settings_field('cleantalk_set_cookies', __("Set cookies", 'cleantalk'), 'ct_input_set_cookies', 'cleantalk', 'cleantalk_settings_anti_spam');
|
414 |
//add_settings_field('cleantalk_check_messages_number', __("Don't check messages", 'cleantalk'), 'ct_input_check_messages_number', 'cleantalk', 'cleantalk_settings_anti_spam');
|
415 |
add_settings_field('cleantalk_spam_firewall', __('', 'cleantalk'), 'ct_input_spam_firewall', 'cleantalk', 'cleantalk_settings_banner');
|
416 |
+
add_settings_field('cleantalk_collect_details', __('Collect details about browsers', 'cleantalk'), 'ct_input_collect_details', 'cleantalk', 'cleantalk_settings_anti_spam');
|
417 |
add_settings_field('cleantalk_show_link', __('', 'cleantalk'), 'ct_input_show_link', 'cleantalk', 'cleantalk_settings_banner');
|
418 |
}
|
419 |
}
|
901 |
@admin_addDescriptionsFields(sprintf(__('', 'cleantalk'), $ct_options['check_external']));
|
902 |
}
|
903 |
|
904 |
+
function ct_input_set_cookies() {
|
905 |
+
global $ct_options, $ct_data;
|
906 |
+
|
907 |
+
$ct_options = ct_get_options();
|
908 |
+
$ct_data = ct_get_data();
|
909 |
+
|
910 |
+
if(isset($ct_options['set_cookies']))
|
911 |
+
{
|
912 |
+
$value = @intval($ct_options['set_cookies']);
|
913 |
+
}
|
914 |
+
else
|
915 |
+
{
|
916 |
+
$value=0;
|
917 |
+
}
|
918 |
+
echo "<input type='radio' id='cleantalk_set_cookies1' name='cleantalk_settings[set_cookies]' value='1' " . ($value == '1' ? 'checked' : '') . " /><label for='cleantalk_set_cookies1'> " . __('Yes') . "</label>";
|
919 |
+
echo ' ';
|
920 |
+
echo "<input type='radio' id='cleantalk_set_cookies0' name='cleantalk_settings[set_cookies]' value='0' " . ($value == '0' ? 'checked' : '') . " /><label for='cleantalk_set_cookies0'> " . __('No') . "</label>";
|
921 |
+
@admin_addDescriptionsFields(sprintf(__('Turn this option off to deny plugin generates any cookies on website fronentd. This option is helpfull if you use Varnish. But most of contact forms will not be protected by CleanTalk if the option is turnded off!', 'cleantalk')));
|
922 |
+
}
|
923 |
+
|
924 |
function ct_input_show_link() {
|
925 |
global $ct_options, $ct_data;
|
926 |
|
1448 |
return $message;
|
1449 |
}
|
1450 |
|
1451 |
+
?>
|
inc/cleantalk-ajax.php
CHANGED
@@ -317,15 +317,35 @@ function ct_get_fields(&$email,&$message,$arr)
|
|
317 |
function ct_ajax_hook()
|
318 |
{
|
319 |
require_once(CLEANTALK_PLUGIN_DIR . 'inc/cleantalk-public.php');
|
320 |
-
global $ct_agent_version, $ct_checkjs_register_form, $ct_session_request_id_label, $ct_session_register_ok_label, $bp, $ct_signup_done, $ct_formtime_label, $ct_negative_comment, $ct_options, $ct_data;
|
321 |
|
322 |
$ct_options = ct_get_options();
|
323 |
$ct_data = ct_get_data();
|
324 |
-
|
325 |
$sender_email = null;
|
326 |
$message = '';
|
327 |
$nickname=null;
|
328 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
329 |
if(isset($_POST['user_login']))
|
330 |
{
|
331 |
$nickname=$_POST['user_login'];
|
@@ -359,10 +379,8 @@ function ct_ajax_hook()
|
|
359 |
$_POST['target']=$tmp;
|
360 |
}
|
361 |
|
362 |
-
|
363 |
if($sender_email!=null)
|
364 |
{
|
365 |
-
$checkjs = js_test('ct_checkjs', $_COOKIE, true);
|
366 |
$submit_time = submit_time_test();
|
367 |
$sender_info = get_sender_info();
|
368 |
$sender_info['post_checkjs_passed']=$checkjs;
|
@@ -482,4 +500,4 @@ function ct_ajax_hook()
|
|
482 |
}
|
483 |
}
|
484 |
|
485 |
-
?>
|
317 |
function ct_ajax_hook()
|
318 |
{
|
319 |
require_once(CLEANTALK_PLUGIN_DIR . 'inc/cleantalk-public.php');
|
320 |
+
global $ct_agent_version, $ct_checkjs_register_form, $ct_session_request_id_label, $ct_session_register_ok_label, $bp, $ct_signup_done, $ct_formtime_label, $ct_negative_comment, $ct_options, $ct_data, $current_user;
|
321 |
|
322 |
$ct_options = ct_get_options();
|
323 |
$ct_data = ct_get_data();
|
|
|
324 |
$sender_email = null;
|
325 |
$message = '';
|
326 |
$nickname=null;
|
327 |
|
328 |
+
//
|
329 |
+
// Go out because we call it on backend.
|
330 |
+
//
|
331 |
+
if (ct_is_user_enable() === false || (function_exists('get_current_user_id') && get_current_user_id() != 0)) {
|
332 |
+
return false;
|
333 |
+
}
|
334 |
+
|
335 |
+
//
|
336 |
+
// Go out because of not spam data
|
337 |
+
//
|
338 |
+
$gmw_actions = array(
|
339 |
+
'gmaps_display_info_window',
|
340 |
+
'gmw_ps_display_info_window'
|
341 |
+
);
|
342 |
+
$checkjs = js_test('ct_checkjs', $_COOKIE, true);
|
343 |
+
if ($checkjs && // Spammers usually fail the JS test
|
344 |
+
(isset($_POST['action']) && in_array($_POST['action'], $gmw_actions)) // Geo My WP pop-up windows.
|
345 |
+
) {
|
346 |
+
return false;
|
347 |
+
}
|
348 |
+
|
349 |
if(isset($_POST['user_login']))
|
350 |
{
|
351 |
$nickname=$_POST['user_login'];
|
379 |
$_POST['target']=$tmp;
|
380 |
}
|
381 |
|
|
|
382 |
if($sender_email!=null)
|
383 |
{
|
|
|
384 |
$submit_time = submit_time_test();
|
385 |
$sender_info = get_sender_info();
|
386 |
$sender_info['post_checkjs_passed']=$checkjs;
|
500 |
}
|
501 |
}
|
502 |
|
503 |
+
?>
|
inc/cleantalk-common.php
CHANGED
@@ -1,6 +1,5 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
$ct_agent_version = 'wordpress-5361';
|
4 |
$ct_plugin_name = 'Anti-spam by CleanTalk';
|
5 |
$ct_checkjs_frm = 'ct_checkjs_frm';
|
6 |
$ct_checkjs_register_form = 'ct_checkjs_register_form';
|
@@ -132,7 +131,7 @@ function ct_init_session() {
|
|
132 |
*/
|
133 |
function ct_base_call($params = array()) {
|
134 |
global $wpdb, $ct_agent_version, $ct_formtime_label, $ct_options, $ct_data;
|
135 |
-
|
136 |
$ct_options=ct_get_options();
|
137 |
$ct_data=ct_get_data();
|
138 |
|
@@ -178,7 +177,6 @@ function ct_base_call($params = array()) {
|
|
178 |
$ct_request->last_error_text=$ct_data['last_error_text'];
|
179 |
}
|
180 |
|
181 |
-
|
182 |
|
183 |
$ct_result = @$ct->isAllowMessage($ct_request);
|
184 |
if ($ct->server_change) {
|
@@ -216,11 +214,6 @@ function ct_base_call($params = array()) {
|
|
216 |
else
|
217 |
{
|
218 |
ct_add_event('yes');
|
219 |
-
/*if($is_logged_in)
|
220 |
-
{
|
221 |
-
$user_cnt++;
|
222 |
-
update_user_meta( $user_id, 'cleantalk_messages_number', $user_cnt);
|
223 |
-
}*/
|
224 |
}
|
225 |
return array('ct' => $ct, 'ct_result' => $ct_result);
|
226 |
}
|
@@ -247,7 +240,7 @@ function submit_time_test() {
|
|
247 |
* @return array
|
248 |
*/
|
249 |
function get_sender_info() {
|
250 |
-
global $ct_direct_post, $ct_options, $ct_data;
|
251 |
|
252 |
$ct_options = ct_get_options();
|
253 |
$ct_data = ct_get_data();
|
@@ -270,36 +263,14 @@ function get_sender_info() {
|
|
270 |
}
|
271 |
}
|
272 |
|
273 |
-
/*$options2server = array( // Options for sending to server for support information
|
274 |
-
'apikey' => $ct_options['apikey'],
|
275 |
-
'registrations_test' => $ct_options['registrations_test'],
|
276 |
-
'comments_test' => $ct_options['comments_test'],
|
277 |
-
'contact_forms_test' => $ct_options['contact_forms_test'],
|
278 |
-
'general_contact_forms_test' => $ct_options['general_contact_forms_test'],
|
279 |
-
'remove_old_spam' => $ct_options['remove_old_spam'],
|
280 |
-
'autoPubRevelantMess' => $ct_options['autoPubRevelantMess'],
|
281 |
-
'spam_store_days' => $ct_options['spam_store_days'],
|
282 |
-
'ssl_on' => $ct_options['ssl_on'],
|
283 |
-
);*/
|
284 |
$options2server=$ct_options;
|
285 |
$js_info='';
|
286 |
-
if(isset($_COOKIE['ct_user_info']))
|
287 |
{
|
288 |
$js_info=stripslashes(rawurldecode($_COOKIE['ct_user_info']));
|
289 |
$js_info=mb_convert_encoding($js_info, "UTF-8", "Windows-1252");
|
290 |
}
|
291 |
|
292 |
-
if (isset($_COOKIE['ct_first_referer']))
|
293 |
-
{
|
294 |
-
$ct_first_referer = $_COOKIE['ct_first_referer'];
|
295 |
-
}
|
296 |
-
else
|
297 |
-
{
|
298 |
-
$ct_first_referer = 'null';
|
299 |
-
}
|
300 |
-
//$post_id=url_to_postid($_SERVER['HTTP_ORIGIN'].@$_SERVER['REQUEST_URI']);
|
301 |
-
//$post_type=get_post_type($post_id);
|
302 |
-
|
303 |
return $sender_info = array(
|
304 |
'page_url' => htmlspecialchars(@$_SERVER['SERVER_NAME'].@$_SERVER['REQUEST_URI']),
|
305 |
'cms_lang' => substr(get_locale(), 0, 2),
|
@@ -313,8 +284,6 @@ function get_sender_info() {
|
|
313 |
'ct_options' => json_encode($options2server),
|
314 |
'fields_number' => sizeof($_POST),
|
315 |
'js_info' => $js_info,
|
316 |
-
'ct_first_referer' => $ct_first_referer,
|
317 |
-
//'post_type' => $post_type,
|
318 |
);
|
319 |
}
|
320 |
|
@@ -323,6 +292,8 @@ function get_sender_info() {
|
|
323 |
* @return null|0|1;
|
324 |
*/
|
325 |
function ct_cookies_test ($test = false) {
|
|
|
|
|
326 |
$cookie_label = 'ct_cookies_test';
|
327 |
$secret_hash = ct_get_checkjs_value();
|
328 |
|
@@ -334,7 +305,12 @@ function ct_cookies_test ($test = false) {
|
|
334 |
$result = 0;
|
335 |
}
|
336 |
} else {
|
337 |
-
|
|
|
|
|
|
|
|
|
|
|
338 |
|
339 |
if ($test) {
|
340 |
$result = 0;
|
@@ -439,7 +415,8 @@ function ct_def_options() {
|
|
439 |
'ssl_on' => 0, // Secure connection to servers
|
440 |
'relevance_test' => 0, // Test comment for relevance
|
441 |
'notice_api_errors' => 0, // Send API error notices to WP admin
|
442 |
-
'user_token'=>'' //user token for auto login into spam statistics
|
|
|
443 |
);
|
444 |
}
|
445 |
|
@@ -801,4 +778,4 @@ function cleantalk_debug($key,$value)
|
|
801 |
@header($key.": ".$value);
|
802 |
}
|
803 |
}
|
804 |
-
?>
|
1 |
<?php
|
2 |
|
|
|
3 |
$ct_plugin_name = 'Anti-spam by CleanTalk';
|
4 |
$ct_checkjs_frm = 'ct_checkjs_frm';
|
5 |
$ct_checkjs_register_form = 'ct_checkjs_register_form';
|
131 |
*/
|
132 |
function ct_base_call($params = array()) {
|
133 |
global $wpdb, $ct_agent_version, $ct_formtime_label, $ct_options, $ct_data;
|
134 |
+
|
135 |
$ct_options=ct_get_options();
|
136 |
$ct_data=ct_get_data();
|
137 |
|
177 |
$ct_request->last_error_text=$ct_data['last_error_text'];
|
178 |
}
|
179 |
|
|
|
180 |
|
181 |
$ct_result = @$ct->isAllowMessage($ct_request);
|
182 |
if ($ct->server_change) {
|
214 |
else
|
215 |
{
|
216 |
ct_add_event('yes');
|
|
|
|
|
|
|
|
|
|
|
217 |
}
|
218 |
return array('ct' => $ct, 'ct_result' => $ct_result);
|
219 |
}
|
240 |
* @return array
|
241 |
*/
|
242 |
function get_sender_info() {
|
243 |
+
global $ct_direct_post, $ct_options, $ct_data, $wp_rewrite;
|
244 |
|
245 |
$ct_options = ct_get_options();
|
246 |
$ct_data = ct_get_data();
|
263 |
}
|
264 |
}
|
265 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
266 |
$options2server=$ct_options;
|
267 |
$js_info='';
|
268 |
+
if(isset($_COOKIE['ct_user_info']) && function_exists('mb_convert_encoding'))
|
269 |
{
|
270 |
$js_info=stripslashes(rawurldecode($_COOKIE['ct_user_info']));
|
271 |
$js_info=mb_convert_encoding($js_info, "UTF-8", "Windows-1252");
|
272 |
}
|
273 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
274 |
return $sender_info = array(
|
275 |
'page_url' => htmlspecialchars(@$_SERVER['SERVER_NAME'].@$_SERVER['REQUEST_URI']),
|
276 |
'cms_lang' => substr(get_locale(), 0, 2),
|
284 |
'ct_options' => json_encode($options2server),
|
285 |
'fields_number' => sizeof($_POST),
|
286 |
'js_info' => $js_info,
|
|
|
|
|
287 |
);
|
288 |
}
|
289 |
|
292 |
* @return null|0|1;
|
293 |
*/
|
294 |
function ct_cookies_test ($test = false) {
|
295 |
+
$ct_options = ct_get_options();
|
296 |
+
|
297 |
$cookie_label = 'ct_cookies_test';
|
298 |
$secret_hash = ct_get_checkjs_value();
|
299 |
|
305 |
$result = 0;
|
306 |
}
|
307 |
} else {
|
308 |
+
//
|
309 |
+
// Do not generate if admin turned off the cookies.
|
310 |
+
//
|
311 |
+
if (isset($ct_options['set_cookies']) && $ct_options['set_cookies'] == 1) {
|
312 |
+
@setcookie($cookie_label, $secret_hash, 0, '/');
|
313 |
+
}
|
314 |
|
315 |
if ($test) {
|
316 |
$result = 0;
|
415 |
'ssl_on' => 0, // Secure connection to servers
|
416 |
'relevance_test' => 0, // Test comment for relevance
|
417 |
'notice_api_errors' => 0, // Send API error notices to WP admin
|
418 |
+
'user_token'=>'', //user token for auto login into spam statistics
|
419 |
+
'set_cookies'=> 1 // Disable cookies generatation to be compatible with Varnish.
|
420 |
);
|
421 |
}
|
422 |
|
778 |
@header($key.": ".$value);
|
779 |
}
|
780 |
}
|
781 |
+
?>
|
inc/cleantalk-public.php
CHANGED
@@ -5,23 +5,11 @@
|
|
5 |
* @return mixed[] Array of options
|
6 |
*/
|
7 |
function ct_init() {
|
8 |
-
global $ct_wplp_result_label, $ct_jp_comments, $ct_post_data_label, $ct_post_data_authnet_label, $ct_formtime_label, $ct_direct_post, $ct_options, $ct_data, $ct_check_post_result, $test_external_forms;
|
9 |
|
10 |
$ct_options=ct_get_options();
|
11 |
$ct_data=ct_get_data();
|
12 |
|
13 |
-
if(!isset($_COOKIE['ct_first_referer']))
|
14 |
-
{
|
15 |
-
if(isset($_SERVER['HTTP_REFERER']))
|
16 |
-
{
|
17 |
-
setcookie("ct_first_referer", $_SERVER['HTTP_REFERER'], 0, '/');
|
18 |
-
}
|
19 |
-
else
|
20 |
-
{
|
21 |
-
setcookie("ct_first_referer", "null", 0, '/');
|
22 |
-
}
|
23 |
-
}
|
24 |
-
|
25 |
//fix for EPM registration form
|
26 |
if(isset($_POST) && isset($_POST['reg_email']) && shortcode_exists( 'epm_registration_form' ))
|
27 |
{
|
@@ -167,8 +155,6 @@ function ct_init() {
|
|
167 |
ct_s2member_registration_test();
|
168 |
}
|
169 |
|
170 |
-
|
171 |
-
|
172 |
//
|
173 |
// New user approve hack
|
174 |
// https://wordpress.org/plugins/new-user-approve/
|
@@ -177,6 +163,13 @@ function ct_init() {
|
|
177 |
add_action('register_post', 'ct_register_post', 1, 3);
|
178 |
}
|
179 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
180 |
//
|
181 |
// Load JS code to website footer
|
182 |
//
|
@@ -279,7 +272,7 @@ function ct_add_hidden_fields($random_key = false, $field_name = 'ct_checkjs', $
|
|
279 |
$ct_checkjs_key = ct_get_checkjs_value($random_key);
|
280 |
$field_id_hash = md5(rand(0, 1000));
|
281 |
|
282 |
-
if ($cookie_check) {
|
283 |
$html = '
|
284 |
<script type="text/javascript">
|
285 |
function ctSetCookie(c_name, value, def_value) {
|
@@ -527,7 +520,6 @@ function ct_preprocess_comment($comment) {
|
|
527 |
if (($comment['comment_type']!='trackback') && (ct_is_user_enable() === false || $ct_options['comments_test'] == 0 || $ct_comment_done || (isset($_SERVER['HTTP_REFERER']) && stripos($_SERVER['HTTP_REFERER'],'page=wysija_campaigns&action=editTemplate')!==false) || $is_max_comments || strpos($_SERVER['REQUEST_URI'],'/wp-admin/')!==false)) {
|
528 |
return $comment;
|
529 |
}
|
530 |
-
|
531 |
|
532 |
$local_blacklists = wp_blacklist_check(
|
533 |
$comment['comment_author'],
|
@@ -1638,6 +1630,71 @@ function ct_check_wplp(){
|
|
1638 |
ct_die_extended($cleantalk_comment);
|
1639 |
}
|
1640 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1641 |
/**
|
1642 |
* Test S2member registration
|
1643 |
* @return array with errors
|
@@ -1781,11 +1838,12 @@ function ct_contact_form_validate () {
|
|
1781 |
isset($_POST['bbp_reply_content']) ||
|
1782 |
isset($_COOKIE[LOGGED_IN_COOKIE]) ||
|
1783 |
isset($_POST['fscf_submitted']) ||
|
1784 |
-
strpos($_SERVER['REQUEST_URI'],'/wc-api/')!==false
|
|
|
1785 |
) {
|
1786 |
return null;
|
1787 |
}
|
1788 |
-
|
1789 |
//@header("CtConditions: Passed");
|
1790 |
cleantalk_debug("CtConditions", "Passed");
|
1791 |
|
@@ -1836,10 +1894,11 @@ function ct_contact_form_validate () {
|
|
1836 |
$tmp=$_POST['TellAFriend_Link'];
|
1837 |
unset($_POST['TellAFriend_Link']);
|
1838 |
}
|
1839 |
-
|
1840 |
//@header("CtBaseCallBefore: 1");
|
1841 |
cleantalk_debug("CtBaseCallBefore", "1");
|
1842 |
|
|
|
1843 |
$ct_base_call_result = ct_base_call(array(
|
1844 |
'message' => $subject . "\n\n" . $message,
|
1845 |
'example' => null,
|
@@ -1849,9 +1908,10 @@ function ct_contact_form_validate () {
|
|
1849 |
'sender_info' => get_sender_info(),
|
1850 |
'checkjs' => $checkjs
|
1851 |
));
|
|
|
1852 |
//@header("CtBaseCall: Executed");
|
1853 |
cleantalk_debug("CtBaseCall", "Executed");
|
1854 |
-
|
1855 |
if(isset($_POST['TellAFriend_Link']))
|
1856 |
{
|
1857 |
$_POST['TellAFriend_Link']=$tmp;
|
@@ -1945,6 +2005,7 @@ function ct_contact_form_validate_postdata () {
|
|
1945 |
isset($_POST['bbp_topic_content']) ||
|
1946 |
isset($_POST['bbp_reply_content']) ||
|
1947 |
isset($_POST['fscf_submitted']) ||
|
|
|
1948 |
strpos($_SERVER['REQUEST_URI'],'/wc-api/')!==false
|
1949 |
) {
|
1950 |
return null;
|
@@ -2086,4 +2147,4 @@ function ct_print_form($arr,$k)
|
|
2086 |
}
|
2087 |
}
|
2088 |
|
2089 |
-
?>
|
5 |
* @return mixed[] Array of options
|
6 |
*/
|
7 |
function ct_init() {
|
8 |
+
global $ct_wplp_result_label, $ct_jp_comments, $ct_post_data_label, $ct_post_data_authnet_label, $ct_formtime_label, $ct_direct_post, $ct_options, $ct_data, $ct_check_post_result, $test_external_forms, $cleantalk_executed;
|
9 |
|
10 |
$ct_options=ct_get_options();
|
11 |
$ct_data=ct_get_data();
|
12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
//fix for EPM registration form
|
14 |
if(isset($_POST) && isset($_POST['reg_email']) && shortcode_exists( 'epm_registration_form' ))
|
15 |
{
|
155 |
ct_s2member_registration_test();
|
156 |
}
|
157 |
|
|
|
|
|
158 |
//
|
159 |
// New user approve hack
|
160 |
// https://wordpress.org/plugins/new-user-approve/
|
163 |
add_action('register_post', 'ct_register_post', 1, 3);
|
164 |
}
|
165 |
|
166 |
+
//
|
167 |
+
// Gravity forms
|
168 |
+
//
|
169 |
+
if (defined('GF_MIN_WP_VERSION')) {
|
170 |
+
add_filter('gform_entry_is_spam', 'ct_gforms_spam_test', 1, 3);
|
171 |
+
}
|
172 |
+
|
173 |
//
|
174 |
// Load JS code to website footer
|
175 |
//
|
272 |
$ct_checkjs_key = ct_get_checkjs_value($random_key);
|
273 |
$field_id_hash = md5(rand(0, 1000));
|
274 |
|
275 |
+
if ($cookie_check && isset($ct_options['set_cookies']) && $ct_options['set_cookies'] == 1) {
|
276 |
$html = '
|
277 |
<script type="text/javascript">
|
278 |
function ctSetCookie(c_name, value, def_value) {
|
520 |
if (($comment['comment_type']!='trackback') && (ct_is_user_enable() === false || $ct_options['comments_test'] == 0 || $ct_comment_done || (isset($_SERVER['HTTP_REFERER']) && stripos($_SERVER['HTTP_REFERER'],'page=wysija_campaigns&action=editTemplate')!==false) || $is_max_comments || strpos($_SERVER['REQUEST_URI'],'/wp-admin/')!==false)) {
|
521 |
return $comment;
|
522 |
}
|
|
|
523 |
|
524 |
$local_blacklists = wp_blacklist_check(
|
525 |
$comment['comment_author'],
|
1630 |
ct_die_extended($cleantalk_comment);
|
1631 |
}
|
1632 |
|
1633 |
+
/**
|
1634 |
+
* Gravity forms anti-spam test.
|
1635 |
+
* @return boolean
|
1636 |
+
*/
|
1637 |
+
function ct_gforms_spam_test ($is_spam, $form, $entry) {
|
1638 |
+
global $ct_options, $ct_data, $cleantalk_executed;
|
1639 |
+
|
1640 |
+
$ct_options = ct_get_options();
|
1641 |
+
$ct_data = ct_get_data();
|
1642 |
+
|
1643 |
+
if ($is_spam) {
|
1644 |
+
return $is_spam;
|
1645 |
+
}
|
1646 |
+
|
1647 |
+
if ($ct_options['contact_forms_test'] == 0) {
|
1648 |
+
return $is_spam;
|
1649 |
+
}
|
1650 |
+
|
1651 |
+
// Return unchanged result if the submission was already tested.
|
1652 |
+
if ($cleantalk_executed) {
|
1653 |
+
return $is_spam;
|
1654 |
+
}
|
1655 |
+
|
1656 |
+
$sender_info='';
|
1657 |
+
|
1658 |
+
$checkjs = js_test('ct_checkjs', $_COOKIE, true);
|
1659 |
+
|
1660 |
+
$post_info['comment_type'] = 'feedback';
|
1661 |
+
$post_info = json_encode($post_info);
|
1662 |
+
if ($post_info === false)
|
1663 |
+
$post_info = '';
|
1664 |
+
|
1665 |
+
$sender_email = null;
|
1666 |
+
$sender_nickname = null;
|
1667 |
+
$subject = '';
|
1668 |
+
$message = '';
|
1669 |
+
foreach ($_POST as $k => $v) {
|
1670 |
+
if(is_array($v)) {
|
1671 |
+
continue;
|
1672 |
+
}
|
1673 |
+
if ($sender_email === null && preg_match("/^\S+@\S+\.\S+$/", $v)) {
|
1674 |
+
$sender_email = $v;
|
1675 |
+
continue;
|
1676 |
+
}
|
1677 |
+
$message.= $v."\n";
|
1678 |
+
}
|
1679 |
+
|
1680 |
+
$ct_base_call_result = ct_base_call(array(
|
1681 |
+
'message' => $message,
|
1682 |
+
'example' => null,
|
1683 |
+
'sender_email' => $sender_email,
|
1684 |
+
'sender_nickname' => $sender_nickname,
|
1685 |
+
'post_info' => $post_info,
|
1686 |
+
'sender_info' => $sender_info,
|
1687 |
+
'checkjs' => $checkjs
|
1688 |
+
));
|
1689 |
+
$ct_result = $ct_base_call_result['ct_result'];
|
1690 |
+
|
1691 |
+
if ($ct_result->allow == 0) {
|
1692 |
+
$is_spam = true;
|
1693 |
+
}
|
1694 |
+
|
1695 |
+
return $is_spam;
|
1696 |
+
}
|
1697 |
+
|
1698 |
/**
|
1699 |
* Test S2member registration
|
1700 |
* @return array with errors
|
1838 |
isset($_POST['bbp_reply_content']) ||
|
1839 |
isset($_COOKIE[LOGGED_IN_COOKIE]) ||
|
1840 |
isset($_POST['fscf_submitted']) ||
|
1841 |
+
strpos($_SERVER['REQUEST_URI'],'/wc-api/')!==false ||
|
1842 |
+
isset($_POST['log']) && isset($_POST['pwd']) && isset($_POST['wp-submit'])
|
1843 |
) {
|
1844 |
return null;
|
1845 |
}
|
1846 |
+
|
1847 |
//@header("CtConditions: Passed");
|
1848 |
cleantalk_debug("CtConditions", "Passed");
|
1849 |
|
1894 |
$tmp=$_POST['TellAFriend_Link'];
|
1895 |
unset($_POST['TellAFriend_Link']);
|
1896 |
}
|
1897 |
+
|
1898 |
//@header("CtBaseCallBefore: 1");
|
1899 |
cleantalk_debug("CtBaseCallBefore", "1");
|
1900 |
|
1901 |
+
|
1902 |
$ct_base_call_result = ct_base_call(array(
|
1903 |
'message' => $subject . "\n\n" . $message,
|
1904 |
'example' => null,
|
1908 |
'sender_info' => get_sender_info(),
|
1909 |
'checkjs' => $checkjs
|
1910 |
));
|
1911 |
+
|
1912 |
//@header("CtBaseCall: Executed");
|
1913 |
cleantalk_debug("CtBaseCall", "Executed");
|
1914 |
+
|
1915 |
if(isset($_POST['TellAFriend_Link']))
|
1916 |
{
|
1917 |
$_POST['TellAFriend_Link']=$tmp;
|
2005 |
isset($_POST['bbp_topic_content']) ||
|
2006 |
isset($_POST['bbp_reply_content']) ||
|
2007 |
isset($_POST['fscf_submitted']) ||
|
2008 |
+
isset($_POST['log']) && isset($_POST['pwd']) && isset($_POST['wp-submit'])||
|
2009 |
strpos($_SERVER['REQUEST_URI'],'/wc-api/')!==false
|
2010 |
) {
|
2011 |
return null;
|
2147 |
}
|
2148 |
}
|
2149 |
|
2150 |
+
?>
|
inc/cleantalk_nocache.js
CHANGED
@@ -47,27 +47,16 @@ function ct_getCookie(name) {
|
|
47 |
|
48 |
function ct_setCookie(name, value)
|
49 |
{
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
domain=tmp.join('.');*/
|
61 |
-
|
62 |
-
document.cookie = name+" =; expires=Thu, 01 Jan 1970 00:00:01 GMT; path = /";
|
63 |
-
document.cookie = name+" =; expires=Thu, 01 Jan 1970 00:00:01 GMT";
|
64 |
-
//document.cookie = name+" =; expires=Thu, 01 Jan 1970 00:00:01 GMT; path = /; domain = " + domain;
|
65 |
-
|
66 |
-
var date = new Date;
|
67 |
-
date.setDate(date.getDate() + 1);
|
68 |
-
//setTimeout(function() { document.cookie = name+"=" + value + "; expires=" + date.toUTCString() + "; path = /; domain = " + domain}, 500)
|
69 |
-
setTimeout(function() { document.cookie = name+"=" + value + "; expires=" + date.toUTCString() + "; path = /;"}, 500);
|
70 |
-
//document.cookie = name+"=" + value + "; expires=" + date.toUTCString() + "; path = /;";
|
71 |
}
|
72 |
|
73 |
function ct_callback(req)
|
@@ -127,7 +116,6 @@ if(ct_nocache_executed==undefined)
|
|
127 |
if(old_timestamp==undefined||new_timestamp-old_timestamp>86400||checkjs_cookie==undefined) //86400 is 24 hours
|
128 |
{
|
129 |
ct_setCookie('ct_timestamp', new_timestamp);
|
130 |
-
//alert('set!');
|
131 |
sendRequest(ct_ajaxurl+'?'+Math.random(),ct_callback,'action=ct_get_cookie');
|
132 |
}
|
133 |
|
@@ -206,4 +194,4 @@ if(ct_nocache_executed==undefined)
|
|
206 |
|
207 |
setTimeout(function() { document.cookie = "ct_user_info = "+escape(JSON.stringify(cleantalk_user_info))+"; path = /;"}, 500);
|
208 |
}
|
209 |
-
}
|
47 |
|
48 |
function ct_setCookie(name, value)
|
49 |
{
|
50 |
+
if (ct_set_cookies_flag) {
|
51 |
+
document.cookie = name+" =; expires=Thu, 01 Jan 1970 00:00:01 GMT; path = /";
|
52 |
+
document.cookie = name+" =; expires=Thu, 01 Jan 1970 00:00:01 GMT";
|
53 |
+
|
54 |
+
var date = new Date;
|
55 |
+
date.setDate(date.getDate() + 1);
|
56 |
+
setTimeout(function() { document.cookie = name+"=" + value + "; expires=" + date.toUTCString() + "; path = /;"}, 500);
|
57 |
+
}
|
58 |
+
|
59 |
+
return null;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
}
|
61 |
|
62 |
function ct_callback(req)
|
116 |
if(old_timestamp==undefined||new_timestamp-old_timestamp>86400||checkjs_cookie==undefined) //86400 is 24 hours
|
117 |
{
|
118 |
ct_setCookie('ct_timestamp', new_timestamp);
|
|
|
119 |
sendRequest(ct_ajaxurl+'?'+Math.random(),ct_callback,'action=ct_get_cookie');
|
120 |
}
|
121 |
|
194 |
|
195 |
setTimeout(function() { document.cookie = "ct_user_info = "+escape(JSON.stringify(cleantalk_user_info))+"; path = /;"}, 500);
|
196 |
}
|
197 |
+
}
|
readme.txt
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
=== Anti-Spam by CleanTalk - No Captcha, no comments & registrations spam ===
|
2 |
Contributors: znaeff, shagimuratov, vlad-cleantalk
|
3 |
-
Tags: anti-spam, antispam, bbpress, buddypress, captcha, cf7 spam, comments, contact form spam, signup, spam, 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, 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, signup spam, filter, user registration spam,pingback,trackback,newsletter,puzzle,question
|
4 |
Requires at least: 3.0
|
5 |
Tested up to: 4.4.2
|
6 |
-
Stable tag: 5.
|
7 |
License: GPLv2
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
@@ -228,6 +228,9 @@ Plugin by default pass pingbacks without any checks. All trackbacks will be bloc
|
|
228 |
= Can I use CleanTalk with Akismet? =
|
229 |
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.
|
230 |
|
|
|
|
|
|
|
231 |
= Can I use CleanTalk to remove pending spam comments? =
|
232 |
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.
|
233 |
|
@@ -336,7 +339,11 @@ If you think that message was blocked wrong, let us know about it.
|
|
336 |
If you or someone from your visitors have error "Forbidden. Enable JavaScript." please check JavaScript support in your browser and do JavaScript test at this page <a href="https://cleantalk.org/checkout-javascript-support">Check out JavaScript support</a>.
|
337 |
|
338 |
= Does the plugin work with Varnish? =
|
339 |
-
CleanTalk works with Varnish, it protects WordPress against spam, but the plugin generates a few cookies that uses to protect against spam bots it disables Varnish cache on pages with cookies
|
|
|
|
|
|
|
|
|
340 |
|
341 |
== Other notes ==
|
342 |
|
@@ -350,11 +357,12 @@ Technical Support 24/7 to help you get accustomed to the work of the anti-spam s
|
|
350 |
If you have specific needs, you can contact our Cleantalk customer support team at any time, day or night.
|
351 |
We strive to answer all emails within 1-2 hours, and most are answered in substantially less time.
|
352 |
|
353 |
-
When you contact CleanTalk
|
|
|
354 |
1. Site URL.
|
355 |
-
|
356 |
-
|
357 |
-
This will help us give you a faster response. Please write us
|
358 |
|
359 |
If you're having trouble getting things to work after installing the plugin, here are a few things to check:
|
360 |
|
@@ -427,6 +435,15 @@ WordPress 3.0 at least. PHP 5 with CURL or file_get_contents() function and enab
|
|
427 |
1. CleanTalk works faster than most of other anti-spam plugins.
|
428 |
|
429 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
430 |
= 5.36.1 2016-02-05 =
|
431 |
* Fixed bug, when users receive error after logging in
|
432 |
|
@@ -662,6 +679,9 @@ WordPress 3.0 at least. PHP 5 with CURL or file_get_contents() function and enab
|
|
662 |
* Added current options to array sended to CleanTalk servers.
|
663 |
|
664 |
== Upgrade Notice ==
|
|
|
|
|
|
|
665 |
= 5.36.1 2016-02-05 =
|
666 |
* Fixed bug, when users receive error after logging in
|
667 |
|
1 |
=== Anti-Spam by CleanTalk - No Captcha, no comments & registrations spam ===
|
2 |
Contributors: znaeff, shagimuratov, vlad-cleantalk
|
3 |
+
Tags: anti-spam, antispam, bbpress, buddypress, captcha, cf7 spam, comments, contact form spam, signup, spam, 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, 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, signup spam, filter, user registration spam,pingback,trackback,newsletter,puzzle,question,varnish
|
4 |
Requires at least: 3.0
|
5 |
Tested up to: 4.4.2
|
6 |
+
Stable tag: 5.37.3
|
7 |
License: GPLv2
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
228 |
= Can I use CleanTalk with Akismet? =
|
229 |
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.
|
230 |
|
231 |
+
= Is CleanTalk better than Akismet? =
|
232 |
+
Please look features comparison here https://cleantalk.org/cleantalk-vs-akismet
|
233 |
+
|
234 |
= Can I use CleanTalk to remove pending spam comments? =
|
235 |
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.
|
236 |
|
339 |
If you or someone from your visitors have error "Forbidden. Enable JavaScript." please check JavaScript support in your browser and do JavaScript test at this page <a href="https://cleantalk.org/checkout-javascript-support">Check out JavaScript support</a>.
|
340 |
|
341 |
= Does the plugin work with Varnish? =
|
342 |
+
CleanTalk works with Varnish, it protects WordPress against spam, but by default the plugin generates a few cookies that uses to protect against spam bots it disables Varnish cache on pages with CleanTalk's cookies. To resolve issue with cache turn off option 'Set cookies' in plugin settings.
|
343 |
+
|
344 |
+
WordPress console -> Settings -> CleanTalk -> Advanced settings
|
345 |
+
|
346 |
+
In that way plugin will protect WordPress comments, registrations and most of popular contact forms, but will not protect some of rarely used contact forms.
|
347 |
|
348 |
== Other notes ==
|
349 |
|
357 |
If you have specific needs, you can contact our Cleantalk customer support team at any time, day or night.
|
358 |
We strive to answer all emails within 1-2 hours, and most are answered in substantially less time.
|
359 |
|
360 |
+
When you contact CleanTalk technical support, we recommend to give us following:
|
361 |
+
|
362 |
1. Site URL.
|
363 |
+
1. CMS name and version.
|
364 |
+
1. URL of page with the comments / registration / feedback form.
|
365 |
+
This will help us give you a faster response. Please write us here https://cleantalk.org/my/support.
|
366 |
|
367 |
If you're having trouble getting things to work after installing the plugin, here are a few things to check:
|
368 |
|
435 |
1. CleanTalk works faster than most of other anti-spam plugins.
|
436 |
|
437 |
== Changelog ==
|
438 |
+
= 5.37.3 2016-03-10 =
|
439 |
+
* Fixed bug with broken MailPoet previews.
|
440 |
+
* Fixed bug with broken Geo My WP pop-up windows.
|
441 |
+
* Fixed issue with mb_convert_encoding() function.
|
442 |
+
* Removed double JavaScript code in front-end.
|
443 |
+
* Removed unused variables in anti spam logic.
|
444 |
+
* Added option 'Set cookies' (turned on by default). If the option turned off, the plugin will not generate cookies, but in this case plugin will not protect some rarely used contact forms. Any way, turn this option off be compatible with Varnish in spam protection for WordPress core comments, registrations and most popular contact forms.
|
445 |
+
* Added spam protection for Gravity forms via option 'Contact forms' with hook gform_entry_is_spam().
|
446 |
+
|
447 |
= 5.36.1 2016-02-05 =
|
448 |
* Fixed bug, when users receive error after logging in
|
449 |
|
679 |
* Added current options to array sended to CleanTalk servers.
|
680 |
|
681 |
== Upgrade Notice ==
|
682 |
+
= 5.37.3 2016-03-10 =
|
683 |
+
* Minor bug fixes. Added an option to support Varnish cache.
|
684 |
+
|
685 |
= 5.36.1 2016-02-05 =
|
686 |
* Fixed bug, when users receive error after logging in
|
687 |
|