Version Description
June 6 2019 = * Mod: Description for Search form protection. * Fix: CSS and JS attachment. * Fix: Undefined index error.
Download this release
Release Info
Developer | Safronik |
Plugin | Spam protection, AntiSpam, FireWall by CleanTalk |
Version | 5.120.1 |
Comparing to | |
See all releases |
Code changes from version 5.120 to 5.120.1
- apbct-fingerprint.js +0 -293
- cleantalk.php +23 -3
- inc/cleantalk-admin.php +1 -1
- inc/cleantalk-public.php +2 -2
- inc/cleantalk-settings.php +5 -1
- inc/cleantalk_nocache.js +0 -210
- js/cleantalk_nocache.min.js +2 -0
- js/cleantalk_nocache.min.js.map +1 -0
- readme.txt +11 -1
apbct-fingerprint.js
DELETED
@@ -1,293 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* fingerprintJS 0.5.5 - Fast browser fingerprint library
|
3 |
-
* https://github.com/Valve/fingerprintjs
|
4 |
-
* Copyright (c) 2013 Valentin Vasilyev (valentin.vasilyev@outlook.com)
|
5 |
-
* Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.
|
6 |
-
*
|
7 |
-
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
8 |
-
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
9 |
-
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
10 |
-
* ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
|
11 |
-
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
12 |
-
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
13 |
-
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
14 |
-
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
15 |
-
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
16 |
-
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
17 |
-
*/
|
18 |
-
console.log('some1');
|
19 |
-
;(function (name, context, definition) {
|
20 |
-
if (typeof module !== 'undefined' && module.exports) { module.exports = definition(); }
|
21 |
-
else if (typeof define === 'function' && define.amd) { define(definition); }
|
22 |
-
else { context[name] = definition(); }
|
23 |
-
})('Fingerprint', this, function () {
|
24 |
-
'use strict';
|
25 |
-
|
26 |
-
var Fingerprint = function (options) {
|
27 |
-
var nativeForEach, nativeMap;
|
28 |
-
nativeForEach = Array.prototype.forEach;
|
29 |
-
nativeMap = Array.prototype.map;
|
30 |
-
|
31 |
-
this.each = function (obj, iterator, context) {
|
32 |
-
if (obj === null) {
|
33 |
-
return;
|
34 |
-
}
|
35 |
-
if (nativeForEach && obj.forEach === nativeForEach) {
|
36 |
-
obj.forEach(iterator, context);
|
37 |
-
} else if (obj.length === +obj.length) {
|
38 |
-
for (var i = 0, l = obj.length; i < l; i++) {
|
39 |
-
if (iterator.call(context, obj[i], i, obj) === {}) return;
|
40 |
-
}
|
41 |
-
} else {
|
42 |
-
for (var key in obj) {
|
43 |
-
if (obj.hasOwnProperty(key)) {
|
44 |
-
if (iterator.call(context, obj[key], key, obj) === {}) return;
|
45 |
-
}
|
46 |
-
}
|
47 |
-
}
|
48 |
-
};
|
49 |
-
|
50 |
-
this.map = function(obj, iterator, context) {
|
51 |
-
var results = [];
|
52 |
-
// Not using strict equality so that this acts as a
|
53 |
-
// shortcut to checking for `null` and `undefined`.
|
54 |
-
if (obj == null) return results;
|
55 |
-
if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context);
|
56 |
-
this.each(obj, function(value, index, list) {
|
57 |
-
results[results.length] = iterator.call(context, value, index, list);
|
58 |
-
});
|
59 |
-
return results;
|
60 |
-
};
|
61 |
-
|
62 |
-
if (typeof options == 'object'){
|
63 |
-
this.hasher = options.hasher;
|
64 |
-
this.screen_resolution = options.screen_resolution;
|
65 |
-
this.screen_orientation = options.screen_orientation;
|
66 |
-
this.canvas = options.canvas;
|
67 |
-
this.ie_activex = options.ie_activex;
|
68 |
-
} else if(typeof options == 'function'){
|
69 |
-
this.hasher = options;
|
70 |
-
}
|
71 |
-
};
|
72 |
-
|
73 |
-
Fingerprint.prototype = {
|
74 |
-
get: function(){
|
75 |
-
var keys = [];
|
76 |
-
keys.push(navigator.userAgent);
|
77 |
-
keys.push(navigator.language);
|
78 |
-
keys.push(screen.colorDepth);
|
79 |
-
if (this.screen_resolution) {
|
80 |
-
var resolution = this.getScreenResolution();
|
81 |
-
if (typeof resolution !== 'undefined'){ // headless browsers, such as phantomjs
|
82 |
-
keys.push(resolution.join('x'));
|
83 |
-
}
|
84 |
-
}
|
85 |
-
keys.push(new Date().getTimezoneOffset());
|
86 |
-
keys.push(this.hasSessionStorage());
|
87 |
-
keys.push(this.hasLocalStorage());
|
88 |
-
keys.push(this.hasIndexDb());
|
89 |
-
//body might not be defined at this point or removed programmatically
|
90 |
-
if(document.body){
|
91 |
-
keys.push(typeof(document.body.addBehavior));
|
92 |
-
} else {
|
93 |
-
keys.push(typeof undefined);
|
94 |
-
}
|
95 |
-
keys.push(typeof(window.openDatabase));
|
96 |
-
keys.push(navigator.cpuClass);
|
97 |
-
keys.push(navigator.platform);
|
98 |
-
keys.push(navigator.doNotTrack);
|
99 |
-
keys.push(this.getPluginsString());
|
100 |
-
if(this.canvas && this.isCanvasSupported()){
|
101 |
-
keys.push(this.getCanvasFingerprint());
|
102 |
-
}
|
103 |
-
if(this.hasher){
|
104 |
-
return this.hasher(keys.join('###'), 31);
|
105 |
-
} else {
|
106 |
-
return this.murmurhash3_32_gc(keys.join('###'), 31);
|
107 |
-
}
|
108 |
-
},
|
109 |
-
|
110 |
-
/**
|
111 |
-
* JS Implementation of MurmurHash3 (r136) (as of May 20, 2011)
|
112 |
-
*
|
113 |
-
* @author <a href="mailto:gary.court@gmail.com">Gary Court</a>
|
114 |
-
* @see http://github.com/garycourt/murmurhash-js
|
115 |
-
* @author <a href="mailto:aappleby@gmail.com">Austin Appleby</a>
|
116 |
-
* @see http://sites.google.com/site/murmurhash/
|
117 |
-
*
|
118 |
-
* @param {string} key ASCII only
|
119 |
-
* @param {number} seed Positive integer only
|
120 |
-
* @return {number} 32-bit positive integer hash
|
121 |
-
*/
|
122 |
-
|
123 |
-
murmurhash3_32_gc: function(key, seed) {
|
124 |
-
var remainder, bytes, h1, h1b, c1, c2, k1, i;
|
125 |
-
|
126 |
-
remainder = key.length & 3; // key.length % 4
|
127 |
-
bytes = key.length - remainder;
|
128 |
-
h1 = seed;
|
129 |
-
c1 = 0xcc9e2d51;
|
130 |
-
c2 = 0x1b873593;
|
131 |
-
i = 0;
|
132 |
-
|
133 |
-
while (i < bytes) {
|
134 |
-
k1 =
|
135 |
-
((key.charCodeAt(i) & 0xff)) |
|
136 |
-
((key.charCodeAt(++i) & 0xff) << 8) |
|
137 |
-
((key.charCodeAt(++i) & 0xff) << 16) |
|
138 |
-
((key.charCodeAt(++i) & 0xff) << 24);
|
139 |
-
++i;
|
140 |
-
|
141 |
-
k1 = ((((k1 & 0xffff) * c1) + ((((k1 >>> 16) * c1) & 0xffff) << 16))) & 0xffffffff;
|
142 |
-
k1 = (k1 << 15) | (k1 >>> 17);
|
143 |
-
k1 = ((((k1 & 0xffff) * c2) + ((((k1 >>> 16) * c2) & 0xffff) << 16))) & 0xffffffff;
|
144 |
-
|
145 |
-
h1 ^= k1;
|
146 |
-
h1 = (h1 << 13) | (h1 >>> 19);
|
147 |
-
h1b = ((((h1 & 0xffff) * 5) + ((((h1 >>> 16) * 5) & 0xffff) << 16))) & 0xffffffff;
|
148 |
-
h1 = (((h1b & 0xffff) + 0x6b64) + ((((h1b >>> 16) + 0xe654) & 0xffff) << 16));
|
149 |
-
}
|
150 |
-
|
151 |
-
k1 = 0;
|
152 |
-
|
153 |
-
switch (remainder) {
|
154 |
-
case 3: k1 ^= (key.charCodeAt(i + 2) & 0xff) << 16;
|
155 |
-
case 2: k1 ^= (key.charCodeAt(i + 1) & 0xff) << 8;
|
156 |
-
case 1: k1 ^= (key.charCodeAt(i) & 0xff);
|
157 |
-
|
158 |
-
k1 = (((k1 & 0xffff) * c1) + ((((k1 >>> 16) * c1) & 0xffff) << 16)) & 0xffffffff;
|
159 |
-
k1 = (k1 << 15) | (k1 >>> 17);
|
160 |
-
k1 = (((k1 & 0xffff) * c2) + ((((k1 >>> 16) * c2) & 0xffff) << 16)) & 0xffffffff;
|
161 |
-
h1 ^= k1;
|
162 |
-
}
|
163 |
-
|
164 |
-
h1 ^= key.length;
|
165 |
-
|
166 |
-
h1 ^= h1 >>> 16;
|
167 |
-
h1 = (((h1 & 0xffff) * 0x85ebca6b) + ((((h1 >>> 16) * 0x85ebca6b) & 0xffff) << 16)) & 0xffffffff;
|
168 |
-
h1 ^= h1 >>> 13;
|
169 |
-
h1 = ((((h1 & 0xffff) * 0xc2b2ae35) + ((((h1 >>> 16) * 0xc2b2ae35) & 0xffff) << 16))) & 0xffffffff;
|
170 |
-
h1 ^= h1 >>> 16;
|
171 |
-
|
172 |
-
return h1 >>> 0;
|
173 |
-
},
|
174 |
-
|
175 |
-
// https://bugzilla.mozilla.org/show_bug.cgi?id=781447
|
176 |
-
hasLocalStorage: function () {
|
177 |
-
try{
|
178 |
-
return !!window.localStorage;
|
179 |
-
} catch(e) {
|
180 |
-
return true; // SecurityError when referencing it means it exists
|
181 |
-
}
|
182 |
-
},
|
183 |
-
|
184 |
-
hasSessionStorage: function () {
|
185 |
-
try{
|
186 |
-
return !!window.sessionStorage;
|
187 |
-
} catch(e) {
|
188 |
-
return true; // SecurityError when referencing it means it exists
|
189 |
-
}
|
190 |
-
},
|
191 |
-
|
192 |
-
hasIndexDb: function () {
|
193 |
-
try{
|
194 |
-
return !!window.indexedDB;
|
195 |
-
} catch(e) {
|
196 |
-
return true; // SecurityError when referencing it means it exists
|
197 |
-
}
|
198 |
-
},
|
199 |
-
|
200 |
-
isCanvasSupported: function () {
|
201 |
-
var elem = document.createElement('canvas');
|
202 |
-
return !!(elem.getContext && elem.getContext('2d'));
|
203 |
-
},
|
204 |
-
|
205 |
-
isIE: function () {
|
206 |
-
if(navigator.appName === 'Microsoft Internet Explorer') {
|
207 |
-
return true;
|
208 |
-
} else if(navigator.appName === 'Netscape' && /Trident/.test(navigator.userAgent)){// IE 11
|
209 |
-
return true;
|
210 |
-
}
|
211 |
-
return false;
|
212 |
-
},
|
213 |
-
|
214 |
-
getPluginsString: function () {
|
215 |
-
if(this.isIE() && this.ie_activex){
|
216 |
-
return this.getIEPluginsString();
|
217 |
-
} else {
|
218 |
-
return this.getRegularPluginsString();
|
219 |
-
}
|
220 |
-
},
|
221 |
-
|
222 |
-
getRegularPluginsString: function () {
|
223 |
-
return this.map(navigator.plugins, function (p) {
|
224 |
-
var mimeTypes = this.map(p, function(mt){
|
225 |
-
return [mt.type, mt.suffixes].join('~');
|
226 |
-
}).join(',');
|
227 |
-
return [p.name, p.description, mimeTypes].join('::');
|
228 |
-
}, this).join(';');
|
229 |
-
},
|
230 |
-
|
231 |
-
getIEPluginsString: function () {
|
232 |
-
if(window.ActiveXObject){
|
233 |
-
var names = ['ShockwaveFlash.ShockwaveFlash',//flash plugin
|
234 |
-
'AcroPDF.PDF', // Adobe PDF reader 7+
|
235 |
-
'PDF.PdfCtrl', // Adobe PDF reader 6 and earlier, brrr
|
236 |
-
'QuickTime.QuickTime', // QuickTime
|
237 |
-
// 5 versions of real players
|
238 |
-
'rmocx.RealPlayer G2 Control',
|
239 |
-
'rmocx.RealPlayer G2 Control.1',
|
240 |
-
'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)',
|
241 |
-
'RealVideo.RealVideo(tm) ActiveX Control (32-bit)',
|
242 |
-
'RealPlayer',
|
243 |
-
'SWCtl.SWCtl', // ShockWave player
|
244 |
-
'WMPlayer.OCX', // Windows media player
|
245 |
-
'AgControl.AgControl', // Silverlight
|
246 |
-
'Skype.Detection'];
|
247 |
-
|
248 |
-
// starting to detect plugins in IE
|
249 |
-
return this.map(names, function(name){
|
250 |
-
try{
|
251 |
-
new ActiveXObject(name);
|
252 |
-
return name;
|
253 |
-
} catch(e){
|
254 |
-
return null;
|
255 |
-
}
|
256 |
-
}).join(';');
|
257 |
-
} else {
|
258 |
-
return ""; // behavior prior version 0.5.0, not breaking backwards compat.
|
259 |
-
}
|
260 |
-
},
|
261 |
-
|
262 |
-
getScreenResolution: function () {
|
263 |
-
var resolution;
|
264 |
-
if(this.screen_orientation){
|
265 |
-
resolution = (screen.height > screen.width) ? [screen.height, screen.width] : [screen.width, screen.height];
|
266 |
-
}else{
|
267 |
-
resolution = [screen.height, screen.width];
|
268 |
-
}
|
269 |
-
return resolution;
|
270 |
-
},
|
271 |
-
|
272 |
-
getCanvasFingerprint: function () {
|
273 |
-
var canvas = document.createElement('canvas');
|
274 |
-
var ctx = canvas.getContext('2d');
|
275 |
-
// https://www.browserleaks.com/canvas#how-does-it-work
|
276 |
-
var txt = 'http://valve.github.io';
|
277 |
-
ctx.textBaseline = "top";
|
278 |
-
ctx.font = "14px 'Arial'";
|
279 |
-
ctx.textBaseline = "alphabetic";
|
280 |
-
ctx.fillStyle = "#f60";
|
281 |
-
ctx.fillRect(125,1,62,20);
|
282 |
-
ctx.fillStyle = "#069";
|
283 |
-
ctx.fillText(txt, 2, 15);
|
284 |
-
ctx.fillStyle = "rgba(102, 204, 0, 0.7)";
|
285 |
-
ctx.fillText(txt, 4, 17);
|
286 |
-
return canvas.toDataURL();
|
287 |
-
}
|
288 |
-
};
|
289 |
-
|
290 |
-
|
291 |
-
return Fingerprint;
|
292 |
-
|
293 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cleantalk.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Anti-Spam by CleanTalk
|
4 |
Plugin URI: http://cleantalk.org
|
5 |
Description: Max power, all-in-one, no Captcha, premium anti-spam plugin. No comment spam, no registration spam, no contact spam, protects any WordPress forms.
|
6 |
-
Version: 5.120
|
7 |
Author: СleanTalk <welcome@cleantalk.org>
|
8 |
Author URI: http://cleantalk.org
|
9 |
*/
|
@@ -537,7 +537,8 @@ function apbct_sfw__check()
|
|
537 |
$apbct->saveData();
|
538 |
$sfw->sfw_die($apbct->api_key, '', parse_url(get_option('siteurl'),PHP_URL_HOST));
|
539 |
}else{
|
540 |
-
|
|
|
541 |
setcookie ('ct_sfw_pass_key', md5($sfw->passed_ips[key($sfw->passed_ips)]['ip'].$apbct->api_key), time()+86400*30, '/', parse_url(get_option('siteurl'),PHP_URL_HOST) ,false, true);
|
542 |
}
|
543 |
}
|
@@ -1538,7 +1539,26 @@ function apbct_wp_get_user_by($field, $value){
|
|
1538 |
* @return string Hash of $data
|
1539 |
*/
|
1540 |
function apbct_wp_hash( $data, $scheme = 'auth' ) {
|
1541 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1542 |
return hash_hmac('md5', $data, $salt);
|
1543 |
}
|
1544 |
|
3 |
Plugin Name: Anti-Spam by CleanTalk
|
4 |
Plugin URI: http://cleantalk.org
|
5 |
Description: Max power, all-in-one, no Captcha, premium anti-spam plugin. No comment spam, no registration spam, no contact spam, protects any WordPress forms.
|
6 |
+
Version: 5.120.1
|
7 |
Author: СleanTalk <welcome@cleantalk.org>
|
8 |
Author URI: http://cleantalk.org
|
9 |
*/
|
537 |
$apbct->saveData();
|
538 |
$sfw->sfw_die($apbct->api_key, '', parse_url(get_option('siteurl'),PHP_URL_HOST));
|
539 |
}else{
|
540 |
+
reset($sfw->passed_ips);
|
541 |
+
if(!empty($apbct->settings['set_cookies']) && !headers_sent() && key($sfw->passed_ips))
|
542 |
setcookie ('ct_sfw_pass_key', md5($sfw->passed_ips[key($sfw->passed_ips)]['ip'].$apbct->api_key), time()+86400*30, '/', parse_url(get_option('siteurl'),PHP_URL_HOST) ,false, true);
|
543 |
}
|
544 |
}
|
1539 |
* @return string Hash of $data
|
1540 |
*/
|
1541 |
function apbct_wp_hash( $data, $scheme = 'auth' ) {
|
1542 |
+
|
1543 |
+
$values = array(
|
1544 |
+
'key' => '',
|
1545 |
+
'salt' => '',
|
1546 |
+
);
|
1547 |
+
|
1548 |
+
foreach(array('key', 'salt') as $type){
|
1549 |
+
$const = strtoupper( "{$scheme}_{$type}");
|
1550 |
+
if ( defined($const) && constant($const)){
|
1551 |
+
$values[$type] = constant($const);
|
1552 |
+
}elseif(!$values[$type]){
|
1553 |
+
$values[$type] = get_site_option( "{$scheme}_{$type}");
|
1554 |
+
if (!$values[$type]){
|
1555 |
+
$values[$type] = '';
|
1556 |
+
}
|
1557 |
+
}
|
1558 |
+
}
|
1559 |
+
|
1560 |
+
$salt = $values['key'] . $values['salt'];
|
1561 |
+
|
1562 |
return hash_hmac('md5', $data, $salt);
|
1563 |
}
|
1564 |
|
inc/cleantalk-admin.php
CHANGED
@@ -221,7 +221,7 @@ function apbct_admin__enqueue_scripts($hook){
|
|
221 |
|
222 |
// Scripts to all admin pages
|
223 |
wp_enqueue_script('ct_admin_js_notices', plugins_url('/cleantalk-spam-protect/js/cleantalk-admin.min.js'), array(), APBCT_VERSION);
|
224 |
-
wp_enqueue_style ('ct_admin_css', plugins_url('/cleantalk-spam-protect/css/cleantalk-admin.min
|
225 |
|
226 |
wp_localize_script( 'jquery', 'ctAdminCommon', array(
|
227 |
'plugin_name' => $apbct->plugin_name,
|
221 |
|
222 |
// Scripts to all admin pages
|
223 |
wp_enqueue_script('ct_admin_js_notices', plugins_url('/cleantalk-spam-protect/js/cleantalk-admin.min.js'), array(), APBCT_VERSION);
|
224 |
+
wp_enqueue_style ('ct_admin_css', plugins_url('/cleantalk-spam-protect/css/cleantalk-admin.min.css'), array(), APBCT_VERSION, 'all');
|
225 |
|
226 |
wp_localize_script( 'jquery', 'ctAdminCommon', array(
|
227 |
'plugin_name' => $apbct->plugin_name,
|
inc/cleantalk-public.php
CHANGED
@@ -1467,7 +1467,7 @@ function ct_register_form() {
|
|
1467 |
}
|
1468 |
|
1469 |
function apbct_login__scripts(){
|
1470 |
-
echo '<script src="'.APBCT_URL_PATH.'/js/apbct-public.js"></script>';
|
1471 |
}
|
1472 |
|
1473 |
/**
|
@@ -3009,7 +3009,7 @@ function ct_enqueue_scripts_public($hook){
|
|
3009 |
// Use AJAX for JavaScript check
|
3010 |
if($apbct->settings['use_ajax']){
|
3011 |
|
3012 |
-
wp_enqueue_script('ct_nocache', plugins_url('/cleantalk-spam-protect/
|
3013 |
|
3014 |
wp_localize_script('ct_nocache', 'ctNocache', array(
|
3015 |
'ajaxurl' => admin_url('admin-ajax.php'),
|
1467 |
}
|
1468 |
|
1469 |
function apbct_login__scripts(){
|
1470 |
+
echo '<script src="'.APBCT_URL_PATH.'/js/apbct-public.min.js"></script>';
|
1471 |
}
|
1472 |
|
1473 |
/**
|
3009 |
// Use AJAX for JavaScript check
|
3010 |
if($apbct->settings['use_ajax']){
|
3011 |
|
3012 |
+
wp_enqueue_script('ct_nocache', plugins_url('/cleantalk-spam-protect/js/cleantalk_nocache.min.js'), array(), APBCT_VERSION, false /*in header*/);
|
3013 |
|
3014 |
wp_localize_script('ct_nocache', 'ctNocache', array(
|
3015 |
'ajaxurl' => admin_url('admin-ajax.php'),
|
inc/cleantalk-settings.php
CHANGED
@@ -145,7 +145,11 @@ function apbct_settings__add_page() {
|
|
145 |
),
|
146 |
'search_test' => array(
|
147 |
'title' => __('Test default Wordpress search form for spam', 'cleantalk'),
|
148 |
-
'description' =>
|
|
|
|
|
|
|
|
|
149 |
),
|
150 |
'check_external' => array(
|
151 |
'title' => __('Protect external forms', 'cleantalk'),
|
145 |
),
|
146 |
'search_test' => array(
|
147 |
'title' => __('Test default Wordpress search form for spam', 'cleantalk'),
|
148 |
+
'description' => sprintf(
|
149 |
+
__('Spam protection for Search form. Read more about %sspam protection for Search form%s on our blog.', 'cleantalk'),
|
150 |
+
'<a href="https://blog.cleantalk.org/how-to-protect-website-search-from-spambots/" target="_blank">',
|
151 |
+
'</a>'
|
152 |
+
)
|
153 |
),
|
154 |
'check_external' => array(
|
155 |
'title' => __('Protect external forms', 'cleantalk'),
|
inc/cleantalk_nocache.js
DELETED
@@ -1,210 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
Assign default values for backend variables.
|
3 |
-
*/
|
4 |
-
if (typeof ctNocache === 'undefined') {
|
5 |
-
ctNocache.set_cookies_flag = true;
|
6 |
-
ctNocache.ajaxurl = '/wp-admin/admin-ajax.php';
|
7 |
-
}
|
8 |
-
|
9 |
-
function sendRequest(url,callback,postData) {
|
10 |
-
var req = createXMLHTTPObject();
|
11 |
-
if (!req) return;
|
12 |
-
var method = (postData) ? "POST" : "GET";
|
13 |
-
|
14 |
-
var protocol = location.protocol;
|
15 |
-
if (protocol === 'https:') {
|
16 |
-
url = url.replace('http:', 'https:');
|
17 |
-
} else {
|
18 |
-
url = url.replace('https:', 'http:');
|
19 |
-
}
|
20 |
-
|
21 |
-
req.open(method,url,true);
|
22 |
-
if (postData)
|
23 |
-
req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
|
24 |
-
req.onreadystatechange = function () {
|
25 |
-
if (req.readyState != 4) return;
|
26 |
-
if (req.status != 200 && req.status != 304) {
|
27 |
-
// alert('HTTP error ' + req.status);
|
28 |
-
return;
|
29 |
-
}
|
30 |
-
callback(req);
|
31 |
-
};
|
32 |
-
if (req.readyState == 4) return;
|
33 |
-
req.send(postData);
|
34 |
-
}
|
35 |
-
|
36 |
-
var XMLHttpFactories = [
|
37 |
-
function () {return new XMLHttpRequest()},
|
38 |
-
function () {return new ActiveXObject("Msxml2.XMLHTTP")},
|
39 |
-
function () {return new ActiveXObject("Msxml3.XMLHTTP")},
|
40 |
-
function () {return new ActiveXObject("Microsoft.XMLHTTP")}
|
41 |
-
];
|
42 |
-
|
43 |
-
function createXMLHTTPObject() {
|
44 |
-
var xmlhttp = false;
|
45 |
-
for (var i=0;i<XMLHttpFactories.length;i++) {
|
46 |
-
try {
|
47 |
-
xmlhttp = XMLHttpFactories[i]();
|
48 |
-
}
|
49 |
-
catch (e) {
|
50 |
-
continue;
|
51 |
-
}
|
52 |
-
break;
|
53 |
-
}
|
54 |
-
return xmlhttp;
|
55 |
-
}
|
56 |
-
|
57 |
-
function ct_getCookie(name) {
|
58 |
-
var matches = document.cookie.match(new RegExp(
|
59 |
-
"(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
|
60 |
-
));
|
61 |
-
return matches ? decodeURIComponent(matches[1]) : undefined;
|
62 |
-
}
|
63 |
-
|
64 |
-
function ct_setCookie(name, value)
|
65 |
-
{
|
66 |
-
if (ctNocache.set_cookies_flag) {
|
67 |
-
document.cookie = name+" =; expires=Thu, 01 Jan 1970 00:00:01 GMT; path = /";
|
68 |
-
document.cookie = name+" =; expires=Thu, 01 Jan 1970 00:00:01 GMT";
|
69 |
-
|
70 |
-
var date = new Date;
|
71 |
-
date.setDate(date.getDate() + 1);
|
72 |
-
setTimeout(function() { document.cookie = name+"=" + value + "; expires=" + date.toUTCString() + "; path = /;"}, 500);
|
73 |
-
}
|
74 |
-
|
75 |
-
return null;
|
76 |
-
}
|
77 |
-
|
78 |
-
function ct_callback(req)
|
79 |
-
{
|
80 |
-
ct_cookie = req.responseText.trim();
|
81 |
-
//alert('Key value: ' + ct_cookie);
|
82 |
-
|
83 |
-
ct_setCookie('ct_checkjs', ct_cookie);
|
84 |
-
|
85 |
-
for(i=0;i<document.forms.length;i++)
|
86 |
-
{
|
87 |
-
f=document.forms[i];
|
88 |
-
for(j=0;j<f.elements.length;j++)
|
89 |
-
{
|
90 |
-
e=f.elements[j];
|
91 |
-
if(e.name!==undefined&&e.name.indexOf('ct_checkjs')!=-1)
|
92 |
-
{
|
93 |
-
e.value=ct_cookie;
|
94 |
-
//alert('Form #' + i + ', field ' + e.name + ' = ' + ct_cookie);
|
95 |
-
}
|
96 |
-
}
|
97 |
-
}
|
98 |
-
|
99 |
-
//alert('Set cookie: \n' + document.cookie);
|
100 |
-
}
|
101 |
-
|
102 |
-
if (!Date.now) {
|
103 |
-
Date.now = function() { return new Date().getTime(); }
|
104 |
-
}
|
105 |
-
|
106 |
-
if(ct_nocache_executed==undefined)
|
107 |
-
{
|
108 |
-
var ct_nocache_executed=true;
|
109 |
-
|
110 |
-
var checkjs_cookie=ct_getCookie('ct_checkjs');
|
111 |
-
|
112 |
-
if(checkjs_cookie!=undefined)
|
113 |
-
{
|
114 |
-
for(i=0;i<document.forms.length;i++)
|
115 |
-
{
|
116 |
-
f=document.forms[i];
|
117 |
-
for(j=0;j<f.elements.length;j++)
|
118 |
-
{
|
119 |
-
e=f.elements[j];
|
120 |
-
if(e.name!==undefined&&e.name.indexOf('ct_checkjs')!=-1)
|
121 |
-
{
|
122 |
-
e.value=checkjs_cookie;
|
123 |
-
//alert('Form #' + i + ', field ' + e.name + ' = ' + ct_cookie);
|
124 |
-
}
|
125 |
-
}
|
126 |
-
}
|
127 |
-
}
|
128 |
-
|
129 |
-
if(checkjs_cookie==undefined) //86400 is 24 hours
|
130 |
-
{
|
131 |
-
sendRequest(ctNocache.ajaxurl+'?'+Math.random(),ct_callback,'action=ct_get_cookie');
|
132 |
-
}
|
133 |
-
|
134 |
-
if(typeof ctNocache.info_flag !== 'undefined' && ctNocache.info_flag)
|
135 |
-
{
|
136 |
-
|
137 |
-
var cleantalk_user_info={};
|
138 |
-
|
139 |
-
var cleantalk_screen_info={};
|
140 |
-
for(var prop in screen)
|
141 |
-
{
|
142 |
-
if (navigator[prop] instanceof Object || screen[prop]==='')
|
143 |
-
continue;
|
144 |
-
cleantalk_screen_info[prop]=screen[prop];
|
145 |
-
}
|
146 |
-
|
147 |
-
cleantalk_user_info.screen=cleantalk_screen_info;
|
148 |
-
|
149 |
-
var cleantalk_plugins=Array();
|
150 |
-
var prev;
|
151 |
-
var cnt=0;
|
152 |
-
for(var i=0;i<navigator.plugins.length;i++)
|
153 |
-
{
|
154 |
-
var plugin = navigator.plugins[i];
|
155 |
-
var plugin = plugin.name+" "+(plugin.version || '')
|
156 |
-
if (prev == plugin ) continue;
|
157 |
-
cleantalk_plugins[cnt]=plugin;
|
158 |
-
cnt++;
|
159 |
-
prev = plugin;
|
160 |
-
}
|
161 |
-
cleantalk_user_info.plugins=cleantalk_plugins;
|
162 |
-
|
163 |
-
cleantalk_user_info.timezone_offset = -new Date().getTimezoneOffset()/60;
|
164 |
-
cleantalk_user_info.datetime = Math.round((new Date().getTime())/1000);
|
165 |
-
|
166 |
-
cleantalk_user_info.browser_x=document.documentElement.clientWidth;
|
167 |
-
cleantalk_user_info.browser_y=document.documentElement.clientHeight;
|
168 |
-
|
169 |
-
var ua = navigator.userAgent.toLowerCase();
|
170 |
-
var flashInstalled = 0;
|
171 |
-
if (typeof(navigator.plugins)!="undefined"&&typeof(navigator.plugins["Shockwave Flash"])=="object")
|
172 |
-
{
|
173 |
-
flashInstalled = 1;
|
174 |
-
}
|
175 |
-
else if (typeof window.ActiveXObject != "undefined")
|
176 |
-
{
|
177 |
-
try
|
178 |
-
{
|
179 |
-
if (new ActiveXObject("ShockwaveFlash.ShockwaveFlash"))
|
180 |
-
{
|
181 |
-
flashInstalled = 1;
|
182 |
-
}
|
183 |
-
} catch(e) {};
|
184 |
-
};
|
185 |
-
|
186 |
-
cleantalk_user_info.is_flash=flashInstalled;
|
187 |
-
|
188 |
-
isVisitedMain=-1;
|
189 |
-
if(location.href=='http://'+location.hostname+'/' || location.href=='https://'+location.hostname+'/')
|
190 |
-
{
|
191 |
-
isVisitedMain=1;
|
192 |
-
setTimeout(function() { document.cookie = "ct_visited_main = 1; path = /;"}, 1500);
|
193 |
-
}
|
194 |
-
|
195 |
-
|
196 |
-
ct_visited_main = ct_getCookie('ct_visited_main');
|
197 |
-
if(ct_visited_main==undefined && isVisitedMain==-1)
|
198 |
-
{
|
199 |
-
isVisitedMain=0;
|
200 |
-
}
|
201 |
-
else
|
202 |
-
{
|
203 |
-
isVisitedMain=1;
|
204 |
-
}
|
205 |
-
|
206 |
-
cleantalk_user_info.is_main=isVisitedMain;
|
207 |
-
|
208 |
-
setTimeout(function() { document.cookie = "ct_user_info = "+escape(JSON.stringify(cleantalk_user_info))+"; path = /;"}, 1500);
|
209 |
-
}
|
210 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
js/cleantalk_nocache.min.js
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
function sendRequest(e,t,n){var c=createXMLHTTPObject();if(c){var i=n?"POST":"GET";e="https:"===location.protocol?e.replace("http:","https:"):e.replace("https:","http:"),c.open(i,e,!0),n&&c.setRequestHeader("Content-type","application/x-www-form-urlencoded"),c.onreadystatechange=function(){4==c.readyState&&(200!=c.status&&304!=c.status||t(c))},4!=c.readyState&&c.send(n)}}"undefined"==typeof ctNocache&&(ctNocache.set_cookies_flag=!0,ctNocache.ajaxurl="/wp-admin/admin-ajax.php");var XMLHttpFactories=[function(){return new XMLHttpRequest},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Msxml3.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")}];function createXMLHTTPObject(){for(var e=!1,t=0;t<XMLHttpFactories.length;t++){try{e=XMLHttpFactories[t]()}catch(e){continue}break}return e}function ct_getCookie(e){var t=document.cookie.match(new RegExp("(?:^|; )"+e.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,"\\$1")+"=([^;]*)"));return t?decodeURIComponent(t[1]):void 0}function ct_setCookie(e,t){if(ctNocache.set_cookies_flag){document.cookie=e+" =; expires=Thu, 01 Jan 1970 00:00:01 GMT; path = /",document.cookie=e+" =; expires=Thu, 01 Jan 1970 00:00:01 GMT";var n=new Date;n.setDate(n.getDate()+1),setTimeout(function(){document.cookie=e+"="+t+"; expires="+n.toUTCString()+"; path = /;"},500)}return null}function ct_callback(t){for(ct_cookie=t.responseText.trim(),ct_setCookie("ct_checkjs",ct_cookie),i=0;i<document.forms.length;i++)for(f=document.forms[i],j=0;j<f.elements.length;j++)e=f.elements[j],void 0!==e.name&&-1!=e.name.indexOf("ct_checkjs")&&(e.value=ct_cookie)}if(Date.now||(Date.now=function(){return(new Date).getTime()}),null==ct_nocache_executed){var ct_nocache_executed=!0,checkjs_cookie=ct_getCookie("ct_checkjs");if(null!=checkjs_cookie)for(i=0;i<document.forms.length;i++)for(f=document.forms[i],j=0;j<f.elements.length;j++)e=f.elements[j],void 0!==e.name&&-1!=e.name.indexOf("ct_checkjs")&&(e.value=checkjs_cookie);if(null==checkjs_cookie&&sendRequest(ctNocache.ajaxurl+"?"+Math.random(),ct_callback,"action=ct_get_cookie"),void 0!==ctNocache.info_flag&&ctNocache.info_flag){var cleantalk_user_info={},cleantalk_screen_info={};for(var prop in screen)navigator[prop]instanceof Object||""===screen[prop]||(cleantalk_screen_info[prop]=screen[prop]);cleantalk_user_info.screen=cleantalk_screen_info;for(var prev,cleantalk_plugins=Array(),cnt=0,i=0;i<navigator.plugins.length;i++){var plugin;prev!=(plugin=(plugin=navigator.plugins[i]).name+" "+(plugin.version||""))&&(cleantalk_plugins[cnt]=plugin,cnt++,prev=plugin)}cleantalk_user_info.plugins=cleantalk_plugins,cleantalk_user_info.timezone_offset=-(new Date).getTimezoneOffset()/60,cleantalk_user_info.datetime=Math.round((new Date).getTime()/1e3),cleantalk_user_info.browser_x=document.documentElement.clientWidth,cleantalk_user_info.browser_y=document.documentElement.clientHeight;var ua=navigator.userAgent.toLowerCase(),flashInstalled=0;if(void 0!==navigator.plugins&&"object"==typeof navigator.plugins["Shockwave Flash"])flashInstalled=1;else if(void 0!==window.ActiveXObject)try{new ActiveXObject("ShockwaveFlash.ShockwaveFlash")&&(flashInstalled=1)}catch(e){}cleantalk_user_info.is_flash=flashInstalled,isVisitedMain=-1,location.href!="http://"+location.hostname+"/"&&location.href!="https://"+location.hostname+"/"||(isVisitedMain=1,setTimeout(function(){document.cookie="ct_visited_main = 1; path = /;"},1500)),ct_visited_main=ct_getCookie("ct_visited_main"),null==ct_visited_main&&-1==isVisitedMain?isVisitedMain=0:isVisitedMain=1,cleantalk_user_info.is_main=isVisitedMain,setTimeout(function(){document.cookie="ct_user_info = "+escape(JSON.stringify(cleantalk_user_info))+"; path = /;"},1500)}}
|
2 |
+
//# sourceMappingURL=cleantalk_nocache.min.js.map
|
js/cleantalk_nocache.min.js.map
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
{"version":3,"sources":["cleantalk_nocache.js"],"names":["sendRequest","url","callback","postData","req","createXMLHTTPObject","method","location","protocol","replace","open","setRequestHeader","onreadystatechange","readyState","status","send","ctNocache","set_cookies_flag","ajaxurl","XMLHttpFactories","XMLHttpRequest","ActiveXObject","xmlhttp","i","length","e","ct_getCookie","name","matches","document","cookie","match","RegExp","decodeURIComponent","undefined","ct_setCookie","value","date","Date","setDate","getDate","setTimeout","toUTCString","ct_callback","ct_cookie","responseText","trim","forms","f","j","elements","indexOf","now","getTime","ct_nocache_executed","checkjs_cookie","Math","random","info_flag","cleantalk_user_info","cleantalk_screen_info","prop","screen","navigator","Object","prev","cleantalk_plugins","Array","cnt","plugins","plugin","version","timezone_offset","getTimezoneOffset","datetime","round","browser_x","documentElement","clientWidth","browser_y","clientHeight","ua","userAgent","toLowerCase","flashInstalled","window","is_flash","isVisitedMain","href","hostname","ct_visited_main","is_main","escape","JSON","stringify"],"mappings":"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","file":"cleantalk_nocache.min.js","sourcesContent":["/*\n Assign default values for backend variables.\n*/\nif (typeof ctNocache === 'undefined') {\n ctNocache.set_cookies_flag = true;\n ctNocache.ajaxurl = '/wp-admin/admin-ajax.php';\n}\n\nfunction sendRequest(url,callback,postData) {\n var req = createXMLHTTPObject();\n if (!req) return;\n var method = (postData) ? \"POST\" : \"GET\";\n \n var protocol = location.protocol;\n if (protocol === 'https:') {\n url = url.replace('http:', 'https:');\n } else {\n url = url.replace('https:', 'http:');\n }\n \n req.open(method,url,true);\n if (postData)\n req.setRequestHeader('Content-type','application/x-www-form-urlencoded');\n req.onreadystatechange = function () {\n if (req.readyState != 4) return;\n if (req.status != 200 && req.status != 304) {\n// alert('HTTP error ' + req.status);\n return;\n }\n callback(req);\n };\n if (req.readyState == 4) return;\n req.send(postData);\n}\n\nvar XMLHttpFactories = [\n function () {return new XMLHttpRequest()},\n function () {return new ActiveXObject(\"Msxml2.XMLHTTP\")},\n function () {return new ActiveXObject(\"Msxml3.XMLHTTP\")},\n function () {return new ActiveXObject(\"Microsoft.XMLHTTP\")}\n];\n\nfunction createXMLHTTPObject() {\n var xmlhttp = false;\n for (var i=0;i<XMLHttpFactories.length;i++) {\n try {\n xmlhttp = XMLHttpFactories[i]();\n }\n catch (e) {\n continue;\n }\n break;\n }\n return xmlhttp;\n}\n\nfunction ct_getCookie(name) {\n var matches = document.cookie.match(new RegExp(\n \"(?:^|; )\" + name.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, '\\\\$1') + \"=([^;]*)\"\n ));\n return matches ? decodeURIComponent(matches[1]) : undefined;\n}\n\nfunction ct_setCookie(name, value)\n{\n if (ctNocache.set_cookies_flag) {\n document.cookie = name+\" =; expires=Thu, 01 Jan 1970 00:00:01 GMT; path = /\";\n document.cookie = name+\" =; expires=Thu, 01 Jan 1970 00:00:01 GMT\";\n \n var date = new Date;\n date.setDate(date.getDate() + 1);\n setTimeout(function() { document.cookie = name+\"=\" + value + \"; expires=\" + date.toUTCString() + \"; path = /;\"}, 500);\n }\n\n return null;\n}\n\nfunction ct_callback(req)\n{\n\tct_cookie = req.responseText.trim();\n\t//alert('Key value: ' + ct_cookie);\n\t\n\tct_setCookie('ct_checkjs', ct_cookie);\n\t\n\tfor(i=0;i<document.forms.length;i++)\n\t{\n\t\tf=document.forms[i];\n\t\tfor(j=0;j<f.elements.length;j++)\n\t\t{\n\t\t\te=f.elements[j];\n\t\t\tif(e.name!==undefined&&e.name.indexOf('ct_checkjs')!=-1)\n\t\t\t{\n\t\t\t\te.value=ct_cookie;\n\t\t\t\t//alert('Form #' + i + ', field ' + e.name + ' = ' + ct_cookie);\n\t\t\t}\n\t\t}\n\t}\n\n\t//alert('Set cookie: \\n' + document.cookie);\n}\n\nif (!Date.now) {\n\tDate.now = function() { return new Date().getTime(); }\n}\n\nif(ct_nocache_executed==undefined)\n{\n\tvar ct_nocache_executed=true;\n\t\n\tvar checkjs_cookie=ct_getCookie('ct_checkjs');\n\t\n\tif(checkjs_cookie!=undefined)\n\t{\n\t\tfor(i=0;i<document.forms.length;i++)\n\t\t{\n\t\t\tf=document.forms[i];\n\t\t\tfor(j=0;j<f.elements.length;j++)\n\t\t\t{\n\t\t\t\te=f.elements[j];\n\t\t\t\tif(e.name!==undefined&&e.name.indexOf('ct_checkjs')!=-1)\n\t\t\t\t{\n\t\t\t\t\te.value=checkjs_cookie;\n\t\t\t\t\t//alert('Form #' + i + ', field ' + e.name + ' = ' + ct_cookie);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\t\n\t\n\tif(checkjs_cookie==undefined) //86400 is 24 hours\n\t{\n\t\tsendRequest(ctNocache.ajaxurl+'?'+Math.random(),ct_callback,'action=ct_get_cookie');\n\t}\n\t\n\tif(typeof ctNocache.info_flag !== 'undefined' && ctNocache.info_flag)\n\t{\n\t\n\t\tvar cleantalk_user_info={};\n\t\t\n\t\tvar cleantalk_screen_info={};\n\t\tfor(var prop in screen)\n\t\t{\n\t\t\tif (navigator[prop] instanceof Object || screen[prop]==='')\n\t\t\t\tcontinue;\n\t\t\tcleantalk_screen_info[prop]=screen[prop];\n\t\t}\n\t\t\n\t\tcleantalk_user_info.screen=cleantalk_screen_info;\n\t\t\n\t\tvar cleantalk_plugins=Array();\n\t\tvar prev;\n\t\tvar cnt=0;\n\t\tfor(var i=0;i<navigator.plugins.length;i++)\n\t\t{\n\t\t\tvar plugin = navigator.plugins[i];\n\t\t\tvar plugin = plugin.name+\" \"+(plugin.version || '')\n\t\t\tif (prev == plugin ) continue;\n\t\t\tcleantalk_plugins[cnt]=plugin;\n\t\t\tcnt++;\n\t\t\tprev = plugin;\n\t\t}\n\t\tcleantalk_user_info.plugins=cleantalk_plugins;\n\t\t\n\t\tcleantalk_user_info.timezone_offset = -new Date().getTimezoneOffset()/60;\n\t\tcleantalk_user_info.datetime = Math.round((new Date().getTime())/1000);\n\t\t\n\t\tcleantalk_user_info.browser_x=document.documentElement.clientWidth;\n\t\tcleantalk_user_info.browser_y=document.documentElement.clientHeight;\n\t\t\n\t\tvar ua = navigator.userAgent.toLowerCase();\n\t\tvar flashInstalled = 0;\n\t\tif (typeof(navigator.plugins)!=\"undefined\"&&typeof(navigator.plugins[\"Shockwave Flash\"])==\"object\")\n\t\t{\n\t\t\tflashInstalled = 1;\n\t\t}\n\t\telse if (typeof window.ActiveXObject != \"undefined\")\n\t\t{\n\t\t\ttry\n\t\t\t{\n\t\t\t\tif (new ActiveXObject(\"ShockwaveFlash.ShockwaveFlash\"))\n\t\t\t\t{\n\t\t\t\t\tflashInstalled = 1;\n\t\t\t\t}\n\t\t\t} catch(e) {};\n\t\t};\n\t\t\n\t\tcleantalk_user_info.is_flash=flashInstalled;\n\t\t\n\t\tisVisitedMain=-1;\n\t\tif(location.href=='http://'+location.hostname+'/' || location.href=='https://'+location.hostname+'/')\n\t\t{\n\t\t\tisVisitedMain=1;\n\t\t\tsetTimeout(function() { document.cookie = \"ct_visited_main = 1; path = /;\"}, 1500);\n\t\t}\n\t\t\n\t\t\n\t\tct_visited_main = ct_getCookie('ct_visited_main');\n\t\tif(ct_visited_main==undefined && isVisitedMain==-1)\n\t\t{\n\t\t\tisVisitedMain=0;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tisVisitedMain=1;\n\t\t}\n\t\t\n\t\tcleantalk_user_info.is_main=isVisitedMain;\n\t\t\n\t\tsetTimeout(function() { document.cookie = \"ct_user_info = \"+escape(JSON.stringify(cleantalk_user_info))+\"; path = /;\"}, 1500);\n\t}\n}"]}
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: safronik
|
|
3 |
Tags: spam, antispam, protection, comments, firewall
|
4 |
Requires at least: 3.0
|
5 |
Tested up to: 5.2
|
6 |
-
Stable tag: 5.120
|
7 |
License: GPLv2
|
8 |
|
9 |
Spam protection, antispam, all-in-one, premium plugin. No spam comments & users, no spam contact form & WooCommerce anti-spam.
|
@@ -560,6 +560,11 @@ If your website has forms that send data to external sources, you can enable opt
|
|
560 |
10. Website's options.
|
561 |
|
562 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
563 |
= 5.120 June 5 2019 =
|
564 |
* Fix: bbPress false positives.
|
565 |
* Fix: SpamFireWall check condition.
|
@@ -1904,6 +1909,11 @@ If your website has forms that send data to external sources, you can enable opt
|
|
1904 |
* First version
|
1905 |
|
1906 |
== Upgrade Notice ==
|
|
|
|
|
|
|
|
|
|
|
1907 |
= 5.120 June 5 2019 =
|
1908 |
* Fix: bbPress false positives.
|
1909 |
* Fix: SpamFireWall check condition.
|
3 |
Tags: spam, antispam, protection, comments, firewall
|
4 |
Requires at least: 3.0
|
5 |
Tested up to: 5.2
|
6 |
+
Stable tag: 5.120.1
|
7 |
License: GPLv2
|
8 |
|
9 |
Spam protection, antispam, all-in-one, premium plugin. No spam comments & users, no spam contact form & WooCommerce anti-spam.
|
560 |
10. Website's options.
|
561 |
|
562 |
== Changelog ==
|
563 |
+
= 5.120.1 June 6 2019 =
|
564 |
+
* Mod: Description for Search form protection.
|
565 |
+
* Fix: CSS and JS attachment.
|
566 |
+
* Fix: Undefined index error.
|
567 |
+
|
568 |
= 5.120 June 5 2019 =
|
569 |
* Fix: bbPress false positives.
|
570 |
* Fix: SpamFireWall check condition.
|
1909 |
* First version
|
1910 |
|
1911 |
== Upgrade Notice ==
|
1912 |
+
= 5.120.1 June 6 2019 =
|
1913 |
+
* Mod: Description for Search form protection.
|
1914 |
+
* Fix: CSS and JS attachment.
|
1915 |
+
* Fix: Undefined index error.
|
1916 |
+
|
1917 |
= 5.120 June 5 2019 =
|
1918 |
* Fix: bbPress false positives.
|
1919 |
* Fix: SpamFireWall check condition.
|