Version Description
- New: New settings for the Traffic Inspector firewall allow you to fine-tune its behavior. You can enable less or more restrictive firewall rules.
- Update: Troubleshooting of possible issues with scheduled maintenance tasks has been improved.
- Update: To make troubleshooting easier the plugin logs not only a lockout event but also logs and displays the reason for the lockout.
- Update: Compatibility with ManageWP and Gravity Forms has been improved.
- Update: The layout of the Activity and Live Traffic pages has been improved.
- Bug fixed: The malware scanner wrongly prevents PHP files with few specific names in one particular location from being deleted after a manual scan or during the automatic malware removal.
- Bug fixed: The number of email notifications might be incorrectly limited to one email per hour.
- Read more
Download this release
Release Info
Developer | Gioni |
Plugin | Cerber Security & Antispam |
Version | 7.9.3 |
Comparing to | |
See all releases |
Code changes from version 7.9 to 7.9.3
- assets/admin.css +8 -3
- cerber-lab.php +3 -2
- cerber-load.php +263 -193
- cerber-news.php +10 -1
- cerber-pluggable.php +2 -1
- cerber-request.php +103 -0
- cerber-scanner.php +10 -178
- cerber-tools.php +67 -15
- changelog.txt +10 -0
- common.php +267 -55
- dashboard.php +81 -120
- jetflow.php +2 -1
- languages/wp-cerber.pot +644 -619
- modules/aaa-wp-cerber.php +1 -1
- readme.txt +12 -17
- ripe.php +2 -1
- settings.php +36 -14
- whois.php +6 -4
- wp-cerber.php +4 -4
assets/admin.css
CHANGED
@@ -274,12 +274,12 @@
|
|
274 |
color: #222;
|
275 |
}
|
276 |
|
277 |
-
|
278 |
#crb-traffic td:nth-child(4),
|
279 |
#crb-activity td:nth-child(2),
|
280 |
#crb-activity td:nth-child(5){
|
281 |
word-break: break-all;
|
282 |
-
}
|
283 |
#crb-traffic td{
|
284 |
vertical-align: top;
|
285 |
/*word-break: break-all;*/
|
@@ -413,7 +413,7 @@ td.crb-traffic-details div{
|
|
413 |
|
414 |
#activity-filter div:first-child {
|
415 |
float: left;
|
416 |
-
max-width:
|
417 |
margin-bottom: 1em;
|
418 |
}
|
419 |
#activity-filter div:nth-child(2) {
|
@@ -527,6 +527,11 @@ p.act-url{
|
|
527 |
border-left: 4px solid rgba(0, 0, 0, .25);
|
528 |
}
|
529 |
|
|
|
|
|
|
|
|
|
|
|
530 |
/* Pagination links */
|
531 |
|
532 |
.pagination {
|
274 |
color: #222;
|
275 |
}
|
276 |
|
277 |
+
/*#crb-traffic td:nth-child(2),
|
278 |
#crb-traffic td:nth-child(4),
|
279 |
#crb-activity td:nth-child(2),
|
280 |
#crb-activity td:nth-child(5){
|
281 |
word-break: break-all;
|
282 |
+
}*/
|
283 |
#crb-traffic td{
|
284 |
vertical-align: top;
|
285 |
/*word-break: break-all;*/
|
413 |
|
414 |
#activity-filter div:first-child {
|
415 |
float: left;
|
416 |
+
max-width: 80%;
|
417 |
margin-bottom: 1em;
|
418 |
}
|
419 |
#activity-filter div:nth-child(2) {
|
527 |
border-left: 4px solid rgba(0, 0, 0, .25);
|
528 |
}
|
529 |
|
530 |
+
.crb-country {
|
531 |
+
padding-left: 24px;
|
532 |
+
white-space: nowrap;
|
533 |
+
}
|
534 |
+
|
535 |
/* Pagination links */
|
536 |
|
537 |
.pagination {
|
cerber-lab.php
CHANGED
@@ -2,7 +2,8 @@
|
|
2 |
/*
|
3 |
Cerber Laboratory (cerberlab.net) specific routines.
|
4 |
|
5 |
-
Copyright (C) 2015-18 CERBER TECH INC.,
|
|
|
6 |
|
7 |
Licenced under the GNU GPL.
|
8 |
|
@@ -551,7 +552,7 @@ function lab_is_cloud_ok(){
|
|
551 |
*/
|
552 |
function lab_save_push( $ip, $reason_id, $details ) {
|
553 |
$ip = filter_var( $ip, FILTER_VALIDATE_IP );
|
554 |
-
if ( ! $ip || is_ip_private( $ip ) ||
|
555 |
return;
|
556 |
}
|
557 |
$reason_id = absint( $reason_id );
|
2 |
/*
|
3 |
Cerber Laboratory (cerberlab.net) specific routines.
|
4 |
|
5 |
+
Copyright (C) 2015-18 CERBER TECH INC., http://cerber.tech
|
6 |
+
Copyright (C) 2015-18 CERBER TECH INC., https://wpcerber.com
|
7 |
|
8 |
Licenced under the GNU GPL.
|
9 |
|
552 |
*/
|
553 |
function lab_save_push( $ip, $reason_id, $details ) {
|
554 |
$ip = filter_var( $ip, FILTER_VALIDATE_IP );
|
555 |
+
if ( ! $ip || is_ip_private( $ip ) || crb_acl_is_white( $ip ) || ! ( crb_get_settings( 'cerberlab' ) || lab_lab() ) ) {
|
556 |
return;
|
557 |
}
|
558 |
$reason_id = absint( $reason_id );
|
cerber-load.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
-
|
4 |
-
|
5 |
|
6 |
Licenced under the GNU GPL.
|
7 |
|
@@ -91,6 +91,7 @@ define( 'CERBER_AGGRESSIVE', 1 );
|
|
91 |
require_once( dirname( __FILE__ ) . '/cerber-pluggable.php' );
|
92 |
require_once( dirname( __FILE__ ) . '/common.php' );
|
93 |
require_once( dirname( __FILE__ ) . '/settings.php' );
|
|
|
94 |
require_once( dirname( __FILE__ ) . '/cerber-lab.php' );
|
95 |
require_once( dirname( __FILE__ ) . '/whois.php' );
|
96 |
require_once( dirname( __FILE__ ) . '/jetflow.php' );
|
@@ -195,8 +196,9 @@ class WP_Cerber {
|
|
195 |
return $this->uri_prohibited;
|
196 |
}
|
197 |
|
198 |
-
if (
|
199 |
$this->uri_prohibited = false;
|
|
|
200 |
return false;
|
201 |
}
|
202 |
|
@@ -212,7 +214,7 @@ class WP_Cerber {
|
|
212 |
if ( !empty( $this->options['wplogin'] ) ) {
|
213 |
$cerber_status = 19;
|
214 |
cerber_log( 50 );
|
215 |
-
cerber_soft_block_add( $this->remote_ip,
|
216 |
$this->uri_prohibited = true;
|
217 |
return true;
|
218 |
}
|
@@ -266,7 +268,7 @@ class WP_Cerber {
|
|
266 |
$deny = false;
|
267 |
$act = 18;
|
268 |
if ( cerber_is_http_post() ) {
|
269 |
-
if ( ! cerber_is_allowed( null, array(
|
270 |
$deny = true;
|
271 |
$act = 18;
|
272 |
}
|
@@ -657,7 +659,7 @@ class WP_Cerber {
|
|
657 |
cerber_log( 40 );
|
658 |
if ($this->options['recaptcha-period'] && $this->options['recaptcha-number'] && $this->options['recaptcha-within']) {
|
659 |
$remain = cerber_get_remain_count($this->remote_ip , true, array( 40 ), $this->options['recaptcha-number'], $this->options['recaptcha-within']);
|
660 |
-
if ($remain < 1) cerber_block_add( $this->remote_ip,
|
661 |
}
|
662 |
}
|
663 |
|
@@ -867,7 +869,7 @@ function cerber_extra_vision() {
|
|
867 |
if ( ! empty( $black_logged ) && cerber_is_allowed() ) {
|
868 |
$remain = cerber_get_remain_count( $ip, true, $black ); // @since 6.7.5
|
869 |
if ( $remain < 1 ) {
|
870 |
-
cerber_soft_block_add( $ip,
|
871 |
$cerber_status = 18;
|
872 |
|
873 |
return true;
|
@@ -927,8 +929,8 @@ function cerber_is_login_request() {
|
|
927 |
$ret = true;
|
928 |
}
|
929 |
}
|
930 |
-
|
931 |
-
elseif (
|
932 |
$ret = true;
|
933 |
}
|
934 |
|
@@ -991,7 +993,7 @@ function cerber_auth_control( $user, $username, $password ) {
|
|
991 |
//if ( $wp_cerber->isProhibited( $username ) ) {
|
992 |
if ( $username && cerber_is_prohibited( $username ) ) {
|
993 |
cerber_log( 52, $username );
|
994 |
-
cerber_block_add( null,
|
995 |
|
996 |
// Create with message that is identical default WP
|
997 |
return new WP_Error( 'incorrect_password', sprintf(
|
@@ -1139,10 +1141,10 @@ function cerber_login_failed( $user_login ) {
|
|
1139 |
}
|
1140 |
|
1141 |
if ( $no_user && $wp_cerber->getSettings( 'nonusers' ) ) {
|
1142 |
-
cerber_block_add( $ip,
|
1143 |
}
|
1144 |
elseif ( cerber_get_remain_count($ip, false) < 1 ) { //Limit on the number of login attempts is reached
|
1145 |
-
cerber_block_add( $ip,
|
1146 |
}
|
1147 |
|
1148 |
}
|
@@ -1186,10 +1188,10 @@ function cerber_failed_work($ip, $acl, $no_user, $user_login){
|
|
1186 |
}
|
1187 |
|
1188 |
if ( $no_user && $wp_cerber->getSettings( 'nonusers' ) ) {
|
1189 |
-
cerber_block_add( $ip,
|
1190 |
}
|
1191 |
elseif ( cerber_get_remain_count($ip, false) <= 1 ) { //Limit on the number of login attempts is reached
|
1192 |
-
cerber_block_add( $ip,
|
1193 |
}
|
1194 |
}
|
1195 |
|
@@ -1198,51 +1200,56 @@ function cerber_failed_work($ip, $acl, $no_user, $user_login){
|
|
1198 |
function cerber_is_registration_prohibited( $sanitized_user_login ) {
|
1199 |
global $wp_cerber, $cerber_status;
|
1200 |
|
|
|
|
|
|
|
|
|
|
|
1201 |
$code = null;
|
1202 |
$msg = null;
|
1203 |
|
1204 |
-
if (crb_is_reg_limit_reached()){
|
1205 |
$cerber_status = 17;
|
1206 |
-
cerber_log(54);
|
1207 |
$code = 'ip_denied';
|
1208 |
-
$msg
|
1209 |
-
|
1210 |
-
|
1211 |
-
|
1212 |
-
cerber_log(54); // TODO should be separate code to detect bot activity?
|
1213 |
$code = 'bot_detected';
|
1214 |
-
$msg
|
1215 |
-
|
1216 |
}
|
1217 |
elseif ( ! $wp_cerber->reCaptchaValidate() ) {
|
1218 |
$code = 'incorrect_recaptcha';
|
1219 |
-
$msg
|
1220 |
-
|
1221 |
}
|
1222 |
elseif ( cerber_is_prohibited( $sanitized_user_login ) ) {
|
1223 |
$code = 'prohibited_login';
|
1224 |
-
$msg
|
1225 |
-
|
1226 |
}
|
1227 |
-
elseif ( !cerber_is_allowed() || lab_is_blocked($wp_cerber->getRemoteIp()) ) {
|
1228 |
-
cerber_log(54);
|
1229 |
$code = 'ip_denied';
|
1230 |
-
$msg
|
1231 |
-
|
1232 |
}
|
1233 |
elseif ( ! cerber_geo_allowed( 'geo_register' ) ) {
|
1234 |
$cerber_status = 16; // TODO: refactor cerber_log, include this status as a second parameter
|
1235 |
-
cerber_log(54); // TODO should be separate code?
|
1236 |
$code = 'country_denied';
|
1237 |
-
$msg
|
1238 |
-
|
1239 |
}
|
1240 |
|
1241 |
if ( $code ) {
|
1242 |
return array( $code, $msg );
|
1243 |
}
|
1244 |
|
1245 |
-
return
|
1246 |
}
|
1247 |
|
1248 |
/**
|
@@ -1282,9 +1289,9 @@ function cerber_pre_new_user( $errors, $sanitized_user_login, $user_email ) {
|
|
1282 |
|
1283 |
$prohibited = cerber_is_registration_prohibited( $sanitized_user_login );
|
1284 |
|
1285 |
-
if ($prohibited){
|
1286 |
-
return new WP_Error($prohibited[0], $prohibited[1]);
|
1287 |
-
|
1288 |
|
1289 |
return $errors;
|
1290 |
}
|
@@ -1442,7 +1449,7 @@ function cerber_is_comment_allowed(){
|
|
1442 |
}
|
1443 |
elseif ( cerber_is_bot('botscomm') ) {
|
1444 |
$remain = cerber_get_remain_count( null, true, array( 16 ), 3, 60 );
|
1445 |
-
if ($remain < 1) cerber_block_add( null,
|
1446 |
$deny = 16;
|
1447 |
}
|
1448 |
elseif ( ! $wp_cerber->reCaptchaValidate( 'comment' , true ) ) {
|
@@ -1562,9 +1569,7 @@ function cerber_access_control() {
|
|
1562 |
return;
|
1563 |
}
|
1564 |
|
1565 |
-
|
1566 |
-
$acl = cerber_acl_check();
|
1567 |
-
if ( $acl == 'W' ) {
|
1568 |
return;
|
1569 |
}
|
1570 |
|
@@ -1638,7 +1643,7 @@ function cerber_access_control() {
|
|
1638 |
function cerber_post_control() {
|
1639 |
global $cerber_status;
|
1640 |
|
1641 |
-
if ( ! cerber_is_http_post() ||
|
1642 |
return;
|
1643 |
}
|
1644 |
|
@@ -1738,7 +1743,8 @@ function cerber_is_antibot_exception(){
|
|
1738 |
|
1739 |
if ( class_exists( 'WooCommerce' ) ) {
|
1740 |
if ( cerber_is_permalink_enabled() ) {
|
1741 |
-
if ( 0 === strpos( cerber_get_site_root() . cerber_purify_uri(), get_home_url() . '/wc-api/' ) ) {
|
|
|
1742 |
return true;
|
1743 |
}
|
1744 |
}
|
@@ -1774,12 +1780,16 @@ function cerber_antibot_mode() {
|
|
1774 |
|
1775 |
}
|
1776 |
|
|
|
|
|
|
|
|
|
1777 |
// Check for third party exceptions
|
1778 |
|
1779 |
if ( class_exists( 'WooCommerce' ) ) {
|
1780 |
|
1781 |
-
if ( !empty( $_GET['wc-ajax'] ) &&
|
1782 |
-
|
1783 |
count( $_GET ) == 1 &&
|
1784 |
empty( $_POST )
|
1785 |
) {
|
@@ -1788,7 +1798,8 @@ function cerber_antibot_mode() {
|
|
1788 |
}
|
1789 |
|
1790 |
if ( cerber_is_permalink_enabled() ) {
|
1791 |
-
if ( function_exists( 'wc_get_page_id' ) && 0 === strpos( cerber_get_site_root() . cerber_purify_uri(), get_permalink( wc_get_page_id( 'checkout' ) ) ) ) {
|
|
|
1792 |
return 2;
|
1793 |
}
|
1794 |
}
|
@@ -1800,13 +1811,10 @@ function cerber_antibot_mode() {
|
|
1800 |
}
|
1801 |
|
1802 |
if ( class_exists( 'GFForms' ) ) {
|
1803 |
-
if (
|
1804 |
-
|
1805 |
-
|
1806 |
-
|
1807 |
-
! empty( $_POST['form_id'] ) &&
|
1808 |
-
! empty( $_POST['field_id'] ) &&
|
1809 |
-
! empty( $_POST['gform_unique_id'] )
|
1810 |
) {
|
1811 |
|
1812 |
return 2;
|
@@ -2222,8 +2230,7 @@ function cerber_geo_allowed( $rule_id = '' ) {
|
|
2222 |
return true;
|
2223 |
}
|
2224 |
|
2225 |
-
|
2226 |
-
if ( $tag == 'W' ) {
|
2227 |
return true;
|
2228 |
}
|
2229 |
|
@@ -2487,8 +2494,8 @@ function cerber_block_add( $ip = '', $reason_id = 1, $details = '', $duration =
|
|
2487 |
$result = cerber_db_query( 'INSERT INTO ' . CERBER_BLOCKS_TABLE . ' (ip,block_until,reason,reason_id) VALUES ("' . $ip . '",' . $until . ',"' . $reason . '",' . absint( $reason_id ) . ')' );
|
2488 |
|
2489 |
if ( $result ) {
|
|
|
2490 |
cerber_log( $activity, null, null, $ip_address );
|
2491 |
-
$cerber_blocked = true;
|
2492 |
$wp_cerber->setLocked();
|
2493 |
do_action( 'cerber_ip_locked', array( 'IP' => $ip_address, 'reason' => $reason ) );
|
2494 |
$result = true;
|
@@ -2622,7 +2629,7 @@ function cerber_get_remain_count( $ip = '', $check_acl = true, $activity = array
|
|
2622 |
$allowed = absint( crb_get_settings( 'attempts' ) );
|
2623 |
}
|
2624 |
|
2625 |
-
if ( $check_acl &&
|
2626 |
return $allowed; // whitelist = infinity attempts
|
2627 |
}
|
2628 |
|
@@ -2877,16 +2884,39 @@ function cerber_can_be_listed( $ip, $list = 'B' ) {
|
|
2877 |
return true;
|
2878 |
}
|
2879 |
|
2880 |
-
|
2881 |
-
|
2882 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2883 |
return true;
|
2884 |
}
|
2885 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2886 |
return false;
|
2887 |
}
|
|
|
|
|
|
|
2888 |
|
2889 |
-
return
|
2890 |
}
|
2891 |
|
2892 |
/**
|
@@ -2922,7 +2952,7 @@ function cerber_acl_check( $ip = null, $tag = '' ) {
|
|
2922 |
$long = ip2long( $ip );
|
2923 |
|
2924 |
if ( $tag ) {
|
2925 |
-
if ( $tag
|
2926 |
$ret = false;
|
2927 |
}
|
2928 |
elseif ( cerber_db_get_var( 'SELECT ip FROM ' . CERBER_ACL_TABLE . ' WHERE ip_long_begin <= '.$long.' AND '.$long.' <= ip_long_end AND tag = "'.$tag.'" LIMIT 1' ) ) {
|
@@ -2989,17 +3019,6 @@ function cerber_acl_checkV6( $ip = null, $tag = '' ) {
|
|
2989 |
}
|
2990 |
}
|
2991 |
|
2992 |
-
|
2993 |
-
function crb_acl_is_white( $ip = null ){
|
2994 |
-
|
2995 |
-
$acl = cerber_acl_check( $ip );
|
2996 |
-
if ( $acl == 'W' ) {
|
2997 |
-
return true;
|
2998 |
-
}
|
2999 |
-
|
3000 |
-
return false;
|
3001 |
-
}
|
3002 |
-
|
3003 |
/*
|
3004 |
* Logging directly to the file
|
3005 |
*
|
@@ -3371,14 +3390,14 @@ function cerber_send_email( $type = '', $msg = '', $ip = '' ) {
|
|
3371 |
if ( $type == 'lockout' && ! is_admin() ) {
|
3372 |
$rate = absint( $wp_cerber->getSettings( 'emailrate' ) );
|
3373 |
if ( $rate ) {
|
3374 |
-
$last_em = cerber_get_set( '_cerber_last' );
|
3375 |
$period = 60 * 60; // per hour
|
3376 |
if ( $last_em ) {
|
3377 |
if ( $last_em > ( time() - $period / $rate ) ) {
|
3378 |
return false;
|
3379 |
}
|
3380 |
}
|
3381 |
-
cerber_update_set( '_cerber_last', time(), 1,
|
3382 |
}
|
3383 |
}
|
3384 |
|
@@ -3666,7 +3685,7 @@ function cerber_generate_report($period = 7){
|
|
3666 |
// Maintenance routines ----------------------------------------------------------------
|
3667 |
|
3668 |
function cerber_init_cron(){
|
3669 |
-
$next_hour = floor( ( time() + 3600 ) / 3600 ) * 3600;
|
3670 |
|
3671 |
if ( ! wp_next_scheduled( 'cerber_hourly_1' ) ) {
|
3672 |
wp_schedule_event( $next_hour, 'hourly', 'cerber_hourly_1' );
|
@@ -3685,11 +3704,16 @@ add_action( 'cerber_hourly_1', 'cerber_do_hourly' );
|
|
3685 |
function cerber_do_hourly( $force = false ) {
|
3686 |
global $wpdb, $wp_cerber;
|
3687 |
|
|
|
|
|
|
|
3688 |
// Avoid multiple executions on a weird hosting
|
3689 |
-
if ( ( $
|
3690 |
return;
|
3691 |
}
|
3692 |
|
|
|
|
|
3693 |
if ( is_multisite() ) {
|
3694 |
if ( ! $force && get_site_transient( 'cerber_multisite' ) ) {
|
3695 |
return;
|
@@ -3697,11 +3721,7 @@ function cerber_do_hourly( $force = false ) {
|
|
3697 |
set_site_transient( 'cerber_multisite', 'executed', 3600 );
|
3698 |
}
|
3699 |
|
3700 |
-
|
3701 |
-
lab_check_nodes( true, true );
|
3702 |
-
}
|
3703 |
-
|
3704 |
-
$time = time();
|
3705 |
$days = absint( crb_get_settings( 'keeplog' ) );
|
3706 |
if ( $days > 0 ) {
|
3707 |
$wpdb->query( 'DELETE FROM ' . CERBER_LOG_TABLE . ' WHERE stamp < ' . ( $time - $days * 24 * 3600 ) );
|
@@ -3711,8 +3731,6 @@ function cerber_do_hourly( $force = false ) {
|
|
3711 |
$wpdb->query( 'DELETE FROM ' . CERBER_TRAF_TABLE . ' WHERE stamp < ' . ( $time - $days * 24 * 3600 ) );
|
3712 |
}
|
3713 |
|
3714 |
-
cerber_push_lab();
|
3715 |
-
|
3716 |
$wpdb->query( 'DELETE FROM ' . CERBER_LAB_IP_TABLE . ' WHERE expires < ' . $time );
|
3717 |
|
3718 |
if ( $wp_cerber->getSettings( 'trashafter-enabled') && absint($wp_cerber->getSettings('trashafter'))) {
|
@@ -3729,19 +3747,22 @@ function cerber_do_hourly( $force = false ) {
|
|
3729 |
|
3730 |
cerber_up_data();
|
3731 |
|
3732 |
-
//
|
3733 |
cerber_truncate_log();
|
3734 |
|
3735 |
-
set_site_transient(
|
3736 |
}
|
3737 |
|
3738 |
add_action( 'cerber_hourly_2', function () {
|
|
|
|
|
3739 |
|
3740 |
-
|
3741 |
-
if ( ( $hour = get_site_transient( 'crb_hourly_2' ) ) && $hour == date( 'G' ) ) {
|
3742 |
return;
|
3743 |
}
|
3744 |
|
|
|
|
|
3745 |
$gmt_offset = get_option( 'gmt_offset' ) * 3600;
|
3746 |
|
3747 |
if ( crb_get_settings( 'enable-report' )
|
@@ -3775,6 +3796,12 @@ add_action( 'cerber_hourly_2', function () {
|
|
3775 |
}
|
3776 |
}
|
3777 |
|
|
|
|
|
|
|
|
|
|
|
|
|
3778 |
cerber_cloud_sync();
|
3779 |
|
3780 |
// Simply keep folder locked
|
@@ -3782,18 +3809,19 @@ add_action( 'cerber_hourly_2', function () {
|
|
3782 |
|
3783 |
cerber_db_query( 'DELETE FROM ' . CERBER_QMEM_TABLE . ' WHERE stamp < ' . ( time() - 30 * 60 ) );
|
3784 |
|
3785 |
-
set_site_transient(
|
3786 |
});
|
3787 |
|
3788 |
add_action( 'cerber_daily', 'cerber_do_daily' );
|
3789 |
function cerber_do_daily() {
|
|
|
|
|
|
|
3790 |
|
3791 |
cerber_do_hourly( true );
|
3792 |
|
3793 |
$time = time();
|
3794 |
|
3795 |
-
lab_trunc_push();
|
3796 |
-
|
3797 |
lab_validate_lic();
|
3798 |
|
3799 |
cerber_db_query( 'DELETE FROM ' . CERBER_LAB_NET_TABLE . ' WHERE expires < ' . $time );
|
@@ -3827,7 +3855,7 @@ function cerber_do_daily() {
|
|
3827 |
// TODO: implement holding previous values for a while
|
3828 |
// cerber_antibot_gene();
|
3829 |
|
3830 |
-
set_site_transient(
|
3831 |
}
|
3832 |
|
3833 |
/**
|
@@ -3842,8 +3870,9 @@ function cerber_do_daily() {
|
|
3842 |
* @since 3.0
|
3843 |
*/
|
3844 |
function cerber_log( $activity, $login = '', $user_id = 0, $ip = null ) {
|
3845 |
-
global $
|
3846 |
static $logged = array();
|
|
|
3847 |
$wp_cerber = get_wp_cerber();
|
3848 |
|
3849 |
$activity = absint( $activity );
|
@@ -3874,17 +3903,12 @@ function cerber_log( $activity, $login = '', $user_id = 0, $ip = null ) {
|
|
3874 |
}
|
3875 |
|
3876 |
if ( empty( $user_id ) ) {
|
3877 |
-
|
3878 |
-
$user_id = $user_ID;
|
3879 |
-
}
|
3880 |
-
else {
|
3881 |
-
$user_ID = 0;
|
3882 |
-
}
|
3883 |
}
|
3884 |
|
3885 |
$user_id = absint( $user_id );
|
3886 |
|
3887 |
-
$stamp =
|
3888 |
|
3889 |
$pos = strpos($_SERVER['REQUEST_URI'],'?');
|
3890 |
if ($pos) {
|
@@ -3895,42 +3919,26 @@ function cerber_log( $activity, $login = '', $user_id = 0, $ip = null ) {
|
|
3895 |
}
|
3896 |
$url = strip_tags($_SERVER['HTTP_HOST'] . $path);
|
3897 |
|
3898 |
-
$
|
3899 |
-
if ($activity != 10 && $activity != 11) {
|
3900 |
-
|
3901 |
}
|
|
|
|
|
|
|
3902 |
|
3903 |
-
$details = $
|
3904 |
|
3905 |
$country = lab_get_country( $ip );
|
3906 |
|
3907 |
-
/*
|
3908 |
-
$ret = $wpdb->query( $wpdb->prepare( 'INSERT INTO ' . CERBER_LOG_TABLE . ' (ip, ip_long, user_login, user_id, stamp, activity, session_id, country, details) VALUES (%s,%d,%s,%d,%f,%d,%s,%s,%s)', $ip, $ip_long, $login, $user_id, $stamp, $activity, $wp_cerber->getSessionID(), $country, $details ) );
|
3909 |
-
if ( ! $ret ) {
|
3910 |
-
// workaround for a WP bugs like this: WP silently doesn't not insert a row into a table
|
3911 |
-
// https://core.trac.wordpress.org/ticket/32315
|
3912 |
-
$ret = $wpdb->insert( CERBER_LOG_TABLE, array(
|
3913 |
-
'ip' => $ip,
|
3914 |
-
'ip_long' => $ip_long,
|
3915 |
-
'user_login' => $login,
|
3916 |
-
'user_id' => $user_id,
|
3917 |
-
'stamp' => $stamp,
|
3918 |
-
'activity' => $activity,
|
3919 |
-
'session_id' => $wp_cerber->getSessionID(),
|
3920 |
-
'country' => $country,
|
3921 |
-
'details' => $details,
|
3922 |
-
), array( '%s', '%d', '%s', '%d', '%f', '%d' ) );
|
3923 |
-
}*/
|
3924 |
-
|
3925 |
-
// @since 6.3
|
3926 |
$login = cerber_real_escape( $login );
|
3927 |
$details = cerber_real_escape( $details );
|
3928 |
-
$ret
|
3929 |
-
VALUES ("'
|
3930 |
|
3931 |
if ( ! $ret ) {
|
3932 |
-
|
3933 |
-
|
3934 |
|
3935 |
// Subscriptions - notifications for admin ---------------------------------------------------
|
3936 |
|
@@ -4857,31 +4865,86 @@ function cerber_foo() {
|
|
4857 |
}
|
4858 |
|
4859 |
register_shutdown_function( function () {
|
4860 |
-
global $cerber_db_errors, $cerber_status;
|
4861 |
-
$locked = cerber_extra_vision();
|
4862 |
|
4863 |
-
|
4864 |
-
if ( crb_get_settings( 'tienabled' ) && crb_get_settings( 'tierrmon' ) ) {
|
4865 |
-
if ( ( 400 <= http_response_code() ) && ( cerber_get_non_wp_fields() || cerber_is_http_post() ) ) {
|
4866 |
-
$ip = cerber_get_remote_ip();
|
4867 |
-
cerber_db_query( 'INSERT INTO ' . CERBER_QMEM_TABLE . ' (ip, http_code, stamp)
|
4868 |
-
VALUES ("' . $ip . '",' . intval( http_response_code() ) . ',' . time() . ')' );
|
4869 |
|
4870 |
-
|
4871 |
-
|
4872 |
-
|
4873 |
-
|
4874 |
-
|
4875 |
-
$cerber_status = 18;
|
4876 |
-
}
|
4877 |
-
}
|
4878 |
-
}
|
4879 |
}
|
4880 |
|
4881 |
cerber_push_lab();
|
4882 |
cerber_traffic_log();
|
4883 |
} );
|
4884 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4885 |
function cerber_catch_error( $errno, $errstr = null, $errfile = null, $errline = null ) {
|
4886 |
global $cerber_php_errors;
|
4887 |
if ( ! $errno ) {
|
@@ -5077,15 +5140,13 @@ function cerber_traffic_log(){
|
|
5077 |
else {
|
5078 |
$i ++;
|
5079 |
}
|
5080 |
-
if ( $i >
|
5081 |
break;
|
5082 |
}
|
5083 |
}
|
5084 |
if ( $cerber_php_errors ) {
|
5085 |
$cerber_php_errors = array_values( $cerber_php_errors );
|
5086 |
-
|
5087 |
-
$cerber_php_errors = array_slice( $cerber_php_errors, 0, 15 );
|
5088 |
-
}
|
5089 |
$php_err = serialize( $cerber_php_errors );
|
5090 |
}
|
5091 |
}
|
@@ -5093,13 +5154,13 @@ function cerber_traffic_log(){
|
|
5093 |
|
5094 |
// Timestamps
|
5095 |
if ( ! empty( $wp_cerber_start_stamp ) && is_numeric( $wp_cerber_start_stamp ) ) {
|
5096 |
-
$
|
5097 |
}
|
5098 |
else {
|
5099 |
-
$
|
5100 |
}
|
5101 |
|
5102 |
-
$processing = (int) ( 1000 * ( microtime( true ) - $
|
5103 |
|
5104 |
$uri = cerber_real_escape( $uri );
|
5105 |
$fields = cerber_real_escape( $fields );
|
@@ -5108,7 +5169,7 @@ function cerber_traffic_log(){
|
|
5108 |
|
5109 |
$query = 'INSERT INTO ' . CERBER_TRAF_TABLE . '
|
5110 |
(ip, ip_long, uri, request_fields , request_details, session_id, user_id, stamp, processing, request_method, http_code, wp_id, wp_type, is_bot, blog_id, php_errors )
|
5111 |
-
VALUES ("' . $ip . '", ' . $ip_long . ',"' . $uri . '","' . $fields . '","' . $details . '", "' . $session_id . '", ' . $user_id . ', ' . $
|
5112 |
|
5113 |
$ret = cerber_db_query( $query );
|
5114 |
|
@@ -5141,24 +5202,27 @@ function cerber_traffic_log(){
|
|
5141 |
* @return bool
|
5142 |
* @since 6.0
|
5143 |
*/
|
5144 |
-
function cerber_to_log($wp_type, $http_code, $user_id){
|
5145 |
-
|
5146 |
|
5147 |
$mode = crb_get_settings( 'timode' );
|
5148 |
|
5149 |
-
if ($mode == 0) {
|
5150 |
return false;
|
5151 |
}
|
5152 |
-
if ($mode == 2) {
|
5153 |
-
if ($wp_type < 515) { // Pure admin requests
|
5154 |
if ( $wp_type < 502 && ! $user_id ) { // @since 6.3
|
5155 |
return true;
|
5156 |
}
|
5157 |
-
if ( $wp_type == 500 && 'admin-ajax.php' != cerber_get_uri_script() ) { // @since 7.8
|
|
|
5158 |
return true;
|
5159 |
}
|
|
|
5160 |
return false;
|
5161 |
}
|
|
|
5162 |
return true;
|
5163 |
}
|
5164 |
|
@@ -5177,30 +5241,31 @@ function cerber_to_log($wp_type, $http_code, $user_id){
|
|
5177 |
return true;
|
5178 |
}
|
5179 |
|
5180 |
-
if ($wp_type < 515) {
|
5181 |
if ( $wp_type < 502 && ! $user_id ) { // @since 6.3
|
5182 |
if ( ! empty( $_GET ) || ! empty( $_POST ) || ! empty( $_FILES ) ) {
|
5183 |
-
|
5184 |
-
|
5185 |
}
|
5186 |
-
if ( $wp_type == 500 && 'admin-ajax.php'
|
5187 |
return true;
|
5188 |
}
|
|
|
5189 |
return false;
|
5190 |
-
|
5191 |
|
5192 |
if ( $http_code >= 400 ||
|
5193 |
-
|
5194 |
$user_id ||
|
5195 |
-
cerber_is_http_post() ||
|
5196 |
! empty( $_POST ) ||
|
5197 |
! empty( $_FILES ) ||
|
5198 |
-
|
5199 |
-
cerber_get_non_wp_fields()){
|
5200 |
return true;
|
5201 |
}
|
5202 |
|
5203 |
-
if (
|
|
|
5204 |
return true;
|
5205 |
}
|
5206 |
|
@@ -5310,13 +5375,17 @@ function cerber_get_non_wp_fields( $fields = array() ) {
|
|
5310 |
if ( is_object( $wp_query ) ) {
|
5311 |
$keys = $wp_query->fill_query_vars( array() );
|
5312 |
}
|
5313 |
-
|
5314 |
$tmp = new WP_Query();
|
5315 |
$keys = $tmp->fill_query_vars( array() );
|
5316 |
}
|
|
|
|
|
|
|
5317 |
|
5318 |
$wp_keys = array_keys( $keys ); // WordPress GET fields for frontend
|
5319 |
|
|
|
5320 |
$wp_keys[] = 'redirect_to';
|
5321 |
$wp_keys[] = 'reauth';
|
5322 |
$wp_keys[] = 'action';
|
@@ -5368,7 +5437,7 @@ function cerber_beast() {
|
|
5368 |
|
5369 |
// TI --------------------------------------------------------------------
|
5370 |
|
5371 |
-
if ( ! crb_get_settings( 'tienabled' ) ) {
|
5372 |
return;
|
5373 |
}
|
5374 |
|
@@ -5378,8 +5447,8 @@ function cerber_beast() {
|
|
5378 |
}
|
5379 |
|
5380 |
// White list by URI
|
5381 |
-
|
5382 |
-
|
5383 |
if ( $tiwhite = crb_get_settings( 'tiwhite' ) ) {
|
5384 |
foreach ( (array) $tiwhite as $item ) {
|
5385 |
if ( substr( $item, 0, 1 ) == '{' && substr( $item, - 1 ) == '}' ) {
|
@@ -5398,27 +5467,28 @@ function cerber_beast() {
|
|
5398 |
$wp_cerber->InspectRequest();
|
5399 |
|
5400 |
// Step two
|
5401 |
-
|
|
|
5402 |
|
5403 |
if ( $uri_script && $script_filename = cerber_script_filename() ) {
|
5404 |
// Scanning for executable scripts?
|
5405 |
if ( ! cerber_script_exists( $uri ) && ! cerber_is_login_request() ) {
|
5406 |
-
/*if ( crb_get_settings( 'tiipwhite' ) && crb_acl_is_white() ) {
|
5407 |
-
return;
|
5408 |
-
}*/
|
5409 |
$cerber_status = 19;
|
5410 |
cerber_log( 55 );
|
5411 |
-
|
|
|
|
|
5412 |
cerber_forbidden_page();
|
5413 |
}
|
5414 |
// Direct access to a PHP script
|
5415 |
-
|
5416 |
-
|
5417 |
-
|
5418 |
-
|
5419 |
-
|
5420 |
-
|
5421 |
-
|
|
|
5422 |
$deny = true;
|
5423 |
$cerber_status = 13;
|
5424 |
}
|
@@ -5426,10 +5496,10 @@ function cerber_beast() {
|
|
5426 |
$deny = true;
|
5427 |
$cerber_status = 15;
|
5428 |
}
|
5429 |
-
|
5430 |
-
|
5431 |
-
|
5432 |
-
|
5433 |
}
|
5434 |
}
|
5435 |
|
@@ -5456,7 +5526,7 @@ function cerber_screen_request_fields(){
|
|
5456 |
}
|
5457 |
|
5458 |
if ( ! empty( $_POST ) && ! $found ) {
|
5459 |
-
if ( WP_COMMENT_SCRIPT
|
5460 |
$white = array( 'comment' );
|
5461 |
}
|
5462 |
$cerber_in_context = 2;
|
@@ -5465,7 +5535,7 @@ function cerber_screen_request_fields(){
|
|
5465 |
|
5466 |
if ( $found ) {
|
5467 |
cerber_log( $found );
|
5468 |
-
cerber_soft_block_add( null,
|
5469 |
cerber_forbidden_page();
|
5470 |
}
|
5471 |
}
|
@@ -5808,7 +5878,7 @@ function cerber_inspect_uploads() {
|
|
5808 |
|
5809 |
if ( $found ) {
|
5810 |
cerber_log( $found );
|
5811 |
-
cerber_soft_block_add( null,
|
5812 |
}
|
5813 |
|
5814 |
return $found;
|
1 |
<?php
|
2 |
/*
|
3 |
+
Copyright (C) 2015-18 CERBER TECH INC., http://cerber.tech
|
4 |
+
Copyright (C) 2015-18 CERBER TECH INC., https://wpcerber.com
|
5 |
|
6 |
Licenced under the GNU GPL.
|
7 |
|
91 |
require_once( dirname( __FILE__ ) . '/cerber-pluggable.php' );
|
92 |
require_once( dirname( __FILE__ ) . '/common.php' );
|
93 |
require_once( dirname( __FILE__ ) . '/settings.php' );
|
94 |
+
include_once( dirname( __FILE__ ) . '/cerber-request.php' );
|
95 |
require_once( dirname( __FILE__ ) . '/cerber-lab.php' );
|
96 |
require_once( dirname( __FILE__ ) . '/whois.php' );
|
97 |
require_once( dirname( __FILE__ ) . '/jetflow.php' );
|
196 |
return $this->uri_prohibited;
|
197 |
}
|
198 |
|
199 |
+
if ( crb_acl_is_white() ) {
|
200 |
$this->uri_prohibited = false;
|
201 |
+
|
202 |
return false;
|
203 |
}
|
204 |
|
214 |
if ( !empty( $this->options['wplogin'] ) ) {
|
215 |
$cerber_status = 19;
|
216 |
cerber_log( 50 );
|
217 |
+
cerber_soft_block_add( $this->remote_ip, 702, $script );
|
218 |
$this->uri_prohibited = true;
|
219 |
return true;
|
220 |
}
|
268 |
$deny = false;
|
269 |
$act = 18;
|
270 |
if ( cerber_is_http_post() ) {
|
271 |
+
if ( ! cerber_is_allowed( null, array( 701, 703, 704 ) ) ) {
|
272 |
$deny = true;
|
273 |
$act = 18;
|
274 |
}
|
659 |
cerber_log( 40 );
|
660 |
if ($this->options['recaptcha-period'] && $this->options['recaptcha-number'] && $this->options['recaptcha-within']) {
|
661 |
$remain = cerber_get_remain_count($this->remote_ip , true, array( 40 ), $this->options['recaptcha-number'], $this->options['recaptcha-within']);
|
662 |
+
if ($remain < 1) cerber_block_add( $this->remote_ip, 705 );
|
663 |
}
|
664 |
}
|
665 |
|
869 |
if ( ! empty( $black_logged ) && cerber_is_allowed() ) {
|
870 |
$remain = cerber_get_remain_count( $ip, true, $black ); // @since 6.7.5
|
871 |
if ( $remain < 1 ) {
|
872 |
+
cerber_soft_block_add( $ip, 707 );
|
873 |
$cerber_status = 18;
|
874 |
|
875 |
return true;
|
929 |
$ret = true;
|
930 |
}
|
931 |
}
|
932 |
+
//elseif ( cerber_get_uri_script() == WP_LOGIN_SCRIPT ) {
|
933 |
+
elseif ( CRB_Request::is_script( '/' . WP_LOGIN_SCRIPT ) ) {
|
934 |
$ret = true;
|
935 |
}
|
936 |
|
993 |
//if ( $wp_cerber->isProhibited( $username ) ) {
|
994 |
if ( $username && cerber_is_prohibited( $username ) ) {
|
995 |
cerber_log( 52, $username );
|
996 |
+
cerber_block_add( null, 704, $username );
|
997 |
|
998 |
// Create with message that is identical default WP
|
999 |
return new WP_Error( 'incorrect_password', sprintf(
|
1141 |
}
|
1142 |
|
1143 |
if ( $no_user && $wp_cerber->getSettings( 'nonusers' ) ) {
|
1144 |
+
cerber_block_add( $ip, 703, $user_login); // @since 5.7
|
1145 |
}
|
1146 |
elseif ( cerber_get_remain_count($ip, false) < 1 ) { //Limit on the number of login attempts is reached
|
1147 |
+
cerber_block_add( $ip, 701, '', null, false);
|
1148 |
}
|
1149 |
|
1150 |
}
|
1188 |
}
|
1189 |
|
1190 |
if ( $no_user && $wp_cerber->getSettings( 'nonusers' ) ) {
|
1191 |
+
cerber_block_add( $ip, 703, $user_login );
|
1192 |
}
|
1193 |
elseif ( cerber_get_remain_count($ip, false) <= 1 ) { //Limit on the number of login attempts is reached
|
1194 |
+
cerber_block_add( $ip, 701, '', null, false);
|
1195 |
}
|
1196 |
}
|
1197 |
|
1200 |
function cerber_is_registration_prohibited( $sanitized_user_login ) {
|
1201 |
global $wp_cerber, $cerber_status;
|
1202 |
|
1203 |
+
/*
|
1204 |
+
if ( crb_acl_is_white() ) {
|
1205 |
+
return false;
|
1206 |
+
}*/
|
1207 |
+
|
1208 |
$code = null;
|
1209 |
$msg = null;
|
1210 |
|
1211 |
+
if ( crb_is_reg_limit_reached() ) {
|
1212 |
$cerber_status = 17;
|
1213 |
+
cerber_log( 54 );
|
1214 |
$code = 'ip_denied';
|
1215 |
+
$msg = '<strong>' . __( 'ERROR:', 'wp-cerber' ) . ' </strong>' .
|
1216 |
+
apply_filters( 'cerber_msg_denied', __( 'You are not allowed to register.', 'wp-cerber' ), 'register' );
|
1217 |
+
}
|
1218 |
+
elseif ( cerber_is_bot( 'botsreg' ) ) {
|
1219 |
+
cerber_log( 54 ); // TODO should be separate code to detect bot activity?
|
1220 |
$code = 'bot_detected';
|
1221 |
+
$msg = '<strong>' . __( 'ERROR:', 'wp-cerber' ) . ' </strong>' .
|
1222 |
+
apply_filters( 'cerber_msg_denied', __( 'You are not allowed to register.', 'wp-cerber' ), 'register' );
|
1223 |
}
|
1224 |
elseif ( ! $wp_cerber->reCaptchaValidate() ) {
|
1225 |
$code = 'incorrect_recaptcha';
|
1226 |
+
$msg = '<strong>' . __( 'ERROR:', 'wp-cerber' ) . ' </strong>' .
|
1227 |
+
$wp_cerber->reCaptchaMsg( 'register' );
|
1228 |
}
|
1229 |
elseif ( cerber_is_prohibited( $sanitized_user_login ) ) {
|
1230 |
$code = 'prohibited_login';
|
1231 |
+
$msg = '<strong>' . __( 'ERROR:', 'wp-cerber' ) . ' </strong>' .
|
1232 |
+
apply_filters( 'cerber_msg_prohibited', __( 'Username is not allowed. Please choose another one.', 'wp-cerber' ), 'register' );
|
1233 |
}
|
1234 |
+
elseif ( ! cerber_is_allowed() || lab_is_blocked( $wp_cerber->getRemoteIp() ) ) {
|
1235 |
+
cerber_log( 54 );
|
1236 |
$code = 'ip_denied';
|
1237 |
+
$msg = '<strong>' . __( 'ERROR:', 'wp-cerber' ) . ' </strong>' .
|
1238 |
+
apply_filters( 'cerber_msg_denied', __( 'You are not allowed to register.', 'wp-cerber' ), 'register' );
|
1239 |
}
|
1240 |
elseif ( ! cerber_geo_allowed( 'geo_register' ) ) {
|
1241 |
$cerber_status = 16; // TODO: refactor cerber_log, include this status as a second parameter
|
1242 |
+
cerber_log( 54 ); // TODO should be separate code?
|
1243 |
$code = 'country_denied';
|
1244 |
+
$msg = '<strong>' . __( 'ERROR:', 'wp-cerber' ) . ' </strong>' .
|
1245 |
+
apply_filters( 'cerber_msg_denied', __( 'You are not allowed to register.', 'wp-cerber' ), 'register' );
|
1246 |
}
|
1247 |
|
1248 |
if ( $code ) {
|
1249 |
return array( $code, $msg );
|
1250 |
}
|
1251 |
|
1252 |
+
return false;
|
1253 |
}
|
1254 |
|
1255 |
/**
|
1289 |
|
1290 |
$prohibited = cerber_is_registration_prohibited( $sanitized_user_login );
|
1291 |
|
1292 |
+
if ( $prohibited ) {
|
1293 |
+
return new WP_Error( $prohibited[0], $prohibited[1] );
|
1294 |
+
}
|
1295 |
|
1296 |
return $errors;
|
1297 |
}
|
1449 |
}
|
1450 |
elseif ( cerber_is_bot('botscomm') ) {
|
1451 |
$remain = cerber_get_remain_count( null, true, array( 16 ), 3, 60 );
|
1452 |
+
if ($remain < 1) cerber_block_add( null, 706, '', 60 );
|
1453 |
$deny = 16;
|
1454 |
}
|
1455 |
elseif ( ! $wp_cerber->reCaptchaValidate( 'comment' , true ) ) {
|
1569 |
return;
|
1570 |
}
|
1571 |
|
1572 |
+
if ( crb_acl_is_white() ) {
|
|
|
|
|
1573 |
return;
|
1574 |
}
|
1575 |
|
1643 |
function cerber_post_control() {
|
1644 |
global $cerber_status;
|
1645 |
|
1646 |
+
if ( ! cerber_is_http_post() || crb_acl_is_white() ) {
|
1647 |
return;
|
1648 |
}
|
1649 |
|
1743 |
|
1744 |
if ( class_exists( 'WooCommerce' ) ) {
|
1745 |
if ( cerber_is_permalink_enabled() ) {
|
1746 |
+
//if ( 0 === strpos( cerber_get_site_root() . cerber_purify_uri(), get_home_url() . '/wc-api/' ) ) {
|
1747 |
+
if ( 0 === strpos( CRB_Request::full_url(), get_home_url() . '/wc-api/' ) ) {
|
1748 |
return true;
|
1749 |
}
|
1750 |
}
|
1780 |
|
1781 |
}
|
1782 |
|
1783 |
+
if ( cerber_get_uri_script() ) {
|
1784 |
+
return 1;
|
1785 |
+
}
|
1786 |
+
|
1787 |
// Check for third party exceptions
|
1788 |
|
1789 |
if ( class_exists( 'WooCommerce' ) ) {
|
1790 |
|
1791 |
+
if ( ! empty( $_GET['wc-ajax'] ) &&
|
1792 |
+
//$_GET['wc-ajax'] == 'get_refreshed_fragments' &&
|
1793 |
count( $_GET ) == 1 &&
|
1794 |
empty( $_POST )
|
1795 |
) {
|
1798 |
}
|
1799 |
|
1800 |
if ( cerber_is_permalink_enabled() ) {
|
1801 |
+
//if ( function_exists( 'wc_get_page_id' ) && 0 === strpos( cerber_get_site_root() . cerber_purify_uri(), get_permalink( wc_get_page_id( 'checkout' ) ) ) ) {
|
1802 |
+
if ( function_exists( 'wc_get_page_id' ) && 0 === strpos( CRB_Request::full_url(), get_permalink( wc_get_page_id( 'checkout' ) ) ) ) {
|
1803 |
return 2;
|
1804 |
}
|
1805 |
}
|
1811 |
}
|
1812 |
|
1813 |
if ( class_exists( 'GFForms' ) ) {
|
1814 |
+
if ( count( $_GET ) == 2 &&
|
1815 |
+
! empty( $_GET['gf_page'] ) &&
|
1816 |
+
! empty( $_GET['id'] ) &&
|
1817 |
+
is_user_logged_in()
|
|
|
|
|
|
|
1818 |
) {
|
1819 |
|
1820 |
return 2;
|
2230 |
return true;
|
2231 |
}
|
2232 |
|
2233 |
+
if ( crb_acl_is_white() ) {
|
|
|
2234 |
return true;
|
2235 |
}
|
2236 |
|
2494 |
$result = cerber_db_query( 'INSERT INTO ' . CERBER_BLOCKS_TABLE . ' (ip,block_until,reason,reason_id) VALUES ("' . $ip . '",' . $until . ',"' . $reason . '",' . absint( $reason_id ) . ')' );
|
2495 |
|
2496 |
if ( $result ) {
|
2497 |
+
$cerber_blocked = $reason_id;
|
2498 |
cerber_log( $activity, null, null, $ip_address );
|
|
|
2499 |
$wp_cerber->setLocked();
|
2500 |
do_action( 'cerber_ip_locked', array( 'IP' => $ip_address, 'reason' => $reason ) );
|
2501 |
$result = true;
|
2629 |
$allowed = absint( crb_get_settings( 'attempts' ) );
|
2630 |
}
|
2631 |
|
2632 |
+
if ( $check_acl && crb_acl_is_white( $ip ) ) {
|
2633 |
return $allowed; // whitelist = infinity attempts
|
2634 |
}
|
2635 |
|
2884 |
return true;
|
2885 |
}
|
2886 |
|
2887 |
+
/**
|
2888 |
+
* Is an IP whitelisted?
|
2889 |
+
*
|
2890 |
+
* @param $ip string
|
2891 |
+
*
|
2892 |
+
* @return bool
|
2893 |
+
*/
|
2894 |
+
function crb_acl_is_white( $ip = null ){
|
2895 |
+
|
2896 |
+
if ( cerber_acl_check( $ip, 'W' ) ) {
|
2897 |
return true;
|
2898 |
}
|
2899 |
+
|
2900 |
+
return false;
|
2901 |
+
}
|
2902 |
+
|
2903 |
+
/**
|
2904 |
+
* Is an IP blacklisted?
|
2905 |
+
*
|
2906 |
+
* @param $ip string
|
2907 |
+
*
|
2908 |
+
* @return bool
|
2909 |
+
*/
|
2910 |
+
function crb_acl_is_black( $ip = '' ) {
|
2911 |
+
$tag = cerber_acl_check( $ip );
|
2912 |
+
if ( $tag === 'W' ) {
|
2913 |
return false;
|
2914 |
}
|
2915 |
+
elseif ( $tag === 'B' ) {
|
2916 |
+
return true;
|
2917 |
+
}
|
2918 |
|
2919 |
+
return false;
|
2920 |
}
|
2921 |
|
2922 |
/**
|
2952 |
$long = ip2long( $ip );
|
2953 |
|
2954 |
if ( $tag ) {
|
2955 |
+
if ( $tag !== 'W' && $tag !== 'B' ) {
|
2956 |
$ret = false;
|
2957 |
}
|
2958 |
elseif ( cerber_db_get_var( 'SELECT ip FROM ' . CERBER_ACL_TABLE . ' WHERE ip_long_begin <= '.$long.' AND '.$long.' <= ip_long_end AND tag = "'.$tag.'" LIMIT 1' ) ) {
|
3019 |
}
|
3020 |
}
|
3021 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3022 |
/*
|
3023 |
* Logging directly to the file
|
3024 |
*
|
3390 |
if ( $type == 'lockout' && ! is_admin() ) {
|
3391 |
$rate = absint( $wp_cerber->getSettings( 'emailrate' ) );
|
3392 |
if ( $rate ) {
|
3393 |
+
$last_em = cerber_get_set( '_cerber_last', 1, false );
|
3394 |
$period = 60 * 60; // per hour
|
3395 |
if ( $last_em ) {
|
3396 |
if ( $last_em > ( time() - $period / $rate ) ) {
|
3397 |
return false;
|
3398 |
}
|
3399 |
}
|
3400 |
+
cerber_update_set( '_cerber_last', time(), 1, false, time() + $period );
|
3401 |
}
|
3402 |
}
|
3403 |
|
3685 |
// Maintenance routines ----------------------------------------------------------------
|
3686 |
|
3687 |
function cerber_init_cron(){
|
3688 |
+
$next_hour = intval( floor( ( time() + 3600 ) / 3600 ) * 3600 );
|
3689 |
|
3690 |
if ( ! wp_next_scheduled( 'cerber_hourly_1' ) ) {
|
3691 |
wp_schedule_event( $next_hour, 'hourly', 'cerber_hourly_1' );
|
3704 |
function cerber_do_hourly( $force = false ) {
|
3705 |
global $wpdb, $wp_cerber;
|
3706 |
|
3707 |
+
$t = 'cerber_hourly_1';
|
3708 |
+
$start = time();
|
3709 |
+
|
3710 |
// Avoid multiple executions on a weird hosting
|
3711 |
+
if ( ( $last = get_site_transient( $t ) ) && date( 'G', $last[0] ) == date( 'G' ) ) {
|
3712 |
return;
|
3713 |
}
|
3714 |
|
3715 |
+
set_site_transient( $t, array( $start ), 2 * 3600 );
|
3716 |
+
|
3717 |
if ( is_multisite() ) {
|
3718 |
if ( ! $force && get_site_transient( 'cerber_multisite' ) ) {
|
3719 |
return;
|
3721 |
set_site_transient( 'cerber_multisite', 'executed', 3600 );
|
3722 |
}
|
3723 |
|
3724 |
+
$time = time();
|
|
|
|
|
|
|
|
|
3725 |
$days = absint( crb_get_settings( 'keeplog' ) );
|
3726 |
if ( $days > 0 ) {
|
3727 |
$wpdb->query( 'DELETE FROM ' . CERBER_LOG_TABLE . ' WHERE stamp < ' . ( $time - $days * 24 * 3600 ) );
|
3731 |
$wpdb->query( 'DELETE FROM ' . CERBER_TRAF_TABLE . ' WHERE stamp < ' . ( $time - $days * 24 * 3600 ) );
|
3732 |
}
|
3733 |
|
|
|
|
|
3734 |
$wpdb->query( 'DELETE FROM ' . CERBER_LAB_IP_TABLE . ' WHERE expires < ' . $time );
|
3735 |
|
3736 |
if ( $wp_cerber->getSettings( 'trashafter-enabled') && absint($wp_cerber->getSettings('trashafter'))) {
|
3747 |
|
3748 |
cerber_up_data();
|
3749 |
|
3750 |
+
// Keep the size of the log file small
|
3751 |
cerber_truncate_log();
|
3752 |
|
3753 |
+
set_site_transient( $t, array( $start, time() ), 2 * 3600 );
|
3754 |
}
|
3755 |
|
3756 |
add_action( 'cerber_hourly_2', function () {
|
3757 |
+
$t = 'cerber_hourly_2';
|
3758 |
+
$start = time();
|
3759 |
|
3760 |
+
if ( ( $last = get_site_transient( $t ) ) && date( 'G', $last[0] ) == date( 'G' ) ) {
|
|
|
3761 |
return;
|
3762 |
}
|
3763 |
|
3764 |
+
set_site_transient( $t, array( $start ), 2 * 3600 );
|
3765 |
+
|
3766 |
$gmt_offset = get_option( 'gmt_offset' ) * 3600;
|
3767 |
|
3768 |
if ( crb_get_settings( 'enable-report' )
|
3796 |
}
|
3797 |
}
|
3798 |
|
3799 |
+
if ( crb_get_settings( 'cerberlab' ) || lab_lab() ) {
|
3800 |
+
lab_check_nodes( true, true );
|
3801 |
+
}
|
3802 |
+
|
3803 |
+
cerber_push_lab();
|
3804 |
+
|
3805 |
cerber_cloud_sync();
|
3806 |
|
3807 |
// Simply keep folder locked
|
3809 |
|
3810 |
cerber_db_query( 'DELETE FROM ' . CERBER_QMEM_TABLE . ' WHERE stamp < ' . ( time() - 30 * 60 ) );
|
3811 |
|
3812 |
+
set_site_transient( $t, array( $start, time() ), 2 * 3600 );
|
3813 |
});
|
3814 |
|
3815 |
add_action( 'cerber_daily', 'cerber_do_daily' );
|
3816 |
function cerber_do_daily() {
|
3817 |
+
$t = 'cerber_daily_1';
|
3818 |
+
$start = time();
|
3819 |
+
set_site_transient( $t, array( $start ), 48 * 3600 );
|
3820 |
|
3821 |
cerber_do_hourly( true );
|
3822 |
|
3823 |
$time = time();
|
3824 |
|
|
|
|
|
3825 |
lab_validate_lic();
|
3826 |
|
3827 |
cerber_db_query( 'DELETE FROM ' . CERBER_LAB_NET_TABLE . ' WHERE expires < ' . $time );
|
3855 |
// TODO: implement holding previous values for a while
|
3856 |
// cerber_antibot_gene();
|
3857 |
|
3858 |
+
set_site_transient( $t, array( $start, time() ), 48 * 3600 );
|
3859 |
}
|
3860 |
|
3861 |
/**
|
3870 |
* @since 3.0
|
3871 |
*/
|
3872 |
function cerber_log( $activity, $login = '', $user_id = 0, $ip = null ) {
|
3873 |
+
global $user_ID, $cerber_logged, $cerber_blocked;
|
3874 |
static $logged = array();
|
3875 |
+
|
3876 |
$wp_cerber = get_wp_cerber();
|
3877 |
|
3878 |
$activity = absint( $activity );
|
3903 |
}
|
3904 |
|
3905 |
if ( empty( $user_id ) ) {
|
3906 |
+
$user_id = ( $user_ID ) ? $user_ID : 0;
|
|
|
|
|
|
|
|
|
|
|
3907 |
}
|
3908 |
|
3909 |
$user_id = absint( $user_id );
|
3910 |
|
3911 |
+
$stamp = microtime( true );
|
3912 |
|
3913 |
$pos = strpos($_SERVER['REQUEST_URI'],'?');
|
3914 |
if ($pos) {
|
3919 |
}
|
3920 |
$url = strip_tags($_SERVER['HTTP_HOST'] . $path);
|
3921 |
|
3922 |
+
$status = 0;
|
3923 |
+
if ( $activity != 10 && $activity != 11 ) {
|
3924 |
+
$status = cerber_get_status( $ip );
|
3925 |
}
|
3926 |
+
elseif ( $cerber_blocked ) {
|
3927 |
+
$status = $cerber_blocked;
|
3928 |
+
}
|
3929 |
|
3930 |
+
$details = $status .'|0|0|0|'. $url;
|
3931 |
|
3932 |
$country = lab_get_country( $ip );
|
3933 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3934 |
$login = cerber_real_escape( $login );
|
3935 |
$details = cerber_real_escape( $details );
|
3936 |
+
$ret = cerber_db_query( 'INSERT INTO ' . CERBER_LOG_TABLE . ' (ip, ip_long, user_login, user_id, stamp, activity, session_id, country, details)
|
3937 |
+
VALUES ("' . $ip . '",' . $ip_long . ',"' . $login . '",' . $user_id . ',"' . $stamp . '",' . $activity . ',"' . $wp_cerber->getSessionID() . '","' . $country . '","' . $details . '")' );
|
3938 |
|
3939 |
if ( ! $ret ) {
|
3940 |
+
cerber_watchdog();
|
3941 |
+
}
|
3942 |
|
3943 |
// Subscriptions - notifications for admin ---------------------------------------------------
|
3944 |
|
4865 |
}
|
4866 |
|
4867 |
register_shutdown_function( function () {
|
|
|
|
|
4868 |
|
4869 |
+
cerber_extra_vision();
|
|
|
|
|
|
|
|
|
|
|
4870 |
|
4871 |
+
// Error monitoring
|
4872 |
+
if ( 400 <= http_response_code()
|
4873 |
+
&& ! cerber_is_wp_cron()
|
4874 |
+
&& ( $mode = crb_get_settings( 'tierrmon' ) ) ) {
|
4875 |
+
cerber_error_shield( $mode );
|
|
|
|
|
|
|
|
|
4876 |
}
|
4877 |
|
4878 |
cerber_push_lab();
|
4879 |
cerber_traffic_log();
|
4880 |
} );
|
4881 |
|
4882 |
+
function cerber_error_shield( $mode = 1 ) {
|
4883 |
+
global $cerber_status, $cerber_blocked;
|
4884 |
+
|
4885 |
+
if ( ! $mode || ( crb_get_settings( 'tierrnoauth' ) && is_user_logged_in() ) ) {
|
4886 |
+
return;
|
4887 |
+
}
|
4888 |
+
|
4889 |
+
$time = 900;
|
4890 |
+
$limit = 3; // allowed within $time
|
4891 |
+
$codes = array();
|
4892 |
+
if ( $mode == 1 ) { // safe mode
|
4893 |
+
$time = 300;
|
4894 |
+
$limit = 7;
|
4895 |
+
$codes = array( 404, 500 );
|
4896 |
+
}
|
4897 |
+
|
4898 |
+
$code = http_response_code();
|
4899 |
+
if ( $code < 400 || ( $codes && ! in_array( $code, $codes ) ) ) {
|
4900 |
+
return;
|
4901 |
+
}
|
4902 |
+
|
4903 |
+
$go = false;
|
4904 |
+
if ( cerber_is_http_post() ) {
|
4905 |
+
$go = true;
|
4906 |
+
}
|
4907 |
+
|
4908 |
+
if ( ! $go && cerber_get_uri_script() ) {
|
4909 |
+
$go = true;
|
4910 |
+
}
|
4911 |
+
|
4912 |
+
if ( ! $go ) {
|
4913 |
+
if ( $mode == 1 ) {
|
4914 |
+
if ( cerber_get_non_wp_fields() ) {
|
4915 |
+
$go = true;
|
4916 |
+
}
|
4917 |
+
}
|
4918 |
+
else {
|
4919 |
+
if ( ! empty( $_GET ) ) {
|
4920 |
+
$go = true;
|
4921 |
+
}
|
4922 |
+
}
|
4923 |
+
}
|
4924 |
+
|
4925 |
+
if ( ! $go && cerber_is_rest_url() ) {
|
4926 |
+
$go = true;
|
4927 |
+
}
|
4928 |
+
|
4929 |
+
if ( ! $go ) {
|
4930 |
+
return;
|
4931 |
+
}
|
4932 |
+
|
4933 |
+
$ip = cerber_get_remote_ip();
|
4934 |
+
cerber_db_query( 'INSERT INTO ' . CERBER_QMEM_TABLE . ' (ip, http_code, stamp)
|
4935 |
+
VALUES ("' . $ip . '",' . intval( http_response_code() ) . ',' . time() . ')' );
|
4936 |
+
|
4937 |
+
if ( ! $cerber_blocked ) {
|
4938 |
+
$t = time() - $time;
|
4939 |
+
$c = cerber_db_get_var( 'SELECT COUNT(ip) FROM ' . CERBER_QMEM_TABLE . ' WHERE ip = "' . $ip . '" AND stamp > ' . $t );
|
4940 |
+
if ( $c >= $limit ) {
|
4941 |
+
cerber_soft_block_add( $ip, 711 );
|
4942 |
+
$cerber_status = 18;
|
4943 |
+
}
|
4944 |
+
}
|
4945 |
+
|
4946 |
+
}
|
4947 |
+
|
4948 |
function cerber_catch_error( $errno, $errstr = null, $errfile = null, $errline = null ) {
|
4949 |
global $cerber_php_errors;
|
4950 |
if ( ! $errno ) {
|
5140 |
else {
|
5141 |
$i ++;
|
5142 |
}
|
5143 |
+
if ( $i > 25 ) { // Save no more errors
|
5144 |
break;
|
5145 |
}
|
5146 |
}
|
5147 |
if ( $cerber_php_errors ) {
|
5148 |
$cerber_php_errors = array_values( $cerber_php_errors );
|
5149 |
+
$cerber_php_errors = array_slice( $cerber_php_errors, 0, 25 );
|
|
|
|
|
5150 |
$php_err = serialize( $cerber_php_errors );
|
5151 |
}
|
5152 |
}
|
5154 |
|
5155 |
// Timestamps
|
5156 |
if ( ! empty( $wp_cerber_start_stamp ) && is_numeric( $wp_cerber_start_stamp ) ) {
|
5157 |
+
$start = (float) $wp_cerber_start_stamp; // define this variable: $wp_cerber_start_stamp = microtime( true ); in wp-config.php
|
5158 |
}
|
5159 |
else {
|
5160 |
+
$start = cerber_request_time();
|
5161 |
}
|
5162 |
|
5163 |
+
$processing = (int) ( 1000 * ( microtime( true ) - $start ) );
|
5164 |
|
5165 |
$uri = cerber_real_escape( $uri );
|
5166 |
$fields = cerber_real_escape( $fields );
|
5169 |
|
5170 |
$query = 'INSERT INTO ' . CERBER_TRAF_TABLE . '
|
5171 |
(ip, ip_long, uri, request_fields , request_details, session_id, user_id, stamp, processing, request_method, http_code, wp_id, wp_type, is_bot, blog_id, php_errors )
|
5172 |
+
VALUES ("' . $ip . '", ' . $ip_long . ',"' . $uri . '","' . $fields . '","' . $details . '", "' . $session_id . '", ' . $user_id . ', ' . $start . ',' . $processing . ', "' . $method . '", ' . $http_code . ',' . $wp_id . ', ' . $wp_type . ', ' . $bot . ', ' . absint( $blog_id ) . ',"' . $php_err . '")';
|
5173 |
|
5174 |
$ret = cerber_db_query( $query );
|
5175 |
|
5202 |
* @return bool
|
5203 |
* @since 6.0
|
5204 |
*/
|
5205 |
+
function cerber_to_log( $wp_type, $http_code, $user_id ) {
|
5206 |
+
global $cerber_logged, $cerber_blocked, $wp_cerber;
|
5207 |
|
5208 |
$mode = crb_get_settings( 'timode' );
|
5209 |
|
5210 |
+
if ( $mode == 0 ) {
|
5211 |
return false;
|
5212 |
}
|
5213 |
+
if ( $mode == 2 ) {
|
5214 |
+
if ( $wp_type < 515 ) { // Pure admin requests
|
5215 |
if ( $wp_type < 502 && ! $user_id ) { // @since 6.3
|
5216 |
return true;
|
5217 |
}
|
5218 |
+
//if ( $wp_type == 500 && 'admin-ajax.php' != cerber_get_uri_script() ) { // @since 7.8
|
5219 |
+
if ( $wp_type == 500 && ! CRB_Request::is_script( '/wp-admin/admin-ajax.php' ) ) { // @since 7.9.1
|
5220 |
return true;
|
5221 |
}
|
5222 |
+
|
5223 |
return false;
|
5224 |
}
|
5225 |
+
|
5226 |
return true;
|
5227 |
}
|
5228 |
|
5241 |
return true;
|
5242 |
}
|
5243 |
|
5244 |
+
if ( $wp_type < 515 ) {
|
5245 |
if ( $wp_type < 502 && ! $user_id ) { // @since 6.3
|
5246 |
if ( ! empty( $_GET ) || ! empty( $_POST ) || ! empty( $_FILES ) ) {
|
5247 |
+
return true;
|
5248 |
+
}
|
5249 |
}
|
5250 |
+
if ( $wp_type == 500 && ! CRB_Request::is_script( '/wp-admin/admin-ajax.php' ) ) { // @since 7.8
|
5251 |
return true;
|
5252 |
}
|
5253 |
+
|
5254 |
return false;
|
5255 |
+
}
|
5256 |
|
5257 |
if ( $http_code >= 400 ||
|
5258 |
+
$wp_type < 600 ||
|
5259 |
$user_id ||
|
|
|
5260 |
! empty( $_POST ) ||
|
5261 |
! empty( $_FILES ) ||
|
5262 |
+
isset( $_GET['s'] )
|
5263 |
+
|| cerber_get_non_wp_fields() ) {
|
5264 |
return true;
|
5265 |
}
|
5266 |
|
5267 |
+
if ( cerber_is_http_post()
|
5268 |
+
|| cerber_get_uri_script() ) {
|
5269 |
return true;
|
5270 |
}
|
5271 |
|
5375 |
if ( is_object( $wp_query ) ) {
|
5376 |
$keys = $wp_query->fill_query_vars( array() );
|
5377 |
}
|
5378 |
+
elseif ( class_exists( 'WP_Query' ) ) {
|
5379 |
$tmp = new WP_Query();
|
5380 |
$keys = $tmp->fill_query_vars( array() );
|
5381 |
}
|
5382 |
+
else {
|
5383 |
+
$keys = array();
|
5384 |
+
}
|
5385 |
|
5386 |
$wp_keys = array_keys( $keys ); // WordPress GET fields for frontend
|
5387 |
|
5388 |
+
// Some well-known fields
|
5389 |
$wp_keys[] = 'redirect_to';
|
5390 |
$wp_keys[] = 'reauth';
|
5391 |
$wp_keys[] = 'action';
|
5437 |
|
5438 |
// TI --------------------------------------------------------------------
|
5439 |
|
5440 |
+
if ( ! $ti_mode = crb_get_settings( 'tienabled' ) ) {
|
5441 |
return;
|
5442 |
}
|
5443 |
|
5447 |
}
|
5448 |
|
5449 |
// White list by URI
|
5450 |
+
//$uri = cerber_purify_uri();
|
5451 |
+
$uri = CRB_Request::URI();
|
5452 |
if ( $tiwhite = crb_get_settings( 'tiwhite' ) ) {
|
5453 |
foreach ( (array) $tiwhite as $item ) {
|
5454 |
if ( substr( $item, 0, 1 ) == '{' && substr( $item, - 1 ) == '}' ) {
|
5467 |
$wp_cerber->InspectRequest();
|
5468 |
|
5469 |
// Step two
|
5470 |
+
//$uri_script = cerber_get_uri_script();
|
5471 |
+
$uri_script = CRB_Request::script();
|
5472 |
|
5473 |
if ( $uri_script && $script_filename = cerber_script_filename() ) {
|
5474 |
// Scanning for executable scripts?
|
5475 |
if ( ! cerber_script_exists( $uri ) && ! cerber_is_login_request() ) {
|
|
|
|
|
|
|
5476 |
$cerber_status = 19;
|
5477 |
cerber_log( 55 );
|
5478 |
+
if ( $ti_mode > 1 ) {
|
5479 |
+
cerber_soft_block_add( null, 708 );
|
5480 |
+
}
|
5481 |
cerber_forbidden_page();
|
5482 |
}
|
5483 |
// Direct access to a PHP script
|
5484 |
+
$deny = false;
|
5485 |
+
if ( crb_acl_is_black() ) {
|
5486 |
+
$deny = true;
|
5487 |
+
$cerber_status = 14;
|
5488 |
+
}
|
5489 |
+
//elseif ( ! in_array( $uri_script, cerber_get_wp_scripts() ) ) {
|
5490 |
+
elseif ( ! CRB_Request::is_script( cerber_get_wp_scripts() ) ) {
|
5491 |
+
if ( ! cerber_is_allowed() ) {
|
5492 |
$deny = true;
|
5493 |
$cerber_status = 13;
|
5494 |
}
|
5496 |
$deny = true;
|
5497 |
$cerber_status = 15;
|
5498 |
}
|
5499 |
+
}
|
5500 |
+
if ( $deny ) {
|
5501 |
+
cerber_log( 50 );
|
5502 |
+
cerber_forbidden_page();
|
5503 |
}
|
5504 |
}
|
5505 |
|
5526 |
}
|
5527 |
|
5528 |
if ( ! empty( $_POST ) && ! $found ) {
|
5529 |
+
if ( CRB_Request::is_script( '/' . WP_COMMENT_SCRIPT ) ) {
|
5530 |
$white = array( 'comment' );
|
5531 |
}
|
5532 |
$cerber_in_context = 2;
|
5535 |
|
5536 |
if ( $found ) {
|
5537 |
cerber_log( $found );
|
5538 |
+
cerber_soft_block_add( null, 709);
|
5539 |
cerber_forbidden_page();
|
5540 |
}
|
5541 |
}
|
5878 |
|
5879 |
if ( $found ) {
|
5880 |
cerber_log( $found );
|
5881 |
+
cerber_soft_block_add( null, 710);
|
5882 |
}
|
5883 |
|
5884 |
return $found;
|
cerber-news.php
CHANGED
@@ -1,6 +1,7 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
-
|
|
|
4 |
|
5 |
Licenced under the GNU GPL.
|
6 |
|
@@ -109,6 +110,14 @@ function cerber_push_the_news( $version ) {
|
|
109 |
$news['7.9'][] = 'Fix: The number of email notifications per hour can exceed the configured limit.';
|
110 |
$news['7.9'][] = 'Update: Translations have been updated. Thanks to Felipe Turcheti and Eirik Vorland.';
|
111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
if ( ! empty( $news[ $version ] ) ) {
|
113 |
//$text = '<h3>What\'s new in WP Cerber '.$version.'</h3>';
|
114 |
|
1 |
<?php
|
2 |
/*
|
3 |
+
Copyright (C) 2015-18 CERBER TECH INC., http://cerber.tech
|
4 |
+
Copyright (C) 2015-18 CERBER TECH INC., https://wpcerber.com
|
5 |
|
6 |
Licenced under the GNU GPL.
|
7 |
|
110 |
$news['7.9'][] = 'Fix: The number of email notifications per hour can exceed the configured limit.';
|
111 |
$news['7.9'][] = 'Update: Translations have been updated. Thanks to Felipe Turcheti and Eirik Vorland.';
|
112 |
|
113 |
+
$news['7.9.3'][] = 'New settings for the Traffic Inspector firewall allow you to fine-tune its behavior. You can enable less or more restrictive firewall rules.';
|
114 |
+
$news['7.9.3'][] = 'Troubleshooting of possible issues with scheduled maintenance tasks has been improved.';
|
115 |
+
$news['7.9.3'][] = 'To make troubleshooting easier the plugin logs not only a lockout event but also logs and displays the reason for the lockout.';
|
116 |
+
$news['7.9.3'][] = 'Compatibility with ManageWP and Gravity Forms has been improved.';
|
117 |
+
$news['7.9.3'][] = 'The layout of the Activity and Live Traffic pages has been improved.';
|
118 |
+
$news['7.9.3'][] = 'Bug fixed: The malware scanner wrongly prevents PHP files with few specific names in one particular location from being deleted after a manual scan or during the automatic malware removal.';
|
119 |
+
$news['7.9.3'][] = 'Bug fixed: The number of email notifications might be incorrectly limited to one email per hour.';
|
120 |
+
|
121 |
if ( ! empty( $news[ $version ] ) ) {
|
122 |
//$text = '<h3>What\'s new in WP Cerber '.$version.'</h3>';
|
123 |
|
cerber-pluggable.php
CHANGED
@@ -1,6 +1,7 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
-
|
|
|
4 |
|
5 |
Licenced under the GNU GPL.
|
6 |
|
1 |
<?php
|
2 |
/*
|
3 |
+
Copyright (C) 2015-18 CERBER TECH INC., http://cerber.tech
|
4 |
+
Copyright (C) 2015-18 CERBER TECH INC., https://wpcerber.com
|
5 |
|
6 |
Licenced under the GNU GPL.
|
7 |
|
cerber-request.php
ADDED
@@ -0,0 +1,103 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
final class CRB_Request {
|
4 |
+
private static $remote_ip = null;
|
5 |
+
private static $clean_uri = null; // No junk and GET parameters
|
6 |
+
private static $uri_script = null; // With path and the starting slash (if script)
|
7 |
+
private static $site_root = null; // without trailing slash and path
|
8 |
+
private static $sub_folder = null; // without trailing slash and site domain
|
9 |
+
|
10 |
+
static function URI() {
|
11 |
+
if ( isset( self::$clean_uri ) ) {
|
12 |
+
return self::$clean_uri;
|
13 |
+
}
|
14 |
+
|
15 |
+
return self::purify();
|
16 |
+
}
|
17 |
+
|
18 |
+
// Clean up the requested URI from GET parameters and extra slashes
|
19 |
+
// @since 7.9.2
|
20 |
+
static function purify() {
|
21 |
+
$uri = $_SERVER['REQUEST_URI'];
|
22 |
+
|
23 |
+
if ( $pos = strpos( $uri, '?' ) ) {
|
24 |
+
$uri = substr( $uri, 0, $pos );
|
25 |
+
}
|
26 |
+
|
27 |
+
if ( $pos = strpos( $uri, '#' ) ) {
|
28 |
+
$uri = substr( $uri, 0, $pos );
|
29 |
+
}
|
30 |
+
|
31 |
+
$uri = rtrim( $uri, '/' );
|
32 |
+
self::$clean_uri = preg_replace( '/\/+/', '/', $uri );
|
33 |
+
|
34 |
+
return self::$clean_uri;
|
35 |
+
}
|
36 |
+
|
37 |
+
static function parse_site_url() {
|
38 |
+
|
39 |
+
if ( isset( self::$site_root ) ) {
|
40 |
+
return;
|
41 |
+
}
|
42 |
+
|
43 |
+
$home_url = cerber_get_home_url();
|
44 |
+
$p1 = strpos( $home_url, '//' );
|
45 |
+
$p2 = strpos( $home_url, '/', $p1 + 2 );
|
46 |
+
if ( $p2 !== false ) {
|
47 |
+
self::$site_root = substr( $home_url, 0, $p2 );
|
48 |
+
self::$sub_folder = substr( $home_url, $p2 );
|
49 |
+
}
|
50 |
+
else {
|
51 |
+
self::$site_root = $home_url;
|
52 |
+
self::$sub_folder = '';
|
53 |
+
}
|
54 |
+
|
55 |
+
}
|
56 |
+
|
57 |
+
static function full_url() {
|
58 |
+
|
59 |
+
self::parse_site_url();
|
60 |
+
|
61 |
+
return self::$site_root . self::URI();
|
62 |
+
|
63 |
+
}
|
64 |
+
|
65 |
+
static function script() {
|
66 |
+
|
67 |
+
if ( isset( self::$uri_script ) ) {
|
68 |
+
return self::$uri_script;
|
69 |
+
}
|
70 |
+
|
71 |
+
if ( cerber_detect_exec_extension( self::URI() ) ) {
|
72 |
+
self::$uri_script = strtolower( self::URI() );
|
73 |
+
}
|
74 |
+
else {
|
75 |
+
self::$uri_script = false;
|
76 |
+
}
|
77 |
+
|
78 |
+
return self::$uri_script;
|
79 |
+
}
|
80 |
+
|
81 |
+
// @since 7.9.2
|
82 |
+
static function is_script( $val ) {
|
83 |
+
if ( ! self::script() ) {
|
84 |
+
return false;
|
85 |
+
}
|
86 |
+
$uri_script = self::$uri_script;
|
87 |
+
self::parse_site_url();
|
88 |
+
if ( self::$sub_folder ) {
|
89 |
+
$uri_script = substr( self::$uri_script, strlen( self::$sub_folder ) );
|
90 |
+
}
|
91 |
+
|
92 |
+
if ( is_array( $val ) ) {
|
93 |
+
if ( in_array( $uri_script, $val ) ) {
|
94 |
+
return true;
|
95 |
+
}
|
96 |
+
}
|
97 |
+
elseif ( $uri_script == $val ) {
|
98 |
+
return true;
|
99 |
+
}
|
100 |
+
|
101 |
+
return false;
|
102 |
+
}
|
103 |
+
}
|
cerber-scanner.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
-
|
4 |
-
|
5 |
|
6 |
Licenced under the GNU GPL.
|
7 |
|
@@ -366,7 +366,7 @@ add_action( 'plugins_loaded', function () {
|
|
366 |
function cerber_scanner( $control, $mode ) {
|
367 |
global $cerber_db_errors, $cerber_scan_mode;
|
368 |
|
369 |
-
if (
|
370 |
register_shutdown_function( function () {
|
371 |
if ( http_response_code() != 200 ) {
|
372 |
crb_scan_debug( 'SERVER ERROR! The scan is not completed.' );
|
@@ -380,11 +380,12 @@ function cerber_scanner( $control, $mode ) {
|
|
380 |
$errors = array();
|
381 |
|
382 |
if ( function_exists( 'wp_raise_memory_limit' ) ) {
|
383 |
-
wp_raise_memory_limit( 'admin' )
|
|
|
|
|
|
|
|
|
384 |
}
|
385 |
-
else {
|
386 |
-
$errors[] = 'Unable to raise memory limit';
|
387 |
-
}
|
388 |
|
389 |
if ( ! $mode ) {
|
390 |
$mode = 'quick';
|
@@ -2229,10 +2230,8 @@ function cerber_inspect_php( $file_name = '' ) {
|
|
2229 |
}
|
2230 |
if ( $token[0] == T_CONSTANT_ENCAPSED_STRING ) {
|
2231 |
if ( $val = cerber_is_base64_encoded( trim( $token[1], '\'"' ) ) ) {
|
2232 |
-
//if ( cerber_check_string( $token[1] ) ) {
|
2233 |
if ( cerber_inspect_value( $val ) ) {
|
2234 |
$xdata[] = array( 1, 'base64_encoded_php', $token[2], $token[0], $token[1] );
|
2235 |
-
//$severity[] = 10;
|
2236 |
$severity[] = CERBER_MALWR_DETECTED;
|
2237 |
}
|
2238 |
/*
|
@@ -2380,55 +2379,6 @@ function cerber_inspect_php( $file_name = '' ) {
|
|
2380 |
|
2381 |
}
|
2382 |
|
2383 |
-
// Obsolete
|
2384 |
-
function cerber_check_string( $str ) {
|
2385 |
-
|
2386 |
-
$str = trim( $str, '\'"' );
|
2387 |
-
|
2388 |
-
if ( strlen( $str ) < 8 ) {
|
2389 |
-
return false;
|
2390 |
-
}
|
2391 |
-
|
2392 |
-
if ( preg_match( '/[\-_\!\?\;\*]/', $str ) ) {
|
2393 |
-
return false;
|
2394 |
-
}
|
2395 |
-
|
2396 |
-
$all = str_split( $str );
|
2397 |
-
$chars = array_count_values( $all );
|
2398 |
-
$total = count( $all );
|
2399 |
-
$distribution = array();
|
2400 |
-
foreach ( $chars as $char => $entrances ) {
|
2401 |
-
$distribution[ $char ] = $entrances / $total * 1000;
|
2402 |
-
}
|
2403 |
-
|
2404 |
-
$dev = cerber_stand_deviation( $distribution );
|
2405 |
-
|
2406 |
-
if ( $dev >= 9 && $dev <= 12 ) { // Typical Base64 encoded string
|
2407 |
-
return true;
|
2408 |
-
}
|
2409 |
-
|
2410 |
-
return false;
|
2411 |
-
}
|
2412 |
-
|
2413 |
-
/**
|
2414 |
-
* Calculate Standard Deviation of a given array
|
2415 |
-
*
|
2416 |
-
* @param array $arr
|
2417 |
-
*
|
2418 |
-
* @return float
|
2419 |
-
*/
|
2420 |
-
function cerber_stand_deviation( $arr ) {
|
2421 |
-
$count = count( $arr );
|
2422 |
-
$variance = 0.0;
|
2423 |
-
$average = array_sum( $arr ) / $count;
|
2424 |
-
|
2425 |
-
foreach ( $arr as $value ) {
|
2426 |
-
$variance += pow( ( $value - $average ), 2 );
|
2427 |
-
}
|
2428 |
-
|
2429 |
-
return (float) sqrt( $variance / $count );
|
2430 |
-
}
|
2431 |
-
|
2432 |
/**
|
2433 |
* Unsafe code tokens
|
2434 |
*
|
@@ -3148,7 +3098,7 @@ function cerber_is_htaccess( $file_name ) {
|
|
3148 |
function cerber_is_dropin( $file_name ) {
|
3149 |
$dropins = _get_dropins();
|
3150 |
if ( isset( $dropins[ basename( $file_name ) ] ) ) {
|
3151 |
-
if (
|
3152 |
return true;
|
3153 |
}
|
3154 |
}
|
@@ -3651,124 +3601,6 @@ function cerber_check_extension( $filename, $ext_list = array() ) {
|
|
3651 |
|
3652 |
}
|
3653 |
|
3654 |
-
/**
|
3655 |
-
* Retrieve a value from the key-value storage
|
3656 |
-
*
|
3657 |
-
* @param string $key
|
3658 |
-
* @param integer $id
|
3659 |
-
* @param bool $unserialize
|
3660 |
-
*
|
3661 |
-
* @return bool|array
|
3662 |
-
*/
|
3663 |
-
function cerber_get_set( $key, $id = null, $unserialize = true ) {
|
3664 |
-
$key = preg_replace( '/[^a-z_\-\d]/i', '', $key );
|
3665 |
-
|
3666 |
-
$and = '';
|
3667 |
-
if ( $id !== null ) {
|
3668 |
-
$and = ' AND the_id = ' . absint( $id );
|
3669 |
-
}
|
3670 |
-
|
3671 |
-
$ret = false;
|
3672 |
-
|
3673 |
-
if ( $row = cerber_db_get_row( 'SELECT * FROM ' . cerber_get_db_prefix() . CERBER_SETS_TABLE . ' WHERE the_key = "' . $key . '" ' . $and ) ) {
|
3674 |
-
if ( $row['expires'] > 0 && $row['expires'] < time() ) {
|
3675 |
-
cerber_delete_set( $key, $id );
|
3676 |
-
|
3677 |
-
return false;
|
3678 |
-
}
|
3679 |
-
$ret = ( $unserialize ) ? unserialize( $row['the_value'] ) : $row['the_value'];
|
3680 |
-
}
|
3681 |
-
|
3682 |
-
return $ret;
|
3683 |
-
}
|
3684 |
-
|
3685 |
-
/**
|
3686 |
-
* Update/insert value to the key-value storage
|
3687 |
-
*
|
3688 |
-
* @param string $key A unique key for the data set
|
3689 |
-
* @param $value
|
3690 |
-
* @param integer $id An additional numerical key
|
3691 |
-
* @param bool $serialize
|
3692 |
-
* @param integer $expires Unix timestamp (UTC) when this element will be deleted
|
3693 |
-
*
|
3694 |
-
* @return bool
|
3695 |
-
*/
|
3696 |
-
function cerber_update_set( $key, $value, $id = null, $serialize = true, $expires = null ) {
|
3697 |
-
|
3698 |
-
$key = preg_replace( '/[^a-z_\-\d]/i', '', $key );
|
3699 |
-
|
3700 |
-
$id = ( $id !== null ) ? absint( $id ) : 0;
|
3701 |
-
|
3702 |
-
if ( $serialize ) {
|
3703 |
-
$value = serialize( $value );
|
3704 |
-
}
|
3705 |
-
$value = cerber_real_escape( $value );
|
3706 |
-
|
3707 |
-
$expires = ( $expires !== null ) ? absint( $expires ) : 0;
|
3708 |
-
|
3709 |
-
if ( false !== cerber_get_set( $key, $id, false ) ) {
|
3710 |
-
$sql = 'UPDATE ' . cerber_get_db_prefix() . CERBER_SETS_TABLE . ' SET the_value = "' . $value . '", expires = ' . $expires . ' WHERE the_key = "' . $key . '" AND the_id = ' . $id;
|
3711 |
-
}
|
3712 |
-
else {
|
3713 |
-
$sql = 'INSERT INTO ' . cerber_get_db_prefix() . CERBER_SETS_TABLE . ' (the_key, the_id, the_value, expires) VALUES ("' . $key . '",' . $id . ',"' . $value . '",' . $expires . ')';
|
3714 |
-
}
|
3715 |
-
|
3716 |
-
unset( $value );
|
3717 |
-
|
3718 |
-
if ( cerber_db_query( $sql ) ) {
|
3719 |
-
return true;
|
3720 |
-
}
|
3721 |
-
else {
|
3722 |
-
return false;
|
3723 |
-
}
|
3724 |
-
}
|
3725 |
-
|
3726 |
-
/**
|
3727 |
-
* Delete value from the storage
|
3728 |
-
*
|
3729 |
-
* @param string $key
|
3730 |
-
* @param integer $id
|
3731 |
-
*
|
3732 |
-
* @return bool
|
3733 |
-
*/
|
3734 |
-
function cerber_delete_set( $key, $id = null) {
|
3735 |
-
|
3736 |
-
$key = preg_replace( '/[^a-z_\-\d]/i', '', $key );
|
3737 |
-
|
3738 |
-
$and = '';
|
3739 |
-
if ( $id !== null ) {
|
3740 |
-
$and = ' AND the_id = ' . absint( $id );
|
3741 |
-
}
|
3742 |
-
|
3743 |
-
if ( cerber_db_query( 'DELETE FROM ' . cerber_get_db_prefix() . CERBER_SETS_TABLE . ' WHERE the_key = "' . $key . '"' . $and ) ) {
|
3744 |
-
return true;
|
3745 |
-
}
|
3746 |
-
else {
|
3747 |
-
return false;
|
3748 |
-
}
|
3749 |
-
}
|
3750 |
-
|
3751 |
-
/**
|
3752 |
-
* Clean up all expired sets. Usually by cron.
|
3753 |
-
* @param bool $all if true, deletes all sets that has expiration
|
3754 |
-
*
|
3755 |
-
* @return bool
|
3756 |
-
*/
|
3757 |
-
function cerber_delete_expired_set( $all = false ) {
|
3758 |
-
if ( ! $all ) {
|
3759 |
-
$where = 'AND expires < ' . time();
|
3760 |
-
}
|
3761 |
-
else {
|
3762 |
-
$where = '';
|
3763 |
-
}
|
3764 |
-
if ( cerber_db_query( 'DELETE FROM ' . cerber_get_db_prefix() . CERBER_SETS_TABLE . ' WHERE expires > 0 ' . $where ) ) {
|
3765 |
-
return true;
|
3766 |
-
}
|
3767 |
-
else {
|
3768 |
-
return false;
|
3769 |
-
}
|
3770 |
-
}
|
3771 |
-
|
3772 |
function cerber_step_desc( $step = null ) {
|
3773 |
$steps = array(
|
3774 |
__( 'Preparing for the scan', 'wp-cerber' ),
|
@@ -4989,7 +4821,7 @@ function cerber_is_cloud_request() {
|
|
4989 |
}
|
4990 |
|
4991 |
$key = lab_get_key();
|
4992 |
-
if (
|
4993 |
$key = lab_get_key( true );
|
4994 |
}
|
4995 |
if ( $key[4] != $_POST['cerber-cloud-key'] ) {
|
1 |
<?php
|
2 |
/*
|
3 |
+
Copyright (C) 2015-18 CERBER TECH INC., http://cerber.tech
|
4 |
+
Copyright (C) 2015-18 CERBER TECH INC., https://wpcerber.com
|
5 |
|
6 |
Licenced under the GNU GPL.
|
7 |
|
366 |
function cerber_scanner( $control, $mode ) {
|
367 |
global $cerber_db_errors, $cerber_scan_mode;
|
368 |
|
369 |
+
if ( crb_get_settings( 'scan_debug' ) ) {
|
370 |
register_shutdown_function( function () {
|
371 |
if ( http_response_code() != 200 ) {
|
372 |
crb_scan_debug( 'SERVER ERROR! The scan is not completed.' );
|
380 |
$errors = array();
|
381 |
|
382 |
if ( function_exists( 'wp_raise_memory_limit' ) ) {
|
383 |
+
if ( ! wp_raise_memory_limit( 'admin' ) ) {
|
384 |
+
$m = 'ERROR: Unable to raise memory limit';
|
385 |
+
crb_scan_debug( $m );
|
386 |
+
$errors[] = $m;
|
387 |
+
}
|
388 |
}
|
|
|
|
|
|
|
389 |
|
390 |
if ( ! $mode ) {
|
391 |
$mode = 'quick';
|
2230 |
}
|
2231 |
if ( $token[0] == T_CONSTANT_ENCAPSED_STRING ) {
|
2232 |
if ( $val = cerber_is_base64_encoded( trim( $token[1], '\'"' ) ) ) {
|
|
|
2233 |
if ( cerber_inspect_value( $val ) ) {
|
2234 |
$xdata[] = array( 1, 'base64_encoded_php', $token[2], $token[0], $token[1] );
|
|
|
2235 |
$severity[] = CERBER_MALWR_DETECTED;
|
2236 |
}
|
2237 |
/*
|
2379 |
|
2380 |
}
|
2381 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2382 |
/**
|
2383 |
* Unsafe code tokens
|
2384 |
*
|
3098 |
function cerber_is_dropin( $file_name ) {
|
3099 |
$dropins = _get_dropins();
|
3100 |
if ( isset( $dropins[ basename( $file_name ) ] ) ) {
|
3101 |
+
if ( cerber_get_content_dir() == dirname( $file_name ) ) {
|
3102 |
return true;
|
3103 |
}
|
3104 |
}
|
3601 |
|
3602 |
}
|
3603 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3604 |
function cerber_step_desc( $step = null ) {
|
3605 |
$steps = array(
|
3606 |
__( 'Preparing for the scan', 'wp-cerber' ),
|
4821 |
}
|
4822 |
|
4823 |
$key = lab_get_key();
|
4824 |
+
if ( empty( $key[4] ) ) {
|
4825 |
$key = lab_get_key( true );
|
4826 |
}
|
4827 |
if ( $key[4] != $_POST['cerber-cloud-key'] ) {
|
cerber-tools.php
CHANGED
@@ -1,6 +1,7 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
-
|
|
|
4 |
|
5 |
Licenced under the GNU GPL
|
6 |
|
@@ -257,7 +258,7 @@ function cerber_show_diag(){
|
|
257 |
</div>
|
258 |
<?php
|
259 |
|
260 |
-
echo '<div class="diag-section"><h3>
|
261 |
cerber_cron_diag();
|
262 |
echo '</div>';
|
263 |
|
@@ -348,6 +349,9 @@ function cerber_show_wp_diag(){
|
|
348 |
|
349 |
$ret = array();
|
350 |
|
|
|
|
|
|
|
351 |
$ret[] = cerber_make_plain_table( array(
|
352 |
array( 'Server ', $_SERVER['SERVER_SOFTWARE'] ),
|
353 |
array( 'PHP version ', phpversion() ),
|
@@ -356,7 +360,7 @@ function cerber_show_wp_diag(){
|
|
356 |
array( 'Options DB table', $wpdb->prefix . 'options' ),
|
357 |
array( 'Server platform', PHP_OS ),
|
358 |
array( 'Memory limit', @ini_get( 'memory_limit' ) ),
|
359 |
-
array( 'Default PHP timezone',
|
360 |
) );
|
361 |
|
362 |
$folders = array(
|
@@ -563,22 +567,70 @@ function cerber_environment_diag() {
|
|
563 |
}
|
564 |
|
565 |
function cerber_cron_diag() {
|
566 |
-
|
567 |
-
$
|
568 |
-
$
|
569 |
-
|
570 |
-
|
571 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
572 |
}
|
573 |
-
|
574 |
-
|
|
|
|
|
575 |
}
|
576 |
-
if ( $
|
577 |
-
echo '<p
|
578 |
}
|
579 |
-
|
580 |
-
echo '
|
581 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
582 |
}
|
583 |
|
584 |
function cerber_show_diag_log() {
|
1 |
<?php
|
2 |
/*
|
3 |
+
Copyright (C) 2015-18 CERBER TECH INC., http://cerber.tech
|
4 |
+
Copyright (C) 2015-18 CERBER TECH INC., https://wpcerber.com
|
5 |
|
6 |
Licenced under the GNU GPL
|
7 |
|
258 |
</div>
|
259 |
<?php
|
260 |
|
261 |
+
echo '<div class="diag-section"><h3>Maintenance task</h3>';
|
262 |
cerber_cron_diag();
|
263 |
echo '</div>';
|
264 |
|
349 |
|
350 |
$ret = array();
|
351 |
|
352 |
+
$tz = date_default_timezone_get();
|
353 |
+
$tz = ( $tz !== 'UTC' ) ? '<span style="color: red;">' . $tz . '!</span>' : $tz;
|
354 |
+
|
355 |
$ret[] = cerber_make_plain_table( array(
|
356 |
array( 'Server ', $_SERVER['SERVER_SOFTWARE'] ),
|
357 |
array( 'PHP version ', phpversion() ),
|
360 |
array( 'Options DB table', $wpdb->prefix . 'options' ),
|
361 |
array( 'Server platform', PHP_OS ),
|
362 |
array( 'Memory limit', @ini_get( 'memory_limit' ) ),
|
363 |
+
array( 'Default PHP timezone', $tz ),
|
364 |
) );
|
365 |
|
366 |
$folders = array(
|
567 |
}
|
568 |
|
569 |
function cerber_cron_diag() {
|
570 |
+
|
571 |
+
$planned = array();
|
572 |
+
$crb_crons = array(
|
573 |
+
'cerber_hourly_1' => 'Hourly task #1',
|
574 |
+
'cerber_hourly_2' => 'Hourly task #2',
|
575 |
+
'cerber_daily' => 'Daily task'
|
576 |
+
);
|
577 |
+
foreach ( _get_cron_array() as $time => $item ) {
|
578 |
+
foreach ( $crb_crons as $key => $val ) {
|
579 |
+
if ( ! empty( $item[ $key ] ) ) {
|
580 |
+
$planned[ $key ] = $val . ' scheduled for ' . cerber_date( $time ) . ' (' . cerber_ago_time( $time ) . ')';
|
581 |
+
}
|
582 |
+
}
|
583 |
+
}
|
584 |
+
|
585 |
+
unset( $crb_crons['cerber_daily'] );
|
586 |
+
$crb_crons['cerber_daily_1'] = 'Daily task';
|
587 |
+
|
588 |
+
$errors = array();
|
589 |
+
$ok = array();
|
590 |
+
foreach ( $crb_crons as $key => $task ) {
|
591 |
+
$h = get_site_transient( $key );
|
592 |
+
if ( ! $h || ! is_array( $h ) ) {
|
593 |
+
$errors[] = $task . ' has never been executed';
|
594 |
+
continue;
|
595 |
+
}
|
596 |
+
if ( empty( $h[1] ) ) {
|
597 |
+
$errors[] = $task . ' has not finished correctly';
|
598 |
+
continue;
|
599 |
+
}
|
600 |
+
$end = $h[1];
|
601 |
+
/*
|
602 |
+
if ( $end < ( time() - 2 * 3600 ) ) {
|
603 |
+
$errors[] = $val . ' has been executed ' . cerber_ago_time( $end );
|
604 |
+
}
|
605 |
+
else {
|
606 |
+
$ok[] = $val . ' has been executed ' . cerber_ago_time( $end );
|
607 |
+
}
|
608 |
+
*/
|
609 |
+
$dur = $end - $h[0];
|
610 |
+
if ( $dur > 60 ) {
|
611 |
+
$errors[] = $task . ' has been executed ' . cerber_ago_time( $end ) . ' and it took ' . $dur . ' seconds.';
|
612 |
+
}
|
613 |
+
else {
|
614 |
+
$ok[] = $task . ' has been executed ' . cerber_ago_time( $end ) . ' and it took ' . $dur . ' seconds.';
|
615 |
+
}
|
616 |
}
|
617 |
+
|
618 |
+
if ( $errors ) {
|
619 |
+
//echo 'There are some errors';
|
620 |
+
echo '<p style="color: red;">' . implode( '<br/>', $errors ) . '</p>';
|
621 |
}
|
622 |
+
if ( $ok ) {
|
623 |
+
echo '<p>' . implode( '<br/>', $ok ) . '</p>';
|
624 |
}
|
625 |
+
if ( $planned ) {
|
626 |
+
echo '<p>' . implode( '<br/>', $planned ) . '</p>';
|
627 |
}
|
628 |
+
|
629 |
+
|
630 |
+
if ( $errors && defined( 'DISABLE_WP_CRON' ) && DISABLE_WP_CRON ) {
|
631 |
+
echo '<p>Note: the internal cron launcher has been disabled on this site, you have to use external one.</p>';
|
632 |
+
}
|
633 |
+
|
634 |
}
|
635 |
|
636 |
function cerber_show_diag_log() {
|
changelog.txt
CHANGED
@@ -1,3 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
= 7.9 =
|
2 |
* New: The plugin monitors suspicious requests that cause 4xx and 5xx HTTP errors and blocks IP addresses that aggressively generate such requests.
|
3 |
* New: A set of WordPress navigation menu links. Login, logout, and register menu items can be automatically generated and shown in any WordPress menu or a widget.
|
1 |
+
= 7.9.3 =
|
2 |
+
* New: New settings for the Traffic Inspector firewall allow you to fine-tune its behavior. You can enable less or more restrictive firewall rules.
|
3 |
+
* Update: Troubleshooting of possible issues with scheduled maintenance tasks has been improved.
|
4 |
+
* Update: To make troubleshooting easier the plugin logs not only a lockout event but also logs and displays the reason for the lockout.
|
5 |
+
* Update: Compatibility with ManageWP and Gravity Forms has been improved.
|
6 |
+
* Update: The layout of the Activity and Live Traffic pages has been improved.
|
7 |
+
* Bug fixed: The malware scanner wrongly prevents PHP files with few specific names in one particular location from being deleted after a manual scan or during the automatic malware removal.
|
8 |
+
* Bug fixed: The number of email notifications might be incorrectly limited to one email per hour.
|
9 |
+
* [Read more](https://wpcerber.com/wp-cerber-security-7-9-3/)
|
10 |
+
|
11 |
= 7.9 =
|
12 |
* New: The plugin monitors suspicious requests that cause 4xx and 5xx HTTP errors and blocks IP addresses that aggressively generate such requests.
|
13 |
* New: A set of WordPress navigation menu links. Login, logout, and register menu items can be automatically generated and shown in any WordPress menu or a widget.
|
common.php
CHANGED
@@ -1,6 +1,7 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
-
|
|
|
4 |
|
5 |
Licenced under the GNU GPL.
|
6 |
|
@@ -42,7 +43,10 @@ define( 'MYSQL_FETCH_OBJECT_K', 6 );
|
|
42 |
*
|
43 |
*/
|
44 |
function cerber_get_wp_scripts(){
|
45 |
-
|
|
|
|
|
|
|
46 |
}
|
47 |
|
48 |
/**
|
@@ -129,6 +133,18 @@ function cerber_get_login_url(){
|
|
129 |
return $ret;
|
130 |
}
|
131 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
132 |
function cerber_calculate_kpi($period = 1){
|
133 |
global $wpdb;
|
134 |
|
@@ -533,6 +549,7 @@ function crb_array_column( $arr = array(), $column = '' ) {
|
|
533 |
* @since 3.0
|
534 |
*/
|
535 |
function cerber_is_rest_url(){
|
|
|
536 |
static $ret = null;
|
537 |
|
538 |
if ( defined( 'REST_REQUEST' ) && REST_REQUEST ) {
|
@@ -547,6 +564,10 @@ function cerber_is_rest_url(){
|
|
547 |
return $ret;
|
548 |
}
|
549 |
|
|
|
|
|
|
|
|
|
550 |
$ret = false;
|
551 |
$uri = '/' . trim( $_SERVER['REQUEST_URI'], '/' ) . '/';
|
552 |
|
@@ -593,8 +614,7 @@ function cerber_is_wp_cron() {
|
|
593 |
if ( defined( 'DOING_CRON' ) && DOING_CRON ) {
|
594 |
return true;
|
595 |
}
|
596 |
-
|
597 |
-
if ( substr( $uri, 0, 12 ) == '/wp-cron.php' ) {
|
598 |
return true;
|
599 |
}
|
600 |
|
@@ -701,7 +721,7 @@ function cerber_last_uri() {
|
|
701 |
/**
|
702 |
* Return the name of an executable script in the requested URI if it's present
|
703 |
*
|
704 |
-
* @return bool|string script name or false if executable script is not detected
|
705 |
*/
|
706 |
function cerber_get_uri_script() {
|
707 |
static $ret;
|
@@ -733,6 +753,10 @@ function cerber_get_uri_script() {
|
|
733 |
function cerber_detect_exec_extension( $line, $extra = array() ) {
|
734 |
$executable = array( 'php', 'phtm', 'phtml', 'phps', 'shtm', 'shtml', 'jsp', 'asp', 'aspx', 'exe', 'com', 'cgi', 'pl', 'py', 'pyc', 'pyo' );
|
735 |
|
|
|
|
|
|
|
|
|
736 |
if ( $extra ) {
|
737 |
$executable = array_merge( $executable, $extra );
|
738 |
}
|
@@ -801,6 +825,7 @@ function cerber_get_site_root(){
|
|
801 |
*
|
802 |
* @return bool|mixed|string
|
803 |
*/
|
|
|
804 |
function cerber_purify_uri() {
|
805 |
static $ret;
|
806 |
|
@@ -818,7 +843,7 @@ function cerber_purify_uri() {
|
|
818 |
$ret = preg_replace( '/\/+/', '/', $ret );
|
819 |
|
820 |
return $ret;
|
821 |
-
}
|
822 |
|
823 |
/**
|
824 |
* Remove extra slashes \ / from a script file name
|
@@ -856,21 +881,21 @@ function cerber_get_labels( $type = 'activity', $all = true ) {
|
|
856 |
if ( $type == 'activity' ) {
|
857 |
|
858 |
// User actions
|
859 |
-
$labels[1]=__('User created','wp-cerber');
|
860 |
-
$labels[2]=__('User registered','wp-cerber');
|
861 |
-
$labels[5]=__('Logged in','wp-cerber');
|
862 |
-
$labels[6]=__('Logged out','wp-cerber');
|
863 |
-
$labels[7]=__('Login failed','wp-cerber');
|
864 |
|
865 |
// Cerber actions - IP specific - lockouts
|
866 |
-
$labels[10]=__('IP blocked','wp-cerber');
|
867 |
-
$labels[11]=__('Subnet blocked','wp-cerber');
|
868 |
// Cerber actions - common
|
869 |
-
$labels[12]=__('Citadel activated!','wp-cerber');
|
870 |
-
$labels[16]=__('Spam comment denied','wp-cerber');
|
871 |
-
$labels[17]=__('Spam form submission denied','wp-cerber');
|
872 |
-
$labels[18]=__('Form submission denied','wp-cerber');
|
873 |
-
$labels[19]=__('Comment denied','wp-cerber');
|
874 |
|
875 |
// Cerber status // TODO: should be separated as another list ---------
|
876 |
//$labels[13]=__('Locked out','wp-cerber');
|
@@ -881,25 +906,25 @@ function cerber_get_labels( $type = 'activity', $all = true ) {
|
|
881 |
// --------------------------------------------------------------
|
882 |
|
883 |
// Other actions
|
884 |
-
$labels[20]=__('Password changed','wp-cerber');
|
885 |
-
$labels[21]=__('Password reset requested','wp-cerber');
|
886 |
|
887 |
-
$labels[40]=__('reCAPTCHA verification failed','wp-cerber');
|
888 |
-
$labels[41]=__('reCAPTCHA settings are incorrect','wp-cerber');
|
889 |
-
$labels[42]=__('Request to the Google reCAPTCHA service failed','wp-cerber');
|
890 |
|
891 |
-
$labels[50]=__('Attempt to access prohibited URL','wp-cerber');
|
892 |
-
$labels[51]=__('Attempt to log in with non-existent username','wp-cerber');
|
893 |
-
$labels[52]=__('Attempt to log in with prohibited username','wp-cerber');
|
894 |
// @since 4.9 // TODO 53 & 54 should be a cerber action?
|
895 |
-
$labels[53]=__('Attempt to log in denied','wp-cerber');
|
896 |
-
$labels[54]=__('Attempt to register denied','wp-cerber');
|
897 |
-
$labels[55]=__('Probing for vulnerable PHP code','wp-cerber');
|
898 |
-
$labels[56]=__('Attempt to upload malicious file denied', 'wp-cerber' );
|
899 |
-
$labels[57]=__('File upload denied', 'wp-cerber' );
|
900 |
|
901 |
-
$labels[70]=__('Request to REST API denied','wp-cerber');
|
902 |
-
$labels[71]=__('XML-RPC request denied','wp-cerber');
|
903 |
|
904 |
$labels[100] = __( 'Malicious request denied', 'wp-cerber' );
|
905 |
|
@@ -913,6 +938,7 @@ function cerber_get_labels( $type = 'activity', $all = true ) {
|
|
913 |
$labels[11] = __( 'Bot detected', 'wp-cerber' );
|
914 |
$labels[12] = __( 'Citadel mode is active', 'wp-cerber' );
|
915 |
$labels[13] = __( 'Locked out', 'wp-cerber' );
|
|
|
916 |
$labels[14] = __( 'IP blacklisted', 'wp-cerber' );
|
917 |
// @since 4.9
|
918 |
$labels[15] = __( 'Malicious activity detected', 'wp-cerber' );
|
@@ -946,27 +972,34 @@ function crb_get_activity_set($slice = 'malicious') {
|
|
946 |
}
|
947 |
|
948 |
|
949 |
-
function cerber_get_reason( $id ) {
|
950 |
$labels = array();
|
951 |
-
$
|
952 |
-
$labels[
|
953 |
-
$labels[
|
954 |
-
$labels[
|
955 |
-
$labels[
|
956 |
-
$labels[
|
957 |
-
$labels[
|
958 |
-
$labels[
|
959 |
-
$labels[
|
960 |
-
$labels[
|
961 |
-
|
962 |
-
|
963 |
-
|
964 |
-
|
965 |
-
|
966 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
967 |
}
|
968 |
|
969 |
-
return $
|
970 |
}
|
971 |
|
972 |
function cerber_db_error_log( $msg = null ) {
|
@@ -993,7 +1026,7 @@ function cerber_admin_notice( $msg ) {
|
|
993 |
return;
|
994 |
}
|
995 |
$notice = get_site_option( 'cerber_admin_notice', null);
|
996 |
-
if ( ! $notice ) {
|
997 |
$notice = array();
|
998 |
}
|
999 |
if ( is_array( $msg ) ) {
|
@@ -1015,15 +1048,15 @@ function cerber_admin_message( $msg ) {
|
|
1015 |
if ( ! $msg || $cerber_doing_upgrade ) {
|
1016 |
return;
|
1017 |
}
|
1018 |
-
$notice = get_site_option( 'cerber_admin_message', null);
|
1019 |
-
if ( ! $notice ) {
|
1020 |
$notice = array();
|
1021 |
}
|
1022 |
if ( is_array( $msg ) ) {
|
1023 |
$notice = array_merge( $notice, $msg );
|
1024 |
}
|
1025 |
else {
|
1026 |
-
$notice
|
1027 |
}
|
1028 |
update_site_option( 'cerber_admin_message', $notice );
|
1029 |
}
|
@@ -1033,6 +1066,57 @@ function crb_clear_admin_msg(){
|
|
1033 |
update_site_option('cerber_admin_message', null);
|
1034 |
}
|
1035 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1036 |
/**
|
1037 |
* Return human readable "ago" time
|
1038 |
*
|
@@ -1652,6 +1736,134 @@ function crb_get_mysql_var( $var ) {
|
|
1652 |
return $cache[ $var ];
|
1653 |
}
|
1654 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1655 |
/**
|
1656 |
* Remove comments from a given piece of code
|
1657 |
*
|
1 |
<?php
|
2 |
/*
|
3 |
+
Copyright (C) 2015-18 CERBER TECH INC., http://cerber.tech
|
4 |
+
Copyright (C) 2015-18 CERBER TECH INC., https://wpcerber.com
|
5 |
|
6 |
Licenced under the GNU GPL.
|
7 |
|
43 |
*
|
44 |
*/
|
45 |
function cerber_get_wp_scripts(){
|
46 |
+
$list = array_map( function ( $e ) {
|
47 |
+
return '/' . $e;
|
48 |
+
}, array( WP_LOGIN_SCRIPT, WP_REG_URI, WP_XMLRPC_SCRIPT, WP_TRACKBACK_SCRIPT, WP_PING_SCRIPT, WP_SIGNUP_SCRIPT, WP_COMMENT_SCRIPT ) );
|
49 |
+
return $list;
|
50 |
}
|
51 |
|
52 |
/**
|
133 |
return $ret;
|
134 |
}
|
135 |
|
136 |
+
function cerber_get_home_url() {
|
137 |
+
static $url;
|
138 |
+
|
139 |
+
if ( isset( $url ) ) {
|
140 |
+
return $url;
|
141 |
+
}
|
142 |
+
|
143 |
+
$url = trim( get_home_url(), '/' );
|
144 |
+
|
145 |
+
return $url;
|
146 |
+
}
|
147 |
+
|
148 |
function cerber_calculate_kpi($period = 1){
|
149 |
global $wpdb;
|
150 |
|
549 |
* @since 3.0
|
550 |
*/
|
551 |
function cerber_is_rest_url(){
|
552 |
+
global $wp_rewrite;
|
553 |
static $ret = null;
|
554 |
|
555 |
if ( defined( 'REST_REQUEST' ) && REST_REQUEST ) {
|
564 |
return $ret;
|
565 |
}
|
566 |
|
567 |
+
if ( ! $wp_rewrite ) { // see get_rest_url() in the multisite mode
|
568 |
+
return false;
|
569 |
+
}
|
570 |
+
|
571 |
$ret = false;
|
572 |
$uri = '/' . trim( $_SERVER['REQUEST_URI'], '/' ) . '/';
|
573 |
|
614 |
if ( defined( 'DOING_CRON' ) && DOING_CRON ) {
|
615 |
return true;
|
616 |
}
|
617 |
+
if ( CRB_Request::is_script( '/wp-cron.php' ) ) {
|
|
|
618 |
return true;
|
619 |
}
|
620 |
|
721 |
/**
|
722 |
* Return the name of an executable script in the requested URI if it's present
|
723 |
*
|
724 |
+
* @return bool|string The script name or false if executable script is not detected
|
725 |
*/
|
726 |
function cerber_get_uri_script() {
|
727 |
static $ret;
|
753 |
function cerber_detect_exec_extension( $line, $extra = array() ) {
|
754 |
$executable = array( 'php', 'phtm', 'phtml', 'phps', 'shtm', 'shtml', 'jsp', 'asp', 'aspx', 'exe', 'com', 'cgi', 'pl', 'py', 'pyc', 'pyo' );
|
755 |
|
756 |
+
if ( empty( $line ) ) {
|
757 |
+
return false;
|
758 |
+
}
|
759 |
+
|
760 |
if ( $extra ) {
|
761 |
$executable = array_merge( $executable, $extra );
|
762 |
}
|
825 |
*
|
826 |
* @return bool|mixed|string
|
827 |
*/
|
828 |
+
/*
|
829 |
function cerber_purify_uri() {
|
830 |
static $ret;
|
831 |
|
843 |
$ret = preg_replace( '/\/+/', '/', $ret );
|
844 |
|
845 |
return $ret;
|
846 |
+
}*/
|
847 |
|
848 |
/**
|
849 |
* Remove extra slashes \ / from a script file name
|
881 |
if ( $type == 'activity' ) {
|
882 |
|
883 |
// User actions
|
884 |
+
$labels[1] = __( 'User created', 'wp-cerber' );
|
885 |
+
$labels[2] = __( 'User registered', 'wp-cerber' );
|
886 |
+
$labels[5] = __( 'Logged in', 'wp-cerber' );
|
887 |
+
$labels[6] = __( 'Logged out', 'wp-cerber' );
|
888 |
+
$labels[7] = __( 'Login failed', 'wp-cerber' );
|
889 |
|
890 |
// Cerber actions - IP specific - lockouts
|
891 |
+
$labels[10] = __( 'IP blocked', 'wp-cerber' );
|
892 |
+
$labels[11] = __( 'Subnet blocked', 'wp-cerber' );
|
893 |
// Cerber actions - common
|
894 |
+
$labels[12] = __( 'Citadel activated!', 'wp-cerber' );
|
895 |
+
$labels[16] = __( 'Spam comment denied', 'wp-cerber' );
|
896 |
+
$labels[17] = __( 'Spam form submission denied', 'wp-cerber' );
|
897 |
+
$labels[18] = __( 'Form submission denied', 'wp-cerber' );
|
898 |
+
$labels[19] = __( 'Comment denied', 'wp-cerber' );
|
899 |
|
900 |
// Cerber status // TODO: should be separated as another list ---------
|
901 |
//$labels[13]=__('Locked out','wp-cerber');
|
906 |
// --------------------------------------------------------------
|
907 |
|
908 |
// Other actions
|
909 |
+
$labels[20] = __( 'Password changed', 'wp-cerber' );
|
910 |
+
$labels[21] = __( 'Password reset requested', 'wp-cerber' );
|
911 |
|
912 |
+
$labels[40] = __( 'reCAPTCHA verification failed', 'wp-cerber' );
|
913 |
+
$labels[41] = __( 'reCAPTCHA settings are incorrect', 'wp-cerber' );
|
914 |
+
$labels[42] = __( 'Request to the Google reCAPTCHA service failed', 'wp-cerber' );
|
915 |
|
916 |
+
$labels[50] = __( 'Attempt to access prohibited URL', 'wp-cerber' );
|
917 |
+
$labels[51] = __( 'Attempt to log in with non-existent username', 'wp-cerber' );
|
918 |
+
$labels[52] = __( 'Attempt to log in with prohibited username', 'wp-cerber' );
|
919 |
// @since 4.9 // TODO 53 & 54 should be a cerber action?
|
920 |
+
$labels[53] = __( 'Attempt to log in denied', 'wp-cerber' );
|
921 |
+
$labels[54] = __( 'Attempt to register denied', 'wp-cerber' );
|
922 |
+
$labels[55] = __( 'Probing for vulnerable PHP code', 'wp-cerber' );
|
923 |
+
$labels[56] = __( 'Attempt to upload malicious file denied', 'wp-cerber' );
|
924 |
+
$labels[57] = __( 'File upload denied', 'wp-cerber' );
|
925 |
|
926 |
+
$labels[70] = __( 'Request to REST API denied', 'wp-cerber' );
|
927 |
+
$labels[71] = __( 'XML-RPC request denied', 'wp-cerber' );
|
928 |
|
929 |
$labels[100] = __( 'Malicious request denied', 'wp-cerber' );
|
930 |
|
938 |
$labels[11] = __( 'Bot detected', 'wp-cerber' );
|
939 |
$labels[12] = __( 'Citadel mode is active', 'wp-cerber' );
|
940 |
$labels[13] = __( 'Locked out', 'wp-cerber' );
|
941 |
+
$labels[13] = __( 'IP address is locked out', 'wp-cerber' );
|
942 |
$labels[14] = __( 'IP blacklisted', 'wp-cerber' );
|
943 |
// @since 4.9
|
944 |
$labels[15] = __( 'Malicious activity detected', 'wp-cerber' );
|
972 |
}
|
973 |
|
974 |
|
975 |
+
function cerber_get_reason( $id = null ) {
|
976 |
$labels = array();
|
977 |
+
$labels[701] = __( 'Limit on login attempts is reached', 'wp-cerber' );
|
978 |
+
$labels[702] = __( 'Attempt to access', 'wp-cerber' );
|
979 |
+
$labels[703] = __( 'Attempt to log in with non-existent username', 'wp-cerber' );
|
980 |
+
$labels[704] = __( 'Attempt to log in with prohibited username', 'wp-cerber' );
|
981 |
+
$labels[705] = __( 'Limit on failed reCAPTCHA verifications is reached', 'wp-cerber' );
|
982 |
+
$labels[706] = __( 'Bot activity is detected', 'wp-cerber' );
|
983 |
+
$labels[707] = __( 'Multiple suspicious activities were detected', 'wp-cerber' );
|
984 |
+
$labels[708] = __( 'Probing for vulnerable PHP code', 'wp-cerber' );
|
985 |
+
$labels[709] = __( 'Malicious code detected', 'wp-cerber' );
|
986 |
+
$labels[710] = __( 'Attempt to upload a file with malicious code', 'wp-cerber' );
|
987 |
+
|
988 |
+
$labels[711] = __( 'Multiple suspicious requests', 'wp-cerber' );
|
989 |
+
|
990 |
+
if ( $id ) {
|
991 |
+
if ( isset( $labels[ $id ] ) ) {
|
992 |
+
return $labels[ $id ];
|
993 |
+
}
|
994 |
+
else {
|
995 |
+
return __( 'Unknown', 'wp-cerber' );
|
996 |
+
}
|
997 |
+
}
|
998 |
+
else {
|
999 |
+
$labels[702] = __( 'Attempt to access prohibited URL', 'wp-cerber' );
|
1000 |
}
|
1001 |
|
1002 |
+
return $labels;
|
1003 |
}
|
1004 |
|
1005 |
function cerber_db_error_log( $msg = null ) {
|
1026 |
return;
|
1027 |
}
|
1028 |
$notice = get_site_option( 'cerber_admin_notice', null);
|
1029 |
+
if ( ! $notice || ! is_array( $notice ) ) {
|
1030 |
$notice = array();
|
1031 |
}
|
1032 |
if ( is_array( $msg ) ) {
|
1048 |
if ( ! $msg || $cerber_doing_upgrade ) {
|
1049 |
return;
|
1050 |
}
|
1051 |
+
$notice = get_site_option( 'cerber_admin_message', null );
|
1052 |
+
if ( ! $notice || ! is_array( $notice ) ) {
|
1053 |
$notice = array();
|
1054 |
}
|
1055 |
if ( is_array( $msg ) ) {
|
1056 |
$notice = array_merge( $notice, $msg );
|
1057 |
}
|
1058 |
else {
|
1059 |
+
$notice[] = $msg;
|
1060 |
}
|
1061 |
update_site_option( 'cerber_admin_message', $notice );
|
1062 |
}
|
1066 |
update_site_option('cerber_admin_message', null);
|
1067 |
}
|
1068 |
|
1069 |
+
/*
|
1070 |
+
Check if currently displayed page is a Cerber admin dashboard page with optional checking a set of GET params
|
1071 |
+
*/
|
1072 |
+
function cerber_is_admin_page( $force = false, $params = array() ) {
|
1073 |
+
|
1074 |
+
if ( ! is_admin() ) {
|
1075 |
+
return false;
|
1076 |
+
}
|
1077 |
+
|
1078 |
+
$ret = false;
|
1079 |
+
|
1080 |
+
if ( isset( $_GET['page'] ) && false !== strpos( $_GET['page'], 'cerber-' ) ) {
|
1081 |
+
$ret = true;
|
1082 |
+
if ( $params ) {
|
1083 |
+
foreach ( $params as $param => $value ) {
|
1084 |
+
if ( ! isset( $_GET[ $param ] ) ) {
|
1085 |
+
$ret = false;
|
1086 |
+
break;
|
1087 |
+
}
|
1088 |
+
if ( ! is_array( $value ) ) {
|
1089 |
+
if ( $_GET[ $param ] != $value ) {
|
1090 |
+
$ret = false;
|
1091 |
+
break;
|
1092 |
+
}
|
1093 |
+
}
|
1094 |
+
elseif ( ! in_array( $_GET[ $param ], $value ) ) {
|
1095 |
+
$ret = false;
|
1096 |
+
break;
|
1097 |
+
}
|
1098 |
+
}
|
1099 |
+
}
|
1100 |
+
}
|
1101 |
+
if ( $ret || ! $force ) {
|
1102 |
+
return $ret;
|
1103 |
+
}
|
1104 |
+
|
1105 |
+
if ( ! $screen = get_current_screen() ) {
|
1106 |
+
return false;
|
1107 |
+
}
|
1108 |
+
if ( $screen->base == 'plugins' ) {
|
1109 |
+
return true;
|
1110 |
+
}
|
1111 |
+
|
1112 |
+
/*
|
1113 |
+
if ($screen->parent_base == 'options-general') return true;
|
1114 |
+
if ($screen->parent_base == 'settings') return true;
|
1115 |
+
*/
|
1116 |
+
|
1117 |
+
return false;
|
1118 |
+
}
|
1119 |
+
|
1120 |
/**
|
1121 |
* Return human readable "ago" time
|
1122 |
*
|
1736 |
return $cache[ $var ];
|
1737 |
}
|
1738 |
|
1739 |
+
/**
|
1740 |
+
* Retrieve a value from the key-value storage
|
1741 |
+
*
|
1742 |
+
* @param string $key
|
1743 |
+
* @param integer $id
|
1744 |
+
* @param bool $unserialize
|
1745 |
+
*
|
1746 |
+
* @return bool|array
|
1747 |
+
*/
|
1748 |
+
function cerber_get_set( $key, $id = null, $unserialize = true ) {
|
1749 |
+
$key = preg_replace( '/[^a-z_\-\d]/i', '', $key );
|
1750 |
+
|
1751 |
+
$and = '';
|
1752 |
+
if ( $id !== null ) {
|
1753 |
+
$and = ' AND the_id = ' . absint( $id );
|
1754 |
+
}
|
1755 |
+
|
1756 |
+
$ret = false;
|
1757 |
+
|
1758 |
+
if ( $row = cerber_db_get_row( 'SELECT * FROM ' . cerber_get_db_prefix() . CERBER_SETS_TABLE . ' WHERE the_key = "' . $key . '" ' . $and ) ) {
|
1759 |
+
if ( $row['expires'] > 0 && $row['expires'] < time() ) {
|
1760 |
+
cerber_delete_set( $key, $id );
|
1761 |
+
|
1762 |
+
return false;
|
1763 |
+
}
|
1764 |
+
if ( $unserialize ) {
|
1765 |
+
if ( ! empty( $row['the_value'] ) ) {
|
1766 |
+
$ret = unserialize( $row['the_value'] );
|
1767 |
+
}
|
1768 |
+
else {
|
1769 |
+
$ret = array();
|
1770 |
+
}
|
1771 |
+
}
|
1772 |
+
else {
|
1773 |
+
$ret = $row['the_value'];
|
1774 |
+
}
|
1775 |
+
}
|
1776 |
+
|
1777 |
+
return $ret;
|
1778 |
+
}
|
1779 |
+
|
1780 |
+
/**
|
1781 |
+
* Update/insert value to the key-value storage
|
1782 |
+
*
|
1783 |
+
* @param string $key A unique key for the data set
|
1784 |
+
* @param $value
|
1785 |
+
* @param integer $id An additional numerical key
|
1786 |
+
* @param bool $serialize
|
1787 |
+
* @param integer $expires Unix timestamp (UTC) when this element will be deleted
|
1788 |
+
*
|
1789 |
+
* @return bool
|
1790 |
+
*/
|
1791 |
+
function cerber_update_set( $key, $value, $id = null, $serialize = true, $expires = null ) {
|
1792 |
+
|
1793 |
+
$key = preg_replace( '/[^a-z_\-\d]/i', '', $key );
|
1794 |
+
|
1795 |
+
$id = ( $id !== null ) ? absint( $id ) : 0;
|
1796 |
+
|
1797 |
+
if ( $serialize ) {
|
1798 |
+
$value = serialize( $value );
|
1799 |
+
}
|
1800 |
+
$value = cerber_real_escape( $value );
|
1801 |
+
|
1802 |
+
$expires = ( $expires !== null ) ? absint( $expires ) : 0;
|
1803 |
+
|
1804 |
+
if ( false !== cerber_get_set( $key, $id, false ) ) {
|
1805 |
+
$sql = 'UPDATE ' . cerber_get_db_prefix() . CERBER_SETS_TABLE . ' SET the_value = "' . $value . '", expires = ' . $expires . ' WHERE the_key = "' . $key . '" AND the_id = ' . $id;
|
1806 |
+
}
|
1807 |
+
else {
|
1808 |
+
$sql = 'INSERT INTO ' . cerber_get_db_prefix() . CERBER_SETS_TABLE . ' (the_key, the_id, the_value, expires) VALUES ("' . $key . '",' . $id . ',"' . $value . '",' . $expires . ')';
|
1809 |
+
}
|
1810 |
+
|
1811 |
+
unset( $value );
|
1812 |
+
|
1813 |
+
if ( cerber_db_query( $sql ) ) {
|
1814 |
+
return true;
|
1815 |
+
}
|
1816 |
+
else {
|
1817 |
+
return false;
|
1818 |
+
}
|
1819 |
+
}
|
1820 |
+
|
1821 |
+
/**
|
1822 |
+
* Delete value from the storage
|
1823 |
+
*
|
1824 |
+
* @param string $key
|
1825 |
+
* @param integer $id
|
1826 |
+
*
|
1827 |
+
* @return bool
|
1828 |
+
*/
|
1829 |
+
function cerber_delete_set( $key, $id = null) {
|
1830 |
+
|
1831 |
+
$key = preg_replace( '/[^a-z_\-\d]/i', '', $key );
|
1832 |
+
|
1833 |
+
$and = '';
|
1834 |
+
if ( $id !== null ) {
|
1835 |
+
$and = ' AND the_id = ' . absint( $id );
|
1836 |
+
}
|
1837 |
+
|
1838 |
+
if ( cerber_db_query( 'DELETE FROM ' . cerber_get_db_prefix() . CERBER_SETS_TABLE . ' WHERE the_key = "' . $key . '"' . $and ) ) {
|
1839 |
+
return true;
|
1840 |
+
}
|
1841 |
+
else {
|
1842 |
+
return false;
|
1843 |
+
}
|
1844 |
+
}
|
1845 |
+
|
1846 |
+
/**
|
1847 |
+
* Clean up all expired sets. Usually by cron.
|
1848 |
+
* @param bool $all if true, deletes all sets that has expiration
|
1849 |
+
*
|
1850 |
+
* @return bool
|
1851 |
+
*/
|
1852 |
+
function cerber_delete_expired_set( $all = false ) {
|
1853 |
+
if ( ! $all ) {
|
1854 |
+
$where = 'AND expires < ' . time();
|
1855 |
+
}
|
1856 |
+
else {
|
1857 |
+
$where = '';
|
1858 |
+
}
|
1859 |
+
if ( cerber_db_query( 'DELETE FROM ' . cerber_get_db_prefix() . CERBER_SETS_TABLE . ' WHERE expires > 0 ' . $where ) ) {
|
1860 |
+
return true;
|
1861 |
+
}
|
1862 |
+
else {
|
1863 |
+
return false;
|
1864 |
+
}
|
1865 |
+
}
|
1866 |
+
|
1867 |
/**
|
1868 |
* Remove comments from a given piece of code
|
1869 |
*
|
dashboard.php
CHANGED
@@ -1,6 +1,7 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
-
|
|
|
4 |
|
5 |
Licenced under the GNU GPL.
|
6 |
|
@@ -107,9 +108,9 @@ function cerber_show_lockouts($args = array(), $echo = true){
|
|
107 |
foreach ($rows as $row) {
|
108 |
$ip = '<a href="'.$base_url.'&filter_ip='.$row->ip.'">'.$row->ip.'</a>';
|
109 |
|
110 |
-
$ip_info = cerber_get_ip_info($row->ip,true);
|
111 |
-
if ( isset( $ip_info['
|
112 |
-
$hostname = $ip_info['
|
113 |
}
|
114 |
else {
|
115 |
$ip_id = cerber_get_id_ip( $row->ip );
|
@@ -348,14 +349,14 @@ function cerber_admin_ajax() {
|
|
348 |
case 'hostname':
|
349 |
foreach ( $ip_list as $ip_id => $ip ) {
|
350 |
$ip_info = cerber_get_ip_info( $ip );
|
351 |
-
$response['data'][ $ip_id ] = $ip_info['
|
352 |
}
|
353 |
break;
|
354 |
case 'country':
|
355 |
if ($country_list = lab_get_country($ip_list, false)) {
|
356 |
foreach ( $country_list as $ip_id => $country ) {
|
357 |
if ( $country ) {
|
358 |
-
$response['data'][ $ip_id ] = cerber_get_flag_html( $country
|
359 |
}
|
360 |
else {
|
361 |
$response['data'][ $ip_id ] = __( 'Unknown', 'wp-cerber' );
|
@@ -384,26 +385,29 @@ function cerber_admin_ajax() {
|
|
384 |
* @since 2.2
|
385 |
*
|
386 |
*/
|
387 |
-
function cerber_get_ip_info($ip, $cache_only = false){
|
388 |
|
389 |
-
|
390 |
-
//$ip_id = str_replace(':','_',$ip_id); // IPv6
|
391 |
|
392 |
-
$
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
|
397 |
-
if (empty($ip_info['
|
398 |
-
$ip_info
|
399 |
$hostname = @gethostbyaddr( $ip );
|
400 |
-
if ( $hostname ) {
|
401 |
-
$
|
402 |
-
}
|
403 |
-
|
|
|
|
|
404 |
}
|
405 |
-
|
|
|
406 |
}
|
|
|
407 |
return $ip_info;
|
408 |
}
|
409 |
|
@@ -567,6 +571,7 @@ function cerber_export_activity() {
|
|
567 |
__( 'IP address', 'wp-cerber' ),
|
568 |
__( 'Date', 'wp-cerber' ),
|
569 |
__( 'Event', 'wp-cerber' ),
|
|
|
570 |
__( 'Local User', 'wp-cerber' ),
|
571 |
__( 'User login', 'wp-cerber' ),
|
572 |
__( 'User ID', 'wp-cerber' ),
|
@@ -574,13 +579,13 @@ function cerber_export_activity() {
|
|
574 |
'Unix Timestamp',
|
575 |
'Session ID',
|
576 |
'URL',
|
577 |
-
'Additional information',
|
578 |
);
|
579 |
|
580 |
cerber_send_csv_header( 'wp-cerber-activity', $total, $heading, $info );
|
581 |
|
582 |
$labels = cerber_get_labels( 'activity' );
|
583 |
-
$status = cerber_get_labels( 'status' );
|
|
|
584 |
|
585 |
foreach ( $rows as $row ) {
|
586 |
if ( ! empty( $row->details ) ) {
|
@@ -593,6 +598,7 @@ function cerber_export_activity() {
|
|
593 |
$values[] = $row->ip;
|
594 |
$values[] = cerber_date( $row->stamp );
|
595 |
$values[] = $labels[ $row->activity ];
|
|
|
596 |
$values[] = $row->display_name;
|
597 |
$values[] = $row->ulogin;
|
598 |
$values[] = $row->user_id;
|
@@ -600,7 +606,6 @@ function cerber_export_activity() {
|
|
600 |
$values[] = $row->stamp;
|
601 |
$values[] = $row->session_id;
|
602 |
$values[] = $details[4];
|
603 |
-
$values[] = $status[ $details[0] ];
|
604 |
|
605 |
cerber_send_csv_line( $values );
|
606 |
}
|
@@ -649,11 +654,11 @@ function cerber_show_activity($args = array(), $echo = true){
|
|
649 |
global $crb_ajax_loader, $wp_roles;
|
650 |
|
651 |
$labels = cerber_get_labels( 'activity' );
|
652 |
-
$status_labels = cerber_get_labels( 'status' );
|
653 |
|
654 |
-
$base_url
|
655 |
$export_link = '';
|
656 |
-
$ret
|
657 |
|
658 |
list( $query, $per_page, $falist, $filter_ip, $filter_login, $user_id, $search ) = cerber_activity_query( $args );
|
659 |
|
@@ -694,7 +699,7 @@ function cerber_show_activity($args = array(), $echo = true){
|
|
694 |
//elseif ($row->activity == 50 && $details[4]) $activity .= ' '.$details[4];
|
695 |
|
696 |
if ( isset( $details[4] ) && ( $row->activity < 10 || $row->activity > 12 ) ) {
|
697 |
-
$activity .= '<p class="act-url">URL: ' . $details[4] . '</p>';
|
698 |
}
|
699 |
|
700 |
}
|
@@ -717,7 +722,7 @@ function cerber_show_activity($args = array(), $echo = true){
|
|
717 |
$r = '';
|
718 |
}
|
719 |
|
720 |
-
$name = '<a href="' . $base_url . '&filter_user=' . $row->user_id . '"><b>' . $u->display_name . '</b></a><p>' . $r . '</p>';
|
721 |
|
722 |
if ( 1 == 1 ) {
|
723 |
$avatar = get_avatar( $row->user_id, 32 );
|
@@ -734,16 +739,18 @@ function cerber_show_activity($args = array(), $echo = true){
|
|
734 |
$name = '';
|
735 |
}
|
736 |
|
737 |
-
$ip
|
738 |
-
$username = '<a href="'
|
739 |
|
740 |
-
$ip_info = cerber_get_ip_info($row->ip,true);
|
741 |
-
if (isset($ip_info['
|
|
|
|
|
742 |
else {
|
743 |
$hostname = '<img data-ip-id="' . $ip_id . '" class="crb-no-hostname" src="' . $crb_ajax_loader . '" />' . "\n";
|
744 |
}
|
745 |
|
746 |
-
$tip='';
|
747 |
|
748 |
$acl = cerber_acl_check($row->ip);
|
749 |
if ($acl == 'W') $tip = __('White IP Access List','wp-cerber');
|
@@ -759,7 +766,7 @@ function cerber_show_activity($args = array(), $echo = true){
|
|
759 |
$date = cerber_ago_time( $row->stamp );
|
760 |
}
|
761 |
else {
|
762 |
-
$date = '<span title="'.$row->stamp.' / '.$row->session_id.' / '.$row->activity .'">'.cerber_date( $row->stamp ).'
|
763 |
}
|
764 |
|
765 |
if ( $geo ) {
|
@@ -1141,55 +1148,6 @@ function cerber_user_extra_view( $user_id, $context = 'activity' ) {
|
|
1141 |
|
1142 |
}
|
1143 |
|
1144 |
-
/*
|
1145 |
-
Check if currently displayed page is a Cerber admin dashboard page with optional checking a set of GET params
|
1146 |
-
*/
|
1147 |
-
function cerber_is_admin_page( $force = false, $params = array() ) {
|
1148 |
-
|
1149 |
-
if ( ! is_admin() ) {
|
1150 |
-
return false;
|
1151 |
-
}
|
1152 |
-
|
1153 |
-
$ret = false;
|
1154 |
-
|
1155 |
-
if ( isset( $_GET['page'] ) && false !== strpos( $_GET['page'], 'cerber-' ) ) {
|
1156 |
-
$ret = true;
|
1157 |
-
if ( $params ) {
|
1158 |
-
foreach ( $params as $param => $value ) {
|
1159 |
-
if ( ! isset( $_GET[ $param ] ) ) {
|
1160 |
-
$ret = false;
|
1161 |
-
break;
|
1162 |
-
}
|
1163 |
-
if ( ! is_array( $value ) ) {
|
1164 |
-
if ( $_GET[ $param ] != $value ) {
|
1165 |
-
$ret = false;
|
1166 |
-
break;
|
1167 |
-
}
|
1168 |
-
}
|
1169 |
-
elseif ( ! in_array( $_GET[ $param ], $value ) ) {
|
1170 |
-
$ret = false;
|
1171 |
-
break;
|
1172 |
-
}
|
1173 |
-
}
|
1174 |
-
}
|
1175 |
-
}
|
1176 |
-
if ( $ret || !$force) {
|
1177 |
-
return $ret;
|
1178 |
-
}
|
1179 |
-
|
1180 |
-
if ( ! $screen = get_current_screen() ) {
|
1181 |
-
return false;
|
1182 |
-
}
|
1183 |
-
if ( $screen->base == 'plugins' ) {
|
1184 |
-
return true;
|
1185 |
-
}
|
1186 |
-
/*
|
1187 |
-
if ($screen->parent_base == 'options-general') return true;
|
1188 |
-
if ($screen->parent_base == 'settings') return true;
|
1189 |
-
*/
|
1190 |
-
return false;
|
1191 |
-
}
|
1192 |
-
|
1193 |
function cerber_get_admin_page(){
|
1194 |
$ret = '';
|
1195 |
if (!empty($_GET['page'])){
|
@@ -1833,16 +1791,16 @@ function cerber_show_dashboard() {
|
|
1833 |
|
1834 |
//echo '<div style="padding-right: 10px;">';
|
1835 |
|
1836 |
-
$kpi_list = cerber_calculate_kpi(1);
|
1837 |
|
1838 |
$kpi_show = '';
|
1839 |
-
foreach ($kpi_list as $kpi){
|
1840 |
-
$kpi_show .= '<td>'
|
1841 |
-
|
1842 |
|
1843 |
-
$kpi_show = '<table id = "crb-kpi" class="cerber-margin"><tr>'
|
1844 |
|
1845 |
-
|
1846 |
echo '<div>' . $kpi_show . '<p style="text-align: right; margin: 0;">' . __( 'in the last 24 hours', 'wp-cerber' ) . '</p></div>';
|
1847 |
|
1848 |
//$total = $wpdb->get_var( 'SELECT count(ip) FROM ' . CERBER_LOG_TABLE );
|
@@ -1851,8 +1809,8 @@ function cerber_show_dashboard() {
|
|
1851 |
$links = array();
|
1852 |
$links[] = '<a class="crb-button-tiny" href="' . cerber_admin_link( 'activity' ) . '">' . __( 'View all', 'wp-cerber' ) . '</a>';
|
1853 |
|
1854 |
-
$labels
|
1855 |
-
$set
|
1856 |
foreach ( $set as $item ) {
|
1857 |
$links[] = '<a class="crb-button-tiny" href="' . cerber_admin_link( 'activity' ) . '&filter_activity=' . $item . '">' . $labels[ $item ] . '</a>';
|
1858 |
}
|
@@ -1862,12 +1820,12 @@ function cerber_show_dashboard() {
|
|
1862 |
|
1863 |
|
1864 |
//$nav_links = '<span style="display: inline-block; margin-left: 1em;">' . implode(' | ',$links) . '</span>';
|
1865 |
-
$nav_links = implode(' ', $links);
|
1866 |
|
1867 |
echo '<table class="cerber-margin"><tr><td><h2 style="margin-bottom:0.5em; margin-right: 1em;">' . __( 'Activity', 'wp-cerber' ) . '</h2></td><td>' . $nav_links . '</td></tr></table>';
|
1868 |
|
1869 |
cerber_show_activity( array(
|
1870 |
-
'filter_activity' => crb_get_activity_set('dashboard'),
|
1871 |
'per_page' => 10,
|
1872 |
'no_navi' => true,
|
1873 |
'no_export' => true,
|
@@ -1875,19 +1833,14 @@ function cerber_show_dashboard() {
|
|
1875 |
'date' => 'ago'
|
1876 |
) );
|
1877 |
|
1878 |
-
|
1879 |
-
//$total = $wpdb->get_var( 'SELECT count(ip) FROM ' . CERBER_BLOCKS_TABLE );
|
1880 |
-
//if ($total > $num) $l2 = '<p>Last ' . $num . ' lockouts of '.$total.' are displayed</p>';
|
1881 |
-
|
1882 |
$view = '<a class="crb-button-tiny" href="' . cerber_admin_link( 'lockouts' ) . '">' . __( 'View all', 'wp-cerber' ) . '</a>';
|
1883 |
-
echo '<table class="cerber-margin" style="margin-top:2em;"><tr><td><h2 style="margin-bottom:0.5em; margin-right: 1em;">' . __( 'Recently locked out IP addresses', 'wp-cerber' ) . '</
|
1884 |
|
1885 |
cerber_show_lockouts( array(
|
1886 |
'per_page' => 10,
|
1887 |
'no_navi' => true
|
1888 |
) );
|
1889 |
|
1890 |
-
//echo '</div>';
|
1891 |
}
|
1892 |
|
1893 |
|
@@ -2350,9 +2303,6 @@ function cerber_admin_head() {
|
|
2350 |
}
|
2351 |
|
2352 |
/* New */
|
2353 |
-
.actv11 {
|
2354 |
-
/*font-weight: bold;*/
|
2355 |
-
}
|
2356 |
#crb-activity td {
|
2357 |
padding-top: 0.5em;
|
2358 |
padding-bottom: 0.5em;
|
@@ -2360,19 +2310,30 @@ function cerber_admin_head() {
|
|
2360 |
#crb-activity td.acinfo div {
|
2361 |
padding: 0.1em 0 0.1em 0.7em;
|
2362 |
}
|
2363 |
-
.
|
2364 |
/*border-left: 4px solid #FF5733;*/
|
2365 |
/*font-weight: bold;*/
|
2366 |
-
border-left:
|
2367 |
padding-bottom: 2px;
|
2368 |
}
|
2369 |
.crb10, .crb11 {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2370 |
display: inline-block;
|
2371 |
background-color: #FF5733;
|
|
|
|
|
2372 |
}
|
2373 |
.crb5 {
|
2374 |
/*border-left: 4px solid #FF5733;*/
|
2375 |
-
border-left:
|
2376 |
padding-bottom: 2px;
|
2377 |
}
|
2378 |
.act-url{
|
@@ -2937,7 +2898,7 @@ function crb_country_html($code = null, $ip = null){
|
|
2937 |
|
2938 |
if ( $code ) {
|
2939 |
//$country = cerber_get_flag_html( $code ) . '<a href="'.$base_url.'&filter_country='.$code.'">'.cerber_country_name( $code ).'</a>';
|
2940 |
-
$ret = cerber_get_flag_html( $code
|
2941 |
}
|
2942 |
else {
|
2943 |
$ip_id = cerber_get_id_ip($ip);
|
@@ -3069,7 +3030,7 @@ function cerber_show_traffic( $args = array(), $echo = true ) {
|
|
3069 |
global $wpdb, $crb_ajax_loader, $wp_roles, $wp_cerber_remote;
|
3070 |
|
3071 |
$labels = cerber_get_labels( 'activity' );
|
3072 |
-
$status_labels = cerber_get_labels( 'status' );
|
3073 |
|
3074 |
$base_url = cerber_admin_link( 'traffic' );
|
3075 |
$activity_url = cerber_admin_link( 'activity' );
|
@@ -3161,18 +3122,18 @@ function cerber_show_traffic( $args = array(), $echo = true ) {
|
|
3161 |
|
3162 |
$ip = '<a href="'.$base_url.'&filter_ip='.$row->ip.'">'.$row->ip.'</a>';
|
3163 |
|
3164 |
-
if (!empty($row->hostname)){
|
3165 |
$hostname = $row->hostname;
|
3166 |
-
|
3167 |
-
|
3168 |
-
|
3169 |
-
|
3170 |
-
|
3171 |
-
|
3172 |
-
|
3173 |
-
|
3174 |
-
|
3175 |
-
|
3176 |
|
3177 |
$tip='';
|
3178 |
|
@@ -3189,7 +3150,7 @@ function cerber_show_traffic( $args = array(), $echo = true ) {
|
|
3189 |
$date = cerber_ago_time( $row->stamp );
|
3190 |
}
|
3191 |
else {
|
3192 |
-
$date = '<span title="'.$row->stamp.' / '.$row->session_id.'">'.cerber_date( $row->stamp ).'
|
3193 |
}
|
3194 |
|
3195 |
if ( $geo ) {
|
@@ -3340,7 +3301,7 @@ function cerber_show_traffic( $args = array(), $echo = true ) {
|
|
3340 |
$request_details .= '<p style="font-weight: bold;">'.$d[0].'</p>'.$d[1];
|
3341 |
}
|
3342 |
|
3343 |
-
$request = '<b>' . htmlentities( urldecode( $row->uri ) ) . '</b>' . '<p style="margin-top:1em;"><span class="crb-' . $row->request_method . '">' . $row->request_method . '</span> ' . $f . $wp_type . ' <span class="crb-' . $row->http_code . '"> HTTP ' . $row->http_code . ' ' . get_status_header_desc( $row->http_code ) . '</span> '
|
3344 |
|
3345 |
// Decorating this table can't be done via simple CSS
|
3346 |
if ( ! empty( $even ) ) {
|
1 |
<?php
|
2 |
/*
|
3 |
+
Copyright (C) 2015-18 CERBER TECH INC., http://cerber.tech
|
4 |
+
Copyright (C) 2015-18 CERBER TECH INC., https://wpcerber.com
|
5 |
|
6 |
Licenced under the GNU GPL.
|
7 |
|
108 |
foreach ($rows as $row) {
|
109 |
$ip = '<a href="'.$base_url.'&filter_ip='.$row->ip.'">'.$row->ip.'</a>';
|
110 |
|
111 |
+
$ip_info = cerber_get_ip_info( $row->ip, true );
|
112 |
+
if ( isset( $ip_info['hostname_html'] ) ) {
|
113 |
+
$hostname = $ip_info['hostname_html'];
|
114 |
}
|
115 |
else {
|
116 |
$ip_id = cerber_get_id_ip( $row->ip );
|
349 |
case 'hostname':
|
350 |
foreach ( $ip_list as $ip_id => $ip ) {
|
351 |
$ip_info = cerber_get_ip_info( $ip );
|
352 |
+
$response['data'][ $ip_id ] = $ip_info['hostname_html'];
|
353 |
}
|
354 |
break;
|
355 |
case 'country':
|
356 |
if ($country_list = lab_get_country($ip_list, false)) {
|
357 |
foreach ( $country_list as $ip_id => $country ) {
|
358 |
if ( $country ) {
|
359 |
+
$response['data'][ $ip_id ] = cerber_get_flag_html( $country, cerber_country_name( $country ) );
|
360 |
}
|
361 |
else {
|
362 |
$response['data'][ $ip_id ] = __( 'Unknown', 'wp-cerber' );
|
385 |
* @since 2.2
|
386 |
*
|
387 |
*/
|
388 |
+
function cerber_get_ip_info( $ip, $cache_only = false ) {
|
389 |
|
390 |
+
$ip_id = cerber_get_id_ip( $ip );
|
|
|
391 |
|
392 |
+
$ip_info = @unserialize( get_transient( $ip_id ) ); // lazy way
|
393 |
+
if ( $cache_only ) {
|
394 |
+
return $ip_info;
|
395 |
+
}
|
396 |
|
397 |
+
if ( empty( $ip_info['hostname_html'] ) ) {
|
398 |
+
$ip_info = array();
|
399 |
$hostname = @gethostbyaddr( $ip );
|
400 |
+
if ( ! $hostname ) {
|
401 |
+
$hostname = __( 'unknown', 'wp-cerber' );
|
402 |
+
}
|
403 |
+
$ip_info['hostname'] = $hostname;
|
404 |
+
if ( ! filter_var( $hostname, FILTER_VALIDATE_IP ) ) {
|
405 |
+
$hostname = str_replace( '.', '.<wbr>', $hostname );
|
406 |
}
|
407 |
+
$ip_info['hostname_html'] = $hostname;
|
408 |
+
set_transient( $ip_id, serialize( $ip_info ), 24 * 3600 );
|
409 |
}
|
410 |
+
|
411 |
return $ip_info;
|
412 |
}
|
413 |
|
571 |
__( 'IP address', 'wp-cerber' ),
|
572 |
__( 'Date', 'wp-cerber' ),
|
573 |
__( 'Event', 'wp-cerber' ),
|
574 |
+
__( 'Additional Details', 'wp-cerber' ),
|
575 |
__( 'Local User', 'wp-cerber' ),
|
576 |
__( 'User login', 'wp-cerber' ),
|
577 |
__( 'User ID', 'wp-cerber' ),
|
579 |
'Unix Timestamp',
|
580 |
'Session ID',
|
581 |
'URL',
|
|
|
582 |
);
|
583 |
|
584 |
cerber_send_csv_header( 'wp-cerber-activity', $total, $heading, $info );
|
585 |
|
586 |
$labels = cerber_get_labels( 'activity' );
|
587 |
+
$status = cerber_get_labels( 'status' ) + cerber_get_reason();
|
588 |
+
|
589 |
|
590 |
foreach ( $rows as $row ) {
|
591 |
if ( ! empty( $row->details ) ) {
|
598 |
$values[] = $row->ip;
|
599 |
$values[] = cerber_date( $row->stamp );
|
600 |
$values[] = $labels[ $row->activity ];
|
601 |
+
$values[] = $status[ $details[0] ];
|
602 |
$values[] = $row->display_name;
|
603 |
$values[] = $row->ulogin;
|
604 |
$values[] = $row->user_id;
|
606 |
$values[] = $row->stamp;
|
607 |
$values[] = $row->session_id;
|
608 |
$values[] = $details[4];
|
|
|
609 |
|
610 |
cerber_send_csv_line( $values );
|
611 |
}
|
654 |
global $crb_ajax_loader, $wp_roles;
|
655 |
|
656 |
$labels = cerber_get_labels( 'activity' );
|
657 |
+
$status_labels = cerber_get_labels( 'status' ) + cerber_get_reason();
|
658 |
|
659 |
+
$base_url = cerber_admin_link( 'activity' );
|
660 |
$export_link = '';
|
661 |
+
$ret = '';
|
662 |
|
663 |
list( $query, $per_page, $falist, $filter_ip, $filter_login, $user_id, $search ) = cerber_activity_query( $args );
|
664 |
|
699 |
//elseif ($row->activity == 50 && $details[4]) $activity .= ' '.$details[4];
|
700 |
|
701 |
if ( isset( $details[4] ) && ( $row->activity < 10 || $row->activity > 12 ) ) {
|
702 |
+
$activity .= '<p class="act-url">URL: ' . str_replace( array('-','/'), array('<wbr>-','<wbr>/'), $details[4] ) . '</p>';
|
703 |
}
|
704 |
|
705 |
}
|
722 |
$r = '';
|
723 |
}
|
724 |
|
725 |
+
$name = '<a href="' . $base_url . '&filter_user=' . $row->user_id . '"><b>' . $u->display_name . '</b></a><p>' . $r . '</p>';
|
726 |
|
727 |
if ( 1 == 1 ) {
|
728 |
$avatar = get_avatar( $row->user_id, 32 );
|
739 |
$name = '';
|
740 |
}
|
741 |
|
742 |
+
$ip = '<a href="' . $base_url . '&filter_ip=' . $row->ip . '">' . $row->ip . '</a>';
|
743 |
+
$username = '<a href="' . $base_url . '&filter_login=' . urlencode( $row->user_login ) . '">' . $row->user_login . '</a>';
|
744 |
|
745 |
+
$ip_info = cerber_get_ip_info( $row->ip, true );
|
746 |
+
if ( isset( $ip_info['hostname_html'] ) ) {
|
747 |
+
$hostname = $ip_info['hostname_html'];
|
748 |
+
}
|
749 |
else {
|
750 |
$hostname = '<img data-ip-id="' . $ip_id . '" class="crb-no-hostname" src="' . $crb_ajax_loader . '" />' . "\n";
|
751 |
}
|
752 |
|
753 |
+
$tip = '';
|
754 |
|
755 |
$acl = cerber_acl_check($row->ip);
|
756 |
if ($acl == 'W') $tip = __('White IP Access List','wp-cerber');
|
766 |
$date = cerber_ago_time( $row->stamp );
|
767 |
}
|
768 |
else {
|
769 |
+
$date = '<span title="'.$row->stamp.' / '.$row->session_id.' / '.$row->activity .'">'.cerber_date( $row->stamp ).'</span>';
|
770 |
}
|
771 |
|
772 |
if ( $geo ) {
|
1148 |
|
1149 |
}
|
1150 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1151 |
function cerber_get_admin_page(){
|
1152 |
$ret = '';
|
1153 |
if (!empty($_GET['page'])){
|
1791 |
|
1792 |
//echo '<div style="padding-right: 10px;">';
|
1793 |
|
1794 |
+
$kpi_list = cerber_calculate_kpi( 1 );
|
1795 |
|
1796 |
$kpi_show = '';
|
1797 |
+
foreach ( $kpi_list as $kpi ) {
|
1798 |
+
$kpi_show .= '<td>' . $kpi[1] . '</td><td><span style="z-index: 10;">' . $kpi[0] . '</span></td>';
|
1799 |
+
}
|
1800 |
|
1801 |
+
$kpi_show = '<table id = "crb-kpi" class="cerber-margin"><tr>' . $kpi_show . '</tr></table>';
|
1802 |
|
1803 |
+
// TODO: add link "send daily report to my email"
|
1804 |
echo '<div>' . $kpi_show . '<p style="text-align: right; margin: 0;">' . __( 'in the last 24 hours', 'wp-cerber' ) . '</p></div>';
|
1805 |
|
1806 |
//$total = $wpdb->get_var( 'SELECT count(ip) FROM ' . CERBER_LOG_TABLE );
|
1809 |
$links = array();
|
1810 |
$links[] = '<a class="crb-button-tiny" href="' . cerber_admin_link( 'activity' ) . '">' . __( 'View all', 'wp-cerber' ) . '</a>';
|
1811 |
|
1812 |
+
$labels = cerber_get_labels( 'activity' );
|
1813 |
+
$set = array( 5 );
|
1814 |
foreach ( $set as $item ) {
|
1815 |
$links[] = '<a class="crb-button-tiny" href="' . cerber_admin_link( 'activity' ) . '&filter_activity=' . $item . '">' . $labels[ $item ] . '</a>';
|
1816 |
}
|
1820 |
|
1821 |
|
1822 |
//$nav_links = '<span style="display: inline-block; margin-left: 1em;">' . implode(' | ',$links) . '</span>';
|
1823 |
+
$nav_links = implode( ' ', $links );
|
1824 |
|
1825 |
echo '<table class="cerber-margin"><tr><td><h2 style="margin-bottom:0.5em; margin-right: 1em;">' . __( 'Activity', 'wp-cerber' ) . '</h2></td><td>' . $nav_links . '</td></tr></table>';
|
1826 |
|
1827 |
cerber_show_activity( array(
|
1828 |
+
'filter_activity' => crb_get_activity_set( 'dashboard' ),
|
1829 |
'per_page' => 10,
|
1830 |
'no_navi' => true,
|
1831 |
'no_export' => true,
|
1833 |
'date' => 'ago'
|
1834 |
) );
|
1835 |
|
|
|
|
|
|
|
|
|
1836 |
$view = '<a class="crb-button-tiny" href="' . cerber_admin_link( 'lockouts' ) . '">' . __( 'View all', 'wp-cerber' ) . '</a>';
|
1837 |
+
echo '<table class="cerber-margin" style="margin-top:2em;"><tr><td><h2 style="margin-bottom:0.5em; margin-right: 1em;">' . __( 'Recently locked out IP addresses', 'wp-cerber' ) . '</h2></td><td> ' . $view . '</td></tr></table>';
|
1838 |
|
1839 |
cerber_show_lockouts( array(
|
1840 |
'per_page' => 10,
|
1841 |
'no_navi' => true
|
1842 |
) );
|
1843 |
|
|
|
1844 |
}
|
1845 |
|
1846 |
|
2303 |
}
|
2304 |
|
2305 |
/* New */
|
|
|
|
|
|
|
2306 |
#crb-activity td {
|
2307 |
padding-top: 0.5em;
|
2308 |
padding-bottom: 0.5em;
|
2310 |
#crb-activity td.acinfo div {
|
2311 |
padding: 0.1em 0 0.1em 0.7em;
|
2312 |
}
|
2313 |
+
.crb12, .crb16, .crb17, .crb18, .crb19, .crb41, .crb42, .crb50, .crb51, .crb52, .crb53, .crb54, .crb55, .crb56, .crb70, .crb71, .crb100 {
|
2314 |
/*border-left: 4px solid #FF5733;*/
|
2315 |
/*font-weight: bold;*/
|
2316 |
+
border-left: 0.4em solid #FF5733;
|
2317 |
padding-bottom: 2px;
|
2318 |
}
|
2319 |
.crb10, .crb11 {
|
2320 |
+
padding-top: 0 !important;
|
2321 |
+
padding-bottom: 0 !important;
|
2322 |
+
}
|
2323 |
+
.crb10 span, .crb11 span {
|
2324 |
+
margin-left: -0.7em;
|
2325 |
+
padding-left: 1.1em; /* 0.7 + 0.4 */
|
2326 |
+
padding-right: 1em;
|
2327 |
+
}
|
2328 |
+
.crb10 span:first-child, .crb11 span:first-child {
|
2329 |
display: inline-block;
|
2330 |
background-color: #FF5733;
|
2331 |
+
margin-right: 1.5em;
|
2332 |
+
line-height: 2;
|
2333 |
}
|
2334 |
.crb5 {
|
2335 |
/*border-left: 4px solid #FF5733;*/
|
2336 |
+
border-left: 0.4em solid #51AE43;
|
2337 |
padding-bottom: 2px;
|
2338 |
}
|
2339 |
.act-url{
|
2898 |
|
2899 |
if ( $code ) {
|
2900 |
//$country = cerber_get_flag_html( $code ) . '<a href="'.$base_url.'&filter_country='.$code.'">'.cerber_country_name( $code ).'</a>';
|
2901 |
+
$ret = cerber_get_flag_html( $code, cerber_country_name( $code ) );
|
2902 |
}
|
2903 |
else {
|
2904 |
$ip_id = cerber_get_id_ip($ip);
|
3030 |
global $wpdb, $crb_ajax_loader, $wp_roles, $wp_cerber_remote;
|
3031 |
|
3032 |
$labels = cerber_get_labels( 'activity' );
|
3033 |
+
$status_labels = cerber_get_labels( 'status' ) + cerber_get_reason();
|
3034 |
|
3035 |
$base_url = cerber_admin_link( 'traffic' );
|
3036 |
$activity_url = cerber_admin_link( 'activity' );
|
3122 |
|
3123 |
$ip = '<a href="'.$base_url.'&filter_ip='.$row->ip.'">'.$row->ip.'</a>';
|
3124 |
|
3125 |
+
if ( ! empty( $row->hostname ) ) {
|
3126 |
$hostname = $row->hostname;
|
3127 |
+
}
|
3128 |
+
else {
|
3129 |
+
$ip_info = cerber_get_ip_info( $row->ip, true );
|
3130 |
+
if ( isset( $ip_info['hostname_html'] ) ) {
|
3131 |
+
$hostname = $ip_info['hostname_html'];
|
3132 |
+
}
|
3133 |
+
else {
|
3134 |
+
$hostname = '<img data-ip-id="' . $ip_id . '" class="crb-no-hostname" src="' . $crb_ajax_loader . '" />' . "\n";
|
3135 |
+
}
|
3136 |
+
}
|
3137 |
|
3138 |
$tip='';
|
3139 |
|
3150 |
$date = cerber_ago_time( $row->stamp );
|
3151 |
}
|
3152 |
else {
|
3153 |
+
$date = '<span title="'.$row->stamp.' / '.$row->session_id.'">'.cerber_date( $row->stamp ).'</span>';
|
3154 |
}
|
3155 |
|
3156 |
if ( $geo ) {
|
3301 |
$request_details .= '<p style="font-weight: bold;">'.$d[0].'</p>'.$d[1];
|
3302 |
}
|
3303 |
|
3304 |
+
$request = '<b>' . str_replace( array('-','/','%','=','?'), array('<wbr>-','<wbr>/','<wbr>%','<wbr>=','<wbr>?'), htmlentities( urldecode( $row->uri ) ) ) . '</b>' . '<p style="margin-top:1em;"><span class="crb-' . $row->request_method . '">' . $row->request_method . '</span> ' . $f . $wp_type . ' <span class="crb-' . $row->http_code . '"> HTTP ' . $row->http_code . ' ' . get_status_header_desc( $row->http_code ) . '</span> ' . $php_err . ' <span>' . $processing . '</span> <a href="javascript:void(0);" class="crb-traffic-more" style="display: none;">Details</a> ' . $activity . ' </p>' . $wp_obj;
|
3305 |
|
3306 |
// Decorating this table can't be done via simple CSS
|
3307 |
if ( ! empty( $even ) ) {
|
jetflow.php
CHANGED
@@ -4,7 +4,8 @@
|
|
4 |
Integration with the jetFlow.io automation and customization plugin, http://jetflow.io
|
5 |
Actions and triggers definitions.
|
6 |
|
7 |
-
|
|
|
8 |
|
9 |
Licenced under the GNU GPL.
|
10 |
|
4 |
Integration with the jetFlow.io automation and customization plugin, http://jetflow.io
|
5 |
Actions and triggers definitions.
|
6 |
|
7 |
+
Copyright (C) 2015-18 CERBER TECH INC., http://cerber.tech
|
8 |
+
Copyright (C) 2015-18 CERBER TECH INC., https://wpcerber.com
|
9 |
|
10 |
Licenced under the GNU GPL.
|
11 |
|
languages/wp-cerber.pot
CHANGED
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: WP Cerber\n"
|
6 |
"Report-Msgid-Bugs-To: \n"
|
7 |
"POT-Creation-Date: Tue Sep 08 2015 21:38:11 GMT+0300\n"
|
8 |
-
"POT-Revision-Date: Thu
|
9 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: \n"
|
@@ -24,667 +24,672 @@ msgstr ""
|
|
24 |
"esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
|
25 |
"X-Generator: Loco - https://localise.biz/"
|
26 |
|
27 |
-
#: ../dashboard.php:
|
28 |
msgid "Cerber Dashboard"
|
29 |
msgstr ""
|
30 |
|
31 |
-
#: ../dashboard.php:
|
32 |
-
#: php:
|
33 |
msgid "Dashboard"
|
34 |
msgstr ""
|
35 |
|
36 |
-
#: ../dashboard.php:
|
37 |
msgid "Cerber Traffic Inspector"
|
38 |
msgstr ""
|
39 |
|
40 |
-
#: ../dashboard.php:
|
41 |
msgid "Traffic Inspector"
|
42 |
msgstr ""
|
43 |
|
44 |
-
#: ../dashboard.php:
|
45 |
msgid "Cerber Security Rules"
|
46 |
msgstr ""
|
47 |
|
48 |
-
#: ../dashboard.php:
|
49 |
msgid "Security Rules"
|
50 |
msgstr ""
|
51 |
|
52 |
-
#: ../dashboard.php:
|
53 |
msgid "Site Integrity"
|
54 |
msgstr ""
|
55 |
|
56 |
-
#: ../dashboard.php:
|
57 |
msgid "Cerber antispam settings"
|
58 |
msgstr ""
|
59 |
|
60 |
-
#: ../dashboard.php:
|
61 |
msgid "Antispam"
|
62 |
msgstr ""
|
63 |
|
64 |
-
#: ../dashboard.php:
|
65 |
msgid "Cerber tools"
|
66 |
msgstr ""
|
67 |
|
68 |
-
#: ../dashboard.php:
|
69 |
msgid "Tools"
|
70 |
msgstr ""
|
71 |
|
72 |
-
#: ../dashboard.php:
|
73 |
msgid "Remove"
|
74 |
msgstr ""
|
75 |
|
76 |
-
#: ../dashboard.php:
|
77 |
-
#: php:
|
78 |
msgid "IP"
|
79 |
msgstr ""
|
80 |
|
81 |
-
#: ../dashboard.php:
|
82 |
msgid "Hostname"
|
83 |
msgstr ""
|
84 |
|
85 |
-
#: ../dashboard.php:
|
86 |
msgid "Country"
|
87 |
msgstr ""
|
88 |
|
89 |
-
#: ../dashboard.php:
|
90 |
msgid "Expires"
|
91 |
msgstr ""
|
92 |
|
93 |
-
#: ../dashboard.php:
|
94 |
msgid "Reason"
|
95 |
msgstr ""
|
96 |
|
97 |
-
#: ../dashboard.php:
|
98 |
msgid "Action"
|
99 |
msgstr ""
|
100 |
|
101 |
-
#: ../dashboard.php:
|
102 |
#, php-format
|
103 |
msgid "Showing last %d records from %d"
|
104 |
msgstr ""
|
105 |
|
106 |
-
#: ../dashboard.php:
|
107 |
msgid "Hint"
|
108 |
msgstr ""
|
109 |
|
110 |
-
#: ../dashboard.php:
|
111 |
msgid "To view activity, click on the IP"
|
112 |
msgstr ""
|
113 |
|
114 |
-
#: ../dashboard.php:
|
115 |
msgid "No lockouts at the moment. The sky is clear."
|
116 |
msgstr ""
|
117 |
|
118 |
-
#: ../dashboard.php:
|
119 |
-
#: php:
|
120 |
msgid "White IP Access List"
|
121 |
msgstr ""
|
122 |
|
123 |
-
#: ../dashboard.php:
|
124 |
msgid "These IPs will never be locked out"
|
125 |
msgstr ""
|
126 |
|
127 |
-
#: ../dashboard.php:
|
128 |
-
#: php:
|
129 |
msgid "Black IP Access List"
|
130 |
msgstr ""
|
131 |
|
132 |
-
#: ../dashboard.php:
|
133 |
msgid "Nobody can log in or register from these IPs"
|
134 |
msgstr ""
|
135 |
|
136 |
-
#: ../dashboard.php:
|
137 |
msgid "Your IP"
|
138 |
msgstr ""
|
139 |
|
140 |
-
#: ../dashboard.php:
|
141 |
-
#: php:
|
142 |
msgid "Check for activities"
|
143 |
msgstr ""
|
144 |
|
145 |
-
#: ../dashboard.php:
|
146 |
msgid "List is empty"
|
147 |
msgstr ""
|
148 |
|
149 |
-
#: ../dashboard.php:
|
150 |
msgid "IP address, IPv4 address range or subnet"
|
151 |
msgstr ""
|
152 |
|
153 |
-
#: ../dashboard.php:
|
154 |
msgid "Add IP to the list"
|
155 |
msgstr ""
|
156 |
|
157 |
-
#: ../dashboard.php:
|
158 |
msgid "Optional comment for this entry"
|
159 |
msgstr ""
|
160 |
|
161 |
-
#: ../dashboard.php:
|
162 |
msgid "Incorrect IP address or IP range"
|
163 |
msgstr ""
|
164 |
|
165 |
-
#: ../dashboard.php:
|
166 |
#, php-format
|
167 |
msgid "Address %s was added to White IP Access List"
|
168 |
msgstr ""
|
169 |
|
170 |
-
#: ../dashboard.php:
|
171 |
msgid "You cannot add your IP address or network"
|
172 |
msgstr ""
|
173 |
|
174 |
-
#: ../dashboard.php:
|
175 |
#, php-format
|
176 |
msgid "Address %s was added to Black IP Access List"
|
177 |
msgstr ""
|
178 |
|
179 |
-
#: ../dashboard.php:
|
180 |
-
#: /common.php:
|
181 |
msgid "Unknown"
|
182 |
msgstr ""
|
183 |
|
184 |
-
#: ../dashboard.php:
|
185 |
msgid "unknown"
|
186 |
msgstr ""
|
187 |
|
188 |
-
#: ../dashboard.php:
|
189 |
msgid "Email has been sent to"
|
190 |
msgstr ""
|
191 |
|
192 |
-
#: ../dashboard.php:
|
193 |
msgid "Unable to send email to"
|
194 |
msgstr ""
|
195 |
|
196 |
-
#: ../dashboard.php:
|
197 |
#, php-format
|
198 |
msgid "Lockout for %s was removed"
|
199 |
msgstr ""
|
200 |
|
201 |
-
#: ../dashboard.php:
|
202 |
msgid "Settings saved"
|
203 |
msgstr ""
|
204 |
|
205 |
-
#: ../dashboard.php:
|
206 |
msgid "IP address"
|
207 |
msgstr ""
|
208 |
|
209 |
-
#: ../dashboard.php:
|
210 |
-
#: php:
|
211 |
msgid "Date"
|
212 |
msgstr ""
|
213 |
|
214 |
-
#: ../dashboard.php:
|
215 |
msgid "Event"
|
216 |
msgstr ""
|
217 |
|
218 |
-
#: ../dashboard.php:
|
|
|
|
|
|
|
|
|
219 |
msgid "Local User"
|
220 |
msgstr ""
|
221 |
|
222 |
-
#: ../dashboard.php:
|
223 |
msgid "User login"
|
224 |
msgstr ""
|
225 |
|
226 |
-
#: ../dashboard.php:
|
227 |
msgid "User ID"
|
228 |
msgstr ""
|
229 |
|
230 |
-
#: ../dashboard.php:
|
231 |
msgid "Username used"
|
232 |
msgstr ""
|
233 |
|
234 |
-
#: ../dashboard.php:
|
235 |
-
#:
|
236 |
msgid "Locked out"
|
237 |
msgstr ""
|
238 |
|
239 |
-
#: ../dashboard.php:
|
240 |
msgid "Export"
|
241 |
msgstr ""
|
242 |
|
243 |
-
#: ../dashboard.php:
|
244 |
msgid "No activity has been logged."
|
245 |
msgstr ""
|
246 |
|
247 |
-
#: ../dashboard.php:
|
248 |
msgid "All events"
|
249 |
msgstr ""
|
250 |
|
251 |
-
#: ../dashboard.php:
|
252 |
msgid "Search for IP or username"
|
253 |
msgstr ""
|
254 |
|
255 |
-
#: ../dashboard.php:
|
256 |
msgid "Filter"
|
257 |
msgstr ""
|
258 |
|
259 |
-
#: ../dashboard.php:
|
260 |
msgid "Abuse email:"
|
261 |
msgstr ""
|
262 |
|
263 |
-
#: ../dashboard.php:
|
264 |
msgid "Network:"
|
265 |
msgstr ""
|
266 |
|
267 |
-
#: ../dashboard.php:
|
268 |
msgid "Add network to the Black List"
|
269 |
msgstr ""
|
270 |
|
271 |
-
#: ../dashboard.php:
|
272 |
msgid "Add IP to the Black List"
|
273 |
msgstr ""
|
274 |
|
275 |
-
#: ../dashboard.php:
|
276 |
msgid "Activated"
|
277 |
msgstr ""
|
278 |
|
279 |
-
#: ../dashboard.php:
|
280 |
msgid "Last seen"
|
281 |
msgstr ""
|
282 |
|
283 |
-
#: ../dashboard.php:
|
284 |
msgid "Registered"
|
285 |
msgstr ""
|
286 |
|
287 |
-
#: ../dashboard.php:
|
288 |
msgid "Comments"
|
289 |
msgstr ""
|
290 |
|
291 |
-
#: ../dashboard.php:
|
292 |
msgid "Last login"
|
293 |
msgstr ""
|
294 |
|
295 |
-
#: ../dashboard.php:
|
296 |
msgid "Failed login attempts"
|
297 |
msgstr ""
|
298 |
|
299 |
-
#: ../dashboard.php:
|
300 |
msgid "Never"
|
301 |
msgstr ""
|
302 |
|
303 |
-
#: ../dashboard.php:
|
304 |
msgid "You"
|
305 |
msgstr ""
|
306 |
|
307 |
-
#: ../dashboard.php:
|
308 |
msgid "Cerber Quick View"
|
309 |
msgstr ""
|
310 |
|
311 |
-
#: ../dashboard.php:
|
312 |
msgid "active"
|
313 |
msgstr ""
|
314 |
|
315 |
-
#: ../dashboard.php:
|
316 |
msgid "deactivate"
|
317 |
msgstr ""
|
318 |
|
319 |
-
#: ../dashboard.php:
|
320 |
msgid "not active"
|
321 |
msgstr ""
|
322 |
|
323 |
-
#: ../dashboard.php:
|
324 |
msgid "disabled"
|
325 |
msgstr ""
|
326 |
|
327 |
-
#: ../dashboard.php:
|
328 |
msgid "failed attempts"
|
329 |
msgstr ""
|
330 |
|
331 |
-
#: ../dashboard.php:
|
332 |
msgid "in 24 hours"
|
333 |
msgstr ""
|
334 |
|
335 |
-
#: ../dashboard.php:
|
336 |
msgid "view all"
|
337 |
msgstr ""
|
338 |
|
339 |
-
#: ../dashboard.php:
|
340 |
msgid "lockouts"
|
341 |
msgstr ""
|
342 |
|
343 |
-
#: ../dashboard.php:
|
344 |
msgid "Lockouts at the moment"
|
345 |
msgstr ""
|
346 |
|
347 |
-
#: ../dashboard.php:
|
348 |
msgid "Last lockout"
|
349 |
msgstr ""
|
350 |
|
351 |
-
#: ../dashboard.php:
|
352 |
msgid "entry"
|
353 |
msgid_plural "entries"
|
354 |
msgstr[0] ""
|
355 |
msgstr[1] ""
|
356 |
|
357 |
-
#: ../dashboard.php:
|
358 |
msgid "Citadel mode"
|
359 |
msgstr ""
|
360 |
|
361 |
-
#: ../dashboard.php:
|
362 |
msgid "enabled"
|
363 |
msgstr ""
|
364 |
|
365 |
-
#: ../dashboard.php:
|
366 |
msgid "no connection"
|
367 |
msgstr ""
|
368 |
|
369 |
-
#: ../dashboard.php:
|
370 |
msgctxt "Example: Last malware scan: 23 Jan 2018"
|
371 |
msgid "Last malware scan"
|
372 |
msgstr ""
|
373 |
|
374 |
-
#: ../dashboard.php:
|
|
|
375 |
msgid "Disabled"
|
376 |
msgstr ""
|
377 |
|
378 |
-
#: ../dashboard.php:
|
379 |
msgid "Quick Scan"
|
380 |
msgstr ""
|
381 |
|
382 |
-
#: ../dashboard.php:
|
383 |
msgid "Full Scan"
|
384 |
msgstr ""
|
385 |
|
386 |
-
#: ../dashboard.php:
|
387 |
-
#: /settings.php:
|
388 |
msgid "Activity"
|
389 |
msgstr ""
|
390 |
|
391 |
-
#: ../dashboard.php:
|
392 |
msgid "Traffic"
|
393 |
msgstr ""
|
394 |
|
395 |
-
#: ../dashboard.php:
|
396 |
msgid "Integrity"
|
397 |
msgstr ""
|
398 |
|
399 |
-
#: ../dashboard.php:
|
400 |
msgid "My site is behind a reverse proxy"
|
401 |
msgstr ""
|
402 |
|
403 |
-
#: ../dashboard.php:
|
404 |
msgid "in the last 24 hours"
|
405 |
msgstr ""
|
406 |
|
407 |
-
#: ../dashboard.php:
|
408 |
msgid "View all"
|
409 |
msgstr ""
|
410 |
|
411 |
-
#: ../dashboard.php:
|
412 |
msgid "User registered"
|
413 |
msgstr ""
|
414 |
|
415 |
-
#: ../dashboard.php:
|
416 |
msgid "All suspicious activity"
|
417 |
msgstr ""
|
418 |
|
419 |
-
#: ../dashboard.php:
|
420 |
msgid "Recently locked out IP addresses"
|
421 |
msgstr ""
|
422 |
|
423 |
-
#: ../dashboard.php:
|
424 |
msgid "Confused about some settings?"
|
425 |
msgstr ""
|
426 |
|
427 |
-
#: ../dashboard.php:
|
428 |
msgid "You can easily load default recommended settings using button below"
|
429 |
msgstr ""
|
430 |
|
431 |
-
#: ../dashboard.php:
|
432 |
msgid "Load default settings"
|
433 |
msgstr ""
|
434 |
|
435 |
-
#: ../dashboard.php:
|
436 |
-
#: /cerber-scanner.php:
|
437 |
msgid "Are you sure?"
|
438 |
msgstr ""
|
439 |
|
440 |
-
#: ../dashboard.php:
|
441 |
msgid "doesn't affect Custom login URL and Access Lists"
|
442 |
msgstr ""
|
443 |
|
444 |
-
#: ../dashboard.php:
|
445 |
msgid "Getting Started Guide"
|
446 |
msgstr ""
|
447 |
|
448 |
-
#: ../dashboard.php:
|
449 |
msgid "Attention! Citadel mode is now active. Nobody is able to log in."
|
450 |
msgstr ""
|
451 |
|
452 |
-
#: ../dashboard.php:
|
453 |
msgid "Deactivate"
|
454 |
msgstr ""
|
455 |
|
456 |
-
#: ../dashboard.php:
|
457 |
msgid "View Activity"
|
458 |
msgstr ""
|
459 |
|
460 |
-
#: ../dashboard.php:
|
461 |
msgid "Subscribe"
|
462 |
msgstr ""
|
463 |
|
464 |
-
#: ../dashboard.php:
|
465 |
msgid "Unsubscribe"
|
466 |
msgstr ""
|
467 |
|
468 |
-
#: ../dashboard.php:
|
469 |
msgid "You've subscribed"
|
470 |
msgstr ""
|
471 |
|
472 |
-
#: ../dashboard.php:
|
473 |
msgid "You've unsubscribed"
|
474 |
msgstr ""
|
475 |
|
476 |
-
#: ../dashboard.php:
|
477 |
msgid "Main settings"
|
478 |
msgstr ""
|
479 |
|
480 |
-
#: ../dashboard.php:
|
481 |
msgid "Are you sure you want to delete selected files?"
|
482 |
msgstr ""
|
483 |
|
484 |
-
#: ../dashboard.php:
|
485 |
msgid "These files have been moved to the quarantine"
|
486 |
msgstr ""
|
487 |
|
488 |
-
#: ../dashboard.php:
|
489 |
msgid "Do you want to add selected files to the ignore list?"
|
490 |
msgstr ""
|
491 |
|
492 |
-
#: ../dashboard.php:
|
493 |
msgid "These files have been added to the ignore list"
|
494 |
msgstr ""
|
495 |
|
496 |
-
#: ../dashboard.php:
|
497 |
msgid "Some errors occurred"
|
498 |
msgstr ""
|
499 |
|
500 |
-
#: ../dashboard.php:
|
501 |
msgid "All files have been processed"
|
502 |
msgstr ""
|
503 |
|
504 |
-
#: ../dashboard.php:
|
505 |
msgid "These features are available in a professional version of the plugin."
|
506 |
msgstr ""
|
507 |
|
508 |
-
#: ../dashboard.php:
|
509 |
msgid "Know more about all advantages at"
|
510 |
msgstr ""
|
511 |
|
512 |
-
#: ../dashboard.php:
|
513 |
msgid "Countries"
|
514 |
msgstr ""
|
515 |
|
516 |
-
#: ../dashboard.php:
|
517 |
#, php-format
|
518 |
msgid "Permitted for one country"
|
519 |
msgid_plural "Permitted for %d countries"
|
520 |
msgstr[0] ""
|
521 |
msgstr[1] ""
|
522 |
|
523 |
-
#: ../dashboard.php:
|
524 |
#, php-format
|
525 |
msgid "Not permitted for one country"
|
526 |
msgid_plural "Not permitted for %d countries"
|
527 |
msgstr[0] ""
|
528 |
msgstr[1] ""
|
529 |
|
530 |
-
#: ../dashboard.php:
|
531 |
msgid "No rule"
|
532 |
msgstr ""
|
533 |
|
534 |
-
#: ../dashboard.php:
|
535 |
msgid "Start typing here to find a country"
|
536 |
msgstr ""
|
537 |
|
538 |
-
#: ../dashboard.php:
|
539 |
msgid "Click on a country name to add it to the list of selected countries"
|
540 |
msgstr ""
|
541 |
|
542 |
-
#: ../dashboard.php:
|
543 |
#, php-format
|
544 |
msgctxt "to is a marker of infinitive, e.g. \"to use it\""
|
545 |
msgid "Selected countries are permitted to %s, other countries are not permitted to"
|
546 |
msgstr ""
|
547 |
|
548 |
-
#: ../dashboard.php:
|
549 |
#, php-format
|
550 |
msgctxt "to is a marker of infinitive, e.g. \"to use it\""
|
551 |
msgid "Selected countries are not permitted to %s, other countries are permitted to"
|
552 |
msgstr ""
|
553 |
|
554 |
-
#: ../dashboard.php:
|
555 |
msgid "Submit forms"
|
556 |
msgstr ""
|
557 |
|
558 |
-
#: ../dashboard.php:
|
559 |
msgid "Post comments"
|
560 |
msgstr ""
|
561 |
|
562 |
-
#: ../dashboard.php:
|
563 |
msgid "Log in to the website"
|
564 |
msgstr ""
|
565 |
|
566 |
-
#: ../dashboard.php:
|
567 |
msgid "Register on the website"
|
568 |
msgstr ""
|
569 |
|
570 |
-
#: ../dashboard.php:
|
571 |
msgid "Use XML-RPC"
|
572 |
msgstr ""
|
573 |
|
574 |
-
#: ../dashboard.php:
|
575 |
msgid "Use REST API"
|
576 |
msgstr ""
|
577 |
|
578 |
-
#: ../dashboard.php:
|
579 |
msgid "Security rules have been updated"
|
580 |
msgstr ""
|
581 |
|
582 |
-
#: ../dashboard.php:
|
583 |
msgid "Live Traffic"
|
584 |
msgstr ""
|
585 |
|
586 |
-
#: ../dashboard.php:
|
587 |
#: scanner.php:76
|
588 |
msgid "Settings"
|
589 |
msgstr ""
|
590 |
|
591 |
-
#: ../dashboard.php:
|
592 |
msgid "Page generation time"
|
593 |
msgstr ""
|
594 |
|
595 |
-
#: ../dashboard.php:
|
596 |
msgid "Request"
|
597 |
msgstr ""
|
598 |
|
599 |
-
#: ../dashboard.php:
|
600 |
msgid "Host Info"
|
601 |
msgstr ""
|
602 |
|
603 |
-
#: ../dashboard.php:
|
604 |
msgid "User Agent"
|
605 |
msgstr ""
|
606 |
|
607 |
-
#: ../dashboard.php:
|
608 |
msgid "No requests have been logged."
|
609 |
msgstr ""
|
610 |
|
611 |
-
#: ../dashboard.php:
|
612 |
msgid "All requests"
|
613 |
msgstr ""
|
614 |
|
615 |
-
#: ../dashboard.php:
|
616 |
msgid "Suspicious activity"
|
617 |
msgstr ""
|
618 |
|
619 |
-
#: ../dashboard.php:
|
620 |
msgid "Errors"
|
621 |
msgstr ""
|
622 |
|
623 |
-
#: ../dashboard.php:
|
624 |
msgid "Logged in users"
|
625 |
msgstr ""
|
626 |
|
627 |
-
#: ../dashboard.php:
|
628 |
msgid "Not logged in visitors"
|
629 |
msgstr ""
|
630 |
|
631 |
-
#: ../dashboard.php:
|
632 |
msgid "Form submissions"
|
633 |
msgstr ""
|
634 |
|
635 |
-
#: ../dashboard.php:
|
636 |
msgid "Page Not Found"
|
637 |
msgstr ""
|
638 |
|
639 |
-
#: ../dashboard.php:
|
640 |
msgid "Longer than"
|
641 |
msgstr ""
|
642 |
|
643 |
-
#: ../dashboard.php:
|
644 |
msgid "Refresh"
|
645 |
msgstr ""
|
646 |
|
647 |
-
#: ../dashboard.php:
|
648 |
msgid "Any"
|
649 |
msgstr ""
|
650 |
|
651 |
-
#: ../dashboard.php:
|
652 |
msgid "Advanced search"
|
653 |
msgstr ""
|
654 |
|
655 |
-
#: ../dashboard.php:
|
656 |
msgid "Antispam engine"
|
657 |
msgstr ""
|
658 |
|
659 |
-
#: ../dashboard.php:
|
660 |
msgid "Antispam and bot detection settings"
|
661 |
msgstr ""
|
662 |
|
663 |
-
#: ../dashboard.php:
|
664 |
msgid "Help"
|
665 |
msgstr ""
|
666 |
|
667 |
-
#: ../dashboard.php:
|
668 |
msgid "Log In"
|
669 |
msgstr ""
|
670 |
|
671 |
-
#: ../dashboard.php:
|
672 |
msgid "Log Out"
|
673 |
msgstr ""
|
674 |
|
675 |
-
#: ../dashboard.php:
|
676 |
msgid "Register"
|
677 |
msgstr ""
|
678 |
|
679 |
-
#: ../dashboard.php:
|
680 |
msgid "WooCommerce Log In"
|
681 |
msgstr ""
|
682 |
|
683 |
-
#: ../dashboard.php:
|
684 |
msgid "WooCommerce Log Out"
|
685 |
msgstr ""
|
686 |
|
687 |
-
#: ../dashboard.php:
|
688 |
msgid "Add to menu"
|
689 |
msgstr ""
|
690 |
|
@@ -709,288 +714,292 @@ msgstr ""
|
|
709 |
msgid "Gregory"
|
710 |
msgstr ""
|
711 |
|
712 |
-
#: ../common.php:
|
713 |
msgid "Check for requests"
|
714 |
msgstr ""
|
715 |
|
716 |
-
#: ../common.php:
|
717 |
msgid "Malicious activities mitigated"
|
718 |
msgstr ""
|
719 |
|
720 |
-
#: ../common.php:
|
721 |
msgid "Spam comments denied"
|
722 |
msgstr ""
|
723 |
|
724 |
-
#: ../common.php:
|
725 |
msgid "Spam form submissions denied"
|
726 |
msgstr ""
|
727 |
|
728 |
-
#: ../common.php:
|
729 |
msgid "Malicious IP addresses detected"
|
730 |
msgstr ""
|
731 |
|
732 |
-
#: ../common.php:
|
733 |
msgid "Lockouts occurred"
|
734 |
msgstr ""
|
735 |
|
736 |
-
#: ../common.php:
|
737 |
-
#: /common.php:
|
738 |
-
#: php:
|
739 |
-
#: ../cerber-load.php:
|
740 |
-
#: /cerber-load.php:
|
741 |
-
#: /settings.php:
|
742 |
msgid "ERROR:"
|
743 |
msgstr ""
|
744 |
|
745 |
-
#: ../common.php:
|
746 |
msgid "User created"
|
747 |
msgstr ""
|
748 |
|
749 |
-
#: ../common.php:
|
750 |
msgid "Logged in"
|
751 |
msgstr ""
|
752 |
|
753 |
-
#: ../common.php:
|
754 |
msgid "Logged out"
|
755 |
msgstr ""
|
756 |
|
757 |
-
#: ../common.php:
|
758 |
msgid "Login failed"
|
759 |
msgstr ""
|
760 |
|
761 |
-
#: ../common.php:
|
762 |
msgid "IP blocked"
|
763 |
msgstr ""
|
764 |
|
765 |
-
#: ../common.php:
|
766 |
msgid "Subnet blocked"
|
767 |
msgstr ""
|
768 |
|
769 |
-
#: ../common.php:
|
770 |
msgid "Citadel activated!"
|
771 |
msgstr ""
|
772 |
|
773 |
-
#: ../common.php:
|
774 |
msgid "Spam comment denied"
|
775 |
msgstr ""
|
776 |
|
777 |
-
#: ../common.php:
|
778 |
msgid "Spam form submission denied"
|
779 |
msgstr ""
|
780 |
|
781 |
-
#: ../common.php:
|
782 |
msgid "Form submission denied"
|
783 |
msgstr ""
|
784 |
|
785 |
-
#: ../common.php:
|
786 |
msgid "Comment denied"
|
787 |
msgstr ""
|
788 |
|
789 |
-
#: ../common.php:
|
790 |
msgid "Password changed"
|
791 |
msgstr ""
|
792 |
|
793 |
-
#: ../common.php:
|
794 |
msgid "Password reset requested"
|
795 |
msgstr ""
|
796 |
|
797 |
-
#: ../common.php:
|
798 |
msgid "reCAPTCHA verification failed"
|
799 |
msgstr ""
|
800 |
|
801 |
-
#: ../common.php:
|
802 |
msgid "reCAPTCHA settings are incorrect"
|
803 |
msgstr ""
|
804 |
|
805 |
-
#: ../common.php:
|
806 |
msgid "Request to the Google reCAPTCHA service failed"
|
807 |
msgstr ""
|
808 |
|
809 |
-
#: ../common.php:
|
810 |
msgid "Attempt to access prohibited URL"
|
811 |
msgstr ""
|
812 |
|
813 |
-
#: ../common.php:
|
814 |
msgid "Attempt to log in with non-existent username"
|
815 |
msgstr ""
|
816 |
|
817 |
-
#: ../common.php:
|
818 |
msgid "Attempt to log in with prohibited username"
|
819 |
msgstr ""
|
820 |
|
821 |
-
#: ../common.php:
|
822 |
msgid "Attempt to log in denied"
|
823 |
msgstr ""
|
824 |
|
825 |
-
#: ../common.php:
|
826 |
msgid "Attempt to register denied"
|
827 |
msgstr ""
|
828 |
|
829 |
-
#: ../common.php:
|
830 |
msgid "Probing for vulnerable PHP code"
|
831 |
msgstr ""
|
832 |
|
833 |
-
#: ../common.php:
|
834 |
msgid "Attempt to upload malicious file denied"
|
835 |
msgstr ""
|
836 |
|
837 |
-
#: ../common.php:
|
838 |
msgid "File upload denied"
|
839 |
msgstr ""
|
840 |
|
841 |
-
#: ../common.php:
|
842 |
msgid "Request to REST API denied"
|
843 |
msgstr ""
|
844 |
|
845 |
-
#: ../common.php:
|
846 |
msgid "XML-RPC request denied"
|
847 |
msgstr ""
|
848 |
|
849 |
-
#: ../common.php:
|
850 |
msgid "Malicious request denied"
|
851 |
msgstr ""
|
852 |
|
853 |
-
#: ../common.php:
|
854 |
msgid "User activated"
|
855 |
msgstr ""
|
856 |
|
857 |
-
#: ../common.php:
|
858 |
msgid "Bot detected"
|
859 |
msgstr ""
|
860 |
|
861 |
-
#: ../common.php:
|
862 |
msgid "Citadel mode is active"
|
863 |
msgstr ""
|
864 |
|
865 |
-
#: ../common.php:
|
|
|
|
|
|
|
|
|
866 |
msgid "IP blacklisted"
|
867 |
msgstr ""
|
868 |
|
869 |
-
#: ../common.php:
|
870 |
msgid "Malicious activity detected"
|
871 |
msgstr ""
|
872 |
|
873 |
-
#: ../common.php:
|
874 |
msgid "Blocked by country rule"
|
875 |
msgstr ""
|
876 |
|
877 |
-
#: ../common.php:
|
878 |
msgid "Limit reached"
|
879 |
msgstr ""
|
880 |
|
881 |
-
#: ../common.php:
|
882 |
msgid "Multiple suspicious activities"
|
883 |
msgstr ""
|
884 |
|
885 |
-
#: ../common.php:
|
886 |
msgid "Denied"
|
887 |
msgstr ""
|
888 |
|
889 |
-
#: ../common.php:
|
890 |
msgid "Suspicious number of fields"
|
891 |
msgstr ""
|
892 |
|
893 |
-
#: ../common.php:
|
894 |
msgid "Suspicious number of nested values"
|
895 |
msgstr ""
|
896 |
|
897 |
-
#: ../common.php:
|
898 |
msgid "Malicious code detected"
|
899 |
msgstr ""
|
900 |
|
901 |
-
#: ../common.php:
|
902 |
msgid "Suspicious SQL code detected"
|
903 |
msgstr ""
|
904 |
|
905 |
-
#: ../common.php:
|
906 |
msgid "Suspicious JavaScript code detected"
|
907 |
msgstr ""
|
908 |
|
909 |
-
#: ../common.php:
|
910 |
msgid "Limit on login attempts is reached"
|
911 |
msgstr ""
|
912 |
|
913 |
-
#: ../common.php:
|
914 |
msgid "Attempt to access"
|
915 |
msgstr ""
|
916 |
|
917 |
-
#: ../common.php:
|
918 |
msgid "Limit on failed reCAPTCHA verifications is reached"
|
919 |
msgstr ""
|
920 |
|
921 |
-
#: ../common.php:
|
922 |
msgid "Bot activity is detected"
|
923 |
msgstr ""
|
924 |
|
925 |
-
#: ../common.php:
|
926 |
msgid "Multiple suspicious activities were detected"
|
927 |
msgstr ""
|
928 |
|
929 |
-
#: ../common.php:
|
930 |
msgid "Attempt to upload a file with malicious code"
|
931 |
msgstr ""
|
932 |
|
933 |
-
#: ../common.php:
|
934 |
msgid "Multiple suspicious requests"
|
935 |
msgstr ""
|
936 |
|
937 |
-
#: ../common.php:
|
938 |
#, php-format
|
939 |
msgid "%s ago"
|
940 |
msgstr ""
|
941 |
|
942 |
-
#: ../common.php:
|
943 |
#, php-format
|
944 |
msgctxt "preposition of a period of time like: in 6 hours"
|
945 |
msgid "in %s"
|
946 |
msgstr ""
|
947 |
|
948 |
-
#: ../common.php:
|
949 |
msgid "Bytes"
|
950 |
msgstr ""
|
951 |
|
952 |
-
#: ../common.php:
|
953 |
msgid "New version is available"
|
954 |
msgstr ""
|
955 |
|
956 |
-
#: ../common.php:
|
957 |
#, php-format
|
958 |
msgid "Update to version %s of WP Cerber"
|
959 |
msgstr ""
|
960 |
|
961 |
-
#: ../common.php:
|
962 |
msgid "Not specified"
|
963 |
msgstr ""
|
964 |
|
965 |
-
#: ../common.php:
|
966 |
msgid "Unable to create the directory"
|
967 |
msgstr ""
|
968 |
|
969 |
-
#: ../common.php:
|
970 |
msgid "Destination folder access denied"
|
971 |
msgstr ""
|
972 |
|
973 |
-
#: ../common.php:
|
974 |
msgid "File not found"
|
975 |
msgstr ""
|
976 |
|
977 |
-
#: ../common.php:
|
978 |
msgid "Unable to copy the file"
|
979 |
msgstr ""
|
980 |
|
981 |
-
#: ../common.php:
|
982 |
msgid "Unable to delete the file"
|
983 |
msgstr ""
|
984 |
|
985 |
-
#: ../cerber-news.php:
|
986 |
msgid "Awesome!"
|
987 |
msgstr ""
|
988 |
|
989 |
-
#: ../cerber-lab.php:
|
990 |
msgid "Want to make WP Cerber even more powerful?"
|
991 |
msgstr ""
|
992 |
|
993 |
-
#: ../cerber-lab.php:
|
994 |
msgid ""
|
995 |
"Allow WP Cerber to send locked out malicious IP addresses to Cerber Lab. "
|
996 |
"This helps the plugin team to develop new algorithms for WP Cerber that will "
|
@@ -998,1209 +1007,1225 @@ msgid ""
|
|
998 |
"everyday. You can disable the sending in the plugin settings at any time."
|
999 |
msgstr ""
|
1000 |
|
1001 |
-
#: ../cerber-lab.php:
|
1002 |
msgid "OK, nail them all"
|
1003 |
msgstr ""
|
1004 |
|
1005 |
-
#: ../cerber-lab.php:
|
1006 |
msgid "NO, maybe later"
|
1007 |
msgstr ""
|
1008 |
|
1009 |
-
#: ../cerber-lab.php:
|
1010 |
msgid "Know more"
|
1011 |
msgstr ""
|
1012 |
|
1013 |
-
#: ../cerber-load.php:
|
1014 |
msgid "You are not allowed to log in. Ask your administrator for assistance."
|
1015 |
msgstr ""
|
1016 |
|
1017 |
-
#: ../cerber-load.php:
|
1018 |
#, php-format
|
1019 |
msgid ""
|
1020 |
"You have exceeded the number of allowed login attempts. Please try again in "
|
1021 |
"%d minutes."
|
1022 |
msgstr ""
|
1023 |
|
1024 |
-
#: ../cerber-load.php:
|
1025 |
#, php-format
|
1026 |
msgid "You have only one attempt remaining."
|
1027 |
msgid_plural "You have %d attempts remaining."
|
1028 |
msgstr[0] ""
|
1029 |
msgstr[1] ""
|
1030 |
|
1031 |
-
#: ../cerber-load.php:
|
1032 |
msgid ""
|
1033 |
"Human verification failed. Please click the square box in the reCAPTCHA "
|
1034 |
"block below."
|
1035 |
msgstr ""
|
1036 |
|
1037 |
-
#: ../cerber-load.php:
|
1038 |
msgid ""
|
1039 |
"> > > Translator of WP Cerber? To get the PRO license for free, drop your "
|
1040 |
"contacts here: https://wpcerber.com/contact/"
|
1041 |
msgstr ""
|
1042 |
|
1043 |
-
#: ../cerber-load.php:
|
1044 |
#, php-format
|
1045 |
msgid ""
|
1046 |
"<strong>ERROR</strong>: The password you entered for the username %s is "
|
1047 |
"incorrect."
|
1048 |
msgstr ""
|
1049 |
|
1050 |
-
#: ../cerber-load.php:
|
1051 |
-
#: /cerber-load.php:
|
1052 |
msgid "You are not allowed to register."
|
1053 |
msgstr ""
|
1054 |
|
1055 |
-
#: ../cerber-load.php:
|
1056 |
msgid "Username is not allowed. Please choose another one."
|
1057 |
msgstr ""
|
1058 |
|
1059 |
-
#: ../cerber-load.php:
|
1060 |
msgid "Sorry, human verification failed."
|
1061 |
msgstr ""
|
1062 |
|
1063 |
-
#: ../cerber-load.php:
|
1064 |
msgid "We're sorry, you are not allowed to proceed"
|
1065 |
msgstr ""
|
1066 |
|
1067 |
-
#: ../cerber-load.php:
|
1068 |
msgid "WP Cerber notify"
|
1069 |
msgstr ""
|
1070 |
|
1071 |
-
#: ../cerber-load.php:
|
1072 |
msgid "Citadel mode is activated"
|
1073 |
msgstr ""
|
1074 |
|
1075 |
-
#: ../cerber-load.php:
|
1076 |
#, php-format
|
1077 |
msgid "Citadel mode is activated after %d failed login attempts in %d minutes."
|
1078 |
msgstr ""
|
1079 |
|
1080 |
-
#: ../cerber-load.php:
|
1081 |
#, php-format
|
1082 |
msgid "Last failed attempt was at %s from IP %s with user login: %s."
|
1083 |
msgstr ""
|
1084 |
|
1085 |
-
#: ../cerber-load.php:
|
1086 |
msgid "View activity in dashboard"
|
1087 |
msgstr ""
|
1088 |
|
1089 |
-
#: ../cerber-load.php:
|
1090 |
msgid "unspecified"
|
1091 |
msgstr ""
|
1092 |
|
1093 |
-
#: ../cerber-load.php:
|
1094 |
msgid "Number of lockouts is increasing"
|
1095 |
msgstr ""
|
1096 |
|
1097 |
-
#: ../cerber-load.php:
|
1098 |
msgid "Number of active lockouts"
|
1099 |
msgstr ""
|
1100 |
|
1101 |
-
#: ../cerber-load.php:
|
1102 |
#, php-format
|
1103 |
msgid "Last lockout was added: %s for IP %s"
|
1104 |
msgstr ""
|
1105 |
|
1106 |
-
#: ../cerber-load.php:
|
1107 |
msgid "View activity for this IP"
|
1108 |
msgstr ""
|
1109 |
|
1110 |
-
#: ../cerber-load.php:
|
1111 |
msgid "View lockouts in dashboard"
|
1112 |
msgstr ""
|
1113 |
|
1114 |
-
#: ../cerber-load.php:
|
1115 |
msgid "A new version of WP Cerber is available to install"
|
1116 |
msgstr ""
|
1117 |
|
1118 |
-
#: ../cerber-load.php:
|
1119 |
msgid "Hi!"
|
1120 |
msgstr ""
|
1121 |
|
1122 |
-
#: ../cerber-load.php:
|
1123 |
msgid "Website"
|
1124 |
msgstr ""
|
1125 |
|
1126 |
-
#: ../cerber-load.php:
|
1127 |
msgid "The WP Cerber security plugin has been deactivated"
|
1128 |
msgstr ""
|
1129 |
|
1130 |
-
#: ../cerber-load.php:
|
1131 |
msgid "Not logged in"
|
1132 |
msgstr ""
|
1133 |
|
1134 |
-
#: ../cerber-load.php:
|
1135 |
msgid "By user"
|
1136 |
msgstr ""
|
1137 |
|
1138 |
-
#: ../cerber-load.php:
|
1139 |
msgid "From IP address"
|
1140 |
msgstr ""
|
1141 |
|
1142 |
-
#: ../cerber-load.php:
|
1143 |
msgid "From country"
|
1144 |
msgstr ""
|
1145 |
|
1146 |
-
#: ../cerber-load.php:
|
1147 |
msgid "The WP Cerber security plugin is now active"
|
1148 |
msgstr ""
|
1149 |
|
1150 |
-
#: ../cerber-load.php:
|
1151 |
msgid "WP Cerber is now active and has started protecting your site"
|
1152 |
msgstr ""
|
1153 |
|
1154 |
-
#: ../cerber-load.php:
|
1155 |
msgid "New Custom login URL"
|
1156 |
msgstr ""
|
1157 |
|
1158 |
-
#: ../cerber-load.php:
|
1159 |
msgid "A new activity has been recorded"
|
1160 |
msgstr ""
|
1161 |
|
1162 |
-
#: ../cerber-load.php:
|
1163 |
msgid "Weekly report"
|
1164 |
msgstr ""
|
1165 |
|
1166 |
-
#: ../cerber-load.php:
|
1167 |
msgid "To change reporting settings visit"
|
1168 |
msgstr ""
|
1169 |
|
1170 |
-
#: ../cerber-load.php:
|
1171 |
msgid "Scanner Report"
|
1172 |
msgstr ""
|
1173 |
|
1174 |
-
#: ../cerber-load.php:
|
1175 |
msgid "Your login page:"
|
1176 |
msgstr ""
|
1177 |
|
1178 |
-
#: ../cerber-load.php:
|
1179 |
msgid "Your license is valid until"
|
1180 |
msgstr ""
|
1181 |
|
1182 |
-
#: ../cerber-load.php:
|
1183 |
msgid "This message was sent by"
|
1184 |
msgstr ""
|
1185 |
|
1186 |
-
#: ../cerber-load.php:
|
1187 |
#, php-format
|
1188 |
msgid "Your last sign-in was %s from %s"
|
1189 |
msgstr ""
|
1190 |
|
1191 |
-
#: ../cerber-load.php:
|
1192 |
msgid "Weekly Report"
|
1193 |
msgstr ""
|
1194 |
|
1195 |
-
#: ../cerber-load.php:
|
1196 |
msgid "Activity details"
|
1197 |
msgstr ""
|
1198 |
|
1199 |
-
#: ../cerber-load.php:
|
1200 |
msgid "Attempts to log in with non-existent username"
|
1201 |
msgstr ""
|
1202 |
|
1203 |
-
#: ../cerber-load.php:
|
1204 |
msgid "User"
|
1205 |
msgstr ""
|
1206 |
|
1207 |
-
#: ../cerber-load.php:
|
1208 |
msgid "Search string"
|
1209 |
msgstr ""
|
1210 |
|
1211 |
-
#: ../cerber-load.php:
|
1212 |
msgid "To unsubscribe click here"
|
1213 |
msgstr ""
|
1214 |
|
1215 |
-
#: ../cerber-load.php:
|
1216 |
#, php-format
|
1217 |
msgid "The WP Cerber requires PHP %s or higher. You are running"
|
1218 |
msgstr ""
|
1219 |
|
1220 |
-
#: ../cerber-load.php:
|
1221 |
#, php-format
|
1222 |
msgid "The WP Cerber requires WordPress %s or higher. You are running"
|
1223 |
msgstr ""
|
1224 |
|
1225 |
-
#: ../cerber-load.php:
|
1226 |
msgid "Can't activate WP Cerber due to a database error."
|
1227 |
msgstr ""
|
1228 |
|
1229 |
-
#: ../cerber-load.php:
|
1230 |
msgid "Your IP address is added to the"
|
1231 |
msgstr ""
|
1232 |
|
1233 |
-
#: ../cerber-load.php:
|
1234 |
msgid "Main Settings"
|
1235 |
msgstr ""
|
1236 |
|
1237 |
-
#: ../cerber-load.php:
|
1238 |
msgid "Security Scanner"
|
1239 |
msgstr ""
|
1240 |
|
1241 |
-
#: ../cerber-load.php:
|
1242 |
-
#: tools.php:
|
1243 |
msgid "Access Lists"
|
1244 |
msgstr ""
|
1245 |
|
1246 |
-
#: ../cerber-load.php:
|
1247 |
msgid "Hardening"
|
1248 |
msgstr ""
|
1249 |
|
1250 |
-
#: ../cerber-load.php:
|
1251 |
-
#:
|
1252 |
msgid "Notifications"
|
1253 |
msgstr ""
|
1254 |
|
1255 |
-
#: ../cerber-load.php:
|
1256 |
msgid "Import settings"
|
1257 |
msgstr ""
|
1258 |
|
1259 |
-
#: ../settings.php:
|
1260 |
msgid "Plugin initialization"
|
1261 |
msgstr ""
|
1262 |
|
1263 |
-
#: ../settings.php:
|
1264 |
msgid "Load security engine"
|
1265 |
msgstr ""
|
1266 |
|
1267 |
-
#: ../settings.php:
|
1268 |
msgid "Legacy mode"
|
1269 |
msgstr ""
|
1270 |
|
1271 |
-
#: ../settings.php:
|
1272 |
msgid "Standard mode"
|
1273 |
msgstr ""
|
1274 |
|
1275 |
-
#: ../settings.php:
|
1276 |
msgid "Limit login attempts"
|
1277 |
msgstr ""
|
1278 |
|
1279 |
-
#: ../settings.php:
|
1280 |
msgid "Attempts"
|
1281 |
msgstr ""
|
1282 |
|
1283 |
-
#: ../settings.php:
|
1284 |
msgid "Lockout duration"
|
1285 |
msgstr ""
|
1286 |
|
1287 |
-
#: ../settings.php:
|
1288 |
msgid "minutes"
|
1289 |
msgstr ""
|
1290 |
|
1291 |
-
#: ../settings.php:
|
1292 |
msgid "Aggressive lockout"
|
1293 |
msgstr ""
|
1294 |
|
1295 |
-
#: ../settings.php:
|
1296 |
msgid "Use White IP Access List"
|
1297 |
msgstr ""
|
1298 |
|
1299 |
-
#: ../settings.php:
|
1300 |
msgid "Apply limit login rules to IP addresses in the White IP Access List"
|
1301 |
msgstr ""
|
1302 |
|
1303 |
-
#: ../settings.php:
|
1304 |
msgid "Site connection"
|
1305 |
msgstr ""
|
1306 |
|
1307 |
-
#: ../settings.php:
|
1308 |
msgid "Proactive security rules"
|
1309 |
msgstr ""
|
1310 |
|
1311 |
-
#: ../settings.php:
|
1312 |
msgid "Block subnet"
|
1313 |
msgstr ""
|
1314 |
|
1315 |
-
#: ../settings.php:
|
1316 |
msgid "Always block entire subnet Class C of intruders IP"
|
1317 |
msgstr ""
|
1318 |
|
1319 |
-
#: ../settings.php:
|
1320 |
msgid "Non-existent users"
|
1321 |
msgstr ""
|
1322 |
|
1323 |
-
#: ../settings.php:
|
1324 |
msgid "Immediately block IP when attempting to login with a non-existent username"
|
1325 |
msgstr ""
|
1326 |
|
1327 |
-
#: ../settings.php:
|
1328 |
msgid "Disable dashboard redirection"
|
1329 |
msgstr ""
|
1330 |
|
1331 |
-
#: ../settings.php:
|
1332 |
msgid ""
|
1333 |
"Disable automatic redirection to the login page when /wp-admin/ is requested "
|
1334 |
"by an unauthorized request"
|
1335 |
msgstr ""
|
1336 |
|
1337 |
-
#: ../settings.php:
|
1338 |
msgid "Request wp-login.php"
|
1339 |
msgstr ""
|
1340 |
|
1341 |
-
#: ../settings.php:
|
1342 |
msgid "Immediately block IP after any request to wp-login.php"
|
1343 |
msgstr ""
|
1344 |
|
1345 |
-
#: ../settings.php:
|
1346 |
msgid "Display 404 page"
|
1347 |
msgstr ""
|
1348 |
|
1349 |
-
#: ../settings.php:
|
1350 |
msgid "Use 404 template from the active theme"
|
1351 |
msgstr ""
|
1352 |
|
1353 |
-
#: ../settings.php:
|
1354 |
msgid "Display simple 404 page"
|
1355 |
msgstr ""
|
1356 |
|
1357 |
-
#: ../settings.php:
|
1358 |
msgid "Custom login page"
|
1359 |
msgstr ""
|
1360 |
|
1361 |
-
#: ../settings.php:
|
1362 |
msgid "Custom login URL"
|
1363 |
msgstr ""
|
1364 |
|
1365 |
-
#: ../settings.php:
|
1366 |
msgid "Custom login URL may contain only letters, numbers, dashes and underscores"
|
1367 |
msgstr ""
|
1368 |
|
1369 |
-
#: ../settings.php:
|
1370 |
msgid "must not overlap with the existing pages or posts slug"
|
1371 |
msgstr ""
|
1372 |
|
1373 |
-
#: ../settings.php:
|
1374 |
msgid "Disable wp-login.php"
|
1375 |
msgstr ""
|
1376 |
|
1377 |
-
#: ../settings.php:
|
1378 |
msgid "Block direct access to wp-login.php and return HTTP 404 Not Found Error"
|
1379 |
msgstr ""
|
1380 |
|
1381 |
-
#: ../settings.php:
|
1382 |
msgid "Threshold"
|
1383 |
msgstr ""
|
1384 |
|
1385 |
-
#: ../settings.php:
|
1386 |
msgid "Duration"
|
1387 |
msgstr ""
|
1388 |
|
1389 |
-
#: ../settings.php:
|
1390 |
msgid "Send notification to admin email"
|
1391 |
msgstr ""
|
1392 |
|
1393 |
-
#: ../settings.php:
|
1394 |
msgid "Click to send test"
|
1395 |
msgstr ""
|
1396 |
|
1397 |
-
#: ../settings.php:
|
1398 |
msgid "Keep records for"
|
1399 |
msgstr ""
|
1400 |
|
1401 |
-
#: ../settings.php:
|
1402 |
msgid "days"
|
1403 |
msgstr ""
|
1404 |
|
1405 |
-
#: ../settings.php:
|
1406 |
msgid "Cerber Lab connection"
|
1407 |
msgstr ""
|
1408 |
|
1409 |
-
#: ../settings.php:
|
1410 |
msgid "Send malicious IP addresses to the Cerber Lab"
|
1411 |
msgstr ""
|
1412 |
|
1413 |
-
#: ../settings.php:
|
1414 |
msgid "Cerber Lab protocol"
|
1415 |
msgstr ""
|
1416 |
|
1417 |
-
#: ../settings.php:
|
1418 |
msgid "Use file"
|
1419 |
msgstr ""
|
1420 |
|
1421 |
-
#: ../settings.php:
|
1422 |
msgid "Write failed login attempts to the file"
|
1423 |
msgstr ""
|
1424 |
|
1425 |
-
#: ../settings.php:
|
1426 |
msgid "Preferences"
|
1427 |
msgstr ""
|
1428 |
|
1429 |
-
#: ../settings.php:
|
1430 |
msgid "Drill down IP"
|
1431 |
msgstr ""
|
1432 |
|
1433 |
-
#: ../settings.php:
|
1434 |
msgid "Retrieve extra WHOIS information for IP"
|
1435 |
msgstr ""
|
1436 |
|
1437 |
-
#: ../settings.php:
|
1438 |
msgid "Date format"
|
1439 |
msgstr ""
|
1440 |
|
1441 |
-
#: ../settings.php:
|
1442 |
#, php-format
|
1443 |
msgid "if empty, the default format %s will be used"
|
1444 |
msgstr ""
|
1445 |
|
1446 |
-
#: ../settings.php:
|
1447 |
msgid "Use English for admin interface"
|
1448 |
msgstr ""
|
1449 |
|
1450 |
-
#: ../settings.php:
|
1451 |
msgid "Hardening WordPress"
|
1452 |
msgstr ""
|
1453 |
|
1454 |
-
#: ../settings.php:
|
1455 |
msgid "Stop user enumeration"
|
1456 |
msgstr ""
|
1457 |
|
1458 |
-
#: ../settings.php:
|
1459 |
msgid "Block access to user pages like /?author=n and user data via REST API"
|
1460 |
msgstr ""
|
1461 |
|
1462 |
-
#: ../settings.php:
|
1463 |
msgid "Protect admin scripts"
|
1464 |
msgstr ""
|
1465 |
|
1466 |
-
#: ../settings.php:
|
1467 |
msgid "Block unauthorized access to load-scripts.php and load-styles.php"
|
1468 |
msgstr ""
|
1469 |
|
1470 |
-
#: ../settings.php:
|
1471 |
msgid "Disable PHP in uploads"
|
1472 |
msgstr ""
|
1473 |
|
1474 |
-
#: ../settings.php:
|
1475 |
msgid "Disable execution of PHP scripts in the WordPress media folder"
|
1476 |
msgstr ""
|
1477 |
|
1478 |
-
#: ../settings.php:
|
1479 |
msgid "Disable PHP error displaying"
|
1480 |
msgstr ""
|
1481 |
|
1482 |
-
#: ../settings.php:
|
1483 |
msgid "Disable XML-RPC"
|
1484 |
msgstr ""
|
1485 |
|
1486 |
-
#: ../settings.php:
|
1487 |
msgid "Block access to the XML-RPC server (including Pingbacks and Trackbacks)"
|
1488 |
msgstr ""
|
1489 |
|
1490 |
-
#: ../settings.php:
|
1491 |
msgid "Disable feeds"
|
1492 |
msgstr ""
|
1493 |
|
1494 |
-
#: ../settings.php:
|
1495 |
msgid "Block access to the RSS, Atom and RDF feeds"
|
1496 |
msgstr ""
|
1497 |
|
1498 |
-
#: ../settings.php:
|
1499 |
msgid "Disable REST API"
|
1500 |
msgstr ""
|
1501 |
|
1502 |
-
#: ../settings.php:
|
1503 |
msgid "Block access to the WordPress REST API except the following"
|
1504 |
msgstr ""
|
1505 |
|
1506 |
-
#: ../settings.php:
|
1507 |
msgid "Allow REST API for logged in users"
|
1508 |
msgstr ""
|
1509 |
|
1510 |
-
#: ../settings.php:
|
1511 |
msgid ""
|
1512 |
"Specify REST API namespaces to be allowed if REST API is disabled. One "
|
1513 |
"string per line."
|
1514 |
msgstr ""
|
1515 |
|
1516 |
-
#: ../settings.php:
|
1517 |
msgid "User related settings"
|
1518 |
msgstr ""
|
1519 |
|
1520 |
-
#: ../settings.php:
|
1521 |
msgid "Registration limit"
|
1522 |
msgstr ""
|
1523 |
|
1524 |
-
#: ../settings.php:
|
1525 |
msgid "Prohibited usernames"
|
1526 |
msgstr ""
|
1527 |
|
1528 |
-
#: ../settings.php:
|
1529 |
msgid ""
|
1530 |
"Usernames from this list are not allowed to log in or register. Any IP "
|
1531 |
"address, have tried to use any of these usernames, will be immediately "
|
1532 |
"blocked. Use comma to separate logins."
|
1533 |
msgstr ""
|
1534 |
|
1535 |
-
#: ../settings.php:
|
1536 |
msgid "To specify a REGEX pattern wrap a pattern in two forward slashes."
|
1537 |
msgstr ""
|
1538 |
|
1539 |
-
#: ../settings.php:
|
1540 |
msgid "User session expire"
|
1541 |
msgstr ""
|
1542 |
|
1543 |
-
#: ../settings.php:
|
1544 |
msgid "in minutes (leave empty to use default WP value)"
|
1545 |
msgstr ""
|
1546 |
|
1547 |
-
#: ../settings.php:
|
1548 |
msgid "Sort users in dashboard"
|
1549 |
msgstr ""
|
1550 |
|
1551 |
-
#: ../settings.php:
|
1552 |
msgid "by date of registration"
|
1553 |
msgstr ""
|
1554 |
|
1555 |
-
#: ../settings.php:
|
1556 |
msgid "Cerber antispam engine"
|
1557 |
msgstr ""
|
1558 |
|
1559 |
-
#: ../settings.php:
|
1560 |
msgid "Comment form"
|
1561 |
msgstr ""
|
1562 |
|
1563 |
-
#: ../settings.php:
|
1564 |
msgid "Protect comment form with bot detection engine"
|
1565 |
msgstr ""
|
1566 |
|
1567 |
-
#: ../settings.php:
|
1568 |
msgid "Registration form"
|
1569 |
msgstr ""
|
1570 |
|
1571 |
-
#: ../settings.php:
|
1572 |
msgid "Protect registration form with bot detection engine"
|
1573 |
msgstr ""
|
1574 |
|
1575 |
-
#: ../settings.php:
|
1576 |
msgid "Other forms"
|
1577 |
msgstr ""
|
1578 |
|
1579 |
-
#: ../settings.php:
|
1580 |
msgid "Protect all forms on the website with bot detection engine"
|
1581 |
msgstr ""
|
1582 |
|
1583 |
-
#: ../settings.php:
|
1584 |
msgid "Adjust antispam engine"
|
1585 |
msgstr ""
|
1586 |
|
1587 |
-
#: ../settings.php:
|
1588 |
msgid "Safe mode"
|
1589 |
msgstr ""
|
1590 |
|
1591 |
-
#: ../settings.php:
|
1592 |
msgid "Use less restrictive policies (allow AJAX)"
|
1593 |
msgstr ""
|
1594 |
|
1595 |
-
#: ../settings.php:
|
1596 |
msgid "Disable bot detection engine for logged in users"
|
1597 |
msgstr ""
|
1598 |
|
1599 |
-
#: ../settings.php:
|
1600 |
msgid "Query whitelist"
|
1601 |
msgstr ""
|
1602 |
|
1603 |
-
#: ../settings.php:
|
1604 |
msgid ""
|
1605 |
"Enter a part of query string or query path to exclude a request from "
|
1606 |
"inspection by the engine. One item per line."
|
1607 |
msgstr ""
|
1608 |
|
1609 |
-
#: ../settings.php:
|
1610 |
msgid "To specify a REGEX pattern, enclose a whole line in two braces."
|
1611 |
msgstr ""
|
1612 |
|
1613 |
-
#: ../settings.php:
|
1614 |
msgid "Comment processing"
|
1615 |
msgstr ""
|
1616 |
|
1617 |
-
#: ../settings.php:
|
1618 |
msgid "If a spam comment detected"
|
1619 |
msgstr ""
|
1620 |
|
1621 |
-
#: ../settings.php:
|
1622 |
msgid "Deny it completely"
|
1623 |
msgstr ""
|
1624 |
|
1625 |
-
#: ../settings.php:
|
1626 |
msgid "Mark it as spam"
|
1627 |
msgstr ""
|
1628 |
|
1629 |
-
#: ../settings.php:
|
1630 |
msgid "Trash spam comments"
|
1631 |
msgstr ""
|
1632 |
|
1633 |
-
#: ../settings.php:
|
1634 |
msgid "Move spam comments to trash after"
|
1635 |
msgstr ""
|
1636 |
|
1637 |
-
#: ../settings.php:
|
1638 |
msgid "reCAPTCHA settings"
|
1639 |
msgstr ""
|
1640 |
|
1641 |
-
#: ../settings.php:
|
1642 |
msgid "Site key"
|
1643 |
msgstr ""
|
1644 |
|
1645 |
-
#: ../settings.php:
|
1646 |
msgid "Secret key"
|
1647 |
msgstr ""
|
1648 |
|
1649 |
-
#: ../settings.php:
|
1650 |
msgid "Invisible reCAPTCHA"
|
1651 |
msgstr ""
|
1652 |
|
1653 |
-
#: ../settings.php:
|
1654 |
msgid "Enable invisible reCAPTCHA"
|
1655 |
msgstr ""
|
1656 |
|
1657 |
-
#: ../settings.php:
|
1658 |
msgid ""
|
1659 |
"(do not enable it unless you get and enter the Site and Secret keys for the "
|
1660 |
"invisible version)"
|
1661 |
msgstr ""
|
1662 |
|
1663 |
-
#: ../settings.php:
|
1664 |
msgid "Enable reCAPTCHA for WordPress registration form"
|
1665 |
msgstr ""
|
1666 |
|
1667 |
-
#: ../settings.php:
|
1668 |
msgid "Enable reCAPTCHA for WooCommerce registration form"
|
1669 |
msgstr ""
|
1670 |
|
1671 |
-
#: ../settings.php:
|
1672 |
msgid "Lost password form"
|
1673 |
msgstr ""
|
1674 |
|
1675 |
-
#: ../settings.php:
|
1676 |
msgid "Enable reCAPTCHA for WordPress lost password form"
|
1677 |
msgstr ""
|
1678 |
|
1679 |
-
#: ../settings.php:
|
1680 |
msgid "Enable reCAPTCHA for WooCommerce lost password form"
|
1681 |
msgstr ""
|
1682 |
|
1683 |
-
#: ../settings.php:
|
1684 |
msgid "Login form"
|
1685 |
msgstr ""
|
1686 |
|
1687 |
-
#: ../settings.php:
|
1688 |
msgid "Enable reCAPTCHA for WordPress login form"
|
1689 |
msgstr ""
|
1690 |
|
1691 |
-
#: ../settings.php:
|
1692 |
msgid "Enable reCAPTCHA for WooCommerce login form"
|
1693 |
msgstr ""
|
1694 |
|
1695 |
-
#: ../settings.php:
|
1696 |
msgid "Enable reCAPTCHA for WordPress comment form"
|
1697 |
msgstr ""
|
1698 |
|
1699 |
-
#: ../settings.php:
|
1700 |
msgid "Disable reCAPTCHA for logged in users"
|
1701 |
msgstr ""
|
1702 |
|
1703 |
-
#: ../settings.php:
|
1704 |
msgid "Limit attempts"
|
1705 |
msgstr ""
|
1706 |
|
1707 |
-
#: ../settings.php:
|
1708 |
#, php-format
|
1709 |
msgid "Lock out IP address for %s minutes after %s failed attempts within %s minutes"
|
1710 |
msgstr ""
|
1711 |
|
1712 |
-
#: ../settings.php:
|
1713 |
msgid "Email notifications"
|
1714 |
msgstr ""
|
1715 |
|
1716 |
-
#: ../settings.php:
|
1717 |
msgid "Email Address"
|
1718 |
msgstr ""
|
1719 |
|
1720 |
-
#: ../settings.php:
|
1721 |
msgid "Use comma to specify multiple values"
|
1722 |
msgstr ""
|
1723 |
|
1724 |
-
#: ../settings.php:
|
1725 |
#, php-format
|
1726 |
msgid "if empty, the admin email %s will be used"
|
1727 |
msgstr ""
|
1728 |
|
1729 |
-
#: ../settings.php:
|
1730 |
msgid "Notification limit"
|
1731 |
msgstr ""
|
1732 |
|
1733 |
-
#: ../settings.php:
|
1734 |
msgid "notification letters allowed per hour (0 means unlimited)"
|
1735 |
msgstr ""
|
1736 |
|
1737 |
-
#: ../settings.php:
|
1738 |
msgid "Push notifications"
|
1739 |
msgstr ""
|
1740 |
|
1741 |
-
#: ../settings.php:
|
1742 |
msgid "All connected devices"
|
1743 |
msgstr ""
|
1744 |
|
1745 |
-
#: ../settings.php:
|
1746 |
msgid "No devices found"
|
1747 |
msgstr ""
|
1748 |
|
1749 |
-
#: ../settings.php:
|
1750 |
msgid "Not available"
|
1751 |
msgstr ""
|
1752 |
|
1753 |
-
#: ../settings.php:
|
1754 |
msgid "Weekly reports"
|
1755 |
msgstr ""
|
1756 |
|
1757 |
-
#: ../settings.php:
|
1758 |
msgid "Enable reporting"
|
1759 |
msgstr ""
|
1760 |
|
1761 |
-
#: ../settings.php:
|
1762 |
msgid "if empty, email from notification settings will be used"
|
1763 |
msgstr ""
|
1764 |
|
1765 |
-
#: ../settings.php:
|
1766 |
msgid "Traffic Inspection"
|
1767 |
msgstr ""
|
1768 |
|
1769 |
-
#: ../settings.php:
|
1770 |
msgid "Enable traffic inspection"
|
1771 |
msgstr ""
|
1772 |
|
1773 |
-
#: ../settings.php:
|
1774 |
-
msgid "
|
|
|
|
|
|
|
|
|
1775 |
msgstr ""
|
1776 |
|
1777 |
-
#: ../settings.php:
|
1778 |
msgid "Request whitelist"
|
1779 |
msgstr ""
|
1780 |
|
1781 |
-
#: ../settings.php:
|
1782 |
msgid ""
|
1783 |
"Enter a request URI to exclude the request from inspection. One item per "
|
1784 |
"line."
|
1785 |
msgstr ""
|
1786 |
|
1787 |
-
#: ../settings.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1788 |
msgid "Logging"
|
1789 |
msgstr ""
|
1790 |
|
1791 |
-
#: ../settings.php:
|
1792 |
msgid "Logging mode"
|
1793 |
msgstr ""
|
1794 |
|
1795 |
-
#: ../settings.php:
|
1796 |
msgid "Logging disabled"
|
1797 |
msgstr ""
|
1798 |
|
1799 |
-
#: ../settings.php:
|
1800 |
msgid "Smart"
|
1801 |
msgstr ""
|
1802 |
|
1803 |
-
#: ../settings.php:
|
1804 |
msgid "All traffic"
|
1805 |
msgstr ""
|
1806 |
|
1807 |
-
#: ../settings.php:
|
1808 |
msgid "Ignore crawlers"
|
1809 |
msgstr ""
|
1810 |
|
1811 |
-
#: ../settings.php:
|
1812 |
msgid "Save request fields"
|
1813 |
msgstr ""
|
1814 |
|
1815 |
-
#: ../settings.php:
|
1816 |
msgid "Mask these form fields"
|
1817 |
msgstr ""
|
1818 |
|
1819 |
-
#: ../settings.php:
|
1820 |
msgid "Save request headers"
|
1821 |
msgstr ""
|
1822 |
|
1823 |
-
#: ../settings.php:
|
1824 |
msgid "Save $_SERVER"
|
1825 |
msgstr ""
|
1826 |
|
1827 |
-
#: ../settings.php:
|
1828 |
msgid "Save request cookies"
|
1829 |
msgstr ""
|
1830 |
|
1831 |
-
#: ../settings.php:
|
1832 |
msgid "Save software errors"
|
1833 |
msgstr ""
|
1834 |
|
1835 |
-
#: ../settings.php:
|
1836 |
msgid "Page generation time threshold"
|
1837 |
msgstr ""
|
1838 |
|
1839 |
-
#: ../settings.php:
|
1840 |
msgid "milliseconds"
|
1841 |
msgstr ""
|
1842 |
|
1843 |
-
#: ../settings.php:
|
1844 |
msgid "Scanner settings"
|
1845 |
msgstr ""
|
1846 |
|
1847 |
-
#: ../settings.php:
|
1848 |
msgid "Custom signatures"
|
1849 |
msgstr ""
|
1850 |
|
1851 |
-
#: ../settings.php:
|
1852 |
msgid ""
|
1853 |
"Specify custom PHP code signatures. One item per line. To specify a REGEX "
|
1854 |
"pattern, enclose a whole line in two braces."
|
1855 |
msgstr ""
|
1856 |
|
1857 |
-
#: ../settings.php:
|
1858 |
msgid "Unwanted file extensions"
|
1859 |
msgstr ""
|
1860 |
|
1861 |
-
#: ../settings.php:
|
1862 |
msgid ""
|
1863 |
"Specify file extensions to search for. Full scan only. Use comma to separate "
|
1864 |
"items."
|
1865 |
msgstr ""
|
1866 |
|
1867 |
-
#: ../settings.php:
|
1868 |
msgid "Directories to exclude"
|
1869 |
msgstr ""
|
1870 |
|
1871 |
-
#: ../settings.php:
|
1872 |
msgid ""
|
1873 |
"Specify directories to exclude from scanning. Use absolute paths. One item "
|
1874 |
"per line."
|
1875 |
msgstr ""
|
1876 |
|
1877 |
-
#: ../settings.php:
|
1878 |
msgid "Monitor new files"
|
1879 |
msgstr ""
|
1880 |
|
1881 |
-
#: ../settings.php:
|
1882 |
msgid "Monitor modified files"
|
1883 |
msgstr ""
|
1884 |
|
1885 |
-
#: ../settings.php:
|
1886 |
msgid "Scan temporary directory"
|
1887 |
msgstr ""
|
1888 |
|
1889 |
-
#: ../settings.php:
|
1890 |
msgid "Scan session directory"
|
1891 |
msgstr ""
|
1892 |
|
1893 |
-
#: ../settings.php:
|
1894 |
msgid "Enable diagnostic log"
|
1895 |
msgstr ""
|
1896 |
|
1897 |
-
#: ../settings.php:
|
1898 |
msgid "Delete quarantined files after"
|
1899 |
msgstr ""
|
1900 |
|
1901 |
-
#: ../settings.php:
|
1902 |
msgid "Automated recurring scan schedule"
|
1903 |
msgstr ""
|
1904 |
|
1905 |
-
#: ../settings.php:
|
1906 |
msgid "Launch Quick Scan"
|
1907 |
msgstr ""
|
1908 |
|
1909 |
-
#: ../settings.php:
|
1910 |
msgid "Launch Full Scan"
|
1911 |
msgstr ""
|
1912 |
|
1913 |
-
#: ../settings.php:
|
1914 |
msgid "Scan results reporting"
|
1915 |
msgstr ""
|
1916 |
|
1917 |
-
#: ../settings.php:
|
1918 |
msgid "Low severity"
|
1919 |
msgstr ""
|
1920 |
|
1921 |
-
#: ../settings.php:
|
1922 |
msgid "Medium severity"
|
1923 |
msgstr ""
|
1924 |
|
1925 |
-
#: ../settings.php:
|
1926 |
msgid "High severity"
|
1927 |
msgstr ""
|
1928 |
|
1929 |
-
#: ../settings.php:
|
1930 |
msgid "Report an issue if any of the following is true"
|
1931 |
msgstr ""
|
1932 |
|
1933 |
-
#: ../settings.php:
|
1934 |
msgid "Send email report"
|
1935 |
msgstr ""
|
1936 |
|
1937 |
-
#: ../settings.php:
|
1938 |
msgid "After every scan"
|
1939 |
msgstr ""
|
1940 |
|
1941 |
-
#: ../settings.php:
|
1942 |
msgid "If any changes in scan results occurred"
|
1943 |
msgstr ""
|
1944 |
|
1945 |
-
#: ../settings.php:
|
1946 |
msgid "If new issues found"
|
1947 |
msgstr ""
|
1948 |
|
1949 |
-
#: ../settings.php:
|
1950 |
msgid "Include file sizes"
|
1951 |
msgstr ""
|
1952 |
|
1953 |
-
#: ../settings.php:
|
1954 |
msgid "Include scan errors"
|
1955 |
msgstr ""
|
1956 |
|
1957 |
-
#: ../settings.php:
|
1958 |
msgid "Automatic cleanup of malware and suspicious files"
|
1959 |
msgstr ""
|
1960 |
|
1961 |
-
#: ../settings.php:
|
1962 |
msgid "Unattended files"
|
1963 |
msgstr ""
|
1964 |
|
1965 |
-
#: ../settings.php:
|
1966 |
msgid "Files in the uploads folder"
|
1967 |
msgstr ""
|
1968 |
|
1969 |
-
#: ../settings.php:
|
1970 |
msgid "Files with unwanted extensions"
|
1971 |
msgstr ""
|
1972 |
|
1973 |
-
#: ../settings.php:
|
1974 |
msgid "Exclusions"
|
1975 |
msgstr ""
|
1976 |
|
1977 |
-
#: ../settings.php:
|
1978 |
msgid "Files in the temporary directory"
|
1979 |
msgstr ""
|
1980 |
|
1981 |
-
#: ../settings.php:
|
1982 |
msgid "Files in the sessions directory"
|
1983 |
msgstr ""
|
1984 |
|
1985 |
-
#: ../settings.php:
|
1986 |
msgid "Files in these directories"
|
1987 |
msgstr ""
|
1988 |
|
1989 |
-
#: ../settings.php:
|
1990 |
msgid "Use absolute paths. One item per line."
|
1991 |
msgstr ""
|
1992 |
|
1993 |
-
#: ../settings.php:
|
1994 |
msgid "Files with these extensions"
|
1995 |
msgstr ""
|
1996 |
|
1997 |
-
#: ../settings.php:
|
1998 |
msgid "Use comma to separate items."
|
1999 |
msgstr ""
|
2000 |
|
2001 |
-
#: ../settings.php:
|
2002 |
msgid "Make your protection smarter!"
|
2003 |
msgstr ""
|
2004 |
|
2005 |
-
#: ../settings.php:
|
2006 |
msgid ""
|
2007 |
"Please enable Permalinks to use this feature. Set Permalink Settings to "
|
2008 |
"something other than Default."
|
2009 |
msgstr ""
|
2010 |
|
2011 |
-
#: ../settings.php:
|
2012 |
msgid "Be careful about enabling these options."
|
2013 |
msgstr ""
|
2014 |
|
2015 |
-
#: ../settings.php:
|
2016 |
msgid "If you forget your Custom login URL, you will be unable to log in."
|
2017 |
msgstr ""
|
2018 |
|
2019 |
-
#: ../settings.php:
|
2020 |
msgid ""
|
2021 |
"In the Citadel mode nobody is able to log in except IPs from the White IP "
|
2022 |
"Access List. Active user sessions will not be affected."
|
2023 |
msgstr ""
|
2024 |
|
2025 |
-
#: ../settings.php:
|
2026 |
msgid "These settings do not affect hosts from the "
|
2027 |
msgstr ""
|
2028 |
|
2029 |
-
#: ../settings.php:
|
2030 |
msgid ""
|
2031 |
"Before you can start using reCAPTCHA, you have to obtain Site key and Secret "
|
2032 |
"key on the Google website"
|
2033 |
msgstr ""
|
2034 |
|
2035 |
-
#: ../settings.php:
|
2036 |
msgid "Lockouts"
|
2037 |
msgstr ""
|
2038 |
|
2039 |
-
#: ../settings.php:
|
2040 |
msgid "Users"
|
2041 |
msgstr ""
|
2042 |
|
2043 |
-
#: ../settings.php:
|
2044 |
#, php-format
|
2045 |
msgid "%s allowed retries in %s minutes"
|
2046 |
msgstr ""
|
2047 |
|
2048 |
-
#: ../settings.php:
|
2049 |
#, php-format
|
2050 |
msgid "%s allowed registrations in %s minutes from one IP"
|
2051 |
msgstr ""
|
2052 |
|
2053 |
-
#: ../settings.php:
|
2054 |
#, php-format
|
2055 |
msgid "Increase lockout duration to %s hours after %s lockouts in the last %s hours"
|
2056 |
msgstr ""
|
2057 |
|
2058 |
-
#: ../settings.php:
|
2059 |
msgid "Notify admin if the number of active lockouts above"
|
2060 |
msgstr ""
|
2061 |
|
2062 |
-
#: ../settings.php:
|
2063 |
#, php-format
|
2064 |
msgid "Enable after %s failed login attempts in last %s minutes"
|
2065 |
msgstr ""
|
2066 |
|
2067 |
-
#: ../settings.php:
|
2068 |
msgid "Sunday"
|
2069 |
msgstr ""
|
2070 |
|
2071 |
-
#: ../settings.php:
|
2072 |
msgid "Monday"
|
2073 |
msgstr ""
|
2074 |
|
2075 |
-
#: ../settings.php:
|
2076 |
msgid "Tuesday"
|
2077 |
msgstr ""
|
2078 |
|
2079 |
-
#: ../settings.php:
|
2080 |
msgid "Wednesday"
|
2081 |
msgstr ""
|
2082 |
|
2083 |
-
#: ../settings.php:
|
2084 |
msgid "Thursday"
|
2085 |
msgstr ""
|
2086 |
|
2087 |
-
#: ../settings.php:
|
2088 |
msgid "Friday"
|
2089 |
msgstr ""
|
2090 |
|
2091 |
-
#: ../settings.php:
|
2092 |
msgid "Saturday"
|
2093 |
msgstr ""
|
2094 |
|
2095 |
-
#: ../settings.php:
|
2096 |
msgctxt "preposition of time like: at 11:00"
|
2097 |
msgid "at"
|
2098 |
msgstr ""
|
2099 |
|
2100 |
-
#: ../settings.php:
|
2101 |
msgid "Click to send now"
|
2102 |
msgstr ""
|
2103 |
|
2104 |
-
#: ../settings.php:
|
2105 |
msgid "Plugin initialization mode has not been changed"
|
2106 |
msgstr ""
|
2107 |
|
2108 |
-
#: ../settings.php:
|
2109 |
msgid "Attention! You have changed the login URL! The new login URL is"
|
2110 |
msgstr ""
|
2111 |
|
2112 |
-
#: ../settings.php:
|
2113 |
msgid ""
|
2114 |
"If you use a caching plugin, you have to add your new login URL to the list "
|
2115 |
"of pages not to cache."
|
2116 |
msgstr ""
|
2117 |
|
2118 |
-
#: ../settings.php:
|
2119 |
msgid "<strong>ERROR</strong>: please enter a valid email address."
|
2120 |
msgstr ""
|
2121 |
|
2122 |
-
#: ../settings.php:
|
2123 |
msgid "The schedule has been updated"
|
2124 |
msgstr ""
|
2125 |
|
2126 |
-
#: ../settings.php:
|
2127 |
msgid "Unable to update the schedule"
|
2128 |
msgstr ""
|
2129 |
|
2130 |
-
#: ../cerber-tools.php:
|
2131 |
msgid "Export & Import"
|
2132 |
msgstr ""
|
2133 |
|
2134 |
-
#: ../cerber-tools.php:
|
2135 |
msgid "Diagnostic"
|
2136 |
msgstr ""
|
2137 |
|
2138 |
-
#: ../cerber-tools.php:
|
2139 |
msgid "License"
|
2140 |
msgstr ""
|
2141 |
|
2142 |
-
#: ../cerber-tools.php:
|
2143 |
msgid "Log"
|
2144 |
msgstr ""
|
2145 |
|
2146 |
-
#: ../cerber-tools.php:
|
2147 |
msgid "Export settings to the file"
|
2148 |
msgstr ""
|
2149 |
|
2150 |
-
#: ../cerber-tools.php:
|
2151 |
msgid ""
|
2152 |
"When you click the button below you will get a configuration file, which you "
|
2153 |
"can upload on another site."
|
2154 |
msgstr ""
|
2155 |
|
2156 |
-
#: ../cerber-tools.php:
|
2157 |
msgid "What do you want to export?"
|
2158 |
msgstr ""
|
2159 |
|
2160 |
-
#: ../cerber-tools.php:
|
2161 |
msgid "Download file"
|
2162 |
msgstr ""
|
2163 |
|
2164 |
-
#: ../cerber-tools.php:
|
2165 |
msgid "Import settings from the file"
|
2166 |
msgstr ""
|
2167 |
|
2168 |
-
#: ../cerber-tools.php:
|
2169 |
msgid ""
|
2170 |
"When you click the button below, file will be uploaded and all existing "
|
2171 |
"settings will be overridden."
|
2172 |
msgstr ""
|
2173 |
|
2174 |
-
#: ../cerber-tools.php:
|
2175 |
msgid "Select file to import."
|
2176 |
msgstr ""
|
2177 |
|
2178 |
-
#: ../cerber-tools.php:
|
2179 |
#, php-format
|
2180 |
msgid "Maximum upload file size: %s."
|
2181 |
msgstr ""
|
2182 |
|
2183 |
-
#: ../cerber-tools.php:
|
2184 |
msgid "What do you want to import?"
|
2185 |
msgstr ""
|
2186 |
|
2187 |
-
#: ../cerber-tools.php:
|
2188 |
msgid "Upload file"
|
2189 |
msgstr ""
|
2190 |
|
2191 |
-
#: ../cerber-tools.php:
|
2192 |
msgid "No file was uploaded or file is corrupted"
|
2193 |
msgstr ""
|
2194 |
|
2195 |
-
#: ../cerber-tools.php:
|
2196 |
msgid "Error while updating"
|
2197 |
msgstr ""
|
2198 |
|
2199 |
-
#: ../cerber-tools.php:
|
2200 |
msgid "Settings has imported successfully from"
|
2201 |
msgstr ""
|
2202 |
|
2203 |
-
#: ../cerber-tools.php:
|
2204 |
msgid "Error while parsing file"
|
2205 |
msgstr ""
|
2206 |
|
@@ -2259,112 +2284,112 @@ msgstr ""
|
|
2259 |
msgid "Ignore"
|
2260 |
msgstr ""
|
2261 |
|
2262 |
-
#: ../cerber-scanner.php:
|
2263 |
msgid "Verified"
|
2264 |
msgstr ""
|
2265 |
|
2266 |
-
#: ../cerber-scanner.php:
|
2267 |
msgid "Vulnerability found"
|
2268 |
msgstr ""
|
2269 |
|
2270 |
-
#: ../cerber-scanner.php:
|
2271 |
msgid "Integrity data not found"
|
2272 |
msgstr ""
|
2273 |
|
2274 |
-
#: ../cerber-scanner.php:
|
2275 |
msgid "Unable to check the integrity of the plugin due to a network error"
|
2276 |
msgstr ""
|
2277 |
|
2278 |
-
#: ../cerber-scanner.php:
|
2279 |
msgid "Unable to check the integrity of WordPress files due to a network error"
|
2280 |
msgstr ""
|
2281 |
|
2282 |
-
#: ../cerber-scanner.php:
|
2283 |
msgid "Unable to check the integrity of the theme due to a network error"
|
2284 |
msgstr ""
|
2285 |
|
2286 |
-
#: ../cerber-scanner.php:
|
2287 |
msgid "Unable to check the integrity due to a DB error"
|
2288 |
msgstr ""
|
2289 |
|
2290 |
-
#: ../cerber-scanner.php:
|
2291 |
msgid "Local file doesn't exist"
|
2292 |
msgstr ""
|
2293 |
|
2294 |
-
#: ../cerber-scanner.php:
|
2295 |
msgid "Unable to process file"
|
2296 |
msgstr ""
|
2297 |
|
2298 |
-
#: ../cerber-scanner.php:
|
2299 |
msgid "Unable to open file"
|
2300 |
msgstr ""
|
2301 |
|
2302 |
-
#: ../cerber-scanner.php:
|
2303 |
msgid "Checksum mismatch"
|
2304 |
msgstr ""
|
2305 |
|
2306 |
-
#: ../cerber-scanner.php:
|
2307 |
msgid "Suspicious code found"
|
2308 |
msgstr ""
|
2309 |
|
2310 |
-
#: ../cerber-scanner.php:
|
2311 |
msgid "Malicious code found"
|
2312 |
msgstr ""
|
2313 |
|
2314 |
-
#: ../cerber-scanner.php:
|
2315 |
msgid "Unattended suspicious file"
|
2316 |
msgstr ""
|
2317 |
|
2318 |
-
#: ../cerber-scanner.php:
|
2319 |
msgid "Executable code found"
|
2320 |
msgstr ""
|
2321 |
|
2322 |
-
#: ../cerber-scanner.php:
|
2323 |
msgid "Suspicious directives found"
|
2324 |
msgstr ""
|
2325 |
|
2326 |
-
#: ../cerber-scanner.php:
|
2327 |
msgid "Unwanted file extension"
|
2328 |
msgstr ""
|
2329 |
|
2330 |
-
#: ../cerber-scanner.php:
|
2331 |
msgid "Content has been modified"
|
2332 |
msgstr ""
|
2333 |
|
2334 |
-
#: ../cerber-scanner.php:
|
2335 |
msgid "New file"
|
2336 |
msgstr ""
|
2337 |
|
2338 |
-
#: ../cerber-scanner.php:
|
2339 |
msgid "Every hour"
|
2340 |
msgstr ""
|
2341 |
|
2342 |
-
#: ../cerber-scanner.php:
|
2343 |
msgid "Every 3 hours"
|
2344 |
msgstr ""
|
2345 |
|
2346 |
-
#: ../cerber-scanner.php:
|
2347 |
msgid "Every 6 hours"
|
2348 |
msgstr ""
|
2349 |
|
2350 |
-
#: ../cerber-scanner.php:
|
2351 |
msgid "Custom signature found"
|
2352 |
msgstr ""
|
2353 |
|
2354 |
-
#: ../cerber-scanner.php:
|
2355 |
msgid ""
|
2356 |
"This file contains executable code and may contain obfuscated malware. If "
|
2357 |
"this file is a part of a theme or a plugin, it must be located in the theme "
|
2358 |
"or the plugin folder. No exception, no excuses."
|
2359 |
msgstr ""
|
2360 |
|
2361 |
-
#: ../cerber-scanner.php:
|
2362 |
msgid ""
|
2363 |
"The scanner recognizes this file as \"ownerless\" or \"not bundled\" because it "
|
2364 |
"does not belong to any known part of the website and should not be here."
|
2365 |
msgstr ""
|
2366 |
|
2367 |
-
#: ../cerber-scanner.php:
|
2368 |
#, php-format
|
2369 |
msgid ""
|
2370 |
"It may remain after upgrading to a newer version of %s. It also may be a "
|
@@ -2372,15 +2397,15 @@ msgid ""
|
|
2372 |
"made (bespoke) plugin or theme."
|
2373 |
msgstr ""
|
2374 |
|
2375 |
-
#: ../cerber-scanner.php:
|
2376 |
msgid "Suspicious code instruction found"
|
2377 |
msgstr ""
|
2378 |
|
2379 |
-
#: ../cerber-scanner.php:
|
2380 |
msgid "Suspicious code signatures found"
|
2381 |
msgstr ""
|
2382 |
|
2383 |
-
#: ../cerber-scanner.php:
|
2384 |
msgid ""
|
2385 |
"The contents of the file have been changed and do not match what exists in "
|
2386 |
"the official WordPress repository or a reference file you have uploaded "
|
@@ -2388,235 +2413,235 @@ msgid ""
|
|
2388 |
"has been tampered with."
|
2389 |
msgstr ""
|
2390 |
|
2391 |
-
#: ../cerber-scanner.php:
|
2392 |
#, php-format
|
2393 |
msgid ""
|
2394 |
"To solve this issue you have to reinstall %s or update it to the latest "
|
2395 |
"version."
|
2396 |
msgstr ""
|
2397 |
|
2398 |
-
#: ../cerber-scanner.php:
|
2399 |
msgid "Please upload a reference ZIP archive"
|
2400 |
msgstr ""
|
2401 |
|
2402 |
-
#: ../cerber-scanner.php:
|
2403 |
msgid "Resolve issue"
|
2404 |
msgstr ""
|
2405 |
|
2406 |
-
#: ../cerber-scanner.php:
|
2407 |
msgid "Preparing for the scan"
|
2408 |
msgstr ""
|
2409 |
|
2410 |
-
#: ../cerber-scanner.php:
|
2411 |
msgid "Scanning folders for files"
|
2412 |
msgstr ""
|
2413 |
|
2414 |
-
#: ../cerber-scanner.php:
|
2415 |
msgid "Scanning the upload folder for files"
|
2416 |
msgstr ""
|
2417 |
|
2418 |
-
#: ../cerber-scanner.php:
|
2419 |
msgid "Scanning the temp folder for files"
|
2420 |
msgstr ""
|
2421 |
|
2422 |
-
#: ../cerber-scanner.php:
|
2423 |
msgid "Scanning the session folder for files"
|
2424 |
msgstr ""
|
2425 |
|
2426 |
-
#: ../cerber-scanner.php:
|
2427 |
msgid "Parsing the list of files"
|
2428 |
msgstr ""
|
2429 |
|
2430 |
-
#: ../cerber-scanner.php:
|
2431 |
msgid "Checking for new and modified files"
|
2432 |
msgstr ""
|
2433 |
|
2434 |
-
#: ../cerber-scanner.php:
|
2435 |
msgid "Verifying the integrity of WordPress"
|
2436 |
msgstr ""
|
2437 |
|
2438 |
-
#: ../cerber-scanner.php:
|
2439 |
msgid "Verifying the integrity of the plugins"
|
2440 |
msgstr ""
|
2441 |
|
2442 |
-
#: ../cerber-scanner.php:
|
2443 |
msgid "Verifying the integrity of the themes"
|
2444 |
msgstr ""
|
2445 |
|
2446 |
-
#: ../cerber-scanner.php:
|
2447 |
msgid "Searching for malicious code"
|
2448 |
msgstr ""
|
2449 |
|
2450 |
-
#: ../cerber-scanner.php:
|
2451 |
msgid "Finalizing the scan"
|
2452 |
msgstr ""
|
2453 |
|
2454 |
-
#: ../cerber-scanner.php:
|
2455 |
msgid "Started"
|
2456 |
msgstr ""
|
2457 |
|
2458 |
-
#: ../cerber-scanner.php:
|
2459 |
msgid "Finished"
|
2460 |
msgstr ""
|
2461 |
|
2462 |
-
#: ../cerber-scanner.php:
|
2463 |
msgid "Performance"
|
2464 |
msgstr ""
|
2465 |
|
2466 |
-
#: ../cerber-scanner.php:
|
2467 |
msgid "Vulnerabilities"
|
2468 |
msgstr ""
|
2469 |
|
2470 |
-
#: ../cerber-scanner.php:
|
2471 |
msgid "New files"
|
2472 |
msgstr ""
|
2473 |
|
2474 |
-
#: ../cerber-scanner.php:
|
2475 |
msgid "Changed files"
|
2476 |
msgstr ""
|
2477 |
|
2478 |
-
#: ../cerber-scanner.php:
|
2479 |
msgid "Unwanted extensions"
|
2480 |
msgstr ""
|
2481 |
|
2482 |
-
#: ../cerber-scanner.php:
|
2483 |
msgid "Scanned"
|
2484 |
msgstr ""
|
2485 |
|
2486 |
-
#: ../cerber-scanner.php:
|
2487 |
msgid "Files to scan"
|
2488 |
msgstr ""
|
2489 |
|
2490 |
-
#: ../cerber-scanner.php:
|
2491 |
msgid "Critical issues"
|
2492 |
msgstr ""
|
2493 |
|
2494 |
-
#: ../cerber-scanner.php:
|
2495 |
msgid "Issues total"
|
2496 |
msgstr ""
|
2497 |
|
2498 |
-
#: ../cerber-scanner.php:
|
2499 |
msgid "We have not found any integrity data to verify"
|
2500 |
msgstr ""
|
2501 |
|
2502 |
-
#: ../cerber-scanner.php:
|
2503 |
msgid ""
|
2504 |
"You have to upload a ZIP archive from which you've installed it. This "
|
2505 |
"enables the security scanner to verify the integrity of the code and detect "
|
2506 |
"malware."
|
2507 |
msgstr ""
|
2508 |
|
2509 |
-
#: ../cerber-scanner.php:
|
2510 |
msgid "The directory is not writable"
|
2511 |
msgstr ""
|
2512 |
|
2513 |
-
#: ../cerber-scanner.php:
|
2514 |
msgid "Unable to create WP CERBER directory"
|
2515 |
msgstr ""
|
2516 |
|
2517 |
-
#: ../cerber-scanner.php:
|
2518 |
msgid ""
|
2519 |
"File access error. Possibly scan results are outdated. Please run Quick or "
|
2520 |
"Full Scan."
|
2521 |
msgstr ""
|
2522 |
|
2523 |
-
#: ../cerber-scanner.php:
|
2524 |
msgid "Full Scan Report"
|
2525 |
msgstr ""
|
2526 |
|
2527 |
-
#: ../cerber-scanner.php:
|
2528 |
msgid "Quick Scan Report"
|
2529 |
msgstr ""
|
2530 |
|
2531 |
-
#: ../cerber-scanner.php:
|
2532 |
msgid "Files scanned"
|
2533 |
msgstr ""
|
2534 |
|
2535 |
-
#: ../cerber-scanner.php:
|
2536 |
msgid "Deleted"
|
2537 |
msgstr ""
|
2538 |
|
2539 |
-
#: ../cerber-scanner.php:
|
2540 |
msgid "Automatically moved to quarantine"
|
2541 |
msgstr ""
|
2542 |
|
2543 |
-
#: ../cerber-scanner.php:
|
2544 |
msgid "To view full report visit"
|
2545 |
msgstr ""
|
2546 |
|
2547 |
-
#: ../cerber-scanner.php:
|
2548 |
msgid "There are no files in the quarantine at the moment."
|
2549 |
msgstr ""
|
2550 |
|
2551 |
-
#: ../cerber-scanner.php:
|
2552 |
msgid "No files match the specified filter."
|
2553 |
msgstr ""
|
2554 |
|
2555 |
-
#: ../cerber-scanner.php:
|
2556 |
msgid "Click here to see the full list of files"
|
2557 |
msgstr ""
|
2558 |
|
2559 |
-
#: ../cerber-scanner.php:
|
2560 |
msgid "Delete permanently"
|
2561 |
msgstr ""
|
2562 |
|
2563 |
-
#: ../cerber-scanner.php:
|
2564 |
msgid "Restore"
|
2565 |
msgstr ""
|
2566 |
|
2567 |
-
#: ../cerber-scanner.php:
|
2568 |
msgid "Moved to quarantine"
|
2569 |
msgstr ""
|
2570 |
|
2571 |
-
#: ../cerber-scanner.php:
|
2572 |
msgid "Automatic deletion"
|
2573 |
msgstr ""
|
2574 |
|
2575 |
-
#: ../cerber-scanner.php:
|
2576 |
msgid "Size"
|
2577 |
msgstr ""
|
2578 |
|
2579 |
-
#: ../cerber-scanner.php:
|
2580 |
msgid "File"
|
2581 |
msgstr ""
|
2582 |
|
2583 |
-
#: ../cerber-scanner.php:
|
2584 |
msgid "All scans"
|
2585 |
msgstr ""
|
2586 |
|
2587 |
-
#: ../cerber-scanner.php:
|
2588 |
msgid "The file has been deleted permanently."
|
2589 |
msgstr ""
|
2590 |
|
2591 |
-
#: ../cerber-scanner.php:
|
2592 |
msgid "The file has been restored to its original location."
|
2593 |
msgstr ""
|
2594 |
|
2595 |
-
#: ../cerber-scanner.php:
|
2596 |
msgid "Apply"
|
2597 |
msgstr ""
|
2598 |
|
2599 |
-
#: ../cerber-scanner.php:
|
2600 |
msgid "Remove from the list"
|
2601 |
msgstr ""
|
2602 |
|
2603 |
-
#: ../cerber-scanner.php:
|
2604 |
msgid "User Insights"
|
2605 |
msgstr ""
|
2606 |
|
2607 |
-
#: ../cerber-scanner.php:
|
2608 |
msgid "Traffic Insights"
|
2609 |
msgstr ""
|
2610 |
|
2611 |
-
#: ../cerber-scanner.php:
|
2612 |
msgid "Activity Insights"
|
2613 |
msgstr ""
|
2614 |
|
2615 |
-
#: ../cerber-scanner.php:
|
2616 |
msgid "The list is empty."
|
2617 |
msgstr ""
|
2618 |
|
2619 |
-
#: ../cerber-scanner.php:
|
2620 |
msgid "Added"
|
2621 |
msgstr ""
|
2622 |
|
5 |
"Project-Id-Version: WP Cerber\n"
|
6 |
"Report-Msgid-Bugs-To: \n"
|
7 |
"POT-Creation-Date: Tue Sep 08 2015 21:38:11 GMT+0300\n"
|
8 |
+
"POT-Revision-Date: Thu Dec 06 2018 22:13:20 GMT+0300 (Moscow Standard Time)\n"
|
9 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: \n"
|
24 |
"esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
|
25 |
"X-Generator: Loco - https://localise.biz/"
|
26 |
|
27 |
+
#: ../dashboard.php:55
|
28 |
msgid "Cerber Dashboard"
|
29 |
msgstr ""
|
30 |
|
31 |
+
#: ../dashboard.php:55 ../dashboard.php:1349 ../dashboard.php:2166 ../settings.
|
32 |
+
#: php:654
|
33 |
msgid "Dashboard"
|
34 |
msgstr ""
|
35 |
|
36 |
+
#: ../dashboard.php:57
|
37 |
msgid "Cerber Traffic Inspector"
|
38 |
msgstr ""
|
39 |
|
40 |
+
#: ../dashboard.php:57 ../dashboard.php:1319 ../dashboard.php:2925
|
41 |
msgid "Traffic Inspector"
|
42 |
msgstr ""
|
43 |
|
44 |
+
#: ../dashboard.php:61
|
45 |
msgid "Cerber Security Rules"
|
46 |
msgstr ""
|
47 |
|
48 |
+
#: ../dashboard.php:61 ../dashboard.php:2587
|
49 |
msgid "Security Rules"
|
50 |
msgstr ""
|
51 |
|
52 |
+
#: ../dashboard.php:65 ../cerber-scanner.php:89
|
53 |
msgid "Site Integrity"
|
54 |
msgstr ""
|
55 |
|
56 |
+
#: ../dashboard.php:69
|
57 |
msgid "Cerber antispam settings"
|
58 |
msgstr ""
|
59 |
|
60 |
+
#: ../dashboard.php:69 ../cerber-load.php:4294 ../settings.php:212
|
61 |
msgid "Antispam"
|
62 |
msgstr ""
|
63 |
|
64 |
+
#: ../dashboard.php:70
|
65 |
msgid "Cerber tools"
|
66 |
msgstr ""
|
67 |
|
68 |
+
#: ../dashboard.php:70 ../cerber-tools.php:51
|
69 |
msgid "Tools"
|
70 |
msgstr ""
|
71 |
|
72 |
+
#: ../dashboard.php:128 ../dashboard.php:208
|
73 |
msgid "Remove"
|
74 |
msgstr ""
|
75 |
|
76 |
+
#: ../dashboard.php:135 ../dashboard.php:781 ../dashboard.php:3328 ../cerber-load.
|
77 |
+
#: php:4007
|
78 |
msgid "IP"
|
79 |
msgstr ""
|
80 |
|
81 |
+
#: ../dashboard.php:136 ../dashboard.php:782
|
82 |
msgid "Hostname"
|
83 |
msgstr ""
|
84 |
|
85 |
+
#: ../dashboard.php:137 ../dashboard.php:783
|
86 |
msgid "Country"
|
87 |
msgstr ""
|
88 |
|
89 |
+
#: ../dashboard.php:138
|
90 |
msgid "Expires"
|
91 |
msgstr ""
|
92 |
|
93 |
+
#: ../dashboard.php:139 ../cerber-load.php:3465
|
94 |
msgid "Reason"
|
95 |
msgstr ""
|
96 |
|
97 |
+
#: ../dashboard.php:140 ../cerber-scanner.php:5413 ../cerber-scanner.php:5544
|
98 |
msgid "Action"
|
99 |
msgstr ""
|
100 |
|
101 |
+
#: ../dashboard.php:154
|
102 |
#, php-format
|
103 |
msgid "Showing last %d records from %d"
|
104 |
msgstr ""
|
105 |
|
106 |
+
#: ../dashboard.php:156
|
107 |
msgid "Hint"
|
108 |
msgstr ""
|
109 |
|
110 |
+
#: ../dashboard.php:156
|
111 |
msgid "To view activity, click on the IP"
|
112 |
msgstr ""
|
113 |
|
114 |
+
#: ../dashboard.php:160
|
115 |
msgid "No lockouts at the moment. The sky is clear."
|
116 |
msgstr ""
|
117 |
|
118 |
+
#: ../dashboard.php:180 ../dashboard.php:756 ../dashboard.php:983 ../dashboard.
|
119 |
+
#: php:1314 ../dashboard.php:3140 ../cerber-load.php:4281 ../settings.php:624
|
120 |
msgid "White IP Access List"
|
121 |
msgstr ""
|
122 |
|
123 |
+
#: ../dashboard.php:180
|
124 |
msgid "These IPs will never be locked out"
|
125 |
msgstr ""
|
126 |
|
127 |
+
#: ../dashboard.php:182 ../dashboard.php:757 ../dashboard.php:986 ../dashboard.
|
128 |
+
#: php:1315 ../dashboard.php:3141
|
129 |
msgid "Black IP Access List"
|
130 |
msgstr ""
|
131 |
|
132 |
+
#: ../dashboard.php:182
|
133 |
msgid "Nobody can log in or register from these IPs"
|
134 |
msgstr ""
|
135 |
|
136 |
+
#: ../dashboard.php:189
|
137 |
msgid "Your IP"
|
138 |
msgstr ""
|
139 |
|
140 |
+
#: ../dashboard.php:207 ../dashboard.php:996 ../dashboard.php:1027 ../dashboard.
|
141 |
+
#: php:1139
|
142 |
msgid "Check for activities"
|
143 |
msgstr ""
|
144 |
|
145 |
+
#: ../dashboard.php:214
|
146 |
msgid "List is empty"
|
147 |
msgstr ""
|
148 |
|
149 |
+
#: ../dashboard.php:218
|
150 |
msgid "IP address, IPv4 address range or subnet"
|
151 |
msgstr ""
|
152 |
|
153 |
+
#: ../dashboard.php:219
|
154 |
msgid "Add IP to the list"
|
155 |
msgstr ""
|
156 |
|
157 |
+
#: ../dashboard.php:220
|
158 |
msgid "Optional comment for this entry"
|
159 |
msgstr ""
|
160 |
|
161 |
+
#: ../dashboard.php:245 ../dashboard.php:257
|
162 |
msgid "Incorrect IP address or IP range"
|
163 |
msgstr ""
|
164 |
|
165 |
+
#: ../dashboard.php:251
|
166 |
#, php-format
|
167 |
msgid "Address %s was added to White IP Access List"
|
168 |
msgstr ""
|
169 |
|
170 |
+
#: ../dashboard.php:261
|
171 |
msgid "You cannot add your IP address or network"
|
172 |
msgstr ""
|
173 |
|
174 |
+
#: ../dashboard.php:265
|
175 |
#, php-format
|
176 |
msgid "Address %s was added to Black IP Access List"
|
177 |
msgstr ""
|
178 |
|
179 |
+
#: ../dashboard.php:362 ../dashboard.php:3070 ../whois.php:225 ../whois.php:256 ..
|
180 |
+
#: /common.php:995 ../common.php:1410
|
181 |
msgid "Unknown"
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: ../dashboard.php:401
|
185 |
msgid "unknown"
|
186 |
msgstr ""
|
187 |
|
188 |
+
#: ../dashboard.php:432
|
189 |
msgid "Email has been sent to"
|
190 |
msgstr ""
|
191 |
|
192 |
+
#: ../dashboard.php:435
|
193 |
msgid "Unable to send email to"
|
194 |
msgstr ""
|
195 |
|
196 |
+
#: ../dashboard.php:441
|
197 |
#, php-format
|
198 |
msgid "Lockout for %s was removed"
|
199 |
msgstr ""
|
200 |
|
201 |
+
#: ../dashboard.php:460 ../dashboard.php:1997
|
202 |
msgid "Settings saved"
|
203 |
msgstr ""
|
204 |
|
205 |
+
#: ../dashboard.php:571 ../dashboard.php:2976
|
206 |
msgid "IP address"
|
207 |
msgstr ""
|
208 |
|
209 |
+
#: ../dashboard.php:572 ../dashboard.php:784 ../dashboard.php:2977 ../dashboard.
|
210 |
+
#: php:3326
|
211 |
msgid "Date"
|
212 |
msgstr ""
|
213 |
|
214 |
+
#: ../dashboard.php:573 ../dashboard.php:785
|
215 |
msgid "Event"
|
216 |
msgstr ""
|
217 |
|
218 |
+
#: ../dashboard.php:574
|
219 |
+
msgid "Additional Details"
|
220 |
+
msgstr ""
|
221 |
+
|
222 |
+
#: ../dashboard.php:575 ../dashboard.php:786 ../dashboard.php:3331
|
223 |
msgid "Local User"
|
224 |
msgstr ""
|
225 |
|
226 |
+
#: ../dashboard.php:576
|
227 |
msgid "User login"
|
228 |
msgstr ""
|
229 |
|
230 |
+
#: ../dashboard.php:577 ../dashboard.php:2982
|
231 |
msgid "User ID"
|
232 |
msgstr ""
|
233 |
|
234 |
+
#: ../dashboard.php:578 ../dashboard.php:787 ../cerber-load.php:4015
|
235 |
msgid "Username used"
|
236 |
msgstr ""
|
237 |
|
238 |
+
#: ../dashboard.php:761 ../dashboard.php:989 ../dashboard.php:3145 ../common.php:
|
239 |
+
#: 940
|
240 |
msgid "Locked out"
|
241 |
msgstr ""
|
242 |
|
243 |
+
#: ../dashboard.php:805 ../dashboard.php:3385
|
244 |
msgid "Export"
|
245 |
msgstr ""
|
246 |
|
247 |
+
#: ../dashboard.php:809
|
248 |
msgid "No activity has been logged."
|
249 |
msgstr ""
|
250 |
|
251 |
+
#: ../dashboard.php:816
|
252 |
msgid "All events"
|
253 |
msgstr ""
|
254 |
|
255 |
+
#: ../dashboard.php:827
|
256 |
msgid "Search for IP or username"
|
257 |
msgstr ""
|
258 |
|
259 |
+
#: ../dashboard.php:827
|
260 |
msgid "Filter"
|
261 |
msgstr ""
|
262 |
|
263 |
+
#: ../dashboard.php:1023
|
264 |
msgid "Abuse email:"
|
265 |
msgstr ""
|
266 |
|
267 |
+
#: ../dashboard.php:1027
|
268 |
msgid "Network:"
|
269 |
msgstr ""
|
270 |
|
271 |
+
#: ../dashboard.php:1041
|
272 |
msgid "Add network to the Black List"
|
273 |
msgstr ""
|
274 |
|
275 |
+
#: ../dashboard.php:1046
|
276 |
msgid "Add IP to the Black List"
|
277 |
msgstr ""
|
278 |
|
279 |
+
#: ../dashboard.php:1102
|
280 |
msgid "Activated"
|
281 |
msgstr ""
|
282 |
|
283 |
+
#: ../dashboard.php:1123
|
284 |
msgid "Last seen"
|
285 |
msgstr ""
|
286 |
|
287 |
+
#: ../dashboard.php:1133 ../dashboard.php:1179
|
288 |
msgid "Registered"
|
289 |
msgstr ""
|
290 |
|
291 |
+
#: ../dashboard.php:1176
|
292 |
msgid "Comments"
|
293 |
msgstr ""
|
294 |
|
295 |
+
#: ../dashboard.php:1177
|
296 |
msgid "Last login"
|
297 |
msgstr ""
|
298 |
|
299 |
+
#: ../dashboard.php:1178
|
300 |
msgid "Failed login attempts"
|
301 |
msgstr ""
|
302 |
|
303 |
+
#: ../dashboard.php:1210 ../dashboard.php:1297 ../common.php:1136
|
304 |
msgid "Never"
|
305 |
msgstr ""
|
306 |
|
307 |
+
#: ../dashboard.php:1249
|
308 |
msgid "You"
|
309 |
msgstr ""
|
310 |
|
311 |
+
#: ../dashboard.php:1267
|
312 |
msgid "Cerber Quick View"
|
313 |
msgstr ""
|
314 |
|
315 |
+
#: ../dashboard.php:1301 ../dashboard.php:1323
|
316 |
msgid "active"
|
317 |
msgstr ""
|
318 |
|
319 |
+
#: ../dashboard.php:1301
|
320 |
msgid "deactivate"
|
321 |
msgstr ""
|
322 |
|
323 |
+
#: ../dashboard.php:1303
|
324 |
msgid "not active"
|
325 |
msgstr ""
|
326 |
|
327 |
+
#: ../dashboard.php:1304 ../dashboard.php:1318
|
328 |
msgid "disabled"
|
329 |
msgstr ""
|
330 |
|
331 |
+
#: ../dashboard.php:1309
|
332 |
msgid "failed attempts"
|
333 |
msgstr ""
|
334 |
|
335 |
+
#: ../dashboard.php:1309 ../dashboard.php:1310
|
336 |
msgid "in 24 hours"
|
337 |
msgstr ""
|
338 |
|
339 |
+
#: ../dashboard.php:1309 ../dashboard.php:1310
|
340 |
msgid "view all"
|
341 |
msgstr ""
|
342 |
|
343 |
+
#: ../dashboard.php:1310
|
344 |
msgid "lockouts"
|
345 |
msgstr ""
|
346 |
|
347 |
+
#: ../dashboard.php:1312
|
348 |
msgid "Lockouts at the moment"
|
349 |
msgstr ""
|
350 |
|
351 |
+
#: ../dashboard.php:1313
|
352 |
msgid "Last lockout"
|
353 |
msgstr ""
|
354 |
|
355 |
+
#: ../dashboard.php:1314 ../dashboard.php:1315 ../dashboard.php:2144
|
356 |
msgid "entry"
|
357 |
msgid_plural "entries"
|
358 |
msgstr[0] ""
|
359 |
msgstr[1] ""
|
360 |
|
361 |
+
#: ../dashboard.php:1316 ../settings.php:104
|
362 |
msgid "Citadel mode"
|
363 |
msgstr ""
|
364 |
|
365 |
+
#: ../dashboard.php:1318
|
366 |
msgid "enabled"
|
367 |
msgstr ""
|
368 |
|
369 |
+
#: ../dashboard.php:1323
|
370 |
msgid "no connection"
|
371 |
msgstr ""
|
372 |
|
373 |
+
#: ../dashboard.php:1333
|
374 |
msgctxt "Example: Last malware scan: 23 Jan 2018"
|
375 |
msgid "Last malware scan"
|
376 |
msgstr ""
|
377 |
|
378 |
+
#: ../dashboard.php:1336 ../dashboard.php:1338 ../settings.php:290 ../settings.
|
379 |
+
#: php:316 ../cerber-scanner.php:1466
|
380 |
msgid "Disabled"
|
381 |
msgstr ""
|
382 |
|
383 |
+
#: ../dashboard.php:1337 ../cerber-scanner.php:915
|
384 |
msgid "Quick Scan"
|
385 |
msgstr ""
|
386 |
|
387 |
+
#: ../dashboard.php:1339 ../cerber-scanner.php:915
|
388 |
msgid "Full Scan"
|
389 |
msgstr ""
|
390 |
|
391 |
+
#: ../dashboard.php:1350 ../dashboard.php:1825 ../cerber-load.php:3998 ..
|
392 |
+
#: /settings.php:109 ../settings.php:655
|
393 |
msgid "Activity"
|
394 |
msgstr ""
|
395 |
|
396 |
+
#: ../dashboard.php:1351
|
397 |
msgid "Traffic"
|
398 |
msgstr ""
|
399 |
|
400 |
+
#: ../dashboard.php:1352
|
401 |
msgid "Integrity"
|
402 |
msgstr ""
|
403 |
|
404 |
+
#: ../dashboard.php:1628 ../settings.php:84
|
405 |
msgid "My site is behind a reverse proxy"
|
406 |
msgstr ""
|
407 |
|
408 |
+
#: ../dashboard.php:1804
|
409 |
msgid "in the last 24 hours"
|
410 |
msgstr ""
|
411 |
|
412 |
+
#: ../dashboard.php:1810 ../dashboard.php:1836
|
413 |
msgid "View all"
|
414 |
msgstr ""
|
415 |
|
416 |
+
#: ../dashboard.php:1818 ../common.php:885
|
417 |
msgid "User registered"
|
418 |
msgstr ""
|
419 |
|
420 |
+
#: ../dashboard.php:1819
|
421 |
msgid "All suspicious activity"
|
422 |
msgstr ""
|
423 |
|
424 |
+
#: ../dashboard.php:1837
|
425 |
msgid "Recently locked out IP addresses"
|
426 |
msgstr ""
|
427 |
|
428 |
+
#: ../dashboard.php:1861
|
429 |
msgid "Confused about some settings?"
|
430 |
msgstr ""
|
431 |
|
432 |
+
#: ../dashboard.php:1862
|
433 |
msgid "You can easily load default recommended settings using button below"
|
434 |
msgstr ""
|
435 |
|
436 |
+
#: ../dashboard.php:1864
|
437 |
msgid "Load default settings"
|
438 |
msgstr ""
|
439 |
|
440 |
+
#: ../dashboard.php:1866 ../cerber-tools.php:649 ../cerber-scanner.php:5389 ..
|
441 |
+
#: /cerber-scanner.php:5531
|
442 |
msgid "Are you sure?"
|
443 |
msgstr ""
|
444 |
|
445 |
+
#: ../dashboard.php:1872
|
446 |
msgid "doesn't affect Custom login URL and Access Lists"
|
447 |
msgstr ""
|
448 |
|
449 |
+
#: ../dashboard.php:1873 ../cerber-load.php:3497 ../cerber-load.php:4283
|
450 |
msgid "Getting Started Guide"
|
451 |
msgstr ""
|
452 |
|
453 |
+
#: ../dashboard.php:1980
|
454 |
msgid "Attention! Citadel mode is now active. Nobody is able to log in."
|
455 |
msgstr ""
|
456 |
|
457 |
+
#: ../dashboard.php:1981
|
458 |
msgid "Deactivate"
|
459 |
msgstr ""
|
460 |
|
461 |
+
#: ../dashboard.php:1982 ../dashboard.php:2403
|
462 |
msgid "View Activity"
|
463 |
msgstr ""
|
464 |
|
465 |
+
#: ../dashboard.php:2064
|
466 |
msgid "Subscribe"
|
467 |
msgstr ""
|
468 |
|
469 |
+
#: ../dashboard.php:2065 ../cerber-tools.php:282
|
470 |
msgid "Unsubscribe"
|
471 |
msgstr ""
|
472 |
|
473 |
+
#: ../dashboard.php:2093
|
474 |
msgid "You've subscribed"
|
475 |
msgstr ""
|
476 |
|
477 |
+
#: ../dashboard.php:2096
|
478 |
msgid "You've unsubscribed"
|
479 |
msgstr ""
|
480 |
|
481 |
+
#: ../dashboard.php:2167
|
482 |
msgid "Main settings"
|
483 |
msgstr ""
|
484 |
|
485 |
+
#: ../dashboard.php:2271
|
486 |
msgid "Are you sure you want to delete selected files?"
|
487 |
msgstr ""
|
488 |
|
489 |
+
#: ../dashboard.php:2272
|
490 |
msgid "These files have been moved to the quarantine"
|
491 |
msgstr ""
|
492 |
|
493 |
+
#: ../dashboard.php:2275
|
494 |
msgid "Do you want to add selected files to the ignore list?"
|
495 |
msgstr ""
|
496 |
|
497 |
+
#: ../dashboard.php:2276
|
498 |
msgid "These files have been added to the ignore list"
|
499 |
msgstr ""
|
500 |
|
501 |
+
#: ../dashboard.php:2278
|
502 |
msgid "Some errors occurred"
|
503 |
msgstr ""
|
504 |
|
505 |
+
#: ../dashboard.php:2279
|
506 |
msgid "All files have been processed"
|
507 |
msgstr ""
|
508 |
|
509 |
+
#: ../dashboard.php:2447
|
510 |
msgid "These features are available in a professional version of the plugin."
|
511 |
msgstr ""
|
512 |
|
513 |
+
#: ../dashboard.php:2448
|
514 |
msgid "Know more about all advantages at"
|
515 |
msgstr ""
|
516 |
|
517 |
+
#: ../dashboard.php:2579
|
518 |
msgid "Countries"
|
519 |
msgstr ""
|
520 |
|
521 |
+
#: ../dashboard.php:2648
|
522 |
#, php-format
|
523 |
msgid "Permitted for one country"
|
524 |
msgid_plural "Permitted for %d countries"
|
525 |
msgstr[0] ""
|
526 |
msgstr[1] ""
|
527 |
|
528 |
+
#: ../dashboard.php:2651
|
529 |
#, php-format
|
530 |
msgid "Not permitted for one country"
|
531 |
msgid_plural "Not permitted for %d countries"
|
532 |
msgstr[0] ""
|
533 |
msgstr[1] ""
|
534 |
|
535 |
+
#: ../dashboard.php:2659
|
536 |
msgid "No rule"
|
537 |
msgstr ""
|
538 |
|
539 |
+
#: ../dashboard.php:2715
|
540 |
msgid "Start typing here to find a country"
|
541 |
msgstr ""
|
542 |
|
543 |
+
#: ../dashboard.php:2798
|
544 |
msgid "Click on a country name to add it to the list of selected countries"
|
545 |
msgstr ""
|
546 |
|
547 |
+
#: ../dashboard.php:2802
|
548 |
#, php-format
|
549 |
msgctxt "to is a marker of infinitive, e.g. \"to use it\""
|
550 |
msgid "Selected countries are permitted to %s, other countries are not permitted to"
|
551 |
msgstr ""
|
552 |
|
553 |
+
#: ../dashboard.php:2805
|
554 |
#, php-format
|
555 |
msgctxt "to is a marker of infinitive, e.g. \"to use it\""
|
556 |
msgid "Selected countries are not permitted to %s, other countries are permitted to"
|
557 |
msgstr ""
|
558 |
|
559 |
+
#: ../dashboard.php:2822
|
560 |
msgid "Submit forms"
|
561 |
msgstr ""
|
562 |
|
563 |
+
#: ../dashboard.php:2823
|
564 |
msgid "Post comments"
|
565 |
msgstr ""
|
566 |
|
567 |
+
#: ../dashboard.php:2824
|
568 |
msgid "Log in to the website"
|
569 |
msgstr ""
|
570 |
|
571 |
+
#: ../dashboard.php:2825
|
572 |
msgid "Register on the website"
|
573 |
msgstr ""
|
574 |
|
575 |
+
#: ../dashboard.php:2826
|
576 |
msgid "Use XML-RPC"
|
577 |
msgstr ""
|
578 |
|
579 |
+
#: ../dashboard.php:2827
|
580 |
msgid "Use REST API"
|
581 |
msgstr ""
|
582 |
|
583 |
+
#: ../dashboard.php:2871
|
584 |
msgid "Security rules have been updated"
|
585 |
msgstr ""
|
586 |
|
587 |
+
#: ../dashboard.php:2916
|
588 |
msgid "Live Traffic"
|
589 |
msgstr ""
|
590 |
|
591 |
+
#: ../dashboard.php:2917 ../cerber-tools.php:91 ../cerber-tools.php:100 ../cerber-
|
592 |
#: scanner.php:76
|
593 |
msgid "Settings"
|
594 |
msgstr ""
|
595 |
|
596 |
+
#: ../dashboard.php:2983
|
597 |
msgid "Page generation time"
|
598 |
msgstr ""
|
599 |
|
600 |
+
#: ../dashboard.php:3327
|
601 |
msgid "Request"
|
602 |
msgstr ""
|
603 |
|
604 |
+
#: ../dashboard.php:3329
|
605 |
msgid "Host Info"
|
606 |
msgstr ""
|
607 |
|
608 |
+
#: ../dashboard.php:3330
|
609 |
msgid "User Agent"
|
610 |
msgstr ""
|
611 |
|
612 |
+
#: ../dashboard.php:3347
|
613 |
msgid "No requests have been logged."
|
614 |
msgstr ""
|
615 |
|
616 |
+
#: ../dashboard.php:3355
|
617 |
msgid "All requests"
|
618 |
msgstr ""
|
619 |
|
620 |
+
#: ../dashboard.php:3357
|
621 |
msgid "Suspicious activity"
|
622 |
msgstr ""
|
623 |
|
624 |
+
#: ../dashboard.php:3358
|
625 |
msgid "Errors"
|
626 |
msgstr ""
|
627 |
|
628 |
+
#: ../dashboard.php:3359 ../settings.php:180
|
629 |
msgid "Logged in users"
|
630 |
msgstr ""
|
631 |
|
632 |
+
#: ../dashboard.php:3360
|
633 |
msgid "Not logged in visitors"
|
634 |
msgstr ""
|
635 |
|
636 |
+
#: ../dashboard.php:3363
|
637 |
msgid "Form submissions"
|
638 |
msgstr ""
|
639 |
|
640 |
+
#: ../dashboard.php:3365
|
641 |
msgid "Page Not Found"
|
642 |
msgstr ""
|
643 |
|
644 |
+
#: ../dashboard.php:3374
|
645 |
msgid "Longer than"
|
646 |
msgstr ""
|
647 |
|
648 |
+
#: ../dashboard.php:3390
|
649 |
msgid "Refresh"
|
650 |
msgstr ""
|
651 |
|
652 |
+
#: ../dashboard.php:3655
|
653 |
msgid "Any"
|
654 |
msgstr ""
|
655 |
|
656 |
+
#: ../dashboard.php:3698
|
657 |
msgid "Advanced search"
|
658 |
msgstr ""
|
659 |
|
660 |
+
#: ../dashboard.php:3757
|
661 |
msgid "Antispam engine"
|
662 |
msgstr ""
|
663 |
|
664 |
+
#: ../dashboard.php:3766
|
665 |
msgid "Antispam and bot detection settings"
|
666 |
msgstr ""
|
667 |
|
668 |
+
#: ../dashboard.php:3824
|
669 |
msgid "Help"
|
670 |
msgstr ""
|
671 |
|
672 |
+
#: ../dashboard.php:3846
|
673 |
msgid "Log In"
|
674 |
msgstr ""
|
675 |
|
676 |
+
#: ../dashboard.php:3847
|
677 |
msgid "Log Out"
|
678 |
msgstr ""
|
679 |
|
680 |
+
#: ../dashboard.php:3848
|
681 |
msgid "Register"
|
682 |
msgstr ""
|
683 |
|
684 |
+
#: ../dashboard.php:3851
|
685 |
msgid "WooCommerce Log In"
|
686 |
msgstr ""
|
687 |
|
688 |
+
#: ../dashboard.php:3852
|
689 |
msgid "WooCommerce Log Out"
|
690 |
msgstr ""
|
691 |
|
692 |
+
#: ../dashboard.php:3891 ../dashboard.php:3892
|
693 |
msgid "Add to menu"
|
694 |
msgstr ""
|
695 |
|
714 |
msgid "Gregory"
|
715 |
msgstr ""
|
716 |
|
717 |
+
#: ../common.php:120
|
718 |
msgid "Check for requests"
|
719 |
msgstr ""
|
720 |
|
721 |
+
#: ../common.php:166
|
722 |
msgid "Malicious activities mitigated"
|
723 |
msgstr ""
|
724 |
|
725 |
+
#: ../common.php:169
|
726 |
msgid "Spam comments denied"
|
727 |
msgstr ""
|
728 |
|
729 |
+
#: ../common.php:170
|
730 |
msgid "Spam form submissions denied"
|
731 |
msgstr ""
|
732 |
|
733 |
+
#: ../common.php:171
|
734 |
msgid "Malicious IP addresses detected"
|
735 |
msgstr ""
|
736 |
|
737 |
+
#: ../common.php:172
|
738 |
msgid "Lockouts occurred"
|
739 |
msgstr ""
|
740 |
|
741 |
+
#: ../common.php:226 ../common.php:292 ../common.php:297 ../common.php:303 ..
|
742 |
+
#: /common.php:308 ../cerber-load.php:694 ../cerber-load.php:706 ../cerber-load.
|
743 |
+
#: php:713 ../cerber-load.php:988 ../cerber-load.php:1215 ../cerber-load.php:1221
|
744 |
+
#: ../cerber-load.php:1226 ../cerber-load.php:1231 ../cerber-load.php:1237 ..
|
745 |
+
#: /cerber-load.php:1244 ../cerber-load.php:1346 ../cerber-load.php:1483 ..
|
746 |
+
#: /settings.php:1061 ../settings.php:1144
|
747 |
msgid "ERROR:"
|
748 |
msgstr ""
|
749 |
|
750 |
+
#: ../common.php:884
|
751 |
msgid "User created"
|
752 |
msgstr ""
|
753 |
|
754 |
+
#: ../common.php:886
|
755 |
msgid "Logged in"
|
756 |
msgstr ""
|
757 |
|
758 |
+
#: ../common.php:887
|
759 |
msgid "Logged out"
|
760 |
msgstr ""
|
761 |
|
762 |
+
#: ../common.php:888
|
763 |
msgid "Login failed"
|
764 |
msgstr ""
|
765 |
|
766 |
+
#: ../common.php:891
|
767 |
msgid "IP blocked"
|
768 |
msgstr ""
|
769 |
|
770 |
+
#: ../common.php:892
|
771 |
msgid "Subnet blocked"
|
772 |
msgstr ""
|
773 |
|
774 |
+
#: ../common.php:894
|
775 |
msgid "Citadel activated!"
|
776 |
msgstr ""
|
777 |
|
778 |
+
#: ../common.php:895
|
779 |
msgid "Spam comment denied"
|
780 |
msgstr ""
|
781 |
|
782 |
+
#: ../common.php:896
|
783 |
msgid "Spam form submission denied"
|
784 |
msgstr ""
|
785 |
|
786 |
+
#: ../common.php:897
|
787 |
msgid "Form submission denied"
|
788 |
msgstr ""
|
789 |
|
790 |
+
#: ../common.php:898
|
791 |
msgid "Comment denied"
|
792 |
msgstr ""
|
793 |
|
794 |
+
#: ../common.php:909
|
795 |
msgid "Password changed"
|
796 |
msgstr ""
|
797 |
|
798 |
+
#: ../common.php:910
|
799 |
msgid "Password reset requested"
|
800 |
msgstr ""
|
801 |
|
802 |
+
#: ../common.php:912
|
803 |
msgid "reCAPTCHA verification failed"
|
804 |
msgstr ""
|
805 |
|
806 |
+
#: ../common.php:913
|
807 |
msgid "reCAPTCHA settings are incorrect"
|
808 |
msgstr ""
|
809 |
|
810 |
+
#: ../common.php:914
|
811 |
msgid "Request to the Google reCAPTCHA service failed"
|
812 |
msgstr ""
|
813 |
|
814 |
+
#: ../common.php:916 ../common.php:999
|
815 |
msgid "Attempt to access prohibited URL"
|
816 |
msgstr ""
|
817 |
|
818 |
+
#: ../common.php:917 ../common.php:979
|
819 |
msgid "Attempt to log in with non-existent username"
|
820 |
msgstr ""
|
821 |
|
822 |
+
#: ../common.php:918 ../common.php:980
|
823 |
msgid "Attempt to log in with prohibited username"
|
824 |
msgstr ""
|
825 |
|
826 |
+
#: ../common.php:920
|
827 |
msgid "Attempt to log in denied"
|
828 |
msgstr ""
|
829 |
|
830 |
+
#: ../common.php:921
|
831 |
msgid "Attempt to register denied"
|
832 |
msgstr ""
|
833 |
|
834 |
+
#: ../common.php:922 ../common.php:984
|
835 |
msgid "Probing for vulnerable PHP code"
|
836 |
msgstr ""
|
837 |
|
838 |
+
#: ../common.php:923
|
839 |
msgid "Attempt to upload malicious file denied"
|
840 |
msgstr ""
|
841 |
|
842 |
+
#: ../common.php:924
|
843 |
msgid "File upload denied"
|
844 |
msgstr ""
|
845 |
|
846 |
+
#: ../common.php:926
|
847 |
msgid "Request to REST API denied"
|
848 |
msgstr ""
|
849 |
|
850 |
+
#: ../common.php:927
|
851 |
msgid "XML-RPC request denied"
|
852 |
msgstr ""
|
853 |
|
854 |
+
#: ../common.php:929
|
855 |
msgid "Malicious request denied"
|
856 |
msgstr ""
|
857 |
|
858 |
+
#: ../common.php:933
|
859 |
msgid "User activated"
|
860 |
msgstr ""
|
861 |
|
862 |
+
#: ../common.php:938
|
863 |
msgid "Bot detected"
|
864 |
msgstr ""
|
865 |
|
866 |
+
#: ../common.php:939
|
867 |
msgid "Citadel mode is active"
|
868 |
msgstr ""
|
869 |
|
870 |
+
#: ../common.php:941
|
871 |
+
msgid "IP address is locked out"
|
872 |
+
msgstr ""
|
873 |
+
|
874 |
+
#: ../common.php:942
|
875 |
msgid "IP blacklisted"
|
876 |
msgstr ""
|
877 |
|
878 |
+
#: ../common.php:944
|
879 |
msgid "Malicious activity detected"
|
880 |
msgstr ""
|
881 |
|
882 |
+
#: ../common.php:945
|
883 |
msgid "Blocked by country rule"
|
884 |
msgstr ""
|
885 |
|
886 |
+
#: ../common.php:946
|
887 |
msgid "Limit reached"
|
888 |
msgstr ""
|
889 |
|
890 |
+
#: ../common.php:947
|
891 |
msgid "Multiple suspicious activities"
|
892 |
msgstr ""
|
893 |
|
894 |
+
#: ../common.php:948
|
895 |
msgid "Denied"
|
896 |
msgstr ""
|
897 |
|
898 |
+
#: ../common.php:949
|
899 |
msgid "Suspicious number of fields"
|
900 |
msgstr ""
|
901 |
|
902 |
+
#: ../common.php:950
|
903 |
msgid "Suspicious number of nested values"
|
904 |
msgstr ""
|
905 |
|
906 |
+
#: ../common.php:951 ../common.php:985
|
907 |
msgid "Malicious code detected"
|
908 |
msgstr ""
|
909 |
|
910 |
+
#: ../common.php:952
|
911 |
msgid "Suspicious SQL code detected"
|
912 |
msgstr ""
|
913 |
|
914 |
+
#: ../common.php:953
|
915 |
msgid "Suspicious JavaScript code detected"
|
916 |
msgstr ""
|
917 |
|
918 |
+
#: ../common.php:977
|
919 |
msgid "Limit on login attempts is reached"
|
920 |
msgstr ""
|
921 |
|
922 |
+
#: ../common.php:978
|
923 |
msgid "Attempt to access"
|
924 |
msgstr ""
|
925 |
|
926 |
+
#: ../common.php:981
|
927 |
msgid "Limit on failed reCAPTCHA verifications is reached"
|
928 |
msgstr ""
|
929 |
|
930 |
+
#: ../common.php:982
|
931 |
msgid "Bot activity is detected"
|
932 |
msgstr ""
|
933 |
|
934 |
+
#: ../common.php:983
|
935 |
msgid "Multiple suspicious activities were detected"
|
936 |
msgstr ""
|
937 |
|
938 |
+
#: ../common.php:986
|
939 |
msgid "Attempt to upload a file with malicious code"
|
940 |
msgstr ""
|
941 |
|
942 |
+
#: ../common.php:988
|
943 |
msgid "Multiple suspicious requests"
|
944 |
msgstr ""
|
945 |
|
946 |
+
#: ../common.php:1131
|
947 |
#, php-format
|
948 |
msgid "%s ago"
|
949 |
msgstr ""
|
950 |
|
951 |
+
#: ../common.php:1131
|
952 |
#, php-format
|
953 |
msgctxt "preposition of a period of time like: in 6 hours"
|
954 |
msgid "in %s"
|
955 |
msgstr ""
|
956 |
|
957 |
+
#: ../common.php:1217
|
958 |
msgid "Bytes"
|
959 |
msgstr ""
|
960 |
|
961 |
+
#: ../common.php:1315 ../settings.php:237
|
962 |
msgid "New version is available"
|
963 |
msgstr ""
|
964 |
|
965 |
+
#: ../common.php:1322
|
966 |
#, php-format
|
967 |
msgid "Update to version %s of WP Cerber"
|
968 |
msgstr ""
|
969 |
|
970 |
+
#: ../common.php:1341
|
971 |
msgid "Not specified"
|
972 |
msgstr ""
|
973 |
|
974 |
+
#: ../common.php:2167
|
975 |
msgid "Unable to create the directory"
|
976 |
msgstr ""
|
977 |
|
978 |
+
#: ../common.php:2172
|
979 |
msgid "Destination folder access denied"
|
980 |
msgstr ""
|
981 |
|
982 |
+
#: ../common.php:2175
|
983 |
msgid "File not found"
|
984 |
msgstr ""
|
985 |
|
986 |
+
#: ../common.php:2178
|
987 |
msgid "Unable to copy the file"
|
988 |
msgstr ""
|
989 |
|
990 |
+
#: ../common.php:2184
|
991 |
msgid "Unable to delete the file"
|
992 |
msgstr ""
|
993 |
|
994 |
+
#: ../cerber-news.php:139
|
995 |
msgid "Awesome!"
|
996 |
msgstr ""
|
997 |
|
998 |
+
#: ../cerber-lab.php:762
|
999 |
msgid "Want to make WP Cerber even more powerful?"
|
1000 |
msgstr ""
|
1001 |
|
1002 |
+
#: ../cerber-lab.php:763
|
1003 |
msgid ""
|
1004 |
"Allow WP Cerber to send locked out malicious IP addresses to Cerber Lab. "
|
1005 |
"This helps the plugin team to develop new algorithms for WP Cerber that will "
|
1007 |
"everyday. You can disable the sending in the plugin settings at any time."
|
1008 |
msgstr ""
|
1009 |
|
1010 |
+
#: ../cerber-lab.php:764
|
1011 |
msgid "OK, nail them all"
|
1012 |
msgstr ""
|
1013 |
|
1014 |
+
#: ../cerber-lab.php:765
|
1015 |
msgid "NO, maybe later"
|
1016 |
msgstr ""
|
1017 |
|
1018 |
+
#: ../cerber-lab.php:766 ../settings.php:628 ../settings.php:631
|
1019 |
msgid "Know more"
|
1020 |
msgstr ""
|
1021 |
|
1022 |
+
#: ../cerber-load.php:385
|
1023 |
msgid "You are not allowed to log in. Ask your administrator for assistance."
|
1024 |
msgstr ""
|
1025 |
|
1026 |
+
#: ../cerber-load.php:392
|
1027 |
#, php-format
|
1028 |
msgid ""
|
1029 |
"You have exceeded the number of allowed login attempts. Please try again in "
|
1030 |
"%d minutes."
|
1031 |
msgstr ""
|
1032 |
|
1033 |
+
#: ../cerber-load.php:411
|
1034 |
#, php-format
|
1035 |
msgid "You have only one attempt remaining."
|
1036 |
msgid_plural "You have %d attempts remaining."
|
1037 |
msgstr[0] ""
|
1038 |
msgstr[1] ""
|
1039 |
|
1040 |
+
#: ../cerber-load.php:723
|
1041 |
msgid ""
|
1042 |
"Human verification failed. Please click the square box in the reCAPTCHA "
|
1043 |
"block below."
|
1044 |
msgstr ""
|
1045 |
|
1046 |
+
#: ../cerber-load.php:853
|
1047 |
msgid ""
|
1048 |
"> > > Translator of WP Cerber? To get the PRO license for free, drop your "
|
1049 |
"contacts here: https://wpcerber.com/contact/"
|
1050 |
msgstr ""
|
1051 |
|
1052 |
+
#: ../cerber-load.php:1000
|
1053 |
#, php-format
|
1054 |
msgid ""
|
1055 |
"<strong>ERROR</strong>: The password you entered for the username %s is "
|
1056 |
"incorrect."
|
1057 |
msgstr ""
|
1058 |
|
1059 |
+
#: ../cerber-load.php:1216 ../cerber-load.php:1222 ../cerber-load.php:1238 ..
|
1060 |
+
#: /cerber-load.php:1245
|
1061 |
msgid "You are not allowed to register."
|
1062 |
msgstr ""
|
1063 |
|
1064 |
+
#: ../cerber-load.php:1232
|
1065 |
msgid "Username is not allowed. Please choose another one."
|
1066 |
msgstr ""
|
1067 |
|
1068 |
+
#: ../cerber-load.php:1483
|
1069 |
msgid "Sorry, human verification failed."
|
1070 |
msgstr ""
|
1071 |
|
1072 |
+
#: ../cerber-load.php:3296
|
1073 |
msgid "We're sorry, you are not allowed to proceed"
|
1074 |
msgstr ""
|
1075 |
|
1076 |
+
#: ../cerber-load.php:3406
|
1077 |
msgid "WP Cerber notify"
|
1078 |
msgstr ""
|
1079 |
|
1080 |
+
#: ../cerber-load.php:3430
|
1081 |
msgid "Citadel mode is activated"
|
1082 |
msgstr ""
|
1083 |
|
1084 |
+
#: ../cerber-load.php:3432
|
1085 |
#, php-format
|
1086 |
msgid "Citadel mode is activated after %d failed login attempts in %d minutes."
|
1087 |
msgstr ""
|
1088 |
|
1089 |
+
#: ../cerber-load.php:3433
|
1090 |
#, php-format
|
1091 |
msgid "Last failed attempt was at %s from IP %s with user login: %s."
|
1092 |
msgstr ""
|
1093 |
|
1094 |
+
#: ../cerber-load.php:3434 ../cerber-load.php:4039
|
1095 |
msgid "View activity in dashboard"
|
1096 |
msgstr ""
|
1097 |
|
1098 |
+
#: ../cerber-load.php:3458
|
1099 |
msgid "unspecified"
|
1100 |
msgstr ""
|
1101 |
|
1102 |
+
#: ../cerber-load.php:3461
|
1103 |
msgid "Number of lockouts is increasing"
|
1104 |
msgstr ""
|
1105 |
|
1106 |
+
#: ../cerber-load.php:3463
|
1107 |
msgid "Number of active lockouts"
|
1108 |
msgstr ""
|
1109 |
|
1110 |
+
#: ../cerber-load.php:3464
|
1111 |
#, php-format
|
1112 |
msgid "Last lockout was added: %s for IP %s"
|
1113 |
msgstr ""
|
1114 |
|
1115 |
+
#: ../cerber-load.php:3466
|
1116 |
msgid "View activity for this IP"
|
1117 |
msgstr ""
|
1118 |
|
1119 |
+
#: ../cerber-load.php:3467
|
1120 |
msgid "View lockouts in dashboard"
|
1121 |
msgstr ""
|
1122 |
|
1123 |
+
#: ../cerber-load.php:3470 ../cerber-load.php:3472
|
1124 |
msgid "A new version of WP Cerber is available to install"
|
1125 |
msgstr ""
|
1126 |
|
1127 |
+
#: ../cerber-load.php:3471
|
1128 |
msgid "Hi!"
|
1129 |
msgstr ""
|
1130 |
|
1131 |
+
#: ../cerber-load.php:3474 ../cerber-load.php:3485
|
1132 |
msgid "Website"
|
1133 |
msgstr ""
|
1134 |
|
1135 |
+
#: ../cerber-load.php:3477 ../cerber-load.php:3478
|
1136 |
msgid "The WP Cerber security plugin has been deactivated"
|
1137 |
msgstr ""
|
1138 |
|
1139 |
+
#: ../cerber-load.php:3480
|
1140 |
msgid "Not logged in"
|
1141 |
msgstr ""
|
1142 |
|
1143 |
+
#: ../cerber-load.php:3486
|
1144 |
msgid "By user"
|
1145 |
msgstr ""
|
1146 |
|
1147 |
+
#: ../cerber-load.php:3487
|
1148 |
msgid "From IP address"
|
1149 |
msgstr ""
|
1150 |
|
1151 |
+
#: ../cerber-load.php:3490
|
1152 |
msgid "From country"
|
1153 |
msgstr ""
|
1154 |
|
1155 |
+
#: ../cerber-load.php:3494
|
1156 |
msgid "The WP Cerber security plugin is now active"
|
1157 |
msgstr ""
|
1158 |
|
1159 |
+
#: ../cerber-load.php:3495 ../cerber-load.php:4280
|
1160 |
msgid "WP Cerber is now active and has started protecting your site"
|
1161 |
msgstr ""
|
1162 |
|
1163 |
+
#: ../cerber-load.php:3502
|
1164 |
msgid "New Custom login URL"
|
1165 |
msgstr ""
|
1166 |
|
1167 |
+
#: ../cerber-load.php:3506 ../cerber-load.php:3507
|
1168 |
msgid "A new activity has been recorded"
|
1169 |
msgstr ""
|
1170 |
|
1171 |
+
#: ../cerber-load.php:3512
|
1172 |
msgid "Weekly report"
|
1173 |
msgstr ""
|
1174 |
|
1175 |
+
#: ../cerber-load.php:3515 ../cerber-load.php:3525
|
1176 |
msgid "To change reporting settings visit"
|
1177 |
msgstr ""
|
1178 |
|
1179 |
+
#: ../cerber-load.php:3522
|
1180 |
msgid "Scanner Report"
|
1181 |
msgstr ""
|
1182 |
|
1183 |
+
#: ../cerber-load.php:3548
|
1184 |
msgid "Your login page:"
|
1185 |
msgstr ""
|
1186 |
|
1187 |
+
#: ../cerber-load.php:3552
|
1188 |
msgid "Your license is valid until"
|
1189 |
msgstr ""
|
1190 |
|
1191 |
+
#: ../cerber-load.php:3555
|
1192 |
msgid "This message was sent by"
|
1193 |
msgstr ""
|
1194 |
|
1195 |
+
#: ../cerber-load.php:3576
|
1196 |
#, php-format
|
1197 |
msgid "Your last sign-in was %s from %s"
|
1198 |
msgstr ""
|
1199 |
|
1200 |
+
#: ../cerber-load.php:3646
|
1201 |
msgid "Weekly Report"
|
1202 |
msgstr ""
|
1203 |
|
1204 |
+
#: ../cerber-load.php:3658
|
1205 |
msgid "Activity details"
|
1206 |
msgstr ""
|
1207 |
|
1208 |
+
#: ../cerber-load.php:3672
|
1209 |
msgid "Attempts to log in with non-existent username"
|
1210 |
msgstr ""
|
1211 |
|
1212 |
+
#: ../cerber-load.php:4011
|
1213 |
msgid "User"
|
1214 |
msgstr ""
|
1215 |
|
1216 |
+
#: ../cerber-load.php:4019
|
1217 |
msgid "Search string"
|
1218 |
msgstr ""
|
1219 |
|
1220 |
+
#: ../cerber-load.php:4040
|
1221 |
msgid "To unsubscribe click here"
|
1222 |
msgstr ""
|
1223 |
|
1224 |
+
#: ../cerber-load.php:4246
|
1225 |
#, php-format
|
1226 |
msgid "The WP Cerber requires PHP %s or higher. You are running"
|
1227 |
msgstr ""
|
1228 |
|
1229 |
+
#: ../cerber-load.php:4250
|
1230 |
#, php-format
|
1231 |
msgid "The WP Cerber requires WordPress %s or higher. You are running"
|
1232 |
msgstr ""
|
1233 |
|
1234 |
+
#: ../cerber-load.php:4259
|
1235 |
msgid "Can't activate WP Cerber due to a database error."
|
1236 |
msgstr ""
|
1237 |
|
1238 |
+
#: ../cerber-load.php:4281
|
1239 |
msgid "Your IP address is added to the"
|
1240 |
msgstr ""
|
1241 |
|
1242 |
+
#: ../cerber-load.php:4291 ../settings.php:657
|
1243 |
msgid "Main Settings"
|
1244 |
msgstr ""
|
1245 |
|
1246 |
+
#: ../cerber-load.php:4292 ../cerber-scanner.php:75
|
1247 |
msgid "Security Scanner"
|
1248 |
msgstr ""
|
1249 |
|
1250 |
+
#: ../cerber-load.php:4293 ../settings.php:658 ../cerber-tools.php:92 ../cerber-
|
1251 |
+
#: tools.php:101 ../cerber-tools.php:188
|
1252 |
msgid "Access Lists"
|
1253 |
msgstr ""
|
1254 |
|
1255 |
+
#: ../cerber-load.php:4295 ../settings.php:659
|
1256 |
msgid "Hardening"
|
1257 |
msgstr ""
|
1258 |
|
1259 |
+
#: ../cerber-load.php:4296 ../settings.php:83 ../settings.php:107 ../settings.php:
|
1260 |
+
#: 661
|
1261 |
msgid "Notifications"
|
1262 |
msgstr ""
|
1263 |
|
1264 |
+
#: ../cerber-load.php:4297
|
1265 |
msgid "Import settings"
|
1266 |
msgstr ""
|
1267 |
|
1268 |
+
#: ../settings.php:75
|
1269 |
msgid "Plugin initialization"
|
1270 |
msgstr ""
|
1271 |
|
1272 |
+
#: ../settings.php:76
|
1273 |
msgid "Load security engine"
|
1274 |
msgstr ""
|
1275 |
|
1276 |
+
#: ../settings.php:76
|
1277 |
msgid "Legacy mode"
|
1278 |
msgstr ""
|
1279 |
|
1280 |
+
#: ../settings.php:76
|
1281 |
msgid "Standard mode"
|
1282 |
msgstr ""
|
1283 |
|
1284 |
+
#: ../settings.php:78
|
1285 |
msgid "Limit login attempts"
|
1286 |
msgstr ""
|
1287 |
|
1288 |
+
#: ../settings.php:79
|
1289 |
msgid "Attempts"
|
1290 |
msgstr ""
|
1291 |
|
1292 |
+
#: ../settings.php:80
|
1293 |
msgid "Lockout duration"
|
1294 |
msgstr ""
|
1295 |
|
1296 |
+
#: ../settings.php:80 ../settings.php:106
|
1297 |
msgid "minutes"
|
1298 |
msgstr ""
|
1299 |
|
1300 |
+
#: ../settings.php:81
|
1301 |
msgid "Aggressive lockout"
|
1302 |
msgstr ""
|
1303 |
|
1304 |
+
#: ../settings.php:82 ../settings.php:295
|
1305 |
msgid "Use White IP Access List"
|
1306 |
msgstr ""
|
1307 |
|
1308 |
+
#: ../settings.php:82
|
1309 |
msgid "Apply limit login rules to IP addresses in the White IP Access List"
|
1310 |
msgstr ""
|
1311 |
|
1312 |
+
#: ../settings.php:84
|
1313 |
msgid "Site connection"
|
1314 |
msgstr ""
|
1315 |
|
1316 |
+
#: ../settings.php:86
|
1317 |
msgid "Proactive security rules"
|
1318 |
msgstr ""
|
1319 |
|
1320 |
+
#: ../settings.php:87
|
1321 |
msgid "Block subnet"
|
1322 |
msgstr ""
|
1323 |
|
1324 |
+
#: ../settings.php:87
|
1325 |
msgid "Always block entire subnet Class C of intruders IP"
|
1326 |
msgstr ""
|
1327 |
|
1328 |
+
#: ../settings.php:88
|
1329 |
msgid "Non-existent users"
|
1330 |
msgstr ""
|
1331 |
|
1332 |
+
#: ../settings.php:88
|
1333 |
msgid "Immediately block IP when attempting to login with a non-existent username"
|
1334 |
msgstr ""
|
1335 |
|
1336 |
+
#: ../settings.php:89
|
1337 |
msgid "Disable dashboard redirection"
|
1338 |
msgstr ""
|
1339 |
|
1340 |
+
#: ../settings.php:89
|
1341 |
msgid ""
|
1342 |
"Disable automatic redirection to the login page when /wp-admin/ is requested "
|
1343 |
"by an unauthorized request"
|
1344 |
msgstr ""
|
1345 |
|
1346 |
+
#: ../settings.php:90
|
1347 |
msgid "Request wp-login.php"
|
1348 |
msgstr ""
|
1349 |
|
1350 |
+
#: ../settings.php:90
|
1351 |
msgid "Immediately block IP after any request to wp-login.php"
|
1352 |
msgstr ""
|
1353 |
|
1354 |
+
#: ../settings.php:91
|
1355 |
msgid "Display 404 page"
|
1356 |
msgstr ""
|
1357 |
|
1358 |
+
#: ../settings.php:91
|
1359 |
msgid "Use 404 template from the active theme"
|
1360 |
msgstr ""
|
1361 |
|
1362 |
+
#: ../settings.php:91
|
1363 |
msgid "Display simple 404 page"
|
1364 |
msgstr ""
|
1365 |
|
1366 |
+
#: ../settings.php:93
|
1367 |
msgid "Custom login page"
|
1368 |
msgstr ""
|
1369 |
|
1370 |
+
#: ../settings.php:94
|
1371 |
msgid "Custom login URL"
|
1372 |
msgstr ""
|
1373 |
|
1374 |
+
#: ../settings.php:99
|
1375 |
msgid "Custom login URL may contain only letters, numbers, dashes and underscores"
|
1376 |
msgstr ""
|
1377 |
|
1378 |
+
#: ../settings.php:100
|
1379 |
msgid "must not overlap with the existing pages or posts slug"
|
1380 |
msgstr ""
|
1381 |
|
1382 |
+
#: ../settings.php:102
|
1383 |
msgid "Disable wp-login.php"
|
1384 |
msgstr ""
|
1385 |
|
1386 |
+
#: ../settings.php:102
|
1387 |
msgid "Block direct access to wp-login.php and return HTTP 404 Not Found Error"
|
1388 |
msgstr ""
|
1389 |
|
1390 |
+
#: ../settings.php:105
|
1391 |
msgid "Threshold"
|
1392 |
msgstr ""
|
1393 |
|
1394 |
+
#: ../settings.php:106 ../cerber-scanner.php:3700
|
1395 |
msgid "Duration"
|
1396 |
msgstr ""
|
1397 |
|
1398 |
+
#: ../settings.php:107
|
1399 |
msgid "Send notification to admin email"
|
1400 |
msgstr ""
|
1401 |
|
1402 |
+
#: ../settings.php:107 ../settings.php:797 ../settings.php:919
|
1403 |
msgid "Click to send test"
|
1404 |
msgstr ""
|
1405 |
|
1406 |
+
#: ../settings.php:110 ../settings.php:395
|
1407 |
msgid "Keep records for"
|
1408 |
msgstr ""
|
1409 |
|
1410 |
+
#: ../settings.php:110 ../settings.php:192 ../settings.php:399 ../settings.php:470
|
1411 |
msgid "days"
|
1412 |
msgstr ""
|
1413 |
|
1414 |
+
#: ../settings.php:111
|
1415 |
msgid "Cerber Lab connection"
|
1416 |
msgstr ""
|
1417 |
|
1418 |
+
#: ../settings.php:111
|
1419 |
msgid "Send malicious IP addresses to the Cerber Lab"
|
1420 |
msgstr ""
|
1421 |
|
1422 |
+
#: ../settings.php:112
|
1423 |
msgid "Cerber Lab protocol"
|
1424 |
msgstr ""
|
1425 |
|
1426 |
+
#: ../settings.php:113
|
1427 |
msgid "Use file"
|
1428 |
msgstr ""
|
1429 |
|
1430 |
+
#: ../settings.php:113
|
1431 |
msgid "Write failed login attempts to the file"
|
1432 |
msgstr ""
|
1433 |
|
1434 |
+
#: ../settings.php:115
|
1435 |
msgid "Preferences"
|
1436 |
msgstr ""
|
1437 |
|
1438 |
+
#: ../settings.php:116
|
1439 |
msgid "Drill down IP"
|
1440 |
msgstr ""
|
1441 |
|
1442 |
+
#: ../settings.php:116
|
1443 |
msgid "Retrieve extra WHOIS information for IP"
|
1444 |
msgstr ""
|
1445 |
|
1446 |
+
#: ../settings.php:117
|
1447 |
msgid "Date format"
|
1448 |
msgstr ""
|
1449 |
|
1450 |
+
#: ../settings.php:117
|
1451 |
#, php-format
|
1452 |
msgid "if empty, the default format %s will be used"
|
1453 |
msgstr ""
|
1454 |
|
1455 |
+
#: ../settings.php:118
|
1456 |
msgid "Use English for admin interface"
|
1457 |
msgstr ""
|
1458 |
|
1459 |
+
#: ../settings.php:124
|
1460 |
msgid "Hardening WordPress"
|
1461 |
msgstr ""
|
1462 |
|
1463 |
+
#: ../settings.php:125
|
1464 |
msgid "Stop user enumeration"
|
1465 |
msgstr ""
|
1466 |
|
1467 |
+
#: ../settings.php:125
|
1468 |
msgid "Block access to user pages like /?author=n and user data via REST API"
|
1469 |
msgstr ""
|
1470 |
|
1471 |
+
#: ../settings.php:126
|
1472 |
msgid "Protect admin scripts"
|
1473 |
msgstr ""
|
1474 |
|
1475 |
+
#: ../settings.php:126
|
1476 |
msgid "Block unauthorized access to load-scripts.php and load-styles.php"
|
1477 |
msgstr ""
|
1478 |
|
1479 |
+
#: ../settings.php:129
|
1480 |
msgid "Disable PHP in uploads"
|
1481 |
msgstr ""
|
1482 |
|
1483 |
+
#: ../settings.php:129
|
1484 |
msgid "Disable execution of PHP scripts in the WordPress media folder"
|
1485 |
msgstr ""
|
1486 |
|
1487 |
+
#: ../settings.php:131
|
1488 |
msgid "Disable PHP error displaying"
|
1489 |
msgstr ""
|
1490 |
|
1491 |
+
#: ../settings.php:133
|
1492 |
msgid "Disable XML-RPC"
|
1493 |
msgstr ""
|
1494 |
|
1495 |
+
#: ../settings.php:133
|
1496 |
msgid "Block access to the XML-RPC server (including Pingbacks and Trackbacks)"
|
1497 |
msgstr ""
|
1498 |
|
1499 |
+
#: ../settings.php:134
|
1500 |
msgid "Disable feeds"
|
1501 |
msgstr ""
|
1502 |
|
1503 |
+
#: ../settings.php:134
|
1504 |
msgid "Block access to the RSS, Atom and RDF feeds"
|
1505 |
msgstr ""
|
1506 |
|
1507 |
+
#: ../settings.php:135
|
1508 |
msgid "Disable REST API"
|
1509 |
msgstr ""
|
1510 |
|
1511 |
+
#: ../settings.php:135
|
1512 |
msgid "Block access to the WordPress REST API except the following"
|
1513 |
msgstr ""
|
1514 |
|
1515 |
+
#: ../settings.php:136
|
1516 |
msgid "Allow REST API for logged in users"
|
1517 |
msgstr ""
|
1518 |
|
1519 |
+
#: ../settings.php:143
|
1520 |
msgid ""
|
1521 |
"Specify REST API namespaces to be allowed if REST API is disabled. One "
|
1522 |
"string per line."
|
1523 |
msgstr ""
|
1524 |
|
1525 |
+
#: ../settings.php:153
|
1526 |
msgid "User related settings"
|
1527 |
msgstr ""
|
1528 |
|
1529 |
+
#: ../settings.php:155
|
1530 |
msgid "Registration limit"
|
1531 |
msgstr ""
|
1532 |
|
1533 |
+
#: ../settings.php:157
|
1534 |
msgid "Prohibited usernames"
|
1535 |
msgstr ""
|
1536 |
|
1537 |
+
#: ../settings.php:163
|
1538 |
msgid ""
|
1539 |
"Usernames from this list are not allowed to log in or register. Any IP "
|
1540 |
"address, have tried to use any of these usernames, will be immediately "
|
1541 |
"blocked. Use comma to separate logins."
|
1542 |
msgstr ""
|
1543 |
|
1544 |
+
#: ../settings.php:163
|
1545 |
msgid "To specify a REGEX pattern wrap a pattern in two forward slashes."
|
1546 |
msgstr ""
|
1547 |
|
1548 |
+
#: ../settings.php:165
|
1549 |
msgid "User session expire"
|
1550 |
msgstr ""
|
1551 |
|
1552 |
+
#: ../settings.php:165
|
1553 |
msgid "in minutes (leave empty to use default WP value)"
|
1554 |
msgstr ""
|
1555 |
|
1556 |
+
#: ../settings.php:166
|
1557 |
msgid "Sort users in dashboard"
|
1558 |
msgstr ""
|
1559 |
|
1560 |
+
#: ../settings.php:166
|
1561 |
msgid "by date of registration"
|
1562 |
msgstr ""
|
1563 |
|
1564 |
+
#: ../settings.php:173
|
1565 |
msgid "Cerber antispam engine"
|
1566 |
msgstr ""
|
1567 |
|
1568 |
+
#: ../settings.php:174
|
1569 |
msgid "Comment form"
|
1570 |
msgstr ""
|
1571 |
|
1572 |
+
#: ../settings.php:174
|
1573 |
msgid "Protect comment form with bot detection engine"
|
1574 |
msgstr ""
|
1575 |
|
1576 |
+
#: ../settings.php:175 ../settings.php:203
|
1577 |
msgid "Registration form"
|
1578 |
msgstr ""
|
1579 |
|
1580 |
+
#: ../settings.php:175
|
1581 |
msgid "Protect registration form with bot detection engine"
|
1582 |
msgstr ""
|
1583 |
|
1584 |
+
#: ../settings.php:176
|
1585 |
msgid "Other forms"
|
1586 |
msgstr ""
|
1587 |
|
1588 |
+
#: ../settings.php:176
|
1589 |
msgid "Protect all forms on the website with bot detection engine"
|
1590 |
msgstr ""
|
1591 |
|
1592 |
+
#: ../settings.php:178
|
1593 |
msgid "Adjust antispam engine"
|
1594 |
msgstr ""
|
1595 |
|
1596 |
+
#: ../settings.php:179
|
1597 |
msgid "Safe mode"
|
1598 |
msgstr ""
|
1599 |
|
1600 |
+
#: ../settings.php:179
|
1601 |
msgid "Use less restrictive policies (allow AJAX)"
|
1602 |
msgstr ""
|
1603 |
|
1604 |
+
#: ../settings.php:180
|
1605 |
msgid "Disable bot detection engine for logged in users"
|
1606 |
msgstr ""
|
1607 |
|
1608 |
+
#: ../settings.php:181
|
1609 |
msgid "Query whitelist"
|
1610 |
msgstr ""
|
1611 |
|
1612 |
+
#: ../settings.php:187
|
1613 |
msgid ""
|
1614 |
"Enter a part of query string or query path to exclude a request from "
|
1615 |
"inspection by the engine. One item per line."
|
1616 |
msgstr ""
|
1617 |
|
1618 |
+
#: ../settings.php:187 ../settings.php:306
|
1619 |
msgid "To specify a REGEX pattern, enclose a whole line in two braces."
|
1620 |
msgstr ""
|
1621 |
|
1622 |
+
#: ../settings.php:190
|
1623 |
msgid "Comment processing"
|
1624 |
msgstr ""
|
1625 |
|
1626 |
+
#: ../settings.php:191
|
1627 |
msgid "If a spam comment detected"
|
1628 |
msgstr ""
|
1629 |
|
1630 |
+
#: ../settings.php:191
|
1631 |
msgid "Deny it completely"
|
1632 |
msgstr ""
|
1633 |
|
1634 |
+
#: ../settings.php:191
|
1635 |
msgid "Mark it as spam"
|
1636 |
msgstr ""
|
1637 |
|
1638 |
+
#: ../settings.php:192
|
1639 |
msgid "Trash spam comments"
|
1640 |
msgstr ""
|
1641 |
|
1642 |
+
#: ../settings.php:192
|
1643 |
msgid "Move spam comments to trash after"
|
1644 |
msgstr ""
|
1645 |
|
1646 |
+
#: ../settings.php:198
|
1647 |
msgid "reCAPTCHA settings"
|
1648 |
msgstr ""
|
1649 |
|
1650 |
+
#: ../settings.php:199
|
1651 |
msgid "Site key"
|
1652 |
msgstr ""
|
1653 |
|
1654 |
+
#: ../settings.php:200
|
1655 |
msgid "Secret key"
|
1656 |
msgstr ""
|
1657 |
|
1658 |
+
#: ../settings.php:201
|
1659 |
msgid "Invisible reCAPTCHA"
|
1660 |
msgstr ""
|
1661 |
|
1662 |
+
#: ../settings.php:201
|
1663 |
msgid "Enable invisible reCAPTCHA"
|
1664 |
msgstr ""
|
1665 |
|
1666 |
+
#: ../settings.php:201
|
1667 |
msgid ""
|
1668 |
"(do not enable it unless you get and enter the Site and Secret keys for the "
|
1669 |
"invisible version)"
|
1670 |
msgstr ""
|
1671 |
|
1672 |
+
#: ../settings.php:203
|
1673 |
msgid "Enable reCAPTCHA for WordPress registration form"
|
1674 |
msgstr ""
|
1675 |
|
1676 |
+
#: ../settings.php:204
|
1677 |
msgid "Enable reCAPTCHA for WooCommerce registration form"
|
1678 |
msgstr ""
|
1679 |
|
1680 |
+
#: ../settings.php:206
|
1681 |
msgid "Lost password form"
|
1682 |
msgstr ""
|
1683 |
|
1684 |
+
#: ../settings.php:206
|
1685 |
msgid "Enable reCAPTCHA for WordPress lost password form"
|
1686 |
msgstr ""
|
1687 |
|
1688 |
+
#: ../settings.php:207
|
1689 |
msgid "Enable reCAPTCHA for WooCommerce lost password form"
|
1690 |
msgstr ""
|
1691 |
|
1692 |
+
#: ../settings.php:209
|
1693 |
msgid "Login form"
|
1694 |
msgstr ""
|
1695 |
|
1696 |
+
#: ../settings.php:209
|
1697 |
msgid "Enable reCAPTCHA for WordPress login form"
|
1698 |
msgstr ""
|
1699 |
|
1700 |
+
#: ../settings.php:210
|
1701 |
msgid "Enable reCAPTCHA for WooCommerce login form"
|
1702 |
msgstr ""
|
1703 |
|
1704 |
+
#: ../settings.php:212
|
1705 |
msgid "Enable reCAPTCHA for WordPress comment form"
|
1706 |
msgstr ""
|
1707 |
|
1708 |
+
#: ../settings.php:213
|
1709 |
msgid "Disable reCAPTCHA for logged in users"
|
1710 |
msgstr ""
|
1711 |
|
1712 |
+
#: ../settings.php:215
|
1713 |
msgid "Limit attempts"
|
1714 |
msgstr ""
|
1715 |
|
1716 |
+
#: ../settings.php:215
|
1717 |
#, php-format
|
1718 |
msgid "Lock out IP address for %s minutes after %s failed attempts within %s minutes"
|
1719 |
msgstr ""
|
1720 |
|
1721 |
+
#: ../settings.php:221
|
1722 |
msgid "Email notifications"
|
1723 |
msgstr ""
|
1724 |
|
1725 |
+
#: ../settings.php:224 ../settings.php:265 ../settings.php:532
|
1726 |
msgid "Email Address"
|
1727 |
msgstr ""
|
1728 |
|
1729 |
+
#: ../settings.php:228 ../settings.php:270 ../settings.php:358 ../settings.php:536
|
1730 |
msgid "Use comma to specify multiple values"
|
1731 |
msgstr ""
|
1732 |
|
1733 |
+
#: ../settings.php:233
|
1734 |
#, php-format
|
1735 |
msgid "if empty, the admin email %s will be used"
|
1736 |
msgstr ""
|
1737 |
|
1738 |
+
#: ../settings.php:236
|
1739 |
msgid "Notification limit"
|
1740 |
msgstr ""
|
1741 |
|
1742 |
+
#: ../settings.php:236
|
1743 |
msgid "notification letters allowed per hour (0 means unlimited)"
|
1744 |
msgstr ""
|
1745 |
|
1746 |
+
#: ../settings.php:242
|
1747 |
msgid "Push notifications"
|
1748 |
msgstr ""
|
1749 |
|
1750 |
+
#: ../settings.php:250
|
1751 |
msgid "All connected devices"
|
1752 |
msgstr ""
|
1753 |
|
1754 |
+
#: ../settings.php:253
|
1755 |
msgid "No devices found"
|
1756 |
msgstr ""
|
1757 |
|
1758 |
+
#: ../settings.php:257
|
1759 |
msgid "Not available"
|
1760 |
msgstr ""
|
1761 |
|
1762 |
+
#: ../settings.php:262
|
1763 |
msgid "Weekly reports"
|
1764 |
msgstr ""
|
1765 |
|
1766 |
+
#: ../settings.php:263
|
1767 |
msgid "Enable reporting"
|
1768 |
msgstr ""
|
1769 |
|
1770 |
+
#: ../settings.php:275 ../settings.php:541
|
1771 |
msgid "if empty, email from notification settings will be used"
|
1772 |
msgstr ""
|
1773 |
|
1774 |
+
#: ../settings.php:283
|
1775 |
msgid "Traffic Inspection"
|
1776 |
msgstr ""
|
1777 |
|
1778 |
+
#: ../settings.php:284
|
1779 |
msgid "Enable traffic inspection"
|
1780 |
msgstr ""
|
1781 |
|
1782 |
+
#: ../settings.php:291 ../settings.php:317
|
1783 |
+
msgid "Maximum compatibility"
|
1784 |
+
msgstr ""
|
1785 |
+
|
1786 |
+
#: ../settings.php:292 ../settings.php:318
|
1787 |
+
msgid "Maximum security"
|
1788 |
msgstr ""
|
1789 |
|
1790 |
+
#: ../settings.php:300
|
1791 |
msgid "Request whitelist"
|
1792 |
msgstr ""
|
1793 |
|
1794 |
+
#: ../settings.php:306
|
1795 |
msgid ""
|
1796 |
"Enter a request URI to exclude the request from inspection. One item per "
|
1797 |
"line."
|
1798 |
msgstr ""
|
1799 |
|
1800 |
+
#: ../settings.php:309
|
1801 |
+
msgid "Erroneous Request Shielding"
|
1802 |
+
msgstr ""
|
1803 |
+
|
1804 |
+
#: ../settings.php:310
|
1805 |
+
msgid "Enable error shielding"
|
1806 |
+
msgstr ""
|
1807 |
+
|
1808 |
+
#: ../settings.php:321
|
1809 |
+
msgid "Disable for logged in users"
|
1810 |
+
msgstr ""
|
1811 |
+
|
1812 |
+
#: ../settings.php:328
|
1813 |
msgid "Logging"
|
1814 |
msgstr ""
|
1815 |
|
1816 |
+
#: ../settings.php:329
|
1817 |
msgid "Logging mode"
|
1818 |
msgstr ""
|
1819 |
|
1820 |
+
#: ../settings.php:335
|
1821 |
msgid "Logging disabled"
|
1822 |
msgstr ""
|
1823 |
|
1824 |
+
#: ../settings.php:336
|
1825 |
msgid "Smart"
|
1826 |
msgstr ""
|
1827 |
|
1828 |
+
#: ../settings.php:337
|
1829 |
msgid "All traffic"
|
1830 |
msgstr ""
|
1831 |
|
1832 |
+
#: ../settings.php:341
|
1833 |
msgid "Ignore crawlers"
|
1834 |
msgstr ""
|
1835 |
|
1836 |
+
#: ../settings.php:346
|
1837 |
msgid "Save request fields"
|
1838 |
msgstr ""
|
1839 |
|
1840 |
+
#: ../settings.php:351
|
1841 |
msgid "Mask these form fields"
|
1842 |
msgstr ""
|
1843 |
|
1844 |
+
#: ../settings.php:363
|
1845 |
msgid "Save request headers"
|
1846 |
msgstr ""
|
1847 |
|
1848 |
+
#: ../settings.php:369
|
1849 |
msgid "Save $_SERVER"
|
1850 |
msgstr ""
|
1851 |
|
1852 |
+
#: ../settings.php:375
|
1853 |
msgid "Save request cookies"
|
1854 |
msgstr ""
|
1855 |
|
1856 |
+
#: ../settings.php:381
|
1857 |
msgid "Save software errors"
|
1858 |
msgstr ""
|
1859 |
|
1860 |
+
#: ../settings.php:387
|
1861 |
msgid "Page generation time threshold"
|
1862 |
msgstr ""
|
1863 |
|
1864 |
+
#: ../settings.php:392
|
1865 |
msgid "milliseconds"
|
1866 |
msgstr ""
|
1867 |
|
1868 |
+
#: ../settings.php:408
|
1869 |
msgid "Scanner settings"
|
1870 |
msgstr ""
|
1871 |
|
1872 |
+
#: ../settings.php:409
|
1873 |
msgid "Custom signatures"
|
1874 |
msgstr ""
|
1875 |
|
1876 |
+
#: ../settings.php:415
|
1877 |
msgid ""
|
1878 |
"Specify custom PHP code signatures. One item per line. To specify a REGEX "
|
1879 |
"pattern, enclose a whole line in two braces."
|
1880 |
msgstr ""
|
1881 |
|
1882 |
+
#: ../settings.php:417
|
1883 |
msgid "Unwanted file extensions"
|
1884 |
msgstr ""
|
1885 |
|
1886 |
+
#: ../settings.php:423
|
1887 |
msgid ""
|
1888 |
"Specify file extensions to search for. Full scan only. Use comma to separate "
|
1889 |
"items."
|
1890 |
msgstr ""
|
1891 |
|
1892 |
+
#: ../settings.php:425
|
1893 |
msgid "Directories to exclude"
|
1894 |
msgstr ""
|
1895 |
|
1896 |
+
#: ../settings.php:431
|
1897 |
msgid ""
|
1898 |
"Specify directories to exclude from scanning. Use absolute paths. One item "
|
1899 |
"per line."
|
1900 |
msgstr ""
|
1901 |
|
1902 |
+
#: ../settings.php:433
|
1903 |
msgid "Monitor new files"
|
1904 |
msgstr ""
|
1905 |
|
1906 |
+
#: ../settings.php:440
|
1907 |
msgid "Monitor modified files"
|
1908 |
msgstr ""
|
1909 |
|
1910 |
+
#: ../settings.php:446
|
1911 |
msgid "Scan temporary directory"
|
1912 |
msgstr ""
|
1913 |
|
1914 |
+
#: ../settings.php:453
|
1915 |
msgid "Scan session directory"
|
1916 |
msgstr ""
|
1917 |
|
1918 |
+
#: ../settings.php:459
|
1919 |
msgid "Enable diagnostic log"
|
1920 |
msgstr ""
|
1921 |
|
1922 |
+
#: ../settings.php:465
|
1923 |
msgid "Delete quarantined files after"
|
1924 |
msgstr ""
|
1925 |
|
1926 |
+
#: ../settings.php:479
|
1927 |
msgid "Automated recurring scan schedule"
|
1928 |
msgstr ""
|
1929 |
|
1930 |
+
#: ../settings.php:480
|
1931 |
msgid "Launch Quick Scan"
|
1932 |
msgstr ""
|
1933 |
|
1934 |
+
#: ../settings.php:487
|
1935 |
msgid "Launch Full Scan"
|
1936 |
msgstr ""
|
1937 |
|
1938 |
+
#: ../settings.php:495
|
1939 |
msgid "Scan results reporting"
|
1940 |
msgstr ""
|
1941 |
|
1942 |
+
#: ../settings.php:497 ../settings.php:557
|
1943 |
msgid "Low severity"
|
1944 |
msgstr ""
|
1945 |
|
1946 |
+
#: ../settings.php:497 ../settings.php:557
|
1947 |
msgid "Medium severity"
|
1948 |
msgstr ""
|
1949 |
|
1950 |
+
#: ../settings.php:497 ../settings.php:557
|
1951 |
msgid "High severity"
|
1952 |
msgstr ""
|
1953 |
|
1954 |
+
#: ../settings.php:498
|
1955 |
msgid "Report an issue if any of the following is true"
|
1956 |
msgstr ""
|
1957 |
|
1958 |
+
#: ../settings.php:506
|
1959 |
msgid "Send email report"
|
1960 |
msgstr ""
|
1961 |
|
1962 |
+
#: ../settings.php:512
|
1963 |
msgid "After every scan"
|
1964 |
msgstr ""
|
1965 |
|
1966 |
+
#: ../settings.php:513
|
1967 |
msgid "If any changes in scan results occurred"
|
1968 |
msgstr ""
|
1969 |
|
1970 |
+
#: ../settings.php:514
|
1971 |
msgid "If new issues found"
|
1972 |
msgstr ""
|
1973 |
|
1974 |
+
#: ../settings.php:518
|
1975 |
msgid "Include file sizes"
|
1976 |
msgstr ""
|
1977 |
|
1978 |
+
#: ../settings.php:525
|
1979 |
msgid "Include scan errors"
|
1980 |
msgstr ""
|
1981 |
|
1982 |
+
#: ../settings.php:549
|
1983 |
msgid "Automatic cleanup of malware and suspicious files"
|
1984 |
msgstr ""
|
1985 |
|
1986 |
+
#: ../settings.php:551 ../cerber-scanner.php:3732
|
1987 |
msgid "Unattended files"
|
1988 |
msgstr ""
|
1989 |
|
1990 |
+
#: ../settings.php:558
|
1991 |
msgid "Files in the uploads folder"
|
1992 |
msgstr ""
|
1993 |
|
1994 |
+
#: ../settings.php:565
|
1995 |
msgid "Files with unwanted extensions"
|
1996 |
msgstr ""
|
1997 |
|
1998 |
+
#: ../settings.php:572
|
1999 |
msgid "Exclusions"
|
2000 |
msgstr ""
|
2001 |
|
2002 |
+
#: ../settings.php:573
|
2003 |
msgid "Files in the temporary directory"
|
2004 |
msgstr ""
|
2005 |
|
2006 |
+
#: ../settings.php:579
|
2007 |
msgid "Files in the sessions directory"
|
2008 |
msgstr ""
|
2009 |
|
2010 |
+
#: ../settings.php:585
|
2011 |
msgid "Files in these directories"
|
2012 |
msgstr ""
|
2013 |
|
2014 |
+
#: ../settings.php:591
|
2015 |
msgid "Use absolute paths. One item per line."
|
2016 |
msgstr ""
|
2017 |
|
2018 |
+
#: ../settings.php:593
|
2019 |
msgid "Files with these extensions"
|
2020 |
msgstr ""
|
2021 |
|
2022 |
+
#: ../settings.php:599
|
2023 |
msgid "Use comma to separate items."
|
2024 |
msgstr ""
|
2025 |
|
2026 |
+
#: ../settings.php:610
|
2027 |
msgid "Make your protection smarter!"
|
2028 |
msgstr ""
|
2029 |
|
2030 |
+
#: ../settings.php:614
|
2031 |
msgid ""
|
2032 |
"Please enable Permalinks to use this feature. Set Permalink Settings to "
|
2033 |
"something other than Default."
|
2034 |
msgstr ""
|
2035 |
|
2036 |
+
#: ../settings.php:617
|
2037 |
msgid "Be careful about enabling these options."
|
2038 |
msgstr ""
|
2039 |
|
2040 |
+
#: ../settings.php:617
|
2041 |
msgid "If you forget your Custom login URL, you will be unable to log in."
|
2042 |
msgstr ""
|
2043 |
|
2044 |
+
#: ../settings.php:621
|
2045 |
msgid ""
|
2046 |
"In the Citadel mode nobody is able to log in except IPs from the White IP "
|
2047 |
"Access List. Active user sessions will not be affected."
|
2048 |
msgstr ""
|
2049 |
|
2050 |
+
#: ../settings.php:624
|
2051 |
msgid "These settings do not affect hosts from the "
|
2052 |
msgstr ""
|
2053 |
|
2054 |
+
#: ../settings.php:627
|
2055 |
msgid ""
|
2056 |
"Before you can start using reCAPTCHA, you have to obtain Site key and Secret "
|
2057 |
"key on the Google website"
|
2058 |
msgstr ""
|
2059 |
|
2060 |
+
#: ../settings.php:656
|
2061 |
msgid "Lockouts"
|
2062 |
msgstr ""
|
2063 |
|
2064 |
+
#: ../settings.php:660
|
2065 |
msgid "Users"
|
2066 |
msgstr ""
|
2067 |
|
2068 |
+
#: ../settings.php:778 ../settings.php:900
|
2069 |
#, php-format
|
2070 |
msgid "%s allowed retries in %s minutes"
|
2071 |
msgstr ""
|
2072 |
|
2073 |
+
#: ../settings.php:783 ../settings.php:905
|
2074 |
#, php-format
|
2075 |
msgid "%s allowed registrations in %s minutes from one IP"
|
2076 |
msgstr ""
|
2077 |
|
2078 |
+
#: ../settings.php:788 ../settings.php:910
|
2079 |
#, php-format
|
2080 |
msgid "Increase lockout duration to %s hours after %s lockouts in the last %s hours"
|
2081 |
msgstr ""
|
2082 |
|
2083 |
+
#: ../settings.php:795 ../settings.php:917
|
2084 |
msgid "Notify admin if the number of active lockouts above"
|
2085 |
msgstr ""
|
2086 |
|
2087 |
+
#: ../settings.php:800 ../settings.php:922
|
2088 |
#, php-format
|
2089 |
msgid "Enable after %s failed login attempts in last %s minutes"
|
2090 |
msgstr ""
|
2091 |
|
2092 |
+
#: ../settings.php:1019
|
2093 |
msgid "Sunday"
|
2094 |
msgstr ""
|
2095 |
|
2096 |
+
#: ../settings.php:1020
|
2097 |
msgid "Monday"
|
2098 |
msgstr ""
|
2099 |
|
2100 |
+
#: ../settings.php:1021
|
2101 |
msgid "Tuesday"
|
2102 |
msgstr ""
|
2103 |
|
2104 |
+
#: ../settings.php:1022
|
2105 |
msgid "Wednesday"
|
2106 |
msgstr ""
|
2107 |
|
2108 |
+
#: ../settings.php:1023
|
2109 |
msgid "Thursday"
|
2110 |
msgstr ""
|
2111 |
|
2112 |
+
#: ../settings.php:1024
|
2113 |
msgid "Friday"
|
2114 |
msgstr ""
|
2115 |
|
2116 |
+
#: ../settings.php:1025
|
2117 |
msgid "Saturday"
|
2118 |
msgstr ""
|
2119 |
|
2120 |
+
#: ../settings.php:1035
|
2121 |
msgctxt "preposition of time like: at 11:00"
|
2122 |
msgid "at"
|
2123 |
msgstr ""
|
2124 |
|
2125 |
+
#: ../settings.php:1051
|
2126 |
msgid "Click to send now"
|
2127 |
msgstr ""
|
2128 |
|
2129 |
+
#: ../settings.php:1062
|
2130 |
msgid "Plugin initialization mode has not been changed"
|
2131 |
msgstr ""
|
2132 |
|
2133 |
+
#: ../settings.php:1082 ../settings.php:1083
|
2134 |
msgid "Attention! You have changed the login URL! The new login URL is"
|
2135 |
msgstr ""
|
2136 |
|
2137 |
+
#: ../settings.php:1084 ../settings.php:1085
|
2138 |
msgid ""
|
2139 |
"If you use a caching plugin, you have to add your new login URL to the list "
|
2140 |
"of pages not to cache."
|
2141 |
msgstr ""
|
2142 |
|
2143 |
+
#: ../settings.php:1168 ../settings.php:1180 ../settings.php:1303
|
2144 |
msgid "<strong>ERROR</strong>: please enter a valid email address."
|
2145 |
msgstr ""
|
2146 |
|
2147 |
+
#: ../settings.php:1309
|
2148 |
msgid "The schedule has been updated"
|
2149 |
msgstr ""
|
2150 |
|
2151 |
+
#: ../settings.php:1312
|
2152 |
msgid "Unable to update the schedule"
|
2153 |
msgstr ""
|
2154 |
|
2155 |
+
#: ../cerber-tools.php:40
|
2156 |
msgid "Export & Import"
|
2157 |
msgstr ""
|
2158 |
|
2159 |
+
#: ../cerber-tools.php:41
|
2160 |
msgid "Diagnostic"
|
2161 |
msgstr ""
|
2162 |
|
2163 |
+
#: ../cerber-tools.php:42
|
2164 |
msgid "License"
|
2165 |
msgstr ""
|
2166 |
|
2167 |
+
#: ../cerber-tools.php:43
|
2168 |
msgid "Log"
|
2169 |
msgstr ""
|
2170 |
|
2171 |
+
#: ../cerber-tools.php:88
|
2172 |
msgid "Export settings to the file"
|
2173 |
msgstr ""
|
2174 |
|
2175 |
+
#: ../cerber-tools.php:89
|
2176 |
msgid ""
|
2177 |
"When you click the button below you will get a configuration file, which you "
|
2178 |
"can upload on another site."
|
2179 |
msgstr ""
|
2180 |
|
2181 |
+
#: ../cerber-tools.php:90
|
2182 |
msgid "What do you want to export?"
|
2183 |
msgstr ""
|
2184 |
|
2185 |
+
#: ../cerber-tools.php:93
|
2186 |
msgid "Download file"
|
2187 |
msgstr ""
|
2188 |
|
2189 |
+
#: ../cerber-tools.php:95
|
2190 |
msgid "Import settings from the file"
|
2191 |
msgstr ""
|
2192 |
|
2193 |
+
#: ../cerber-tools.php:96
|
2194 |
msgid ""
|
2195 |
"When you click the button below, file will be uploaded and all existing "
|
2196 |
"settings will be overridden."
|
2197 |
msgstr ""
|
2198 |
|
2199 |
+
#: ../cerber-tools.php:97
|
2200 |
msgid "Select file to import."
|
2201 |
msgstr ""
|
2202 |
|
2203 |
+
#: ../cerber-tools.php:97 ../cerber-scanner.php:3900
|
2204 |
#, php-format
|
2205 |
msgid "Maximum upload file size: %s."
|
2206 |
msgstr ""
|
2207 |
|
2208 |
+
#: ../cerber-tools.php:100
|
2209 |
msgid "What do you want to import?"
|
2210 |
msgstr ""
|
2211 |
|
2212 |
+
#: ../cerber-tools.php:102 ../cerber-scanner.php:3903
|
2213 |
msgid "Upload file"
|
2214 |
msgstr ""
|
2215 |
|
2216 |
+
#: ../cerber-tools.php:151
|
2217 |
msgid "No file was uploaded or file is corrupted"
|
2218 |
msgstr ""
|
2219 |
|
2220 |
+
#: ../cerber-tools.php:188
|
2221 |
msgid "Error while updating"
|
2222 |
msgstr ""
|
2223 |
|
2224 |
+
#: ../cerber-tools.php:194
|
2225 |
msgid "Settings has imported successfully from"
|
2226 |
msgstr ""
|
2227 |
|
2228 |
+
#: ../cerber-tools.php:201
|
2229 |
msgid "Error while parsing file"
|
2230 |
msgstr ""
|
2231 |
|
2284 |
msgid "Ignore"
|
2285 |
msgstr ""
|
2286 |
|
2287 |
+
#: ../cerber-scanner.php:1416
|
2288 |
msgid "Verified"
|
2289 |
msgstr ""
|
2290 |
|
2291 |
+
#: ../cerber-scanner.php:1422
|
2292 |
msgid "Vulnerability found"
|
2293 |
msgstr ""
|
2294 |
|
2295 |
+
#: ../cerber-scanner.php:1423
|
2296 |
msgid "Integrity data not found"
|
2297 |
msgstr ""
|
2298 |
|
2299 |
+
#: ../cerber-scanner.php:1424
|
2300 |
msgid "Unable to check the integrity of the plugin due to a network error"
|
2301 |
msgstr ""
|
2302 |
|
2303 |
+
#: ../cerber-scanner.php:1425
|
2304 |
msgid "Unable to check the integrity of WordPress files due to a network error"
|
2305 |
msgstr ""
|
2306 |
|
2307 |
+
#: ../cerber-scanner.php:1426
|
2308 |
msgid "Unable to check the integrity of the theme due to a network error"
|
2309 |
msgstr ""
|
2310 |
|
2311 |
+
#: ../cerber-scanner.php:1427
|
2312 |
msgid "Unable to check the integrity due to a DB error"
|
2313 |
msgstr ""
|
2314 |
|
2315 |
+
#: ../cerber-scanner.php:1429
|
2316 |
msgid "Local file doesn't exist"
|
2317 |
msgstr ""
|
2318 |
|
2319 |
+
#: ../cerber-scanner.php:1431
|
2320 |
msgid "Unable to process file"
|
2321 |
msgstr ""
|
2322 |
|
2323 |
+
#: ../cerber-scanner.php:1432 ../cerber-scanner.php:4791
|
2324 |
msgid "Unable to open file"
|
2325 |
msgstr ""
|
2326 |
|
2327 |
+
#: ../cerber-scanner.php:1434
|
2328 |
msgid "Checksum mismatch"
|
2329 |
msgstr ""
|
2330 |
|
2331 |
+
#: ../cerber-scanner.php:1437
|
2332 |
msgid "Suspicious code found"
|
2333 |
msgstr ""
|
2334 |
|
2335 |
+
#: ../cerber-scanner.php:1438
|
2336 |
msgid "Malicious code found"
|
2337 |
msgstr ""
|
2338 |
|
2339 |
+
#: ../cerber-scanner.php:1439
|
2340 |
msgid "Unattended suspicious file"
|
2341 |
msgstr ""
|
2342 |
|
2343 |
+
#: ../cerber-scanner.php:1440
|
2344 |
msgid "Executable code found"
|
2345 |
msgstr ""
|
2346 |
|
2347 |
+
#: ../cerber-scanner.php:1443 ../cerber-scanner.php:2666
|
2348 |
msgid "Suspicious directives found"
|
2349 |
msgstr ""
|
2350 |
|
2351 |
+
#: ../cerber-scanner.php:1444
|
2352 |
msgid "Unwanted file extension"
|
2353 |
msgstr ""
|
2354 |
|
2355 |
+
#: ../cerber-scanner.php:1446
|
2356 |
msgid "Content has been modified"
|
2357 |
msgstr ""
|
2358 |
|
2359 |
+
#: ../cerber-scanner.php:1447
|
2360 |
msgid "New file"
|
2361 |
msgstr ""
|
2362 |
|
2363 |
+
#: ../cerber-scanner.php:1467
|
2364 |
msgid "Every hour"
|
2365 |
msgstr ""
|
2366 |
|
2367 |
+
#: ../cerber-scanner.php:1468
|
2368 |
msgid "Every 3 hours"
|
2369 |
msgstr ""
|
2370 |
|
2371 |
+
#: ../cerber-scanner.php:1469
|
2372 |
msgid "Every 6 hours"
|
2373 |
msgstr ""
|
2374 |
|
2375 |
+
#: ../cerber-scanner.php:2486
|
2376 |
msgid "Custom signature found"
|
2377 |
msgstr ""
|
2378 |
|
2379 |
+
#: ../cerber-scanner.php:2661
|
2380 |
msgid ""
|
2381 |
"This file contains executable code and may contain obfuscated malware. If "
|
2382 |
"this file is a part of a theme or a plugin, it must be located in the theme "
|
2383 |
"or the plugin folder. No exception, no excuses."
|
2384 |
msgstr ""
|
2385 |
|
2386 |
+
#: ../cerber-scanner.php:2662
|
2387 |
msgid ""
|
2388 |
"The scanner recognizes this file as \"ownerless\" or \"not bundled\" because it "
|
2389 |
"does not belong to any known part of the website and should not be here."
|
2390 |
msgstr ""
|
2391 |
|
2392 |
+
#: ../cerber-scanner.php:2663
|
2393 |
#, php-format
|
2394 |
msgid ""
|
2395 |
"It may remain after upgrading to a newer version of %s. It also may be a "
|
2397 |
"made (bespoke) plugin or theme."
|
2398 |
msgstr ""
|
2399 |
|
2400 |
+
#: ../cerber-scanner.php:2664
|
2401 |
msgid "Suspicious code instruction found"
|
2402 |
msgstr ""
|
2403 |
|
2404 |
+
#: ../cerber-scanner.php:2665
|
2405 |
msgid "Suspicious code signatures found"
|
2406 |
msgstr ""
|
2407 |
|
2408 |
+
#: ../cerber-scanner.php:2667
|
2409 |
msgid ""
|
2410 |
"The contents of the file have been changed and do not match what exists in "
|
2411 |
"the official WordPress repository or a reference file you have uploaded "
|
2413 |
"has been tampered with."
|
2414 |
msgstr ""
|
2415 |
|
2416 |
+
#: ../cerber-scanner.php:2668
|
2417 |
#, php-format
|
2418 |
msgid ""
|
2419 |
"To solve this issue you have to reinstall %s or update it to the latest "
|
2420 |
"version."
|
2421 |
msgstr ""
|
2422 |
|
2423 |
+
#: ../cerber-scanner.php:2669
|
2424 |
msgid "Please upload a reference ZIP archive"
|
2425 |
msgstr ""
|
2426 |
|
2427 |
+
#: ../cerber-scanner.php:2670
|
2428 |
msgid "Resolve issue"
|
2429 |
msgstr ""
|
2430 |
|
2431 |
+
#: ../cerber-scanner.php:3606
|
2432 |
msgid "Preparing for the scan"
|
2433 |
msgstr ""
|
2434 |
|
2435 |
+
#: ../cerber-scanner.php:3607
|
2436 |
msgid "Scanning folders for files"
|
2437 |
msgstr ""
|
2438 |
|
2439 |
+
#: ../cerber-scanner.php:3608
|
2440 |
msgid "Scanning the upload folder for files"
|
2441 |
msgstr ""
|
2442 |
|
2443 |
+
#: ../cerber-scanner.php:3609
|
2444 |
msgid "Scanning the temp folder for files"
|
2445 |
msgstr ""
|
2446 |
|
2447 |
+
#: ../cerber-scanner.php:3610
|
2448 |
msgid "Scanning the session folder for files"
|
2449 |
msgstr ""
|
2450 |
|
2451 |
+
#: ../cerber-scanner.php:3611
|
2452 |
msgid "Parsing the list of files"
|
2453 |
msgstr ""
|
2454 |
|
2455 |
+
#: ../cerber-scanner.php:3612
|
2456 |
msgid "Checking for new and modified files"
|
2457 |
msgstr ""
|
2458 |
|
2459 |
+
#: ../cerber-scanner.php:3613
|
2460 |
msgid "Verifying the integrity of WordPress"
|
2461 |
msgstr ""
|
2462 |
|
2463 |
+
#: ../cerber-scanner.php:3614
|
2464 |
msgid "Verifying the integrity of the plugins"
|
2465 |
msgstr ""
|
2466 |
|
2467 |
+
#: ../cerber-scanner.php:3615
|
2468 |
msgid "Verifying the integrity of the themes"
|
2469 |
msgstr ""
|
2470 |
|
2471 |
+
#: ../cerber-scanner.php:3616
|
2472 |
msgid "Searching for malicious code"
|
2473 |
msgstr ""
|
2474 |
|
2475 |
+
#: ../cerber-scanner.php:3617
|
2476 |
msgid "Finalizing the scan"
|
2477 |
msgstr ""
|
2478 |
|
2479 |
+
#: ../cerber-scanner.php:3692
|
2480 |
msgid "Started"
|
2481 |
msgstr ""
|
2482 |
|
2483 |
+
#: ../cerber-scanner.php:3696
|
2484 |
msgid "Finished"
|
2485 |
msgstr ""
|
2486 |
|
2487 |
+
#: ../cerber-scanner.php:3704
|
2488 |
msgid "Performance"
|
2489 |
msgstr ""
|
2490 |
|
2491 |
+
#: ../cerber-scanner.php:3716
|
2492 |
msgid "Vulnerabilities"
|
2493 |
msgstr ""
|
2494 |
|
2495 |
+
#: ../cerber-scanner.php:3720
|
2496 |
msgid "New files"
|
2497 |
msgstr ""
|
2498 |
|
2499 |
+
#: ../cerber-scanner.php:3724
|
2500 |
msgid "Changed files"
|
2501 |
msgstr ""
|
2502 |
|
2503 |
+
#: ../cerber-scanner.php:3728
|
2504 |
msgid "Unwanted extensions"
|
2505 |
msgstr ""
|
2506 |
|
2507 |
+
#: ../cerber-scanner.php:3741 ../cerber-scanner.php:5408
|
2508 |
msgid "Scanned"
|
2509 |
msgstr ""
|
2510 |
|
2511 |
+
#: ../cerber-scanner.php:3741 ../cerber-scanner.php:3811
|
2512 |
msgid "Files to scan"
|
2513 |
msgstr ""
|
2514 |
|
2515 |
+
#: ../cerber-scanner.php:3748 ../cerber-scanner.php:3819
|
2516 |
msgid "Critical issues"
|
2517 |
msgstr ""
|
2518 |
|
2519 |
+
#: ../cerber-scanner.php:3748 ../cerber-scanner.php:3823 ../cerber-scanner.php:4981
|
2520 |
msgid "Issues total"
|
2521 |
msgstr ""
|
2522 |
|
2523 |
+
#: ../cerber-scanner.php:3897
|
2524 |
msgid "We have not found any integrity data to verify"
|
2525 |
msgstr ""
|
2526 |
|
2527 |
+
#: ../cerber-scanner.php:3899
|
2528 |
msgid ""
|
2529 |
"You have to upload a ZIP archive from which you've installed it. This "
|
2530 |
"enables the security scanner to verify the integrity of the code and detect "
|
2531 |
"malware."
|
2532 |
msgstr ""
|
2533 |
|
2534 |
+
#: ../cerber-scanner.php:4186
|
2535 |
msgid "The directory is not writable"
|
2536 |
msgstr ""
|
2537 |
|
2538 |
+
#: ../cerber-scanner.php:4204
|
2539 |
msgid "Unable to create WP CERBER directory"
|
2540 |
msgstr ""
|
2541 |
|
2542 |
+
#: ../cerber-scanner.php:4410
|
2543 |
msgid ""
|
2544 |
"File access error. Possibly scan results are outdated. Please run Quick or "
|
2545 |
"Full Scan."
|
2546 |
msgstr ""
|
2547 |
|
2548 |
+
#: ../cerber-scanner.php:4937
|
2549 |
msgid "Full Scan Report"
|
2550 |
msgstr ""
|
2551 |
|
2552 |
+
#: ../cerber-scanner.php:4937
|
2553 |
msgid "Quick Scan Report"
|
2554 |
msgstr ""
|
2555 |
|
2556 |
+
#: ../cerber-scanner.php:4950
|
2557 |
msgid "Files scanned"
|
2558 |
msgstr ""
|
2559 |
|
2560 |
+
#: ../cerber-scanner.php:5031
|
2561 |
msgid "Deleted"
|
2562 |
msgstr ""
|
2563 |
|
2564 |
+
#: ../cerber-scanner.php:5078
|
2565 |
msgid "Automatically moved to quarantine"
|
2566 |
msgstr ""
|
2567 |
|
2568 |
+
#: ../cerber-scanner.php:5090
|
2569 |
msgid "To view full report visit"
|
2570 |
msgstr ""
|
2571 |
|
2572 |
+
#: ../cerber-scanner.php:5318
|
2573 |
msgid "There are no files in the quarantine at the moment."
|
2574 |
msgstr ""
|
2575 |
|
2576 |
+
#: ../cerber-scanner.php:5379
|
2577 |
msgid "No files match the specified filter."
|
2578 |
msgstr ""
|
2579 |
|
2580 |
+
#: ../cerber-scanner.php:5379
|
2581 |
msgid "Click here to see the full list of files"
|
2582 |
msgstr ""
|
2583 |
|
2584 |
+
#: ../cerber-scanner.php:5396
|
2585 |
msgid "Delete permanently"
|
2586 |
msgstr ""
|
2587 |
|
2588 |
+
#: ../cerber-scanner.php:5401
|
2589 |
msgid "Restore"
|
2590 |
msgstr ""
|
2591 |
|
2592 |
+
#: ../cerber-scanner.php:5409
|
2593 |
msgid "Moved to quarantine"
|
2594 |
msgstr ""
|
2595 |
|
2596 |
+
#: ../cerber-scanner.php:5410
|
2597 |
msgid "Automatic deletion"
|
2598 |
msgstr ""
|
2599 |
|
2600 |
+
#: ../cerber-scanner.php:5411
|
2601 |
msgid "Size"
|
2602 |
msgstr ""
|
2603 |
|
2604 |
+
#: ../cerber-scanner.php:5412 ../cerber-scanner.php:5543
|
2605 |
msgid "File"
|
2606 |
msgstr ""
|
2607 |
|
2608 |
+
#: ../cerber-scanner.php:5426
|
2609 |
msgid "All scans"
|
2610 |
msgstr ""
|
2611 |
|
2612 |
+
#: ../cerber-scanner.php:5480
|
2613 |
msgid "The file has been deleted permanently."
|
2614 |
msgstr ""
|
2615 |
|
2616 |
+
#: ../cerber-scanner.php:5489
|
2617 |
msgid "The file has been restored to its original location."
|
2618 |
msgstr ""
|
2619 |
|
2620 |
+
#: ../cerber-scanner.php:5511
|
2621 |
msgid "Apply"
|
2622 |
msgstr ""
|
2623 |
|
2624 |
+
#: ../cerber-scanner.php:5512 ../cerber-scanner.php:5537
|
2625 |
msgid "Remove from the list"
|
2626 |
msgstr ""
|
2627 |
|
2628 |
+
#: ../cerber-scanner.php:5513
|
2629 |
msgid "User Insights"
|
2630 |
msgstr ""
|
2631 |
|
2632 |
+
#: ../cerber-scanner.php:5514
|
2633 |
msgid "Traffic Insights"
|
2634 |
msgstr ""
|
2635 |
|
2636 |
+
#: ../cerber-scanner.php:5515
|
2637 |
msgid "Activity Insights"
|
2638 |
msgstr ""
|
2639 |
|
2640 |
+
#: ../cerber-scanner.php:5517
|
2641 |
msgid "The list is empty."
|
2642 |
msgstr ""
|
2643 |
|
2644 |
+
#: ../cerber-scanner.php:5542
|
2645 |
msgid "Added"
|
2646 |
msgstr ""
|
2647 |
|
modules/aaa-wp-cerber.php
CHANGED
@@ -9,7 +9,7 @@
|
|
9 |
Network: true
|
10 |
|
11 |
Copyright (C) 2015-18 CERBER TECH INC., http://cerber.tech
|
12 |
-
Copyright (C) 2015-18
|
13 |
|
14 |
Licenced under the GNU GPL.
|
15 |
|
9 |
Network: true
|
10 |
|
11 |
Copyright (C) 2015-18 CERBER TECH INC., http://cerber.tech
|
12 |
+
Copyright (C) 2015-18 CERBER TECH INC., https://wpcerber.com
|
13 |
|
14 |
Licenced under the GNU GPL.
|
15 |
|
readme.txt
CHANGED
@@ -4,8 +4,8 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_i
|
|
4 |
Tags: security, malware scanner, antispam, firewall, limit login attempts, custom login url, login, recaptcha, captcha, activity, log, logging, whitelist, blacklist, access list
|
5 |
Requires at least: 4.5
|
6 |
Requires PHP: 5.4
|
7 |
-
Tested up to:
|
8 |
-
Stable tag: 7.9
|
9 |
License: GPLv2
|
10 |
|
11 |
Protection against hacker attacks and bots. Malware scanner & integrity checker. User activity log. Antispam reCAPTCHA. Limit login attempts.
|
@@ -308,6 +308,16 @@ To get access to your dashboard you need to copy the WP Cerber Reset folder to t
|
|
308 |
|
309 |
== Changelog ==
|
310 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
311 |
= 7.9 =
|
312 |
* New: The plugin monitors suspicious requests that cause 4xx and 5xx HTTP errors and blocks IP addresses that aggressively generate such requests.
|
313 |
* New: A set of WordPress navigation menu links. Login, logout, and register menu items can be automatically generated and shown in any WordPress menu or a widget.
|
@@ -450,21 +460,6 @@ To get access to your dashboard you need to copy the WP Cerber Reset folder to t
|
|
450 |
* Bug fixed: An IP address in the white access list may be locked out as a suspicious IP.
|
451 |
* [Read more](https://wpcerber.com/wp-cerber-security-5-8/)
|
452 |
|
453 |
-
= 5.7 =
|
454 |
-
* New: Limit access to WordPress REST API for logged in users only.
|
455 |
-
* New: For new users the plugin records the date of registration, the IP address and a user who has added a new user.
|
456 |
-
* New: Sorting users on the Users admin page by date of registration.
|
457 |
-
* New: User registration monitoring and activity logging functions has been improved.
|
458 |
-
* Translations has been updated, thanks to Jon Knippen, Wojciech Górski and Francesco.
|
459 |
-
* Bug fixed: Stop user enumeration via REST API doesn’t work on a multisite WordPress installation.
|
460 |
-
* [Read more](https://wpcerber.com/wp-cerber-security-5-7/)
|
461 |
-
|
462 |
-
= 5.5 =
|
463 |
-
* New: White list for the WordPress anti-spam engine.
|
464 |
-
* New: White list for REST API requests.
|
465 |
-
* New: Disable access to user data via REST API and stop REST API user enumeration.
|
466 |
-
* [Read more](https://wpcerber.com/wp-cerber-security-5-5/)
|
467 |
-
|
468 |
== Other Notes ==
|
469 |
|
470 |
1. If you want to test out plugin's features, do this from another computer and remove that computer's network from the White Access List. Cerber is smart enough to recognize "the boss".
|
4 |
Tags: security, malware scanner, antispam, firewall, limit login attempts, custom login url, login, recaptcha, captcha, activity, log, logging, whitelist, blacklist, access list
|
5 |
Requires at least: 4.5
|
6 |
Requires PHP: 5.4
|
7 |
+
Tested up to: 5.0
|
8 |
+
Stable tag: 7.9.3
|
9 |
License: GPLv2
|
10 |
|
11 |
Protection against hacker attacks and bots. Malware scanner & integrity checker. User activity log. Antispam reCAPTCHA. Limit login attempts.
|
308 |
|
309 |
== Changelog ==
|
310 |
|
311 |
+
= 7.9.3 =
|
312 |
+
* New: New settings for [the Traffic Inspector firewall](https://wpcerber.com/traffic-inspector-in-a-nutshell/) allow you to fine-tune its behavior. You can enable less or more restrictive firewall rules.
|
313 |
+
* Update: Troubleshooting of possible issues with scheduled maintenance tasks has been improved.
|
314 |
+
* Update: To make troubleshooting easier the plugin logs not only a lockout event but also logs and displays the reason for the lockout.
|
315 |
+
* Update: Compatibility with ManageWP and Gravity Forms has been improved.
|
316 |
+
* Update: The layout of the Activity and Live Traffic pages has been improved.
|
317 |
+
* Bug fixed: [The malware scanner](https://wpcerber.com/wordpress-security-scanner/) wrongly prevents PHP files with few specific names in one particular location from being deleted after a manual scan or during [the automatic malware removal](https://wpcerber.com/automatic-malware-removal-wordpress/).
|
318 |
+
* Bug fixed: The number of email notifications might be incorrectly limited to one email per hour.
|
319 |
+
* [Read more](https://wpcerber.com/wp-cerber-security-7-9-3/)
|
320 |
+
|
321 |
= 7.9 =
|
322 |
* New: The plugin monitors suspicious requests that cause 4xx and 5xx HTTP errors and blocks IP addresses that aggressively generate such requests.
|
323 |
* New: A set of WordPress navigation menu links. Login, logout, and register menu items can be automatically generated and shown in any WordPress menu or a widget.
|
460 |
* Bug fixed: An IP address in the white access list may be locked out as a suspicious IP.
|
461 |
* [Read more](https://wpcerber.com/wp-cerber-security-5-8/)
|
462 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
463 |
== Other Notes ==
|
464 |
|
465 |
1. If you want to test out plugin's features, do this from another computer and remove that computer's network from the White Access List. Cerber is smart enough to recognize "the boss".
|
ripe.php
CHANGED
@@ -1,6 +1,7 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
-
Copyright (C) 2015-18 CERBER TECH INC.,
|
|
|
4 |
|
5 |
Licenced under the GNU GPL.
|
6 |
|
1 |
<?php
|
2 |
/*
|
3 |
+
Copyright (C) 2015-18 CERBER TECH INC., http://cerber.tech
|
4 |
+
Copyright (C) 2015-18 CERBER TECH INC., https://wpcerber.com
|
5 |
|
6 |
Licenced under the GNU GPL.
|
7 |
|
settings.php
CHANGED
@@ -1,6 +1,7 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
-
|
|
|
4 |
|
5 |
Licenced under the GNU GPL.
|
6 |
|
@@ -281,14 +282,15 @@ function cerber_settings_init(){
|
|
281 |
|
282 |
add_settings_section( 'tmain', __( 'Traffic Inspection', 'wp-cerber' ), 'cerber_sapi_section', CERBER_OPT_T );
|
283 |
add_settings_field( 'tienabled', __( 'Enable traffic inspection', 'wp-cerber' ), 'cerber_field_show', CERBER_OPT_T, 'tmain',
|
284 |
-
array(
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
|
|
292 |
) );
|
293 |
add_settings_field( 'tiipwhite', __( 'Use White IP Access List', 'wp-cerber' ), 'cerber_field_show', CERBER_OPT_T, 'tmain',
|
294 |
array( 'group' => $group,
|
@@ -301,7 +303,26 @@ function cerber_settings_init(){
|
|
301 |
'type' => 'textarea',
|
302 |
'delimiter' => "\n",
|
303 |
'list' => true,
|
304 |
-
'label' => __( 'Enter a request URI to exclude the request from inspection. One item per line.', 'wp-cerber' ) . ' ' . __( 'To specify a REGEX pattern, enclose a whole line in two braces.', 'wp-cerber' ) . ' <a target="_blank" href="https://wpcerber.com/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
305 |
) );
|
306 |
|
307 |
add_settings_section( 'tlog', __( 'Logging', 'wp-cerber' ), 'cerber_sapi_section', CERBER_OPT_T );
|
@@ -1178,11 +1199,11 @@ add_filter( 'pre_update_option_'.CERBER_OPT_N, function ($new, $old, $option) {
|
|
1178 |
*/
|
1179 |
add_filter( 'pre_update_option_'.CERBER_OPT_H, function ($new, $old, $option) {
|
1180 |
|
1181 |
-
|
|
|
1182 |
|
1183 |
-
$new['restwhite'] = array_map( function ( $v ) {
|
1184 |
return trim( $v, '/' );
|
1185 |
-
}
|
1186 |
|
1187 |
if ( empty( $new['adminphp'] ) ) {
|
1188 |
$new['adminphp'] = 0;
|
@@ -1568,9 +1589,10 @@ function cerber_get_defaults() {
|
|
1568 |
),
|
1569 |
CERBER_OPT_T => array(
|
1570 |
'tienabled' => '1',
|
1571 |
-
'tierrmon' => '1',
|
1572 |
'tiipwhite' => 0,
|
1573 |
'tiwhite' => '',
|
|
|
|
|
1574 |
'timode' => '1',
|
1575 |
'tinocrabs' => '1',
|
1576 |
'tifields' => 0,
|
1 |
<?php
|
2 |
/*
|
3 |
+
Copyright (C) 2015-18 CERBER TECH INC., http://cerber.tech
|
4 |
+
Copyright (C) 2015-18 CERBER TECH INC., https://wpcerber.com
|
5 |
|
6 |
Licenced under the GNU GPL.
|
7 |
|
282 |
|
283 |
add_settings_section( 'tmain', __( 'Traffic Inspection', 'wp-cerber' ), 'cerber_sapi_section', CERBER_OPT_T );
|
284 |
add_settings_field( 'tienabled', __( 'Enable traffic inspection', 'wp-cerber' ), 'cerber_field_show', CERBER_OPT_T, 'tmain',
|
285 |
+
array(
|
286 |
+
'group' => $group,
|
287 |
+
'setting' => 'tienabled',
|
288 |
+
'type' => 'select',
|
289 |
+
'set' => array(
|
290 |
+
__( 'Disabled', 'wp-cerber' ),
|
291 |
+
__( 'Maximum compatibility', 'wp-cerber' ),
|
292 |
+
__( 'Maximum security', 'wp-cerber' )
|
293 |
+
)
|
294 |
) );
|
295 |
add_settings_field( 'tiipwhite', __( 'Use White IP Access List', 'wp-cerber' ), 'cerber_field_show', CERBER_OPT_T, 'tmain',
|
296 |
array( 'group' => $group,
|
303 |
'type' => 'textarea',
|
304 |
'delimiter' => "\n",
|
305 |
'list' => true,
|
306 |
+
'label' => __( 'Enter a request URI to exclude the request from inspection. One item per line.', 'wp-cerber' ) . ' ' . __( 'To specify a REGEX pattern, enclose a whole line in two braces.', 'wp-cerber' ) . ' <a target="_blank" href="https://wpcerber.com/wordpress-probing-for-vulnerable-php-code/">Know more</a>',
|
307 |
+
) );
|
308 |
+
|
309 |
+
add_settings_section( 'tierrs', __( 'Erroneous Request Shielding', 'wp-cerber' ), 'cerber_sapi_section', CERBER_OPT_T );
|
310 |
+
add_settings_field( 'tierrmon', __( 'Enable error shielding', 'wp-cerber' ), 'cerber_field_show', CERBER_OPT_T, 'tierrs',
|
311 |
+
array(
|
312 |
+
'group' => $group,
|
313 |
+
'setting' => 'tierrmon',
|
314 |
+
'type' => 'select',
|
315 |
+
'set' => array(
|
316 |
+
__( 'Disabled', 'wp-cerber' ),
|
317 |
+
__( 'Maximum compatibility', 'wp-cerber' ),
|
318 |
+
__( 'Maximum security', 'wp-cerber' )
|
319 |
+
)
|
320 |
+
) );
|
321 |
+
add_settings_field( 'tierrnoauth', __( 'Ignore logged in users', 'wp-cerber' ), 'cerber_field_show', CERBER_OPT_T, 'tierrs',
|
322 |
+
array(
|
323 |
+
'group' => $group,
|
324 |
+
'setting' => 'tierrnoauth',
|
325 |
+
'type' => 'checkbox',
|
326 |
) );
|
327 |
|
328 |
add_settings_section( 'tlog', __( 'Logging', 'wp-cerber' ), 'cerber_sapi_section', CERBER_OPT_T );
|
1199 |
*/
|
1200 |
add_filter( 'pre_update_option_'.CERBER_OPT_H, function ($new, $old, $option) {
|
1201 |
|
1202 |
+
$new['restwhite'] = cerber_text2array( $new['restwhite'], "\n", function ( $v ) {
|
1203 |
+
$v = preg_replace( '/[^a-z_\-\d\/]/i', '', $v );
|
1204 |
|
|
|
1205 |
return trim( $v, '/' );
|
1206 |
+
} );
|
1207 |
|
1208 |
if ( empty( $new['adminphp'] ) ) {
|
1209 |
$new['adminphp'] = 0;
|
1589 |
),
|
1590 |
CERBER_OPT_T => array(
|
1591 |
'tienabled' => '1',
|
|
|
1592 |
'tiipwhite' => 0,
|
1593 |
'tiwhite' => '',
|
1594 |
+
'tierrmon' => '1',
|
1595 |
+
'tierrnoauth' => 0,
|
1596 |
'timode' => '1',
|
1597 |
'tinocrabs' => '1',
|
1598 |
'tifields' => 0,
|
whois.php
CHANGED
@@ -1,6 +1,7 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
-
Copyright (C) 2015-18 CERBER TECH INC.,
|
|
|
4 |
|
5 |
Licenced under the GNU GPL.
|
6 |
|
@@ -191,13 +192,14 @@ function make_whois_request($server, $ip) {
|
|
191 |
}
|
192 |
|
193 |
/**
|
194 |
-
* HTML for displaying
|
195 |
*
|
196 |
* @param $code string Country code
|
197 |
*
|
198 |
* @return string HTML code
|
|
|
199 |
*/
|
200 |
-
function cerber_get_flag_html( $code ) {
|
201 |
static $assets_url;
|
202 |
if ( ! $code ) {
|
203 |
return '';
|
@@ -206,7 +208,7 @@ function cerber_get_flag_html( $code ) {
|
|
206 |
$assets_url = cerber_plugin_dir_url() . 'assets/';
|
207 |
}
|
208 |
|
209 |
-
return '<span
|
210 |
}
|
211 |
/*
|
212 |
*
|
1 |
<?php
|
2 |
/*
|
3 |
+
Copyright (C) 2015-18 CERBER TECH INC., http://cerber.tech
|
4 |
+
Copyright (C) 2015-18 CERBER TECH INC., https://wpcerber.com
|
5 |
|
6 |
Licenced under the GNU GPL.
|
7 |
|
192 |
}
|
193 |
|
194 |
/**
|
195 |
+
* HTML for displaying a national flag
|
196 |
*
|
197 |
* @param $code string Country code
|
198 |
*
|
199 |
* @return string HTML code
|
200 |
+
*
|
201 |
*/
|
202 |
+
function cerber_get_flag_html( $code, $txt = '' ) {
|
203 |
static $assets_url;
|
204 |
if ( ! $code ) {
|
205 |
return '';
|
208 |
$assets_url = cerber_plugin_dir_url() . 'assets/';
|
209 |
}
|
210 |
|
211 |
+
return '<span class="crb-country" style="background: url(\'' . $assets_url . 'flags/' . strtolower( $code ) . '.gif\') no-repeat left;">' . $txt . '</span>';
|
212 |
}
|
213 |
/*
|
214 |
*
|
wp-cerber.php
CHANGED
@@ -5,13 +5,13 @@
|
|
5 |
Description: Defends WordPress against hacker attacks, spam, trojans, and viruses. Malware scanner and integrity checker. Hardening WordPress with a set of comprehensive security algorithms. Spam protection with a sophisticated bot detection engine and reCAPTCHA. Tracks user and intruder activity with powerful email, mobile and desktop notifications.
|
6 |
Author: Gregory
|
7 |
Author URI: https://wpcerber.com
|
8 |
-
Version: 7.9
|
9 |
Text Domain: wp-cerber
|
10 |
Domain Path: /languages
|
11 |
Network: true
|
12 |
|
13 |
-
|
14 |
-
|
15 |
|
16 |
Licenced under the GNU GPL.
|
17 |
|
@@ -31,7 +31,7 @@
|
|
31 |
|
32 |
*/
|
33 |
|
34 |
-
define( 'CERBER_VER', '7.9' );
|
35 |
|
36 |
function cerber_plugin_file() {
|
37 |
return __FILE__;
|
5 |
Description: Defends WordPress against hacker attacks, spam, trojans, and viruses. Malware scanner and integrity checker. Hardening WordPress with a set of comprehensive security algorithms. Spam protection with a sophisticated bot detection engine and reCAPTCHA. Tracks user and intruder activity with powerful email, mobile and desktop notifications.
|
6 |
Author: Gregory
|
7 |
Author URI: https://wpcerber.com
|
8 |
+
Version: 7.9.3
|
9 |
Text Domain: wp-cerber
|
10 |
Domain Path: /languages
|
11 |
Network: true
|
12 |
|
13 |
+
Copyright (C) 2015-18 CERBER TECH INC., http://cerber.tech
|
14 |
+
Copyright (C) 2015-18 CERBER TECH INC., https://wpcerber.com
|
15 |
|
16 |
Licenced under the GNU GPL.
|
17 |
|
31 |
|
32 |
*/
|
33 |
|
34 |
+
define( 'CERBER_VER', '7.9.3' );
|
35 |
|
36 |
function cerber_plugin_file() {
|
37 |
return __FILE__;
|