Changeset 3763154
- Timestamp:
- 10/24/2026 10:59:14 AM (75 minutes ago)
- Location:
- cyberpulse/trunk
- Files:
-
- 16 edited
-
assets/css/cyberpulse-admin.css (modified) (2 diffs)
-
cyberpulse-core.php (modified) (8 diffs)
-
cyberpulse-htaccess.php (modified) (2 diffs)
-
cyberpulse-tabs.php (modified) (4 diffs)
-
cyberpulse.php (modified) (1 diff)
-
languages/cyberpulse-de_DE.php (modified) (1 diff)
-
languages/cyberpulse-en_US.php (modified) (1 diff)
-
languages/cyberpulse-es_ES.php (modified) (1 diff)
-
languages/cyberpulse-fr_FR.php (modified) (1 diff)
-
languages/cyberpulse-it_IT.php (modified) (1 diff)
-
languages/cyberpulse-ja.php (modified) (1 diff)
-
languages/cyberpulse-ko_KR.php (modified) (1 diff)
-
languages/cyberpulse-pt_BR.php (modified) (1 diff)
-
languages/cyberpulse-ru_RU.php (modified) (1 diff)
-
languages/cyberpulse-zh_CN.php (modified) (1 diff)
-
readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
cyberpulse/trunk/assets/css/cyberpulse-admin.css
r3760235 r3763154 3237 3237 } 3238 3238 3239 .cp-recommend--info { 3240 background: var(--sw-info-light); 3241 color: var(--sw-info); 3242 border: 1px solid var(--sw-info-border); 3243 } 3244 3239 3245 .cp-recommend--off { 3240 3246 background: var(--sw-danger-light); … … 3254 3260 color: #9a5e00; 3255 3261 border-color: rgba(196, 120, 0, 0.3); 3262 } 3263 3264 .sw-light-mode .cp-recommend--info { 3265 background: rgba(0, 128, 176, 0.1); 3266 color: #006a94; 3267 border-color: rgba(0, 128, 176, 0.3); 3256 3268 } 3257 3269 -
cyberpulse/trunk/cyberpulse-core.php
r3761760 r3763154 45 45 define('CYBERSEC_PERMANENT_BLOCKED_SUBNETS', 'secwall_permanent_blocked_subnets'); 46 46 define('CYBERSEC_UA_BLOCKS_OPTION', 'secwall_blocked_user_agents'); 47 define('CYBERSEC_VERSION', '5.9.1. 1');47 define('CYBERSEC_VERSION', '5.9.1.2'); 48 48 49 49 if (!file_exists(CYBERSEC_LOG_DIR)) { … … 114 114 'cybersec_language' => 'auto', 115 115 'htaccess_protection_enabled' => 0, 116 'ai_training_block_enabled' => 1, 117 'ai_search_block_enabled' => 0, 116 118 ); 117 119 … … 3538 3540 3539 3541 /** 3540 * Returns the single source of truth for AI bot User-Agent signatures. 3541 * Used by cybersec_is_bot_user_agent(), cybersec_check_ai_scraper(), 3542 * cybersec_check_user_agent_anomalies() and cybersec_check_all(). 3542 * Returns the full map of AI bot signatures => category. 3543 * Categories: 3544 * 'training' — collect data for AI training. No traffic back. 3545 * 'search' — AI search bots that can bring visitors. 3543 3546 * 3544 3547 * @return array 3545 3548 */ 3549 function cybersec_get_ai_bot_signatures_map() { 3550 static $map = null; 3551 if ($map !== null) { 3552 return $map; 3553 } 3554 3555 $map = array( 3556 // --- TRAINING (no traffic back) --- 3557 // OpenAI (training) 3558 'GPTBot' => 'training', 3559 3560 // Anthropic (training) 3561 'ClaudeBot' => 'training', 3562 'Claude-Web' => 'training', 3563 'anthropic-ai' => 'training', 3564 3565 // Common Crawl 3566 'CCBot' => 'training', 3567 3568 // Amazon (Alexa training) 3569 'Amazonbot' => 'training', 3570 3571 // Apple (Apple Intelligence training) 3572 'Applebot-Extended' => 'training', 3573 3574 // ByteDance (mass scraping) 3575 'Bytespider' => 'training', 3576 3577 // Meta 3578 'Meta-ExternalAgent' => 'training', 3579 'meta-externalagent' => 'training', 3580 'Meta-ExternalFetcher' => 'training', 3581 3582 // Google (Gemini training) 3583 'Google-Extended' => 'training', 3584 3585 // Misc training crawlers 3586 'cohere-ai' => 'training', 3587 'cohere-training-data-crawler' => 'training', 3588 'Diffbot' => 'training', 3589 'ImagesiftBot' => 'training', 3590 'YouBot' => 'training', 3591 'AI2Bot' => 'training', 3592 'FriendlyCrawler' => 'training', 3593 'Timpibot' => 'training', 3594 'Gigablast' => 'training', 3595 'Webz.io' => 'training', 3596 'NeevaAI' => 'training', 3597 'Lepton' => 'training', 3598 3599 // Chinese AI (training) 3600 'YandexGPT' => 'training', 3601 'Sogou' => 'training', 3602 'AI-Scraper' => 'training', 3603 'AISearch' => 'training', 3604 'AICrawler' => 'training', 3605 'AI-Bot' => 'training', 3606 'Omgilibot' => 'training', 3607 'ShapBot' => 'training', 3608 'DeepSeek' => 'training', 3609 'DeepSeekBot' => 'training', 3610 'Qwen' => 'training', 3611 'QwenBot' => 'training', 3612 'Ernie' => 'training', 3613 'ChatGLM' => 'training', 3614 'KimiBot' => 'training', 3615 'Moonshot' => 'training', 3616 'Hunyuan' => 'training', 3617 'PanguBot' => 'training', 3618 'YiBot' => 'training', 3619 3620 // xAI / Mistral (training) 3621 'GrokBot' => 'training', 3622 'xAI-Grok' => 'training', 3623 'xAI-Crawler' => 'training', 3624 3625 // SEO / spam AI bots (training-ish) 3626 'AionBot' => 'training', 3627 'BeansLLM' => 'training', 3628 'SEOJuice' => 'training', 3629 'IAS Crawler' => 'training', 3630 'KlavdiaBot' => 'training', 3631 'PRLabBacklinkBot' => 'training', 3632 'KeenableBot' => 'training', 3633 3634 // htaccess-only signatures that must be present in PHP too 3635 'RayluBot' => 'training', 3636 'TokenFoundryBot' => 'training', 3637 3638 // --- SEARCH (can bring visitors) --- 3639 'ChatGPT-User' => 'search', 3640 'OAI-SearchBot' => 'search', 3641 'PerplexityBot' => 'search', 3642 'Perplexity-User' => 'search', 3643 'Claude-User' => 'search', 3644 'Claude-SearchBot' => 'search', 3645 'Amzn-SearchBot' => 'search', 3646 'Amzn-User' => 'search', 3647 'Kimi-SearchBot' => 'search', 3648 'MistralAI-User' => 'search', 3649 'MistralAI' => 'search', 3650 'ExaSearchBot' => 'search', 3651 'DuckAssistBot' => 'search', 3652 'Grok-DeepSearch' => 'search', 3653 ); 3654 3655 return $map; 3656 } 3657 3658 /** 3659 * Returns the list of AI bot signatures active under the current 3660 * settings. Respects the two independent toggles: 3661 * ai_training_block_enabled — blocks training bots 3662 * ai_search_block_enabled — blocks AI search bots 3663 * 3664 * Returns an empty array when both are disabled — callers then 3665 * skip AI detection entirely. 3666 * 3667 * @return array 3668 */ 3669 function cybersec_get_active_ai_bot_signatures() { 3670 static $cache = null; 3671 if ($cache !== null) { 3672 return $cache; 3673 } 3674 3675 $s = cybersec_get_settings(); 3676 $train = !empty($s['ai_training_block_enabled']); 3677 $search = !empty($s['ai_search_block_enabled']); 3678 3679 if (!$train && !$search) { 3680 $cache = array(); 3681 return $cache; 3682 } 3683 3684 $map = cybersec_get_ai_bot_signatures_map(); 3685 $result = array(); 3686 foreach ($map as $sig => $cat) { 3687 if (($cat === 'training' && $train) || ($cat === 'search' && $search)) { 3688 $result[] = $sig; 3689 } 3690 } 3691 3692 $cache = $result; 3693 return $cache; 3694 } 3695 3696 /** 3697 * Backward-compatible alias. Kept so any external code (PRO build, 3698 * custom integrations) that calls cybersec_get_ai_bot_signatures() 3699 * still works and respects the new toggles. 3700 * 3701 * @deprecated Use cybersec_get_active_ai_bot_signatures() instead. 3702 * @return array 3703 */ 3546 3704 function cybersec_get_ai_bot_signatures() { 3547 static $signatures = null; 3548 if ($signatures !== null) { 3549 return $signatures; 3550 } 3551 3552 $signatures = array( 3553 // OpenAI 3554 'ChatGPT-User','OAI-SearchBot','GPTBot', 3555 3556 // Anthropic 3557 'ClaudeBot','Claude-User','Claude-SearchBot','Claude-Web','anthropic-ai', 3558 3559 // Perplexity 3560 'PerplexityBot','Perplexity-User', 3561 3562 // Common Crawl 3563 'CCBot', 3564 3565 // Amazon 3566 'Amazonbot','Amzn-SearchBot', 3567 3568 // Apple 3569 'Applebot-Extended', 3570 3571 // ByteDance 3572 'Bytespider', 3573 3574 // Meta 3575 'Meta-ExternalAgent','meta-externalagent','Meta-ExternalFetcher', 3576 3577 // Google 3578 'Google-Extended', 3579 3580 // Others 3581 'cohere-ai','Diffbot','ImagesiftBot','YouBot','AI2Bot', 3582 'FriendlyCrawler','Timpibot','Gigablast','Webz.io','NeevaAI','Lepton', 3583 3584 // Chinese 3585 'YandexGPT','Sogou','AI-Scraper','AISearch','AICrawler','AI-Bot', 3586 'Omgilibot','ShapBot','DeepSeek','Qwen','Ernie','ChatGLM','KimiBot', 3587 'Moonshot','Hunyuan','PanguBot','YiBot','Kimi-SearchBot', 3588 3589 // xAI / Mistral 3590 'GrokBot','xAI-Grok','MistralAI-User','MistralAI', 3591 3592 // SEO spam bots 3593 'AionBot','BeansLLM','SEOJuice','IAS Crawler','KlavdiaBot', 3594 'PRLabBacklinkBot','KeenableBot','ExaSearchBot', 3595 ); 3596 3597 return $signatures; 3705 return cybersec_get_active_ai_bot_signatures(); 3598 3706 } 3599 3707 … … 4180 4288 if ($cached_result !== null) return $cached_result; 4181 4289 4290 $ai_signatures_probe = cybersec_get_active_ai_bot_signatures(); 4291 if (empty($ai_signatures_probe)) { 4292 $cached_result = false; 4293 return $cached_result; 4294 } 4295 4182 4296 $ua = isset($_SERVER['HTTP_USER_AGENT']) ? sanitize_text_field(wp_unslash($_SERVER['HTTP_USER_AGENT'])) : ''; 4183 4297 $ip = cybersec_get_visitor_ip(); … … 4251 4365 } 4252 4366 4253 // Filter prev entries older than 3 seconds.4367 // Filter prev entries older than 30 seconds 4254 4368 $state['prev'] = array_filter($state['prev'], function($entry) use ($now) { 4255 return ($now - $entry['time']) < 3 ;4369 return ($now - $entry['time']) < 30; 4256 4370 }); 4257 4371 … … 4263 4377 } 4264 4378 $state['current'] = $ua_hash; 4265 set_transient($key, $state, 10);4379 set_transient($key, $state, 35); 4266 4380 } 4267 4381 … … 4318 4432 } 4319 4433 4320 if (count($unique_os) >= 3) {4434 if (count($unique_os) >= 2) { 4321 4435 $cached_result = true; 4322 4436 return true; … … 4745 4859 4746 4860 if ($is_static) { 4747 $static_bad_uas = array( 4748 'Presto/', 'Windows CE', 4749 'curl/', 'wget/', 4750 'python-requests', 'python-urllib', 'python-httpx', 4751 'Go-http-client', 'Apache-HttpClient', 4752 'PhantomJS', 'HeadlessChrome', 4753 'zgrab', 'masscan', 'nmap', 'sqlmap', 4754 'compatible; crawler', 'compatible; scraper', 4755 'compatible; archiver', 'compatible; mirror', 4756 'compatible; parser', 'compatible; downloader', 4861 $static_bad_patterns = array( 4862 '/Presto\//i', 4863 '/Windows CE/i', 4864 '/MSIE [1-9]\./i', 4865 '/Opera\/[0-9]\./i', 4866 '/PPC Mac OS X 10_[0-6]/i', 4867 '/CriOS\/(?:[1-9]|[1-4][0-9])\./i', 4868 '/Chrome\/(?:[1-9]|[1-9][0-9]|1[0-6])\./i', 4869 '/Firefox\/(?:[1-9]|[1-3][0-9])\./i', 4870 '/Version\/[1-9]\.\d+ .*Mobile\/[0-9A-F]+ Safari/i', 4871 '/PhantomJS|HeadlessChrome|puppeteer|playwright|selenium/i', 4872 '/curl\/|wget\/|python-requests|python-urllib|python-httpx/i', 4873 '/Go-http-client|Apache-HttpClient|okhttp\/|axios\/|node-fetch/i', 4874 '/zgrab|masscan|nmap|sqlmap|nikto|nessus/i', 4875 '/compatible; (?:crawler|scraper|archiver|mirror|parser|downloader)/i', 4757 4876 ); 4758 foreach ($static_bad_ uas as $bad) {4759 if ( stripos($ua_check, $bad) !== false) {4877 foreach ($static_bad_patterns as $bad_re) { 4878 if (preg_match($bad_re, $ua_check)) { 4760 4879 cybersec_increment_stat('blocked'); 4761 cybersec_ban_and_log($ip_early, 'Static file via bot UA: ' . $bad , true);4880 cybersec_ban_and_log($ip_early, 'Static file via bot UA: ' . $bad_re, true); 4762 4881 cybersec_show_block_page($ip_early, cybersec_translate('Access denied.')); 4763 4882 exit; -
cyberpulse/trunk/cyberpulse-htaccess.php
r3761760 r3763154 180 180 $block .= "RewriteRule .* - [F,L]\n\n"; 181 181 } 182 183 // Configuration files that must NEVER be exposed to the web. 184 // Apache usually blocks .htaccess via <FilesMatch "^\.ht"> in the 185 // main config, but not all shared hosts do this — defense in depth. 186 $block .= "RewriteRule (^|/)\\.htaccess($|\\.) - [F,L]\n"; 187 $block .= "RewriteRule (^|/)\\.htpasswd($|\\.) - [F,L]\n"; 188 $block .= "RewriteRule (^|/)\\.user\\.ini($|\\.) - [F,L]\n"; 189 190 // WordPress default files leaking version / plugin info. 191 // PHP-level check (cybersec_hide_wordpress) also blocks these, 192 // but blocking at .htaccess saves the PHP round-trip. 193 $block .= "RewriteRule (^|/)(readme|license|changelog)\\.(html|txt|md)$ - [F,L,NC]\n"; 182 194 183 195 // Path rules — only files/dirs that are NEVER legitimate to expose. … … 199 211 $block .= "RewriteRule (^|/)@fs(/|$) - [F,L]\n"; 200 212 $block .= "RewriteRule (^|/)proc/self(/|$) - [F,L]\n"; 201 $block .= "RewriteRule (^|/)wp-config \\.(bak|old|txt|save|orig|tmp|swp)$ - [F,L]\n";213 $block .= "RewriteRule (^|/)wp-config(\\.php)?\\.(bak|old|txt|save|orig|tmp|swp|zip|tar\\.gz)$ - [F,L]\n"; 202 214 $block .= "RewriteRule (^|/)(database|dump|db|users|backup)\\.sql$ - [F,L]\n"; 203 215 204 // AI crawlers ONLY.205 // 206 // SEO tools (AhrefsBot, SemrushBot, MozBot, DataForSeoBot,207 // serpstatbot, BLEXBot, MJ12bot, AwarioBot, Screaming Frog,208 // SERankingBacklinksBot, ExaSearchBot) are intentionally NOT209 // listed here. Site owners pay for these services and rely on210 // their crawlers for site audits, backlink monitoring and rank 211 // tracking. Blocking them at server level silently breaks those212 // paid tools.213 //214 // Note: AhrefsSiteAudit, SemrushBot-SA, SemrushBot-BA are also215 // SEO-audit-specific — excluded too, even though the base bots216 // may be AI-adjacent.217 $bot_ua = '(GPTBot|ChatGPT-User|OAI-SearchBot|ClaudeBot|Claude-Web|anthropic-ai'218 . '|PerplexityBot|Perplexity-User|CCBot'219 . '|Amazonbot|Bytespider|Google-Extended'220 . '|Meta-ExternalAgent|Meta-ExternalFetcher|Applebot-Extended'221 . '|cohere-ai|Diffbot|ImagesiftBot|YouBot|AI2Bot|FriendlyCrawler'222 . '|Timpibot|Omgilibot|KeenableBot|RayluBot|TokenFoundryBot)';223 $block .= "RewriteCond %{HTTP_USER_AGENT} " . $bot_ua . " [NC]\n";224 $block .= "RewriteRule .* - [F,L]\n\n";216 // Build the AI-bot regex from the ACTIVE signatures only, 217 // respecting the ai_training_block_enabled / ai_search_block_enabled 218 // toggles. When both are off, this whole section is skipped. 219 $active_ai = function_exists('cybersec_get_active_ai_bot_signatures') 220 ? cybersec_get_active_ai_bot_signatures() 221 : array(); 222 223 if (!empty($active_ai)) { 224 // preg_quote: protects against regex injection. 225 // str_replace: replaces literal spaces (e.g. "IAS Crawler") 226 // with \s+ so Apache parses the regex correctly. 227 $escaped = array(); 228 foreach ($active_ai as $sig) { 229 $safe = preg_quote($sig, '/'); 230 $safe = str_replace(' ', '\s+', $safe); 231 $escaped[] = $safe; 232 } 233 $bot_ua = '(' . implode('|', $escaped) . ')'; 234 $block .= "RewriteCond %{HTTP_USER_AGENT} " . $bot_ua . " [NC]\n"; 235 $block .= "RewriteRule .* - [F,L]\n\n"; 236 } 225 237 226 238 $block .= "</IfModule>\n"; -
cyberpulse/trunk/cyberpulse-tabs.php
r3760235 r3763154 258 258 'cybersec_language' => sanitize_text_field(wp_unslash($_POST['cybersec_language'] ?? 'auto')), 259 259 'htaccess_protection_enabled' => isset($_POST['cybersec_htaccess_protection_enabled']) ? 1 : 0, 260 'ai_training_block_enabled' => isset($_POST['cybersec_ai_training_block_enabled']) ? 1 : 0, 261 'ai_search_block_enabled' => isset($_POST['cybersec_ai_search_block_enabled']) ? 1 : 0, 260 262 ); 261 263 … … 281 283 delete_option('cybersec_htaccess_version'); 282 284 } 285 } 286 } 287 288 // Rebuild .htaccess if AI toggles changed while htaccess protection 289 // is already enabled. Otherwise the UA regex stays stale until the 290 // next version bump / manual sync. 291 $old_ai_train = !empty($existing['ai_training_block_enabled']); 292 $new_ai_train = !empty($ns['ai_training_block_enabled']); 293 $old_ai_search = !empty($existing['ai_search_block_enabled']); 294 $new_ai_search = !empty($ns['ai_search_block_enabled']); 295 296 if (!empty($ns['htaccess_protection_enabled']) 297 && ($old_ai_train !== $new_ai_train || $old_ai_search !== $new_ai_search)) { 298 if (function_exists('cybersec_htaccess_sync')) { 299 cybersec_htaccess_sync(false); 283 300 } 284 301 } … … 2070 2087 <?php echo esc_html(cybersec_translate('AI Scraping Protection')); ?> 2071 2088 </span> 2072 <span class="sw-status sw-status-active">2073 <?php echo esc_html(cybersec_translate('Always active')); ?>2074 </span>2075 2089 </h4> 2076 2090 2077 2091 <p style="margin-top:8px;"> 2078 <?php echo esc_html(cybersec_translate('Blocks bots used to collect data for AI model training: GPTBot (OpenAI), ChatGPT-User, CCBot (Common Crawl), Claude-Web / ClaudeBot (Anthropic), PerplexityBot, Google-Extended, Bytespider (ByteDance), Amazonbot, and others.')); ?> 2079 <strong><?php echo esc_html(cybersec_translate('Always active. Does not affect legitimate search engines.')); ?></strong> 2092 <?php echo esc_html(cybersec_translate('AI bots are split into two independent categories. Enable only what you actually want to block.')); ?> 2080 2093 </p> 2081 2082 <div style="background:var(--sw-success-light);border:2px solid var(--sw-success-border);border-radius:var(--sw-radius);padding:10px 14px;margin-top:12px;"> 2083 <span style="font-size:11px;color:var(--sw-success); display:flex; align-items:center; gap:6px;"> 2084 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg> 2085 <?php echo esc_html(cybersec_translate('AI scraping protection is always enabled and working.')); ?> 2086 </span> 2094 2095 <!-- AI Training Bots --> 2096 <div style="background:var(--sw-success-light);border:2px solid var(--sw-success-border);border-radius:var(--sw-radius);padding:14px 16px;margin-top:12px;"> 2097 <h4 style="margin:0 0 6px 0;font-size:12px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;"> 2098 <span><?php echo esc_html(cybersec_translate('AI Training Bots')); ?></span> 2099 <span class="cp-recommend cp-recommend--on"><?php echo esc_html(cybersec_translate('Recommended: ON')); ?></span> 2100 </h4> 2101 <p style="margin:0 0 10px 0;font-size:11px;color:var(--sw-text-secondary);line-height:1.5;"> 2102 <?php echo esc_html(cybersec_translate('Bots that download your content to train AI models (GPTBot, CCBot, Google-Extended, ClaudeBot, Bytespider, Amazonbot, etc.). They do not display your site to users — they only collect data.')); ?> 2103 </p> 2104 <label style="display:inline-flex;align-items:center;gap:6px;font-weight:600;cursor:pointer;font-size:12px;"> 2105 <input type="checkbox" name="cybersec_ai_training_block_enabled" value="1" <?php checked($st['ai_training_block_enabled'] ?? 1, 1); ?>> 2106 <?php echo esc_html(cybersec_translate('Block AI training bots')); ?> 2107 </label> 2087 2108 </div> 2088 2109 2110 <!-- AI Search Bots --> 2111 <div style="background:var(--sw-info-light);border:2px solid var(--sw-info-border);border-radius:var(--sw-radius);padding:14px 16px;margin-top:12px;"> 2112 <h4 style="margin:0 0 6px 0;font-size:12px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;"> 2113 <span><?php echo esc_html(cybersec_translate('AI Search Bots')); ?></span> 2114 <span class="cp-recommend cp-recommend--info"><?php echo esc_html(cybersec_translate('Your choice')); ?></span> 2115 </h4> 2116 <p style="margin:0 0 10px 0;font-size:11px;color:var(--sw-text-secondary);line-height:1.5;"> 2117 <?php echo esc_html(cybersec_translate('Bots that index your site for AI search engines (ChatGPT Search, Perplexity, Claude Search, Amazon Rufus). Their requests are tied to generating answers for users of those services. Enable this if you want to fully exclude AI crawlers from your site.')); ?> 2118 </p> 2119 <label style="display:inline-flex;align-items:center;gap:6px;font-weight:600;cursor:pointer;font-size:12px;"> 2120 <input type="checkbox" name="cybersec_ai_search_block_enabled" value="1" <?php checked($st['ai_search_block_enabled'] ?? 0, 1); ?>> 2121 <?php echo esc_html(cybersec_translate('Block AI search bots')); ?> 2122 </label> 2123 </div> 2124 2089 2125 <!-- .htaccess Sub-section --> 2126 <?php 2127 // Server-aware state detection for the .htaccess recommendation block. 2128 $cp_server_supports = function_exists('cybersec_htaccess_server_supports') 2129 ? cybersec_htaccess_server_supports() 2130 : false; 2131 $cp_htaccess_path = ABSPATH . '.htaccess'; 2132 $cp_htaccess_writable = file_exists($cp_htaccess_path) 2133 ? wp_is_writable($cp_htaccess_path) 2134 : wp_is_writable(ABSPATH); 2135 $cp_htaccess_on = !empty($st['htaccess_protection_enabled']); 2136 $cp_can_enable = $cp_server_supports && $cp_htaccess_writable; 2137 ?> 2090 2138 <div style="margin-top:16px; padding-top:16px; border-top:1px dashed var(--sw-border-light);"> 2091 <h4 style="display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; font-size:12px; margin-bottom:8px; ">2139 <h4 style="display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; font-size:12px; margin-bottom:8px; gap:8px;"> 2092 2140 <span style="display:inline-flex; align-items:center; gap:6px;"> 2093 2141 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="color:var(--sw-warning);"> … … 2099 2147 <?php echo esc_html(cybersec_translate('.htaccess Protection (Web-Server Level)')); ?> 2100 2148 </span> 2101 <span class="sw-status <?php echo !empty($st['htaccess_protection_enabled']) ? 'sw-status-active' : 'sw-status-inactive'; ?>"> 2102 <?php echo !empty($st['htaccess_protection_enabled']) ? esc_html(cybersec_translate('Enabled')) : esc_html(cybersec_translate('Disabled')); ?> 2103 </span> 2149 2150 <?php if (!$cp_server_supports): ?> 2151 <span class="sw-status sw-status-inactive"><?php echo esc_html(cybersec_translate('Not applicable')); ?></span> 2152 <?php elseif (!$cp_htaccess_writable): ?> 2153 <span class="sw-status sw-status-inactive"><?php echo esc_html(cybersec_translate('Not available')); ?></span> 2154 <?php else: ?> 2155 <span class="sw-status <?php echo $cp_htaccess_on ? 'sw-status-active' : 'sw-status-inactive'; ?>"> 2156 <?php echo $cp_htaccess_on ? esc_html(cybersec_translate('Enabled')) : esc_html(cybersec_translate('Disabled')); ?> 2157 </span> 2158 <?php endif; ?> 2104 2159 </h4> 2105 2160 2106 2161 <p style="font-size:11px; color:var(--sw-text-secondary); margin-bottom:12px; line-height:1.5;"> 2107 <?php echo esc_html(cybersec_translate('Adds blocking rules directly to .htaccess (Apache / LiteSpeed only). Blocks AI bots before PHP even loads, saving server resources.')); ?>2162 <?php echo esc_html(cybersec_translate('Adds blocking rules directly to .htaccess (Apache / LiteSpeed only). Blocks AI bots and sensitive files (.git, .env, .sql, keys, backups) before PHP even loads, saving server resources. The AI-bot rules follow the two toggles above — disabling a category also removes it from .htaccess.')); ?> 2108 2163 </p> 2109 2110 <label style="display:inline-flex;align-items:center;gap:6px;font-weight:600;cursor:pointer;font-size:12px;"> 2111 <input type="checkbox" name="cybersec_htaccess_protection_enabled" value="1" <?php checked($st['htaccess_protection_enabled'] ?? 0, 1); ?>> 2164 2165 <?php if ($cp_can_enable): ?> 2166 <div style="background:var(--sw-info-light);border:2px solid var(--sw-info-border);border-radius:var(--sw-radius);padding:10px 14px;margin-bottom:12px;font-size:11px;color:var(--sw-text-secondary);line-height:1.5;"> 2167 <strong style="color:var(--sw-info);"><?php echo esc_html(cybersec_translate('Recommendation:')); ?></strong> 2168 <?php echo esc_html(cybersec_translate('enable .htaccess protection — it blocks threats before PHP loads and stops direct access to sensitive files that PHP cannot see. Your server supports it and .htaccess is writable.')); ?> 2169 </div> 2170 <?php elseif (!$cp_server_supports): ?> 2171 <div style="background:var(--sw-warning-light);border:2px solid var(--sw-warning-border);border-radius:var(--sw-radius);padding:10px 14px;margin-bottom:12px;font-size:11px;line-height:1.5;"> 2172 <strong style="color:var(--sw-warning);">⚠ <?php echo esc_html(cybersec_translate('Your server does not use .htaccess.')); ?></strong><br> 2173 <?php echo esc_html(cybersec_translate('Detected server: nginx or another non-Apache stack. .htaccess rules will be ignored. AI bots and sensitive files are still protected at the PHP level. For server-level blocking on nginx, add equivalent rules to your nginx config manually.')); ?> 2174 </div> 2175 <?php else: ?> 2176 <div style="background:var(--sw-warning-light);border:2px solid var(--sw-warning-border);border-radius:var(--sw-radius);padding:10px 14px;margin-bottom:12px;font-size:11px;line-height:1.5;"> 2177 <strong style="color:var(--sw-warning);">⚠ <?php echo esc_html(cybersec_translate('.htaccess is not writable.')); ?></strong><br> 2178 <?php echo esc_html(cybersec_translate('CyberPulse cannot write to .htaccess on this host. Check file permissions (typically 644) or contact your hosting provider. AI bots are still blocked at the PHP level.')); ?> 2179 </div> 2180 <?php endif; ?> 2181 2182 <label style="display:inline-flex;align-items:center;gap:6px;font-weight:600;cursor:pointer;font-size:12px;<?php echo !$cp_can_enable ? 'opacity:0.5;pointer-events:none;' : ''; ?>"> 2183 <input type="checkbox" name="cybersec_htaccess_protection_enabled" value="1" 2184 <?php checked($st['htaccess_protection_enabled'] ?? 0, 1); ?> 2185 <?php disabled(!$cp_can_enable); ?>> 2112 2186 <?php echo esc_html(cybersec_translate('Enable .htaccess protection')); ?> 2113 2187 </label> 2114 2188 2115 2189 <p style="margin:6px 0 0 24px;font-size:10px;color:var(--sw-text-secondary);"> 2116 <?php echo esc_html(cybersec_translate('Applied automatically on save. Rules removed when unchecked. Other .htaccess content is preserved.')); ?>2190 <?php echo esc_html(cybersec_translate('Applied automatically on save. Rules removed when unchecked. Other .htaccess content (WordPress, caching plugins, etc.) is preserved. A failed write is verified and rolled back automatically.')); ?> 2117 2191 </p> 2118 2192 </div> -
cyberpulse/trunk/cyberpulse.php
r3761760 r3763154 2 2 /** 3 3 * Plugin Name: CyberPulse — Advanced Security & Bot Protection 4 * Plugin URI: https://wordpress.org/plugins/cyberpulse 4 5 * Description: Real-time security heartbeat for your WordPress. Monitors every request, blocks bots instantly, protects against brute force and AI scraping. Feel the pulse of protection. Free version with PRO upgrade available. 5 * Version: 5.9.1. 16 * Version: 5.9.1.2 6 7 * Author: CyberPulse Security 7 8 * Author URI: https://cyberpulse-security.com -
cyberpulse/trunk/languages/cyberpulse-de_DE.php
r3760235 r3763154 1036 1036 'Chrome < 70 (2018), Firefox < 60, Safari < 12' => 'Chrome < 70 (2018), Firefox < 60, Safari < 12', 1037 1037 'legitimate users have long updated, such versions are used only by bots with old signatures.' => 'legitime Benutzer haben längst aktualisiert, solche Versionen werden nur von Bots mit alten Signaturen verwendet.', 1038 1039 // AI Scraping Protection 1040 'AI bots are split into two independent categories. Enable only what you actually want to block.' => 'KI-Bots sind in zwei unabhängige Kategorien unterteilt. Aktivieren Sie nur das, was Sie wirklich blockieren möchten.', 1041 'AI Training Bots' => 'KI-Trainings-Bots', 1042 'AI Search Bots' => 'KI-Such-Bots', 1043 'Block AI training bots' => 'KI-Trainings-Bots blockieren', 1044 'Block AI search bots' => 'KI-Such-Bots blockieren', 1045 'Bots that download your content to train AI models (GPTBot, CCBot, Google-Extended, ClaudeBot, Bytespider, Amazonbot, etc.). They do not display your site to users — they only collect data.' => 'Bots, die Ihre Inhalte herunterladen, um KI-Modelle zu trainieren (GPTBot, CCBot, Google-Extended, ClaudeBot, Bytespider, Amazonbot usw.). Sie zeigen Ihre Website den Nutzern nicht an – sie sammeln nur Daten.', 1046 'Bots that index your site for AI search engines (ChatGPT Search, Perplexity, Claude Search, Amazon Rufus). Their requests are tied to generating answers for users of those services. Enable this if you want to fully exclude AI crawlers from your site.' => 'Bots, die Ihre Website für KI-Suchmaschinen indexieren (ChatGPT Search, Perplexity, Claude Search, Amazon Rufus). Ihre Anfragen sind mit der Generierung von Antworten für Nutzer dieser Dienste verbunden. Aktivieren Sie dies, wenn Sie KI-Crawler vollständig von Ihrer Website ausschließen möchten.', 1047 'Recommended: ON' => 'Empfohlen: EIN', 1048 'Your choice' => 'Ihre Wahl', 1049 'Not applicable' => 'Nicht zutreffend', 1050 'Not available' => 'Nicht verfügbar', 1051 'Recommendation:' => 'Empfehlung:', 1052 'enable .htaccess protection — it blocks threats before PHP loads and stops direct access to sensitive files that PHP cannot see. Your server supports it and .htaccess is writable.' => 'aktivieren Sie den .htaccess-Schutz – er blockiert Bedrohungen, bevor PHP geladen wird, und verhindert den direkten Zugriff auf sensible Dateien, die PHP nicht sehen kann. Ihr Server unterstützt dies und .htaccess ist beschreibbar.', 1053 'Your server does not use .htaccess.' => 'Ihr Server verwendet kein .htaccess.', 1054 'Detected server: nginx or another non-Apache stack. .htaccess rules will be ignored. AI bots and sensitive files are still protected at the PHP level. For server-level blocking on nginx, add equivalent rules to your nginx config manually.' => 'Erkannter Server: nginx oder ein anderer Nicht-Apache-Stack. .htaccess-Regeln werden ignoriert. KI-Bots und sensible Dateien sind auf PHP-Ebene weiterhin geschützt. Für serverseitige Blockierung auf nginx fügen Sie äquivalente Regeln manuell in Ihre nginx-Konfiguration ein.', 1055 '.htaccess is not writable.' => '.htaccess ist nicht beschreibbar.', 1056 'CyberPulse cannot write to .htaccess on this host. Check file permissions (typically 644) or contact your hosting provider. AI bots are still blocked at the PHP level.' => 'CyberPulse kann auf diesem Host nicht in .htaccess schreiben. Überprüfen Sie die Dateiberechtigungen (normalerweise 644) oder wenden Sie sich an Ihren Hosting-Anbieter. KI-Bots werden weiterhin auf PHP-Ebene blockiert.', 1057 'Applied automatically on save. Rules removed when unchecked. Other .htaccess content (WordPress, caching plugins, etc.) is preserved. A failed write is verified and rolled back automatically.' => 'Wird beim Speichern automatisch angewendet. Regeln werden entfernt, wenn das Häkchen entfernt wird. Andere .htaccess-Inhalte (WordPress, Caching-Plugins usw.) bleiben erhalten. Ein fehlgeschlagenes Schreiben wird überprüft und automatisch zurückgesetzt.', 1058 'Adds blocking rules directly to .htaccess (Apache / LiteSpeed only). Blocks AI bots and sensitive files (.git, .env, .sql, keys, backups) before PHP even loads, saving server resources. The AI-bot rules follow the two toggles above — disabling a category also removes it from .htaccess.' => 'Fügt Blockierungsregeln direkt zu .htaccess hinzu (nur Apache / LiteSpeed). Blockiert KI-Bots und sensible Dateien (.git, .env, .sql, Schlüssel, Backups), bevor PHP geladen wird, um Serverressourcen zu sparen. Die KI-Bot-Regeln folgen den beiden Schaltern oben – das Deaktivieren einer Kategorie entfernt sie auch aus .htaccess.', 1038 1059 ); -
cyberpulse/trunk/languages/cyberpulse-en_US.php
r3760235 r3763154 1029 1029 'Hidden file scanner (cached allowed)' => 'Hidden file scanner (cached allowed)', 1030 1030 'Fake User-Agent (browser version mismatch)' => 'Fake User-Agent (browser version mismatch)', 1031 1032 // ------------------------------------------------------------------ 1033 // AI Scraping Protection — two independent categories (Training / Search) 1034 // ------------------------------------------------------------------ 1035 'AI bots are split into two independent categories. Enable only what you actually want to block.' 1036 => 'AI bots are split into two independent categories. Enable only what you actually want to block.', 1037 'AI Training Bots' 1038 => 'AI Training Bots', 1039 'AI Search Bots' 1040 => 'AI Search Bots', 1041 'Block AI training bots' 1042 => 'Block AI training bots', 1043 'Block AI search bots' 1044 => 'Block AI search bots', 1045 'Bots that download your content to train AI models (GPTBot, CCBot, Google-Extended, ClaudeBot, Bytespider, Amazonbot, etc.). They do not display your site to users — they only collect data.' 1046 => 'Bots that download your content to train AI models (GPTBot, CCBot, Google-Extended, ClaudeBot, Bytespider, Amazonbot, etc.). They do not display your site to users — they only collect data.', 1047 'Bots that index your site for AI search engines (ChatGPT Search, Perplexity, Claude Search, Amazon Rufus). Their requests are tied to generating answers for users of those services. Enable this if you want to fully exclude AI crawlers from your site.' 1048 => 'Bots that index your site for AI search engines (ChatGPT Search, Perplexity, Claude Search, Amazon Rufus). Their requests are tied to generating answers for users of those services. Enable this if you want to fully exclude AI crawlers from your site.', 1049 'Recommended: ON' 1050 => 'Recommended: ON', 1051 'Your choice' 1052 => 'Your choice', 1053 1054 // ------------------------------------------------------------------ 1055 // .htaccess Protection — server-aware recommendation & status 1056 // ------------------------------------------------------------------ 1057 'Not applicable' 1058 => 'Not applicable', 1059 'Not available' 1060 => 'Not available', 1061 'Recommendation:' 1062 => 'Recommendation:', 1063 'enable .htaccess protection — it blocks threats before PHP loads and stops direct access to sensitive files that PHP cannot see. Your server supports it and .htaccess is writable.' 1064 => 'enable .htaccess protection — it blocks threats before PHP loads and stops direct access to sensitive files that PHP cannot see. Your server supports it and .htaccess is writable.', 1065 'Your server does not use .htaccess.' 1066 => 'Your server does not use .htaccess.', 1067 'Detected server: nginx or another non-Apache stack. .htaccess rules will be ignored. AI bots and sensitive files are still protected at the PHP level. For server-level blocking on nginx, add equivalent rules to your nginx config manually.' 1068 => 'Detected server: nginx or another non-Apache stack. .htaccess rules will be ignored. AI bots and sensitive files are still protected at the PHP level. For server-level blocking on nginx, add equivalent rules to your nginx config manually.', 1069 '.htaccess is not writable.' 1070 => '.htaccess is not writable.', 1071 'CyberPulse cannot write to .htaccess on this host. Check file permissions (typically 644) or contact your hosting provider. AI bots are still blocked at the PHP level.' 1072 => 'CyberPulse cannot write to .htaccess on this host. Check file permissions (typically 644) or contact your hosting provider. AI bots are still blocked at the PHP level.', 1073 'Applied automatically on save. Rules removed when unchecked. Other .htaccess content (WordPress, caching plugins, etc.) is preserved. A failed write is verified and rolled back automatically.' 1074 => 'Applied automatically on save. Rules removed when unchecked. Other .htaccess content (WordPress, caching plugins, etc.) is preserved. A failed write is verified and rolled back automatically.', 1075 'Adds blocking rules directly to .htaccess (Apache / LiteSpeed only). Blocks AI bots and sensitive files (.git, .env, .sql, keys, backups) before PHP even loads, saving server resources. The AI-bot rules follow the two toggles above — disabling a category also removes it from .htaccess.' 1076 => 'Adds blocking rules directly to .htaccess (Apache / LiteSpeed only). Blocks AI bots and sensitive files (.git, .env, .sql, keys, backups) before PHP even loads, saving server resources. The AI-bot rules follow the two toggles above — disabling a category also removes it from .htaccess.', 1031 1077 ); -
cyberpulse/trunk/languages/cyberpulse-es_ES.php
r3760235 r3763154 1034 1034 'Chrome < 70 (2018), Firefox < 60, Safari < 12' => 'Chrome < 70 (2018), Firefox < 60, Safari < 12', 1035 1035 'legitimate users have long updated, such versions are used only by bots with old signatures.' => 'los usuarios legítimos se actualizaron hace mucho tiempo, tales versiones solo son utilizadas por bots con firmas antiguas.', 1036 1037 // AI Scraping Protection 1038 'AI bots are split into two independent categories. Enable only what you actually want to block.' => 'Los bots de IA se dividen en dos categorías independientes. Habilite solo lo que realmente desea bloquear.', 1039 'AI Training Bots' => 'Bots de entrenamiento de IA', 1040 'AI Search Bots' => 'Bots de búsqueda de IA', 1041 'Block AI training bots' => 'Bloquear bots de entrenamiento de IA', 1042 'Block AI search bots' => 'Bloquear bots de búsqueda de IA', 1043 'Bots that download your content to train AI models (GPTBot, CCBot, Google-Extended, ClaudeBot, Bytespider, Amazonbot, etc.). They do not display your site to users — they only collect data.' => 'Bots que descargan su contenido para entrenar modelos de IA (GPTBot, CCBot, Google-Extended, ClaudeBot, Bytespider, Amazonbot, etc.). No muestran su sitio a los usuarios, solo recopilan datos.', 1044 'Bots that index your site for AI search engines (ChatGPT Search, Perplexity, Claude Search, Amazon Rufus). Their requests are tied to generating answers for users of those services. Enable this if you want to fully exclude AI crawlers from your site.' => 'Bots que indexan su sitio para motores de búsqueda de IA (ChatGPT Search, Perplexity, Claude Search, Amazon Rufus). Sus solicitudes están vinculadas a la generación de respuestas para los usuarios de esos servicios. Habilite esto si desea excluir completamente los rastreadores de IA de su sitio.', 1045 'Recommended: ON' => 'Recomendado: ACTIVADO', 1046 'Your choice' => 'Su elección', 1047 'Not applicable' => 'No aplicable', 1048 'Not available' => 'No disponible', 1049 'Recommendation:' => 'Recomendación:', 1050 'enable .htaccess protection — it blocks threats before PHP loads and stops direct access to sensitive files that PHP cannot see. Your server supports it and .htaccess is writable.' => 'habilite la protección .htaccess: bloquea las amenazas antes de que se cargue PHP y detiene el acceso directo a archivos confidenciales que PHP no puede ver. Su servidor lo admite y .htaccess tiene permisos de escritura.', 1051 'Your server does not use .htaccess.' => 'Su servidor no utiliza .htaccess.', 1052 'Detected server: nginx or another non-Apache stack. .htaccess rules will be ignored. AI bots and sensitive files are still protected at the PHP level. For server-level blocking on nginx, add equivalent rules to your nginx config manually.' => 'Servidor detectado: nginx u otra pila que no sea Apache. Las reglas de .htaccess se ignorarán. Los bots de IA y los archivos confidenciales siguen protegidos a nivel de PHP. Para el bloqueo a nivel de servidor en nginx, agregue reglas equivalentes manualmente en su configuración de nginx.', 1053 '.htaccess is not writable.' => '.htaccess no tiene permisos de escritura.', 1054 'CyberPulse cannot write to .htaccess on this host. Check file permissions (typically 644) or contact your hosting provider. AI bots are still blocked at the PHP level.' => 'CyberPulse no puede escribir en .htaccess en este host. Verifique los permisos del archivo (normalmente 644) o comuníquese con su proveedor de alojamiento. Los bots de IA siguen bloqueados a nivel de PHP.', 1055 'Applied automatically on save. Rules removed when unchecked. Other .htaccess content (WordPress, caching plugins, etc.) is preserved. A failed write is verified and rolled back automatically.' => 'Se aplica automáticamente al guardar. Las reglas se eliminan cuando se desmarca. Se conserva el resto del contenido de .htaccess (WordPress, complementos de caché, etc.). Una escritura fallida se verifica y se revierte automáticamente.', 1056 'Adds blocking rules directly to .htaccess (Apache / LiteSpeed only). Blocks AI bots and sensitive files (.git, .env, .sql, keys, backups) before PHP even loads, saving server resources. The AI-bot rules follow the two toggles above — disabling a category also removes it from .htaccess.' => 'Agrega reglas de bloqueo directamente a .htaccess (solo Apache / LiteSpeed). Bloquea bots de IA y archivos confidenciales (.git, .env, .sql, claves, copias de seguridad) antes de que se cargue PHP, ahorrando recursos del servidor. Las reglas de los bots de IA siguen los dos interruptores anteriores: deshabilitar una categoría también la elimina de .htaccess.', 1036 1057 ); -
cyberpulse/trunk/languages/cyberpulse-fr_FR.php
r3760235 r3763154 1036 1036 'Chrome < 70 (2018), Firefox < 60, Safari < 12' => 'Chrome < 70 (2018), Firefox < 60, Safari < 12', 1037 1037 'legitimate users have long updated, such versions are used only by bots with old signatures.' => 'les utilisateurs légitimes ont mis à jour depuis longtemps, ces versions ne sont utilisées que par des bots avec de vieilles signatures.', 1038 1039 // AI Scraping Protection 1040 'AI bots are split into two independent categories. Enable only what you actually want to block.' => 'Les bots IA sont divisés en deux catégories indépendantes. Activez uniquement ce que vous voulez vraiment bloquer.', 1041 'AI Training Bots' => 'Bots d\'entraînement IA', 1042 'AI Search Bots' => 'Bots de recherche IA', 1043 'Block AI training bots' => 'Bloquer les bots d\'entraînement IA', 1044 'Block AI search bots' => 'Bloquer les bots de recherche IA', 1045 'Bots that download your content to train AI models (GPTBot, CCBot, Google-Extended, ClaudeBot, Bytespider, Amazonbot, etc.). They do not display your site to users — they only collect data.' => 'Bots qui téléchargent votre contenu pour entraîner des modèles d\'IA (GPTBot, CCBot, Google-Extended, ClaudeBot, Bytespider, Amazonbot, etc.). Ils n\'affichent pas votre site aux utilisateurs — ils ne font que collecter des données.', 1046 'Bots that index your site for AI search engines (ChatGPT Search, Perplexity, Claude Search, Amazon Rufus). Their requests are tied to generating answers for users of those services. Enable this if you want to fully exclude AI crawlers from your site.' => 'Bots qui indexent votre site pour les moteurs de recherche IA (ChatGPT Search, Perplexity, Claude Search, Amazon Rufus). Leurs requêtes sont liées à la génération de réponses pour les utilisateurs de ces services. Activez ceci si vous souhaitez exclure complètement les crawlers IA de votre site.', 1047 'Recommended: ON' => 'Recommandé : ACTIF', 1048 'Your choice' => 'Votre choix', 1049 'Not applicable' => 'Non applicable', 1050 'Not available' => 'Non disponible', 1051 'Recommendation:' => 'Recommandation :', 1052 'enable .htaccess protection — it blocks threats before PHP loads and stops direct access to sensitive files that PHP cannot see. Your server supports it and .htaccess is writable.' => 'activez la protection .htaccess — elle bloque les menaces avant le chargement de PHP et empêche l\'accès direct aux fichiers sensibles que PHP ne peut pas voir. Votre serveur le prend en charge et .htaccess est accessible en écriture.', 1053 'Your server does not use .htaccess.' => 'Votre serveur n\'utilise pas .htaccess.', 1054 'Detected server: nginx or another non-Apache stack. .htaccess rules will be ignored. AI bots and sensitive files are still protected at the PHP level. For server-level blocking on nginx, add equivalent rules to your nginx config manually.' => 'Serveur détecté : nginx ou une autre pile non-Apache. Les règles .htaccess seront ignorées. Les bots IA et les fichiers sensibles sont toujours protégés au niveau de PHP. Pour un blocage au niveau du serveur sur nginx, ajoutez manuellement des règles équivalentes dans votre configuration nginx.', 1055 '.htaccess is not writable.' => '.htaccess n\'est pas accessible en écriture.', 1056 'CyberPulse cannot write to .htaccess on this host. Check file permissions (typically 644) or contact your hosting provider. AI bots are still blocked at the PHP level.' => 'CyberPulse ne peut pas écrire dans .htaccess sur cet hôte. Vérifiez les autorisations de fichier (généralement 644) ou contactez votre hébergeur. Les bots IA sont toujours bloqués au niveau de PHP.', 1057 'Applied automatically on save. Rules removed when unchecked. Other .htaccess content (WordPress, caching plugins, etc.) is preserved. A failed write is verified and rolled back automatically.' => 'Appliqué automatiquement lors de l\'enregistrement. Les règles sont supprimées lorsque la case est décochée. Le reste du contenu de .htaccess (WordPress, plugins de cache, etc.) est préservé. Un échec d\'écriture est vérifié et annulé automatiquement.', 1058 'Adds blocking rules directly to .htaccess (Apache / LiteSpeed only). Blocks AI bots and sensitive files (.git, .env, .sql, keys, backups) before PHP even loads, saving server resources. The AI-bot rules follow the two toggles above — disabling a category also removes it from .htaccess.' => 'Ajoute des règles de blocage directement dans .htaccess (Apache / LiteSpeed uniquement). Bloque les bots IA et les fichiers sensibles (.git, .env, .sql, clés, sauvegardes) avant même le chargement de PHP, économisant les ressources du serveur. Les règles des bots IA suivent les deux interrupteurs ci-dessus — la désactivation d\'une catégorie la supprime également de .htaccess.', 1038 1059 ); -
cyberpulse/trunk/languages/cyberpulse-it_IT.php
r3760235 r3763154 1022 1022 'Chrome < 70 (2018), Firefox < 60, Safari < 12' => 'Chrome < 70 (2018), Firefox < 60, Safari < 12', 1023 1023 'legitimate users have long updated, such versions are used only by bots with old signatures.' => 'gli utenti legittimi si sono aggiornati da tempo, tali versioni sono usate solo da bot con vecchie firme.', 1024 1025 // AI Scraping Protection 1026 'AI bots are split into two independent categories. Enable only what you actually want to block.' => 'I bot IA sono divisi in due categorie indipendenti. Abilita solo ciò che vuoi effettivamente bloccare.', 1027 'AI Training Bots' => 'Bot di addestramento IA', 1028 'AI Search Bots' => 'Bot di ricerca IA', 1029 'Block AI training bots' => 'Blocca i bot di addestramento IA', 1030 'Block AI search bots' => 'Blocca i bot di ricerca IA', 1031 'Bots that download your content to train AI models (GPTBot, CCBot, Google-Extended, ClaudeBot, Bytespider, Amazonbot, etc.). They do not display your site to users — they only collect data.' => 'Bot che scaricano i tuoi contenuti per addestrare modelli IA (GPTBot, CCBot, Google-Extended, ClaudeBot, Bytespider, Amazonbot, ecc.). Non mostrano il tuo sito agli utenti — raccolgono solo dati.', 1032 'Bots that index your site for AI search engines (ChatGPT Search, Perplexity, Claude Search, Amazon Rufus). Their requests are tied to generating answers for users of those services. Enable this if you want to fully exclude AI crawlers from your site.' => 'Bot che indicizzano il tuo sito per i motori di ricerca IA (ChatGPT Search, Perplexity, Claude Search, Amazon Rufus). Le loro richieste sono legate alla generazione di risposte per gli utenti di quei servizi. Abilita questa opzione se vuoi escludere completamente i crawler IA dal tuo sito.', 1033 'Recommended: ON' => 'Consigliato: ON', 1034 'Your choice' => 'A tua scelta', 1035 'Not applicable' => 'Non applicabile', 1036 'Not available' => 'Non disponibile', 1037 'Recommendation:' => 'Raccomandazione:', 1038 'enable .htaccess protection — it blocks threats before PHP loads and stops direct access to sensitive files that PHP cannot see. Your server supports it and .htaccess is writable.' => 'abilita la protezione .htaccess — blocca le minacce prima che PHP venga caricato e impedisce l\'accesso diretto a file sensibili che PHP non può vedere. Il tuo server lo supporta e .htaccess è scrivibile.', 1039 'Your server does not use .htaccess.' => 'Il tuo server non utilizza .htaccess.', 1040 'Detected server: nginx or another non-Apache stack. .htaccess rules will be ignored. AI bots and sensitive files are still protected at the PHP level. For server-level blocking on nginx, add equivalent rules to your nginx config manually.' => 'Server rilevato: nginx o un altro stack non Apache. Le regole .htaccess verranno ignorate. I bot IA e i file sensibili sono comunque protetti a livello PHP. Per il blocco a livello di server su nginx, aggiungi manualmente regole equivalenti nella tua configurazione nginx.', 1041 '.htaccess is not writable.' => '.htaccess non è scrivibile.', 1042 'CyberPulse cannot write to .htaccess on this host. Check file permissions (typically 644) or contact your hosting provider. AI bots are still blocked at the PHP level.' => 'CyberPulse non può scrivere in .htaccess su questo host. Controlla i permessi del file (tipicamente 644) o contatta il tuo provider di hosting. I bot IA sono comunque bloccati a livello PHP.', 1043 'Applied automatically on save. Rules removed when unchecked. Other .htaccess content (WordPress, caching plugins, etc.) is preserved. A failed write is verified and rolled back automatically.' => 'Applicato automaticamente al salvataggio. Le regole vengono rimosse quando la casella viene deselezionata. Il resto del contenuto di .htaccess (WordPress, plugin di caching, ecc.) viene preservato. Una scrittura fallita viene verificata e ripristinata automaticamente.', 1044 'Adds blocking rules directly to .htaccess (Apache / LiteSpeed only). Blocks AI bots and sensitive files (.git, .env, .sql, keys, backups) before PHP even loads, saving server resources. The AI-bot rules follow the two toggles above — disabling a category also removes it from .htaccess.' => 'Aggiunge regole di blocco direttamente in .htaccess (solo Apache / LiteSpeed). Blocca bot IA e file sensibili (.git, .env, .sql, chiavi, backup) prima ancora che PHP venga caricato, risparmiando risorse del server. Le regole dei bot IA seguono i due interruttori sopra — la disabilitazione di una categoria la rimuove anche da .htaccess.', 1024 1045 ); -
cyberpulse/trunk/languages/cyberpulse-ja.php
r3760235 r3763154 1036 1036 'Chrome < 70 (2018), Firefox < 60, Safari < 12' => 'Chrome < 70 (2018), Firefox < 60, Safari < 12', 1037 1037 'legitimate users have long updated, such versions are used only by bots with old signatures.' => '正規のユーザーはとっくに更新しています。このようなバージョンは古いシグネチャを持つボットによってのみ使用されます。', 1038 1039 // AI Scraping Protection 1040 'AI bots are split into two independent categories. Enable only what you actually want to block.' => 'AIボットは2つの独立したカテゴリに分かれています。実際にブロックしたいものだけを有効にしてください。', 1041 'AI Training Bots' => 'AIトレーニングボット', 1042 'AI Search Bots' => 'AI検索ボット', 1043 'Block AI training bots' => 'AIトレーニングボットをブロック', 1044 'Block AI search bots' => 'AI検索ボットをブロック', 1045 'Bots that download your content to train AI models (GPTBot, CCBot, Google-Extended, ClaudeBot, Bytespider, Amazonbot, etc.). They do not display your site to users — they only collect data.' => 'AIモデルのトレーニングのためにコンテンツをダウンロードするボット(GPTBot、CCBot、Google-Extended、ClaudeBot、Bytespider、Amazonbotなど)。ユーザーにサイトを表示することはなく、データを収集するだけです。', 1046 'Bots that index your site for AI search engines (ChatGPT Search, Perplexity, Claude Search, Amazon Rufus). Their requests are tied to generating answers for users of those services. Enable this if you want to fully exclude AI crawlers from your site.' => 'AI検索エンジン(ChatGPT Search、Perplexity、Claude Search、Amazon Rufus)のためにサイトをインデックスするボット。これらのリクエストは、それらのサービスのユーザーへの回答生成に関連しています。AIクローラーをサイトから完全に除外したい場合は、これを有効にしてください。', 1047 'Recommended: ON' => '推奨:オン', 1048 'Your choice' => 'お任せします', 1049 'Not applicable' => '該当なし', 1050 'Not available' => '利用不可', 1051 'Recommendation:' => '推奨:', 1052 'enable .htaccess protection — it blocks threats before PHP loads and stops direct access to sensitive files that PHP cannot see. Your server supports it and .htaccess is writable.' => '.htaccess保護を有効にします — PHPが読み込まれる前に脅威をブロックし、PHPが見ることのできない機密ファイルへの直接アクセスを停止します。サーバーがサポートしており、.htaccessは書き込み可能です。', 1053 'Your server does not use .htaccess.' => 'サーバーは.htaccessを使用していません。', 1054 'Detected server: nginx or another non-Apache stack. .htaccess rules will be ignored. AI bots and sensitive files are still protected at the PHP level. For server-level blocking on nginx, add equivalent rules to your nginx config manually.' => '検出されたサーバー:nginxまたはその他の非Apacheスタック。.htaccessルールは無視されます。AIボットと機密ファイルはPHPレベルで保護されています。nginxでのサーバーレベルのブロックには、同等のルールをnginx設定に手動で追加してください。', 1055 '.htaccess is not writable.' => '.htaccessは書き込み可能ではありません。', 1056 'CyberPulse cannot write to .htaccess on this host. Check file permissions (typically 644) or contact your hosting provider. AI bots are still blocked at the PHP level.' => 'CyberPulseはこのホストの.htaccessに書き込むことができません。ファイルの権限(通常644)を確認するか、ホスティングプロバイダーに連絡してください。AIボットはPHPレベルでブロックされています。', 1057 'Applied automatically on save. Rules removed when unchecked. Other .htaccess content (WordPress, caching plugins, etc.) is preserved. A failed write is verified and rolled back automatically.' => '保存時に自動的に適用されます。チェックを外すとルールが削除されます。他の.htaccessの内容(WordPress、キャッシュプラグインなど)は保持されます。書き込みに失敗した場合は検証され、自動的にロールバックされます。', 1058 'Adds blocking rules directly to .htaccess (Apache / LiteSpeed only). Blocks AI bots and sensitive files (.git, .env, .sql, keys, backups) before PHP even loads, saving server resources. The AI-bot rules follow the two toggles above — disabling a category also removes it from .htaccess.' => 'ブロックルールを.htaccessに直接追加します(Apache / LiteSpeedのみ)。PHPが読み込まれる前にAIボットと機密ファイル(.git、.env、.sql、キー、バックアップ)をブロックし、サーバーリソースを節約します。AIボットのルールは上記の2つのトグルに従います — カテゴリを無効にすると.htaccessからも削除されます。', 1038 1059 ); -
cyberpulse/trunk/languages/cyberpulse-ko_KR.php
r3760235 r3763154 1019 1019 'Chrome < 70 (2018), Firefox < 60, Safari < 12' => 'Chrome < 70 (2018), Firefox < 60, Safari < 12', 1020 1020 'legitimate users have long updated, such versions are used only by bots with old signatures.' => '정상 사용자는 오래전에 업데이트했습니다. 이러한 버전은 오래된 서명을 가진 봇만 사용합니다.', 1021 1022 // AI Scraping Protection 1023 'AI bots are split into two independent categories. Enable only what you actually want to block.' => 'AI 봇은 두 개의 독립적인 범주로 나뉩니다. 실제로 차단하려는 항목만 활성화하세요.', 1024 'AI Training Bots' => 'AI 학습 봇', 1025 'AI Search Bots' => 'AI 검색 봇', 1026 'Block AI training bots' => 'AI 학습 봇 차단', 1027 'Block AI search bots' => 'AI 검색 봇 차단', 1028 'Bots that download your content to train AI models (GPTBot, CCBot, Google-Extended, ClaudeBot, Bytespider, Amazonbot, etc.). They do not display your site to users — they only collect data.' => 'AI 모델 학습을 위해 콘텐츠를 다운로드하는 봇(GPTBot, CCBot, Google-Extended, ClaudeBot, Bytespider, Amazonbot 등). 사용자에게 사이트를 표시하지 않고 데이터만 수집합니다.', 1029 'Bots that index your site for AI search engines (ChatGPT Search, Perplexity, Claude Search, Amazon Rufus). Their requests are tied to generating answers for users of those services. Enable this if you want to fully exclude AI crawlers from your site.' => 'AI 검색 엔진(ChatGPT Search, Perplexity, Claude Search, Amazon Rufus)을 위해 사이트를 색인하는 봇. 이들의 요청은 해당 서비스 사용자를 위한 답변 생성과 관련이 있습니다. 사이트에서 AI 크롤러를 완전히 배제하려면 이 옵션을 활성화하세요.', 1030 'Recommended: ON' => '권장: 켜짐', 1031 'Your choice' => '선택 사항', 1032 'Not applicable' => '해당 없음', 1033 'Not available' => '사용할 수 없음', 1034 'Recommendation:' => '권장 사항:', 1035 'enable .htaccess protection — it blocks threats before PHP loads and stops direct access to sensitive files that PHP cannot see. Your server supports it and .htaccess is writable.' => '.htaccess 보호를 활성화하세요 — PHP가 로드되기 전에 위협을 차단하고 PHP가 볼 수 없는 민감한 파일에 대한 직접 액세스를 중지합니다. 서버가 이를 지원하며 .htaccess를 쓸 수 있습니다.', 1036 'Your server does not use .htaccess.' => '서버가 .htaccess를 사용하지 않습니다.', 1037 'Detected server: nginx or another non-Apache stack. .htaccess rules will be ignored. AI bots and sensitive files are still protected at the PHP level. For server-level blocking on nginx, add equivalent rules to your nginx config manually.' => '감지된 서버: nginx 또는 기타 비 Apache 스택. .htaccess 규칙은 무시됩니다. AI 봇 및 민감한 파일은 여전히 PHP 수준에서 보호됩니다. nginx에서 서버 수준 차단을 사용하려면 동등한 규칙을 nginx 구성에 수동으로 추가하세요.', 1038 '.htaccess is not writable.' => '.htaccess에 쓸 수 없습니다.', 1039 'CyberPulse cannot write to .htaccess on this host. Check file permissions (typically 644) or contact your hosting provider. AI bots are still blocked at the PHP level.' => 'CyberPulse는 이 호스트의 .htaccess에 쓸 수 없습니다. 파일 권한(일반적으로 644)을 확인하거나 호스팅 제공업체에 문의하세요. AI 봇은 여전히 PHP 수준에서 차단됩니다.', 1040 'Applied automatically on save. Rules removed when unchecked. Other .htaccess content (WordPress, caching plugins, etc.) is preserved. A failed write is verified and rolled back automatically.' => '저장 시 자동으로 적용됩니다. 선택을 취소하면 규칙이 제거됩니다. 기타 .htaccess 콘텐츠(WordPress, 캐싱 플러그인 등)는 보존됩니다. 쓰기 실패는 확인 후 자동으로 롤백됩니다.', 1041 'Adds blocking rules directly to .htaccess (Apache / LiteSpeed only). Blocks AI bots and sensitive files (.git, .env, .sql, keys, backups) before PHP even loads, saving server resources. The AI-bot rules follow the two toggles above — disabling a category also removes it from .htaccess.' => '차단 규칙을 .htaccess에 직접 추가합니다(Apache / LiteSpeed 전용). PHP가 로드되기 전에 AI 봇 및 민감한 파일(.git, .env, .sql, 키, 백업)을 차단하여 서버 리소스를 절약합니다. AI 봇 규칙은 위의 두 토글을 따릅니다 — 범주를 비활성화하면 .htaccess에서도 제거됩니다.', 1021 1042 ); -
cyberpulse/trunk/languages/cyberpulse-pt_BR.php
r3760235 r3763154 1032 1032 'Chrome < 70 (2018), Firefox < 60, Safari < 12' => 'Chrome < 70 (2018), Firefox < 60, Safari < 12', 1033 1033 'legitimate users have long updated, such versions are used only by bots with old signatures.' => 'usuários legítimos já atualizaram há muito tempo, essas versões são usadas apenas por bots com assinaturas antigas.', 1034 1035 // AI Scraping Protection 1036 'AI bots are split into two independent categories. Enable only what you actually want to block.' => 'Os bots de IA são divididos em duas categorias independentes. Ative apenas o que você realmente deseja bloquear.', 1037 'AI Training Bots' => 'Bots de treinamento de IA', 1038 'AI Search Bots' => 'Bots de busca de IA', 1039 'Block AI training bots' => 'Bloquear bots de treinamento de IA', 1040 'Block AI search bots' => 'Bloquear bots de busca de IA', 1041 'Bots that download your content to train AI models (GPTBot, CCBot, Google-Extended, ClaudeBot, Bytespider, Amazonbot, etc.). They do not display your site to users — they only collect data.' => 'Bots que baixam seu conteúdo para treinar modelos de IA (GPTBot, CCBot, Google-Extended, ClaudeBot, Bytespider, Amazonbot, etc.). Eles não exibem seu site aos usuários — apenas coletam dados.', 1042 'Bots that index your site for AI search engines (ChatGPT Search, Perplexity, Claude Search, Amazon Rufus). Their requests are tied to generating answers for users of those services. Enable this if you want to fully exclude AI crawlers from your site.' => 'Bots que indexam seu site para mecanismos de busca de IA (ChatGPT Search, Perplexity, Claude Search, Amazon Rufus). Suas solicitações estão vinculadas à geração de respostas para usuários desses serviços. Ative isso se quiser excluir completamente os rastreadores de IA do seu site.', 1043 'Recommended: ON' => 'Recomendado: LIGADO', 1044 'Your choice' => 'Sua escolha', 1045 'Not applicable' => 'Não aplicável', 1046 'Not available' => 'Não disponível', 1047 'Recommendation:' => 'Recomendação:', 1048 'enable .htaccess protection — it blocks threats before PHP loads and stops direct access to sensitive files that PHP cannot see. Your server supports it and .htaccess is writable.' => 'ative a proteção .htaccess — ela bloqueia ameaças antes que o PHP carregue e impede o acesso direto a arquivos confidenciais que o PHP não consegue ver. Seu servidor oferece suporte e o .htaccess é gravável.', 1049 'Your server does not use .htaccess.' => 'Seu servidor não usa .htaccess.', 1050 'Detected server: nginx or another non-Apache stack. .htaccess rules will be ignored. AI bots and sensitive files are still protected at the PHP level. For server-level blocking on nginx, add equivalent rules to your nginx config manually.' => 'Servidor detectado: nginx ou outra pilha não-Apache. As regras do .htaccess serão ignoradas. Bots de IA e arquivos confidenciais ainda estão protegidos no nível do PHP. Para bloqueio no nível do servidor no nginx, adicione regras equivalentes manualmente na configuração do seu nginx.', 1051 '.htaccess is not writable.' => 'O .htaccess não é gravável.', 1052 'CyberPulse cannot write to .htaccess on this host. Check file permissions (typically 644) or contact your hosting provider. AI bots are still blocked at the PHP level.' => 'O CyberPulse não pode gravar no .htaccess neste host. Verifique as permissões do arquivo (normalmente 644) ou entre em contato com seu provedor de hospedagem. Os bots de IA ainda são bloqueados no nível do PHP.', 1053 'Applied automatically on save. Rules removed when unchecked. Other .htaccess content (WordPress, caching plugins, etc.) is preserved. A failed write is verified and rolled back automatically.' => 'Aplicado automaticamente ao salvar. As regras são removidas quando desmarcadas. O restante do conteúdo do .htaccess (WordPress, plugins de cache, etc.) é preservado. Uma gravação com falha é verificada e revertida automaticamente.', 1054 'Adds blocking rules directly to .htaccess (Apache / LiteSpeed only). Blocks AI bots and sensitive files (.git, .env, .sql, keys, backups) before PHP even loads, saving server resources. The AI-bot rules follow the two toggles above — disabling a category also removes it from .htaccess.' => 'Adiciona regras de bloqueio diretamente ao .htaccess (apenas Apache / LiteSpeed). Bloqueia bots de IA e arquivos confidenciais (.git, .env, .sql, chaves, backups) antes mesmo de o PHP carregar, economizando recursos do servidor. As regras de bots de IA seguem os dois botões acima — desativar uma categoria também a remove do .htaccess.', 1034 1055 ); -
cyberpulse/trunk/languages/cyberpulse-ru_RU.php
r3760235 r3763154 1039 1039 'Chrome < 70 (2018), Firefox < 60, Safari < 12' => 'Chrome < 70 (2018), Firefox < 60, Safari < 12', 1040 1040 'legitimate users have long updated, such versions are used only by bots with old signatures.' => 'легитимные пользователи давно обновились, такие версии используют только боты со старыми сигнатурами.', 1041 1042 // ------------------------------------------------------------------ 1043 // AI Scraping Protection — two independent categories (Training / Search) 1044 // ------------------------------------------------------------------ 1045 'AI bots are split into two independent categories. Enable only what you actually want to block.' 1046 => 'ИИ-боты разделены на две независимые категории. Включайте только те, которые действительно хотите блокировать.', 1047 'AI Training Bots' 1048 => 'Боты обучения ИИ', 1049 'AI Search Bots' 1050 => 'Боты ИИ-поиска', 1051 'Block AI training bots' 1052 => 'Блокировать ботов обучения ИИ', 1053 'Block AI search bots' 1054 => 'Блокировать ботов ИИ-поиска', 1055 'Bots that download your content to train AI models (GPTBot, CCBot, Google-Extended, ClaudeBot, Bytespider, Amazonbot, etc.). They do not display your site to users — they only collect data.' 1056 => 'Боты, скачивающие ваш контент для обучения ИИ-моделей (GPTBot, CCBot, Google-Extended, ClaudeBot, Bytespider, Amazonbot и др.). Они не показывают ваш сайт пользователям — только собирают данные.', 1057 'Bots that index your site for AI search engines (ChatGPT Search, Perplexity, Claude Search, Amazon Rufus). Their requests are tied to generating answers for users of those services. Enable this if you want to fully exclude AI crawlers from your site.' 1058 => 'Боты, индексирующие ваш сайт для ИИ-поисковиков (ChatGPT Search, Perplexity, Claude Search, Amazon Rufus). Их запросы связаны с формированием ответов для пользователей этих сервисов. Включайте, если хотите полностью исключить ИИ-краулеров с вашего сайта.', 1059 'Recommended: ON' 1060 => 'Рекомендуется: ВКЛ', 1061 'Your choice' 1062 => 'На ваш выбор', 1063 1064 // ------------------------------------------------------------------ 1065 // AI Scraping Protection — two independent categories (Training / Search) 1066 // ------------------------------------------------------------------ 1067 'AI bots are split into two independent categories. Enable only what you actually want to block.' 1068 => 'ИИ-боты разделены на две независимые категории. Включайте только те, которые действительно хотите блокировать.', 1069 'AI Training Bots' 1070 => 'Боты обучения ИИ', 1071 'AI Search Bots' 1072 => 'Боты ИИ-поиска', 1073 'Block AI training bots' 1074 => 'Блокировать ботов обучения ИИ', 1075 'Block AI search bots' 1076 => 'Блокировать ботов ИИ-поиска', 1077 'Bots that download your content to train AI models (GPTBot, CCBot, Google-Extended, ClaudeBot, Bytespider, Amazonbot, etc.). They do not display your site to users — they only collect data.' 1078 => 'Боты, скачивающие ваш контент для обучения ИИ-моделей (GPTBot, CCBot, Google-Extended, ClaudeBot, Bytespider, Amazonbot и др.). Они не показывают ваш сайт пользователям — только собирают данные.', 1079 'Bots that index your site for AI search engines (ChatGPT Search, Perplexity, Claude Search, Amazon Rufus). Their requests are tied to generating answers for users of those services. Enable this if you want to fully exclude AI crawlers from your site.' 1080 => 'Боты, индексирующие ваш сайт для ИИ-поисковиков (ChatGPT Search, Perplexity, Claude Search, Amazon Rufus). Их запросы связаны с формированием ответов для пользователей этих сервисов. Включайте, если хотите полностью исключить ИИ-краулеров с вашего сайта.', 1081 'Recommended: ON' 1082 => 'Рекомендуется: ВКЛ', 1083 'Your choice' 1084 => 'На ваш выбор', 1085 1086 // ------------------------------------------------------------------ 1087 // .htaccess Protection — server-aware recommendation & status 1088 // ------------------------------------------------------------------ 1089 'Not applicable' 1090 => 'Не применимо', 1091 'Not available' 1092 => 'Недоступно', 1093 'Recommendation:' 1094 => 'Рекомендация:', 1095 'enable .htaccess protection — it blocks threats before PHP loads and stops direct access to sensitive files that PHP cannot see. Your server supports it and .htaccess is writable.' 1096 => 'включите .htaccess-защиту — она блокирует угрозы до загрузки PHP и закрывает прямой доступ к чувствительным файлам, которые PHP не видит. Ваш сервер поддерживает её, и .htaccess доступен для записи.', 1097 'Your server does not use .htaccess.' 1098 => 'Ваш сервер не использует .htaccess.', 1099 'Detected server: nginx or another non-Apache stack. .htaccess rules will be ignored. AI bots and sensitive files are still protected at the PHP level. For server-level blocking on nginx, add equivalent rules to your nginx config manually.' 1100 => 'Обнаружен сервер: nginx или другой не-Apache стек. Правила .htaccess будут проигнорированы. ИИ-боты и чувствительные файлы всё равно защищены на уровне PHP. Для блокировки на уровне сервера в nginx добавьте аналогичные правила в конфиг nginx вручную.', 1101 '.htaccess is not writable.' 1102 => '.htaccess недоступен для записи.', 1103 'CyberPulse cannot write to .htaccess on this host. Check file permissions (typically 644) or contact your hosting provider. AI bots are still blocked at the PHP level.' 1104 => 'CyberPulse не может писать в .htaccess на этом хостинге. Проверьте права на файл (обычно 644) или обратитесь к хостинг-провайдеру. ИИ-боты всё равно блокируются на уровне PHP.', 1105 'Applied automatically on save. Rules removed when unchecked. Other .htaccess content (WordPress, caching plugins, etc.) is preserved. A failed write is verified and rolled back automatically.' 1106 => 'Применяется автоматически при сохранении. Правила удаляются при снятии галочки. Остальное содержимое .htaccess (WordPress, кэширующие плагины и т.д.) сохраняется. Неудачная запись проверяется и автоматически откатывается.', 1107 'Adds blocking rules directly to .htaccess (Apache / LiteSpeed only). Blocks AI bots and sensitive files (.git, .env, .sql, keys, backups) before PHP even loads, saving server resources. The AI-bot rules follow the two toggles above — disabling a category also removes it from .htaccess.' 1108 => 'Добавляет правила блокировки прямо в .htaccess (только Apache / LiteSpeed). Блокирует ИИ-ботов и чувствительные файлы (.git, .env, .sql, ключи, бэкапы) ещё до загрузки PHP, экономя ресурсы сервера. Правила для ИИ-ботов подчиняются двум переключателям выше — отключение категории убирает её и из .htaccess.', 1041 1109 ); -
cyberpulse/trunk/languages/cyberpulse-zh_CN.php
r3760235 r3763154 1032 1032 'Chrome < 70 (2018), Firefox < 60, Safari < 12' => 'Chrome < 70 (2018), Firefox < 60, Safari < 12', 1033 1033 'legitimate users have long updated, such versions are used only by bots with old signatures.' => '正常用户早已更新,此类版本仅被带有旧签名的机器人使用。', 1034 1035 // AI Scraping Protection 1036 'AI bots are split into two independent categories. Enable only what you actually want to block.' => 'AI 机器人分为两个独立的类别。仅启用您确实想要阻止的内容。', 1037 'AI Training Bots' => 'AI 训练机器人', 1038 'AI Search Bots' => 'AI 搜索机器人', 1039 'Block AI training bots' => '阻止 AI 训练机器人', 1040 'Block AI search bots' => '阻止 AI 搜索机器人', 1041 'Bots that download your content to train AI models (GPTBot, CCBot, Google-Extended, ClaudeBot, Bytespider, Amazonbot, etc.). They do not display your site to users — they only collect data.' => '下载您的内容以训练 AI 模型的机器人(如 GPTBot、CCBot、Google-Extended、ClaudeBot、Bytespider、Amazonbot 等)。它们不会向用户显示您的网站,仅收集数据。', 1042 'Bots that index your site for AI search engines (ChatGPT Search, Perplexity, Claude Search, Amazon Rufus). Their requests are tied to generating answers for users of those services. Enable this if you want to fully exclude AI crawlers from your site.' => '为 AI 搜索引擎(如 ChatGPT Search、Perplexity、Claude Search、Amazon Rufus)索引您网站的机器人。它们的请求与为这些服务的用户生成答案相关。如果您想将 AI 抓取程序从您的网站中完全排除,请启用此项。', 1043 'Recommended: ON' => '推荐:开启', 1044 'Your choice' => '由您决定', 1045 'Not applicable' => '不适用', 1046 'Not available' => '不可用', 1047 'Recommendation:' => '建议:', 1048 'enable .htaccess protection — it blocks threats before PHP loads and stops direct access to sensitive files that PHP cannot see. Your server supports it and .htaccess is writable.' => '启用 .htaccess 保护——它可以在加载 PHP 之前拦截威胁,并阻止直接访问 PHP 无法看到的敏感文件。您的服务器支持此功能,且 .htaccess 可写。', 1049 'Your server does not use .htaccess.' => '您的服务器不使用 .htaccess。', 1050 'Detected server: nginx or another non-Apache stack. .htaccess rules will be ignored. AI bots and sensitive files are still protected at the PHP level. For server-level blocking on nginx, add equivalent rules to your nginx config manually.' => '检测到的服务器:nginx 或其他非 Apache 环境。.htaccess 规则将被忽略。AI 机器人和敏感文件仍然在 PHP 级别受到保护。要在 nginx 上实现服务器级别的拦截,请手动将等效规则添加到您的 nginx 配置中。', 1051 '.htaccess is not writable.' => '.htaccess 不可写。', 1052 'CyberPulse cannot write to .htaccess on this host. Check file permissions (typically 644) or contact your hosting provider. AI bots are still blocked at the PHP level.' => 'CyberPulse 无法在此主机上写入 .htaccess。请检查文件权限(通常为 644)或联系您的托管服务提供商。AI 机器人仍然在 PHP 级别被拦截。', 1053 'Applied automatically on save. Rules removed when unchecked. Other .htaccess content (WordPress, caching plugins, etc.) is preserved. A failed write is verified and rolled back automatically.' => '保存时自动应用。取消勾选时删除规则。保留 .htaccess 的其他内容(如 WordPress、缓存插件等)。写入失败时会自动验证并回滚。', 1054 'Adds blocking rules directly to .htaccess (Apache / LiteSpeed only). Blocks AI bots and sensitive files (.git, .env, .sql, keys, backups) before PHP even loads, saving server resources. The AI-bot rules follow the two toggles above — disabling a category also removes it from .htaccess.' => '直接将拦截规则添加到 .htaccess(仅限 Apache / LiteSpeed)。在加载 PHP 之前拦截 AI 机器人和敏感文件(.git、.env、.sql、密钥、备份),节省服务器资源。AI 机器人规则遵循上方的两个开关——禁用某个类别也会将其从 .htaccess 中移除。', 1034 1055 ); -
cyberpulse/trunk/readme.txt
r3761760 r3763154 5 5 Tested up to: 7.1 6 6 Requires PHP: 7.4 7 Stable tag: 5.9.1. 17 Stable tag: 5.9.1.2 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 112 112 == Changelog == 113 113 114 = 5.9.1.2 = 115 * 🤖 AI bot protection is now configurable. Added two independent toggles so you control exactly what gets blocked. 116 * 🧠 AI Training Bots (default ON) — blocks GPTBot, CCBot, Google-Extended, ClaudeBot, Bytespider, Amazonbot, etc. They only download your content and never show your site to users. 117 * 🔍 AI Search Bots (default OFF) — blocks OAI-SearchBot, ChatGPT-User, PerplexityBot, Claude-User, Amzn-SearchBot, etc. They index your site for AI search engines. Enable this if you want the old strict behavior. 118 * 🆕 Expanded signature database — added new AI bots: DuckAssistBot (DuckDuckGo), Amzn-User (Amazon), Grok-DeepSearch (xAI), QwenBot (Alibaba), DeepSeekBot, xAI-Crawler, and cohere-training-data-crawler. 119 * 🛡️ New server-aware .htaccess panel: shows "Recommended: ON" on Apache/LiteSpeed with a writable file, warns clearly on nginx or read-only setups, and disables the checkbox when the feature cannot work. 120 114 121 = 5.9.1.1 = 115 122 * 🔒 Security: User-Agent validation rewritten — hardcoded Chrome version threshold replaced with behavioural verification (Sec-Fetch-*, Client Hints, Accept-Language).
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)