BotBlocker security plugin

Checking your browser before accessing the site

Loading...
Connection info: 162.43.94.78 Connection ID: a29a2146678a31925ed1ad1f6ebf21 ~ 1793676556.33228


var bbcsJsData = {"ajaxUrl":"https:\/\/womannews.ru\/wp-admin\/admin-ajax.php","verifyUrl":"https:\/\/womannews.ru\/bbcs-verify\/","nonce":"0f6548ed26","debugEnabled":false,"version":"1.7.3","shortName":"BotBlocker","hostBase64":"d29tYW5uZXdzLnJ1","hostNoPortBase64":"d29tYW5uZXdzLnJ1","redirectUrlBase64":"aHR0cHM6Ly93b21hbm5ld3MucnUv","loadingText":"Loading...","testHash":"ea67117c346aab3a922fa8d95fc603ba1ac98fec6795b6c888fefd0cda7c62cd","h1Hash":"e3f741dc234651f26b82351bbb49004cda80f5df69545bcfe001ca17d436178c","time":1793676556,"hosting":"-","country":"JP","ip":"162.43.94.78","cid":"1793676556.33228","ptr":"sv15077.xserver.jp","httpAccept":"%2A%2F%2A","ipVersion":4,"recaptchaEnabled":false,"recaptchaKey3":"","apiIpv6":"https:\/\/api.botblocker.top\/v2\/ip?v=6\u0026format=json","apiGsIpv6":"https:\/\/api.globus.studio\/v2\/ip?v=6\u0026format=json","emptyValue":"-","jsAdminEnabled":true,"jsErrorMessage":"Your request has been denied.","cookieDisabledText":"Cookies are disabled in your browser. Enable cookies to continue.","jsDisabledText":"JavaScript is disabled in your browser. Enable JavaScript to continue.","redirectUrl":"\/","checkFunctionName":"f4021097dd34fc1133490fc3dacdc8b23","selectRequestMode":"x17c6194b6d9d9a4cdc465efcd9857d61","ruleRecordId":0,"suspectStatus":2,"reasonForAction":null,"resultOfAction":"No cookies users(Human?)","uid":"a29a2146678a31925ed1ad1f6ebf21","samesite":"Lax","cookieLifetime":604800,"botblockerUrl":"https:\/\/womannews.ru\/wp-content\/plugins\/botblocker-security\/","captchaURL":"https:\/\/www.google.com\/recaptcha\/api.js?render=","silentMode":true,"approvedText":"Access approved. Redirecting...","verifyingText":"Verifying...","retryingText":"Retrying...","verificationFailedText":"Verification failed. Please complete the challenge below.","ddosResilience":false}; window.adb_var = 1; /* * BotBlocker Script - AdBlock Detection Logic * Version: 1.2.3 * Copyright (c) 2026 BotBlocker * * This file contains detection algorithms for various ad blocking software * and implements countermeasures without affecting user experience. * Do not modify without proper understanding of the code flow. */ // Essential detection variable - DO NOT MODIFY! adb_var = 0; (function() { var _dummy = { check_interval: 3000, last_detection: new Date().getTime(), detection_active: false, counter: Math.floor(Math.random() * 1000) }; function simulateCheck() { if (_dummy.counter > 950) { _dummy.counter = 0; return true; } _dummy.counter += (Math.random() * 10); return false; } if (document.readyState === 'complete' || document.readyState === 'interactive') { setTimeout(function() { _dummy.detection_active = simulateCheck(); }, _dummy.check_interval); } })(); /* * BotBlocker Detection Utilities * Version: 2.0.0 * Copyright (c) 2026 BotBlocker * * This file contains various detection algorithms for identifying bots and automated browser environments. */ function bbcs_detectJitter() { const timings = []; const iterations = 10; const workload = 100000; for (let i = 0; i < iterations; i++) { const start = performance.now(); let x = 0; for (let j = 0; j < workload; j++) { x += Math.sqrt(j); } const end = performance.now(); timings.push(end - start); } const avg = timings.reduce((a, b) => a + b, 0) / timings.length; const deviations = timings.map(t => Math.abs(t - avg)); const avgDeviation = deviations.reduce((a, b) => a + b, 0) / deviations.length; const maxDeviation = Math.max(...deviations); if (avgDeviation > avg * 0.4 || maxDeviation > avg * 2) { return true; } const dateVsPerformance = []; for (let i = 0; i < 5; i++) { const dateStart = Date.now(); const perfStart = performance.now(); let x = 0; for (let j = 0; j < 100000; j++) { x += j; } const dateEnd = Date.now(); const perfEnd = performance.now(); dateVsPerformance.push({ date: dateEnd - dateStart, perf: perfEnd - perfStart }); } const inconsistentTiming = dateVsPerformance.some(item => item.date === 0 || item.perf === 0 || item.date < item.perf ); if (inconsistentTiming) { return true; } if (timings.every(t => t === 0)) { return true; } return false; } function bbcs_detectNavigatorMismatch() { const nav = window.navigator; const userAgent = nav.userAgent; const platform = nav.platform; const vendor = nav.vendor; if (nav.webdriver === true) { return true; } try { if (Object.getOwnPropertyDescriptor(nav, 'webdriver') !== undefined) { return true; } } catch (e) {} if (/HeadlessChrome|PhantomJS|SlimerJS/i.test(userAgent)) { return true; } if (window.outerWidth === 0 && window.outerHeight === 0) { return true; } let browserData = { chrome: userAgent.includes('Chrome') && !userAgent.includes('Edg/') && !userAgent.includes('OPR/'), firefox: userAgent.includes('Firefox') && !userAgent.includes('Seamonkey'), safari: userAgent.includes('Safari') && !userAgent.includes('Chrome') && !userAgent.includes('Chromium'), edge: userAgent.includes('Edg/'), opera: userAgent.includes('OPR/') || userAgent.includes('Opera'), ie: userAgent.includes('MSIE') || userAgent.includes('Trident/') }; let platformData = { windows: platform.includes('Win'), mac: platform.includes('Mac'), linux: platform.includes('Linux') || platform.includes('X11'), android: userAgent.includes('Android'), ios: /iPhone|iPad|iPod/.test(userAgent) }; if ((browserData.chrome && vendor !== 'Google Inc.') || (browserData.safari && vendor !== 'Apple Computer, Inc.') || (platformData.windows && !platform.includes('Win')) || (platformData.mac && !platform.includes('Mac')) || (platformData.android && !userAgent.includes('Android')) || (platformData.ios && !userAgent.match(/iPhone|iPad|iPod/))) { return true; } if (nav.hardwareConcurrency !== undefined) { const cores = nav.hardwareConcurrency; if (cores === 0 || cores > 128) return true; } if (window.screen) { const screenRatio = window.screen.width / window.screen.height; if (screenRatio < 0.5 || screenRatio > 5) return true; } const memoryDeviation = nav.deviceMemory && (nav.deviceMemory < 0.5 || nav.deviceMemory > 128); if (memoryDeviation) return true; if (userAgent.length < 30 || userAgent.length > 500) return true; return false; } function bbcs_detectUnsupportedFeatures() { const modernApis = ['Promise', 'fetch', 'Map', 'Set', 'Symbol', 'WeakMap', 'WeakSet']; const modernNavFeatures = ['serviceWorker', 'permissions', 'geolocation']; let missingBasicApis = modernApis.some(api => typeof window[api] === 'undefined'); if (missingBasicApis) { return true; } const inconsistentBuiltins = (window.Array && typeof window.Array.from === 'undefined') || (window.Object && typeof window.Object.assign === 'undefined'); if (inconsistentBuiltins) { return true; } if (typeof Proxy !== 'undefined' && typeof Reflect === 'undefined') { return true; } const asyncStorage = !window.indexedDB && window.localStorage; if (asyncStorage) { return true; } try { if (typeof window.localStorage !== 'undefined') { const testKey = `_bbcs_test_${Date.now()}`; window.localStorage.setItem(testKey, '1'); if (window.localStorage.getItem(testKey) !== '1') { return true; } window.localStorage.removeItem(testKey); } } catch(e) { if (!e.toString().includes('quota') && !e.toString().includes('secure context')) { return true; } } return false; } function bbcs_detectFakePlugins() { const plugins = navigator.plugins || []; if (plugins.length === 0 && !navigator.userAgent.includes('Mobile')) { const chromeBased = navigator.userAgent.includes('Chrome') || navigator.userAgent.includes('Edg') || navigator.userAgent.includes('OPR'); if (chromeBased) { return true; } } if (plugins.length > 0) { let allNames = []; for (let i = 0; i < plugins.length; i++) { allNames.push(plugins[i].name); } const hasMultiplePdf = allNames.filter(name => name.includes('PDF') || name.includes('Acrobat') ).length > 2; if (hasMultiplePdf) { return true; } const hasInvalidLength = Array.from(plugins).some(p => typeof p.length !== 'number' || p.length === 0 || (p.length > 0 && !p[0]) ); if (hasInvalidLength) { return true; } if (plugins.namedItem && plugins.item) { const firstPlugin = plugins[0]; const byName = plugins.namedItem(firstPlugin.name); const byIndex = plugins.item(0); if (firstPlugin !== byName || firstPlugin !== byIndex) { return true; } } } if (typeof navigator.mimeTypes !== 'undefined') { const mimes = navigator.mimeTypes; if (plugins.length > 0 && mimes.length === 0) { return true; } } return false; } function bbcs_detectFontRenderMismatch() { const canvas = document.createElement('canvas'); canvas.width = 240; canvas.height = 60; try { const ctx = canvas.getContext('2d'); if (!ctx) return true; ctx.textBaseline = 'alphabetic'; ctx.fillStyle = '#000'; ctx.fillRect(0, 0, canvas.width, canvas.height); ctx.fillStyle = '#FFF'; ctx.font = '24px "Arial", sans-serif'; ctx.fillText("QWЁЙß好きAБВ", 10, 40); ctx.font = '24px "Times New Roman", serif'; ctx.fillText("XYЭЮę很好", 10, 20); const data = canvas.toDataURL(); if (!data || data === 'data:,' || data.length < 500) { return true; } const emptyData = document.createElement('canvas') .toDataURL() .length; if (data.length <= emptyData) { return true; } const imgData = ctx.getImageData(0, 0, 8, 8).data; let allZero = true; let allFF = true; for (let i = 0; i < imgData.length; i++) { if (imgData[i] !== 0) allZero = false; if (imgData[i] !== 255) allFF = false; } if (allZero || allFF) { return true; } var subPixels = ctx.getImageData(0, 0, 60, 40).data; var rValues = []; var rSum = 0; for (var i = 0; i < subPixels.length; i += 4) { rValues.push(subPixels[i]); rSum += subPixels[i]; } var rAvg = rSum / rValues.length; var sameCount = 0; for (var i = 0; i < rValues.length; i++) { if (rValues[i] === Math.round(rAvg)) sameCount++; } if (sameCount / rValues.length > 0.9) { return true; } } catch(e) { return true; } return false; } function bbcs_detectChromiumProperties() { const isChromiumClaim = !!window.chrome; if (isChromiumClaim) { const chromeObj = window.chrome; const emptyChrome = Object.keys(chromeObj).length === 0; if (emptyChrome) { return true; } const hasRuntime = typeof chromeObj.runtime === 'object'; const hasWebstore = typeof chromeObj.webstore === 'object'; const invalidStructure = (hasRuntime && (!chromeObj.runtime.id || !chromeObj.runtime.connect)) || (hasWebstore && typeof chromeObj.webstore.install !== 'function'); if (invalidStructure) { return true; } } const anomalyProps = [ '_phantom', '__nightmare', 'callPhantom', '_selenium', 'callSelenium', '_Selenium_IDE_Recorder', '__webdriver_script_fn', '__driver_evaluate', '__webdriver_evaluate', '__selenium_evaluate', '__fxdriver_evaluate', '__driver_unwrapped', '__webdriver_unwrapped', '__selenium_unwrapped', '__fxdriver_unwrapped', '__webdriver_script_func', '$chrome_asyncScriptInfo', '__puppeteer_evaluation_script__', '__playwright_evaluation_script__', '_WEBDRIVER_ELEM_CACHE', 'domAutomation', 'domAutomationController', '__lastWatirAlert', '__lastWatirConfirm', '__lastWatirPrompt', 'webdriver', '__pw_manual', '__pw_traverse', '__playwright__binding__' ]; if (anomalyProps.some(prop => prop in window)) { return true; } var cdcFound = Object.getOwnPropertyNames(window).some(function(k) { return /^\$cdc_/.test(k); }); if (cdcFound) return true; try { if ('domAutomationController' in document || '__webdriver_evaluate' in document) { return true; } if (Object.getOwnPropertyNames(document).some(function(k) { return /^\$cdc_/.test(k); })) return true; } catch (e) {} try { var desc = Object.getOwnPropertyDescriptor(Navigator.prototype, 'webdriver'); if (desc && desc.get) { var fnStr = Function.prototype.toString.call(desc.get); if (typeof fnStr === 'string' && !/\[native code\]/.test(fnStr)) { return true; } } } catch (e) {} if (navigator.userAgent.includes('Chrome') && !window.chrome) { return true; } if (navigator.userAgent.includes('Firefox') && typeof CSS !== 'undefined' && CSS.supports && !CSS.supports('-moz-appearance', 'none')) { return true; } var hasBrowserStack = Object.getOwnPropertyNames(window).some(function(k) { return /^__BROWSERSTACK_/.test(k); }); if (hasBrowserStack) return true; var hasLighthouse = Object.getOwnPropertyNames(window).some(function(k) { return /^__LIGHTHOUSE_/.test(k); }); if (hasLighthouse) return true; return false; } function bbcs_detectWebGL() { const canvas = document.createElement('canvas'); let gl; try { gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl'); } catch (e) { return true; } if (!gl) { return false; } const debugInfo = gl.getExtension('WEBGL_debug_renderer_info'); let renderer = ''; let vendor = ''; if (debugInfo) { renderer = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL) || ''; vendor = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL) || ''; } if (!renderer || !vendor) { try { renderer = gl.getParameter(gl.RENDERER) || ''; vendor = gl.getParameter(gl.VENDOR) || ''; } catch (e) {} } if (!renderer && !vendor) { try { var ext = gl.getSupportedExtensions(); if (ext) { var softwareExts = ['swiftshader', 'mesa', 'llvmpipe', 'softpipe']; for (var i = 0; i < ext.length; i++) { for (var j = 0; j < softwareExts.length; j++) { if (ext[i].toLowerCase().indexOf(softwareExts[j]) !== -1) return true; } } } } catch (e) {} return false; } if (renderer && vendor) { if (renderer.length < 2 || vendor.length < 2) { return true; } const standardVendors = ['NVIDIA', 'Intel', 'AMD', 'ATI', 'Apple', 'Microsoft', 'Qualcomm', 'ARM', 'Google']; const hasValidVendor = standardVendors.some(v => vendor.includes(v)); if (!hasValidVendor) { return true; } const blacklistedRenderers = ['SwiftShader', 'Google SwiftShader', 'VirtualBox', 'VMware', 'llvmpipe', 'Software Rasterizer', 'Microsoft Basic Render']; const isEmulated = blacklistedRenderers.some(r => renderer.includes(r)); if (isEmulated) { return true; } } return false; } function bbcs_detectTouchEvent() { const hasTouch = 'ontouchstart' in window || navigator.maxTouchPoints > 0; const screenTouchMatch = window.matchMedia && window.matchMedia('(pointer: coarse)').matches === hasTouch; if (!screenTouchMatch) { return true; } const mobileUA = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); if (mobileUA && (!hasTouch || navigator.maxTouchPoints === 0)) { return true; } if (hasTouch && navigator.maxTouchPoints > 20) { return true; } const desktopDeviceWithTouch = !mobileUA && hasTouch && navigator.maxTouchPoints <= 5 && /Windows NT|Macintosh|Linux/i.test(navigator.userAgent); if (desktopDeviceWithTouch && (window.outerHeight - window.innerHeight > 200 || window.outerWidth - window.innerWidth > 200)) { return true; } if (hasTouch && navigator.maxTouchPoints === 1 && !mobileUA) { return true; } return false; } function bbcs_detectLanguageMismatch() { const lang = navigator.language || navigator.userLanguage || ''; const langs = navigator.languages || []; if (Array.isArray(langs) && langs.length > 0) { if (langs[0] !== lang) { return true; } const uniqueLangs = new Set(langs); if (uniqueLangs.size !== langs.length) { return true; } const invalidLang = langs.some(l => typeof l !== 'string' || l.length < 2 || l.length > 35); if (invalidLang) { return true; } } if (!lang || lang.length < 2) { return true; } const invalidChars = /[^a-zA-Z0-9\-_]/; if (invalidChars.test(lang)) { return true; } const acceptLanguage = navigator.languages?.join(',') || navigator.language || ''; if (acceptLanguage && !acceptLanguage.includes(lang)) { return true; } return false; } let _bbcs_incognitoResult = false; let _bbcs_incognitoResolved = false; (function() { var ua = navigator.userAgent; var isChromium = ua.includes('Chrome') || ua.includes('Edg/'); var isSafari = ua.includes('Safari') && !ua.includes('Chrome'); if (isChromium) { if (navigator.storage && navigator.storage.estimate) { navigator.storage.estimate().then(function(est) { _bbcs_incognitoResult = est.quota < 120000000; _bbcs_incognitoResolved = true; }).catch(function() { _bbcs_incognitoResolved = true; }); } else { var fs = window.requestFileSystem || window.webkitRequestFileSystem; if (fs) { fs(window.TEMPORARY, 100, function() { _bbcs_incognitoResolved = true; }, function() { _bbcs_incognitoResult = true; _bbcs_incognitoResolved = true; } ); } else { _bbcs_incognitoResolved = true; } } } else if (isSafari) { try { var db = window.indexedDB.open('_bbcs_inc'); db.onerror = function() { _bbcs_incognitoResult = true; _bbcs_incognitoResolved = true; }; db.onsuccess = function() { _bbcs_incognitoResolved = true; try { db.result.close(); } catch(e) {} }; } catch (e) { _bbcs_incognitoResolved = true; } } else { _bbcs_incognitoResolved = true; } })(); function bbcs_isIncognito() { if (_bbcs_incognitoResolved) return _bbcs_incognitoResult; const ua = navigator.userAgent; if (ua.includes('Firefox')) { try { const idbReq = indexedDB.open('_bbcs_inc'); if (Object.getPrototypeOf(idbReq).constructor.name !== 'IDBOpenDBRequest') { return true; } } catch (e) { return true; } return false; } if (ua.includes('Safari') && !ua.includes('Chrome')) { try { if (!window.localStorage) return true; window.localStorage.setItem('_bbcs_t', '1'); window.localStorage.removeItem('_bbcs_t'); } catch (e) { return true; } return false; } return _bbcs_incognitoResult; } function bbcs_clean_and_decode_base64_to_utf8(str) { str = str.replace(/\s/g, ''); return decodeURIComponent(escape(window.atob(str))); } window.bbcs_detectJitter = bbcs_detectJitter; window.bbcs_detectNavigatorMismatch = bbcs_detectNavigatorMismatch; window.bbcs_detectUnsupportedFeatures = bbcs_detectUnsupportedFeatures; window.bbcs_detectFakePlugins = bbcs_detectFakePlugins; window.bbcs_detectFontRenderMismatch = bbcs_detectFontRenderMismatch; window.bbcs_detectChromiumProperties = bbcs_detectChromiumProperties; window.bbcs_detectWebGL = bbcs_detectWebGL; window.bbcs_detectTouchEvent = bbcs_detectTouchEvent; window.bbcs_detectLanguageMismatch = bbcs_detectLanguageMismatch; window.bbcs_isIncognito = bbcs_isIncognito; window.bbcs_clean_and_decode_base64_to_utf8 = bbcs_clean_and_decode_base64_to_utf8; /* * BotBlocker Detection Utilities * Version: 2.0.0 * Copyright (c) 2026 BotBlocker * */ function bbcs_computeFingerprint() { const components = []; const addComponent = (name, value) => { if (value !== undefined) components.push(`${name}:${value}`); }; const navData = [ navigator.userAgent, navigator.platform, navigator.vendor, navigator.language, Array.isArray(navigator.languages) ? navigator.languages.join(',') : '', navigator.hardwareConcurrency, navigator.deviceMemory, navigator.maxTouchPoints, screen.width + 'x' + screen.height + 'x' + screen.colorDepth, window.innerWidth + 'x' + window.innerHeight, window.outerWidth + 'x' + window.outerHeight, window.devicePixelRatio ].filter(Boolean).join('|'); addComponent('nav', navData); try { const canvas = document.createElement('canvas'); canvas.width = 280; canvas.height = 60; const ctx = canvas.getContext('2d'); ctx.textBaseline = 'alphabetic'; ctx.fillStyle = '#f60'; ctx.fillRect(125, 1, 62, 20); const gradient = ctx.createLinearGradient(0, 0, canvas.width, 0); gradient.addColorStop(0, '#0f0'); gradient.addColorStop(0.5, '#f0f'); gradient.addColorStop(1, '#00f'); ctx.fillStyle = gradient; ctx.font = '16px Arial'; ctx.fillText("BotBlocker 👾 2026", 2, 15); ctx.fillStyle = 'rgba(102, 204, 0, 0.7)'; ctx.font = '18px Times New Roman'; ctx.fillText("BotblockeR", 4, 45); ctx.fillStyle = '#f0f'; ctx.font = 'bold 14px Georgia'; ctx.fillText("👻🔒🛡️", 180, 30); ctx.strokeStyle = '#639'; ctx.lineWidth = 2; ctx.beginPath(); ctx.moveTo(0, 30); ctx.bezierCurveTo(25, 15, 75, 55, 100, 30); ctx.stroke(); const dataURL = canvas.toDataURL(); const canvasHash = simpleHash(dataURL.substring(0, 1000)); addComponent('cnv', canvasHash); } catch(e) { addComponent('cnv_err', simpleHash(e.toString())); } try { const canvas = document.createElement('canvas'); const gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl'); if (gl) { const debugInfo = gl.getExtension('WEBGL_debug_renderer_info'); const vendor = debugInfo ? gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL) : ''; const renderer = debugInfo ? gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL) : ''; const webglData = [ gl.getParameter(gl.VERSION), vendor, renderer, gl.getParameter(gl.SHADING_LANGUAGE_VERSION), (gl.getSupportedExtensions() || []).join('~').substring(0, 100) ].join('|'); addComponent('gl', simpleHash(webglData)); const shaderPrecision = [ gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_FLOAT).precision, gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT).precision, gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_FLOAT).rangeMin, gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT).rangeMax ].join('|'); addComponent('gl_prec', simpleHash(shaderPrecision)); } } catch(e) { addComponent('gl_err', simpleHash(e.toString())); } try { const audioContext = window.AudioContext || window.webkitAudioContext; if (audioContext) { let audioContextAllowed = false; try { const tempContext = new audioContext(); if (tempContext.state === 'running') { audioContextAllowed = true; const oscillator = tempContext.createOscillator(); const analyser = tempContext.createAnalyser(); const gain = tempContext.createGain(); oscillator.type = 'triangle'; gain.gain.value = 0; oscillator.connect(analyser); analyser.connect(gain); gain.connect(tempContext.destination); analyser.fftSize = 256; const bufferLength = analyser.frequencyBinCount; const dataArray = new Uint8Array(bufferLength); oscillator.start(); analyser.getByteFrequencyData(dataArray); oscillator.stop(); const samples = []; for (let i = 0; i < bufferLength; i += 4) { samples.push(dataArray[i]); } addComponent('aud', simpleHash(samples.join(','))); addComponent('aud_ctx', simpleHash(tempContext.sampleRate + '|' + tempContext.destination.channelCount)); if (typeof tempContext.close === 'function') { tempContext.close(); } } else { addComponent('aud', 'suspended'); if (typeof tempContext.close === 'function') { tempContext.close(); } } } catch(e) { addComponent('aud', 'blocked'); } } else { addComponent('aud', 'not_supported'); } } catch(e) { addComponent('aud_err', simpleHash(e.toString())); } try { const timeData = [ Intl.DateTimeFormat().resolvedOptions().timeZone, new Date().getTimezoneOffset(), Intl.DateTimeFormat().resolvedOptions().locale, new Date().toString().substring(0, 25) ].join('|'); addComponent('tz', simpleHash(timeData)); } catch(e) { addComponent('tz_err', simpleHash(e.toString())); } const mathConstants = [ Math.PI.toString().substring(0, 40), Math.E.toString().substring(0, 40), Math.SQRT2.toString().substring(0, 40), Math.SQRT1_2.toString().substring(0, 40), Math.LN2.toString().substring(0, 40), Math.LN10.toString().substring(0, 40), Math.LOG2E.toString().substring(0, 40), Math.LOG10E.toString().substring(0, 40) ].join(''); const mathOperations = [ Math.sin(Math.PI / 4).toString(), Math.cos(Math.PI / 4).toString(), Math.tan(Math.PI / 4).toString(), Math.sin(0).toString(), Math.exp(1).toString(), Math.log(10).toString(), Math.log10(100).toString(), Math.sqrt(2).toString(), Math.cbrt(27).toString() ].join(''); addComponent('math', simpleHash(mathConstants + mathOperations)); const apiFeatures = [ 'Promise' in window, 'Symbol' in window, 'fetch' in window, 'Proxy' in window, 'Reflect' in window, 'Map' in window, 'Set' in window, 'WeakMap' in window, 'WeakSet' in window, 'BigInt' in window, 'Atomics' in window, 'SharedArrayBuffer' in window, 'Intl' in window, 'WebAssembly' in window, 'ArrayBuffer' in window, 'WebSocket' in window, 'Worker' in window, 'IntersectionObserver' in window, 'ResizeObserver' in window, 'MutationObserver' in window, 'localStorage' in window, 'sessionStorage' in window, 'indexedDB' in window, 'crypto' in window, 'Bluetooth' in navigator, 'clipboard' in navigator, 'credentials' in navigator, 'geolocation' in navigator, 'mediaDevices' in navigator, 'serviceWorker' in navigator, 'requestIdleCallback' in window, 'speechSynthesis' in window, 'performance' in window, 'Notification' in window ].map((val, idx) => val ? idx.toString(36) : '').join(''); addComponent('api', simpleHash(apiFeatures)); try { if (navigator.plugins) { const plugins = Array.from(navigator.plugins || []) .map(p => [p.name, p.description, p.filename].filter(Boolean).join('~')) .join('|'); if (plugins) addComponent('plg', simpleHash(plugins)); const mimeTypes = Array.from(navigator.mimeTypes || []) .map(m => [m.type, m.description, m.suffixes].filter(Boolean).join('~')) .join('|'); if (mimeTypes) addComponent('mime', simpleHash(mimeTypes)); } } catch(e) { addComponent('plg_err', simpleHash(e.toString())); } try { if (performance) { const performanceData = [ performance.timeOrigin, performance.now(), performance.memory ? performance.memory.jsHeapSizeLimit : null, performance.memory ? performance.memory.totalJSHeapSize : null, performance.memory ? performance.memory.usedJSHeapSize : null ].filter(Boolean).join('|'); addComponent('perf', simpleHash(performanceData)); } } catch(e) { addComponent('perf_err', simpleHash(e.toString())); } let timeWarpDetection = ''; try { const startNow = Date.now(); const startPerf = performance.now(); let sum = 0; for (let i = 0; i < 10000; i++) sum += Math.sqrt(i); const endNow = Date.now(); const endPerf = performance.now(); const dateTimeDiff = endNow - startNow; const perfTimeDiff = endPerf - startPerf; const timingRatio = dateTimeDiff > 0 ? (perfTimeDiff / dateTimeDiff).toFixed(2) : 'error'; timeWarpDetection = timingRatio; } catch(e) { timeWarpDetection = 'error'; } addComponent('time_warp', timeWarpDetection); try { const conn = navigator.connection || navigator.mozConnection || navigator.webkitConnection; if (conn) { const connData = [conn.effectiveType, conn.type, conn.downlink, conn.rtt, conn.saveData] .filter(v => v !== undefined).join('|'); addComponent('conn', simpleHash(connData)); } } catch(e) {} try { if (typeof CSS !== 'undefined' && CSS.supports) { const cssFeatures = [ CSS.supports('-webkit-appearance', 'none'), CSS.supports('-moz-appearance', 'none'), CSS.supports('accent-color', 'auto'), CSS.supports('container-type', 'inline-size'), CSS.supports('color', 'oklch(0.5 0.2 240)'), CSS.supports('view-transition-name', 'root'), CSS.supports('anchor-name', '--a') ].map((v, i) => v ? i.toString(36) : '').join(''); addComponent('css', simpleHash(cssFeatures)); } } catch(e) {} function simpleHash(str) { if (!str) return 'empty'; let h1 = 0xdeadbeef, h2 = 0x41c6ce57; for (let i = 0, ch; i < str.length; i++) { ch = str.charCodeAt(i); h1 = Math.imul(h1 ^ ch, 2654435761); h2 = Math.imul(h2 ^ ch, 1597334677); } h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507); h1 ^= Math.imul(h2 ^ (h2 >>> 13), 3266489909); h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507); h2 ^= Math.imul(h1 ^ (h1 >>> 13), 3266489909); const h = 4294967296 * (2097151 & h2) + (h1 >>> 0); return h.toString(36); } const allComponents = components.join(';'); const fingerprint = simpleHash(allComponents); return { fingerprint: fingerprint, //fingerprintDetails: allComponents // Uncomment to see the details and debug }; } window.bbcs_computeFingerprint = bbcs_computeFingerprint; var bbcsCaptchaData = {"mode":8,"params":{"deniedText":"Access denied. Please enable JavaScript and cookies.","silentHash":"a0e04ced952f76e34556cd8316ae2d904b6f6fb1f72c3257117b14aa11eb40aa"},"ajaxUrl":"https:\/\/womannews.ru\/wp-admin\/admin-ajax.php","nonce":"0f6548ed26","time":1793676556,"selectRequestMode":"x17c6194b6d9d9a4cdc465efcd9857d61","checkFunction":"f4021097dd34fc1133490fc3dacdc8b23","data":"window.data","autoRender":false,"challengeToken":"6e7cyoh0w7zoi8CnIiUbsdZNHtAKwV4pnNidhS1AFvuOda4bcwNpOV4cgsP+3dnRkmmoxnzk+yCqt5OjpYxiATIhpv+\/hD3d0YKT\/rV49xHFtLaeVplxLaD3mBFSLcMgvdtT7eQxpy4vb\/CZ0IsbhEx3yreVM40rXfz5kB\/HTCw="}; /* Main CAPTCHA JS Controller */ function renderCaptcha() { if (typeof bbcsCaptchaData === "undefined") { console.error('[BBCS DEBUG] CAPTCHA initial data not loaded'); if (typeof bbcsJsData !== 'undefined' && bbcsJsData.debugEnabled) { console.log('[BBCS DEBUG] renderCaptcha: bbcsCaptchaData is undefined'); } return; } const mode = parseInt(bbcsCaptchaData.mode, 10); const params = bbcsCaptchaData.params; if (typeof bbcsJsData !== 'undefined' && bbcsJsData.debugEnabled) { console.log('[BBCS DEBUG] renderCaptcha: mode=' + mode + ' params keys=' + (params ? Object.keys(params).join(',') : 'null') + ' token=' + (bbcsCaptchaData.challengeToken ? bbcsCaptchaData.challengeToken.substring(0,10)+'...' : 'empty')); } switch (mode) { case 0: if (typeof renderMode0Captcha === "function") { renderMode0Captcha(params); } break; case 1: if (typeof renderMode1Captcha === "function") { renderMode1Captcha(params); } break; case 2: if (typeof renderMode2Captcha === "function") { renderMode2Captcha(params); } break; case 3: if (typeof renderMode3Captcha === "function") { renderMode3Captcha(params); } break; case 4: if (typeof renderMode4Captcha === "function") { renderMode4Captcha(params); } break; case 5: if (typeof renderMode5Captcha === "function") { renderMode5Captcha(params); } break; case 6: if (typeof renderMode6Captcha === "function") { renderMode6Captcha(params); } break; case 7: if (typeof renderMode7Captcha === "function") { renderMode7Captcha(params); } break; case 8: if (typeof renderMode8Captcha === "function") { renderMode8Captcha(params); } break; default: console.error('[BBCS DEBUG] Unknown CAPTCHA mode:', mode); break; } } window.renderCaptcha = renderCaptcha; /* CAPTCHA Mode 8 JS (silent auto-verify - no user interaction required) */ function renderMode8Captcha(params) { var deniedText = (params && params.deniedText) ? params.deniedText : 'Access denied.'; var silentHash = (params && params.silentHash) ? params.silentHash : ''; if (!silentHash || typeof bbcsJsData === 'undefined' || !bbcsJsData.checkFunctionName) { bbcsMode8ShowDenied(deniedText); return; } var retries = 0; try { retries = parseInt(sessionStorage.getItem('bbcsMode8Retries') || '0', 10); } catch(e) {} if (retries < 2) { try { sessionStorage.setItem('bbcsMode8Retries', String(retries + 1)); } catch(e) {} window[bbcsJsData.checkFunctionName]('post', window.data, silentHash); } else { try { sessionStorage.removeItem('bbcsMode8Retries'); } catch(e) {} bbcsMode8ShowDenied(deniedText); } } function bbcsMode8ShowDenied(text) { var c = document.getElementById("content"); if (c) { c.innerHTML = '<p style="text-align:center;color:#c0392b;">' + text + '</p>'; } } window.renderMode8Captcha = renderMode8Captcha; // BotBlocker Check Core - Shared JS for FULL and FRONTEND modes // Requires: window.bbcsJsData to be set BEFORE this script runs. window.bbcs_cleanAndDecodeBase64ToUtf8 = function(str) { str = str.replace(/\s/g, ''); return decodeURIComponent(escape(window.atob(str))); }; window.ipv4 = ''; window.ipdbc = ''; window.rct = ''; window.bbcsDebugEnabled = bbcsJsData.debugEnabled ? 'true' : 'false'; window.bbcsDebugLog = function(...args) { if (window.bbcsDebugEnabled) { console.log('[BBCS DEBUG]', ...args); } }; window.bbcsDebugWarn = function(...args) { if (window.bbcsDebugEnabled) { console.warn('[BBCS DEBUG]', ...args); } }; window.bbcsDebugError = function(...args) { if (window.bbcsDebugEnabled) { console.error('[BBCS DEBUG]', ...args); } }; bbcsDebugLog(bbcsJsData.shortName + ' v.' + bbcsJsData.version); var bbcsDdosRetryCount = 0; var bbcsDdosMaxRetries = 3; window.bbcsCheckUI = { timerInterval: null, secondsLeft: 6, attempt: 0, maxAttempts: 3, _lastMsg: '', showVerifying: function () { this._stopTimer(); this.secondsLeft = 6; this.attempt = 0; this._render(bbcsJsData.verifyingText || 'Verifying...'); }, showRetry: function (attemptNum) { this._stopTimer(); this.attempt = attemptNum; this._render((bbcsJsData.retryingText || 'Retrying...') + ' (' + attemptNum + '/' + this.maxAttempts + ')', true); this._startTimer(); }, showCAPTCHA: function () { this._stopTimer(); this._render(bbcsJsData.verificationFailedText || 'Verification failed. Please complete the challenge below.'); }, showSuccess: function () { this._stopTimer(); this._render(bbcsJsData.approvedText || 'Access approved. Redirecting...'); }, hide: function () { this._stopTimer(); var el = document.getElementById('bbcs-status'); if (el) { el.innerHTML = ''; el.style.display = 'none'; } }, _render: function (msg, showSeconds) { this._lastMsg = msg; var el = document.getElementById('bbcs-status'); if (!el) return; el.style.display = ''; var html = '<div style="margin-bottom:2px;">' + msg + '</div>'; if (showSeconds) { html += '<div style="font-size:12px;color:#999;">' + this.secondsLeft + 's</div>'; } el.innerHTML = html; }, _startTimer: function () { var self = this; this.timerInterval = setInterval(function () { if (self.secondsLeft > 0) { self.secondsLeft--; self._render(self._lastMsg, true); } if (self.secondsLeft <= 0) { self._stopTimer(); } }, 1000); }, _stopTimer: function () { if (this.timerInterval) { clearInterval(this.timerInterval); this.timerInterval = null; } } }; function bbcs_isDdosResponse(responseText, status) { if (!responseText) return false; if (typeof status !== 'undefined' && status !== 200) return false; try { JSON.parse(responseText.trim()); return false; } catch(e) {} return responseText.indexOf('<') !== -1 || responseText.indexOf('document.cookie') !== -1; } function bbcs_extractDdosCookie(responseText) { if (!responseText) return false; var cookiePatterns = [ /document\.cookie\s*=\s*"([^"]+)"/, /document\.cookie\s*=\s*'([^']+)'/ ]; for (var i = 0; i < cookiePatterns.length; i++) { var cookieMatch = responseText.match(cookiePatterns[i]); if (cookieMatch && cookieMatch[1]) { bbcsDebugLog('DDoS protection cookie detected, setting: ' + cookieMatch[1].substring(0, 20) + '...'); document.cookie = cookieMatch[1]; return true; } } return false; } function bbcs_handleDdosResponse(responseText, s, d, x, checkFn) { bbcs_extractDdosCookie(responseText); if (bbcsDdosRetryCount < bbcsDdosMaxRetries) { bbcsDdosRetryCount++; if (bbcsJsData.ddosResilience) { bbcsCheckUI.showRetry(bbcsDdosRetryCount); } var delay = bbcsDdosRetryCount * 1000; bbcsDebugLog('DDoS retry ' + bbcsDdosRetryCount + '/' + bbcsDdosMaxRetries + ' in ' + delay + 'ms'); setTimeout(function() { checkFn(s, d, x); }, delay); return true; } if (bbcsJsData.ddosResilience) { bbcsCheckUI.showCAPTCHA(); } var rc = 0; try { rc = parseInt(sessionStorage.getItem('bbcsRedirectCount') || '0', 10); } catch(e) {} if (rc >= 2) { bbcsDebugLog('DDoS redirect loop detected, stopping'); botblocker_captcha_render(); return true; } try { sessionStorage.setItem('bbcsRedirectCount', String(rc + 1)); } catch(e) {} bbcsDebugLog('DDoS retries exhausted, redirecting to page'); window.location.href = bbcsJsData.redirectUrl; return true; } function bbcs_detectAll() { const results = { navigatorMismatch: bbcs_detectNavigatorMismatch(), unsupportedFeatures: bbcs_detectUnsupportedFeatures(), fakePlugins: bbcs_detectFakePlugins(), fontRenderMismatch: bbcs_detectFontRenderMismatch(), chromiumProperties: bbcs_detectChromiumProperties(), jitter: bbcs_detectJitter(), webGLMismatch: bbcs_detectWebGL(), touchEventMismatch: bbcs_detectTouchEvent(), languageMismatch: bbcs_detectLanguageMismatch(), crossbrowserIncognito: bbcs_isIncognito(), browserFingerprint: bbcs_computeFingerprint() }; return results; } function bbcs_getDetectionParams() { const startTime = Date.now(); const timeoutLimit = 1000; try { const detectionResult = bbcs_detectAll(); if (Date.now() - startTime > timeoutLimit) { bbcsDebugWarn('Detection methods took too long, returning partial results'); } detectionResult.browserFingerprint = detectionResult.browserFingerprint.fingerprint; let detectionParams = ''; for (const [key, value] of Object.entries(detectionResult)) { detectionParams += '&' + key + '=' + encodeURIComponent(value); } return detectionParams; } catch (e) { bbcsDebugError('Error during detection:', e); return '&error=detection_failed'; } } function bbcs_areCookiesEnabled() { var cookieEnabled = navigator.cookieEnabled; if (cookieEnabled === undefined) { document.cookie = "testcookie"; cookieEnabled = document.cookie.indexOf("testcookie") != -1; } return cookieEnabled; } if (!bbcs_areCookiesEnabled()) { var cookieoff = 1; } else { var cookieoff = 0; } var _host = window.location.hostname; if (_host.indexOf('www.') === 0) { _host = _host.substring(4); } if (_host !== window.atob(bbcsJsData.hostBase64) && _host !== window.atob(bbcsJsData.hostNoPortBase64)) { window.location = window.atob(bbcsJsData.redirectUrlBase64); throw "stop"; } document.getElementById("content").innerHTML = bbcsJsData.loadingText; function handleWorkerSignal() { return new Promise(function(resolve) { if (bbcsJsData.recaptchaEnabled) { grecaptcha.ready(function() { grecaptcha.execute(bbcsJsData.recaptchaKey3, { action: bbcsJsData.country }).then(function(token) { window.rct = token; resolve('HWS'); }); }); } else { window.rct = ''; resolve('HWS'); } }); } function makeIpv6Request(url) { return new Promise(function(resolve) { var xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.setRequestHeader("Content-Type", "application/json"); xhr.timeout = 5000; xhr.onload = function() { if (xhr.readyState === 4 && xhr.status === 200) { var json = JSON.parse(xhr.responseText); window.ipv4 = json.ip; window.ipdbc = bbcsJsData.emptyValue; resolve(true); } else { bbcsDebugError('Error status:', xhr.status); resolve(false); } }; xhr.ontimeout = function() { bbcsDebugError('Timeout'); resolve(false); }; xhr.onerror = function() { bbcsDebugError('Error'); resolve(false); }; xhr.send(); }); } async function dispatchServiceEvent() { if (bbcsJsData.ipVersion == 6) { var ok = await makeIpv6Request(bbcsJsData.apiIpv6); if (!ok) { ok = await makeIpv6Request(bbcsJsData.apiGsIpv6); } return ok ? 'DSE' : 'Error DSE'; } window.ipv4 = ''; window.ipdbc = ''; return 'Result DSE'; } function initProcessHandler(result1, result2) { var bbcs_detectionParams = bbcs_getDetectionParams(); window.data = 'test=' + bbcsJsData.testHash + '&h1=' + bbcsJsData.h1Hash + '&date=' + bbcsJsData.time + '&hdc=' + bbcsJsData.hosting + '&a=' + window.adb_var + '&country=' + bbcsJsData.country + '&ip=' + bbcsJsData.ip + '&version=' + bbcsJsData.version + '&cid=' + bbcsJsData.cid + '&ptr=' + bbcsJsData.ptr + '&w=' + screen.width + '&h=' + screen.height + '&cw=' + document.documentElement.clientWidth + '&ch=' + document.documentElement.clientHeight + '&co=' + screen.colorDepth + '&pi=' + screen.pixelDepth + '&ref=' + encodeURIComponent(document.referrer) + '&accept=' + bbcsJsData.httpAccept + '&tz=' + Intl.DateTimeFormat().resolvedOptions().timeZone + '&ipdbc=' + window.ipdbc + '&ipv4=' + window.ipv4 + '&rct=' + window.rct + '&cookieoff=' + cookieoff + bbcs_detectionParams; window[bbcsJsData.checkFunctionName]('botblocker-security', window.data, ''); bbcsDebugLog('initProcessHandler -> ', result1, result2); } async function performAsyncStep() { try { const result1 = await handleWorkerSignal(); const result2 = await dispatchServiceEvent(); initProcessHandler(result1, result2); } catch (error) { bbcsDebugError(error); } } performAsyncStep(); function botblocker_captcha_render() { if (bbcsJsData.ddosResilience && typeof bbcsCircuitBreaker !== 'undefined' && bbcsCircuitBreaker.isOpen()) { bbcsCircuitBreaker.showFallback(); return; } if (typeof renderCaptcha === 'function') { renderCaptcha(); } } window[bbcsJsData.checkFunctionName] = function(s, d, x, ajaxEndpoint) { if (bbcsJsData.ddosResilience) { if (typeof bbcsCircuitBreaker !== 'undefined' && bbcsCircuitBreaker.isOpen()) { bbcsCircuitBreaker.showFallback(); return; } } if (!ajaxEndpoint) ajaxEndpoint = bbcsJsData.ajaxUrl; if (bbcsJsData.ddosResilience) { if (bbcsDdosRetryCount === 0) { bbcsCheckUI.showVerifying(); } } else { document.getElementById("content").innerHTML = bbcsJsData.loadingText; } var formData = new FormData(); formData.append('action', 'bbcs_botblocker_check'); formData.append('nonce', bbcsJsData.nonce); formData.append(bbcsJsData.selectRequestMode, s); formData.append('xxx', x); formData.append('rowid', bbcsJsData.ruleRecordId); formData.append('from_suspect', bbcsJsData.suspectStatus); formData.append('suspect_reason', bbcsJsData.reasonForAction); formData.append('check_result', bbcsJsData.resultOfAction); if (typeof bbcsCaptchaData !== 'undefined' && bbcsCaptchaData.challengeToken) { formData.append('challenge_token', bbcsCaptchaData.challengeToken); } var additionalParams = new URLSearchParams(d); for (var pair of additionalParams.entries()) { formData.append(pair[0], pair[1]); } var xhr = new XMLHttpRequest(); xhr.open('POST', ajaxEndpoint, true); xhr.timeout = bbcsDdosRetryCount > 0 ? 10000 : 5000; xhr.onload = function() { if (xhr.status == 200) { bbcsDebugLog('Plugin status: ' + xhr.status); try { var responseText = xhr.responseText.trim(); bbcsDebugLog('Response text:', responseText); if (responseText) { var obj = JSON.parse(responseText); var bbcsSigValid = true; if (bbcsJsData.ddosResilience) { if (typeof obj.bbcs_sig !== 'string') { bbcsSigValid = false; } else { delete obj.bbcs_sig; } } if (bbcsJsData.ddosResilience && bbcsSigValid && typeof obj.cookie !== 'string') { var backupCookie = xhr.getResponseHeader('X-BBCS-' + bbcsJsData.uid); if (backupCookie) { obj.cookie = backupCookie; } } if (typeof(obj.cookie) == "string") { bbcsDebugLog('Cookie received, value=' + obj.cookie.substring(0,20) + '... uid=' + bbcsJsData.uid + ' redirectUrl=' + bbcsJsData.redirectUrl); if (bbcsJsData.ddosResilience) { bbcsCheckUI.showSuccess(); if (typeof bbcsCircuitBreaker !== 'undefined') { if (bbcsSigValid) { bbcsCircuitBreaker.recordSuccess(); } else { bbcsCircuitBreaker.recordFailure(); } } } var expiryDate = new Date(); expiryDate.setTime(expiryDate.getTime() + ((bbcsJsData.cookieLifetime || 604800) * 1000)); var expires = "expires=" + expiryDate.toUTCString(); var bbcsSS = bbcsJsData.samesite; if (bbcsSS === 'None' && window.location.protocol !== 'https:') { bbcsSS = 'Lax'; } var cookieStr = bbcsJsData.uid + "=" + obj.cookie + "-" + bbcsJsData.time + "; SameSite=" + bbcsSS + ";" + (bbcsSS === 'None' ? ' Secure' : '') + "; " + expires + "; path=/;"; bbcsDebugLog('Setting cookie: name=' + bbcsJsData.uid + ' value_len=' + (obj.cookie + "-" + bbcsJsData.time).length); document.cookie = cookieStr; var verifyCookie = document.cookie; bbcsDebugLog('document.cookie after set (first 80 chars): ' + (verifyCookie ? verifyCookie.substring(0,80) : 'EMPTY') + ' hasUidCookie=' + (verifyCookie && verifyCookie.indexOf(bbcsJsData.uid) !== -1)); try { sessionStorage.removeItem('bbcsRedirectCount'); } catch(e) {} if (bbcsJsData.silentMode) { try { sessionStorage.removeItem('bbcsMode8Retries'); } catch(e) {} document.getElementById("content").innerHTML = bbcsJsData.approvedText; setTimeout(function() { window.location.href = bbcsJsData.redirectUrl; }, 0); } else { document.getElementById("content").innerHTML = bbcsJsData.loadingText; bbcsDebugLog('redirecting to ' + bbcsJsData.redirectUrl); window.location.href = bbcsJsData.redirectUrl; } } else if (!bbcsSigValid) { bbcsDebugLog('No cookie AND invalid sig. cookie=' + (typeof obj.cookie) + ' sigValid=' + bbcsSigValid + ' ddos=' + bbcsJsData.ddosResilience); if (typeof bbcsCircuitBreaker !== 'undefined') { bbcsCircuitBreaker.recordFailure(); } if (bbcsJsData.ddosResilience) { bbcsCheckUI.showCAPTCHA(); } botblocker_captcha_render(); bbcsDebugLog('Response signature missing or invalid; rejecting tampered response'); } else { bbcsDebugLog('No cookie, sig valid. cookie=' + (typeof obj.cookie) + ' keys=' + Object.keys(obj).join(',')); if (bbcsJsData.ddosResilience) { bbcsCheckUI.showCAPTCHA(); } botblocker_captcha_render(); bbcsDebugLog('Bad bot detected'); } if (typeof(obj.error) == "string") { if (bbcsJsData.jsAdminEnabled) { if (obj.error == "BotBlocker Account Not Found" || obj.error == "This domain doesn't have a valid license" || obj.error == "Subscription Expired" || obj.error == "This domain is not registered or is not active" || obj.error == bbcsJsData.jsErrorMessage) { const ErrorMsg = document.createElement('div'); const errH1 = document.createElement('h1'); errH1.style.textAlign = 'center'; errH1.style.color = 'red'; errH1.textContent = obj.error; ErrorMsg.appendChild(errH1); document.body.insertAdjacentElement('afterbegin', ErrorMsg); document.getElementById("content").style.visibility = "hidden"; document.getElementById("content").innerHTML = ''; } else if (obj.error == "Cookies disabled") { document.getElementById("content").innerHTML = "<h2 style=\"text-align:center; color:red;\">" + bbcsJsData.cookieDisabledText + "</h2>"; } } if (obj.error == "timeout" || obj.error == "Wrong Click") { if (bbcsJsData.silentMode) { var r = 0; try { r = parseInt(sessionStorage.getItem('bbcsMode8Retries') || '0', 10); } catch(e) {} if (r < 2) { try { sessionStorage.setItem('bbcsMode8Retries', String(r + 1)); } catch(e) {} window.location.reload(); return; } } document.getElementById("content").innerHTML = bbcsJsData.loadingText; window.location.href = bbcsJsData.redirectUrl; } } } else { bbcsDebugWarn('Empty or invalid response from server.'); if (ajaxEndpoint !== bbcsJsData.verifyUrl && bbcsJsData.verifyUrl) { bbcsDebugLog('admin-ajax.php returned empty response, trying verify endpoint'); window[bbcsJsData.checkFunctionName](s, d, x, bbcsJsData.verifyUrl); return; } if (bbcsJsData.ddosResilience) { if (typeof bbcsCircuitBreaker !== 'undefined') { bbcsCircuitBreaker.recordFailure(); } bbcsCheckUI.showCAPTCHA(); } botblocker_captcha_render(); } } catch (e) { bbcsDebugError('Error parsing JSON:', e); bbcsDebugLog('Response text received:', xhr.responseText); if (bbcs_isDdosResponse(xhr.responseText, xhr.status)) { var checkFn = window[bbcsJsData.checkFunctionName]; if (bbcs_handleDdosResponse(xhr.responseText, s, d, x, checkFn)) return; } if (bbcsJsData.ddosResilience) { if (typeof bbcsCircuitBreaker !== 'undefined') { bbcsCircuitBreaker.recordFailure(); } bbcsCheckUI.showCAPTCHA(); } botblocker_captcha_render(); } } else { bbcsDebugLog('Error: ' + xhr.status); if (ajaxEndpoint !== bbcsJsData.verifyUrl && bbcsJsData.verifyUrl) { bbcsDebugLog('admin-ajax.php returned ' + xhr.status + ', trying verify endpoint'); window[bbcsJsData.checkFunctionName](s, d, x, bbcsJsData.verifyUrl); return; } if (bbcs_isDdosResponse(xhr.responseText, xhr.status)) { var checkFn = window[bbcsJsData.checkFunctionName]; if (bbcs_handleDdosResponse(xhr.responseText, s, d, x, checkFn)) return; } if (bbcsJsData.ddosResilience) { if (typeof bbcsCircuitBreaker !== 'undefined') { bbcsCircuitBreaker.recordFailure(); } bbcsCheckUI.showCAPTCHA(); } botblocker_captcha_render(); } }; xhr.ontimeout = function() { bbcsDebugLog('timeout'); if (ajaxEndpoint !== bbcsJsData.verifyUrl && bbcsJsData.verifyUrl) { bbcsDebugLog('admin-ajax.php timeout, trying verify endpoint'); window[bbcsJsData.checkFunctionName](s, d, x, bbcsJsData.verifyUrl); return; } if (bbcsDdosRetryCount > 0) { bbcsDebugLog('Timeout during DDoS retry, redirecting'); window.location.href = bbcsJsData.redirectUrl; return; } if (bbcsJsData.ddosResilience) { if (typeof bbcsCircuitBreaker !== 'undefined') { bbcsCircuitBreaker.recordFailure(); } bbcsCheckUI.showCAPTCHA(); } botblocker_captcha_render(); }; xhr.onerror = function() { bbcsDebugLog('error'); if (ajaxEndpoint !== bbcsJsData.verifyUrl && bbcsJsData.verifyUrl) { bbcsDebugLog('admin-ajax.php error, trying verify endpoint'); window[bbcsJsData.checkFunctionName](s, d, x, bbcsJsData.verifyUrl); return; } if (bbcsDdosRetryCount > 0) { bbcsDebugLog('Error during DDoS retry, redirecting'); window.location.href = bbcsJsData.redirectUrl; return; } if (bbcsJsData.ddosResilience) { if (typeof bbcsCircuitBreaker !== 'undefined') { bbcsCircuitBreaker.recordFailure(); } bbcsCheckUI.showCAPTCHA(); } botblocker_captcha_render(); }; xhr.send(formData); };
x server