Version Description
- New: In the professional version of WP Cerber, you can now permit user registrations for IP addresses in the White IP Access List only.
- New: All URLs in the logs are displayed in a shortened form without the websites domain. There is no much value having see known things.
- New: A new label "IP Whitelisted" with green borders has been introduced. It is displayed in a log row on the Live Traffic if the IP address was in White IP Access List, but the appropriate setting Use White IP Access List was not enabled at the moment when the event was logged.
- New: If you now hover the mouse over a red square icon in the Activity or Live Traffic log, you see the reason why the IP address in the row is currently locked out.
- New: If you now hover the mouse over a green or black square Access List icon in the Activity or Live Traffic log, you see the comment youve previously specified for that Access List entry.
- Improved: All non-REGEX entries in the list of prohibited usernames (logins) are case-insensitive now. This applies to standard Latin-based (ASCII) WordPress usernames only.
- Improved: The name of a group in the Group column on Cerber.Hubs website list is a link that takes you to the list of websites in the group.
- Improved: The launch time of the daily maintenance tasks is now set to the night-time at 02:20. If you need them to get rescheduled, you can manually delete the cerber_daily cron task via a plugin or deactivate/activate WP Cerber.
- Fixed: Configured REST API restrictions have no effect if a WordPress is installed not in the root folder of a website (there is a path in the site URL). Affected versions: 8.6.1 and newer.
- Fixed: A bug in the logging subsystem: depending on server configuration, submitted form fields are not saved into the DB (if it is enabled in the logging settings).
- Fixed: A bug with Cerbers admin CSS styles that were added in the previous version and hid the top pagination links on the "All posts" and "All posts" admin pages.
Download this release
Release Info
Developer | Gioni |
Plugin | Cerber Security & Antispam |
Version | 8.6.7 |
Comparing to | |
See all releases |
Code changes from version 8.6.6 to 8.6.7
- admin/cerber-admin.php +13 -5
- admin/cerber-settings.php +1 -1
- assets/admin.css +50 -35
- assets/admin.js +3 -3
- assets/icons/fonts/crb.svg +2 -0
- assets/icons/fonts/crb.ttf +0 -0
- assets/icons/fonts/crb.woff +0 -0
- assets/icons/style.css +11 -4
- cerber-2fa.php +4 -4
- cerber-addons.php +3 -3
- cerber-ds.php +61 -42
- cerber-lab.php +19 -17
- cerber-load.php +230 -186
- cerber-request.php +4 -2
- cerber-scanner.php +51 -52
- cerber-tools.php +4 -4
- cerber-users.php +2 -2
- changelog.txt +13 -0
- common.php +73 -145
- dashboard.php +308 -136
- languages/wp-cerber-nl_NL.mo +0 -0
- languages/wp-cerber-nl_NL.po +20 -20
- languages/wp-cerber.pot +2019 -2002
- nexus/cerber-nexus-master.php +5 -4
- nexus/cerber-slave-list.php +7 -2
- readme.txt +14 -1
- settings.php +36 -20
- wp-cerber.php +3 -3
admin/cerber-admin.php
CHANGED
@@ -314,10 +314,19 @@ add_action( 'wp_ajax_cerber_view_file', function () {
|
|
314 |
cerber_check_ajax_permissions();
|
315 |
|
316 |
$get = crb_get_query_params();
|
317 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
318 |
|
319 |
if ( ! @is_file( $file_name ) ) {
|
320 |
-
crb_admin_stop_ajax( '
|
321 |
|
322 |
return;
|
323 |
}
|
@@ -325,13 +334,13 @@ add_action( 'wp_ajax_cerber_view_file', function () {
|
|
325 |
$file_size = filesize( $file_name );
|
326 |
|
327 |
if ( $file_size > 8000000 ) {
|
328 |
-
crb_admin_stop_ajax( 'Error:
|
329 |
|
330 |
return;
|
331 |
}
|
332 |
|
333 |
if ( $file_size <= 0 ) {
|
334 |
-
crb_admin_stop_ajax( 'The file is empty.' );
|
335 |
|
336 |
return;
|
337 |
}
|
@@ -679,7 +688,6 @@ function crb_admin_stop_ajax( $msg = '' ) {
|
|
679 |
echo $msg;
|
680 |
}
|
681 |
if ( ! nexus_is_valid_request() ) {
|
682 |
-
//wp_die();
|
683 |
exit;
|
684 |
}
|
685 |
}
|
314 |
cerber_check_ajax_permissions();
|
315 |
|
316 |
$get = crb_get_query_params();
|
317 |
+
|
318 |
+
if ( ! $file_name = $get['file'] ) {
|
319 |
+
crb_admin_stop_ajax( 'Error: Filename not specified. Please run a new malware scan.' );
|
320 |
+
}
|
321 |
+
|
322 |
+
if ( ! @file_exists( $file_name ) ) {
|
323 |
+
crb_admin_stop_ajax( 'Error: The requested file doesn\'t exist or has been deleted: ' . htmlspecialchars( $file_name ). '. Please run a new malware scan.' );
|
324 |
+
|
325 |
+
return;
|
326 |
+
}
|
327 |
|
328 |
if ( ! @is_file( $file_name ) ) {
|
329 |
+
crb_admin_stop_ajax( 'Error: The requested file is not an ordinary file: ' . htmlspecialchars( $file_name ) );
|
330 |
|
331 |
return;
|
332 |
}
|
334 |
$file_size = filesize( $file_name );
|
335 |
|
336 |
if ( $file_size > 8000000 ) {
|
337 |
+
crb_admin_stop_ajax( 'Error: The requested is too large to display: ' . crb_size_format( $file_size ) );
|
338 |
|
339 |
return;
|
340 |
}
|
341 |
|
342 |
if ( $file_size <= 0 ) {
|
343 |
+
crb_admin_stop_ajax( 'The requested file is empty.' );
|
344 |
|
345 |
return;
|
346 |
}
|
688 |
echo $msg;
|
689 |
}
|
690 |
if ( ! nexus_is_valid_request() ) {
|
|
|
691 |
exit;
|
692 |
}
|
693 |
}
|
admin/cerber-settings.php
CHANGED
@@ -36,7 +36,7 @@ if ( ! defined( 'WPINC' ) || ! defined( 'CERBER_VER' ) ) {
|
|
36 |
|
37 |
// Cerber's settings form in the WP dashboard
|
38 |
// @since 8.5.9.1
|
39 |
-
|
40 |
|
41 |
add_action( 'admin_init', function () { // @since 8.6.3.1
|
42 |
cerber_admin_init();
|
36 |
|
37 |
// Cerber's settings form in the WP dashboard
|
38 |
// @since 8.5.9.1
|
39 |
+
const CRB_SETTINGS_GROUP = 'cerber_settings_group';
|
40 |
|
41 |
add_action( 'admin_init', function () { // @since 8.6.3.1
|
42 |
cerber_admin_init();
|
assets/admin.css
CHANGED
@@ -472,7 +472,8 @@ div.crb-announcement p {
|
|
472 |
|
473 |
.cerber-msg li {
|
474 |
list-style-type: square;
|
475 |
-
line-height:
|
|
|
476 |
}
|
477 |
|
478 |
.cerber-msg h1 {
|
@@ -503,7 +504,7 @@ div.crb-announcement p {
|
|
503 |
color: white;
|
504 |
}
|
505 |
|
506 |
-
.tablenav.top .pagination-links {
|
507 |
display: none;
|
508 |
}
|
509 |
|
@@ -613,7 +614,8 @@ td.crb-traffic-details table td:nth-child(2) {
|
|
613 |
color: #fff;
|
614 |
}
|
615 |
.crb-200 {
|
616 |
-
color:
|
|
|
617 |
}
|
618 |
.crb-403,
|
619 |
.crb-404,
|
@@ -632,16 +634,25 @@ td.crb-traffic-details table td:nth-child(2) {
|
|
632 |
|
633 |
.crb-req-status-500,
|
634 |
.crb-req-status-501,
|
635 |
-
.crb-req-status-502
|
636 |
-
|
|
|
637 |
color: #fff;
|
638 |
}
|
639 |
|
640 |
-
.crb-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
641 |
background-color: #8892bf;
|
642 |
color: #fff;
|
643 |
}
|
644 |
-
|
|
|
645 |
background-color: #FFFF55;
|
646 |
}
|
647 |
.crb-fields-table {
|
@@ -727,8 +738,9 @@ td.crb-traffic-details table td:nth-child(2) {
|
|
727 |
|
728 |
/* IP info like WHOIS details */
|
729 |
|
730 |
-
.
|
731 |
-
padding: 1px 6px 1px 6px
|
|
|
732 |
margin-right: 4px;
|
733 |
white-space: nowrap;
|
734 |
}
|
@@ -797,10 +809,8 @@ td.crb-traffic-details table td:nth-child(2) {
|
|
797 |
}
|
798 |
|
799 |
.crb-log-status{
|
800 |
-
/*background-color: #777;
|
801 |
-
color: #ffffff;*/
|
802 |
background-color: #d2d2d2;
|
803 |
-
color: #
|
804 |
display: inline-block;
|
805 |
padding: 0 5px 0 5px;
|
806 |
|
@@ -809,65 +819,69 @@ td.crb-traffic-details table td:nth-child(2) {
|
|
809 |
}
|
810 |
|
811 |
.crb-status-500 {
|
812 |
-
background-color: #
|
813 |
color: #ffffff;
|
814 |
}
|
815 |
|
816 |
-
|
817 |
color: #777;
|
818 |
}
|
819 |
-
|
|
|
820 |
margin: 0.3em 0 !important;
|
821 |
font-weight: normal;
|
822 |
}
|
823 |
-
|
|
|
824 |
display: inline-block;
|
825 |
vertical-align: middle;
|
826 |
width: 1em;
|
827 |
height: 1em;
|
828 |
margin-right: 1em;
|
829 |
margin-bottom: 0.2em;
|
830 |
-
|
831 |
}
|
832 |
-
|
|
|
833 |
display: table;
|
834 |
}
|
835 |
-
|
|
|
836 |
display: table-cell;
|
837 |
-
/*vertical-align: middle;*/
|
838 |
}
|
839 |
|
840 |
-
.
|
841 |
background-color: #000;
|
842 |
color: #fff;
|
843 |
}
|
844 |
|
845 |
-
.
|
846 |
-
background-color: #
|
847 |
color: #fff;
|
848 |
}
|
849 |
|
850 |
-
.
|
851 |
background-color: #FF5733;
|
852 |
color: #fff;
|
853 |
}
|
854 |
|
855 |
-
.
|
856 |
display: inline-block;
|
857 |
padding: 3px 5px 3px 5px;
|
858 |
/*margin: 1px;*/
|
859 |
-
background-color: #
|
860 |
color: #000;
|
861 |
/*border-radius: 5px;*/
|
862 |
border-left: 4px solid rgba(0, 0, 0, 0);
|
863 |
border-right: 4px solid rgba(0, 0, 0, 0);
|
864 |
}
|
865 |
|
866 |
-
.
|
867 |
display: inline-block;
|
868 |
padding: 3px 5px 3px 5px;
|
869 |
/*margin: 1px;*/
|
870 |
-
background-color: #FF5733
|
|
|
871 |
color: #000;
|
872 |
/*border-radius: 5px;*/
|
873 |
border-left: 4px solid rgba(0, 0, 0, 0);
|
@@ -923,13 +937,14 @@ p.act-url{
|
|
923 |
.crb10 span:first-child,
|
924 |
.crb11 span:first-child {
|
925 |
display: inline-block;
|
|
|
926 |
background-color: #FF5733;
|
927 |
margin-right: 1.5em;
|
928 |
line-height: 1.2;
|
929 |
}
|
930 |
.crb5 {
|
931 |
/*border-left: 4px solid #FF5733;*/
|
932 |
-
border-left: 0.4em solid #
|
933 |
padding-bottom: 2px;
|
934 |
}
|
935 |
|
@@ -1086,6 +1101,7 @@ a.nav-tab:first-child{
|
|
1086 |
font-weight: normal;
|
1087 |
margin-left: 0;
|
1088 |
border-right: none;
|
|
|
1089 |
}
|
1090 |
.cerber-tabs .nav-tab:hover {
|
1091 |
color: #000;
|
@@ -1605,15 +1621,18 @@ div.crb-extra-info span#ip-country{
|
|
1605 |
div.crb-extra-info span#ip-address{
|
1606 |
margin-right: 1em;
|
1607 |
}
|
1608 |
-
div.crb-extra-info #ip-details {
|
1609 |
float: left;
|
1610 |
max-width: 30%;
|
1611 |
}
|
1612 |
div.crb-extra-info #acl-buttons{
|
1613 |
float:right;
|
1614 |
max-width: 30%;
|
1615 |
-
}
|
1616 |
|
|
|
|
|
|
|
1617 |
|
1618 |
#crb_the_summary > div {
|
1619 |
display: table-row;
|
@@ -1751,10 +1770,6 @@ div#whois:hover {
|
|
1751 |
margin-right: 0.5em;
|
1752 |
}
|
1753 |
|
1754 |
-
.cerber-button {
|
1755 |
-
/*vertical-align: middle;*/
|
1756 |
-
}
|
1757 |
-
|
1758 |
.cerber-button i {
|
1759 |
vertical-align: middle;
|
1760 |
font-size: 120%;
|
472 |
|
473 |
.cerber-msg li {
|
474 |
list-style-type: square;
|
475 |
+
line-height: 160%;
|
476 |
+
padding-bottom: 0.5em;
|
477 |
}
|
478 |
|
479 |
.cerber-msg h1 {
|
504 |
color: white;
|
505 |
}
|
506 |
|
507 |
+
#crb-admin .tablenav.top .pagination-links {
|
508 |
display: none;
|
509 |
}
|
510 |
|
614 |
color: #fff;
|
615 |
}
|
616 |
.crb-200 {
|
617 |
+
color: #2db05a;
|
618 |
+
font-weight: 500;
|
619 |
}
|
620 |
.crb-403,
|
621 |
.crb-404,
|
634 |
|
635 |
.crb-req-status-500,
|
636 |
.crb-req-status-501,
|
637 |
+
.crb-req-status-502,
|
638 |
+
.crb-req-status-503 {
|
639 |
+
background-color: #2db05a;
|
640 |
color: #fff;
|
641 |
}
|
642 |
|
643 |
+
.crb-req-status-510,
|
644 |
+
.crb-req-status-511,
|
645 |
+
.crb-req-status-512 {
|
646 |
+
border: solid 2px #2db05a;
|
647 |
+
color: #222;
|
648 |
+
}
|
649 |
+
|
650 |
+
.crb-php-error {
|
651 |
background-color: #8892bf;
|
652 |
color: #fff;
|
653 |
}
|
654 |
+
|
655 |
+
.crb-above {
|
656 |
background-color: #FFFF55;
|
657 |
}
|
658 |
.crb-fields-table {
|
738 |
|
739 |
/* IP info like WHOIS details */
|
740 |
|
741 |
+
.crb_ip_info_label {
|
742 |
+
/*padding: 1px 6px 1px 6px;*/
|
743 |
+
padding: 4px 8px;
|
744 |
margin-right: 4px;
|
745 |
white-space: nowrap;
|
746 |
}
|
809 |
}
|
810 |
|
811 |
.crb-log-status{
|
|
|
|
|
812 |
background-color: #d2d2d2;
|
813 |
+
color: #222;
|
814 |
display: inline-block;
|
815 |
padding: 0 5px 0 5px;
|
816 |
|
819 |
}
|
820 |
|
821 |
.crb-status-500 {
|
822 |
+
background-color: #2db05a;
|
823 |
color: #ffffff;
|
824 |
}
|
825 |
|
826 |
+
.crb_act_url, .crb_act_role {
|
827 |
color: #777;
|
828 |
}
|
829 |
+
|
830 |
+
.crb_act_url {
|
831 |
margin: 0.3em 0 !important;
|
832 |
font-weight: normal;
|
833 |
}
|
834 |
+
|
835 |
+
.crb_act_icon {
|
836 |
display: inline-block;
|
837 |
vertical-align: middle;
|
838 |
width: 1em;
|
839 |
height: 1em;
|
840 |
margin-right: 1em;
|
841 |
margin-bottom: 0.2em;
|
842 |
+
/* background-color: inherit;*/
|
843 |
}
|
844 |
+
|
845 |
+
.crb_css_table {
|
846 |
display: table;
|
847 |
}
|
848 |
+
|
849 |
+
.crb_css_table > div {
|
850 |
display: table-cell;
|
|
|
851 |
}
|
852 |
|
853 |
+
.crb_ip_aclB, .crb_color_black {
|
854 |
background-color: #000;
|
855 |
color: #fff;
|
856 |
}
|
857 |
|
858 |
+
.crb_ip_aclW, .crb_color_green {
|
859 |
+
background-color: #2db05a;
|
860 |
color: #fff;
|
861 |
}
|
862 |
|
863 |
+
.crb_color_blocked {
|
864 |
background-color: #FF5733;
|
865 |
color: #fff;
|
866 |
}
|
867 |
|
868 |
+
.actv5 {
|
869 |
display: inline-block;
|
870 |
padding: 3px 5px 3px 5px;
|
871 |
/*margin: 1px;*/
|
872 |
+
background-color: #2db05a;
|
873 |
color: #000;
|
874 |
/*border-radius: 5px;*/
|
875 |
border-left: 4px solid rgba(0, 0, 0, 0);
|
876 |
border-right: 4px solid rgba(0, 0, 0, 0);
|
877 |
}
|
878 |
|
879 |
+
.actv10, .actv11, .actv12, .actv16, .actv17, .actv18, .actv19, .actv41, .actv42, .actv53, .actv54, .actv55, .actv56, .actv70, .actv71 {
|
880 |
display: inline-block;
|
881 |
padding: 3px 5px 3px 5px;
|
882 |
/*margin: 1px;*/
|
883 |
+
/*background-color: #FF5733;*/
|
884 |
+
background-color: #FC5643;
|
885 |
color: #000;
|
886 |
/*border-radius: 5px;*/
|
887 |
border-left: 4px solid rgba(0, 0, 0, 0);
|
937 |
.crb10 span:first-child,
|
938 |
.crb11 span:first-child {
|
939 |
display: inline-block;
|
940 |
+
color: #FFF;
|
941 |
background-color: #FF5733;
|
942 |
margin-right: 1.5em;
|
943 |
line-height: 1.2;
|
944 |
}
|
945 |
.crb5 {
|
946 |
/*border-left: 4px solid #FF5733;*/
|
947 |
+
border-left: 0.4em solid #2db05a;
|
948 |
padding-bottom: 2px;
|
949 |
}
|
950 |
|
1101 |
font-weight: normal;
|
1102 |
margin-left: 0;
|
1103 |
border-right: none;
|
1104 |
+
color: #333;
|
1105 |
}
|
1106 |
.cerber-tabs .nav-tab:hover {
|
1107 |
color: #000;
|
1621 |
div.crb-extra-info span#ip-address{
|
1622 |
margin-right: 1em;
|
1623 |
}
|
1624 |
+
/*div.crb-extra-info #ip-details {
|
1625 |
float: left;
|
1626 |
max-width: 30%;
|
1627 |
}
|
1628 |
div.crb-extra-info #acl-buttons{
|
1629 |
float:right;
|
1630 |
max-width: 30%;
|
1631 |
+
}*/
|
1632 |
|
1633 |
+
.crb-extra-info #add_acl_black button {
|
1634 |
+
min-width: 15em;
|
1635 |
+
}
|
1636 |
|
1637 |
#crb_the_summary > div {
|
1638 |
display: table-row;
|
1770 |
margin-right: 0.5em;
|
1771 |
}
|
1772 |
|
|
|
|
|
|
|
|
|
1773 |
.cerber-button i {
|
1774 |
vertical-align: middle;
|
1775 |
font-size: 120%;
|
assets/admin.js
CHANGED
@@ -242,13 +242,13 @@ jQuery(document).ready(function ($) {
|
|
242 |
// Add UTM
|
243 |
|
244 |
$('div#crb-admin').on('click', 'a', function (event) {
|
245 |
-
|
246 |
if (link.startsWith('https://wpcerber.com') && !link.includes('wp-admin')) {
|
247 |
-
|
248 |
if (link.includes('?')) {
|
249 |
url_char = '&';
|
250 |
}
|
251 |
-
$(this).attr('href', link + url_char + 'utm_source=wp_plugin');
|
252 |
}
|
253 |
});
|
254 |
|
242 |
// Add UTM
|
243 |
|
244 |
$('div#crb-admin').on('click', 'a', function (event) {
|
245 |
+
let link = $(this).attr('href');
|
246 |
if (link.startsWith('https://wpcerber.com') && !link.includes('wp-admin')) {
|
247 |
+
let url_char = '?';
|
248 |
if (link.includes('?')) {
|
249 |
url_char = '&';
|
250 |
}
|
251 |
+
$(this).attr('href', link + url_char + 'utm_source=wp_plugin&culoc=' + crb_user_locale);
|
252 |
}
|
253 |
});
|
254 |
|
assets/icons/fonts/crb.svg
CHANGED
@@ -38,10 +38,12 @@
|
|
38 |
<glyph unicode="" glyph-name="bxs-world" d="M256 325.334c-117.632 0-213.333-95.702-213.333-213.334s95.701-213.333 213.333-213.333 213.333 95.702 213.333 213.333-95.702 213.334-213.333 213.334zM192-46.101v30.101l-64 64v42.666l-21.334 42.666h-19.861c9.664 77.034 70.827 138.197 147.862 147.861v-19.861l-21.333-42.666-42.666-42.666-21.334-42.666 21.334-42.666h21.334l21.334-21.334h42.666v-42.666l-40.192-80.363c-8.171 1.984-16.149 4.48-23.808 7.594zM376.618-8.618l-13.952 13.952-21.334 42.666-21.334 21.334-21.334 20.992 21.334 21.674 42.666 21.334v21.334l-21.334 21.334 21.334 42.666v26.346c38.954-31.296 64-79.254 64-133.014 0-47.040-19.136-89.707-50.048-120.618z" />
|
39 |
<glyph unicode="" glyph-name="bxl-google" d="M432.704 147.072h-177.643v-73.621h102.23c-9.514-46.784-49.344-73.664-102.23-73.664-62.357 0-112.619 50.262-112.619 112.64 0 62.358 50.262 112.618 112.618 112.618 26.858 0 51.136-9.536 70.186-25.131l55.466 55.446c-33.792 29.462-77.12 47.637-125.654 47.637-105.685 0-190.592-84.885-190.592-190.592s84.886-190.592 190.592-190.592c95.296 0 181.952 69.312 181.952 190.592 0 11.264-1.728 23.403-4.31 34.667z" />
|
40 |
<glyph unicode="" glyph-name="bx-bell-off" d="M426.666-16c0.149-0.022 0.32-0.022 0.426 0 11.798 0 21.334 9.536 21.334 21.334 0 3.84-1.002 7.445-2.795 10.56l-18.966 56.896v81.877c0 84.053-62.762 156.587-147.328 168.853l-21.611 1.75c-1.152 0.085-2.282 0.085-3.435 0l-22.678-1.856c-40.49-5.824-76.053-26.048-102.037-54.827l-50.496 50.496-30.166-30.166 384-384 30.166 30.166-48.918 48.918h12.502zM236.374 281.024l19.648 1.579 18.517-1.451c62.4-9.088 109.462-63.466 109.462-126.486v-85.334c0-2.283 0.384-4.565 1.11-6.741l11.947-35.925h-25.558l-211.669 211.669c19.37 22.422 46.102 38.294 76.544 42.688zM128 69.334v82.752l-38.614 38.613c-2.56-11.669-4.053-23.702-4.053-36.032v-81.877l-20.224-60.714c-2.197-6.507-1.088-13.675 2.922-19.221 4.011-5.568 10.454-8.853 17.302-8.853h96c0-41.173 33.494-74.666 74.667-74.666 30.954 0 57.579 18.966 68.885 45.866l-71.466 71.466h-138.475l11.968 35.925c0.704 2.176 1.088 4.459 1.088 6.741zM288-16c0-17.942-14.058-32-32-32s-32 14.058-32 32h64z" />
|
|
|
41 |
<glyph unicode="" glyph-name="bx-bolt" d="M207.147-100.416c1.855-0.584 3.987-0.921 6.198-0.921 7.368 0 13.862 3.738 17.689 9.421l0.048 0.076 170.667 256c2.247 3.327 3.587 7.427 3.587 11.84 0 11.782-9.551 21.333-21.334 21.333-0.001 0-0.002 0-0.003 0h-102.805l17.195 103.147c0.187 1.059 0.294 2.279 0.294 3.523 0 5.271-1.919 10.093-5.097 13.807l0.024-0.029c-3.93 4.632-9.757 7.552-16.264 7.552-0.005 0-0.009 0-0.014 0h-128c0 0 0 0-0 0-11.030 0-20.106-8.372-21.219-19.108l-0.007-0.091-21.334-213.334c-0.068-0.639-0.107-1.382-0.107-2.134 0-11.782 9.552-21.334 21.334-21.334 0 0 0 0 0.001 0h64v-149.333c0-9.575 6.309-17.676 14.995-20.375l0.151-0.041zM151.573 112l17.066 170.667h83.499l-17.195-103.147c-0.187-1.059-0.294-2.279-0.294-3.523 0-5.271 1.919-10.094 5.097-13.807l-0.024 0.029c4.054-4.8 10.006-7.552 16.278-7.552h88.149l-109.483-164.202v100.202c0 11.782-9.552 21.334-21.334 21.334v0h-61.76z" />
|
42 |
<glyph unicode="" glyph-name="bx-bug" d="M422.4 101.334c0 10.923-0.918 21.547-2.262 32h47.914v42.666h-57.493c-8.389 25.751-20.612 48.074-36.209 67.58l0.327-0.422 45.76 45.76-30.166 30.165-46.166-46.144c-25.579 19.563-55.723 31.062-88.106 31.062s-62.528-11.499-88.106-31.062l-46.144 46.144-30.166-30.165 45.76-45.76c-15.27-19.083-27.493-41.405-35.457-65.659l-0.426-1.498h-58.794v-42.666h49.216c-1.365-10.453-2.282-21.077-2.282-32 0-10.986 0.918-21.718 2.304-32.234h-49.237v-42.666h58.859c4.864-14.784 11.094-28.714 18.517-41.558l-49.792-49.792 30.165-30.166 45.184 45.184c29.418-31.872 68.032-51.435 110.4-51.435s80.981 19.563 110.4 51.435l45.184-45.184 30.166 30.166-49.792 49.792c7.445 12.842 13.675 26.774 18.517 41.558h58.858v42.666h-49.259c1.408 10.517 2.325 21.248 2.325 32.234zM256 261.334c47.382 0 88.555-34.646 109.355-85.334h-218.709c20.8 50.688 61.974 85.334 109.355 85.334zM277.334-56.106v146.774h-42.666v-146.774c-58.090 13.12-102.4 78.656-102.4 157.44 0 10.965 0.853 21.654 2.496 32h242.453c1.642-10.346 2.496-21.035 2.496-32 0.022-78.805-44.288-144.32-102.379-157.44z" />
|
43 |
<glyph unicode="" glyph-name="bx-chip" d="M426.666 261.334c0 11.782-9.551 21.334-21.334 21.334v0h-42.666v42.666h-42.666v-42.666h-42.666v42.666h-42.666v-42.666h-42.666v42.666h-42.666v-42.666h-42.666c-11.782 0-21.334-9.552-21.334-21.334v0-42.667h-42.666v-42.667h42.666v-42.666h-42.666v-42.666h42.666v-42.666h-42.666v-42.666h42.666v-42.666c0-11.782 9.552-21.334 21.334-21.334v0h42.666v-42.666h42.666v42.666h42.666v-42.666h42.666v42.666h42.666v-42.666h42.666v42.666h42.666c11.782 0 21.334 9.551 21.334 21.334v0 42.666h42.666v42.666h-42.666v42.666h42.666v42.666h-42.666v42.666h42.666v42.666h-42.666v42.666zM384-16h-256v256h256v-256zM213.333 154.667h85.333v-85.333h-85.334z" />
|
44 |
<glyph unicode="" glyph-name="bx-collection" d="M426.666 154.667h-341.334c-11.782 0-21.334-9.552-21.334-21.333v0-213.334c0-11.782 9.552-21.334 21.334-21.334v0h341.334c11.782 0 21.334 9.551 21.334 21.334v0 213.333c0 11.782-9.551 21.333-21.334 21.333v0zM405.334-58.666h-298.666v170.666h298.666v-170.666zM106.666 240h298.666v-42.666h-298.666zM149.333 325.334h213.333v-42.666h-213.333z" />
|
|
|
45 |
<glyph unicode="" glyph-name="bx-flask" d="M341.334 158.422v124.246h21.334v42.666h-213.333v-42.666h21.333v-124.246l-84.032-231.125c-0.815-2.17-1.287-4.678-1.287-7.296 0-11.777 9.543-21.325 21.317-21.334h298.668c0.005 0 0.010 0 0.015 0 11.771 0 21.312 9.541 21.312 21.312 0 2.626-0.475 5.142-1.344 7.464l0.048-0.147-84.032 231.125zM298.666 282.666v-128c0-2.475 0.448-4.95 1.301-7.296l12.842-35.37h-113.621l12.864 35.37c0.832 2.346 1.28 4.822 1.28 7.296v128h85.333zM137.131-58.666l46.549 128h144.661l46.55-128h-237.76z" />
|
46 |
<glyph unicode="" glyph-name="bx-hide" d="M256-37.334c20.182 0 38.613 2.197 55.424 5.995l-37.483 37.483c-5.824-0.448-11.733-0.81-17.941-0.81-114.155 0-158.379 82.048-169.088 106.666 4.352 10.026 14.379 29.462 32.171 49.002l-29.824 29.824c-32.81-35.563-45.248-71.382-45.483-72.085-1.472-4.374-1.472-9.131 0-13.504 0.448-1.408 49.386-142.57 212.224-142.57zM468.224 105.259c1.472 4.373 1.472 9.131 0 13.504-0.448 1.408-49.387 142.571-212.224 142.571-39.19 0-71.382-8.448-98.219-20.928l-78.698 78.678-30.166-30.166 384-384 30.166 30.166-70.805 70.805c55.765 41.642 75.669 98.475 75.947 99.37zM313.408 84.757c4.075 8.298 6.592 17.45 6.592 27.243 0 35.008-28.992 64-64 64-9.792 0-18.944-2.518-27.243-6.592l-38.571 38.571c18.794 6.571 40.512 10.688 65.814 10.688 114.154 0 158.379-82.048 169.088-106.666-6.442-14.762-24.875-49.962-63.019-75.904l-48.661 48.661z" />
|
47 |
<glyph unicode="" glyph-name="bx-history" d="M234.667 197.333v-106.667h106.667v42.666h-64v64zM426.666 112c0 92.501-78.144 170.667-170.667 170.667-92.501 0-170.667-78.166-170.667-170.667h-42.666l64-84.8 64 84.8h-42.666c0 69.376 58.624 128 128 128s128-58.624 128-128-58.624-128-128-128v-42.666c92.522 0 170.667 78.166 170.667 170.666z" />
|
38 |
<glyph unicode="" glyph-name="bxs-world" d="M256 325.334c-117.632 0-213.333-95.702-213.333-213.334s95.701-213.333 213.333-213.333 213.333 95.702 213.333 213.333-95.702 213.334-213.333 213.334zM192-46.101v30.101l-64 64v42.666l-21.334 42.666h-19.861c9.664 77.034 70.827 138.197 147.862 147.861v-19.861l-21.333-42.666-42.666-42.666-21.334-42.666 21.334-42.666h21.334l21.334-21.334h42.666v-42.666l-40.192-80.363c-8.171 1.984-16.149 4.48-23.808 7.594zM376.618-8.618l-13.952 13.952-21.334 42.666-21.334 21.334-21.334 20.992 21.334 21.674 42.666 21.334v21.334l-21.334 21.334 21.334 42.666v26.346c38.954-31.296 64-79.254 64-133.014 0-47.040-19.136-89.707-50.048-120.618z" />
|
39 |
<glyph unicode="" glyph-name="bxl-google" d="M432.704 147.072h-177.643v-73.621h102.23c-9.514-46.784-49.344-73.664-102.23-73.664-62.357 0-112.619 50.262-112.619 112.64 0 62.358 50.262 112.618 112.618 112.618 26.858 0 51.136-9.536 70.186-25.131l55.466 55.446c-33.792 29.462-77.12 47.637-125.654 47.637-105.685 0-190.592-84.885-190.592-190.592s84.886-190.592 190.592-190.592c95.296 0 181.952 69.312 181.952 190.592 0 11.264-1.728 23.403-4.31 34.667z" />
|
40 |
<glyph unicode="" glyph-name="bx-bell-off" d="M426.666-16c0.149-0.022 0.32-0.022 0.426 0 11.798 0 21.334 9.536 21.334 21.334 0 3.84-1.002 7.445-2.795 10.56l-18.966 56.896v81.877c0 84.053-62.762 156.587-147.328 168.853l-21.611 1.75c-1.152 0.085-2.282 0.085-3.435 0l-22.678-1.856c-40.49-5.824-76.053-26.048-102.037-54.827l-50.496 50.496-30.166-30.166 384-384 30.166 30.166-48.918 48.918h12.502zM236.374 281.024l19.648 1.579 18.517-1.451c62.4-9.088 109.462-63.466 109.462-126.486v-85.334c0-2.283 0.384-4.565 1.11-6.741l11.947-35.925h-25.558l-211.669 211.669c19.37 22.422 46.102 38.294 76.544 42.688zM128 69.334v82.752l-38.614 38.613c-2.56-11.669-4.053-23.702-4.053-36.032v-81.877l-20.224-60.714c-2.197-6.507-1.088-13.675 2.922-19.221 4.011-5.568 10.454-8.853 17.302-8.853h96c0-41.173 33.494-74.666 74.667-74.666 30.954 0 57.579 18.966 68.885 45.866l-71.466 71.466h-138.475l11.968 35.925c0.704 2.176 1.088 4.459 1.088 6.741zM288-16c0-17.942-14.058-32-32-32s-32 14.058-32 32h64z" />
|
41 |
+
<glyph unicode="" glyph-name="bx-bell-plus" d="M277.334 240h-42.666v-64h-64v-42.666h64v-64h42.666v64h64v42.666h-64zM426.666 72.789v81.877c0 84.053-62.762 156.587-147.328 168.853l-21.611 1.75c-0.514 0.041-1.113 0.064-1.717 0.064s-1.203-0.023-1.796-0.069l0.078 0.005-22.678-1.856c-83.392-11.99-146.282-84.544-146.282-168.747v-81.877l-20.224-60.714c-0.693-2.012-1.093-4.33-1.093-6.741 0-11.776 9.542-21.324 21.317-21.334h96.001c0-41.173 33.493-74.666 74.666-74.666s74.666 33.493 74.666 74.666h96.427c0 0 0.002 0 0.002 0 11.782 0 21.334 9.551 21.334 21.334 0 3.884-1.038 7.526-2.852 10.663l0.055-0.103-18.966 56.896zM256-48c-17.941 0-32 14.058-32 32h64c0-17.942-14.058-32-32-32zM114.944 26.666l11.968 35.925c0.68 2.012 1.078 4.328 1.088 6.736v85.339c0 63.125 47.168 117.526 108.374 126.358l19.648 1.578 18.517-1.45c62.4-9.088 109.462-63.466 109.462-126.486v-85.334c0-2.283 0.384-4.565 1.11-6.741l11.947-35.925h-282.112z" />
|
42 |
<glyph unicode="" glyph-name="bx-bolt" d="M207.147-100.416c1.855-0.584 3.987-0.921 6.198-0.921 7.368 0 13.862 3.738 17.689 9.421l0.048 0.076 170.667 256c2.247 3.327 3.587 7.427 3.587 11.84 0 11.782-9.551 21.333-21.334 21.333-0.001 0-0.002 0-0.003 0h-102.805l17.195 103.147c0.187 1.059 0.294 2.279 0.294 3.523 0 5.271-1.919 10.093-5.097 13.807l0.024-0.029c-3.93 4.632-9.757 7.552-16.264 7.552-0.005 0-0.009 0-0.014 0h-128c0 0 0 0-0 0-11.030 0-20.106-8.372-21.219-19.108l-0.007-0.091-21.334-213.334c-0.068-0.639-0.107-1.382-0.107-2.134 0-11.782 9.552-21.334 21.334-21.334 0 0 0 0 0.001 0h64v-149.333c0-9.575 6.309-17.676 14.995-20.375l0.151-0.041zM151.573 112l17.066 170.667h83.499l-17.195-103.147c-0.187-1.059-0.294-2.279-0.294-3.523 0-5.271 1.919-10.094 5.097-13.807l-0.024 0.029c4.054-4.8 10.006-7.552 16.278-7.552h88.149l-109.483-164.202v100.202c0 11.782-9.552 21.334-21.334 21.334v0h-61.76z" />
|
43 |
<glyph unicode="" glyph-name="bx-bug" d="M422.4 101.334c0 10.923-0.918 21.547-2.262 32h47.914v42.666h-57.493c-8.389 25.751-20.612 48.074-36.209 67.58l0.327-0.422 45.76 45.76-30.166 30.165-46.166-46.144c-25.579 19.563-55.723 31.062-88.106 31.062s-62.528-11.499-88.106-31.062l-46.144 46.144-30.166-30.165 45.76-45.76c-15.27-19.083-27.493-41.405-35.457-65.659l-0.426-1.498h-58.794v-42.666h49.216c-1.365-10.453-2.282-21.077-2.282-32 0-10.986 0.918-21.718 2.304-32.234h-49.237v-42.666h58.859c4.864-14.784 11.094-28.714 18.517-41.558l-49.792-49.792 30.165-30.166 45.184 45.184c29.418-31.872 68.032-51.435 110.4-51.435s80.981 19.563 110.4 51.435l45.184-45.184 30.166 30.166-49.792 49.792c7.445 12.842 13.675 26.774 18.517 41.558h58.858v42.666h-49.259c1.408 10.517 2.325 21.248 2.325 32.234zM256 261.334c47.382 0 88.555-34.646 109.355-85.334h-218.709c20.8 50.688 61.974 85.334 109.355 85.334zM277.334-56.106v146.774h-42.666v-146.774c-58.090 13.12-102.4 78.656-102.4 157.44 0 10.965 0.853 21.654 2.496 32h242.453c1.642-10.346 2.496-21.035 2.496-32 0.022-78.805-44.288-144.32-102.379-157.44z" />
|
44 |
<glyph unicode="" glyph-name="bx-chip" d="M426.666 261.334c0 11.782-9.551 21.334-21.334 21.334v0h-42.666v42.666h-42.666v-42.666h-42.666v42.666h-42.666v-42.666h-42.666v42.666h-42.666v-42.666h-42.666c-11.782 0-21.334-9.552-21.334-21.334v0-42.667h-42.666v-42.667h42.666v-42.666h-42.666v-42.666h42.666v-42.666h-42.666v-42.666h42.666v-42.666c0-11.782 9.552-21.334 21.334-21.334v0h42.666v-42.666h42.666v42.666h42.666v-42.666h42.666v42.666h42.666v-42.666h42.666v42.666h42.666c11.782 0 21.334 9.551 21.334 21.334v0 42.666h42.666v42.666h-42.666v42.666h42.666v42.666h-42.666v42.666h42.666v42.666h-42.666v42.666zM384-16h-256v256h256v-256zM213.333 154.667h85.333v-85.333h-85.334z" />
|
45 |
<glyph unicode="" glyph-name="bx-collection" d="M426.666 154.667h-341.334c-11.782 0-21.334-9.552-21.334-21.333v0-213.334c0-11.782 9.552-21.334 21.334-21.334v0h341.334c11.782 0 21.334 9.551 21.334 21.334v0 213.333c0 11.782-9.551 21.333-21.334 21.333v0zM405.334-58.666h-298.666v170.666h298.666v-170.666zM106.666 240h298.666v-42.666h-298.666zM149.333 325.334h213.333v-42.666h-213.333z" />
|
46 |
+
<glyph unicode="" glyph-name="bx-download" d="M234.667 282.666v-170.666h-64l85.333-85.334 85.334 85.334h-64v170.667zM426.666-16h-341.334v170.667h-42.666v-192c0-11.782 9.552-21.334 21.334-21.334v0h384c11.782 0 21.334 9.551 21.334 21.334v0 192h-42.666v-170.667z" />
|
47 |
<glyph unicode="" glyph-name="bx-flask" d="M341.334 158.422v124.246h21.334v42.666h-213.333v-42.666h21.333v-124.246l-84.032-231.125c-0.815-2.17-1.287-4.678-1.287-7.296 0-11.777 9.543-21.325 21.317-21.334h298.668c0.005 0 0.010 0 0.015 0 11.771 0 21.312 9.541 21.312 21.312 0 2.626-0.475 5.142-1.344 7.464l0.048-0.147-84.032 231.125zM298.666 282.666v-128c0-2.475 0.448-4.95 1.301-7.296l12.842-35.37h-113.621l12.864 35.37c0.832 2.346 1.28 4.822 1.28 7.296v128h85.333zM137.131-58.666l46.549 128h144.661l46.55-128h-237.76z" />
|
48 |
<glyph unicode="" glyph-name="bx-hide" d="M256-37.334c20.182 0 38.613 2.197 55.424 5.995l-37.483 37.483c-5.824-0.448-11.733-0.81-17.941-0.81-114.155 0-158.379 82.048-169.088 106.666 4.352 10.026 14.379 29.462 32.171 49.002l-29.824 29.824c-32.81-35.563-45.248-71.382-45.483-72.085-1.472-4.374-1.472-9.131 0-13.504 0.448-1.408 49.386-142.57 212.224-142.57zM468.224 105.259c1.472 4.373 1.472 9.131 0 13.504-0.448 1.408-49.387 142.571-212.224 142.571-39.19 0-71.382-8.448-98.219-20.928l-78.698 78.678-30.166-30.166 384-384 30.166 30.166-70.805 70.805c55.765 41.642 75.669 98.475 75.947 99.37zM313.408 84.757c4.075 8.298 6.592 17.45 6.592 27.243 0 35.008-28.992 64-64 64-9.792 0-18.944-2.518-27.243-6.592l-38.571 38.571c18.794 6.571 40.512 10.688 65.814 10.688 114.154 0 158.379-82.048 169.088-106.666-6.442-14.762-24.875-49.962-63.019-75.904l-48.661 48.661z" />
|
49 |
<glyph unicode="" glyph-name="bx-history" d="M234.667 197.333v-106.667h106.667v42.666h-64v64zM426.666 112c0 92.501-78.144 170.667-170.667 170.667-92.501 0-170.667-78.166-170.667-170.667h-42.666l64-84.8 64 84.8h-42.666c0 69.376 58.624 128 128 128s128-58.624 128-128-58.624-128-128-128v-42.666c92.522 0 170.667 78.166 170.667 170.666z" />
|
assets/icons/fonts/crb.ttf
CHANGED
Binary file
|
assets/icons/fonts/crb.woff
CHANGED
Binary file
|
assets/icons/style.css
CHANGED
@@ -1,17 +1,18 @@
|
|
1 |
@font-face {
|
2 |
font-family: 'crb';
|
3 |
src:
|
4 |
-
url('fonts/crb.ttf?
|
5 |
-
url('fonts/crb.woff?
|
6 |
-
url('fonts/crb.svg?
|
7 |
font-weight: normal;
|
8 |
font-style: normal;
|
|
|
9 |
}
|
10 |
|
11 |
.crb-icon {
|
12 |
/* use !important to prevent issues with browser extensions that change fonts */
|
13 |
font-family: 'crb' !important;
|
14 |
-
speak:
|
15 |
font-style: normal;
|
16 |
font-weight: normal;
|
17 |
font-variant: normal;
|
@@ -32,6 +33,9 @@
|
|
32 |
.crb-icon-bx-bell-off:before {
|
33 |
content: "\e937";
|
34 |
}
|
|
|
|
|
|
|
35 |
.crb-icon-bx-bolt:before {
|
36 |
content: "\e93d";
|
37 |
}
|
@@ -56,6 +60,9 @@
|
|
56 |
.crb-icon-bx-dashboard:before {
|
57 |
content: "\e204";
|
58 |
}
|
|
|
|
|
|
|
59 |
.crb-icon-bx-error:before {
|
60 |
content: "\e205";
|
61 |
}
|
1 |
@font-face {
|
2 |
font-family: 'crb';
|
3 |
src:
|
4 |
+
url('fonts/crb.ttf?v388dd') format('truetype'),
|
5 |
+
url('fonts/crb.woff?v388dd') format('woff'),
|
6 |
+
url('fonts/crb.svg?v388dd#crb') format('svg');
|
7 |
font-weight: normal;
|
8 |
font-style: normal;
|
9 |
+
font-display: block;
|
10 |
}
|
11 |
|
12 |
.crb-icon {
|
13 |
/* use !important to prevent issues with browser extensions that change fonts */
|
14 |
font-family: 'crb' !important;
|
15 |
+
speak: never;
|
16 |
font-style: normal;
|
17 |
font-weight: normal;
|
18 |
font-variant: normal;
|
33 |
.crb-icon-bx-bell-off:before {
|
34 |
content: "\e937";
|
35 |
}
|
36 |
+
.crb-icon-bx-bell-plus:before {
|
37 |
+
content: "\e938";
|
38 |
+
}
|
39 |
.crb-icon-bx-bolt:before {
|
40 |
content: "\e93d";
|
41 |
}
|
60 |
.crb-icon-bx-dashboard:before {
|
61 |
content: "\e204";
|
62 |
}
|
63 |
+
.crb-icon-bx-download:before {
|
64 |
+
content: "\e9a3";
|
65 |
+
}
|
66 |
.crb-icon-bx-error:before {
|
67 |
content: "\e205";
|
68 |
}
|
cerber-2fa.php
CHANGED
@@ -20,8 +20,8 @@
|
|
20 |
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
21 |
*/
|
22 |
|
23 |
-
|
24 |
-
|
25 |
|
26 |
final class CRB_2FA {
|
27 |
private static $user_id = null;
|
@@ -223,7 +223,7 @@ final class CRB_2FA {
|
|
223 |
}
|
224 |
|
225 |
static function restrict_and_verify( $user_id = null ) {
|
226 |
-
global $
|
227 |
static $done = false;
|
228 |
|
229 |
if ( $done ) {
|
@@ -323,7 +323,7 @@ final class CRB_2FA {
|
|
323 |
$cus['2fa_history'] = array( 0, time() );
|
324 |
cerber_update_set( 'cerber_user', $cus, $user_id );
|
325 |
|
326 |
-
$
|
327 |
cerber_log( 5, $twofactor['login'], $user_id );
|
328 |
cerber_login_history( $user_id );
|
329 |
|
20 |
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
21 |
*/
|
22 |
|
23 |
+
const CERBER_PIN_LENGTH = 4;
|
24 |
+
const CERBER_PIN_EXPIRES = 15;
|
25 |
|
26 |
final class CRB_2FA {
|
27 |
private static $user_id = null;
|
223 |
}
|
224 |
|
225 |
static function restrict_and_verify( $user_id = null ) {
|
226 |
+
global $cerber_act_status;
|
227 |
static $done = false;
|
228 |
|
229 |
if ( $done ) {
|
323 |
$cus['2fa_history'] = array( 0, time() );
|
324 |
cerber_update_set( 'cerber_user', $cus, $user_id );
|
325 |
|
326 |
+
$cerber_act_status = 27;
|
327 |
cerber_log( 5, $twofactor['login'], $user_id );
|
328 |
cerber_login_history( $user_id );
|
329 |
|
cerber-addons.php
CHANGED
@@ -4,9 +4,9 @@
|
|
4 |
*
|
5 |
*/
|
6 |
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
|
11 |
// Add-ons API -----------------------------------------------------------------
|
12 |
|
4 |
*
|
5 |
*/
|
6 |
|
7 |
+
const CRB_ADDON_PAGE = 'cerber-addons';
|
8 |
+
const CRB_ADDON_SIGN = '_addon';
|
9 |
+
const CRB_BOOT_ADDONS = 'boot_cerber_addons';
|
10 |
|
11 |
// Add-ons API -----------------------------------------------------------------
|
12 |
|
cerber-ds.php
CHANGED
@@ -31,6 +31,7 @@ final class CRB_DS {
|
|
31 |
private static $user_blocked = false;
|
32 |
private static $user_fields = array( 'user_login' => 'lgn', 'user_pass' => 'pwd', 'user_email' => 'eml' );
|
33 |
private static $opt_cache = array();
|
|
|
34 |
//private static $user_metas = array( 'capabilities' );
|
35 |
|
36 |
static function enable_shadowing( $type ) {
|
@@ -332,29 +333,31 @@ final class CRB_DS {
|
|
332 |
return;
|
333 |
}
|
334 |
|
335 |
-
|
336 |
-
|
337 |
-
if ( crb_get_settings( 'ds_4acc_acl' ) && crb_acl_is_white() ) {
|
338 |
-
$update_shadow = true;
|
339 |
-
}
|
340 |
|
341 |
switch ( $mode ) {
|
342 |
case 'new':
|
343 |
self::$update_user = null;
|
344 |
-
if ( ! $
|
345 |
-
$
|
346 |
}
|
347 |
-
if ( $
|
348 |
self::update_user_shadow( $user_id );
|
349 |
}
|
350 |
break;
|
|
|
351 |
case 'update':
|
352 |
self::$update_user = $user_id;
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
|
|
|
|
|
|
|
|
358 |
break;
|
359 |
}
|
360 |
|
@@ -377,7 +380,7 @@ final class CRB_DS {
|
|
377 |
* @return bool true if this operation is permitted
|
378 |
*/
|
379 |
private static function acc_new( $user_id ) {
|
380 |
-
global $
|
381 |
|
382 |
$set = crb_get_settings();
|
383 |
self::$user_blocked = false;
|
@@ -385,13 +388,13 @@ final class CRB_DS {
|
|
385 |
// Due to lack of a hook in the wp_insert_user() we are forced to check permissions and use wp_delete_user() after the user was created
|
386 |
if ( ! is_user_logged_in() ) {
|
387 |
if ( ! crb_user_has_role_strict( $set['ds_regs_roles'], $user_id ) ) {
|
388 |
-
$
|
389 |
self::$user_blocked = true;
|
390 |
}
|
391 |
}
|
392 |
else {
|
393 |
if ( ! cerber_user_has_role( $set['ds_add_acc'] ) ) {
|
394 |
-
$
|
395 |
self::$user_blocked = true;
|
396 |
}
|
397 |
}
|
@@ -421,11 +424,11 @@ final class CRB_DS {
|
|
421 |
* @return bool true if this operation is permitted
|
422 |
*/
|
423 |
private static function acc_update( $user_id, $data ) {
|
424 |
-
global $
|
425 |
|
426 |
$cid = get_current_user_id();
|
427 |
|
428 |
-
self::$acc_owner = ( $user_id == $cid )
|
429 |
self::$user_blocked = false;
|
430 |
|
431 |
if ( ! cerber_user_has_role( crb_get_settings( 'ds_edit_acc' ) ) ) {
|
@@ -455,7 +458,7 @@ final class CRB_DS {
|
|
455 |
// Protect the user's row in the users table
|
456 |
add_filter( 'query', 'crb_empty_query', PHP_INT_MAX );
|
457 |
add_filter( 'pre_get_col_charset', 'crb_return_wp_error', PHP_INT_MAX );
|
458 |
-
$
|
459 |
cerber_log( 73 );
|
460 |
}
|
461 |
|
@@ -485,24 +488,24 @@ final class CRB_DS {
|
|
485 |
}
|
486 |
|
487 |
/**
|
488 |
-
*
|
|
|
489 |
*
|
490 |
-
* @param $var
|
491 |
* @param $user_id
|
492 |
* @param $meta_key
|
493 |
* @param $meta_value
|
494 |
-
* @param $prev_value
|
495 |
*
|
496 |
-
* @return bool
|
497 |
*/
|
498 |
-
static function
|
499 |
-
global $
|
500 |
|
501 |
// A user is not permitted to be created or updated?
|
502 |
if ( self::$user_blocked ) {
|
503 |
if ( self::is_meta_protected( $meta_key ) ) { // User roles are here
|
504 |
-
$
|
505 |
cerber_log( 76 );
|
|
|
506 |
|
507 |
return false;
|
508 |
}
|
@@ -511,21 +514,23 @@ final class CRB_DS {
|
|
511 |
if ( true === self::is_meta_preserve( $meta_key ) ) {
|
512 |
$ok = false;
|
513 |
|
514 |
-
//if ( ( self::$update_user == $user_id )
|
515 |
if ( cerber_user_has_role( crb_get_settings( 'ds_edit_acc' ) ) ) {
|
516 |
$ok = true;
|
517 |
}
|
518 |
// Makes sense for user's role meta ONLY
|
519 |
-
elseif ( is_array( $meta_value )
|
|
|
|
|
520 |
$ok = true;
|
521 |
}
|
522 |
|
523 |
if ( $ok ) {
|
|
|
524 |
self::update_user_shadow( $user_id, null, array( $meta_key => $meta_value ) );
|
525 |
}
|
526 |
}
|
527 |
|
528 |
-
return
|
529 |
}
|
530 |
|
531 |
private static function is_meta_preserve( $meta_key = null ) {
|
@@ -559,10 +564,10 @@ final class CRB_DS {
|
|
559 |
return false;
|
560 |
}
|
561 |
|
562 |
-
static function
|
563 |
|
564 |
-
if (
|
565 |
-
&& $conf[5] == $meta_key ) {
|
566 |
return false; // Skip use shadow meta (infinite loop protection)
|
567 |
}
|
568 |
|
@@ -584,7 +589,7 @@ final class CRB_DS {
|
|
584 |
* @return mixed The old value if update is not permitted
|
585 |
*/
|
586 |
static function setting_processor( &$value, $option, &$old_value ) {
|
587 |
-
global $
|
588 |
|
589 |
if ( empty( self::get_protected_settings()[3][ $option ] ) ) {
|
590 |
return $value;
|
@@ -611,7 +616,7 @@ final class CRB_DS {
|
|
611 |
$roles = crb_get_settings( 'ds_4opts_roles' );
|
612 |
|
613 |
if ( ! $roles || ! cerber_user_has_role( $roles ) ) {
|
614 |
-
$
|
615 |
cerber_log( 75 );
|
616 |
|
617 |
return $old_value;
|
@@ -623,7 +628,7 @@ final class CRB_DS {
|
|
623 |
}
|
624 |
|
625 |
static function role_processor( &$value, $option, &$old_value ) {
|
626 |
-
global $
|
627 |
|
628 |
if ( ! is_array( $value )
|
629 |
|| ( substr( $option, - 11 ) != '_user_roles' ) ) {
|
@@ -634,11 +639,11 @@ final class CRB_DS {
|
|
634 |
return $value;
|
635 |
}
|
636 |
|
637 |
-
$
|
638 |
|
639 |
if ( ! self::role_update_permitted( $value, $old_value ) ) {
|
640 |
-
if ( ! $
|
641 |
-
$
|
642 |
}
|
643 |
cerber_log( 74 );
|
644 |
|
@@ -694,6 +699,14 @@ final class CRB_DS {
|
|
694 |
return true;
|
695 |
}
|
696 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
697 |
/**
|
698 |
* Install hooks for retrieving data of protected settings
|
699 |
*
|
@@ -881,17 +894,23 @@ if ( crb_get_settings( 'ds_4acc' ) && CRB_DS::is_ready( 1 ) ) {
|
|
881 |
return $data;
|
882 |
}, PHP_INT_MAX, 3 );
|
883 |
|
884 |
-
add_filter( 'update_user_metadata', function ( $var, $object_id, $meta_key, $meta_value
|
885 |
// apply_filters( "update_{$meta_type}_metadata", null, $object_id, $meta_key, $meta_value, $prev_value );
|
886 |
|
887 |
-
|
|
|
|
|
|
|
|
|
888 |
|
889 |
-
|
|
|
|
|
890 |
|
891 |
add_filter( 'get_user_metadata', function ( $var, $object_id, $meta_key, $single ) {
|
892 |
//$check = apply_filters( "get_{$meta_type}_metadata", null, $object_id, $meta_key, $single );
|
893 |
|
894 |
-
if ( $meta = CRB_DS::
|
895 |
return $meta;
|
896 |
}
|
897 |
|
31 |
private static $user_blocked = false;
|
32 |
private static $user_fields = array( 'user_login' => 'lgn', 'user_pass' => 'pwd', 'user_email' => 'eml' );
|
33 |
private static $opt_cache = array();
|
34 |
+
private static $no_user_meta_shadow = ''; // Do not return user meta from shadow when meta is updating.
|
35 |
//private static $user_metas = array( 'capabilities' );
|
36 |
|
37 |
static function enable_shadowing( $type ) {
|
333 |
return;
|
334 |
}
|
335 |
|
336 |
+
//$update_permitted = self::acc_update_permitted_by_ip();
|
337 |
+
$update_permitted = ( crb_get_settings( 'ds_4acc_acl' ) && crb_acl_is_white() );
|
|
|
|
|
|
|
338 |
|
339 |
switch ( $mode ) {
|
340 |
case 'new':
|
341 |
self::$update_user = null;
|
342 |
+
if ( ! $update_permitted ) {
|
343 |
+
$update_permitted = self::acc_new( $user_id );
|
344 |
}
|
345 |
+
if ( $update_permitted ) {
|
346 |
self::update_user_shadow( $user_id );
|
347 |
}
|
348 |
break;
|
349 |
+
|
350 |
case 'update':
|
351 |
self::$update_user = $user_id;
|
352 |
+
if ( ! $update_permitted ) {
|
353 |
+
$update_permitted = self::acc_update( $user_id, $data );
|
354 |
+
}
|
355 |
+
if ( $update_permitted ) {
|
356 |
+
// Must be deferred till user's data is saved to DB
|
357 |
+
add_action( 'profile_update', function ( $user_id ) {
|
358 |
+
CRB_DS::update_helper( $user_id );
|
359 |
+
} );
|
360 |
+
}
|
361 |
break;
|
362 |
}
|
363 |
|
380 |
* @return bool true if this operation is permitted
|
381 |
*/
|
382 |
private static function acc_new( $user_id ) {
|
383 |
+
global $cerber_act_status;
|
384 |
|
385 |
$set = crb_get_settings();
|
386 |
self::$user_blocked = false;
|
388 |
// Due to lack of a hook in the wp_insert_user() we are forced to check permissions and use wp_delete_user() after the user was created
|
389 |
if ( ! is_user_logged_in() ) {
|
390 |
if ( ! crb_user_has_role_strict( $set['ds_regs_roles'], $user_id ) ) {
|
391 |
+
$cerber_act_status = 32;
|
392 |
self::$user_blocked = true;
|
393 |
}
|
394 |
}
|
395 |
else {
|
396 |
if ( ! cerber_user_has_role( $set['ds_add_acc'] ) ) {
|
397 |
+
$cerber_act_status = 33;
|
398 |
self::$user_blocked = true;
|
399 |
}
|
400 |
}
|
424 |
* @return bool true if this operation is permitted
|
425 |
*/
|
426 |
private static function acc_update( $user_id, $data ) {
|
427 |
+
global $cerber_act_status, $wpdb;
|
428 |
|
429 |
$cid = get_current_user_id();
|
430 |
|
431 |
+
self::$acc_owner = ( $user_id == $cid );
|
432 |
self::$user_blocked = false;
|
433 |
|
434 |
if ( ! cerber_user_has_role( crb_get_settings( 'ds_edit_acc' ) ) ) {
|
458 |
// Protect the user's row in the users table
|
459 |
add_filter( 'query', 'crb_empty_query', PHP_INT_MAX );
|
460 |
add_filter( 'pre_get_col_charset', 'crb_return_wp_error', PHP_INT_MAX );
|
461 |
+
$cerber_act_status = ( ! $cid ) ? 34 : 33;
|
462 |
cerber_log( 73 );
|
463 |
}
|
464 |
|
488 |
}
|
489 |
|
490 |
/**
|
491 |
+
* Restricts updating if not allowed.
|
492 |
+
* Updates shadow of user meta (and roles) if allowed.
|
493 |
*
|
|
|
494 |
* @param $user_id
|
495 |
* @param $meta_key
|
496 |
* @param $meta_value
|
|
|
497 |
*
|
498 |
+
* @return bool
|
499 |
*/
|
500 |
+
static function update_user_meta( $user_id, $meta_key, $meta_value ) {
|
501 |
+
global $cerber_act_status;
|
502 |
|
503 |
// A user is not permitted to be created or updated?
|
504 |
if ( self::$user_blocked ) {
|
505 |
if ( self::is_meta_protected( $meta_key ) ) { // User roles are here
|
506 |
+
$cerber_act_status = ( ! is_user_logged_in() ) ? 34 : 33;
|
507 |
cerber_log( 76 );
|
508 |
+
self::$no_user_meta_shadow = '';
|
509 |
|
510 |
return false;
|
511 |
}
|
514 |
if ( true === self::is_meta_preserve( $meta_key ) ) {
|
515 |
$ok = false;
|
516 |
|
|
|
517 |
if ( cerber_user_has_role( crb_get_settings( 'ds_edit_acc' ) ) ) {
|
518 |
$ok = true;
|
519 |
}
|
520 |
// Makes sense for user's role meta ONLY
|
521 |
+
elseif ( is_array( $meta_value )
|
522 |
+
&& ( $reg_roles = (array) crb_get_settings( 'ds_regs_roles' ) )
|
523 |
+
&& ! array_diff_key( $meta_value, array_flip( $reg_roles ) ) ) {
|
524 |
$ok = true;
|
525 |
}
|
526 |
|
527 |
if ( $ok ) {
|
528 |
+
self::$no_user_meta_shadow = $meta_key;
|
529 |
self::update_user_shadow( $user_id, null, array( $meta_key => $meta_value ) );
|
530 |
}
|
531 |
}
|
532 |
|
533 |
+
return true;
|
534 |
}
|
535 |
|
536 |
private static function is_meta_preserve( $meta_key = null ) {
|
564 |
return false;
|
565 |
}
|
566 |
|
567 |
+
static function get_shadow_user_meta( $user_id, $meta_key, $single ) {
|
568 |
|
569 |
+
if ( self::$no_user_meta_shadow == $meta_key
|
570 |
+
|| ( ( $conf = self::get_config( 1 ) ) && $conf[5] == $meta_key ) ) {
|
571 |
return false; // Skip use shadow meta (infinite loop protection)
|
572 |
}
|
573 |
|
589 |
* @return mixed The old value if update is not permitted
|
590 |
*/
|
591 |
static function setting_processor( &$value, $option, &$old_value ) {
|
592 |
+
global $cerber_act_status;
|
593 |
|
594 |
if ( empty( self::get_protected_settings()[3][ $option ] ) ) {
|
595 |
return $value;
|
616 |
$roles = crb_get_settings( 'ds_4opts_roles' );
|
617 |
|
618 |
if ( ! $roles || ! cerber_user_has_role( $roles ) ) {
|
619 |
+
$cerber_act_status = ( is_user_logged_in() ) ? 33 : 34;
|
620 |
cerber_log( 75 );
|
621 |
|
622 |
return $old_value;
|
628 |
}
|
629 |
|
630 |
static function role_processor( &$value, $option, &$old_value ) {
|
631 |
+
global $cerber_act_status;
|
632 |
|
633 |
if ( ! is_array( $value )
|
634 |
|| ( substr( $option, - 11 ) != '_user_roles' ) ) {
|
639 |
return $value;
|
640 |
}
|
641 |
|
642 |
+
$cerber_act_status = 0;
|
643 |
|
644 |
if ( ! self::role_update_permitted( $value, $old_value ) ) {
|
645 |
+
if ( ! $cerber_act_status ) {
|
646 |
+
$cerber_act_status = ( is_user_logged_in() ) ? 33 : 34;
|
647 |
}
|
648 |
cerber_log( 74 );
|
649 |
|
699 |
return true;
|
700 |
}
|
701 |
|
702 |
+
/*static function acc_update_permitted_by_ip() {
|
703 |
+
if ( crb_get_settings( 'ds_4acc_acl' ) && crb_acl_is_white() ) {
|
704 |
+
return true;
|
705 |
+
}
|
706 |
+
|
707 |
+
return false;
|
708 |
+
}*/
|
709 |
+
|
710 |
/**
|
711 |
* Install hooks for retrieving data of protected settings
|
712 |
*
|
894 |
return $data;
|
895 |
}, PHP_INT_MAX, 3 );
|
896 |
|
897 |
+
add_filter( 'update_user_metadata', function ( $var, $object_id, $meta_key, $meta_value ) {
|
898 |
// apply_filters( "update_{$meta_type}_metadata", null, $object_id, $meta_key, $meta_value, $prev_value );
|
899 |
|
900 |
+
$allowed = CRB_DS::update_user_meta( $object_id, $meta_key, $meta_value );
|
901 |
+
|
902 |
+
if ( ! $allowed ) {
|
903 |
+
return true;
|
904 |
+
}
|
905 |
|
906 |
+
return $var;
|
907 |
+
|
908 |
+
}, PHP_INT_MAX, 4 );
|
909 |
|
910 |
add_filter( 'get_user_metadata', function ( $var, $object_id, $meta_key, $single ) {
|
911 |
//$check = apply_filters( "get_{$meta_type}_metadata", null, $object_id, $meta_key, $single );
|
912 |
|
913 |
+
if ( $meta = CRB_DS::get_shadow_user_meta( $object_id, $meta_key, $single ) ) {
|
914 |
return $meta;
|
915 |
}
|
916 |
|
cerber-lab.php
CHANGED
@@ -35,14 +35,15 @@
|
|
35 |
// If this file is called directly, abort executing.
|
36 |
if ( ! defined( 'WPINC' ) ) { exit; }
|
37 |
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
|
|
46 |
|
47 |
/**
|
48 |
* Is IP blocked globally in Cerber Lab?
|
@@ -361,7 +362,7 @@ function lab_get_node( $node_id = null ) {
|
|
361 |
if ( ! $best_id ) {
|
362 |
if ( $nodes && ! empty( $nodes['best'] ) ) {
|
363 |
$best_id = $nodes['best'];
|
364 |
-
if (
|
365 |
unset( $nodes['nodes'][ $best_id ] );
|
366 |
$best_id = lab_best_node( $nodes['nodes'] );
|
367 |
}
|
@@ -499,15 +500,18 @@ function lab_status() {
|
|
499 |
ksort( $nodes['nodes'] );
|
500 |
|
501 |
foreach ( $nodes['nodes'] as $id => $node ) {
|
502 |
-
|
503 |
-
|
|
|
|
|
|
|
504 |
$status = $node['last'][1];
|
505 |
if ( $status ) {
|
506 |
$status = '<span style = "color:green;">' . $status . '</span>';
|
507 |
}
|
508 |
else {
|
509 |
$status = 'Down';
|
510 |
-
$delay
|
511 |
}
|
512 |
if ( $country = lab_get_country( $node['last'][5], false ) ) {
|
513 |
$country = cerber_country_name( $country );
|
@@ -581,7 +585,7 @@ function lab_is_cloud_ok(){
|
|
581 |
* @param $details
|
582 |
*/
|
583 |
function lab_save_push( $ip, $reason_id, $details = null ) {
|
584 |
-
global $
|
585 |
$ip = filter_var( $ip, FILTER_VALIDATE_IP );
|
586 |
if ( ! $ip || is_ip_private( $ip ) || crb_acl_is_white( $ip ) || ! ( crb_get_settings( 'cerberlab' ) || lab_lab() ) ) {
|
587 |
return;
|
@@ -592,7 +596,7 @@ function lab_save_push( $ip, $reason_id, $details = null ) {
|
|
592 |
$details = array( 'uri' => $_SERVER['REQUEST_URI'] );
|
593 |
}
|
594 |
elseif ( $reason_id == 100 ) {
|
595 |
-
$details = absint( $
|
596 |
}
|
597 |
|
598 |
if ( is_array( $details ) ) {
|
@@ -644,9 +648,7 @@ function lab_gen_site_id() {
|
|
644 |
$home = rtrim( trim( $home ), '/' );
|
645 |
$id = substr( $home, strpos( $home, '//' ) + 2 );
|
646 |
|
647 |
-
|
648 |
-
|
649 |
-
return $site_id;
|
650 |
}
|
651 |
|
652 |
/**
|
35 |
// If this file is called directly, abort executing.
|
36 |
if ( ! defined( 'WPINC' ) ) { exit; }
|
37 |
|
38 |
+
const LAB_NODE_MAX = 9; // Maximum node ID
|
39 |
+
const LAB_IGNORE_NODES = array( 8, 9 );
|
40 |
+
const LAB_DELAY_MAX = 2000; // milliseconds, reasonable maximum of processing time while connecting to a node
|
41 |
+
const LAB_RECHECK = 15 * 60; // seconds, allowed interval for rechecking nodes
|
42 |
+
const LAB_INTERVAL = 180; // seconds, push interval
|
43 |
+
const LAB_DNS_TTL = 3 * 24 * 3600; // seconds, interval of updating DNS cache for nodes IPs
|
44 |
+
const LAB_IP_OK = 100; // an ideal, the best possible reputation
|
45 |
+
const LAB_KEY_LENGTH = 32;
|
46 |
+
const LAB_LICENSE_GRACE = 3600 * 24 * 3;
|
47 |
|
48 |
/**
|
49 |
* Is IP blocked globally in Cerber Lab?
|
362 |
if ( ! $best_id ) {
|
363 |
if ( $nodes && ! empty( $nodes['best'] ) ) {
|
364 |
$best_id = $nodes['best'];
|
365 |
+
if ( empty( $nodes['nodes'][ $best_id ]['last'][1] ) ) { // this node was not active at the last request
|
366 |
unset( $nodes['nodes'][ $best_id ] );
|
367 |
$best_id = lab_best_node( $nodes['nodes'] );
|
368 |
}
|
500 |
ksort( $nodes['nodes'] );
|
501 |
|
502 |
foreach ( $nodes['nodes'] as $id => $node ) {
|
503 |
+
if ( in_array( $id, LAB_IGNORE_NODES ) ) {
|
504 |
+
continue;
|
505 |
+
}
|
506 |
+
$delay = round( 1000 * $node['last'][0] ) . ' ms';
|
507 |
+
$ago = cerber_ago_time( $node['last'][3] );
|
508 |
$status = $node['last'][1];
|
509 |
if ( $status ) {
|
510 |
$status = '<span style = "color:green;">' . $status . '</span>';
|
511 |
}
|
512 |
else {
|
513 |
$status = 'Down';
|
514 |
+
$delay = 'Unknown';
|
515 |
}
|
516 |
if ( $country = lab_get_country( $node['last'][5], false ) ) {
|
517 |
$country = cerber_country_name( $country );
|
585 |
* @param $details
|
586 |
*/
|
587 |
function lab_save_push( $ip, $reason_id, $details = null ) {
|
588 |
+
global $cerber_act_status;
|
589 |
$ip = filter_var( $ip, FILTER_VALIDATE_IP );
|
590 |
if ( ! $ip || is_ip_private( $ip ) || crb_acl_is_white( $ip ) || ! ( crb_get_settings( 'cerberlab' ) || lab_lab() ) ) {
|
591 |
return;
|
596 |
$details = array( 'uri' => $_SERVER['REQUEST_URI'] );
|
597 |
}
|
598 |
elseif ( $reason_id == 100 ) {
|
599 |
+
$details = absint( $cerber_act_status );
|
600 |
}
|
601 |
|
602 |
if ( is_array( $details ) ) {
|
648 |
$home = rtrim( trim( $home ), '/' );
|
649 |
$id = substr( $home, strpos( $home, '//' ) + 2 );
|
650 |
|
651 |
+
return md5( $id );
|
|
|
|
|
652 |
}
|
653 |
|
654 |
/**
|
cerber-load.php
CHANGED
@@ -36,47 +36,47 @@ if ( ! defined( 'WPINC' ) ) {
|
|
36 |
exit;
|
37 |
}
|
38 |
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
|
81 |
$dir = dirname( __FILE__ );
|
82 |
|
@@ -142,7 +142,7 @@ class WP_Cerber {
|
|
142 |
* @since 6.3.3
|
143 |
*/
|
144 |
final public function isURIProhibited() {
|
145 |
-
global $
|
146 |
|
147 |
if ( isset( $this->uri_prohibited ) ) {
|
148 |
return $this->uri_prohibited;
|
@@ -165,7 +165,7 @@ class WP_Cerber {
|
|
165 |
|| $script == WP_SIGNUP_SCRIPT
|
166 |
|| ( $script == WP_REG_URI && ! get_option( 'users_can_register' ) ) ) {
|
167 |
if ( !empty( $this->options['wplogin'] ) ) {
|
168 |
-
$
|
169 |
cerber_log( 50 );
|
170 |
cerber_soft_block_add( $this->remote_ip, 702, $script );
|
171 |
$this->uri_prohibited = true;
|
@@ -186,7 +186,7 @@ class WP_Cerber {
|
|
186 |
return true;
|
187 |
}
|
188 |
if ( !cerber_geo_allowed( 'geo_xmlrpc' ) ) {
|
189 |
-
$
|
190 |
cerber_log( 71 );
|
191 |
$this->uri_prohibited = true;
|
192 |
return true;
|
@@ -294,11 +294,6 @@ class WP_Cerber {
|
|
294 |
return $this->deny;
|
295 |
}
|
296 |
|
297 |
-
// TODO: replace it with cerber_get_remote_ip()
|
298 |
-
final public function getRemoteIp() {
|
299 |
-
return $this->remote_ip;
|
300 |
-
}
|
301 |
-
|
302 |
final public function getRequestID() {
|
303 |
return $this->session_id;
|
304 |
}
|
@@ -382,15 +377,6 @@ class WP_Cerber {
|
|
382 |
return $this->options;
|
383 |
}
|
384 |
|
385 |
-
/*
|
386 |
-
final public function isProhibited( $username ) {
|
387 |
-
if ( empty( $this->options['prohibited'] ) ) {
|
388 |
-
return false;
|
389 |
-
}
|
390 |
-
|
391 |
-
return in_array( $username, (array) $this->options['prohibited'] );
|
392 |
-
}*/
|
393 |
-
|
394 |
/**
|
395 |
* Adding reCAPTCHA widgets
|
396 |
*
|
@@ -829,7 +815,7 @@ function cerber_load_admin_code() {
|
|
829 |
*
|
830 |
*/
|
831 |
function cerber_extra_vision() {
|
832 |
-
global $cerber_logged, $
|
833 |
|
834 |
// Multiple different malicious activities
|
835 |
|
@@ -845,7 +831,7 @@ function cerber_extra_vision() {
|
|
845 |
$remain = cerber_get_remain_count( $ip, true, $black ); // @since 6.7.5
|
846 |
if ( $remain < 1 ) {
|
847 |
cerber_soft_block_add( $ip, 707 );
|
848 |
-
$
|
849 |
|
850 |
return true;
|
851 |
}
|
@@ -854,7 +840,7 @@ function cerber_extra_vision() {
|
|
854 |
$remain = cerber_get_remain_count( $ip, true, array( 400 ), 10, 30 );
|
855 |
if ( $remain < 1 ) {
|
856 |
cerber_block_add( $ip, 721 );
|
857 |
-
$
|
858 |
|
859 |
return true;
|
860 |
}
|
@@ -958,7 +944,7 @@ function cerber_auth_required( $allowed_url ) {
|
|
958 |
*/
|
959 |
add_action( 'login_head', 'cerber_login_head' );
|
960 |
function cerber_login_head() {
|
961 |
-
global $error
|
962 |
|
963 |
if ( !$allowed = cerber_is_ip_allowed() ) :
|
964 |
?>
|
@@ -970,6 +956,8 @@ function cerber_login_head() {
|
|
970 |
<?php
|
971 |
endif;
|
972 |
|
|
|
|
|
973 |
$wp_cerber->reCaptcha( 'style' );
|
974 |
|
975 |
if ( !cerber_is_http_get() ) {
|
@@ -1067,14 +1055,14 @@ function cerber_authenticate( $user, $username, $password ) {
|
|
1067 |
*/
|
1068 |
add_filter( 'wp_authenticate_user', function ( $user, $password ) {
|
1069 |
// former cerber_stop_authentication()
|
1070 |
-
global $
|
1071 |
|
1072 |
$deny = false;
|
1073 |
$user_msg = '';
|
1074 |
|
1075 |
if ( $b = crb_is_user_blocked( $user->ID ) ) {
|
1076 |
$user_msg = $b['blocked_msg'];
|
1077 |
-
$
|
1078 |
$deny = true;
|
1079 |
}
|
1080 |
elseif ( crb_acl_is_white() ) { // @since 8.2.2
|
@@ -1084,11 +1072,11 @@ add_filter( 'wp_authenticate_user', function ( $user, $password ) {
|
|
1084 |
$deny = true;
|
1085 |
}
|
1086 |
elseif ( ! cerber_geo_allowed( 'geo_login', $user ) ) {
|
1087 |
-
$
|
1088 |
$deny = true;
|
1089 |
}
|
1090 |
elseif ( lab_is_blocked( cerber_get_remote_ip() ) ) {
|
1091 |
-
$
|
1092 |
$deny = true;
|
1093 |
}
|
1094 |
|
@@ -1096,7 +1084,7 @@ add_filter( 'wp_authenticate_user', function ( $user, $password ) {
|
|
1096 |
status_header( 403 );
|
1097 |
$error = new WP_Error();
|
1098 |
if ( ! $user_msg ) {
|
1099 |
-
$user_msg =
|
1100 |
}
|
1101 |
$error->add( 'cerber_wp_error', $user_msg, array( 'user_id' => $user->ID ) );
|
1102 |
|
@@ -1107,8 +1095,8 @@ add_filter( 'wp_authenticate_user', function ( $user, $password ) {
|
|
1107 |
}, PHP_INT_MAX, 2 );
|
1108 |
|
1109 |
function crb_login_error( $username, $act = null, $status = null ) {
|
1110 |
-
global $
|
1111 |
-
$
|
1112 |
if ( $act ) {
|
1113 |
cerber_log( $act, $username );
|
1114 |
}
|
@@ -1189,7 +1177,7 @@ function cerber_login_history( $user_id ) {
|
|
1189 |
*/
|
1190 |
//add_action( 'wp_login_failed', 'cerber_login_failed' ); // @since 4.18
|
1191 |
function cerber_login_failed( $user_login, $user_id = 0 ) {
|
1192 |
-
global $
|
1193 |
static $is_processed = false;
|
1194 |
|
1195 |
if ( $is_processed ) return;
|
@@ -1211,9 +1199,9 @@ function cerber_login_failed( $user_login, $user_id = 0 ) {
|
|
1211 |
$ac = 51;
|
1212 |
}
|
1213 |
elseif ( ! cerber_is_ip_allowed( $ip )
|
1214 |
-
|| $
|
1215 |
-
|| $
|
1216 |
-
|| $
|
1217 |
$ac = 53;
|
1218 |
}
|
1219 |
|
@@ -1510,8 +1498,8 @@ function crb_redirect_by_policy( $user, $policy ) {
|
|
1510 |
}
|
1511 |
|
1512 |
function cerber_user_logout( $status = null ) {
|
1513 |
-
global $
|
1514 |
-
$
|
1515 |
|
1516 |
if ( $current_user instanceof WP_User ) {
|
1517 |
$uid = $current_user->ID;
|
@@ -1532,22 +1520,27 @@ function cerber_user_logout( $status = null ) {
|
|
1532 |
// Registration -----------------------------------------------------------------------
|
1533 |
|
1534 |
function cerber_is_registration_prohibited( $user_login, $user_email = '' ) {
|
1535 |
-
global $wp_cerber, $
|
1536 |
-
|
1537 |
-
/*
|
1538 |
-
if ( crb_acl_is_white() ) {
|
1539 |
-
return false;
|
1540 |
-
}*/
|
1541 |
|
1542 |
$code = null;
|
1543 |
$msg = null;
|
1544 |
|
1545 |
-
if (
|
1546 |
-
|
|
|
|
|
1547 |
cerber_log( 54 );
|
1548 |
$code = 'ip_denied';
|
1549 |
-
$msg
|
1550 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1551 |
}
|
1552 |
elseif ( cerber_is_bot( 'botsreg' ) ) {
|
1553 |
cerber_log( 54 ); // TODO should be separate code to detect bot activity?
|
@@ -1561,14 +1554,14 @@ function cerber_is_registration_prohibited( $user_login, $user_email = '' ) {
|
|
1561 |
$wp_cerber->reCaptchaMsg( 'register' );
|
1562 |
}
|
1563 |
elseif ( cerber_is_prohibited( $user_login ) ) {
|
1564 |
-
$
|
1565 |
cerber_log( 54 );
|
1566 |
$code = 'prohibited_login';
|
1567 |
$msg = '<strong>' . __( 'ERROR:', 'wp-cerber' ) . ' </strong>' .
|
1568 |
apply_filters( 'cerber_msg_prohibited', __( 'Username is not allowed. Please choose another one.', 'wp-cerber' ), 'register' );
|
1569 |
}
|
1570 |
elseif ( ! cerber_is_email_permited( $user_email ) ) {
|
1571 |
-
$
|
1572 |
cerber_log( 54 );
|
1573 |
$code = 'prohibited_email';
|
1574 |
$msg = '<strong>' . __( 'ERROR:', 'wp-cerber' ) . ' </strong>' .
|
@@ -1581,7 +1574,7 @@ function cerber_is_registration_prohibited( $user_login, $user_email = '' ) {
|
|
1581 |
apply_filters( 'cerber_msg_denied', __( 'You are not allowed to register.', 'wp-cerber' ), 'register' );
|
1582 |
}
|
1583 |
elseif ( ! cerber_geo_allowed( 'geo_register' ) ) {
|
1584 |
-
$
|
1585 |
cerber_log( 54 ); // TODO should be separate code?
|
1586 |
$code = 'country_denied';
|
1587 |
$msg = '<strong>' . __( 'ERROR:', 'wp-cerber' ) . ' </strong>' .
|
@@ -1623,6 +1616,8 @@ function cerber_is_email_permited( $email ) {
|
|
1623 |
return true;
|
1624 |
}
|
1625 |
|
|
|
|
|
1626 |
foreach ( $list as $item ) {
|
1627 |
if ( $item[0] == '/' && substr( $item, - 1 ) == '/' ) {
|
1628 |
$pattern = $item . 'i'; // we permit to specify any REGEX
|
@@ -1631,7 +1626,6 @@ function cerber_is_email_permited( $email ) {
|
|
1631 |
}
|
1632 |
}
|
1633 |
elseif ( false !== strpos( $item, '*' ) ) {
|
1634 |
-
//$wildcard = '[\w\-\.@]+?';
|
1635 |
$wildcard = '.+?';
|
1636 |
$pattern = '/^' . str_replace( array( '.', '*' ), array( '\.', $wildcard ), $item ) . '$/i';
|
1637 |
if ( @preg_match( $pattern, $email ) ) {
|
@@ -1735,6 +1729,11 @@ add_filter( 'option_users_can_register', function ( $value ) {
|
|
1735 |
if ( ! cerber_is_ip_allowed() || crb_is_reg_limit_reached() ) {
|
1736 |
return false;
|
1737 |
}
|
|
|
|
|
|
|
|
|
|
|
1738 |
|
1739 |
return $value;
|
1740 |
}, PHP_INT_MAX );
|
@@ -1789,7 +1788,7 @@ add_filter( 'pre_comment_approved', function ( $approved, $commentdata ) {
|
|
1789 |
*
|
1790 |
*/
|
1791 |
add_action( 'pre_comment_on_post', function ( $comment_post_ID ) {
|
1792 |
-
global $
|
1793 |
|
1794 |
$deny = false;
|
1795 |
|
@@ -1797,7 +1796,7 @@ add_action( 'pre_comment_on_post', function ( $comment_post_ID ) {
|
|
1797 |
$deny = true;
|
1798 |
}
|
1799 |
elseif ( ! cerber_geo_allowed( 'geo_comment' ) ) {
|
1800 |
-
$
|
1801 |
cerber_log(19);
|
1802 |
$deny = true;
|
1803 |
}
|
@@ -1821,14 +1820,14 @@ add_action( 'pre_comment_on_post', function ( $comment_post_ID ) {
|
|
1821 |
*
|
1822 |
*/
|
1823 |
add_filter( 'rest_allow_anonymous_comments', function ( $allowed, $request ) {
|
1824 |
-
global $
|
1825 |
|
1826 |
if ( ! cerber_is_ip_allowed() ) {
|
1827 |
$allowed = false;
|
1828 |
}
|
1829 |
if ( ! cerber_geo_allowed( 'geo_comment' ) ) {
|
1830 |
cerber_log(19);
|
1831 |
-
$
|
1832 |
$allowed = false;
|
1833 |
}
|
1834 |
elseif ( lab_is_blocked( cerber_get_remote_ip() ) ) {
|
@@ -1907,12 +1906,14 @@ add_filter( 'comment_form_submit_field', function ( $value ) {
|
|
1907 |
*/
|
1908 |
add_filter( 'login_errors', 'cerber_login_form_msg' ); // hook on POST if credentials was wrong
|
1909 |
function cerber_login_form_msg( $errors ) {
|
1910 |
-
global $error
|
|
|
1911 |
if ( cerber_can_msg() ) {
|
|
|
1912 |
if ( ! cerber_is_ip_allowed() ) {
|
1913 |
$errors = $wp_cerber->getErrorMsg();
|
1914 |
}
|
1915 |
-
|
1916 |
$errors .= '<p>' . $msg;
|
1917 |
}
|
1918 |
}
|
@@ -1987,7 +1988,7 @@ add_action( 'init', function () {
|
|
1987 |
*
|
1988 |
*/
|
1989 |
function cerber_access_control() {
|
1990 |
-
global $wp_cerber, $
|
1991 |
|
1992 |
if ( crb_acl_is_white() ) {
|
1993 |
return;
|
@@ -2007,26 +2008,13 @@ function cerber_access_control() {
|
|
2007 |
elseif ( cerber_is_rest_url() ) {
|
2008 |
$rest_allowed = true;
|
2009 |
|
2010 |
-
/*if ( ! empty( $opt['norest'] ) ) {
|
2011 |
-
$rest_allowed = false;
|
2012 |
-
if ( $opt['restauth'] && is_user_logged_in() ) {
|
2013 |
-
$rest_allowed = true;
|
2014 |
-
}
|
2015 |
-
elseif ( cerber_is_route_allowed() ) {
|
2016 |
-
$rest_allowed = true;
|
2017 |
-
}
|
2018 |
-
}
|
2019 |
-
if ( $rest_allowed && cerber_is_route_blocked() ) {
|
2020 |
-
$rest_allowed = false;
|
2021 |
-
}*/
|
2022 |
-
|
2023 |
if ( ! cerber_is_rest_permitted() ) {
|
2024 |
$rest_allowed = false;
|
2025 |
}
|
2026 |
|
2027 |
if ( $rest_allowed && ! cerber_geo_allowed( 'geo_restapi' ) ) {
|
2028 |
$rest_allowed = false;
|
2029 |
-
$
|
2030 |
}
|
2031 |
|
2032 |
if ( ! $rest_allowed ) {
|
@@ -2091,7 +2079,7 @@ function cerber_auth_access() {
|
|
2091 |
*
|
2092 |
*/
|
2093 |
function cerber_post_control() {
|
2094 |
-
global $
|
2095 |
|
2096 |
if ( ! cerber_is_http_post() || crb_acl_is_white() ) {
|
2097 |
return;
|
@@ -2121,12 +2109,12 @@ function cerber_post_control() {
|
|
2121 |
}
|
2122 |
elseif ( ! cerber_geo_allowed( 'geo_submit' ) ) {
|
2123 |
$deny = true;
|
2124 |
-
$
|
2125 |
cerber_log( 18 );
|
2126 |
}
|
2127 |
elseif ( lab_is_blocked( null, true ) ) {
|
2128 |
$deny = true;
|
2129 |
-
$
|
2130 |
cerber_log( 18 );
|
2131 |
}
|
2132 |
|
@@ -2610,7 +2598,7 @@ function cerber_antibot_gene($recreate = false) {
|
|
2610 |
* @return bool
|
2611 |
*/
|
2612 |
function cerber_is_bot( $location = '' ) {
|
2613 |
-
global $
|
2614 |
static $ret = null;
|
2615 |
|
2616 |
$remote_ip = cerber_get_remote_ip();
|
@@ -2704,7 +2692,7 @@ function cerber_is_bot( $location = '' ) {
|
|
2704 |
}
|
2705 |
|
2706 |
if ( $ret ) {
|
2707 |
-
$
|
2708 |
lab_save_push( $remote_ip, 333 );
|
2709 |
}
|
2710 |
}
|
@@ -3046,13 +3034,13 @@ function cerber_block_add( $ip_address = '', $reason_id = 1, $details = '', $dur
|
|
3046 |
* @return bool true if IP is locked out
|
3047 |
*/
|
3048 |
function cerber_block_check( $ip = '' ) {
|
|
|
3049 |
|
3050 |
-
|
3051 |
-
|
3052 |
-
return true;
|
3053 |
}
|
3054 |
|
3055 |
-
return
|
3056 |
}
|
3057 |
|
3058 |
/**
|
@@ -3202,7 +3190,7 @@ function cerber_get_remain_count( $ip = '', $check_acl = true, $activity = array
|
|
3202 |
* @return bool
|
3203 |
*/
|
3204 |
function cerber_is_ip_allowed( $ip = '', $context = null ) {
|
3205 |
-
global $
|
3206 |
|
3207 |
if ( ! $ip ) {
|
3208 |
$ip = cerber_get_remote_ip();
|
@@ -3216,24 +3204,24 @@ function cerber_is_ip_allowed( $ip = '', $context = null ) {
|
|
3216 |
return true;
|
3217 |
}
|
3218 |
if ( $tag == 'B' ) {
|
3219 |
-
$
|
3220 |
return false;
|
3221 |
}
|
3222 |
|
3223 |
if ( $b = cerber_get_block( $ip ) ) {
|
3224 |
if ( ! in_array( $b->reason_id, crb_context_get_allowed( $context ) ) ) {
|
3225 |
-
$
|
3226 |
return false;
|
3227 |
}
|
3228 |
}
|
3229 |
|
3230 |
if ( $context != CRB_CNTX_NEXUS && cerber_is_citadel() ) {
|
3231 |
-
$
|
3232 |
return false;
|
3233 |
}
|
3234 |
|
3235 |
if ( lab_is_blocked( $ip, false ) ) {
|
3236 |
-
$
|
3237 |
return false;
|
3238 |
}
|
3239 |
|
@@ -3267,6 +3255,8 @@ function cerber_is_prohibited( $username ) {
|
|
3267 |
return false;
|
3268 |
}
|
3269 |
|
|
|
|
|
3270 |
if ( $list = (array) crb_get_settings( 'prohibited' ) ) {
|
3271 |
foreach ( $list as $item ) {
|
3272 |
if ( mb_substr( $item, 0, 1 ) == '/' && mb_substr( $item, - 1 ) == '/' ) {
|
@@ -3275,7 +3265,7 @@ function cerber_is_prohibited( $username ) {
|
|
3275 |
return true;
|
3276 |
}
|
3277 |
}
|
3278 |
-
|
3279 |
return true;
|
3280 |
}
|
3281 |
}
|
@@ -3286,10 +3276,10 @@ function cerber_is_prohibited( $username ) {
|
|
3286 |
|
3287 |
// TODO: Merge with $wp_cerber->getStatus();
|
3288 |
function cerber_get_status( $ip, $activity = null ) {
|
3289 |
-
global $
|
3290 |
|
3291 |
-
if ( ! empty( $
|
3292 |
-
return absint( $
|
3293 |
}
|
3294 |
|
3295 |
if ( cerber_block_check( $ip ) ) {
|
@@ -3301,6 +3291,12 @@ function cerber_get_status( $ip, $activity = null ) {
|
|
3301 |
if ( in_array( $activity, array( 1, 2, 5, 20, 21 ) ) ) {
|
3302 |
return 500;
|
3303 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
3304 |
|
3305 |
return 0;
|
3306 |
}
|
@@ -3364,11 +3360,14 @@ function crb_acl_is_black( $ip = '' ) {
|
|
3364 |
* @param string $ip
|
3365 |
* @param string $tag
|
3366 |
* @param int $acl_slice
|
|
|
|
|
|
|
3367 |
*
|
3368 |
* @return bool|string
|
3369 |
*/
|
3370 |
-
function cerber_acl_check( $ip = null, $tag = '', $acl_slice = 0 ) {
|
3371 |
-
static $cache;
|
3372 |
|
3373 |
if ( ! $ip ) {
|
3374 |
$ip = cerber_get_remote_ip();
|
@@ -3377,12 +3376,15 @@ function cerber_acl_check( $ip = null, $tag = '', $acl_slice = 0 ) {
|
|
3377 |
$key = cerber_get_id_ip( $ip ) . (string) $tag;
|
3378 |
|
3379 |
if ( isset( $cache[ $key ] ) ) {
|
|
|
3380 |
return $cache[ $key ];
|
3381 |
}
|
3382 |
|
3383 |
if ( cerber_is_ipv6( $ip ) ) {
|
3384 |
-
$ret
|
3385 |
$cache[ $key ] = $ret;
|
|
|
|
|
3386 |
|
3387 |
return $ret;
|
3388 |
}
|
@@ -3394,7 +3396,8 @@ function cerber_acl_check( $ip = null, $tag = '', $acl_slice = 0 ) {
|
|
3394 |
if ( $tag !== 'W' && $tag !== 'B' ) {
|
3395 |
$ret = false;
|
3396 |
}
|
3397 |
-
elseif ( cerber_db_get_var( 'SELECT ip FROM ' . CERBER_ACL_TABLE . ' WHERE acl_slice = ' . $acl_slice . ' AND ver6 = 0 AND ip_long_begin <= ' . $long . ' AND ' . $long . ' <= ip_long_end AND tag = "' . $tag . '" LIMIT 1' ) ) {
|
|
|
3398 |
$ret = true;
|
3399 |
}
|
3400 |
else {
|
@@ -3402,20 +3405,26 @@ function cerber_acl_check( $ip = null, $tag = '', $acl_slice = 0 ) {
|
|
3402 |
}
|
3403 |
|
3404 |
$cache[ $key ] = $ret;
|
|
|
3405 |
return $ret;
|
3406 |
}
|
3407 |
else {
|
3408 |
// We use two queries because of possible overlapping an IP and its network
|
3409 |
-
if ( $ret = cerber_db_get_var( 'SELECT tag FROM ' . CERBER_ACL_TABLE . ' WHERE acl_slice = ' . $acl_slice . ' AND ver6 = 0 AND ip_long_begin <= ' . $long . ' AND ' . $long . ' <= ip_long_end AND tag = "W" LIMIT 1' ) ) {
|
3410 |
-
|
3411 |
-
|
|
|
|
|
3412 |
}
|
3413 |
-
if ( $ret = cerber_db_get_var( 'SELECT tag FROM ' . CERBER_ACL_TABLE . ' WHERE acl_slice = ' . $acl_slice . ' AND ver6 = 0 AND ip_long_begin <= ' . $long . ' AND ' . $long . ' <= ip_long_end AND tag = "B" LIMIT 1' ) ) {
|
3414 |
-
|
3415 |
-
|
|
|
|
|
3416 |
}
|
3417 |
|
3418 |
$cache[ $key ] = false;
|
|
|
3419 |
return false;
|
3420 |
}
|
3421 |
}
|
@@ -3426,10 +3435,11 @@ function cerber_acl_check( $ip = null, $tag = '', $acl_slice = 0 ) {
|
|
3426 |
* @param string $ip
|
3427 |
* @param string $tag
|
3428 |
* @param int $acl_slice
|
|
|
3429 |
*
|
3430 |
* @return bool|null|string
|
3431 |
*/
|
3432 |
-
function cerber_ipv6_acl_check( $ip, $tag = '', $acl_slice = 0 ) {
|
3433 |
|
3434 |
if ( ! $ip ) {
|
3435 |
$ip = cerber_get_remote_ip();
|
@@ -3444,22 +3454,38 @@ function cerber_ipv6_acl_check( $ip, $tag = '', $acl_slice = 0 ) {
|
|
3444 |
return false;
|
3445 |
}
|
3446 |
|
3447 |
-
|
3448 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3449 |
}
|
3450 |
|
3451 |
-
if ( ! crb_ipv6_is_in_range_list( $d1, $d2, $list ) ) {
|
3452 |
return false;
|
3453 |
}
|
3454 |
|
|
|
|
|
3455 |
return true;
|
3456 |
}
|
3457 |
else {
|
3458 |
-
if ( ! $
|
3459 |
return false;
|
3460 |
}
|
3461 |
|
3462 |
-
|
|
|
|
|
|
|
|
|
3463 |
}
|
3464 |
}
|
3465 |
|
@@ -3484,12 +3510,13 @@ function crb_ipv6_is_in_range( $ip, $range ) {
|
|
3484 |
* @param int $d1
|
3485 |
* @param int $d2
|
3486 |
* @param array $list
|
|
|
3487 |
*
|
3488 |
* @return bool
|
3489 |
*/
|
3490 |
-
function crb_ipv6_is_in_range_list( $d1, $d2, &$list ) {
|
3491 |
|
3492 |
-
foreach ( $list as $v6range ) {
|
3493 |
list( $begin1, $begin2, $end1, $end2 ) = explode( '#', $v6range, 4 );
|
3494 |
if ( crb_compare_numbers( $d1, $d2, $begin1, $begin2 )
|
3495 |
&& crb_compare_numbers( $end1, $end2, $d1, $d2 ) ) {
|
@@ -3506,13 +3533,14 @@ function crb_ipv6_is_in_range_list( $d1, $d2, &$list ) {
|
|
3506 |
* @param $d1
|
3507 |
* @param $d2
|
3508 |
* @param $v6rows
|
|
|
3509 |
*
|
3510 |
* @return bool|string false if IP is not in any list, 'B' if is in the black, 'W' if is in the white
|
3511 |
*/
|
3512 |
-
function crb_ipv6_get_tag( $d1, $d2, &$v6rows ) {
|
3513 |
$black = false;
|
3514 |
|
3515 |
-
foreach ( $v6rows as $row ) {
|
3516 |
if ( $black && ( $row['tag'] == 'B' ) ) {
|
3517 |
continue;
|
3518 |
}
|
@@ -3681,7 +3709,7 @@ function cerber_parse_ip_range( $string ) {
|
|
3681 |
$begin = ip2long( $begin_ip );
|
3682 |
$end = ip2long( $end_ip );
|
3683 |
|
3684 |
-
if ( $begin
|
3685 |
return false;
|
3686 |
}
|
3687 |
|
@@ -3774,10 +3802,17 @@ function cerber_cidr2range( $cidr = '' ) {
|
|
3774 |
if ( ! is_numeric( $mask ) ) {
|
3775 |
return false;
|
3776 |
}
|
3777 |
-
$begin = long2ip( ( ip2long( $net ) ) & ( ( - 1 << ( 32 - (int) $mask ) ) ) );
|
3778 |
-
$end = long2ip( ( ip2long( $net ) ) + pow( 2, ( 32 - (int) $mask ) ) - 1 );
|
3779 |
|
3780 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3781 |
}
|
3782 |
|
3783 |
/**
|
@@ -4259,7 +4294,7 @@ function cerber_send_email( $type = '', $msg = '', $ip = '' ) {
|
|
4259 |
$body .= 'https://wpcerber.com/cloudflare-and-wordpress-cerber/' . "\n\n";
|
4260 |
$body .= 'Be in touch with the developer.' . "\n\n";
|
4261 |
$body .= 'Follow Cerber on Twitter: https://twitter.com/wpcerber' . "\n\n";
|
4262 |
-
$body .=
|
4263 |
break;
|
4264 |
case 'newlurl':
|
4265 |
$subj .= __( 'New Custom login URL', 'wp-cerber' );
|
@@ -4319,7 +4354,7 @@ function cerber_send_email( $type = '', $msg = '', $ip = '' ) {
|
|
4319 |
$footer .= "\n\n" . __( 'Your license is valid until', 'wp-cerber' ) . ' ' . $date;
|
4320 |
}
|
4321 |
|
4322 |
-
$footer .= "\n\n\n" . __( 'This message was sent by', 'wp-cerber' ) . ' WP Cerber Security ' . CERBER_VER . "\n";
|
4323 |
$footer .= 'https://wpcerber.com';
|
4324 |
|
4325 |
if ( $html_mode ) {
|
@@ -4689,7 +4724,10 @@ add_action( 'cerber_bg_launcher', function () {
|
|
4689 |
}
|
4690 |
|
4691 |
if ( ! wp_next_scheduled( 'cerber_daily' ) ) {
|
4692 |
-
|
|
|
|
|
|
|
4693 |
}
|
4694 |
|
4695 |
define( 'CRB_DOING_BG_TASK', 1 );
|
@@ -5278,7 +5316,7 @@ register_activation_hook( cerber_plugin_file(), function () {
|
|
5278 |
|
5279 |
crb_x_update_add_on_list();
|
5280 |
|
5281 |
-
|
5282 |
|
5283 |
$msg =
|
5284 |
'<h2>' . __( 'WP Cerber is now active and has started protecting your site', 'wp-cerber' ) . '</h2>'
|
@@ -5383,7 +5421,9 @@ function cerber_upgrade_all( $force = false ) {
|
|
5383 |
cerber_push_the_news();
|
5384 |
cerber_delete_expired_set( true );
|
5385 |
CRB_Cache::reset();
|
5386 |
-
|
|
|
|
|
5387 |
|
5388 |
lab_get_key( true );
|
5389 |
$cerber_doing_upgrade = false;
|
@@ -5986,7 +6026,7 @@ register_shutdown_function( function () {
|
|
5986 |
} );
|
5987 |
|
5988 |
function cerber_error_shield( $mode = 1 ) {
|
5989 |
-
global $
|
5990 |
|
5991 |
require_once( ABSPATH . WPINC . '/pluggable.php' ); // @since 8.5 for is_user_logged_in()
|
5992 |
|
@@ -6047,7 +6087,7 @@ function cerber_error_shield( $mode = 1 ) {
|
|
6047 |
$c = cerber_db_get_var( 'SELECT COUNT(ip) FROM ' . CERBER_QMEM_TABLE . ' WHERE ip = "' . $ip . '" AND stamp > ' . $t );
|
6048 |
if ( $c >= $limit ) {
|
6049 |
cerber_soft_block_add( $ip, 711 );
|
6050 |
-
$
|
6051 |
}
|
6052 |
}
|
6053 |
|
@@ -6189,12 +6229,14 @@ function cerber_traffic_log(){
|
|
6189 |
if ( ! empty( $_FILES ) ) {
|
6190 |
$fields[3] = $_FILES;
|
6191 |
}
|
|
|
6192 |
if ( ! empty( $fields ) ) {
|
6193 |
$fields = serialize( $fields );
|
6194 |
}
|
6195 |
else {
|
6196 |
$fields = '';
|
6197 |
}
|
|
|
6198 |
}
|
6199 |
|
6200 |
// Extra request details
|
@@ -6248,16 +6290,13 @@ function cerber_traffic_log(){
|
|
6248 |
if ( crb_get_settings( 'tiphperr' ) ) {
|
6249 |
if ( $cerber_php_errors && is_array( $cerber_php_errors ) ) {
|
6250 |
//$err_not = array( E_NOTICE, E_WARNING );
|
6251 |
-
$
|
6252 |
-
|
6253 |
-
|
6254 |
-
|
6255 |
-
|
6256 |
-
|
6257 |
-
|
6258 |
-
}
|
6259 |
-
if ( $i > 25 ) { // Save no more errors
|
6260 |
-
break;
|
6261 |
}
|
6262 |
}
|
6263 |
if ( $cerber_php_errors ) {
|
@@ -6280,9 +6319,14 @@ function cerber_traffic_log(){
|
|
6280 |
|
6281 |
$uri = cerber_real_escape( $uri );
|
6282 |
$details = cerber_real_escape( $details );
|
6283 |
-
$fields = ( $
|
6284 |
$php_err = ( $php_err ) ? cerber_real_escape( $php_err ) : '';
|
6285 |
-
|
|
|
|
|
|
|
|
|
|
|
6286 |
|
6287 |
$query = 'INSERT INTO ' . CERBER_TRAF_TABLE . '
|
6288 |
(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, req_status )
|
@@ -6451,7 +6495,7 @@ function cerber_log_exceptions() {
|
|
6451 |
* @since 6.0
|
6452 |
*/
|
6453 |
function cerber_mask_fields( $fields ) {
|
6454 |
-
$to_mask = array( 'pwd', 'pass', 'password', 'password_1', 'password_2', 'cerber-cloud-key' );
|
6455 |
if ( $list = (array) crb_get_settings( 'timask' ) ) {
|
6456 |
$to_mask = array_merge( $to_mask, $list );
|
6457 |
}
|
@@ -6564,7 +6608,7 @@ function cerber_get_non_wp_fields() {
|
|
6564 |
* @since 6.0
|
6565 |
*/
|
6566 |
function cerber_beast() {
|
6567 |
-
global $
|
6568 |
|
6569 |
if ( is_admin()
|
6570 |
|| cerber_is_wp_cron()
|
@@ -6625,7 +6669,7 @@ function cerber_beast() {
|
|
6625 |
if ( $uri_script && $script_filename = cerber_script_filename() ) { // @since 8.6.3.4
|
6626 |
// Scanning for executable scripts?
|
6627 |
if ( ! cerber_script_exists( $uri ) && ! cerber_is_login_request() ) {
|
6628 |
-
$
|
6629 |
cerber_log( 55 );
|
6630 |
if ( $ti_mode > 1 ) {
|
6631 |
cerber_soft_block_add( null, 708 );
|
@@ -6636,17 +6680,17 @@ function cerber_beast() {
|
|
6636 |
$deny = false;
|
6637 |
if ( crb_acl_is_black() ) {
|
6638 |
$deny = true;
|
6639 |
-
$
|
6640 |
}
|
6641 |
//elseif ( ! in_array( $uri_script, cerber_get_wp_scripts() ) ) {
|
6642 |
elseif ( ! CRB_Request::is_script( cerber_get_wp_scripts() ) ) {
|
6643 |
if ( ! cerber_is_ip_allowed() ) {
|
6644 |
$deny = true;
|
6645 |
-
$
|
6646 |
}
|
6647 |
elseif ( lab_is_blocked( null, true ) ) {
|
6648 |
$deny = true;
|
6649 |
-
$
|
6650 |
}
|
6651 |
}
|
6652 |
if ( $deny ) {
|
@@ -6701,7 +6745,7 @@ function cerber_screen_request_fields(){
|
|
6701 |
* @return bool|int
|
6702 |
*/
|
6703 |
function cerber_inspect_array( &$array, $white = array() ) {
|
6704 |
-
global $
|
6705 |
static $rec_limit = null;
|
6706 |
|
6707 |
if ( ! $array ) {
|
@@ -6715,7 +6759,7 @@ function cerber_inspect_array( &$array, $white = array() ) {
|
|
6715 |
$rec_limit --;
|
6716 |
if ( $rec_limit <= 0 ) {
|
6717 |
$rec_limit = null;
|
6718 |
-
$
|
6719 |
|
6720 |
return 100;
|
6721 |
}
|
@@ -6742,7 +6786,7 @@ function cerber_inspect_array( &$array, $white = array() ) {
|
|
6742 |
}
|
6743 |
|
6744 |
function cerber_inspect_value( &$value = '', $reset = false ) {
|
6745 |
-
global $
|
6746 |
static $rec_limit = null; // Real recursion limit
|
6747 |
|
6748 |
if ( ! $value || is_numeric( $value ) ) {
|
@@ -6760,7 +6804,7 @@ function cerber_inspect_value( &$value = '', $reset = false ) {
|
|
6760 |
$rec_limit --;
|
6761 |
if ( $rec_limit <= 0 ) {
|
6762 |
$rec_limit = null;
|
6763 |
-
$
|
6764 |
|
6765 |
return 100;
|
6766 |
}
|
@@ -6774,7 +6818,7 @@ function cerber_inspect_value( &$value = '', $reset = false ) {
|
|
6774 |
else {
|
6775 |
$parsed = cerber_detect_php_code( $value );
|
6776 |
if ( ! empty( $parsed[0] ) ) {
|
6777 |
-
$
|
6778 |
$found = 100;
|
6779 |
}
|
6780 |
elseif ( ! empty( $parsed[1] ) ) {
|
@@ -6786,11 +6830,11 @@ function cerber_inspect_value( &$value = '', $reset = false ) {
|
|
6786 |
}
|
6787 |
}
|
6788 |
if ( ! $found && cerber_detect_other_code( $value ) ) {
|
6789 |
-
$
|
6790 |
$found = 100;
|
6791 |
}
|
6792 |
if ( ! $found && cerber_detect_js_code( $value ) ) {
|
6793 |
-
$
|
6794 |
$found = 100;
|
6795 |
}
|
6796 |
}
|
@@ -7148,7 +7192,7 @@ function cerber_push_the_news() {
|
|
7148 |
if ( ! defined( 'CRB_JUST_MARRIED' )
|
7149 |
&& ( ( ! $ac = cerber_get_set( '_activated' ) ) || ( crb_array_get( $ac, 'time' ) < ( time() - 30 * DAY_IN_SECONDS ) ) )
|
7150 |
&& ! lab_lab() ) {
|
7151 |
-
$text .= ' <h2 style="margin-top: 28px;">Cerber needs your
|
7152 |
<p style="margin-top: 20px;">
|
7153 |
By sharing your unique opinion on WP Cerber, you will help the engineers behind the plugin make greater progress and help other professionals find the right software. You can leave your review on one of the following websites. No needs to use English. Feel free to use your native language. Thanks!
|
7154 |
</p>
|
@@ -7156,7 +7200,7 @@ function cerber_push_the_news() {
|
|
7156 |
|
7157 |
<p><a href="https://www.trustpilot.com/review/wpcerber.com" target="_blank">Trustpilot</a> /
|
7158 |
<a href="https://www.g2crowd.com/products/cerber-security-antispam-malware-scan/" target="_blank">G2.COM</a> /
|
7159 |
-
<a href="https://reviews.capterra.com/new/187653" target="_blank">Capterra</a></p>
|
7160 |
|
7161 |
<!--<p><a href="https://www.trustpilot.com/review/wpcerber.com" target="_blank">Trustpilot</a></p>
|
7162 |
<p><a href="https://www.g2crowd.com/products/cerber-security-antispam-malware-scan/" target="_blank">G2.COM</a></p>
|
36 |
exit;
|
37 |
}
|
38 |
|
39 |
+
const CERBER_LOG_TABLE = 'cerber_log';
|
40 |
+
const CERBER_QMEM_TABLE = 'cerber_qmem';
|
41 |
+
const CERBER_TRAF_TABLE = 'cerber_traffic';
|
42 |
+
const CERBER_ACL_TABLE = 'cerber_acl';
|
43 |
+
const CERBER_BLOCKS_TABLE = 'cerber_blocks';
|
44 |
+
const CERBER_LAB_TABLE = 'cerber_lab';
|
45 |
+
const CERBER_LAB_IP_TABLE = 'cerber_lab_ip';
|
46 |
+
const CERBER_LAB_NET_TABLE = 'cerber_lab_net';
|
47 |
+
const CERBER_GEO_TABLE = 'cerber_countries';
|
48 |
+
const CERBER_SCAN_TABLE = 'cerber_files';
|
49 |
+
const CERBER_SETS_TABLE = 'cerber_sets';
|
50 |
+
const CERBER_MS_TABLE = 'cerber_ms';
|
51 |
+
const CERBER_MS_LIST_TABLE = 'cerber_ms_lists';
|
52 |
+
const CERBER_USS_TABLE = 'cerber_uss';
|
53 |
+
|
54 |
+
const CERBER_BUKEY = '_crb_blocked';
|
55 |
+
const CERBER_PREFIX = '_cerber_';
|
56 |
+
const CERBER_MARKER1 = 'WP CERBER GROOVE';
|
57 |
+
const CERBER_MARKER2 = 'WP CERBER CLAMPS';
|
58 |
+
const CERBER_NO_REMOTE_IP = '0.0.0.0';
|
59 |
+
|
60 |
+
const WP_LOGIN_SCRIPT = 'wp-login.php';
|
61 |
+
const WP_REG_URI = 'wp-register.php';
|
62 |
+
const WP_SIGNUP_SCRIPT = 'wp-signup.php';
|
63 |
+
const WP_XMLRPC_SCRIPT = 'xmlrpc.php';
|
64 |
+
const WP_TRACKBACK_SCRIPT = 'wp-trackback.php';
|
65 |
+
const WP_PING_SCRIPT = 'wp-trackback.php';
|
66 |
+
const WP_COMMENT_SCRIPT = 'wp-comments-post.php';
|
67 |
+
|
68 |
+
const GOO_RECAPTCHA_URL = 'https://www.google.com/recaptcha/api/siteverify';
|
69 |
+
|
70 |
+
const CERBER_REQ_PHP = '5.6';
|
71 |
+
const CERBER_REQ_WP = '4.9';
|
72 |
+
const CERBER_TECH = 'https://cerber.tech/';
|
73 |
+
|
74 |
+
const CERBER_CIREC_LIMIT = 30; // Upper limit for allowed nested values during inspection for malware
|
75 |
+
|
76 |
+
const CERBER_AGGRESSIVE = 1;
|
77 |
+
|
78 |
+
const CRB_CNTX_SAFE = 1;
|
79 |
+
const CRB_CNTX_NEXUS = 2;
|
80 |
|
81 |
$dir = dirname( __FILE__ );
|
82 |
|
142 |
* @since 6.3.3
|
143 |
*/
|
144 |
final public function isURIProhibited() {
|
145 |
+
global $cerber_act_status;
|
146 |
|
147 |
if ( isset( $this->uri_prohibited ) ) {
|
148 |
return $this->uri_prohibited;
|
165 |
|| $script == WP_SIGNUP_SCRIPT
|
166 |
|| ( $script == WP_REG_URI && ! get_option( 'users_can_register' ) ) ) {
|
167 |
if ( !empty( $this->options['wplogin'] ) ) {
|
168 |
+
$cerber_act_status = 19;
|
169 |
cerber_log( 50 );
|
170 |
cerber_soft_block_add( $this->remote_ip, 702, $script );
|
171 |
$this->uri_prohibited = true;
|
186 |
return true;
|
187 |
}
|
188 |
if ( !cerber_geo_allowed( 'geo_xmlrpc' ) ) {
|
189 |
+
$cerber_act_status = 16;
|
190 |
cerber_log( 71 );
|
191 |
$this->uri_prohibited = true;
|
192 |
return true;
|
294 |
return $this->deny;
|
295 |
}
|
296 |
|
|
|
|
|
|
|
|
|
|
|
297 |
final public function getRequestID() {
|
298 |
return $this->session_id;
|
299 |
}
|
377 |
return $this->options;
|
378 |
}
|
379 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
380 |
/**
|
381 |
* Adding reCAPTCHA widgets
|
382 |
*
|
815 |
*
|
816 |
*/
|
817 |
function cerber_extra_vision() {
|
818 |
+
global $cerber_logged, $cerber_act_status;
|
819 |
|
820 |
// Multiple different malicious activities
|
821 |
|
831 |
$remain = cerber_get_remain_count( $ip, true, $black ); // @since 6.7.5
|
832 |
if ( $remain < 1 ) {
|
833 |
cerber_soft_block_add( $ip, 707 );
|
834 |
+
$cerber_act_status = 18;
|
835 |
|
836 |
return true;
|
837 |
}
|
840 |
$remain = cerber_get_remain_count( $ip, true, array( 400 ), 10, 30 );
|
841 |
if ( $remain < 1 ) {
|
842 |
cerber_block_add( $ip, 721 );
|
843 |
+
$cerber_act_status = 18;
|
844 |
|
845 |
return true;
|
846 |
}
|
944 |
*/
|
945 |
add_action( 'login_head', 'cerber_login_head' );
|
946 |
function cerber_login_head() {
|
947 |
+
global $error;
|
948 |
|
949 |
if ( !$allowed = cerber_is_ip_allowed() ) :
|
950 |
?>
|
956 |
<?php
|
957 |
endif;
|
958 |
|
959 |
+
$wp_cerber = get_wp_cerber();
|
960 |
+
|
961 |
$wp_cerber->reCaptcha( 'style' );
|
962 |
|
963 |
if ( !cerber_is_http_get() ) {
|
1055 |
*/
|
1056 |
add_filter( 'wp_authenticate_user', function ( $user, $password ) {
|
1057 |
// former cerber_stop_authentication()
|
1058 |
+
global $cerber_act_status;
|
1059 |
|
1060 |
$deny = false;
|
1061 |
$user_msg = '';
|
1062 |
|
1063 |
if ( $b = crb_is_user_blocked( $user->ID ) ) {
|
1064 |
$user_msg = $b['blocked_msg'];
|
1065 |
+
$cerber_act_status = 25;
|
1066 |
$deny = true;
|
1067 |
}
|
1068 |
elseif ( crb_acl_is_white() ) { // @since 8.2.2
|
1072 |
$deny = true;
|
1073 |
}
|
1074 |
elseif ( ! cerber_geo_allowed( 'geo_login', $user ) ) {
|
1075 |
+
$cerber_act_status = 16;
|
1076 |
$deny = true;
|
1077 |
}
|
1078 |
elseif ( lab_is_blocked( cerber_get_remote_ip() ) ) {
|
1079 |
+
$cerber_act_status = 15;
|
1080 |
$deny = true;
|
1081 |
}
|
1082 |
|
1084 |
status_header( 403 );
|
1085 |
$error = new WP_Error();
|
1086 |
if ( ! $user_msg ) {
|
1087 |
+
$user_msg = get_wp_cerber()->getErrorMsg();
|
1088 |
}
|
1089 |
$error->add( 'cerber_wp_error', $user_msg, array( 'user_id' => $user->ID ) );
|
1090 |
|
1095 |
}, PHP_INT_MAX, 2 );
|
1096 |
|
1097 |
function crb_login_error( $username, $act = null, $status = null ) {
|
1098 |
+
global $cerber_act_status;
|
1099 |
+
$cerber_act_status = $status;
|
1100 |
if ( $act ) {
|
1101 |
cerber_log( $act, $username );
|
1102 |
}
|
1177 |
*/
|
1178 |
//add_action( 'wp_login_failed', 'cerber_login_failed' ); // @since 4.18
|
1179 |
function cerber_login_failed( $user_login, $user_id = 0 ) {
|
1180 |
+
global $cerber_act_status;
|
1181 |
static $is_processed = false;
|
1182 |
|
1183 |
if ( $is_processed ) return;
|
1199 |
$ac = 51;
|
1200 |
}
|
1201 |
elseif ( ! cerber_is_ip_allowed( $ip )
|
1202 |
+
|| $cerber_act_status == 15
|
1203 |
+
|| $cerber_act_status == 16
|
1204 |
+
|| $cerber_act_status == 25 ) { // TODO should be refactored together with cerber_stop_authentication
|
1205 |
$ac = 53;
|
1206 |
}
|
1207 |
|
1498 |
}
|
1499 |
|
1500 |
function cerber_user_logout( $status = null ) {
|
1501 |
+
global $cerber_act_status, $current_user, $userdata, $user_ID;
|
1502 |
+
$cerber_act_status = ( ! $status ) ? 26 : absint( $status );
|
1503 |
|
1504 |
if ( $current_user instanceof WP_User ) {
|
1505 |
$uid = $current_user->ID;
|
1520 |
// Registration -----------------------------------------------------------------------
|
1521 |
|
1522 |
function cerber_is_registration_prohibited( $user_login, $user_email = '' ) {
|
1523 |
+
global $wp_cerber, $cerber_act_status;
|
|
|
|
|
|
|
|
|
|
|
1524 |
|
1525 |
$code = null;
|
1526 |
$msg = null;
|
1527 |
|
1528 |
+
if ( crb_get_settings( 'regwhite' )
|
1529 |
+
&& ! crb_acl_is_white()
|
1530 |
+
&& lab_lab() ) {
|
1531 |
+
$cerber_act_status = 37;
|
1532 |
cerber_log( 54 );
|
1533 |
$code = 'ip_denied';
|
1534 |
+
if ( ! $msg = crb_get_settings( 'regwhite_msg' ) ) {
|
1535 |
+
$msg = '<strong>' . __( 'ERROR:', 'wp-cerber' ) . ' </strong>' . __( 'You are not allowed to register.', 'wp-cerber' );
|
1536 |
+
}
|
1537 |
+
}
|
1538 |
+
elseif ( crb_is_reg_limit_reached() ) {
|
1539 |
+
$cerber_act_status = 17;
|
1540 |
+
cerber_log( 54 );
|
1541 |
+
$code = 'ip_denied';
|
1542 |
+
$msg = '<strong>' . __( 'ERROR:', 'wp-cerber' ) . ' </strong>' .
|
1543 |
+
apply_filters( 'cerber_msg_denied', __( 'You are not allowed to register.', 'wp-cerber' ), 'register' );
|
1544 |
}
|
1545 |
elseif ( cerber_is_bot( 'botsreg' ) ) {
|
1546 |
cerber_log( 54 ); // TODO should be separate code to detect bot activity?
|
1554 |
$wp_cerber->reCaptchaMsg( 'register' );
|
1555 |
}
|
1556 |
elseif ( cerber_is_prohibited( $user_login ) ) {
|
1557 |
+
$cerber_act_status = 30;
|
1558 |
cerber_log( 54 );
|
1559 |
$code = 'prohibited_login';
|
1560 |
$msg = '<strong>' . __( 'ERROR:', 'wp-cerber' ) . ' </strong>' .
|
1561 |
apply_filters( 'cerber_msg_prohibited', __( 'Username is not allowed. Please choose another one.', 'wp-cerber' ), 'register' );
|
1562 |
}
|
1563 |
elseif ( ! cerber_is_email_permited( $user_email ) ) {
|
1564 |
+
$cerber_act_status = 31;
|
1565 |
cerber_log( 54 );
|
1566 |
$code = 'prohibited_email';
|
1567 |
$msg = '<strong>' . __( 'ERROR:', 'wp-cerber' ) . ' </strong>' .
|
1574 |
apply_filters( 'cerber_msg_denied', __( 'You are not allowed to register.', 'wp-cerber' ), 'register' );
|
1575 |
}
|
1576 |
elseif ( ! cerber_geo_allowed( 'geo_register' ) ) {
|
1577 |
+
$cerber_act_status = 16; // TODO: refactor cerber_log, include this status as a second parameter
|
1578 |
cerber_log( 54 ); // TODO should be separate code?
|
1579 |
$code = 'country_denied';
|
1580 |
$msg = '<strong>' . __( 'ERROR:', 'wp-cerber' ) . ' </strong>' .
|
1616 |
return true;
|
1617 |
}
|
1618 |
|
1619 |
+
$email = strtolower( $email );
|
1620 |
+
|
1621 |
foreach ( $list as $item ) {
|
1622 |
if ( $item[0] == '/' && substr( $item, - 1 ) == '/' ) {
|
1623 |
$pattern = $item . 'i'; // we permit to specify any REGEX
|
1626 |
}
|
1627 |
}
|
1628 |
elseif ( false !== strpos( $item, '*' ) ) {
|
|
|
1629 |
$wildcard = '.+?';
|
1630 |
$pattern = '/^' . str_replace( array( '.', '*' ), array( '\.', $wildcard ), $item ) . '$/i';
|
1631 |
if ( @preg_match( $pattern, $email ) ) {
|
1729 |
if ( ! cerber_is_ip_allowed() || crb_is_reg_limit_reached() ) {
|
1730 |
return false;
|
1731 |
}
|
1732 |
+
if ( crb_get_settings( 'regwhite' )
|
1733 |
+
&& ! crb_acl_is_white()
|
1734 |
+
&& lab_lab() ) {
|
1735 |
+
return false;
|
1736 |
+
}
|
1737 |
|
1738 |
return $value;
|
1739 |
}, PHP_INT_MAX );
|
1788 |
*
|
1789 |
*/
|
1790 |
add_action( 'pre_comment_on_post', function ( $comment_post_ID ) {
|
1791 |
+
global $cerber_act_status;
|
1792 |
|
1793 |
$deny = false;
|
1794 |
|
1796 |
$deny = true;
|
1797 |
}
|
1798 |
elseif ( ! cerber_geo_allowed( 'geo_comment' ) ) {
|
1799 |
+
$cerber_act_status = 16;
|
1800 |
cerber_log(19);
|
1801 |
$deny = true;
|
1802 |
}
|
1820 |
*
|
1821 |
*/
|
1822 |
add_filter( 'rest_allow_anonymous_comments', function ( $allowed, $request ) {
|
1823 |
+
global $cerber_act_status;
|
1824 |
|
1825 |
if ( ! cerber_is_ip_allowed() ) {
|
1826 |
$allowed = false;
|
1827 |
}
|
1828 |
if ( ! cerber_geo_allowed( 'geo_comment' ) ) {
|
1829 |
cerber_log(19);
|
1830 |
+
$cerber_act_status = 16;
|
1831 |
$allowed = false;
|
1832 |
}
|
1833 |
elseif ( lab_is_blocked( cerber_get_remote_ip() ) ) {
|
1906 |
*/
|
1907 |
add_filter( 'login_errors', 'cerber_login_form_msg' ); // hook on POST if credentials was wrong
|
1908 |
function cerber_login_form_msg( $errors ) {
|
1909 |
+
global $error;
|
1910 |
+
|
1911 |
if ( cerber_can_msg() ) {
|
1912 |
+
$wp_cerber = get_wp_cerber();
|
1913 |
if ( ! cerber_is_ip_allowed() ) {
|
1914 |
$errors = $wp_cerber->getErrorMsg();
|
1915 |
}
|
1916 |
+
elseif ( ! $error && ( $msg = $wp_cerber->getRemainMsg() ) ) {
|
1917 |
$errors .= '<p>' . $msg;
|
1918 |
}
|
1919 |
}
|
1988 |
*
|
1989 |
*/
|
1990 |
function cerber_access_control() {
|
1991 |
+
global $wp_cerber, $cerber_act_status, $cerber_req_status;
|
1992 |
|
1993 |
if ( crb_acl_is_white() ) {
|
1994 |
return;
|
2008 |
elseif ( cerber_is_rest_url() ) {
|
2009 |
$rest_allowed = true;
|
2010 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011 |
if ( ! cerber_is_rest_permitted() ) {
|
2012 |
$rest_allowed = false;
|
2013 |
}
|
2014 |
|
2015 |
if ( $rest_allowed && ! cerber_geo_allowed( 'geo_restapi' ) ) {
|
2016 |
$rest_allowed = false;
|
2017 |
+
$cerber_act_status = 16;
|
2018 |
}
|
2019 |
|
2020 |
if ( ! $rest_allowed ) {
|
2079 |
*
|
2080 |
*/
|
2081 |
function cerber_post_control() {
|
2082 |
+
global $cerber_act_status;
|
2083 |
|
2084 |
if ( ! cerber_is_http_post() || crb_acl_is_white() ) {
|
2085 |
return;
|
2109 |
}
|
2110 |
elseif ( ! cerber_geo_allowed( 'geo_submit' ) ) {
|
2111 |
$deny = true;
|
2112 |
+
$cerber_act_status = 16; // TODO: refactor cerber_log, include this status as a second parameter
|
2113 |
cerber_log( 18 );
|
2114 |
}
|
2115 |
elseif ( lab_is_blocked( null, true ) ) {
|
2116 |
$deny = true;
|
2117 |
+
$cerber_act_status = 18;
|
2118 |
cerber_log( 18 );
|
2119 |
}
|
2120 |
|
2598 |
* @return bool
|
2599 |
*/
|
2600 |
function cerber_is_bot( $location = '' ) {
|
2601 |
+
global $cerber_act_status, $cerber_req_status;
|
2602 |
static $ret = null;
|
2603 |
|
2604 |
$remote_ip = cerber_get_remote_ip();
|
2692 |
}
|
2693 |
|
2694 |
if ( $ret ) {
|
2695 |
+
$cerber_act_status = 11;
|
2696 |
lab_save_push( $remote_ip, 333 );
|
2697 |
}
|
2698 |
}
|
3034 |
* @return bool true if IP is locked out
|
3035 |
*/
|
3036 |
function cerber_block_check( $ip = '' ) {
|
3037 |
+
static $ret;
|
3038 |
|
3039 |
+
if ( ! isset( $ret ) ) {
|
3040 |
+
$ret = cerber_get_block( $ip );
|
|
|
3041 |
}
|
3042 |
|
3043 |
+
return $ret;
|
3044 |
}
|
3045 |
|
3046 |
/**
|
3190 |
* @return bool
|
3191 |
*/
|
3192 |
function cerber_is_ip_allowed( $ip = '', $context = null ) {
|
3193 |
+
global $cerber_act_status;
|
3194 |
|
3195 |
if ( ! $ip ) {
|
3196 |
$ip = cerber_get_remote_ip();
|
3204 |
return true;
|
3205 |
}
|
3206 |
if ( $tag == 'B' ) {
|
3207 |
+
$cerber_act_status = 14;
|
3208 |
return false;
|
3209 |
}
|
3210 |
|
3211 |
if ( $b = cerber_get_block( $ip ) ) {
|
3212 |
if ( ! in_array( $b->reason_id, crb_context_get_allowed( $context ) ) ) {
|
3213 |
+
$cerber_act_status = 13;
|
3214 |
return false;
|
3215 |
}
|
3216 |
}
|
3217 |
|
3218 |
if ( $context != CRB_CNTX_NEXUS && cerber_is_citadel() ) {
|
3219 |
+
$cerber_act_status = 19;
|
3220 |
return false;
|
3221 |
}
|
3222 |
|
3223 |
if ( lab_is_blocked( $ip, false ) ) {
|
3224 |
+
$cerber_act_status = 15;
|
3225 |
return false;
|
3226 |
}
|
3227 |
|
3255 |
return false;
|
3256 |
}
|
3257 |
|
3258 |
+
$username_lower = strtolower( $username ); // since 'prohibited' gets lower case when settings are saved
|
3259 |
+
|
3260 |
if ( $list = (array) crb_get_settings( 'prohibited' ) ) {
|
3261 |
foreach ( $list as $item ) {
|
3262 |
if ( mb_substr( $item, 0, 1 ) == '/' && mb_substr( $item, - 1 ) == '/' ) {
|
3265 |
return true;
|
3266 |
}
|
3267 |
}
|
3268 |
+
elseif ( $username_lower == $item ) {
|
3269 |
return true;
|
3270 |
}
|
3271 |
}
|
3276 |
|
3277 |
// TODO: Merge with $wp_cerber->getStatus();
|
3278 |
function cerber_get_status( $ip, $activity = null ) {
|
3279 |
+
global $cerber_act_status;
|
3280 |
|
3281 |
+
if ( ! empty( $cerber_act_status ) ) {
|
3282 |
+
return absint( $cerber_act_status );
|
3283 |
}
|
3284 |
|
3285 |
if ( cerber_block_check( $ip ) ) {
|
3291 |
if ( in_array( $activity, array( 1, 2, 5, 20, 21 ) ) ) {
|
3292 |
return 500;
|
3293 |
}
|
3294 |
+
if ( in_array( $activity, array( 72, 73, 75, 76 ) ) ) {
|
3295 |
+
return 511;
|
3296 |
+
}
|
3297 |
+
if ( $activity == 74 ) {
|
3298 |
+
return 512;
|
3299 |
+
}
|
3300 |
|
3301 |
return 0;
|
3302 |
}
|
3360 |
* @param string $ip
|
3361 |
* @param string $tag
|
3362 |
* @param int $acl_slice
|
3363 |
+
* @param object|null $row If a given IP is in any ACL, it contains an appropriate DB row object:
|
3364 |
+
* for IPv4 all columns
|
3365 |
+
* for IPv6 comments column only
|
3366 |
*
|
3367 |
* @return bool|string
|
3368 |
*/
|
3369 |
+
function cerber_acl_check( $ip = null, $tag = '', $acl_slice = 0, &$row = null ) {
|
3370 |
+
static $cache, $row_cache;
|
3371 |
|
3372 |
if ( ! $ip ) {
|
3373 |
$ip = cerber_get_remote_ip();
|
3376 |
$key = cerber_get_id_ip( $ip ) . (string) $tag;
|
3377 |
|
3378 |
if ( isset( $cache[ $key ] ) ) {
|
3379 |
+
$row = $row_cache[ $key ];
|
3380 |
return $cache[ $key ];
|
3381 |
}
|
3382 |
|
3383 |
if ( cerber_is_ipv6( $ip ) ) {
|
3384 |
+
$ret = cerber_ipv6_acl_check( $ip, $tag, $acl_slice, $row );
|
3385 |
$cache[ $key ] = $ret;
|
3386 |
+
$row = (object) $row;
|
3387 |
+
$row_cache[ $key ] = $row;
|
3388 |
|
3389 |
return $ret;
|
3390 |
}
|
3396 |
if ( $tag !== 'W' && $tag !== 'B' ) {
|
3397 |
$ret = false;
|
3398 |
}
|
3399 |
+
//elseif ( cerber_db_get_var( 'SELECT ip FROM ' . CERBER_ACL_TABLE . ' WHERE acl_slice = ' . $acl_slice . ' AND ver6 = 0 AND ip_long_begin <= ' . $long . ' AND ' . $long . ' <= ip_long_end AND tag = "' . $tag . '" LIMIT 1' ) ) {
|
3400 |
+
elseif ( $row = cerber_db_get_row( 'SELECT * FROM ' . CERBER_ACL_TABLE . ' WHERE acl_slice = ' . $acl_slice . ' AND ver6 = 0 AND ip_long_begin <= ' . $long . ' AND ' . $long . ' <= ip_long_end AND tag = "' . $tag . '" LIMIT 1' ) ) {
|
3401 |
$ret = true;
|
3402 |
}
|
3403 |
else {
|
3405 |
}
|
3406 |
|
3407 |
$cache[ $key ] = $ret;
|
3408 |
+
$row_cache[ $key ] = $row;
|
3409 |
return $ret;
|
3410 |
}
|
3411 |
else {
|
3412 |
// We use two queries because of possible overlapping an IP and its network
|
3413 |
+
//if ( $ret = cerber_db_get_var( 'SELECT tag FROM ' . CERBER_ACL_TABLE . ' WHERE acl_slice = ' . $acl_slice . ' AND ver6 = 0 AND ip_long_begin <= ' . $long . ' AND ' . $long . ' <= ip_long_end AND tag = "W" LIMIT 1' ) ) {
|
3414 |
+
if ( $row = cerber_db_get_row( 'SELECT * FROM ' . CERBER_ACL_TABLE . ' WHERE acl_slice = ' . $acl_slice . ' AND ver6 = 0 AND ip_long_begin <= ' . $long . ' AND ' . $long . ' <= ip_long_end AND tag = "W" LIMIT 1', MYSQL_FETCH_OBJECT ) ) {
|
3415 |
+
$cache[ $key ] = $row->tag;
|
3416 |
+
$row_cache[ $key ] = $row;
|
3417 |
+
return $row->tag;
|
3418 |
}
|
3419 |
+
//if ( $ret = cerber_db_get_var( 'SELECT tag FROM ' . CERBER_ACL_TABLE . ' WHERE acl_slice = ' . $acl_slice . ' AND ver6 = 0 AND ip_long_begin <= ' . $long . ' AND ' . $long . ' <= ip_long_end AND tag = "B" LIMIT 1' ) ) {
|
3420 |
+
if ( $row = cerber_db_get_row( 'SELECT * FROM ' . CERBER_ACL_TABLE . ' WHERE acl_slice = ' . $acl_slice . ' AND ver6 = 0 AND ip_long_begin <= ' . $long . ' AND ' . $long . ' <= ip_long_end AND tag = "B" LIMIT 1', MYSQL_FETCH_OBJECT ) ) {
|
3421 |
+
$cache[ $key ] = $row->tag;
|
3422 |
+
$row_cache[ $key ] = $row;
|
3423 |
+
return $row->tag;
|
3424 |
}
|
3425 |
|
3426 |
$cache[ $key ] = false;
|
3427 |
+
$row_cache[ $key ] = false;
|
3428 |
return false;
|
3429 |
}
|
3430 |
}
|
3435 |
* @param string $ip
|
3436 |
* @param string $tag
|
3437 |
* @param int $acl_slice
|
3438 |
+
* @param object|null $row @since 8.6.7
|
3439 |
*
|
3440 |
* @return bool|null|string
|
3441 |
*/
|
3442 |
+
function cerber_ipv6_acl_check( $ip, $tag = '', $acl_slice = 0, &$row = null ) {
|
3443 |
|
3444 |
if ( ! $ip ) {
|
3445 |
$ip = cerber_get_remote_ip();
|
3454 |
return false;
|
3455 |
}
|
3456 |
|
3457 |
+
$results = array();
|
3458 |
+
|
3459 |
+
if ( empty( $row ) ) {
|
3460 |
+
if ( ! $list = cerber_db_get_col( 'SELECT v6range FROM ' . CERBER_ACL_TABLE . ' WHERE acl_slice = ' . $acl_slice . ' AND ver6 = 1 AND ip_long_begin <= ' . $d0 . ' AND ' . $d0 . ' <= ip_long_end AND tag = "' . $tag . '"' ) ) {
|
3461 |
+
return false;
|
3462 |
+
}
|
3463 |
+
}
|
3464 |
+
else {
|
3465 |
+
if ( ! $results = cerber_db_get_results( 'SELECT v6range,comments FROM ' . CERBER_ACL_TABLE . ' WHERE acl_slice = ' . $acl_slice . ' AND ver6 = 1 AND ip_long_begin <= ' . $d0 . ' AND ' . $d0 . ' <= ip_long_end AND tag = "' . $tag . '"' ) ) {
|
3466 |
+
return false;
|
3467 |
+
}
|
3468 |
+
$list = array_column( $results, 'v6range' );
|
3469 |
}
|
3470 |
|
3471 |
+
if ( ! crb_ipv6_is_in_range_list( $d1, $d2, $list, $key ) ) {
|
3472 |
return false;
|
3473 |
}
|
3474 |
|
3475 |
+
$row = crb_array_get( $results, $key );
|
3476 |
+
|
3477 |
return true;
|
3478 |
}
|
3479 |
else {
|
3480 |
+
if ( ! $results = cerber_db_get_results( 'SELECT v6range,tag,comments FROM ' . CERBER_ACL_TABLE . ' WHERE acl_slice = ' . $acl_slice . ' AND ver6 = 1 AND ip_long_begin <= ' . $d0 . ' AND ' . $d0 . ' <= ip_long_end' ) ) {
|
3481 |
return false;
|
3482 |
}
|
3483 |
|
3484 |
+
if ( $tag = crb_ipv6_get_tag( $d1, $d2, $results, $key ) ) {
|
3485 |
+
$row = crb_array_get( $results, $key );
|
3486 |
+
}
|
3487 |
+
|
3488 |
+
return $tag;
|
3489 |
}
|
3490 |
}
|
3491 |
|
3510 |
* @param int $d1
|
3511 |
* @param int $d2
|
3512 |
* @param array $list
|
3513 |
+
* @param int $key
|
3514 |
*
|
3515 |
* @return bool
|
3516 |
*/
|
3517 |
+
function crb_ipv6_is_in_range_list( $d1, $d2, &$list, &$key = null ) {
|
3518 |
|
3519 |
+
foreach ( $list as $key => $v6range ) {
|
3520 |
list( $begin1, $begin2, $end1, $end2 ) = explode( '#', $v6range, 4 );
|
3521 |
if ( crb_compare_numbers( $d1, $d2, $begin1, $begin2 )
|
3522 |
&& crb_compare_numbers( $end1, $end2, $d1, $d2 ) ) {
|
3533 |
* @param $d1
|
3534 |
* @param $d2
|
3535 |
* @param $v6rows
|
3536 |
+
* @param int $key
|
3537 |
*
|
3538 |
* @return bool|string false if IP is not in any list, 'B' if is in the black, 'W' if is in the white
|
3539 |
*/
|
3540 |
+
function crb_ipv6_get_tag( $d1, $d2, &$v6rows, &$key = null ) {
|
3541 |
$black = false;
|
3542 |
|
3543 |
+
foreach ( $v6rows as $key => $row ) {
|
3544 |
if ( $black && ( $row['tag'] == 'B' ) ) {
|
3545 |
continue;
|
3546 |
}
|
3709 |
$begin = ip2long( $begin_ip );
|
3710 |
$end = ip2long( $end_ip );
|
3711 |
|
3712 |
+
if ( $begin > $end ) {
|
3713 |
return false;
|
3714 |
}
|
3715 |
|
3802 |
if ( ! is_numeric( $mask ) ) {
|
3803 |
return false;
|
3804 |
}
|
|
|
|
|
3805 |
|
3806 |
+
if ( $mask == 32 ) {
|
3807 |
+
$begin_ip = $net;
|
3808 |
+
$end_ip = $net;
|
3809 |
+
}
|
3810 |
+
else {
|
3811 |
+
$begin_ip = long2ip( ( ip2long( $net ) ) & ( ( - 1 << ( 32 - (int) $mask ) ) ) );
|
3812 |
+
$end_ip = long2ip( ( ip2long( $net ) ) + pow( 2, ( 32 - (int) $mask ) ) - 1 );
|
3813 |
+
}
|
3814 |
+
|
3815 |
+
return cerber_parse_ip_range( $begin_ip . ' - ' . $end_ip );
|
3816 |
}
|
3817 |
|
3818 |
/**
|
4294 |
$body .= 'https://wpcerber.com/cloudflare-and-wordpress-cerber/' . "\n\n";
|
4295 |
$body .= 'Be in touch with the developer.' . "\n\n";
|
4296 |
$body .= 'Follow Cerber on Twitter: https://twitter.com/wpcerber' . "\n\n";
|
4297 |
+
$body .= "Subscribe to Cerber's newsletter: https://wpcerber.com/subscribe-newsletter/" . "\n\n";
|
4298 |
break;
|
4299 |
case 'newlurl':
|
4300 |
$subj .= __( 'New Custom login URL', 'wp-cerber' );
|
4354 |
$footer .= "\n\n" . __( 'Your license is valid until', 'wp-cerber' ) . ' ' . $date;
|
4355 |
}
|
4356 |
|
4357 |
+
$footer .= "\n\n\n" . __( 'This message was sent by', 'wp-cerber' ) . ' WP Cerber Security ' . ( lab_lab() ? 'PRO ' : '' ) . CERBER_VER . "\n";
|
4358 |
$footer .= 'https://wpcerber.com';
|
4359 |
|
4360 |
if ( $html_mode ) {
|
4724 |
}
|
4725 |
|
4726 |
if ( ! wp_next_scheduled( 'cerber_daily' ) ) {
|
4727 |
+
if ( ! $when = strtotime( 'midnight' ) + 24 * 3600 ) {
|
4728 |
+
$when = $next_hour;
|
4729 |
+
}
|
4730 |
+
wp_schedule_event( $when + 2 * 3600 + 1200, 'daily', 'cerber_daily' );
|
4731 |
}
|
4732 |
|
4733 |
define( 'CRB_DOING_BG_TASK', 1 );
|
5316 |
|
5317 |
crb_x_update_add_on_list();
|
5318 |
|
5319 |
+
//$slave = ( nexus_is_master() || nexus_is_slave() ) ? '' : ' <i class="crb-icon crb-icon-bx-cog"></i> <a href="' . cerber_admin_link( '', array( 'page' => 'cerber-nexus' ) ) . '">' . __( 'Enable slave mode', 'wp-cerber' ) . '</a>';
|
5320 |
|
5321 |
$msg =
|
5322 |
'<h2>' . __( 'WP Cerber is now active and has started protecting your site', 'wp-cerber' ) . '</h2>'
|
5421 |
cerber_push_the_news();
|
5422 |
cerber_delete_expired_set( true );
|
5423 |
CRB_Cache::reset();
|
5424 |
+
if ( wp_next_scheduled( 'cerber_hourly' ) ) {
|
5425 |
+
wp_clear_scheduled_hook( 'cerber_hourly' ); // not in use since v. 5.8.
|
5426 |
+
}
|
5427 |
|
5428 |
lab_get_key( true );
|
5429 |
$cerber_doing_upgrade = false;
|
6026 |
} );
|
6027 |
|
6028 |
function cerber_error_shield( $mode = 1 ) {
|
6029 |
+
global $cerber_act_status, $cerber_blocked;
|
6030 |
|
6031 |
require_once( ABSPATH . WPINC . '/pluggable.php' ); // @since 8.5 for is_user_logged_in()
|
6032 |
|
6087 |
$c = cerber_db_get_var( 'SELECT COUNT(ip) FROM ' . CERBER_QMEM_TABLE . ' WHERE ip = "' . $ip . '" AND stamp > ' . $t );
|
6088 |
if ( $c >= $limit ) {
|
6089 |
cerber_soft_block_add( $ip, 711 );
|
6090 |
+
$cerber_act_status = 18;
|
6091 |
}
|
6092 |
}
|
6093 |
|
6229 |
if ( ! empty( $_FILES ) ) {
|
6230 |
$fields[3] = $_FILES;
|
6231 |
}
|
6232 |
+
|
6233 |
if ( ! empty( $fields ) ) {
|
6234 |
$fields = serialize( $fields );
|
6235 |
}
|
6236 |
else {
|
6237 |
$fields = '';
|
6238 |
}
|
6239 |
+
|
6240 |
}
|
6241 |
|
6242 |
// Extra request details
|
6290 |
if ( crb_get_settings( 'tiphperr' ) ) {
|
6291 |
if ( $cerber_php_errors && is_array( $cerber_php_errors ) ) {
|
6292 |
//$err_not = array( E_NOTICE, E_WARNING );
|
6293 |
+
foreach ( $cerber_php_errors as $key => $err ) {
|
6294 |
+
if ( $err[0] == E_WARNING ) {
|
6295 |
+
if ( $err[3] == 68
|
6296 |
+
&& '/wp-includes/class-phpass.php' == substr( $err[2], - 29 )
|
6297 |
+
&& strpos( $err[1], '/dev/urandom' ) ) {
|
6298 |
+
unset( $cerber_php_errors[ $key ] );
|
6299 |
+
}
|
|
|
|
|
|
|
6300 |
}
|
6301 |
}
|
6302 |
if ( $cerber_php_errors ) {
|
6319 |
|
6320 |
$uri = cerber_real_escape( $uri );
|
6321 |
$details = cerber_real_escape( $details );
|
6322 |
+
$fields = ( $fields ) ? cerber_real_escape( $fields ) : '';
|
6323 |
$php_err = ( $php_err ) ? cerber_real_escape( $php_err ) : '';
|
6324 |
+
|
6325 |
+
if ( ! $req_status = absint( $cerber_req_status ) ) {
|
6326 |
+
if ( crb_acl_is_white() ) {
|
6327 |
+
$req_status = 510;
|
6328 |
+
}
|
6329 |
+
}
|
6330 |
|
6331 |
$query = 'INSERT INTO ' . CERBER_TRAF_TABLE . '
|
6332 |
(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, req_status )
|
6495 |
* @since 6.0
|
6496 |
*/
|
6497 |
function cerber_mask_fields( $fields ) {
|
6498 |
+
$to_mask = array( 'pwd', 'pass', 'password', 'password_1', 'password_2', 'post_password', 'cerber-cloud-key' );
|
6499 |
if ( $list = (array) crb_get_settings( 'timask' ) ) {
|
6500 |
$to_mask = array_merge( $to_mask, $list );
|
6501 |
}
|
6608 |
* @since 6.0
|
6609 |
*/
|
6610 |
function cerber_beast() {
|
6611 |
+
global $cerber_act_status, $cerber_req_status;
|
6612 |
|
6613 |
if ( is_admin()
|
6614 |
|| cerber_is_wp_cron()
|
6669 |
if ( $uri_script && $script_filename = cerber_script_filename() ) { // @since 8.6.3.4
|
6670 |
// Scanning for executable scripts?
|
6671 |
if ( ! cerber_script_exists( $uri ) && ! cerber_is_login_request() ) {
|
6672 |
+
$cerber_act_status = 19;
|
6673 |
cerber_log( 55 );
|
6674 |
if ( $ti_mode > 1 ) {
|
6675 |
cerber_soft_block_add( null, 708 );
|
6680 |
$deny = false;
|
6681 |
if ( crb_acl_is_black() ) {
|
6682 |
$deny = true;
|
6683 |
+
$cerber_act_status = 14;
|
6684 |
}
|
6685 |
//elseif ( ! in_array( $uri_script, cerber_get_wp_scripts() ) ) {
|
6686 |
elseif ( ! CRB_Request::is_script( cerber_get_wp_scripts() ) ) {
|
6687 |
if ( ! cerber_is_ip_allowed() ) {
|
6688 |
$deny = true;
|
6689 |
+
$cerber_act_status = 13;
|
6690 |
}
|
6691 |
elseif ( lab_is_blocked( null, true ) ) {
|
6692 |
$deny = true;
|
6693 |
+
$cerber_act_status = 15;
|
6694 |
}
|
6695 |
}
|
6696 |
if ( $deny ) {
|
6745 |
* @return bool|int
|
6746 |
*/
|
6747 |
function cerber_inspect_array( &$array, $white = array() ) {
|
6748 |
+
global $cerber_act_status;
|
6749 |
static $rec_limit = null;
|
6750 |
|
6751 |
if ( ! $array ) {
|
6759 |
$rec_limit --;
|
6760 |
if ( $rec_limit <= 0 ) {
|
6761 |
$rec_limit = null;
|
6762 |
+
$cerber_act_status = 20;
|
6763 |
|
6764 |
return 100;
|
6765 |
}
|
6786 |
}
|
6787 |
|
6788 |
function cerber_inspect_value( &$value = '', $reset = false ) {
|
6789 |
+
global $cerber_act_status, $crb_x64;
|
6790 |
static $rec_limit = null; // Real recursion limit
|
6791 |
|
6792 |
if ( ! $value || is_numeric( $value ) ) {
|
6804 |
$rec_limit --;
|
6805 |
if ( $rec_limit <= 0 ) {
|
6806 |
$rec_limit = null;
|
6807 |
+
$cerber_act_status = 21;
|
6808 |
|
6809 |
return 100;
|
6810 |
}
|
6818 |
else {
|
6819 |
$parsed = cerber_detect_php_code( $value );
|
6820 |
if ( ! empty( $parsed[0] ) ) {
|
6821 |
+
$cerber_act_status = 22;
|
6822 |
$found = 100;
|
6823 |
}
|
6824 |
elseif ( ! empty( $parsed[1] ) ) {
|
6830 |
}
|
6831 |
}
|
6832 |
if ( ! $found && cerber_detect_other_code( $value ) ) {
|
6833 |
+
$cerber_act_status = 23;
|
6834 |
$found = 100;
|
6835 |
}
|
6836 |
if ( ! $found && cerber_detect_js_code( $value ) ) {
|
6837 |
+
$cerber_act_status = 24;
|
6838 |
$found = 100;
|
6839 |
}
|
6840 |
}
|
7192 |
if ( ! defined( 'CRB_JUST_MARRIED' )
|
7193 |
&& ( ( ! $ac = cerber_get_set( '_activated' ) ) || ( crb_array_get( $ac, 'time' ) < ( time() - 30 * DAY_IN_SECONDS ) ) )
|
7194 |
&& ! lab_lab() ) {
|
7195 |
+
$text .= ' <h2 style="margin-top: 28px;">Cerber needs your support to keep moving forward</h2>
|
7196 |
<p style="margin-top: 20px;">
|
7197 |
By sharing your unique opinion on WP Cerber, you will help the engineers behind the plugin make greater progress and help other professionals find the right software. You can leave your review on one of the following websites. No needs to use English. Feel free to use your native language. Thanks!
|
7198 |
</p>
|
7200 |
|
7201 |
<p><a href="https://www.trustpilot.com/review/wpcerber.com" target="_blank">Trustpilot</a> /
|
7202 |
<a href="https://www.g2crowd.com/products/cerber-security-antispam-malware-scan/" target="_blank">G2.COM</a> /
|
7203 |
+
<!-- <a href="https://reviews.capterra.com/new/187653" target="_blank">Capterra</a></p> -->
|
7204 |
|
7205 |
<!--<p><a href="https://www.trustpilot.com/review/wpcerber.com" target="_blank">Trustpilot</a></p>
|
7206 |
<p><a href="https://www.g2crowd.com/products/cerber-security-antispam-malware-scan/" target="_blank">G2.COM</a></p>
|
cerber-request.php
CHANGED
@@ -53,7 +53,9 @@ final class CRB_Request {
|
|
53 |
return;
|
54 |
}
|
55 |
|
56 |
-
|
|
|
|
|
57 |
$p1 = strpos( $site_url, '//' );
|
58 |
$p2 = strpos( $site_url, '/', $p1 + 2 );
|
59 |
if ( $p2 !== false ) {
|
@@ -63,7 +65,7 @@ final class CRB_Request {
|
|
63 |
else {
|
64 |
self::$site_root = $site_url;
|
65 |
self::$sub_folder = '';
|
66 |
-
}
|
67 |
|
68 |
}
|
69 |
|
53 |
return;
|
54 |
}
|
55 |
|
56 |
+
list( self::$site_root, self::$sub_folder ) = crb_parse_site_url();
|
57 |
+
|
58 |
+
/*$site_url = cerber_get_site_url(); // Including the path to WP files and stuff
|
59 |
$p1 = strpos( $site_url, '//' );
|
60 |
$p2 = strpos( $site_url, '/', $p1 + 2 );
|
61 |
if ( $p2 !== false ) {
|
65 |
else {
|
66 |
self::$site_root = $site_url;
|
67 |
self::$sub_folder = '';
|
68 |
+
}*/
|
69 |
|
70 |
}
|
71 |
|
cerber-scanner.php
CHANGED
@@ -31,56 +31,56 @@
|
|
31 |
|
32 |
*/
|
33 |
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
|
85 |
add_action( 'plugins_loaded', function () {
|
86 |
|
@@ -193,7 +193,7 @@ function cerber_scanner( $control, $mode ) {
|
|
193 |
if ( crb_get_settings( 'scan_debug' ) ) {
|
194 |
register_shutdown_function( function () {
|
195 |
if ( http_response_code() != 200 ) {
|
196 |
-
crb_scan_debug( 'ERROR: Unexpected software errors detected. Check the server error log.' );
|
197 |
if ( $err = error_get_last() ) {
|
198 |
crb_scan_debug( print_r( $err, 1 ) );
|
199 |
}
|
@@ -4498,7 +4498,6 @@ function cerber_quarantine_file( $file_name, $scan_id, $move = true ) {
|
|
4498 |
fwrite( $f, 'Information for restoring files.' . PHP_EOL
|
4499 |
. 'Deletion date | Deleted file => Original file to copy to restore.' . PHP_EOL
|
4500 |
. '-----------------------------------------------------------------'
|
4501 |
-
//. PHP_EOL . `` );
|
4502 |
. PHP_EOL );
|
4503 |
}
|
4504 |
else {
|
31 |
|
32 |
*/
|
33 |
|
34 |
+
const CERBER_PK_WP = 'wordpress';
|
35 |
+
const CERBER_PK_PLUGIN = 'plugin';
|
36 |
+
const CERBER_PK_THEME = 'theme';
|
37 |
+
|
38 |
+
const CERBER_FT_WP = 1;
|
39 |
+
const CERBER_FT_PLUGIN = 2;
|
40 |
+
const CERBER_FT_THEME = 3;
|
41 |
+
const CERBER_FT_ROOT = 4;
|
42 |
+
const CERBER_FT_UPLOAD = 5;
|
43 |
+
const CERBER_FT_LNG = 6;
|
44 |
+
const CERBER_FT_MUP = 7;
|
45 |
+
const CERBER_FT_CNT = 8;
|
46 |
+
const CERBER_FT_CONF = 10;
|
47 |
+
const CERBER_FT_DRIN = 11;
|
48 |
+
const CERBER_FT_OTHER = 12;
|
49 |
+
|
50 |
+
const CERBER_MAX_SECONDS = 5;
|
51 |
+
const CERBER_MAX_SECONDS_CLOUD = 25;
|
52 |
+
|
53 |
+
const CERBER_FOK = 1;
|
54 |
+
const CERBER_VULN = 4;
|
55 |
+
const CERBER_NOHASH = 5;
|
56 |
+
const CERBER_IMD = 15;
|
57 |
+
const CERBER_SCF = 16;
|
58 |
+
const CERBER_PMC = 17;
|
59 |
+
const CERBER_USF = 18;
|
60 |
+
const CERBER_EXC = 20;
|
61 |
+
const CERBER_DIR = 26;
|
62 |
+
const CERBER_UXT = 30;
|
63 |
+
const CERBER_MOD = 50;
|
64 |
+
const CERBER_NEW = 51;
|
65 |
+
|
66 |
+
const CERBER_FDUN = 300;
|
67 |
+
const CERBER_FDLD = 301;
|
68 |
+
const CERBER_FRCV = 311;
|
69 |
+
|
70 |
+
const CERBER_MALWR_DETECTED = 1000;
|
71 |
+
|
72 |
+
const CRB_HASH_THEME = 'hash_tm_';
|
73 |
+
const CRB_HASH_PLUGIN = 'hash_pl_';
|
74 |
+
const CRB_LAST_FILE = 'tmp_last_file';
|
75 |
+
|
76 |
+
const CRB_SCAN_GO = '__CERBER__SECURITY_SCAN_GO__';
|
77 |
+
const CRB_SCAN_STOP = '__CERBER__SECURITY_SCAN_STOP__';
|
78 |
+
const CRB_SCAN_DTB = '__CERBER__SECURITY_SCAN_DATA_B';
|
79 |
+
const CRB_SCAN_DTE = '__CERBER__SECURITY_SCAN_DATA_E';
|
80 |
+
|
81 |
+
const CRB_SCAN_RCV_DIR = 'recovery';
|
82 |
+
|
83 |
+
const CRB_SQL_CHUNK = 10000; // @since 8.6.4 Split queries into chunks to reduce memory consumption
|
84 |
|
85 |
add_action( 'plugins_loaded', function () {
|
86 |
|
193 |
if ( crb_get_settings( 'scan_debug' ) ) {
|
194 |
register_shutdown_function( function () {
|
195 |
if ( http_response_code() != 200 ) {
|
196 |
+
crb_scan_debug( 'ERROR: Unexpected software errors detected. Check the web server error log.' );
|
197 |
if ( $err = error_get_last() ) {
|
198 |
crb_scan_debug( print_r( $err, 1 ) );
|
199 |
}
|
4498 |
fwrite( $f, 'Information for restoring files.' . PHP_EOL
|
4499 |
. 'Deletion date | Deleted file => Original file to copy to restore.' . PHP_EOL
|
4500 |
. '-----------------------------------------------------------------'
|
|
|
4501 |
. PHP_EOL );
|
4502 |
}
|
4503 |
else {
|
cerber-tools.php
CHANGED
@@ -294,7 +294,7 @@ function cerber_show_diag(){
|
|
294 |
crb_show_diag_section( 'Server Environment Variables', cerber_make_plain_table( $se ) );
|
295 |
|
296 |
$buttons = '<p style="text-align: right;">
|
297 |
-
<a class="button button-secondary" href="' . wp_nonce_url( add_query_arg( array( 'clear_up_the_cache' => 1 ) ), 'control', 'cerber_nonce' ) . '">Clear
|
298 |
<a class="button button-secondary" href="' . wp_nonce_url( add_query_arg( array( 'force_check_nodes' => 1 ) ), 'control', 'cerber_nonce' ) . '">Recheck Status</a>
|
299 |
</p>';
|
300 |
crb_show_diag_section( 'Cerber Security Cloud Status', lab_status() . $buttons );
|
@@ -370,9 +370,9 @@ function cerber_show_lic() {
|
|
370 |
<table class="form-table">
|
371 |
<tbody>
|
372 |
<tr>
|
373 |
-
<th scope="row">License key
|
374 |
<td>
|
375 |
-
<input name="cerber_license" value="<?php echo $lic; ?>" size="<?php echo LAB_KEY_LENGTH; ?>" maxlength="<?php echo LAB_KEY_LENGTH; ?>" type="text" class="crb-monospace" placeholder="Enter
|
376 |
<?php echo $valid; ?>
|
377 |
</td>
|
378 |
</tr>
|
@@ -402,7 +402,7 @@ function cerber_show_wp_diag(){
|
|
402 |
$tz = ( $tz !== 'UTC' ) ? '<span style="color: red;">' . $tz . '!</span>' : $tz;
|
403 |
|
404 |
if ( $c = CRB_Cache::checker() ) {
|
405 |
-
$c = 'Yes | ' . cerber_date( $c ) . '
|
406 |
|
407 |
if ( $stat = CRB_Cache::get_stat( true ) ) {
|
408 |
$c .= ' | Cerber\'s entries: ' . count( $stat[1] );
|
294 |
crb_show_diag_section( 'Server Environment Variables', cerber_make_plain_table( $se ) );
|
295 |
|
296 |
$buttons = '<p style="text-align: right;">
|
297 |
+
<a class="button button-secondary" href="' . wp_nonce_url( add_query_arg( array( 'clear_up_the_cache' => 1 ) ), 'control', 'cerber_nonce' ) . '">Clear Cache</a>
|
298 |
<a class="button button-secondary" href="' . wp_nonce_url( add_query_arg( array( 'force_check_nodes' => 1 ) ), 'control', 'cerber_nonce' ) . '">Recheck Status</a>
|
299 |
</p>';
|
300 |
crb_show_diag_section( 'Cerber Security Cloud Status', lab_status() . $buttons );
|
370 |
<table class="form-table">
|
371 |
<tbody>
|
372 |
<tr>
|
373 |
+
<th scope="row">License key</th>
|
374 |
<td>
|
375 |
+
<input name="cerber_license" value="<?php echo $lic; ?>" size="<?php echo LAB_KEY_LENGTH; ?>" maxlength="<?php echo LAB_KEY_LENGTH; ?>" type="text" class="crb-monospace" placeholder="Enter your license key here">
|
376 |
<?php echo $valid; ?>
|
377 |
</td>
|
378 |
</tr>
|
402 |
$tz = ( $tz !== 'UTC' ) ? '<span style="color: red;">' . $tz . '!</span>' : $tz;
|
403 |
|
404 |
if ( $c = CRB_Cache::checker() ) {
|
405 |
+
$c = 'Yes | ' . cerber_date( $c ) . ' (' . cerber_ago_time( $c ) . ') ';
|
406 |
|
407 |
if ( $stat = CRB_Cache::get_stat( true ) ) {
|
408 |
$c .= ' | Cerber\'s entries: ' . count( $stat[1] );
|
cerber-users.php
CHANGED
@@ -688,7 +688,7 @@ function crb_admin_get_user_cell( $user_id = null, $base_url = '', $text = '', $
|
|
688 |
foreach ( $user_data['roles'] as $role ) {
|
689 |
$r[] = $wp_roles[ $role ]['name'];
|
690 |
}
|
691 |
-
$roles = '<span class="
|
692 |
}
|
693 |
|
694 |
$lbl = ( $label ) ? '<span class="crb-us-lbl">' . $label . '</span>' : '';
|
@@ -972,7 +972,7 @@ class CRB_Sessions_Table extends WP_List_Table {
|
|
972 |
//'ses_role' => __( 'Role', 'wp-cerber' ),
|
973 |
'ses_started' => __( 'Created', 'wp-cerber' ),
|
974 |
'ses_expires' => __( 'Expires', 'wp-cerber' ),
|
975 |
-
'ses_ip' => '<div class="
|
976 |
'ses_host' => __( 'Host Info', 'wp-cerber' ),
|
977 |
'ses_action' => __( 'Action', 'wp-cerber' ),
|
978 |
);
|
688 |
foreach ( $user_data['roles'] as $role ) {
|
689 |
$r[] = $wp_roles[ $role ]['name'];
|
690 |
}
|
691 |
+
$roles = '<span class="crb_act_role">' . implode( ', ', $r ) . '</span>';
|
692 |
}
|
693 |
|
694 |
$lbl = ( $label ) ? '<span class="crb-us-lbl">' . $label . '</span>' : '';
|
972 |
//'ses_role' => __( 'Role', 'wp-cerber' ),
|
973 |
'ses_started' => __( 'Created', 'wp-cerber' ),
|
974 |
'ses_expires' => __( 'Expires', 'wp-cerber' ),
|
975 |
+
'ses_ip' => '<div class="crb_act_icon"></div>' . __( 'IP Address', 'wp-cerber' ),
|
976 |
'ses_host' => __( 'Host Info', 'wp-cerber' ),
|
977 |
'ses_action' => __( 'Action', 'wp-cerber' ),
|
978 |
);
|
changelog.txt
CHANGED
@@ -1,3 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
= 8.6.6 =
|
2 |
* New: On the user sessions page, you can now search sessions by a user name, email, and the IP address from which a user has logged in.
|
3 |
* New: You can specify locations (URL Paths) to exclude requests from logging. They can be either exact matches or regular expressions (REGEX).
|
1 |
+
= 8.6.7 =
|
2 |
+
* New: In the professional version of WP Cerber, you can now permit user registrations for IP addresses in the White IP Access List only.
|
3 |
+
* New: All URLs in the logs are displayed in a shortened form without the website’s domain. There is no much value having see known things.
|
4 |
+
* New: A new label "IP Whitelisted" with green borders has been introduced. It is displayed in a log row on the Live Traffic if the IP address was in White IP Access List, but the appropriate setting “Use White IP Access List” was not enabled at the moment when the event was logged.
|
5 |
+
* New: If you now hover the mouse over a red square icon in the Activity or Live Traffic log, you see the reason why the IP address in the row is currently locked out.
|
6 |
+
* New: If you now hover the mouse over a green or black square Access List icon in the Activity or Live Traffic log, you see the comment you’ve previously specified for that Access List entry.
|
7 |
+
* Improved: All non-REGEX entries [in the list of prohibited usernames (logins)](https://wpcerber.com/using-list-of-prohibited-logins-to-catch-stupid-bots/) are case-insensitive now. This applies to standard Latin-based (ASCII) WordPress usernames only.
|
8 |
+
* Improved: The name of a group in the Group column on [Cerber.Hub’s](https://wpcerber.com/manage-multiple-websites/) website list is a link that takes you to the list of websites in the group.
|
9 |
+
* Improved: The launch time of the daily maintenance tasks is now set to the night-time at 02:20. If you need them to get rescheduled, you can manually delete the “cerber_daily” cron task via a plugin or deactivate/activate WP Cerber.
|
10 |
+
* Fixed: Configured [REST API restrictions](https://wpcerber.com/restrict-access-to-wordpress-rest-api/) have no effect if a WordPress is installed not in the root folder of a website (there is a path in the site URL). Affected versions: 8.6.1 and newer.
|
11 |
+
* Fixed: A bug in the logging subsystem: depending on server configuration, submitted form fields are not saved into the DB (if it is enabled in the logging settings).
|
12 |
+
* Fixed: A bug with Cerber’s admin CSS styles that were added in the previous version and hid the top pagination links on the "All posts" and "All posts" admin pages.
|
13 |
+
|
14 |
= 8.6.6 =
|
15 |
* New: On the user sessions page, you can now search sessions by a user name, email, and the IP address from which a user has logged in.
|
16 |
* New: You can specify locations (URL Paths) to exclude requests from logging. They can be either exact matches or regular expressions (REGEX).
|
common.php
CHANGED
@@ -35,12 +35,11 @@ if ( ! defined( 'WPINC' ) ) {
|
|
35 |
define( 'WPINC', 'wp-includes' );
|
36 |
}
|
37 |
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
|
45 |
/**
|
46 |
* Known WP scripts
|
@@ -223,6 +222,35 @@ function cerber_get_login_url(){
|
|
223 |
return $ret;
|
224 |
}
|
225 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
226 |
/**
|
227 |
* Always includes the path to the current WP installation
|
228 |
*
|
@@ -425,8 +453,7 @@ function cerber_check_environment(){
|
|
425 |
}
|
426 |
|
427 |
if ( ! in_array( 'mbstring', $ex_list ) || ! function_exists( 'mb_convert_encoding' ) ) {
|
428 |
-
cerber_admin_notice( __( 'ERROR:', 'wp-cerber' ) . '
|
429 |
-
You need to enable the PHP mbstring extension (multibyte string support) in your hosting control panel.' );
|
430 |
}
|
431 |
|
432 |
if ( cerber_get_mode() != crb_get_settings( 'boot-mode' ) ) {
|
@@ -486,8 +513,6 @@ function cerber_get_remote_ip() {
|
|
486 |
return $remote_ip;
|
487 |
}
|
488 |
|
489 |
-
//$options = crb_get_settings();
|
490 |
-
|
491 |
if ( defined( 'CERBER_IP_KEY' ) ) {
|
492 |
$remote_ip = filter_var( $_SERVER[ CERBER_IP_KEY ], FILTER_VALIDATE_IP );
|
493 |
}
|
@@ -823,22 +848,24 @@ function cerber_is_rest_url(){
|
|
823 |
return true;
|
824 |
}
|
825 |
|
826 |
-
if ( isset( $ret ) ) {
|
827 |
-
return $ret;
|
828 |
-
}
|
829 |
-
|
830 |
if ( ! $wp_rewrite ) { // see get_rest_url() in the multisite mode
|
831 |
return false;
|
832 |
}
|
833 |
|
834 |
-
$ret
|
|
|
|
|
835 |
|
836 |
-
|
837 |
|
838 |
$path = CRB_Request::get_request_path();
|
|
|
|
|
|
|
839 |
|
840 |
-
if ( 0 === strpos( $path,
|
841 |
-
|
|
|
842 |
$ret = true;
|
843 |
}
|
844 |
}
|
@@ -1081,6 +1108,10 @@ function cerber_is_rest_permitted() {
|
|
1081 |
* @return bool
|
1082 |
*/
|
1083 |
function cerber_user_has_role( $roles = array(), $user_id = null ) {
|
|
|
|
|
|
|
|
|
1084 |
if ( ! $user_id ) {
|
1085 |
$user = wp_get_current_user();
|
1086 |
}
|
@@ -1136,8 +1167,9 @@ function crb_get_rest_path() {
|
|
1136 |
}
|
1137 |
elseif ( cerber_is_permalink_enabled() ) {
|
1138 |
$path = CRB_Request::get_request_path();
|
|
|
1139 |
$pos = strlen( crb_get_rest_url() );
|
1140 |
-
$ret = substr(
|
1141 |
$ret = trim( $ret, '/' );
|
1142 |
}
|
1143 |
|
@@ -1366,6 +1398,7 @@ function cerber_get_labels( $type = 'activity' ) {
|
|
1366 |
|
1367 |
$act[70] = __( 'Request to REST API denied', 'wp-cerber' );
|
1368 |
$act[71] = __( 'XML-RPC request denied', 'wp-cerber' );
|
|
|
1369 |
$act[72] = __( 'User creation denied', 'wp-cerber' );
|
1370 |
$act[73] = __( 'User row update denied', 'wp-cerber' );
|
1371 |
$act[74] = __( 'Role update denied', 'wp-cerber' );
|
@@ -1414,6 +1447,7 @@ function cerber_get_labels( $type = 'activity' ) {
|
|
1414 |
$sts[34] = 'Unauthorized access denied';
|
1415 |
$sts[35] = __( 'Invalid user', 'wp-cerber' );
|
1416 |
$sts[36] = __( 'Incorrect password', 'wp-cerber' );
|
|
|
1417 |
|
1418 |
// @since 8.6.4
|
1419 |
$sts[500] = __( 'IP whitelisted', 'wp-cerber' );
|
@@ -1421,6 +1455,11 @@ function cerber_get_labels( $type = 'activity' ) {
|
|
1421 |
$sts[502] = 'Query whitelisted';
|
1422 |
$sts[503] = 'Namespace whitelisted';
|
1423 |
|
|
|
|
|
|
|
|
|
|
|
1424 |
cerber_cache_set( 'labels', $labels );
|
1425 |
}
|
1426 |
|
@@ -1840,132 +1879,6 @@ function cerber_check_for_newer() {
|
|
1840 |
return $ret;
|
1841 |
}
|
1842 |
|
1843 |
-
/**
|
1844 |
-
* Detects known browsers/crawlers and platform in User Agent string
|
1845 |
-
*
|
1846 |
-
* @param $ua
|
1847 |
-
*
|
1848 |
-
* @return string Sanitized browser name and platform on success
|
1849 |
-
* @since 6.0
|
1850 |
-
*/
|
1851 |
-
function cerber_detect_browser( $ua ) {
|
1852 |
-
$ua = trim( $ua );
|
1853 |
-
|
1854 |
-
if ( empty( $ua ) ) {
|
1855 |
-
return __( 'Not specified', 'wp-cerber' );
|
1856 |
-
}
|
1857 |
-
|
1858 |
-
if ( preg_match( '/\(compatible\;(.+)\)/i', $ua, $matches ) ) {
|
1859 |
-
$bot_info = explode( ';', $matches[1] );
|
1860 |
-
foreach ( $bot_info as $item ) {
|
1861 |
-
if ( stripos( $item, 'bot' )
|
1862 |
-
|| stripos( $item, 'crawler' )
|
1863 |
-
|| stripos( $item, 'spider' )
|
1864 |
-
|| stripos( $item, 'Yandex' )
|
1865 |
-
|| stripos( $item, 'Yahoo! Slurp' )
|
1866 |
-
) {
|
1867 |
-
if ( strpos( $ua, 'Android' ) ) {
|
1868 |
-
$item .= ' Mobile';
|
1869 |
-
}
|
1870 |
-
return htmlentities( $item );
|
1871 |
-
}
|
1872 |
-
}
|
1873 |
-
}
|
1874 |
-
elseif ( strpos( $ua, 'google.com' ) ) {
|
1875 |
-
// Various Google bots
|
1876 |
-
|
1877 |
-
$ret = '';
|
1878 |
-
|
1879 |
-
if ( false !== strpos( $ua, 'Googlebot' ) ) {
|
1880 |
-
if ( strpos( $ua, 'Android' ) ) {
|
1881 |
-
$ret = 'Googlebot Mobile';
|
1882 |
-
}
|
1883 |
-
elseif ( false !== strpos( $ua, 'Mozilla' ) ) {
|
1884 |
-
$ret = 'Googlebot Desktop';
|
1885 |
-
}
|
1886 |
-
}
|
1887 |
-
elseif ( preg_match( '/AdsBot-Google-Mobile|AdsBot-Google|APIs-Google/', $ua, $matches ) ) {
|
1888 |
-
$ret = $matches[0];
|
1889 |
-
}
|
1890 |
-
|
1891 |
-
if ( $ret ) {
|
1892 |
-
return htmlentities( $ret );
|
1893 |
-
}
|
1894 |
-
else {
|
1895 |
-
return __( 'Unknown', 'wp-cerber' );
|
1896 |
-
}
|
1897 |
-
}
|
1898 |
-
elseif ( 0 === strpos( $ua, 'Googlebot' ) ) {
|
1899 |
-
if ( preg_match( '/Googlebot-\w+/', $ua, $matches ) ) {
|
1900 |
-
return $matches[0];
|
1901 |
-
}
|
1902 |
-
}
|
1903 |
-
elseif ( 0 === strpos( $ua, 'WordPress/' ) ) {
|
1904 |
-
list( $ret ) = explode( ';', $ua, 2 );
|
1905 |
-
return htmlentities( $ret );
|
1906 |
-
}
|
1907 |
-
elseif ( 0 === strpos( $ua, 'PayPal IPN' ) ) {
|
1908 |
-
return 'PayPal Payment Notification';
|
1909 |
-
}
|
1910 |
-
elseif (0 === strpos( $ua, 'Wget/' )){
|
1911 |
-
return htmlentities( $ua );
|
1912 |
-
}
|
1913 |
-
elseif (0 === strpos( $ua, 'Mediapartners-Google' )){
|
1914 |
-
return 'AdSense Crawler';
|
1915 |
-
}
|
1916 |
-
|
1917 |
-
|
1918 |
-
$browsers = array(
|
1919 |
-
'Firefox' => 'Firefox',
|
1920 |
-
'OPR' => 'Opera',
|
1921 |
-
'Opera' => 'Opera',
|
1922 |
-
'YaBrowser' => 'Yandex Browser',
|
1923 |
-
'Trident' => 'Internet Explorer',
|
1924 |
-
'IE' => 'Internet Explorer',
|
1925 |
-
'Edge' => 'Microsoft Edge',
|
1926 |
-
'Chrome' => 'Chrome',
|
1927 |
-
'Safari' => 'Safari',
|
1928 |
-
'Lynx' => 'Lynx',
|
1929 |
-
);
|
1930 |
-
|
1931 |
-
$systems = array( 'Android' , 'Linux', 'Windows', 'iPhone', 'iPad', 'Macintosh', 'OpenBSD', 'Unix' );
|
1932 |
-
|
1933 |
-
$b = '';
|
1934 |
-
foreach ( $browsers as $browser_id => $browser ) {
|
1935 |
-
if ( false !== strpos( $ua, $browser_id ) ) {
|
1936 |
-
$b = $browser;
|
1937 |
-
break;
|
1938 |
-
}
|
1939 |
-
}
|
1940 |
-
|
1941 |
-
$s = '';
|
1942 |
-
foreach ( $systems as $system ) {
|
1943 |
-
if ( false !== strpos( $ua, $system ) ) {
|
1944 |
-
$s = $system;
|
1945 |
-
break;
|
1946 |
-
}
|
1947 |
-
}
|
1948 |
-
|
1949 |
-
if ($b == 'Lynx' && !$s) {
|
1950 |
-
$s = 'Linux';
|
1951 |
-
}
|
1952 |
-
|
1953 |
-
if ( $b && $s ) {
|
1954 |
-
$ret = $b . ' on ' . $s;
|
1955 |
-
}
|
1956 |
-
elseif ( 0 === strpos( $ua, 'python-requests' ) ) {
|
1957 |
-
$ret = 'Python Script';
|
1958 |
-
}
|
1959 |
-
elseif ( 0 === strpos( $ua, 'ApacheBench' ) ) {
|
1960 |
-
$ret = $ua;
|
1961 |
-
}
|
1962 |
-
else {
|
1963 |
-
$ret = __( 'Unknown', 'wp-cerber' );
|
1964 |
-
}
|
1965 |
-
|
1966 |
-
return htmlentities( $ret );
|
1967 |
-
}
|
1968 |
-
|
1969 |
/**
|
1970 |
* Is user agent string indicates bot (crawler)
|
1971 |
*
|
@@ -2114,6 +2027,12 @@ function cerber_db_get_results( $query, $type = MYSQLI_ASSOC ) {
|
|
2114 |
return $ret;
|
2115 |
}
|
2116 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2117 |
function cerber_db_get_row( $query, $type = MYSQLI_ASSOC ) {
|
2118 |
|
2119 |
if ( ! $result = cerber_db_query( $query ) ) {
|
@@ -2132,6 +2051,11 @@ function cerber_db_get_row( $query, $type = MYSQLI_ASSOC ) {
|
|
2132 |
return $ret;
|
2133 |
}
|
2134 |
|
|
|
|
|
|
|
|
|
|
|
2135 |
function cerber_db_get_col( $query ) {
|
2136 |
|
2137 |
if ( ! $result = cerber_db_query( $query ) ) {
|
@@ -3424,6 +3348,10 @@ final class CRB_Cache {
|
|
3424 |
wp_cache_set( self::$wp_key_list, $entries, self::$wp_key_list );
|
3425 |
}
|
3426 |
|
|
|
|
|
|
|
|
|
3427 |
return array( self::$stat, $entries );
|
3428 |
}
|
3429 |
|
35 |
define( 'WPINC', 'wp-includes' );
|
36 |
}
|
37 |
|
38 |
+
const MYSQL_FETCH_OBJECT = 5;
|
39 |
+
const MYSQL_FETCH_OBJECT_K = 6;
|
40 |
+
const CRB_IP_NET_RANGE = '/[^a-f\d\-\.\:\*\/]+/i';
|
41 |
+
const CRB_SANITIZE_ID = '[a-z\d\_\-\.\:\*\/]+';
|
42 |
+
const CRB_SANITIZE_KEY = '/[^a-z_\-\d.:\/]/i';
|
|
|
43 |
|
44 |
/**
|
45 |
* Known WP scripts
|
222 |
return $ret;
|
223 |
}
|
224 |
|
225 |
+
/**
|
226 |
+
* @since 8.6.6.1
|
227 |
+
*
|
228 |
+
* @return array
|
229 |
+
*/
|
230 |
+
function crb_parse_site_url() {
|
231 |
+
static $result;
|
232 |
+
|
233 |
+
if ( isset( $result ) ) {
|
234 |
+
return $result;
|
235 |
+
}
|
236 |
+
|
237 |
+
$site_url = cerber_get_site_url();
|
238 |
+
$p1 = strpos( $site_url, '//' );
|
239 |
+
$p2 = strpos( $site_url, '/', $p1 + 2 );
|
240 |
+
if ( $p2 !== false ) {
|
241 |
+
$site_root = substr( $site_url, 0, $p2 );
|
242 |
+
$sub_folder = substr( $site_url, $p2 );
|
243 |
+
}
|
244 |
+
else {
|
245 |
+
$site_root = $site_url;
|
246 |
+
$sub_folder = '';
|
247 |
+
}
|
248 |
+
|
249 |
+
$result = array( $site_root, $sub_folder );
|
250 |
+
|
251 |
+
return $result;
|
252 |
+
}
|
253 |
+
|
254 |
/**
|
255 |
* Always includes the path to the current WP installation
|
256 |
*
|
453 |
}
|
454 |
|
455 |
if ( ! in_array( 'mbstring', $ex_list ) || ! function_exists( 'mb_convert_encoding' ) ) {
|
456 |
+
cerber_admin_notice( __( 'ERROR:', 'wp-cerber' ) . ' Required PHP extension <b>mbstring</b> is not enabled on this website. Some plugin features do work properly. Please enable the PHP mbstring extension (multibyte string support) in your hosting control panel.' );
|
|
|
457 |
}
|
458 |
|
459 |
if ( cerber_get_mode() != crb_get_settings( 'boot-mode' ) ) {
|
513 |
return $remote_ip;
|
514 |
}
|
515 |
|
|
|
|
|
516 |
if ( defined( 'CERBER_IP_KEY' ) ) {
|
517 |
$remote_ip = filter_var( $_SERVER[ CERBER_IP_KEY ], FILTER_VALIDATE_IP );
|
518 |
}
|
848 |
return true;
|
849 |
}
|
850 |
|
|
|
|
|
|
|
|
|
851 |
if ( ! $wp_rewrite ) { // see get_rest_url() in the multisite mode
|
852 |
return false;
|
853 |
}
|
854 |
|
855 |
+
if ( isset( $ret ) ) {
|
856 |
+
return $ret;
|
857 |
+
}
|
858 |
|
859 |
+
$ret = false;
|
860 |
|
861 |
$path = CRB_Request::get_request_path();
|
862 |
+
list( $root, $dir ) = crb_parse_site_url();
|
863 |
+
$rest_prefix = $dir . '/' . rest_get_url_prefix() . '/';
|
864 |
+
$rp_len = strlen( $rest_prefix );
|
865 |
|
866 |
+
if ( 0 === strpos( substr( $path, 0, $rp_len ), $rest_prefix ) ) {
|
867 |
+
$ru_len = strlen( crb_get_rest_url() );
|
868 |
+
if ( 0 === strpos( substr( $root . $path, 0, $ru_len ), crb_get_rest_url() ) ) {
|
869 |
$ret = true;
|
870 |
}
|
871 |
}
|
1108 |
* @return bool
|
1109 |
*/
|
1110 |
function cerber_user_has_role( $roles = array(), $user_id = null ) {
|
1111 |
+
if ( ! $roles ) {
|
1112 |
+
return false;
|
1113 |
+
}
|
1114 |
+
|
1115 |
if ( ! $user_id ) {
|
1116 |
$user = wp_get_current_user();
|
1117 |
}
|
1167 |
}
|
1168 |
elseif ( cerber_is_permalink_enabled() ) {
|
1169 |
$path = CRB_Request::get_request_path();
|
1170 |
+
list( $root, $dir ) = crb_parse_site_url();
|
1171 |
$pos = strlen( crb_get_rest_url() );
|
1172 |
+
$ret = substr( $root . $path, $pos ); // @since 8.1
|
1173 |
$ret = trim( $ret, '/' );
|
1174 |
}
|
1175 |
|
1398 |
|
1399 |
$act[70] = __( 'Request to REST API denied', 'wp-cerber' );
|
1400 |
$act[71] = __( 'XML-RPC request denied', 'wp-cerber' );
|
1401 |
+
|
1402 |
$act[72] = __( 'User creation denied', 'wp-cerber' );
|
1403 |
$act[73] = __( 'User row update denied', 'wp-cerber' );
|
1404 |
$act[74] = __( 'Role update denied', 'wp-cerber' );
|
1447 |
$sts[34] = 'Unauthorized access denied';
|
1448 |
$sts[35] = __( 'Invalid user', 'wp-cerber' );
|
1449 |
$sts[36] = __( 'Incorrect password', 'wp-cerber' );
|
1450 |
+
$sts[37] = __( 'IP address is not allowed', 'wp-cerber' );
|
1451 |
|
1452 |
// @since 8.6.4
|
1453 |
$sts[500] = __( 'IP whitelisted', 'wp-cerber' );
|
1455 |
$sts[502] = 'Query whitelisted';
|
1456 |
$sts[503] = 'Namespace whitelisted';
|
1457 |
|
1458 |
+
// IP is in the whitelist, but "use whitelist" setting is not enabled
|
1459 |
+
$sts[510] = $sts[500]; // TI
|
1460 |
+
$sts[511] = $sts[500]; // DS
|
1461 |
+
$sts[512] = $sts[500]; // DS
|
1462 |
+
|
1463 |
cerber_cache_set( 'labels', $labels );
|
1464 |
}
|
1465 |
|
1879 |
return $ret;
|
1880 |
}
|
1881 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1882 |
/**
|
1883 |
* Is user agent string indicates bot (crawler)
|
1884 |
*
|
2027 |
return $ret;
|
2028 |
}
|
2029 |
|
2030 |
+
/**
|
2031 |
+
* @param string $query
|
2032 |
+
* @param int $type
|
2033 |
+
*
|
2034 |
+
* @return bool|array|object
|
2035 |
+
*/
|
2036 |
function cerber_db_get_row( $query, $type = MYSQLI_ASSOC ) {
|
2037 |
|
2038 |
if ( ! $result = cerber_db_query( $query ) ) {
|
2051 |
return $ret;
|
2052 |
}
|
2053 |
|
2054 |
+
/**
|
2055 |
+
* @param string $query
|
2056 |
+
*
|
2057 |
+
* @return array
|
2058 |
+
*/
|
2059 |
function cerber_db_get_col( $query ) {
|
2060 |
|
2061 |
if ( ! $result = cerber_db_query( $query ) ) {
|
3348 |
wp_cache_set( self::$wp_key_list, $entries, self::$wp_key_list );
|
3349 |
}
|
3350 |
|
3351 |
+
if ( empty( $entries ) ) {
|
3352 |
+
$entries = array();
|
3353 |
+
}
|
3354 |
+
|
3355 |
return array( self::$stat, $entries );
|
3356 |
}
|
3357 |
|
dashboard.php
CHANGED
@@ -31,11 +31,12 @@
|
|
31 |
*/
|
32 |
|
33 |
|
34 |
-
if ( ! defined( 'WPINC' ) ) {
|
|
|
|
|
35 |
|
36 |
require_once( dirname( __FILE__ ) . '/cerber-tools.php' );
|
37 |
|
38 |
-
|
39 |
if ( ! is_multisite() ) {
|
40 |
add_action( 'admin_menu', 'cerber_admin_menu' );
|
41 |
}
|
@@ -1019,47 +1020,59 @@ function cerber_show_activity( $args = array(), $echo = true ) {
|
|
1019 |
$info .= $tmp;
|
1020 |
}
|
1021 |
|
1022 |
-
$user_cache = array();
|
1023 |
-
|
1024 |
-
//if ( $rows = $wpdb->get_results( $query ) ) {
|
1025 |
if ( $rows = cerber_db_get_results( $query, MYSQL_FETCH_OBJECT ) ) {
|
1026 |
|
1027 |
-
$total
|
1028 |
-
$tbody
|
1029 |
-
$roles = wp_roles()->roles;
|
1030 |
$country = '';
|
1031 |
-
$geo
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1032 |
|
1033 |
foreach ( $rows as $row ) {
|
1034 |
|
1035 |
$ip_id = cerber_get_id_ip( $row->ip );
|
1036 |
|
1037 |
-
$activity = '<span class="crb-activity actv' . $row->activity . '">' . $labels[ $row->activity ] . '</span>';
|
1038 |
-
/*
|
1039 |
-
if ($row->activity == 50 ) {
|
1040 |
-
$activity .= ' <b>'.htmlspecialchars($row->user_login).'</b>';
|
1041 |
-
}*/
|
1042 |
|
1043 |
if ( empty( $args['no_details'] ) && $row->details ) {
|
1044 |
$details = explode( '|', $row->details );
|
|
|
1045 |
if ( ! empty( $details[0] ) && isset( $status_labels[ $details[0] ] ) ) {
|
1046 |
-
$activity .= ' <span class = "crb-log-status crb-status-' . $details[0] . '">' . $status_labels[ $details[0] ] . '</span>';
|
1047 |
}
|
1048 |
-
//elseif ($row->activity == 50 && $details[4]) $activity .= ' '.$details[4];
|
1049 |
|
1050 |
-
if (
|
1051 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1052 |
'<wbr>-',
|
1053 |
'<wbr>/'
|
1054 |
-
), $
|
1055 |
}
|
1056 |
|
1057 |
}
|
|
|
1058 |
$activity = '<div class="crb' . $row->activity . '">' . $activity . '</div>';
|
1059 |
|
1060 |
$name = crb_admin_get_user_cell( $row->user_id, $base_url );
|
1061 |
|
1062 |
-
//$ip = '<a href="' . $base_url . '&filter_ip=' . $row->ip . '">' . $row->ip . '</a>';
|
1063 |
$username = '<a href="' . $base_url . '&filter_login=' . urlencode( $row->user_login ) . '">' . $row->user_login . '</a>';
|
1064 |
|
1065 |
$ip_info = cerber_get_ip_info( $row->ip, true );
|
@@ -1070,24 +1083,6 @@ function cerber_show_activity( $args = array(), $echo = true ) {
|
|
1070 |
$hostname = '<img data-ip-id="' . $ip_id . '" class="crb-no-hostname" src="' . $crb_ajax_loader . '" />' . "\n";
|
1071 |
}
|
1072 |
|
1073 |
-
/*$tip = '';
|
1074 |
-
|
1075 |
-
$acl = cerber_acl_check( $row->ip );
|
1076 |
-
if ( $acl == 'W' ) {
|
1077 |
-
$tip = __( 'White IP Access List', 'wp-cerber' );
|
1078 |
-
}
|
1079 |
-
elseif ( $acl == 'B' ) {
|
1080 |
-
$tip = __( 'Black IP Access List', 'wp-cerber' );
|
1081 |
-
}
|
1082 |
-
|
1083 |
-
if ( cerber_block_check( $row->ip ) ) {
|
1084 |
-
$block = ' color-blocked ';
|
1085 |
-
$tip .= ' ' . __( 'Locked out', 'wp-cerber' );
|
1086 |
-
}
|
1087 |
-
else {
|
1088 |
-
$block = '';
|
1089 |
-
}*/
|
1090 |
-
|
1091 |
if ( ! empty( $args['date'] ) && $args['date'] == 'ago' ) {
|
1092 |
$date = cerber_ago_time( $row->stamp );
|
1093 |
}
|
@@ -1099,12 +1094,11 @@ function cerber_show_activity( $args = array(), $echo = true ) {
|
|
1099 |
$country = '</td><td>' . crb_country_html( $row->country, $row->ip );
|
1100 |
}
|
1101 |
|
1102 |
-
//$tbody .= '<tr class="acrow' . $row->activity . '"><td><div class="css-table"><div><span class="act-icon ip-acl' . $acl . ' ' . $block . '" title="' . $tip . '"></span></div><div>' . $ip . '</div></div></td><td>' . $hostname . $country . '</td><td>' . $date . '</td><td class="acinfo">' . $activity . '</td><td>' . $name . '</td><td>' . $username . '</td></tr>';
|
1103 |
$tbody .= '<tr class="acrow' . $row->activity . '"><td>' . crb_admin_ip_cell( $row->ip, $base_url . '&filter_ip=' . $row->ip ) . '</td><td>' . $hostname . $country . '</td><td>' . $date . '</td><td class="acinfo">' . $activity . '</td><td>' . $name . '</td><td>' . $username . '</td></tr>';
|
1104 |
}
|
1105 |
|
1106 |
$heading = array(
|
1107 |
-
'<div class="
|
1108 |
__( 'Hostname', 'wp-cerber' ),
|
1109 |
__( 'Country', 'wp-cerber' ),
|
1110 |
__( 'Date', 'wp-cerber' ),
|
@@ -1132,7 +1126,7 @@ function cerber_show_activity( $args = array(), $echo = true ) {
|
|
1132 |
cerber_admin_link_add( array(
|
1133 |
'cerber_admin_do' => 'export',
|
1134 |
'type' => 'activity',
|
1135 |
-
), true ) . '"><i class="crb-icon crb-icon-
|
1136 |
//) ) . '"><span class="dashicons dashicons-download" style="vertical-align: middle;"></span> ' . __( 'Export', 'wp-cerber' ) . '</a>';
|
1137 |
}
|
1138 |
}
|
@@ -1337,19 +1331,26 @@ function crb_admin_ip_cell( $ip, $ip_link = '', $text = '' ) {
|
|
1337 |
return $cache[ $ip ];
|
1338 |
}
|
1339 |
|
|
|
|
|
|
|
1340 |
$tip = '';
|
1341 |
|
1342 |
-
|
1343 |
-
|
1344 |
-
$tip = __( 'White IP Access List', 'wp-cerber' );
|
1345 |
}
|
1346 |
-
|
1347 |
-
|
|
|
|
|
|
|
|
|
|
|
1348 |
}
|
1349 |
|
1350 |
-
if ( cerber_block_check( $ip ) ) {
|
1351 |
-
$block = '
|
1352 |
-
$tip
|
1353 |
}
|
1354 |
else {
|
1355 |
$block = '';
|
@@ -1359,8 +1360,8 @@ function crb_admin_ip_cell( $ip, $ip_link = '', $text = '' ) {
|
|
1359 |
$ip = '<a href="' . $ip_link . '">' . $ip . '</a>';
|
1360 |
}
|
1361 |
|
1362 |
-
$
|
1363 |
-
|
1364 |
|
1365 |
return $cache[ $ip ];
|
1366 |
}
|
@@ -1383,17 +1384,20 @@ function cerber_ip_extra_view( $ip, $context = 'activity' ) {
|
|
1383 |
$ip_navs .= ' <a class="crb-button-tiny" href="' . cerber_admin_link( 'activity', array( 'filter_ip' => $ip ) ) . '">' . __( 'Check for activities', 'wp-cerber' ) . '</a>';
|
1384 |
}
|
1385 |
|
1386 |
-
$
|
|
|
|
|
|
|
1387 |
|
1388 |
if ( $acl == 'W' ) {
|
1389 |
-
$ip_navs .= ' <span class="
|
1390 |
}
|
1391 |
elseif ( $acl == 'B' ) {
|
1392 |
-
|
1393 |
}
|
1394 |
|
1395 |
-
if ( cerber_block_check( $ip ) ) {
|
1396 |
-
$ip_navs .= ' <span class="
|
1397 |
}
|
1398 |
|
1399 |
// Filter activity by ...
|
@@ -1441,20 +1445,21 @@ function cerber_ip_extra_view( $ip, $context = 'activity' ) {
|
|
1441 |
if ( ! cerber_is_myip( $ip ) && ! cerber_acl_check( $ip ) ) {
|
1442 |
|
1443 |
if ( $network ) {
|
1444 |
-
$net_button = '<button type="submit" value="' . $network . '" name="add_acl" class="button button-
|
1445 |
}
|
1446 |
else {
|
1447 |
$net_button = '<button disabled="disabled" class="button button-secondary cerber-button">';
|
1448 |
}
|
1449 |
-
$net_button .= '<span class="dashicons-before dashicons-networking"></span> ' . __( 'Add network to the Black List', 'wp-cerber' ) . '</button> ';
|
1450 |
|
1451 |
-
$
|
|
|
|
|
1452 |
<input type="hidden" name="cerber_admin_do" value="add2acl">
|
1453 |
<input type="hidden" name="add_acl_comment" value="">
|
1454 |
<input type="hidden" name="acl_tag" value="B">
|
1455 |
-
<button type="submit" value="' . $ip . '" name="add_acl" class="button button-primary cerber-button"
|
1456 |
-
|
1457 |
-
|
1458 |
'</form>';
|
1459 |
}
|
1460 |
|
@@ -1486,7 +1491,7 @@ function cerber_user_extra_view( $user_id, $context = 'activity' ) {
|
|
1486 |
foreach ( $u->roles as $role ) {
|
1487 |
$roles[] = $wp_roles->roles[ $role ]['name'];
|
1488 |
}
|
1489 |
-
$roles = '<span class="
|
1490 |
}
|
1491 |
else {
|
1492 |
$roles = '';
|
@@ -2570,11 +2575,11 @@ function crb_admin_alert_link() {
|
|
2570 |
|
2571 |
if ( $mode == 'on' ) {
|
2572 |
$text = __( 'Create Alert', 'wp-cerber' );
|
2573 |
-
$icon = 'crb-icon-
|
2574 |
}
|
2575 |
else {
|
2576 |
$text = __( 'Delete Alert', 'wp-cerber' );
|
2577 |
-
$icon = 'crb-icon-
|
2578 |
}
|
2579 |
|
2580 |
|
@@ -2792,27 +2797,6 @@ function cerber_admin_head() {
|
|
2792 |
crb_ajax_nonce = '<?php echo $crb_ajax_nonce; ?>';
|
2793 |
crb_ajax_loader = '<?php echo $crb_ajax_loader; ?>';
|
2794 |
crb_lab_available = <?php echo $crb_lab_available; ?>;
|
2795 |
-
|
2796 |
-
crb_admin_page = '<?php echo crb_admin_get_page(); ?>';
|
2797 |
-
crb_admin_tab = '<?php echo crb_admin_get_tab(); ?>';
|
2798 |
-
|
2799 |
-
crb_scan_msg_steps = <?php echo json_encode( cerber_step_desc() ); ?>;
|
2800 |
-
crb_scan_msg_issues = <?php echo json_encode( cerber_get_issue_label() ); ?>;
|
2801 |
-
crb_scan_msg_risks = <?php echo json_encode( cerber_get_risk_label() ); ?>;
|
2802 |
-
crb_scan_msg_misc = <?php echo json_encode( array(
|
2803 |
-
'delete_file' => array(
|
2804 |
-
__( 'Are you sure you want to delete selected files?', 'wp-cerber' ),
|
2805 |
-
__( 'These files have been moved to the quarantine', 'wp-cerber' )
|
2806 |
-
),
|
2807 |
-
'ignore_add_file' => array(
|
2808 |
-
__( 'Do you want to add selected files to the ignore list?', 'wp-cerber' ),
|
2809 |
-
__( 'These files have been added to the ignore list', 'wp-cerber' ),
|
2810 |
-
),
|
2811 |
-
'file_error' => __( 'Some errors occurred', 'wp-cerber' ),
|
2812 |
-
'all_ok' => __( 'All files have been processed', 'wp-cerber' ),
|
2813 |
-
) );
|
2814 |
-
?>;
|
2815 |
-
|
2816 |
</script>
|
2817 |
|
2818 |
<?php
|
@@ -2830,20 +2814,46 @@ function cerber_admin_head() {
|
|
2830 |
}
|
2831 |
|
2832 |
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2833 |
<style type="text/css" media="all">
|
2834 |
/* Thickbox styles */
|
2835 |
#TB_title {
|
2836 |
background-color: #0085ba !important;
|
2837 |
-
color
|
2838 |
}
|
|
|
2839 |
.tb-close-icon {
|
2840 |
-
color
|
2841 |
}
|
|
|
2842 |
#TB_window {
|
2843 |
font-family: 'Roboto', sans-serif;
|
2844 |
}
|
2845 |
|
2846 |
-
/* Hide alien's
|
2847 |
.update-nag,
|
2848 |
#update-nag,
|
2849 |
#setting-error-tgmpa,
|
@@ -3693,7 +3703,7 @@ function cerber_show_traffic( $args = array(), $echo = true ) {
|
|
3693 |
foreach ( $u->roles as $role ) {
|
3694 |
$r[] = $roles[ $role ]['name'];
|
3695 |
}
|
3696 |
-
$r = '<span class="
|
3697 |
}
|
3698 |
}
|
3699 |
else {
|
@@ -3738,24 +3748,43 @@ function cerber_show_traffic( $args = array(), $echo = true ) {
|
|
3738 |
|
3739 |
$tbody = '';
|
3740 |
$country = '';
|
3741 |
-
$geo
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3742 |
|
3743 |
foreach ($rows as $row) {
|
3744 |
|
3745 |
// URI
|
3746 |
|
3747 |
-
$full_uri
|
3748 |
-
|
3749 |
-
$
|
3750 |
-
|
3751 |
-
|
|
|
|
|
|
|
|
|
|
|
3752 |
$truncated = true;
|
3753 |
-
$row_uri
|
|
|
|
|
|
|
3754 |
}
|
|
|
|
|
3755 |
$row_uri = str_replace( array( '-', '/', '%', '&', '=', '?', '(', ')', ),
|
3756 |
array( '<wbr>-', '<wbr>/', '<wbr>%', '<wbr>&', '<wbr>=', '<wbr>?', '<wbr>(', ')<wbr>' ), $row_uri );
|
3757 |
-
|
3758 |
-
array( '<wbr>-', '<wbr>/', '<wbr>%', '<wbr>&', '<wbr>=', '<wbr>?', '<wbr>(', ')<wbr>' ), $full_uri );
|
3759 |
if ( $truncated ) {
|
3760 |
$row_uri .= ' <span style="color: red;">…</span>';
|
3761 |
}
|
@@ -3771,8 +3800,6 @@ function cerber_show_traffic( $args = array(), $echo = true ) {
|
|
3771 |
$name = '';
|
3772 |
}
|
3773 |
|
3774 |
-
$ip = '<a href="' . $base_url . '&filter_ip=' . $row->ip . '">' . $row->ip . '</a>';
|
3775 |
-
|
3776 |
if ( ! empty( $row->hostname ) ) {
|
3777 |
$hostname = $row->hostname;
|
3778 |
}
|
@@ -3786,23 +3813,6 @@ function cerber_show_traffic( $args = array(), $echo = true ) {
|
|
3786 |
}
|
3787 |
}
|
3788 |
|
3789 |
-
$tip='';
|
3790 |
-
|
3791 |
-
if ( $acl[ $row->ip ] == 'W' ) {
|
3792 |
-
$tip = __( 'White IP Access List', 'wp-cerber' );
|
3793 |
-
}
|
3794 |
-
elseif ( $acl[ $row->ip ] == 'B' ) {
|
3795 |
-
$tip = __( 'Black IP Access List', 'wp-cerber' );
|
3796 |
-
}
|
3797 |
-
|
3798 |
-
if ( $block[ $row->ip ] ) {
|
3799 |
-
$color = ' color-blocked ';
|
3800 |
-
$tip .= ' ' . __( 'Locked out', 'wp-cerber' );
|
3801 |
-
}
|
3802 |
-
else {
|
3803 |
-
$color = '';
|
3804 |
-
}
|
3805 |
-
|
3806 |
if ( ! empty( $args['date'] ) && $args['date'] == 'ago' ) {
|
3807 |
$date = cerber_ago_time( $row->stamp );
|
3808 |
}
|
@@ -3817,11 +3827,11 @@ function cerber_show_traffic( $args = array(), $echo = true ) {
|
|
3817 |
$activity = '';
|
3818 |
if ( ! empty( $events[ $row->session_id ] ) ) {
|
3819 |
foreach ( $events[ $row->session_id ] as $a ) {
|
3820 |
-
$activity .= '<p><a href="' . $base_url . '&filter_activity=' . $a->activity . '" data-no-js="1">' . $labels[ $a->activity ] . '</a>';
|
3821 |
|
3822 |
$ad = explode( '|', $a->details );
|
3823 |
if ( ! empty( $ad[0] ) && $ad[0] != 500 ) { // 500 Whitelisted
|
3824 |
-
$activity .= ' <span class = "crb-log-status crb-status-' . $ad[0] . '">' . $status_labels[ $ad[0] ] . '</span>';
|
3825 |
}
|
3826 |
}
|
3827 |
}
|
@@ -3849,6 +3859,9 @@ function cerber_show_traffic( $args = array(), $echo = true ) {
|
|
3849 |
$more_details = array();
|
3850 |
|
3851 |
if ( $truncated ) {
|
|
|
|
|
|
|
3852 |
$more_details[] = array(
|
3853 |
'Full URL',
|
3854 |
'<span class="crb-monospace">' . $full_uri . '</span>'
|
@@ -3951,21 +3964,21 @@ function cerber_show_traffic( $args = array(), $echo = true ) {
|
|
3951 |
$more_details[] = array( '', cerber_table_view( '$_SERVER', $details[7] ) );
|
3952 |
}
|
3953 |
|
3954 |
-
$
|
3955 |
if ( ! empty( $row->php_errors ) ) {
|
3956 |
$err_list = @unserialize( $row->php_errors );
|
3957 |
if ( $err_list ) {
|
3958 |
-
$
|
3959 |
-
foreach ( $err_list as $
|
3960 |
-
$
|
3961 |
-
'type' => cerber_get_err_type( $
|
3962 |
-
'info' => $
|
3963 |
-
'file' => $
|
3964 |
-
'line' => $
|
3965 |
);
|
3966 |
}
|
3967 |
-
$more_details[] = array( '', cerber_table_view( 'Software errors', $
|
3968 |
-
$
|
3969 |
}
|
3970 |
}
|
3971 |
|
@@ -3991,7 +4004,7 @@ function cerber_show_traffic( $args = array(), $echo = true ) {
|
|
3991 |
$toggle_class = 'crb-toggle';
|
3992 |
}
|
3993 |
|
3994 |
-
$request = '<b>' . $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>' . $req_status . $
|
3995 |
|
3996 |
// Decorating this table can't be done via simple CSS
|
3997 |
if ( ! empty( $even ) ) {
|
@@ -4006,7 +4019,7 @@ function cerber_show_traffic( $args = array(), $echo = true ) {
|
|
4006 |
$tbody .= '<tr class="' . $class . ' '.$toggle_class.'">
|
4007 |
<td>' . $date . '</td>
|
4008 |
<td class="crb-request">' . $request . '</td>
|
4009 |
-
<td
|
4010 |
<td>' . $hostname . $country . '</td>
|
4011 |
<td>' . cerber_detect_browser( $details[1] ) . '</td>
|
4012 |
<td>' . $name . '</td></tr>';
|
@@ -4017,7 +4030,7 @@ function cerber_show_traffic( $args = array(), $echo = true ) {
|
|
4017 |
$heading = array(
|
4018 |
__( 'Date', 'wp-cerber' ),
|
4019 |
__( 'Request', 'wp-cerber' ),
|
4020 |
-
'<div class="
|
4021 |
__( 'Host Info', 'wp-cerber' ),
|
4022 |
__( 'User Agent', 'wp-cerber' ),
|
4023 |
__( 'Local User', 'wp-cerber' ),
|
@@ -4083,7 +4096,7 @@ function cerber_show_traffic( $args = array(), $echo = true ) {
|
|
4083 |
'cerber_admin_do' => 'export',
|
4084 |
'type' => 'traffic',
|
4085 |
), true )
|
4086 |
-
. '"><i class="crb-icon crb-icon-
|
4087 |
|
4088 |
$right_links = $search_button .' '. $export_button;
|
4089 |
|
@@ -4103,9 +4116,168 @@ function cerber_show_traffic( $args = array(), $echo = true ) {
|
|
4103 |
$ret = '<p class="cerber-margin" style="padding: 0.5em; font-weight: bold;">Logging is currently disabled, you are viewing historical information.</p>' . $ret;
|
4104 |
}
|
4105 |
|
4106 |
-
if ($echo)
|
4107 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4108 |
|
|
|
4109 |
}
|
4110 |
|
4111 |
/**
|
31 |
*/
|
32 |
|
33 |
|
34 |
+
if ( ! defined( 'WPINC' ) ) {
|
35 |
+
exit;
|
36 |
+
}
|
37 |
|
38 |
require_once( dirname( __FILE__ ) . '/cerber-tools.php' );
|
39 |
|
|
|
40 |
if ( ! is_multisite() ) {
|
41 |
add_action( 'admin_menu', 'cerber_admin_menu' );
|
42 |
}
|
1020 |
$info .= $tmp;
|
1021 |
}
|
1022 |
|
|
|
|
|
|
|
1023 |
if ( $rows = cerber_db_get_results( $query, MYSQL_FETCH_OBJECT ) ) {
|
1024 |
|
1025 |
+
$total = cerber_db_get_var( "SELECT FOUND_ROWS()" );
|
1026 |
+
$tbody = '';
|
|
|
1027 |
$country = '';
|
1028 |
+
$geo = lab_lab();
|
1029 |
+
|
1030 |
+
if ( ! defined( 'CERBER_FULL_URI' ) || ! CERBER_FULL_URI ) {
|
1031 |
+
$short = true;
|
1032 |
+
$site_url = cerber_get_site_url();
|
1033 |
+
$site_url = substr( $site_url, strpos( $site_url, '://' ) + 3 );
|
1034 |
+
$start = strlen( rtrim( $site_url, '/' ) );
|
1035 |
+
}
|
1036 |
+
else {
|
1037 |
+
$short = false;
|
1038 |
+
$start = 0;
|
1039 |
+
}
|
1040 |
|
1041 |
foreach ( $rows as $row ) {
|
1042 |
|
1043 |
$ip_id = cerber_get_id_ip( $row->ip );
|
1044 |
|
1045 |
+
$activity = '<span class="crb-activity actv' . $row->activity . '" title="' . $row->activity . '">' . $labels[ $row->activity ] . '</span>';
|
|
|
|
|
|
|
|
|
1046 |
|
1047 |
if ( empty( $args['no_details'] ) && $row->details ) {
|
1048 |
$details = explode( '|', $row->details );
|
1049 |
+
|
1050 |
if ( ! empty( $details[0] ) && isset( $status_labels[ $details[0] ] ) ) {
|
1051 |
+
$activity .= ' <span class = "crb-log-status crb-status-' . $details[0] . '" title="' . $details[0] . '">' . $status_labels[ $details[0] ] . '</span>';
|
1052 |
}
|
|
|
1053 |
|
1054 |
+
if ( ( $uri = crb_array_get( $details, 4 ) )
|
1055 |
+
&& ( $row->activity < 10 || $row->activity > 12 ) ) {
|
1056 |
+
|
1057 |
+
if ( $short && 0 === strpos( $uri, $site_url ) ) {
|
1058 |
+
$ac_uri = substr( $uri, $start );
|
1059 |
+
}
|
1060 |
+
else {
|
1061 |
+
$ac_uri = $uri;
|
1062 |
+
}
|
1063 |
+
|
1064 |
+
$activity .= '<p class="crb_act_url" title="' . $uri . '">' . str_replace( array( '-', '/' ), array(
|
1065 |
'<wbr>-',
|
1066 |
'<wbr>/'
|
1067 |
+
), $ac_uri ) . '</p>';
|
1068 |
}
|
1069 |
|
1070 |
}
|
1071 |
+
|
1072 |
$activity = '<div class="crb' . $row->activity . '">' . $activity . '</div>';
|
1073 |
|
1074 |
$name = crb_admin_get_user_cell( $row->user_id, $base_url );
|
1075 |
|
|
|
1076 |
$username = '<a href="' . $base_url . '&filter_login=' . urlencode( $row->user_login ) . '">' . $row->user_login . '</a>';
|
1077 |
|
1078 |
$ip_info = cerber_get_ip_info( $row->ip, true );
|
1083 |
$hostname = '<img data-ip-id="' . $ip_id . '" class="crb-no-hostname" src="' . $crb_ajax_loader . '" />' . "\n";
|
1084 |
}
|
1085 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1086 |
if ( ! empty( $args['date'] ) && $args['date'] == 'ago' ) {
|
1087 |
$date = cerber_ago_time( $row->stamp );
|
1088 |
}
|
1094 |
$country = '</td><td>' . crb_country_html( $row->country, $row->ip );
|
1095 |
}
|
1096 |
|
|
|
1097 |
$tbody .= '<tr class="acrow' . $row->activity . '"><td>' . crb_admin_ip_cell( $row->ip, $base_url . '&filter_ip=' . $row->ip ) . '</td><td>' . $hostname . $country . '</td><td>' . $date . '</td><td class="acinfo">' . $activity . '</td><td>' . $name . '</td><td>' . $username . '</td></tr>';
|
1098 |
}
|
1099 |
|
1100 |
$heading = array(
|
1101 |
+
'<div class="crb_act_icon"></div>' . __( 'IP Address', 'wp-cerber' ),
|
1102 |
__( 'Hostname', 'wp-cerber' ),
|
1103 |
__( 'Country', 'wp-cerber' ),
|
1104 |
__( 'Date', 'wp-cerber' ),
|
1126 |
cerber_admin_link_add( array(
|
1127 |
'cerber_admin_do' => 'export',
|
1128 |
'type' => 'activity',
|
1129 |
+
), true ) . '"><i class="crb-icon crb-icon-bx-download"></i> ' . __( 'Export', 'wp-cerber' ) . '</a>';
|
1130 |
//) ) . '"><span class="dashicons dashicons-download" style="vertical-align: middle;"></span> ' . __( 'Export', 'wp-cerber' ) . '</a>';
|
1131 |
}
|
1132 |
}
|
1331 |
return $cache[ $ip ];
|
1332 |
}
|
1333 |
|
1334 |
+
$row = true;
|
1335 |
+
$acl = cerber_acl_check( $ip, '', 0, $row );
|
1336 |
+
|
1337 |
$tip = '';
|
1338 |
|
1339 |
+
if ( ! empty( $row->comments ) ) {
|
1340 |
+
$tip = $row->comments;
|
|
|
1341 |
}
|
1342 |
+
else {
|
1343 |
+
if ( $acl == 'W' ) {
|
1344 |
+
$tip = __( 'White IP Access List', 'wp-cerber' );
|
1345 |
+
}
|
1346 |
+
elseif ( $acl == 'B' ) {
|
1347 |
+
$tip = __( 'Black IP Access List', 'wp-cerber' );
|
1348 |
+
}
|
1349 |
}
|
1350 |
|
1351 |
+
if ( $b = cerber_block_check( $ip ) ) {
|
1352 |
+
$block = ' crb_color_blocked ';
|
1353 |
+
$tip = ( $tip ) ? ' / ' . $b->reason : $b->reason;
|
1354 |
}
|
1355 |
else {
|
1356 |
$block = '';
|
1360 |
$ip = '<a href="' . $ip_link . '">' . $ip . '</a>';
|
1361 |
}
|
1362 |
|
1363 |
+
$tip = ( $tip ) ? htmlspecialchars( $tip ) : '';
|
1364 |
+
$cache[ $ip ] = '<div class="crb_css_table"><div><span class="crb_act_icon crb_ip_acl' . $acl . ' ' . $block . '" title="' . $tip . '"></span></div><div>' . $ip . $text . '</div></div>';
|
1365 |
|
1366 |
return $cache[ $ip ];
|
1367 |
}
|
1384 |
$ip_navs .= ' <a class="crb-button-tiny" href="' . cerber_admin_link( 'activity', array( 'filter_ip' => $ip ) ) . '">' . __( 'Check for activities', 'wp-cerber' ) . '</a>';
|
1385 |
}
|
1386 |
|
1387 |
+
$row = true;
|
1388 |
+
$acl = cerber_acl_check( $ip, '', 0, $row );
|
1389 |
+
|
1390 |
+
$comments = ( ! empty( $row->comments ) ) ? $row->comments : '';
|
1391 |
|
1392 |
if ( $acl == 'W' ) {
|
1393 |
+
$ip_navs .= ' <span class="crb_color_green crb_ip_info_label">' . __( 'White IP Access List', 'wp-cerber' ) . '</span> ' . $comments;
|
1394 |
}
|
1395 |
elseif ( $acl == 'B' ) {
|
1396 |
+
$ip_navs .= ' <span class="crb_color_black crb_ip_info_label">' . __( 'Black IP Access List', 'wp-cerber' ) . '</span> ' . $comments;
|
1397 |
}
|
1398 |
|
1399 |
+
if ( $block = cerber_block_check( $ip ) ) {
|
1400 |
+
$ip_navs .= ' <span class="crb_color_blocked crb_ip_info_label">' . __( 'Locked out', 'wp-cerber' ) . '</span><span class="crb-log-status crb-status-' . $block->reason_id . '">' . $block->reason . '</span>';
|
1401 |
}
|
1402 |
|
1403 |
// Filter activity by ...
|
1445 |
if ( ! cerber_is_myip( $ip ) && ! cerber_acl_check( $ip ) ) {
|
1446 |
|
1447 |
if ( $network ) {
|
1448 |
+
$net_button = '<button type="submit" value="' . $network . '" name="add_acl" class="button button-secondary cerber-button">';
|
1449 |
}
|
1450 |
else {
|
1451 |
$net_button = '<button disabled="disabled" class="button button-secondary cerber-button">';
|
1452 |
}
|
|
|
1453 |
|
1454 |
+
$net_button .= __( 'Add network to the Black List', 'wp-cerber' ) . '</button> ';
|
1455 |
+
|
1456 |
+
$form = '<form id="add_acl_black" action="" method="post">
|
1457 |
<input type="hidden" name="cerber_admin_do" value="add2acl">
|
1458 |
<input type="hidden" name="add_acl_comment" value="">
|
1459 |
<input type="hidden" name="acl_tag" value="B">
|
1460 |
+
<button type="submit" value="' . $ip . '" name="add_acl" class="button button-primary cerber-button">' . __( 'Add IP to the Black List', 'wp-cerber' ) . '</button>' .
|
1461 |
+
'<p>' . $net_button . '</p>' .
|
1462 |
+
cerber_nonce_field( 'control' ) .
|
1463 |
'</form>';
|
1464 |
}
|
1465 |
|
1491 |
foreach ( $u->roles as $role ) {
|
1492 |
$roles[] = $wp_roles->roles[ $role ]['name'];
|
1493 |
}
|
1494 |
+
$roles = '<span class="crb_act_role">' . implode( ', ', $roles ) . '</span>';
|
1495 |
}
|
1496 |
else {
|
1497 |
$roles = '';
|
2575 |
|
2576 |
if ( $mode == 'on' ) {
|
2577 |
$text = __( 'Create Alert', 'wp-cerber' );
|
2578 |
+
$icon = 'crb-icon-bx-bell';
|
2579 |
}
|
2580 |
else {
|
2581 |
$text = __( 'Delete Alert', 'wp-cerber' );
|
2582 |
+
$icon = 'crb-icon-bx-bell-off';
|
2583 |
}
|
2584 |
|
2585 |
|
2797 |
crb_ajax_nonce = '<?php echo $crb_ajax_nonce; ?>';
|
2798 |
crb_ajax_loader = '<?php echo $crb_ajax_loader; ?>';
|
2799 |
crb_lab_available = <?php echo $crb_lab_available; ?>;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2800 |
</script>
|
2801 |
|
2802 |
<?php
|
2814 |
}
|
2815 |
|
2816 |
?>
|
2817 |
+
|
2818 |
+
<script type="text/javascript">
|
2819 |
+
crb_admin_page = '<?php echo crb_admin_get_page(); ?>';
|
2820 |
+
crb_admin_tab = '<?php echo crb_admin_get_tab(); ?>';
|
2821 |
+
crb_user_locale = '<?php echo substr( get_user_locale(), 0, 6 ); ?>';
|
2822 |
+
|
2823 |
+
crb_scan_msg_steps = <?php echo json_encode( cerber_step_desc() ); ?>;
|
2824 |
+
crb_scan_msg_issues = <?php echo json_encode( cerber_get_issue_label() ); ?>;
|
2825 |
+
crb_scan_msg_risks = <?php echo json_encode( cerber_get_risk_label() ); ?>;
|
2826 |
+
crb_scan_msg_misc = <?php echo json_encode( array(
|
2827 |
+
'delete_file' => array(
|
2828 |
+
__( 'Are you sure you want to delete selected files?', 'wp-cerber' ),
|
2829 |
+
__( 'These files have been moved to the quarantine', 'wp-cerber' )
|
2830 |
+
),
|
2831 |
+
'ignore_add_file' => array(
|
2832 |
+
__( 'Do you want to add selected files to the ignore list?', 'wp-cerber' ),
|
2833 |
+
__( 'These files have been added to the ignore list', 'wp-cerber' ),
|
2834 |
+
),
|
2835 |
+
'file_error' => __( 'Some errors occurred', 'wp-cerber' ),
|
2836 |
+
'all_ok' => __( 'All files have been processed', 'wp-cerber' ),
|
2837 |
+
) );
|
2838 |
+
?>;
|
2839 |
+
</script>
|
2840 |
+
|
2841 |
<style type="text/css" media="all">
|
2842 |
/* Thickbox styles */
|
2843 |
#TB_title {
|
2844 |
background-color: #0085ba !important;
|
2845 |
+
color: #fff;
|
2846 |
}
|
2847 |
+
|
2848 |
.tb-close-icon {
|
2849 |
+
color: #fff !important;
|
2850 |
}
|
2851 |
+
|
2852 |
#TB_window {
|
2853 |
font-family: 'Roboto', sans-serif;
|
2854 |
}
|
2855 |
|
2856 |
+
/* Hide alien's messages on Cerber's admin pages */
|
2857 |
.update-nag,
|
2858 |
#update-nag,
|
2859 |
#setting-error-tgmpa,
|
3703 |
foreach ( $u->roles as $role ) {
|
3704 |
$r[] = $roles[ $role ]['name'];
|
3705 |
}
|
3706 |
+
$r = '<span class="crb_act_role">' . implode( ', ', $r ) . '</span>';
|
3707 |
}
|
3708 |
}
|
3709 |
else {
|
3748 |
|
3749 |
$tbody = '';
|
3750 |
$country = '';
|
3751 |
+
$geo = lab_lab();
|
3752 |
+
|
3753 |
+
if ( ! defined( 'CERBER_FULL_URI' ) || ! CERBER_FULL_URI ) {
|
3754 |
+
$short = true;
|
3755 |
+
$site_url = cerber_get_site_url();
|
3756 |
+
$len = strlen( rtrim( $site_url, '/' ) );
|
3757 |
+
}
|
3758 |
+
else {
|
3759 |
+
$short = false;
|
3760 |
+
$len = 0;
|
3761 |
+
}
|
3762 |
|
3763 |
foreach ($rows as $row) {
|
3764 |
|
3765 |
// URI
|
3766 |
|
3767 |
+
$full_uri = urldecode( $row->uri );
|
3768 |
+
|
3769 |
+
if ( $short && 0 === strpos( $full_uri, $site_url ) ) {
|
3770 |
+
$row_uri = substr( $full_uri, $len );
|
3771 |
+
}
|
3772 |
+
else {
|
3773 |
+
$row_uri = $full_uri;
|
3774 |
+
}
|
3775 |
+
|
3776 |
+
if ( strlen( $row_uri ) > 220 ) {
|
3777 |
$truncated = true;
|
3778 |
+
$row_uri = substr( $row_uri, 0, 220 );
|
3779 |
+
}
|
3780 |
+
else {
|
3781 |
+
$truncated = false;
|
3782 |
}
|
3783 |
+
|
3784 |
+
$row_uri = htmlentities( $row_uri );
|
3785 |
$row_uri = str_replace( array( '-', '/', '%', '&', '=', '?', '(', ')', ),
|
3786 |
array( '<wbr>-', '<wbr>/', '<wbr>%', '<wbr>&', '<wbr>=', '<wbr>?', '<wbr>(', ')<wbr>' ), $row_uri );
|
3787 |
+
|
|
|
3788 |
if ( $truncated ) {
|
3789 |
$row_uri .= ' <span style="color: red;">…</span>';
|
3790 |
}
|
3800 |
$name = '';
|
3801 |
}
|
3802 |
|
|
|
|
|
3803 |
if ( ! empty( $row->hostname ) ) {
|
3804 |
$hostname = $row->hostname;
|
3805 |
}
|
3813 |
}
|
3814 |
}
|
3815 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3816 |
if ( ! empty( $args['date'] ) && $args['date'] == 'ago' ) {
|
3817 |
$date = cerber_ago_time( $row->stamp );
|
3818 |
}
|
3827 |
$activity = '';
|
3828 |
if ( ! empty( $events[ $row->session_id ] ) ) {
|
3829 |
foreach ( $events[ $row->session_id ] as $a ) {
|
3830 |
+
$activity .= '<p><a href="' . $base_url . '&filter_activity=' . $a->activity . '" title="' . $a->activity . '" data-no-js="1">' . $labels[ $a->activity ] . '</a>';
|
3831 |
|
3832 |
$ad = explode( '|', $a->details );
|
3833 |
if ( ! empty( $ad[0] ) && $ad[0] != 500 ) { // 500 Whitelisted
|
3834 |
+
$activity .= ' <span class = "crb-log-status crb-status-' . $ad[0] . '" title="' . $ad[0] . '">' . $status_labels[ $ad[0] ] . '</span>';
|
3835 |
}
|
3836 |
}
|
3837 |
}
|
3859 |
$more_details = array();
|
3860 |
|
3861 |
if ( $truncated ) {
|
3862 |
+
$full_uri = htmlentities( $full_uri );
|
3863 |
+
$full_uri = str_replace( array( '-', '/', '%', '&', '=', '?', '(', ')', ),
|
3864 |
+
array( '<wbr>-', '<wbr>/', '<wbr>%', '<wbr>&', '<wbr>=', '<wbr>?', '<wbr>(', ')<wbr>' ), $full_uri );
|
3865 |
$more_details[] = array(
|
3866 |
'Full URL',
|
3867 |
'<span class="crb-monospace">' . $full_uri . '</span>'
|
3964 |
$more_details[] = array( '', cerber_table_view( '$_SERVER', $details[7] ) );
|
3965 |
}
|
3966 |
|
3967 |
+
$php_errors = '';
|
3968 |
if ( ! empty( $row->php_errors ) ) {
|
3969 |
$err_list = @unserialize( $row->php_errors );
|
3970 |
if ( $err_list ) {
|
3971 |
+
$errors = array();
|
3972 |
+
foreach ( $err_list as $err ) {
|
3973 |
+
$errors[] = array(
|
3974 |
+
'type' => cerber_get_err_type( $err[0] ) . ' (' . $err[0] . ')',
|
3975 |
+
'info' => $err[1],
|
3976 |
+
'file' => $err[2],
|
3977 |
+
'line' => $err[3]
|
3978 |
);
|
3979 |
}
|
3980 |
+
$more_details[] = array( '', cerber_table_view( 'Software errors', $errors ) );
|
3981 |
+
$php_errors = '<span class="crb-php-error">SE ' . count( $err_list ) . '</span>';
|
3982 |
}
|
3983 |
}
|
3984 |
|
4004 |
$toggle_class = 'crb-toggle';
|
4005 |
}
|
4006 |
|
4007 |
+
$request = '<b>' . $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>' . $req_status . $php_errors . '<span>' . $processing . '</span> ' . $more_link . ' ' . $activity . ' </p>' . $wp_obj;
|
4008 |
|
4009 |
// Decorating this table can't be done via simple CSS
|
4010 |
if ( ! empty( $even ) ) {
|
4019 |
$tbody .= '<tr class="' . $class . ' '.$toggle_class.'">
|
4020 |
<td>' . $date . '</td>
|
4021 |
<td class="crb-request">' . $request . '</td>
|
4022 |
+
<td>' . crb_admin_ip_cell( $row->ip, $base_url . '&filter_ip=' . $row->ip ) . '</td>
|
4023 |
<td>' . $hostname . $country . '</td>
|
4024 |
<td>' . cerber_detect_browser( $details[1] ) . '</td>
|
4025 |
<td>' . $name . '</td></tr>';
|
4030 |
$heading = array(
|
4031 |
__( 'Date', 'wp-cerber' ),
|
4032 |
__( 'Request', 'wp-cerber' ),
|
4033 |
+
'<div class="crb_act_icon"></div>' . __( 'IP Address', 'wp-cerber' ),
|
4034 |
__( 'Host Info', 'wp-cerber' ),
|
4035 |
__( 'User Agent', 'wp-cerber' ),
|
4036 |
__( 'Local User', 'wp-cerber' ),
|
4096 |
'cerber_admin_do' => 'export',
|
4097 |
'type' => 'traffic',
|
4098 |
), true )
|
4099 |
+
. '"><i class="crb-icon crb-icon-bx-download"></i> ' . __( 'Export', 'wp-cerber' ) . '</a>';
|
4100 |
|
4101 |
$right_links = $search_button .' '. $export_button;
|
4102 |
|
4116 |
$ret = '<p class="cerber-margin" style="padding: 0.5em; font-weight: bold;">Logging is currently disabled, you are viewing historical information.</p>' . $ret;
|
4117 |
}
|
4118 |
|
4119 |
+
if ( $echo ) {
|
4120 |
+
echo $ret;
|
4121 |
+
}
|
4122 |
+
else {
|
4123 |
+
return $ret;
|
4124 |
+
}
|
4125 |
+
|
4126 |
+
}
|
4127 |
+
|
4128 |
+
/**
|
4129 |
+
* Detects known browsers/crawlers and platform in User Agent string
|
4130 |
+
*
|
4131 |
+
* @param $ua
|
4132 |
+
*
|
4133 |
+
* @return string Sanitized browser name and platform on success
|
4134 |
+
* @since 6.0
|
4135 |
+
*/
|
4136 |
+
function cerber_detect_browser( $ua ) {
|
4137 |
+
$ua = trim( $ua );
|
4138 |
+
|
4139 |
+
if ( empty( $ua ) ) {
|
4140 |
+
return __( 'Not specified', 'wp-cerber' );
|
4141 |
+
}
|
4142 |
+
|
4143 |
+
if ( preg_match( '/\(compatible\;(.+)\)/i', $ua, $matches ) ) {
|
4144 |
+
$bot_info = explode( ';', $matches[1] );
|
4145 |
+
foreach ( $bot_info as $item ) {
|
4146 |
+
if ( stripos( $item, 'bot' )
|
4147 |
+
|| stripos( $item, 'crawler' )
|
4148 |
+
|| stripos( $item, 'spider' )
|
4149 |
+
|| stripos( $item, 'Yandex' )
|
4150 |
+
|| stripos( $item, 'Yahoo! Slurp' )
|
4151 |
+
) {
|
4152 |
+
if ( strpos( $ua, 'Android' ) ) {
|
4153 |
+
$item .= ' Mobile';
|
4154 |
+
}
|
4155 |
+
return htmlentities( $item );
|
4156 |
+
}
|
4157 |
+
}
|
4158 |
+
if ( strpos( $ua, 'Google-Read-Aloud' ) ) {
|
4159 |
+
return 'Google Read Aloud';
|
4160 |
+
}
|
4161 |
+
}
|
4162 |
+
elseif ( strpos( $ua, 'google.com' ) || strpos( $ua, 'Google' ) ) {
|
4163 |
+
// Various Google bots
|
4164 |
+
|
4165 |
+
$ret = '';
|
4166 |
+
|
4167 |
+
if ( false !== strpos( $ua, 'Googlebot' ) ) {
|
4168 |
+
if ( strpos( $ua, 'Android' ) ) {
|
4169 |
+
$ret = 'Googlebot Mobile';
|
4170 |
+
}
|
4171 |
+
elseif ( false !== strpos( $ua, 'Mozilla' ) ) {
|
4172 |
+
$ret = 'Googlebot Desktop';
|
4173 |
+
}
|
4174 |
+
}
|
4175 |
+
elseif ( preg_match( '/AdsBot-Google-Mobile|AdsBot-Google|APIs-Google|FeedFetcher-Google/', $ua, $matches ) ) {
|
4176 |
+
$ret = $matches[0];
|
4177 |
+
}
|
4178 |
+
elseif ( 0 === strpos( $ua, 'Googlebot' ) ) {
|
4179 |
+
if ( preg_match( '/Googlebot-\w+/', $ua, $matches ) ) {
|
4180 |
+
$ret = $matches[0];
|
4181 |
+
}
|
4182 |
+
}
|
4183 |
+
elseif ( 0 === strpos( $ua, 'Mediapartners-Google' ) ) {
|
4184 |
+
return 'AdSense Crawler';
|
4185 |
+
}
|
4186 |
+
elseif ( 0 === strpos( $ua, 'AdsBot-Google-Mobile-Apps' ) ) {
|
4187 |
+
return 'Mobile Apps Android';
|
4188 |
+
}
|
4189 |
+
elseif ( strpos( $ua, 'DuplexWeb-Google' ) ) {
|
4190 |
+
return 'Duplex on the Web by Google';
|
4191 |
+
}
|
4192 |
+
elseif ( strpos( $ua, 'Google Favicon' ) ) {
|
4193 |
+
return 'Google Favicon';
|
4194 |
+
}
|
4195 |
+
|
4196 |
+
if ( $ret ) {
|
4197 |
+
return htmlentities( $ret );
|
4198 |
+
}
|
4199 |
+
else {
|
4200 |
+
return __( 'Unknown Google\'s bot', 'wp-cerber' );
|
4201 |
+
}
|
4202 |
+
}
|
4203 |
+
/*elseif ( 0 === strpos( $ua, 'Googlebot' ) ) {
|
4204 |
+
if ( preg_match( '/Googlebot-\w+/', $ua, $matches ) ) {
|
4205 |
+
return $matches[0];
|
4206 |
+
}
|
4207 |
+
}*/
|
4208 |
+
elseif ( 0 === strpos( $ua, 'WordPress/' ) ) {
|
4209 |
+
list( $ret ) = explode( ';', $ua, 2 );
|
4210 |
+
return htmlentities( $ret );
|
4211 |
+
}
|
4212 |
+
elseif ( 0 === strpos( $ua, 'PayPal IPN' ) ) {
|
4213 |
+
return 'PayPal Payment Notification';
|
4214 |
+
}
|
4215 |
+
elseif (0 === strpos( $ua, 'Wget/' )){
|
4216 |
+
return htmlentities( $ua );
|
4217 |
+
}
|
4218 |
+
elseif ( strpos( $ua, 'googleweblight' )){
|
4219 |
+
return 'Web Light by Google';
|
4220 |
+
}
|
4221 |
+
|
4222 |
+
$browsers = array(
|
4223 |
+
'Firefox/' => 'Firefox',
|
4224 |
+
'OPR/' => 'Opera',
|
4225 |
+
'Opera/' => 'Opera',
|
4226 |
+
'YaBrowser/' => 'Yandex Browser',
|
4227 |
+
'Trident/' => 'Internet Explorer',
|
4228 |
+
'IE/' => 'Internet Explorer',
|
4229 |
+
'Edge/' => 'Microsoft Edge',
|
4230 |
+
'Edg/' => 'Microsoft Edge',
|
4231 |
+
'Chrome/' => 'Chrome',
|
4232 |
+
'Safari/' => 'Safari',
|
4233 |
+
'Lynx/' => 'Lynx',
|
4234 |
+
);
|
4235 |
+
|
4236 |
+
$systems = array( 'Android' , 'Linux', 'Windows', 'iPhone', 'iPad', 'Macintosh', 'OpenBSD', 'Unix' );
|
4237 |
+
|
4238 |
+
$browser = '';
|
4239 |
+
foreach ( $browsers as $browser_id => $browser_name ) {
|
4240 |
+
if ( false !== strpos( $ua, $browser_id ) ) {
|
4241 |
+
$browser = $browser_name;
|
4242 |
+
break;
|
4243 |
+
}
|
4244 |
+
}
|
4245 |
+
|
4246 |
+
$system = '';
|
4247 |
+
foreach ( $systems as $system_id ) {
|
4248 |
+
if ( false !== strpos( $ua, $system_id ) ) {
|
4249 |
+
$system = $system_id;
|
4250 |
+
break;
|
4251 |
+
}
|
4252 |
+
}
|
4253 |
+
|
4254 |
+
if ( $browser == 'Lynx' && ! $system ) {
|
4255 |
+
$system = 'Linux';
|
4256 |
+
}
|
4257 |
+
elseif ( $system == 'Macintosh' ) {
|
4258 |
+
$system = 'Mac';
|
4259 |
+
}
|
4260 |
+
|
4261 |
+
if ( $system == 'Android' ) {
|
4262 |
+
if ( preg_match( '/(Android\s+\d+);/', $ua, $matches ) ) {
|
4263 |
+
$system = $matches[1];
|
4264 |
+
}
|
4265 |
+
}
|
4266 |
+
|
4267 |
+
if ( $browser && $system ) {
|
4268 |
+
$ret = $browser . ' on ' . $system;
|
4269 |
+
}
|
4270 |
+
elseif ( 0 === strpos( $ua, 'python-requests' ) ) {
|
4271 |
+
$ret = 'Python Script';
|
4272 |
+
}
|
4273 |
+
elseif ( 0 === strpos( $ua, 'ApacheBench' ) ) {
|
4274 |
+
$ret = $ua;
|
4275 |
+
}
|
4276 |
+
else {
|
4277 |
+
$ret = __( 'Unknown', 'wp-cerber' );
|
4278 |
+
}
|
4279 |
|
4280 |
+
return htmlentities( $ret );
|
4281 |
}
|
4282 |
|
4283 |
/**
|
languages/wp-cerber-nl_NL.mo
CHANGED
Binary file
|
languages/wp-cerber-nl_NL.po
CHANGED
@@ -530,7 +530,7 @@ msgid "Disable REST API"
|
|
530 |
msgstr "REST API uitschakelen"
|
531 |
|
532 |
#: ../admin/cerber-settings.php:777 ../admin/cerber-settings.php:789 ..
|
533 |
-
#:
|
534 |
msgid "<strong>ERROR</strong>: please enter a valid email address."
|
535 |
msgstr "<strong>LET OP</strong>: voer een geldig e-mailadres in."
|
536 |
|
@@ -564,19 +564,19 @@ msgid "Attention! Citadel mode is now active. Nobody is able to log in."
|
|
564 |
msgstr "Let op! Citadelstand is actief; niemand kan inloggen."
|
565 |
|
566 |
#: ../dashboard.php:433 ../dashboard.php:3700 ../whois.php:222 ../whois.php:253 ..
|
567 |
-
#:
|
568 |
#: list.php:332
|
569 |
msgid "Unknown"
|
570 |
msgstr "Onbekend"
|
571 |
|
572 |
#: ../common.php:339 ../common.php:417 ../common.php:422 ../common.php:428 ..
|
573 |
-
#:
|
574 |
#: 673 ../admin/cerber-settings.php:753 ../admin/cerber-admin.php:858 ../cerber-
|
575 |
#: load.php:649 ../cerber-load.php:661 ../cerber-load.php:668 ../cerber-load.php:
|
576 |
#: 1008 ../cerber-load.php:1549 ../cerber-load.php:1555 ../cerber-load.php:1560 ..
|
577 |
-
#:
|
578 |
-
#:
|
579 |
-
#:
|
580 |
msgid "ERROR:"
|
581 |
msgstr "FOUT:"
|
582 |
|
@@ -937,7 +937,7 @@ msgid "Lockouts occurred"
|
|
937 |
msgstr "Uitsluitingen"
|
938 |
|
939 |
#: ../cerber-load.php:1550 ../cerber-load.php:1556 ../cerber-load.php:1581 ..
|
940 |
-
#:
|
941 |
msgid "You are not allowed to register."
|
942 |
msgstr "Je mag niet aanmelden."
|
943 |
|
@@ -1532,7 +1532,7 @@ msgstr "Site-integriteit"
|
|
1532 |
|
1533 |
#: ../dashboard.php:1790 ../dashboard.php:1792 ../cerber-users.php:20 ../cerber-
|
1534 |
#: users.php:446 ../settings.php:721 ../settings.php:749 ../settings.php:873 ..
|
1535 |
-
#:
|
1536 |
msgid "Disabled"
|
1537 |
msgstr "Uitgeschakeld"
|
1538 |
|
@@ -2558,7 +2558,7 @@ msgid "You are here:"
|
|
2558 |
msgstr "Je bent hier:"
|
2559 |
|
2560 |
#: ../nexus/cerber-nexus-master.php:1253 ../nexus/cerber-nexus.php:92 ..
|
2561 |
-
#:
|
2562 |
msgid "My Websites"
|
2563 |
msgstr "Mijn Websites"
|
2564 |
|
@@ -3699,46 +3699,46 @@ msgstr "Mijn verzoeken"
|
|
3699 |
|
3700 |
#: ../dashboard.php:3416
|
3701 |
msgid "Log into the website"
|
3702 |
-
msgstr ""
|
3703 |
|
3704 |
#. Name of the plugin
|
3705 |
#:
|
3706 |
msgid "WP Cerber Security, Anti-spam & Malware Scan"
|
3707 |
-
msgstr ""
|
3708 |
|
3709 |
#: ../common.php:1363 ../common.php:1472
|
3710 |
msgid "Probing for vulnerable code"
|
3711 |
-
msgstr ""
|
3712 |
|
3713 |
#: ../cerber-load.php:5268
|
3714 |
msgid "Your IP address %s has been added to the White IP Access List"
|
3715 |
-
msgstr ""
|
3716 |
|
3717 |
#: ../cerber-users.php:1022
|
3718 |
msgid "Search for IP address"
|
3719 |
-
msgstr ""
|
3720 |
|
3721 |
#: ../settings.php:771
|
3722 |
msgid "Minimal"
|
3723 |
-
msgstr ""
|
3724 |
|
3725 |
#: ../settings.php:777
|
3726 |
msgid "Do not log known crawlers"
|
3727 |
-
msgstr ""
|
3728 |
|
3729 |
#: ../settings.php:781
|
3730 |
msgid "Do not log these locations"
|
3731 |
-
msgstr ""
|
3732 |
|
3733 |
#: ../settings.php:785
|
3734 |
msgid "Specify URL paths to exclude requests from logging. One item per line."
|
3735 |
-
msgstr ""
|
3736 |
|
3737 |
#: ../settings.php:788
|
3738 |
msgid "Do not log these User-Agents"
|
3739 |
-
msgstr ""
|
3740 |
|
3741 |
#: ../settings.php:792
|
3742 |
msgid "Specify User-Agents to exclude requests from logging. One item per line."
|
3743 |
-
msgstr ""
|
3744 |
|
530 |
msgstr "REST API uitschakelen"
|
531 |
|
532 |
#: ../admin/cerber-settings.php:777 ../admin/cerber-settings.php:789 ..
|
533 |
+
#: admin/cerber-settings.php:949
|
534 |
msgid "<strong>ERROR</strong>: please enter a valid email address."
|
535 |
msgstr "<strong>LET OP</strong>: voer een geldig e-mailadres in."
|
536 |
|
564 |
msgstr "Let op! Citadelstand is actief; niemand kan inloggen."
|
565 |
|
566 |
#: ../dashboard.php:433 ../dashboard.php:3700 ../whois.php:222 ../whois.php:253 ..
|
567 |
+
#: common.php:1489 ../common.php:1895 ../common.php:1963 ../nexus/cerber-slave-
|
568 |
#: list.php:332
|
569 |
msgid "Unknown"
|
570 |
msgstr "Onbekend"
|
571 |
|
572 |
#: ../common.php:339 ../common.php:417 ../common.php:422 ../common.php:428 ..
|
573 |
+
#: common.php:433 ../admin/cerber-settings.php:653 ../admin/cerber-settings.php:
|
574 |
#: 673 ../admin/cerber-settings.php:753 ../admin/cerber-admin.php:858 ../cerber-
|
575 |
#: load.php:649 ../cerber-load.php:661 ../cerber-load.php:668 ../cerber-load.php:
|
576 |
#: 1008 ../cerber-load.php:1549 ../cerber-load.php:1555 ../cerber-load.php:1560 ..
|
577 |
+
#: cerber-load.php:1567 ../cerber-load.php:1574 ../cerber-load.php:1580 ..
|
578 |
+
#: cerber-load.php:1587 ../cerber-load.php:1752 ../cerber-load.php:1889 ..
|
579 |
+
#: nexus/cerber-nexus-slave.php:204 ../nexus/cerber-nexus-slave.php:215
|
580 |
msgid "ERROR:"
|
581 |
msgstr "FOUT:"
|
582 |
|
937 |
msgstr "Uitsluitingen"
|
938 |
|
939 |
#: ../cerber-load.php:1550 ../cerber-load.php:1556 ../cerber-load.php:1581 ..
|
940 |
+
#: cerber-load.php:1588
|
941 |
msgid "You are not allowed to register."
|
942 |
msgstr "Je mag niet aanmelden."
|
943 |
|
1532 |
|
1533 |
#: ../dashboard.php:1790 ../dashboard.php:1792 ../cerber-users.php:20 ../cerber-
|
1534 |
#: users.php:446 ../settings.php:721 ../settings.php:749 ../settings.php:873 ..
|
1535 |
+
#: settings.php:882 ../settings.php:1225 ../cerber-scanner.php:1493
|
1536 |
msgid "Disabled"
|
1537 |
msgstr "Uitgeschakeld"
|
1538 |
|
2558 |
msgstr "Je bent hier:"
|
2559 |
|
2560 |
#: ../nexus/cerber-nexus-master.php:1253 ../nexus/cerber-nexus.php:92 ..
|
2561 |
+
#: nexus/cerber-nexus.php:102
|
2562 |
msgid "My Websites"
|
2563 |
msgstr "Mijn Websites"
|
2564 |
|
3699 |
|
3700 |
#: ../dashboard.php:3416
|
3701 |
msgid "Log into the website"
|
3702 |
+
msgstr "Bij de website inloggen"
|
3703 |
|
3704 |
#. Name of the plugin
|
3705 |
#:
|
3706 |
msgid "WP Cerber Security, Anti-spam & Malware Scan"
|
3707 |
+
msgstr "WP Cerber Security, Anti-spam & Malware Scan"
|
3708 |
|
3709 |
#: ../common.php:1363 ../common.php:1472
|
3710 |
msgid "Probing for vulnerable code"
|
3711 |
+
msgstr "Op zoek naar kwetsbare code"
|
3712 |
|
3713 |
#: ../cerber-load.php:5268
|
3714 |
msgid "Your IP address %s has been added to the White IP Access List"
|
3715 |
+
msgstr "Je IP-adres %s is toegevoegd aan de Lijst Toegestane Adressen"
|
3716 |
|
3717 |
#: ../cerber-users.php:1022
|
3718 |
msgid "Search for IP address"
|
3719 |
+
msgstr "IP-adres zoeken"
|
3720 |
|
3721 |
#: ../settings.php:771
|
3722 |
msgid "Minimal"
|
3723 |
+
msgstr "Minimaal"
|
3724 |
|
3725 |
#: ../settings.php:777
|
3726 |
msgid "Do not log known crawlers"
|
3727 |
+
msgstr "Log bekende crawlers niet"
|
3728 |
|
3729 |
#: ../settings.php:781
|
3730 |
msgid "Do not log these locations"
|
3731 |
+
msgstr "Log deze locaties niet"
|
3732 |
|
3733 |
#: ../settings.php:785
|
3734 |
msgid "Specify URL paths to exclude requests from logging. One item per line."
|
3735 |
+
msgstr "Geef aan welke url-paden niet gelogd worden. Eén per regel."
|
3736 |
|
3737 |
#: ../settings.php:788
|
3738 |
msgid "Do not log these User-Agents"
|
3739 |
+
msgstr "Log deze 'user-agents' niet"
|
3740 |
|
3741 |
#: ../settings.php:792
|
3742 |
msgid "Specify User-Agents to exclude requests from logging. One item per line."
|
3743 |
+
msgstr "Geef aan welke 'user-agents' niet gelogd worden. Eén per regel."
|
3744 |
|
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: Wed
|
9 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: \n"
|
@@ -24,1296 +24,1228 @@ 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 |
-
|
28 |
-
msgid "Cerber
|
29 |
msgstr ""
|
30 |
|
31 |
-
|
32 |
-
|
33 |
-
msgid "Dashboard"
|
34 |
msgstr ""
|
35 |
|
36 |
-
|
37 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
38 |
msgstr ""
|
39 |
|
40 |
-
|
41 |
-
msgid "
|
42 |
msgstr ""
|
43 |
|
44 |
-
#: ../
|
45 |
-
msgid "
|
46 |
msgstr ""
|
47 |
|
48 |
-
#: ../
|
49 |
-
msgid "
|
50 |
msgstr ""
|
51 |
|
52 |
-
#: ../
|
53 |
-
msgid "
|
54 |
msgstr ""
|
55 |
|
56 |
-
#: ../
|
57 |
-
msgid "
|
58 |
msgstr ""
|
59 |
|
60 |
-
#: ../
|
61 |
-
msgid "
|
62 |
msgstr ""
|
63 |
|
64 |
-
#: ../
|
65 |
-
msgid "
|
66 |
msgstr ""
|
67 |
|
68 |
-
#: ../
|
69 |
-
msgid "
|
70 |
msgstr ""
|
71 |
|
72 |
-
#: ../
|
73 |
-
msgid "
|
74 |
msgstr ""
|
75 |
|
76 |
-
#: ../
|
77 |
-
|
|
|
|
|
|
|
78 |
msgstr ""
|
79 |
|
80 |
-
#: ../
|
81 |
-
msgid "
|
82 |
msgstr ""
|
83 |
|
84 |
-
#: ../
|
85 |
-
|
86 |
-
|
|
|
|
|
|
|
87 |
|
88 |
-
#: ../
|
89 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
90 |
msgstr ""
|
91 |
|
92 |
-
#: ../
|
93 |
-
msgid "
|
|
|
|
|
94 |
msgstr ""
|
95 |
|
96 |
-
#: ../
|
97 |
-
|
98 |
-
|
|
|
99 |
msgstr ""
|
100 |
|
101 |
-
#: ../
|
102 |
-
|
|
|
|
|
|
|
103 |
msgstr ""
|
104 |
|
105 |
-
#: ../
|
106 |
-
|
|
|
107 |
msgstr ""
|
108 |
|
109 |
-
#: ../
|
110 |
-
msgid "
|
111 |
msgstr ""
|
112 |
|
113 |
-
#: ../
|
114 |
-
msgid "
|
115 |
msgstr ""
|
116 |
|
117 |
-
#: ../
|
118 |
-
|
119 |
-
msgid "Action"
|
120 |
msgstr ""
|
121 |
|
122 |
-
#: ../
|
123 |
-
|
124 |
-
msgid "Showing last %d records from %d"
|
125 |
msgstr ""
|
126 |
|
127 |
-
#: ../
|
128 |
-
msgid "
|
129 |
msgstr ""
|
130 |
|
131 |
-
#: ../
|
132 |
-
msgid "
|
133 |
msgstr ""
|
134 |
|
135 |
-
#: ../
|
136 |
-
msgid "
|
137 |
msgstr ""
|
138 |
|
139 |
-
#: ../
|
140 |
-
|
141 |
-
msgid "
|
142 |
msgstr ""
|
143 |
|
144 |
-
#: ../
|
145 |
-
|
146 |
-
msgid "
|
147 |
msgstr ""
|
148 |
|
149 |
-
#: ../
|
150 |
-
msgid "
|
151 |
msgstr ""
|
152 |
|
153 |
-
#: ../
|
154 |
-
|
155 |
-
msgid "Check for activities"
|
156 |
msgstr ""
|
157 |
|
158 |
-
#: ../
|
159 |
-
msgid "
|
160 |
msgstr ""
|
161 |
|
162 |
-
#: ../
|
163 |
-
msgid "
|
164 |
msgstr ""
|
165 |
|
166 |
-
#: ../
|
167 |
-
|
|
|
168 |
msgstr ""
|
169 |
|
170 |
-
#: ../dashboard.php:
|
171 |
-
msgid "
|
172 |
msgstr ""
|
173 |
|
174 |
-
#: ../
|
175 |
-
msgid "
|
176 |
msgstr ""
|
177 |
|
178 |
-
#: ../
|
179 |
-
|
180 |
-
msgid "IP address %s has been added to Black IP Access List"
|
181 |
msgstr ""
|
182 |
|
183 |
-
#: ../
|
184 |
-
|
185 |
-
msgid "IP address %s has been added to White IP Access List"
|
186 |
msgstr ""
|
187 |
|
188 |
-
#: ../
|
189 |
-
|
190 |
-
#: list.php:332
|
191 |
-
msgid "Unknown"
|
192 |
msgstr ""
|
193 |
|
194 |
-
#: ../
|
195 |
-
|
|
|
196 |
msgstr ""
|
197 |
|
198 |
-
#: ../
|
199 |
-
|
200 |
-
msgid "Lockout for %s was removed"
|
201 |
msgstr ""
|
202 |
|
203 |
-
#: ../
|
204 |
-
msgid "
|
205 |
msgstr ""
|
206 |
|
207 |
-
#: ../
|
208 |
-
msgid "
|
209 |
msgstr ""
|
210 |
|
211 |
-
#: ../
|
212 |
-
msgid "
|
213 |
msgstr ""
|
214 |
|
215 |
-
#: ../
|
216 |
-
|
217 |
-
msgid "Date"
|
218 |
msgstr ""
|
219 |
|
220 |
-
#: ../
|
221 |
-
msgid "
|
222 |
msgstr ""
|
223 |
|
224 |
-
#: ../
|
225 |
-
msgid "
|
226 |
msgstr ""
|
227 |
|
228 |
-
#: ../
|
229 |
-
msgid "
|
230 |
msgstr ""
|
231 |
|
232 |
-
#: ../
|
233 |
-
msgid "
|
234 |
msgstr ""
|
235 |
|
236 |
-
#: ../
|
237 |
-
msgid "
|
238 |
msgstr ""
|
239 |
|
240 |
-
#: ../
|
241 |
-
msgid "
|
242 |
msgstr ""
|
243 |
|
244 |
-
#: ../
|
245 |
-
msgid "
|
246 |
msgstr ""
|
247 |
|
248 |
-
#: ../
|
249 |
-
msgid "
|
250 |
msgstr ""
|
251 |
|
252 |
-
#: ../
|
253 |
-
msgid "
|
254 |
msgstr ""
|
255 |
|
256 |
-
#: ../
|
257 |
-
msgid "
|
258 |
msgstr ""
|
259 |
|
260 |
-
#: ../
|
261 |
-
|
262 |
-
msgid "Logged in users"
|
263 |
msgstr ""
|
264 |
|
265 |
-
#: ../
|
266 |
-
|
|
|
267 |
msgstr ""
|
268 |
|
269 |
-
#: ../
|
270 |
-
msgid "
|
271 |
msgstr ""
|
272 |
|
273 |
-
#: ../
|
274 |
-
msgid "
|
275 |
msgstr ""
|
276 |
|
277 |
-
#: ../
|
278 |
-
msgid "
|
279 |
msgstr ""
|
280 |
|
281 |
-
#: ../dashboard.php:
|
282 |
-
|
|
|
283 |
msgstr ""
|
284 |
|
285 |
-
#: ../
|
286 |
-
msgid "
|
287 |
msgstr ""
|
288 |
|
289 |
-
#: ../
|
290 |
-
msgid "
|
291 |
msgstr ""
|
292 |
|
293 |
-
#: ../
|
294 |
-
msgid "
|
295 |
msgstr ""
|
296 |
|
297 |
-
#: ../
|
298 |
-
msgid "Search
|
299 |
msgstr ""
|
300 |
|
301 |
-
#: ../
|
302 |
-
msgid "
|
303 |
msgstr ""
|
304 |
|
305 |
-
#: ../
|
306 |
-
|
307 |
-
msgid "
|
308 |
msgstr ""
|
309 |
|
310 |
-
#: ../
|
311 |
-
|
|
|
312 |
msgstr ""
|
313 |
|
314 |
-
#: ../
|
315 |
-
msgid "
|
316 |
msgstr ""
|
317 |
|
318 |
-
#: ../
|
319 |
-
|
|
|
320 |
msgstr ""
|
321 |
|
322 |
-
#: ../
|
323 |
-
msgid "
|
324 |
msgstr ""
|
325 |
|
326 |
-
#: ../
|
327 |
-
msgid "
|
328 |
msgstr ""
|
329 |
|
330 |
-
#: ../dashboard.php:
|
331 |
-
msgid "
|
332 |
msgstr ""
|
333 |
|
334 |
-
#: ../dashboard.php:
|
335 |
-
msgid "
|
336 |
msgstr ""
|
337 |
|
338 |
-
#: ../
|
339 |
-
msgid "
|
340 |
msgstr ""
|
341 |
|
342 |
-
#: ../
|
343 |
-
msgid "
|
344 |
msgstr ""
|
345 |
|
346 |
-
#: ../
|
347 |
-
msgid "
|
348 |
msgstr ""
|
349 |
|
350 |
-
#: ../
|
351 |
-
msgid "
|
352 |
msgstr ""
|
353 |
|
354 |
-
#: ../
|
355 |
-
|
356 |
-
msgid "Never"
|
357 |
msgstr ""
|
358 |
|
359 |
-
#: ../
|
360 |
-
msgid "
|
361 |
msgstr ""
|
362 |
|
363 |
-
#: ../
|
364 |
-
msgid "
|
365 |
msgstr ""
|
366 |
|
367 |
-
#: ../
|
368 |
-
msgid "
|
369 |
msgstr ""
|
370 |
|
371 |
-
#: ../
|
372 |
-
msgid "
|
373 |
msgstr ""
|
374 |
|
375 |
-
#: ../
|
376 |
-
msgid "
|
377 |
msgstr ""
|
378 |
|
379 |
-
#: ../
|
380 |
-
msgid "
|
381 |
msgstr ""
|
382 |
|
383 |
-
#: ../
|
384 |
-
msgid "
|
385 |
msgstr ""
|
386 |
|
387 |
-
#: ../
|
388 |
-
msgid "
|
389 |
msgstr ""
|
390 |
|
391 |
-
#: ../
|
392 |
-
msgid "
|
393 |
msgstr ""
|
394 |
|
395 |
-
#: ../
|
396 |
-
msgid "
|
397 |
msgstr ""
|
398 |
|
399 |
-
#: ../
|
400 |
-
msgid "
|
401 |
msgstr ""
|
402 |
|
403 |
-
#: ../
|
404 |
-
msgid "
|
405 |
msgstr ""
|
406 |
|
407 |
-
#: ../
|
408 |
-
msgid "
|
409 |
-
|
410 |
-
msgstr[0] ""
|
411 |
-
msgstr[1] ""
|
412 |
-
|
413 |
-
#: ../dashboard.php:1761 ../dashboard.php:1762 ../dashboard.php:2664
|
414 |
-
msgid "entry"
|
415 |
-
msgid_plural "entries"
|
416 |
-
msgstr[0] ""
|
417 |
-
msgstr[1] ""
|
418 |
|
419 |
-
#: ../
|
420 |
-
msgid "
|
421 |
msgstr ""
|
422 |
|
423 |
-
#: ../
|
424 |
-
msgid "
|
425 |
msgstr ""
|
426 |
|
427 |
-
#: ../
|
428 |
-
msgid "
|
429 |
msgstr ""
|
430 |
|
431 |
-
#: ../
|
432 |
-
|
433 |
-
msgid "Last malware scan"
|
434 |
msgstr ""
|
435 |
|
436 |
-
#: ../
|
437 |
-
#:
|
438 |
-
#:
|
439 |
msgid "Disabled"
|
440 |
msgstr ""
|
441 |
|
442 |
-
#: ../
|
443 |
-
msgid "
|
444 |
msgstr ""
|
445 |
|
446 |
-
#: ../
|
447 |
-
msgid "
|
448 |
msgstr ""
|
449 |
|
450 |
-
#: ../
|
451 |
-
|
452 |
-
msgid "Activity"
|
453 |
msgstr ""
|
454 |
|
455 |
-
#: ../
|
456 |
-
msgid "
|
457 |
msgstr ""
|
458 |
|
459 |
-
#: ../
|
460 |
-
msgid "
|
|
|
|
|
|
|
461 |
msgstr ""
|
462 |
|
463 |
-
#: ../
|
464 |
-
msgid "
|
|
|
|
|
465 |
msgstr ""
|
466 |
|
467 |
-
#: ../
|
468 |
-
|
|
|
|
|
|
|
|
|
469 |
msgstr ""
|
470 |
|
471 |
-
#: ../
|
472 |
-
msgid "
|
473 |
msgstr ""
|
474 |
|
475 |
-
#: ../
|
476 |
-
msgid "
|
477 |
msgstr ""
|
478 |
|
479 |
-
#: ../
|
480 |
-
msgid "
|
|
|
|
|
|
|
|
|
481 |
msgstr ""
|
482 |
|
483 |
-
#: ../
|
484 |
-
|
|
|
|
|
|
|
485 |
msgstr ""
|
486 |
|
487 |
-
#: ../
|
488 |
-
msgid "
|
489 |
msgstr ""
|
490 |
|
491 |
-
#: ../
|
492 |
-
msgid "
|
493 |
msgstr ""
|
494 |
|
495 |
-
#: ../
|
496 |
-
msgid "
|
497 |
msgstr ""
|
498 |
|
499 |
-
#: ../
|
500 |
-
msgid "
|
501 |
msgstr ""
|
502 |
|
503 |
-
#: ../
|
504 |
-
msgid "
|
505 |
msgstr ""
|
506 |
|
507 |
-
#: ../
|
508 |
-
msgid "
|
509 |
msgstr ""
|
510 |
|
511 |
-
#: ../
|
512 |
-
msgid "
|
513 |
msgstr ""
|
514 |
|
515 |
-
#: ../
|
516 |
-
msgid "
|
517 |
msgstr ""
|
518 |
|
519 |
-
#: ../
|
520 |
-
msgid "
|
521 |
msgstr ""
|
522 |
|
523 |
-
#: ../
|
524 |
-
msgid "
|
525 |
msgstr ""
|
526 |
|
527 |
-
#: ../
|
528 |
-
msgid "
|
529 |
msgstr ""
|
530 |
|
531 |
-
#: ../
|
532 |
-
msgid "
|
533 |
msgstr ""
|
534 |
|
535 |
-
#: ../
|
536 |
-
msgid "
|
537 |
msgstr ""
|
538 |
|
539 |
-
#: ../
|
540 |
-
msgid "
|
541 |
msgstr ""
|
542 |
|
543 |
-
#: ../
|
544 |
-
msgid "
|
545 |
msgstr ""
|
546 |
|
547 |
-
#: ../
|
548 |
-
msgid "
|
549 |
msgstr ""
|
550 |
|
551 |
-
#: ../
|
552 |
-
msgid "
|
553 |
msgstr ""
|
554 |
|
555 |
-
#: ../
|
556 |
-
msgid "
|
557 |
msgstr ""
|
558 |
|
559 |
-
#: ../
|
560 |
-
|
561 |
-
|
562 |
-
msgid_plural "Permitted for %d countries"
|
563 |
-
msgstr[0] ""
|
564 |
-
msgstr[1] ""
|
565 |
-
|
566 |
-
#: ../dashboard.php:3297
|
567 |
-
#, php-format
|
568 |
-
msgid "Not permitted for one country"
|
569 |
-
msgid_plural "Not permitted for %d countries"
|
570 |
-
msgstr[0] ""
|
571 |
-
msgstr[1] ""
|
572 |
|
573 |
-
#: ../
|
574 |
-
msgid "
|
575 |
msgstr ""
|
576 |
|
577 |
-
#: ../
|
578 |
-
msgid "
|
579 |
msgstr ""
|
580 |
|
581 |
-
#: ../
|
582 |
-
msgid "
|
583 |
msgstr ""
|
584 |
|
585 |
-
#: ../
|
586 |
-
|
587 |
-
msgctxt "to is a marker of infinitive, e.g. \"to use it\""
|
588 |
-
msgid "Selected countries are permitted to %s, other countries are not permitted to"
|
589 |
msgstr ""
|
590 |
|
591 |
-
#: ../
|
592 |
-
|
593 |
-
msgctxt "to is a marker of infinitive, e.g. \"to use it\""
|
594 |
-
msgid "Selected countries are not permitted to %s, other countries are permitted to"
|
595 |
msgstr ""
|
596 |
|
597 |
-
#: ../
|
598 |
-
msgid "
|
599 |
msgstr ""
|
600 |
|
601 |
-
#: ../
|
602 |
-
msgid "
|
603 |
msgstr ""
|
604 |
|
605 |
-
#: ../
|
606 |
-
msgid "
|
607 |
msgstr ""
|
608 |
|
609 |
-
#: ../
|
610 |
-
msgid "
|
|
|
|
|
611 |
msgstr ""
|
612 |
|
613 |
-
#: ../
|
614 |
-
msgid "
|
615 |
msgstr ""
|
616 |
|
617 |
-
#: ../
|
618 |
-
|
|
|
619 |
msgstr ""
|
620 |
|
621 |
-
#: ../dashboard.php:
|
622 |
-
msgid "
|
623 |
msgstr ""
|
624 |
|
625 |
-
#: ../
|
626 |
-
msgid "
|
627 |
msgstr ""
|
628 |
|
629 |
-
#: ../
|
630 |
-
msgid "
|
631 |
msgstr ""
|
632 |
|
633 |
-
#: ../
|
634 |
-
msgid "
|
|
|
|
|
635 |
msgstr ""
|
636 |
|
637 |
-
#: ../
|
638 |
-
msgid "
|
639 |
msgstr ""
|
640 |
|
641 |
-
#: ../
|
642 |
-
|
|
|
643 |
msgstr ""
|
644 |
|
645 |
-
#: ../
|
646 |
-
msgid "
|
647 |
msgstr ""
|
648 |
|
649 |
-
#: ../
|
650 |
-
msgid "
|
651 |
msgstr ""
|
652 |
|
653 |
-
#: ../
|
654 |
-
msgid "
|
655 |
msgstr ""
|
656 |
|
657 |
-
#: ../
|
658 |
-
msgid "
|
|
|
|
|
659 |
msgstr ""
|
660 |
|
661 |
-
#: ../
|
662 |
-
msgid "
|
663 |
msgstr ""
|
664 |
|
665 |
-
#: ../
|
666 |
-
msgid "
|
667 |
msgstr ""
|
668 |
|
669 |
-
#: ../
|
670 |
-
|
|
|
671 |
msgstr ""
|
672 |
|
673 |
-
#: ../dashboard.php:
|
674 |
-
|
|
|
675 |
msgstr ""
|
676 |
|
677 |
-
#: ../dashboard.php:
|
678 |
-
|
|
|
679 |
msgstr ""
|
680 |
|
681 |
-
#: ../
|
682 |
-
msgid "
|
683 |
msgstr ""
|
684 |
|
685 |
-
#: ../
|
686 |
-
msgid "
|
687 |
msgstr ""
|
688 |
|
689 |
-
#: ../
|
690 |
-
msgid "
|
691 |
msgstr ""
|
692 |
|
693 |
-
#: ../
|
694 |
-
msgid "
|
695 |
msgstr ""
|
696 |
|
697 |
-
#: ../
|
698 |
-
msgid "
|
699 |
msgstr ""
|
700 |
|
701 |
-
#: ../
|
702 |
-
msgid "
|
703 |
msgstr ""
|
704 |
|
705 |
-
#: ../
|
706 |
-
msgid "
|
707 |
msgstr ""
|
708 |
|
709 |
-
#: ../
|
710 |
-
msgid "
|
|
|
|
|
|
|
|
|
711 |
msgstr ""
|
712 |
|
713 |
-
#: ../
|
714 |
-
msgid "
|
715 |
msgstr ""
|
716 |
|
717 |
-
#: ../
|
718 |
-
|
719 |
-
msgid "Settings"
|
720 |
msgstr ""
|
721 |
|
722 |
-
#: ../
|
723 |
-
|
|
|
724 |
msgstr ""
|
725 |
|
726 |
-
#: ../
|
727 |
-
msgid "
|
728 |
msgstr ""
|
729 |
|
730 |
-
#: ../
|
731 |
-
msgid "
|
732 |
msgstr ""
|
733 |
|
734 |
-
#: ../
|
735 |
-
msgid "
|
736 |
msgstr ""
|
737 |
|
738 |
-
#: ../
|
739 |
-
msgid "
|
740 |
msgstr ""
|
741 |
|
742 |
-
#: ../
|
743 |
-
msgid "
|
744 |
msgstr ""
|
745 |
|
746 |
-
#: ../
|
747 |
-
msgid "
|
748 |
msgstr ""
|
749 |
|
750 |
-
#: ../
|
751 |
-
msgid "
|
752 |
msgstr ""
|
753 |
|
754 |
-
#: ../
|
755 |
-
msgid "
|
756 |
msgstr ""
|
757 |
|
758 |
-
#: ../
|
759 |
-
msgid "
|
760 |
msgstr ""
|
761 |
|
762 |
-
#: ../
|
763 |
-
msgid "
|
764 |
msgstr ""
|
765 |
|
766 |
-
#: ../
|
767 |
-
msgid "
|
768 |
msgstr ""
|
769 |
|
770 |
-
#: ../
|
771 |
-
msgid "
|
772 |
msgstr ""
|
773 |
|
774 |
-
#: ../
|
775 |
-
msgid "
|
776 |
msgstr ""
|
777 |
|
778 |
-
#: ../
|
779 |
-
msgid "
|
780 |
msgstr ""
|
781 |
|
782 |
-
#: ../
|
783 |
-
msgid "
|
784 |
msgstr ""
|
785 |
|
786 |
-
#: ../
|
787 |
-
msgid "
|
788 |
msgstr ""
|
789 |
|
790 |
-
#: ../
|
791 |
-
msgid "
|
792 |
msgstr ""
|
793 |
|
794 |
-
#: ../
|
795 |
-
msgid "
|
796 |
msgstr ""
|
797 |
|
798 |
-
#: ../
|
799 |
-
msgid "
|
800 |
msgstr ""
|
801 |
|
802 |
-
#: ../
|
803 |
-
msgid "
|
804 |
msgstr ""
|
805 |
|
806 |
-
#: ../
|
807 |
-
msgid "
|
|
|
|
|
808 |
msgstr ""
|
809 |
|
810 |
-
#: ../
|
811 |
-
|
812 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
813 |
msgstr ""
|
814 |
|
815 |
-
#: ../
|
816 |
-
|
|
|
817 |
msgstr ""
|
818 |
|
819 |
-
#: ../
|
820 |
-
msgid "
|
821 |
msgstr ""
|
822 |
|
823 |
-
#: ../
|
824 |
-
msgid "
|
825 |
msgstr ""
|
826 |
|
827 |
-
#: ../
|
828 |
-
|
|
|
829 |
msgstr ""
|
830 |
|
831 |
-
#: ../
|
832 |
-
msgid "
|
833 |
msgstr ""
|
834 |
|
835 |
-
#: ../
|
836 |
-
msgid "
|
837 |
msgstr ""
|
838 |
|
839 |
-
|
840 |
-
msgid "
|
841 |
msgstr ""
|
842 |
|
843 |
-
|
844 |
-
msgid "
|
845 |
msgstr ""
|
846 |
|
847 |
-
|
848 |
-
msgid ""
|
849 |
-
"Defends WordPress against hacker attacks, spam, trojans, and viruses. "
|
850 |
-
"Malware scanner and integrity checker. Hardening WordPress with a set of "
|
851 |
-
"comprehensive security algorithms. Spam protection with a sophisticated bot "
|
852 |
-
"detection engine and reCAPTCHA. Tracks user and intruder activity with "
|
853 |
-
"powerful email, mobile and desktop notifications."
|
854 |
msgstr ""
|
855 |
|
856 |
-
|
857 |
-
msgid "
|
858 |
msgstr ""
|
859 |
|
860 |
-
#: ../
|
861 |
-
msgid "
|
862 |
msgstr ""
|
863 |
|
864 |
-
#: ../
|
865 |
-
msgid "
|
866 |
msgstr ""
|
867 |
|
868 |
-
#: ../
|
869 |
-
msgid "
|
870 |
msgstr ""
|
871 |
|
872 |
-
#: ../
|
873 |
-
msgid "
|
874 |
msgstr ""
|
875 |
|
876 |
-
#: ../
|
877 |
-
msgid "
|
878 |
msgstr ""
|
879 |
|
880 |
-
#: ../
|
881 |
-
msgid "
|
882 |
msgstr ""
|
883 |
|
884 |
-
#: ../
|
885 |
-
|
886 |
-
#: 673 ../admin/cerber-settings.php:753 ../admin/cerber-admin.php:858 ../cerber-
|
887 |
-
#: load.php:649 ../cerber-load.php:661 ../cerber-load.php:668 ../cerber-load.php:
|
888 |
-
#: 1008 ../cerber-load.php:1549 ../cerber-load.php:1555 ../cerber-load.php:1560 ..
|
889 |
-
#: /cerber-load.php:1567 ../cerber-load.php:1574 ../cerber-load.php:1580 ..
|
890 |
-
#: /cerber-load.php:1587 ../cerber-load.php:1752 ../cerber-load.php:1889 ..
|
891 |
-
#: /nexus/cerber-nexus-slave.php:204 ../nexus/cerber-nexus-slave.php:215
|
892 |
-
msgid "ERROR:"
|
893 |
msgstr ""
|
894 |
|
895 |
-
#: ../
|
896 |
-
msgid "
|
897 |
msgstr ""
|
898 |
|
899 |
-
#: ../
|
900 |
-
msgid "
|
901 |
msgstr ""
|
902 |
|
903 |
-
#: ../
|
904 |
-
msgid "
|
905 |
msgstr ""
|
906 |
|
907 |
-
#: ../
|
908 |
-
msgid "
|
909 |
msgstr ""
|
910 |
|
911 |
-
#: ../
|
912 |
-
msgid "
|
913 |
msgstr ""
|
914 |
|
915 |
-
#: ../
|
916 |
-
msgid "
|
917 |
msgstr ""
|
918 |
|
919 |
-
#: ../
|
920 |
-
msgid "
|
921 |
msgstr ""
|
922 |
|
923 |
-
#: ../
|
924 |
-
|
|
|
925 |
msgstr ""
|
926 |
|
927 |
-
#: ../
|
928 |
-
msgid "
|
929 |
msgstr ""
|
930 |
|
931 |
-
#: ../
|
932 |
-
|
|
|
933 |
msgstr ""
|
934 |
|
935 |
-
#: ../
|
936 |
-
msgid "
|
937 |
msgstr ""
|
938 |
|
939 |
-
#: ../
|
940 |
-
msgid "
|
941 |
msgstr ""
|
942 |
|
943 |
-
#: ../
|
944 |
-
msgid "
|
945 |
msgstr ""
|
946 |
|
947 |
-
#: ../
|
948 |
-
msgid "
|
949 |
msgstr ""
|
950 |
|
951 |
-
#: ../
|
952 |
-
msgid "
|
953 |
msgstr ""
|
954 |
|
955 |
-
#: ../
|
956 |
-
msgid "
|
957 |
msgstr ""
|
958 |
|
959 |
-
#: ../
|
960 |
-
msgid "
|
961 |
msgstr ""
|
962 |
|
963 |
-
#: ../
|
964 |
-
msgid "
|
965 |
msgstr ""
|
966 |
|
967 |
-
#: ../
|
968 |
-
msgid "
|
969 |
msgstr ""
|
970 |
|
971 |
-
#: ../
|
972 |
-
msgid "
|
973 |
msgstr ""
|
974 |
|
975 |
-
#: ../
|
976 |
-
msgid "
|
|
|
|
|
977 |
msgstr ""
|
978 |
|
979 |
-
#: ../
|
980 |
-
msgid "
|
981 |
msgstr ""
|
982 |
|
983 |
-
#: ../
|
984 |
-
msgid "
|
985 |
msgstr ""
|
986 |
|
987 |
-
#: ../
|
988 |
-
msgid "
|
989 |
msgstr ""
|
990 |
|
991 |
-
#: ../
|
992 |
-
msgid "
|
993 |
msgstr ""
|
994 |
|
995 |
-
#: ../
|
996 |
-
msgid "
|
997 |
msgstr ""
|
998 |
|
999 |
-
#: ../
|
1000 |
-
msgid "
|
1001 |
msgstr ""
|
1002 |
|
1003 |
-
#: ../
|
1004 |
-
msgid "
|
1005 |
msgstr ""
|
1006 |
|
1007 |
-
#: ../
|
1008 |
-
msgid "
|
1009 |
msgstr ""
|
1010 |
|
1011 |
-
#: ../
|
1012 |
-
msgid "
|
1013 |
msgstr ""
|
1014 |
|
1015 |
-
#: ../
|
1016 |
-
msgid "
|
1017 |
msgstr ""
|
1018 |
|
1019 |
-
#: ../
|
1020 |
-
msgid "
|
1021 |
msgstr ""
|
1022 |
|
1023 |
-
#: ../
|
1024 |
-
msgid "
|
1025 |
msgstr ""
|
1026 |
|
1027 |
-
#: ../
|
1028 |
-
msgid "User
|
1029 |
msgstr ""
|
1030 |
|
1031 |
-
#: ../
|
1032 |
-
msgid "
|
1033 |
msgstr ""
|
1034 |
|
1035 |
-
#: ../
|
1036 |
-
msgid "
|
1037 |
msgstr ""
|
1038 |
|
1039 |
-
#: ../
|
1040 |
-
|
|
|
|
|
1041 |
msgstr ""
|
1042 |
|
1043 |
-
#: ../
|
1044 |
-
msgid "
|
1045 |
msgstr ""
|
1046 |
|
1047 |
-
#: ../
|
1048 |
-
msgid "
|
1049 |
msgstr ""
|
1050 |
|
1051 |
-
#: ../
|
1052 |
-
msgid "
|
1053 |
msgstr ""
|
1054 |
|
1055 |
-
#: ../
|
1056 |
-
msgid "
|
1057 |
msgstr ""
|
1058 |
|
1059 |
-
#: ../
|
1060 |
-
msgid "
|
1061 |
msgstr ""
|
1062 |
|
1063 |
-
#: ../
|
1064 |
-
msgid "
|
1065 |
msgstr ""
|
1066 |
|
1067 |
-
#: ../
|
1068 |
-
msgid "
|
1069 |
msgstr ""
|
1070 |
|
1071 |
-
#: ../
|
1072 |
-
msgid "
|
1073 |
msgstr ""
|
1074 |
|
1075 |
-
#: ../
|
1076 |
-
msgid "
|
1077 |
msgstr ""
|
1078 |
|
1079 |
-
#: ../
|
1080 |
-
msgid "
|
1081 |
msgstr ""
|
1082 |
|
1083 |
-
#: ../
|
1084 |
-
msgid "
|
1085 |
msgstr ""
|
1086 |
|
1087 |
-
#: ../
|
1088 |
-
msgid "
|
1089 |
msgstr ""
|
1090 |
|
1091 |
-
#: ../
|
1092 |
-
msgid "
|
1093 |
msgstr ""
|
1094 |
|
1095 |
-
#: ../
|
1096 |
-
msgid "
|
1097 |
msgstr ""
|
1098 |
|
1099 |
-
#: ../
|
1100 |
-
msgid "
|
1101 |
msgstr ""
|
1102 |
|
1103 |
-
#: ../
|
1104 |
-
msgid "
|
1105 |
msgstr ""
|
1106 |
|
1107 |
-
#: ../
|
1108 |
-
msgid "
|
1109 |
-
msgstr ""
|
1110 |
-
|
1111 |
-
#: ../common.php:1413
|
1112 |
-
msgid "Permission denied"
|
1113 |
-
msgstr ""
|
1114 |
-
|
1115 |
-
#: ../common.php:1415
|
1116 |
-
msgid "Invalid user"
|
1117 |
msgstr ""
|
1118 |
|
1119 |
-
#: ../
|
1120 |
-
msgid "
|
1121 |
msgstr ""
|
1122 |
|
1123 |
-
#: ../
|
1124 |
-
msgid "
|
1125 |
msgstr ""
|
1126 |
|
1127 |
-
#: ../
|
1128 |
-
msgid "
|
1129 |
msgstr ""
|
1130 |
|
1131 |
-
#: ../
|
1132 |
-
msgid "
|
1133 |
msgstr ""
|
1134 |
|
1135 |
-
#: ../
|
1136 |
-
msgid "
|
1137 |
msgstr ""
|
1138 |
|
1139 |
-
#: ../
|
1140 |
-
msgid "
|
1141 |
msgstr ""
|
1142 |
|
1143 |
-
#: ../
|
1144 |
-
msgid "
|
1145 |
msgstr ""
|
1146 |
|
1147 |
-
#: ../
|
1148 |
-
msgid "
|
1149 |
msgstr ""
|
1150 |
|
1151 |
-
#: ../
|
1152 |
-
msgid "
|
1153 |
msgstr ""
|
1154 |
|
1155 |
-
#: ../
|
1156 |
-
msgid "
|
1157 |
msgstr ""
|
1158 |
|
1159 |
-
|
1160 |
-
#: ../common.php:1615
|
1161 |
#, php-format
|
1162 |
-
msgid "
|
1163 |
-
msgid_plural "%s
|
1164 |
msgstr[0] ""
|
1165 |
msgstr[1] ""
|
1166 |
|
1167 |
-
#: ../
|
1168 |
-
|
1169 |
-
msgid "%s ago"
|
1170 |
-
msgstr ""
|
1171 |
-
|
1172 |
-
#: ../common.php:1622
|
1173 |
-
#, php-format
|
1174 |
-
msgctxt "preposition of a period of time like: in 6 hours"
|
1175 |
-
msgid "in %s"
|
1176 |
-
msgstr ""
|
1177 |
-
|
1178 |
-
#: ../common.php:1729
|
1179 |
-
msgid "Bytes"
|
1180 |
-
msgstr ""
|
1181 |
-
|
1182 |
-
#: ../common.php:1835
|
1183 |
-
#, php-format
|
1184 |
-
msgid "A new version of %s is available. Please install it."
|
1185 |
-
msgstr ""
|
1186 |
-
|
1187 |
-
#: ../common.php:1855
|
1188 |
-
msgid "Not specified"
|
1189 |
-
msgstr ""
|
1190 |
-
|
1191 |
-
#: ../common.php:2780
|
1192 |
-
msgid "Unable to create the directory"
|
1193 |
-
msgstr ""
|
1194 |
-
|
1195 |
-
#: ../common.php:2785
|
1196 |
-
msgid "Destination folder access denied"
|
1197 |
-
msgstr ""
|
1198 |
-
|
1199 |
-
#: ../common.php:2788
|
1200 |
-
msgid "File not found"
|
1201 |
-
msgstr ""
|
1202 |
-
|
1203 |
-
#: ../common.php:2791
|
1204 |
-
msgid "Unable to copy the file"
|
1205 |
-
msgstr ""
|
1206 |
-
|
1207 |
-
#: ../common.php:2797
|
1208 |
-
msgid "Unable to delete the file"
|
1209 |
-
msgstr ""
|
1210 |
-
|
1211 |
-
#. Description of the plugin
|
1212 |
-
msgid ""
|
1213 |
-
"This is a standard boot module for WP Cerber Security & Antispam plugin. It "
|
1214 |
-
"was installed when you set the plugin initialization mode to Standard. Know "
|
1215 |
-
"more: <a href=\"https://wpcerber.com\">wpcerber.com</a>."
|
1216 |
-
msgstr ""
|
1217 |
-
|
1218 |
-
#: ../admin/cerber-settings.php:100 ../admin/cerber-settings.php:270 ../cerber-
|
1219 |
-
#: lab.php:839
|
1220 |
-
msgid "Know more"
|
1221 |
-
msgstr ""
|
1222 |
-
|
1223 |
-
#: ../admin/cerber-settings.php:352
|
1224 |
-
#, php-format
|
1225 |
-
msgid "%s retries are allowed within %s minutes"
|
1226 |
-
msgstr ""
|
1227 |
-
|
1228 |
-
#: ../admin/cerber-settings.php:358
|
1229 |
-
#, php-format
|
1230 |
-
msgid "%s registrations are allowed within %s minutes from one IP address"
|
1231 |
-
msgstr ""
|
1232 |
-
|
1233 |
-
#: ../admin/cerber-settings.php:364
|
1234 |
-
#, php-format
|
1235 |
-
msgid "Increase lockout duration to %s hours after %s lockouts in the last %s hours"
|
1236 |
-
msgstr ""
|
1237 |
-
|
1238 |
-
#: ../admin/cerber-settings.php:372
|
1239 |
-
msgid "Notify admin if the number of active lockouts above"
|
1240 |
-
msgstr ""
|
1241 |
-
|
1242 |
-
#: ../admin/cerber-settings.php:377 ../settings.php:270
|
1243 |
-
msgid "Click to send test"
|
1244 |
-
msgstr ""
|
1245 |
-
|
1246 |
-
#: ../admin/cerber-settings.php:381
|
1247 |
-
#, php-format
|
1248 |
-
msgid "Enable after %s failed login attempts in the last %s minutes"
|
1249 |
-
msgstr ""
|
1250 |
-
|
1251 |
-
#: ../admin/cerber-settings.php:517
|
1252 |
-
msgid "Select one or more roles"
|
1253 |
-
msgstr ""
|
1254 |
-
|
1255 |
-
#: ../admin/cerber-settings.php:541
|
1256 |
-
msgid "Sunday"
|
1257 |
msgstr ""
|
1258 |
|
1259 |
-
#: ../
|
1260 |
-
msgid "
|
1261 |
msgstr ""
|
1262 |
|
1263 |
-
#: ../
|
1264 |
-
msgid "
|
1265 |
msgstr ""
|
1266 |
|
1267 |
-
#: ../
|
1268 |
-
|
|
|
1269 |
msgstr ""
|
1270 |
|
1271 |
-
#: ../
|
1272 |
-
msgid "
|
1273 |
msgstr ""
|
1274 |
|
1275 |
-
#: ../admin/cerber-
|
1276 |
-
|
|
|
1277 |
msgstr ""
|
1278 |
|
1279 |
-
#: ../
|
1280 |
-
msgid "
|
1281 |
msgstr ""
|
1282 |
|
1283 |
-
#: ../
|
1284 |
-
|
1285 |
-
msgid "at"
|
1286 |
msgstr ""
|
1287 |
|
1288 |
-
#: ../
|
1289 |
-
msgid "
|
1290 |
msgstr ""
|
1291 |
|
1292 |
-
#: ../
|
1293 |
-
msgid "
|
1294 |
msgstr ""
|
1295 |
|
1296 |
-
#: ../
|
1297 |
-
msgid "
|
1298 |
msgstr ""
|
1299 |
|
1300 |
-
#: ../
|
1301 |
-
msgid ""
|
1302 |
-
"If you use a caching plugin, you have to add your new login URL to the list "
|
1303 |
-
"of pages not to cache."
|
1304 |
msgstr ""
|
1305 |
|
1306 |
-
#: ../
|
1307 |
-
|
1308 |
-
msgid "<strong>ERROR</strong>: please enter a valid email address."
|
1309 |
msgstr ""
|
1310 |
|
1311 |
-
#: ../
|
1312 |
-
msgid "
|
1313 |
msgstr ""
|
1314 |
|
1315 |
-
#: ../
|
1316 |
-
msgid "
|
1317 |
msgstr ""
|
1318 |
|
1319 |
#: ../admin/cerber-admin.php:43
|
@@ -1324,7 +1256,7 @@ msgstr ""
|
|
1324 |
msgid "Finished"
|
1325 |
msgstr ""
|
1326 |
|
1327 |
-
#: ../admin/cerber-admin.php:51 ../settings.php:
|
1328 |
msgid "Duration"
|
1329 |
msgstr ""
|
1330 |
|
@@ -1332,10 +1264,6 @@ msgstr ""
|
|
1332 |
msgid "Performance"
|
1333 |
msgstr ""
|
1334 |
|
1335 |
-
#: ../admin/cerber-admin.php:67 ../nexus/cerber-slave-list.php:339
|
1336 |
-
msgid "Vulnerabilities"
|
1337 |
-
msgstr ""
|
1338 |
-
|
1339 |
#: ../admin/cerber-admin.php:71
|
1340 |
msgid "New files"
|
1341 |
msgstr ""
|
@@ -1344,10 +1272,6 @@ msgstr ""
|
|
1344 |
msgid "Changed files"
|
1345 |
msgstr ""
|
1346 |
|
1347 |
-
#: ../admin/cerber-admin.php:79 ../cerber-scanner.php:1457
|
1348 |
-
msgid "Checksum mismatch"
|
1349 |
-
msgstr ""
|
1350 |
-
|
1351 |
#: ../admin/cerber-admin.php:83
|
1352 |
msgid "Unwanted extensions"
|
1353 |
msgstr ""
|
@@ -1356,7 +1280,7 @@ msgstr ""
|
|
1356 |
msgid "Unattended files"
|
1357 |
msgstr ""
|
1358 |
|
1359 |
-
#: ../admin/cerber-admin.php:96 ../admin/cerber-admin.php:
|
1360 |
msgid "Scanned"
|
1361 |
msgstr ""
|
1362 |
|
@@ -1368,10 +1292,6 @@ msgstr ""
|
|
1368 |
msgid "Critical issues"
|
1369 |
msgstr ""
|
1370 |
|
1371 |
-
#: ../admin/cerber-admin.php:103 ../cerber-scanner.php:4818
|
1372 |
-
msgid "Issues total"
|
1373 |
-
msgstr ""
|
1374 |
-
|
1375 |
#: ../admin/cerber-admin.php:164
|
1376 |
msgid "Currently a scheduled scan in progress. Please wait until it is finished."
|
1377 |
msgstr ""
|
@@ -1422,2470 +1342,2567 @@ msgid ""
|
|
1422 |
"malware."
|
1423 |
msgstr ""
|
1424 |
|
1425 |
-
#: ../admin/cerber-admin.php:
|
1426 |
-
#, php-format
|
1427 |
-
msgid "Maximum upload file size: %s."
|
1428 |
-
msgstr ""
|
1429 |
-
|
1430 |
-
#: ../admin/cerber-admin.php:249 ../cerber-tools.php:50
|
1431 |
-
msgid "Upload file"
|
1432 |
-
msgstr ""
|
1433 |
-
|
1434 |
-
#: ../admin/cerber-admin.php:344
|
1435 |
msgid ""
|
1436 |
"File access error. Possibly scan results are outdated. Please run Quick or "
|
1437 |
"Full Scan."
|
1438 |
msgstr ""
|
1439 |
|
1440 |
-
#: ../admin/cerber-admin.php:
|
1441 |
msgid "There are no files in the quarantine at the moment."
|
1442 |
msgstr ""
|
1443 |
|
1444 |
-
#: ../admin/cerber-admin.php:
|
1445 |
msgid "No files match the specified filter."
|
1446 |
msgstr ""
|
1447 |
|
1448 |
-
#: ../admin/cerber-admin.php:
|
1449 |
msgid "Click here to see the full list of files"
|
1450 |
msgstr ""
|
1451 |
|
1452 |
-
#: ../admin/cerber-admin.php:
|
1453 |
msgid "Delete permanently"
|
1454 |
msgstr ""
|
1455 |
|
1456 |
-
#: ../admin/cerber-admin.php:
|
1457 |
msgid "Restore"
|
1458 |
msgstr ""
|
1459 |
|
1460 |
-
#: ../admin/cerber-admin.php:
|
1461 |
msgid "Quarantined"
|
1462 |
msgstr ""
|
1463 |
|
1464 |
-
#: ../admin/cerber-admin.php:
|
1465 |
msgid "Automatic deletion"
|
1466 |
msgstr ""
|
1467 |
|
1468 |
-
#: ../admin/cerber-admin.php:
|
1469 |
-
#: admin.php:
|
1470 |
msgid "Size"
|
1471 |
msgstr ""
|
1472 |
|
1473 |
-
#: ../admin/cerber-admin.php:
|
1474 |
msgid "File"
|
1475 |
msgstr ""
|
1476 |
|
1477 |
-
#: ../admin/cerber-admin.php:
|
1478 |
msgid "All scans"
|
1479 |
msgstr ""
|
1480 |
|
1481 |
-
#: ../admin/cerber-admin.php:
|
1482 |
msgid "The file has been deleted permanently."
|
1483 |
msgstr ""
|
1484 |
|
1485 |
-
#: ../admin/cerber-admin.php:
|
1486 |
msgid "The file has been restored to its original location."
|
1487 |
msgstr ""
|
1488 |
|
1489 |
-
#: ../admin/cerber-admin.php:
|
1490 |
msgid "Apply"
|
1491 |
msgstr ""
|
1492 |
|
1493 |
-
#: ../admin/cerber-admin.php:
|
1494 |
msgid "Remove from the list"
|
1495 |
msgstr ""
|
1496 |
|
1497 |
-
#: ../admin/cerber-admin.php:
|
1498 |
msgid "User Insights"
|
1499 |
msgstr ""
|
1500 |
|
1501 |
-
#: ../admin/cerber-admin.php:
|
1502 |
msgid "Traffic Insights"
|
1503 |
msgstr ""
|
1504 |
|
1505 |
-
#: ../admin/cerber-admin.php:
|
1506 |
msgid "Activity Insights"
|
1507 |
msgstr ""
|
1508 |
|
1509 |
-
#: ../admin/cerber-admin.php:
|
1510 |
msgid "The list is empty."
|
1511 |
msgstr ""
|
1512 |
|
1513 |
-
#: ../admin/cerber-admin.php:
|
1514 |
msgid "Added"
|
1515 |
msgstr ""
|
1516 |
|
1517 |
-
#: ../admin/cerber-admin.php:
|
1518 |
msgid "Modified"
|
1519 |
msgstr ""
|
1520 |
|
1521 |
-
#: ../admin/cerber-admin.php:
|
1522 |
msgid "Files without extension"
|
1523 |
msgstr ""
|
1524 |
|
1525 |
-
#: ../admin/cerber-admin.php:
|
1526 |
msgid "Back to list"
|
1527 |
msgstr ""
|
1528 |
|
1529 |
-
#: ../admin/cerber-admin.php:
|
1530 |
msgid "Brief summary"
|
1531 |
msgstr ""
|
1532 |
|
1533 |
-
#: ../admin/cerber-admin.php:
|
1534 |
msgid "Folder"
|
1535 |
msgstr ""
|
1536 |
|
1537 |
-
#: ../admin/cerber-admin.php:
|
1538 |
msgid "Path"
|
1539 |
msgstr ""
|
1540 |
|
1541 |
-
#: ../admin/cerber-admin.php:
|
1542 |
msgid "Files"
|
1543 |
msgstr ""
|
1544 |
|
1545 |
-
#: ../admin/cerber-admin.php:
|
1546 |
msgid "Space Occupied"
|
1547 |
msgstr ""
|
1548 |
|
1549 |
-
#: ../admin/cerber-admin.php:
|
1550 |
msgid "No extension"
|
1551 |
msgstr ""
|
1552 |
|
1553 |
-
#: ../admin/cerber-admin.php:
|
1554 |
msgid "File extensions statistics"
|
1555 |
msgstr ""
|
1556 |
|
1557 |
-
#: ../admin/cerber-admin.php:
|
1558 |
msgid "Extension"
|
1559 |
msgstr ""
|
1560 |
|
1561 |
-
#: ../admin/cerber-admin.php:
|
1562 |
msgid "Smallest"
|
1563 |
msgstr ""
|
1564 |
|
1565 |
-
#: ../admin/cerber-admin.php:
|
1566 |
msgid "Largest"
|
1567 |
msgstr ""
|
1568 |
|
1569 |
-
#: ../admin/cerber-admin.php:
|
1570 |
msgid "Average Size"
|
1571 |
msgstr ""
|
1572 |
|
1573 |
-
#: ../admin/cerber-admin.php:
|
1574 |
msgid "Oldest"
|
1575 |
msgstr ""
|
1576 |
|
1577 |
-
#: ../admin/cerber-admin.php:
|
1578 |
msgid "Newest"
|
1579 |
msgstr ""
|
1580 |
|
1581 |
-
#: ../admin/cerber-admin.php:
|
1582 |
msgid "Top 10 largest files"
|
1583 |
msgstr ""
|
1584 |
|
1585 |
-
#: ../admin/cerber-admin.php:
|
1586 |
msgid "File Name"
|
1587 |
msgstr ""
|
1588 |
|
1589 |
-
#: ../cerber-
|
1590 |
-
|
|
|
1591 |
msgstr ""
|
1592 |
|
1593 |
-
#: ../cerber-
|
1594 |
-
|
1595 |
-
"
|
1596 |
-
"This helps the plugin team to develop new algorithms for WP Cerber that will "
|
1597 |
-
"defend WordPress against new threats and botnets that are appearing "
|
1598 |
-
"everyday. You can disable the sending in the plugin settings at any time."
|
1599 |
msgstr ""
|
1600 |
|
1601 |
-
#: ../cerber-
|
1602 |
-
|
|
|
1603 |
msgstr ""
|
1604 |
|
1605 |
-
#: ../cerber-
|
1606 |
-
msgid "
|
1607 |
msgstr ""
|
1608 |
|
1609 |
-
#: ../cerber-
|
1610 |
-
msgid "
|
1611 |
msgstr ""
|
1612 |
|
1613 |
-
#: ../cerber-
|
1614 |
#, php-format
|
1615 |
-
msgid ""
|
1616 |
-
"You have exceeded the number of allowed login attempts. Please try again in "
|
1617 |
-
"%d minutes."
|
1618 |
msgstr ""
|
1619 |
|
1620 |
-
#: ../cerber-
|
1621 |
-
msgid "
|
1622 |
msgstr ""
|
1623 |
|
1624 |
-
#: ../cerber-
|
1625 |
-
|
1626 |
-
msgid "You have only one attempt remaining."
|
1627 |
-
msgid_plural "You have %d attempts remaining."
|
1628 |
-
msgstr[0] ""
|
1629 |
-
msgstr[1] ""
|
1630 |
-
|
1631 |
-
#: ../cerber-load.php:678
|
1632 |
-
msgid ""
|
1633 |
-
"Human verification failed. Please click the square box in the reCAPTCHA "
|
1634 |
-
"block below."
|
1635 |
msgstr ""
|
1636 |
|
1637 |
-
#: ../cerber-
|
1638 |
-
msgid ""
|
1639 |
-
"> > > Translator of WP Cerber? To get the PRO license for free, drop your "
|
1640 |
-
"contacts here: https://wpcerber.com/contact/"
|
1641 |
msgstr ""
|
1642 |
|
1643 |
-
#: ../cerber-
|
1644 |
-
|
1645 |
-
msgid ""
|
1646 |
-
"<strong>ERROR</strong>: The password you entered for the username %s is "
|
1647 |
-
"incorrect."
|
1648 |
msgstr ""
|
1649 |
|
1650 |
-
#: ../cerber-
|
1651 |
-
|
1652 |
-
msgid "You are not allowed to register."
|
1653 |
msgstr ""
|
1654 |
|
1655 |
-
#: ../cerber-
|
1656 |
-
msgid "
|
1657 |
msgstr ""
|
1658 |
|
1659 |
-
#: ../cerber-
|
1660 |
-
msgid "
|
1661 |
-
msgstr ""
|
1662 |
-
|
1663 |
-
#: ../cerber-load.php:1575
|
1664 |
-
msgid "Please choose another one."
|
1665 |
-
msgstr ""
|
1666 |
-
|
1667 |
-
#: ../cerber-load.php:1889
|
1668 |
-
msgid "Sorry, human verification failed."
|
1669 |
msgstr ""
|
1670 |
|
1671 |
-
#: ../cerber-
|
1672 |
-
msgid "
|
1673 |
msgstr ""
|
1674 |
|
1675 |
-
#: ../cerber-
|
1676 |
-
|
|
|
1677 |
msgstr ""
|
1678 |
|
1679 |
-
#: ../cerber-
|
1680 |
-
msgid "
|
1681 |
msgstr ""
|
1682 |
|
1683 |
-
#: ../cerber-
|
1684 |
-
|
1685 |
-
msgid "Citadel mode is activated after %d failed login attempts in %d minutes."
|
1686 |
msgstr ""
|
1687 |
|
1688 |
-
#: ../cerber-
|
1689 |
-
|
1690 |
-
msgid "Last failed attempt was at %s from IP %s with user login: %s."
|
1691 |
msgstr ""
|
1692 |
|
1693 |
-
#: ../cerber-
|
1694 |
-
msgid "
|
1695 |
msgstr ""
|
1696 |
|
1697 |
-
#: ../cerber-
|
1698 |
-
msgid "
|
|
|
|
|
1699 |
msgstr ""
|
1700 |
|
1701 |
-
#: ../cerber-
|
1702 |
-
|
|
|
1703 |
msgstr ""
|
1704 |
|
1705 |
-
#: ../cerber-
|
1706 |
-
msgid "
|
1707 |
msgstr ""
|
1708 |
|
1709 |
-
#: ../cerber-
|
1710 |
-
|
1711 |
-
msgid "Last lockout was added: %s for IP %s"
|
1712 |
msgstr ""
|
1713 |
|
1714 |
-
|
1715 |
-
msgid "
|
|
|
|
|
|
|
1716 |
msgstr ""
|
1717 |
|
1718 |
-
#: ../
|
1719 |
-
msgid "
|
1720 |
msgstr ""
|
1721 |
|
1722 |
-
#: ../
|
1723 |
-
|
|
|
1724 |
msgstr ""
|
1725 |
|
1726 |
-
#: ../
|
1727 |
-
msgid "
|
1728 |
msgstr ""
|
1729 |
|
1730 |
-
#: ../
|
1731 |
-
|
1732 |
-
msgid "Website"
|
1733 |
msgstr ""
|
1734 |
|
1735 |
-
#: ../
|
1736 |
-
msgid "
|
1737 |
msgstr ""
|
1738 |
|
1739 |
-
#: ../
|
1740 |
-
msgid "
|
1741 |
msgstr ""
|
1742 |
|
1743 |
-
#: ../
|
1744 |
-
msgid "
|
1745 |
msgstr ""
|
1746 |
|
1747 |
-
#: ../
|
1748 |
-
msgid "
|
1749 |
msgstr ""
|
1750 |
|
1751 |
-
#: ../
|
1752 |
-
msgid "
|
1753 |
msgstr ""
|
1754 |
|
1755 |
-
#: ../
|
1756 |
-
msgid "
|
1757 |
msgstr ""
|
1758 |
|
1759 |
-
#: ../
|
1760 |
-
msgid "
|
1761 |
msgstr ""
|
1762 |
|
1763 |
-
#: ../
|
1764 |
-
msgid "
|
1765 |
msgstr ""
|
1766 |
|
1767 |
-
#: ../
|
1768 |
-
msgid "
|
1769 |
msgstr ""
|
1770 |
|
1771 |
-
#: ../
|
1772 |
-
msgid "
|
1773 |
msgstr ""
|
1774 |
|
1775 |
-
#: ../
|
1776 |
-
msgid "
|
1777 |
msgstr ""
|
1778 |
|
1779 |
-
#: ../
|
1780 |
-
msgid "
|
1781 |
msgstr ""
|
1782 |
|
1783 |
-
#: ../
|
1784 |
-
msgid "
|
1785 |
msgstr ""
|
1786 |
|
1787 |
-
#: ../
|
1788 |
-
msgid "
|
1789 |
msgstr ""
|
1790 |
|
1791 |
-
#: ../
|
1792 |
-
|
|
|
1793 |
msgstr ""
|
1794 |
|
1795 |
-
#: ../
|
1796 |
-
msgid "
|
1797 |
msgstr ""
|
1798 |
|
1799 |
-
#: ../
|
1800 |
-
|
1801 |
-
msgid "Your last sign-in was %s from %s"
|
1802 |
msgstr ""
|
1803 |
|
1804 |
-
#: ../
|
1805 |
-
msgid "
|
1806 |
msgstr ""
|
1807 |
|
1808 |
-
#: ../
|
1809 |
-
msgid "
|
1810 |
msgstr ""
|
1811 |
|
1812 |
-
#: ../
|
1813 |
-
|
|
|
1814 |
msgstr ""
|
1815 |
|
1816 |
-
#: ../
|
1817 |
-
msgid "
|
1818 |
msgstr ""
|
1819 |
|
1820 |
-
#: ../
|
1821 |
-
msgid "
|
1822 |
msgstr ""
|
1823 |
|
1824 |
-
#: ../
|
1825 |
-
msgid "
|
1826 |
msgstr ""
|
1827 |
|
1828 |
-
#: ../
|
1829 |
-
msgid "
|
1830 |
msgstr ""
|
1831 |
|
1832 |
-
#: ../
|
1833 |
-
msgid "
|
1834 |
msgstr ""
|
1835 |
|
1836 |
-
#: ../
|
1837 |
#, php-format
|
1838 |
-
msgid "
|
1839 |
msgstr ""
|
1840 |
|
1841 |
-
#: ../
|
1842 |
#, php-format
|
1843 |
-
msgid "
|
1844 |
msgstr ""
|
1845 |
|
1846 |
-
#: ../
|
1847 |
-
msgid "
|
1848 |
msgstr ""
|
1849 |
|
1850 |
-
#: ../
|
1851 |
#, php-format
|
1852 |
-
msgid "
|
1853 |
msgstr ""
|
1854 |
|
1855 |
-
#: ../
|
1856 |
-
msgid "
|
1857 |
msgstr ""
|
1858 |
|
1859 |
-
#: ../
|
1860 |
-
msgid "
|
1861 |
msgstr ""
|
1862 |
|
1863 |
-
#: ../
|
1864 |
-
msgid "
|
1865 |
msgstr ""
|
1866 |
|
1867 |
-
#: ../
|
1868 |
-
|
|
|
1869 |
msgstr ""
|
1870 |
|
1871 |
-
#: ../
|
1872 |
-
msgid "
|
1873 |
msgstr ""
|
1874 |
|
1875 |
-
#: ../
|
1876 |
-
msgid "
|
1877 |
msgstr ""
|
1878 |
|
1879 |
-
#: ../
|
1880 |
-
msgid "
|
1881 |
msgstr ""
|
1882 |
|
1883 |
-
#: ../
|
1884 |
-
msgid "User
|
1885 |
msgstr ""
|
1886 |
|
1887 |
-
#: ../
|
1888 |
-
|
1889 |
-
msgctxt "e.g. blocked by John at 11:00"
|
1890 |
-
msgid "blocked by %s at %s"
|
1891 |
msgstr ""
|
1892 |
|
1893 |
-
#: ../
|
1894 |
-
msgid "
|
1895 |
msgstr ""
|
1896 |
|
1897 |
-
#: ../
|
1898 |
-
msgid "
|
1899 |
msgstr ""
|
1900 |
|
1901 |
-
#: ../
|
1902 |
-
msgid "
|
1903 |
msgstr ""
|
1904 |
|
1905 |
-
#: ../
|
1906 |
-
msgid "
|
1907 |
msgstr ""
|
1908 |
|
1909 |
-
#: ../
|
1910 |
-
msgid "
|
1911 |
msgstr ""
|
1912 |
|
1913 |
-
#: ../
|
1914 |
-
|
|
|
1915 |
msgstr ""
|
1916 |
|
1917 |
-
#: ../
|
1918 |
-
msgid "
|
1919 |
msgstr ""
|
1920 |
|
1921 |
-
#: ../
|
1922 |
-
msgid "
|
1923 |
msgstr ""
|
1924 |
|
1925 |
-
#: ../
|
1926 |
-
msgid "
|
1927 |
msgstr ""
|
1928 |
|
1929 |
-
#: ../
|
1930 |
-
msgid "
|
1931 |
msgstr ""
|
1932 |
|
1933 |
-
#: ../
|
1934 |
-
msgid "
|
1935 |
msgstr ""
|
1936 |
|
1937 |
-
#: ../
|
1938 |
-
msgid "
|
1939 |
msgstr ""
|
1940 |
|
1941 |
-
#: ../
|
1942 |
-
msgid "
|
1943 |
msgstr ""
|
1944 |
|
1945 |
-
#: ../
|
1946 |
-
msgid "
|
1947 |
msgstr ""
|
1948 |
|
1949 |
-
#: ../
|
1950 |
-
msgid "
|
1951 |
msgstr ""
|
1952 |
|
1953 |
-
#: ../
|
1954 |
-
msgid "
|
1955 |
msgstr ""
|
1956 |
|
1957 |
-
#: ../
|
1958 |
-
msgid "
|
1959 |
msgstr ""
|
1960 |
|
1961 |
-
#: ../
|
1962 |
-
msgid "
|
1963 |
msgstr ""
|
1964 |
|
1965 |
-
#: ../
|
1966 |
-
msgid "
|
1967 |
msgstr ""
|
1968 |
|
1969 |
-
#: ../
|
1970 |
-
msgid "
|
1971 |
msgstr ""
|
1972 |
|
1973 |
-
#: ../
|
1974 |
-
msgid "
|
1975 |
msgstr ""
|
1976 |
|
1977 |
-
#: ../
|
1978 |
-
msgid "
|
1979 |
msgstr ""
|
1980 |
|
1981 |
-
#: ../
|
1982 |
-
msgid "
|
1983 |
msgstr ""
|
1984 |
|
1985 |
-
#: ../
|
1986 |
-
msgid "
|
1987 |
msgstr ""
|
1988 |
|
1989 |
-
#: ../
|
1990 |
-
msgid "
|
1991 |
msgstr ""
|
1992 |
|
1993 |
-
#: ../
|
1994 |
-
msgid "
|
1995 |
msgstr ""
|
1996 |
|
1997 |
-
#: ../
|
1998 |
-
msgid "
|
1999 |
msgstr ""
|
2000 |
|
2001 |
-
#: ../
|
2002 |
-
|
2003 |
-
|
2004 |
-
msgid_plural "%s sessions have been terminated"
|
2005 |
-
msgstr[0] ""
|
2006 |
-
msgstr[1] ""
|
2007 |
|
2008 |
-
#: ../
|
2009 |
-
msgid "
|
2010 |
msgstr ""
|
2011 |
|
2012 |
-
#: ../
|
2013 |
-
msgid "
|
2014 |
msgstr ""
|
2015 |
|
2016 |
-
#: ../
|
2017 |
-
msgid "
|
2018 |
msgstr ""
|
2019 |
|
2020 |
-
#: ../
|
2021 |
-
msgid "
|
2022 |
msgstr ""
|
2023 |
|
2024 |
-
#: ../
|
2025 |
-
msgid "
|
2026 |
msgstr ""
|
2027 |
|
2028 |
-
#: ../
|
2029 |
-
msgid "
|
2030 |
msgstr ""
|
2031 |
|
2032 |
-
#: ../
|
2033 |
-
msgid "
|
2034 |
msgstr ""
|
2035 |
|
2036 |
-
#: ../
|
2037 |
-
msgid "
|
2038 |
msgstr ""
|
2039 |
|
2040 |
-
#: ../
|
2041 |
-
msgid "
|
2042 |
msgstr ""
|
2043 |
|
2044 |
-
#: ../
|
2045 |
-
msgid "
|
2046 |
msgstr ""
|
2047 |
|
2048 |
-
#: ../
|
2049 |
-
msgid "
|
2050 |
-
|
|
|
|
|
2051 |
|
2052 |
-
#: ../
|
2053 |
-
msgid "
|
2054 |
-
|
|
|
|
|
2055 |
|
2056 |
-
#: ../settings.php:
|
2057 |
-
msgid "
|
2058 |
msgstr ""
|
2059 |
|
2060 |
-
#: ../
|
2061 |
-
msgid ""
|
2062 |
-
"Please enable Permalinks to use this feature. Set Permalink Settings to "
|
2063 |
-
"something other than Default."
|
2064 |
msgstr ""
|
2065 |
|
2066 |
-
#: ../
|
2067 |
-
msgid "
|
2068 |
msgstr ""
|
2069 |
|
2070 |
-
#: ../
|
2071 |
-
|
|
|
2072 |
msgstr ""
|
2073 |
|
2074 |
-
#: ../
|
2075 |
-
msgid "
|
2076 |
msgstr ""
|
2077 |
|
2078 |
-
#: ../
|
2079 |
-
msgid "
|
2080 |
msgstr ""
|
2081 |
|
2082 |
-
#: ../settings.php:
|
2083 |
-
msgid "
|
2084 |
msgstr ""
|
2085 |
|
2086 |
-
#: ../
|
2087 |
-
msgid "
|
2088 |
msgstr ""
|
2089 |
|
2090 |
-
#: ../
|
2091 |
-
msgid "
|
2092 |
msgstr ""
|
2093 |
|
2094 |
-
#: ../
|
2095 |
-
msgid "
|
2096 |
msgstr ""
|
2097 |
|
2098 |
-
#: ../
|
2099 |
-
msgid "
|
2100 |
msgstr ""
|
2101 |
|
2102 |
-
#: ../
|
2103 |
-
msgid "
|
2104 |
msgstr ""
|
2105 |
|
2106 |
-
#: ../
|
2107 |
-
msgid "
|
2108 |
msgstr ""
|
2109 |
|
2110 |
-
#: ../
|
2111 |
-
msgid "
|
2112 |
msgstr ""
|
2113 |
|
2114 |
-
#: ../
|
2115 |
-
msgid "
|
2116 |
msgstr ""
|
2117 |
|
2118 |
-
#: ../
|
2119 |
-
msgid "
|
2120 |
msgstr ""
|
2121 |
|
2122 |
-
#: ../
|
2123 |
-
msgid "
|
2124 |
msgstr ""
|
2125 |
|
2126 |
-
#: ../
|
2127 |
-
msgid "
|
2128 |
msgstr ""
|
2129 |
|
2130 |
-
#: ../
|
2131 |
-
msgid "
|
2132 |
msgstr ""
|
2133 |
|
2134 |
-
#: ../
|
2135 |
-
msgid "
|
2136 |
msgstr ""
|
2137 |
|
2138 |
-
#: ../
|
2139 |
-
msgid "
|
2140 |
msgstr ""
|
2141 |
|
2142 |
-
#: ../
|
2143 |
-
msgid "
|
2144 |
msgstr ""
|
2145 |
|
2146 |
-
#: ../
|
2147 |
-
msgid "
|
2148 |
msgstr ""
|
2149 |
|
2150 |
-
#: ../
|
2151 |
-
msgid ""
|
2152 |
-
"Disable automatic redirection to the login page when /wp-admin/ is requested "
|
2153 |
-
"by an unauthorized request"
|
2154 |
msgstr ""
|
2155 |
|
2156 |
-
#: ../
|
2157 |
-
msgid "
|
2158 |
msgstr ""
|
2159 |
|
2160 |
-
#: ../
|
2161 |
-
msgid "
|
2162 |
msgstr ""
|
2163 |
|
2164 |
-
#: ../
|
2165 |
-
msgid "
|
2166 |
msgstr ""
|
2167 |
|
2168 |
-
#: ../
|
2169 |
-
msgid "
|
2170 |
msgstr ""
|
2171 |
|
2172 |
-
#: ../
|
2173 |
-
|
2174 |
-
|
|
|
|
|
|
|
2175 |
|
2176 |
-
#: ../
|
2177 |
-
|
2178 |
-
|
|
|
|
|
|
|
2179 |
|
2180 |
-
#: ../
|
2181 |
-
msgid "
|
2182 |
msgstr ""
|
2183 |
|
2184 |
-
#: ../
|
2185 |
-
msgid "
|
2186 |
msgstr ""
|
2187 |
|
2188 |
-
#: ../
|
2189 |
-
msgid ""
|
2190 |
-
"Custom login URL may contain Latin alphanumeric characters, dashes and "
|
2191 |
-
"underscores only"
|
2192 |
msgstr ""
|
2193 |
|
2194 |
-
#: ../
|
2195 |
-
|
|
|
|
|
2196 |
msgstr ""
|
2197 |
|
2198 |
-
#: ../
|
2199 |
-
|
|
|
|
|
2200 |
msgstr ""
|
2201 |
|
2202 |
-
#: ../
|
2203 |
-
msgid "
|
2204 |
msgstr ""
|
2205 |
|
2206 |
-
#: ../
|
2207 |
-
msgid "
|
2208 |
msgstr ""
|
2209 |
|
2210 |
-
#: ../
|
2211 |
-
msgid "
|
2212 |
msgstr ""
|
2213 |
|
2214 |
-
#: ../
|
2215 |
-
msgid "
|
2216 |
msgstr ""
|
2217 |
|
2218 |
-
#: ../
|
2219 |
-
msgid ""
|
2220 |
-
"In the Citadel mode nobody is able to log in except IPs from the White IP "
|
2221 |
-
"Access List. Active user sessions will not be affected."
|
2222 |
msgstr ""
|
2223 |
|
2224 |
-
#: ../
|
2225 |
-
msgid "
|
2226 |
msgstr ""
|
2227 |
|
2228 |
-
#: ../
|
2229 |
-
msgid "
|
2230 |
msgstr ""
|
2231 |
|
2232 |
-
#: ../
|
2233 |
-
msgid "
|
2234 |
msgstr ""
|
2235 |
|
2236 |
-
#: ../
|
2237 |
-
msgid "
|
2238 |
msgstr ""
|
2239 |
|
2240 |
-
#: ../
|
2241 |
-
|
2242 |
-
msgid "days"
|
2243 |
msgstr ""
|
2244 |
|
2245 |
-
#: ../
|
2246 |
-
msgid "
|
2247 |
msgstr ""
|
2248 |
|
2249 |
-
#: ../
|
2250 |
-
msgid "
|
2251 |
msgstr ""
|
2252 |
|
2253 |
-
#: ../
|
2254 |
-
msgid "
|
2255 |
msgstr ""
|
2256 |
|
2257 |
-
#: ../
|
2258 |
-
msgid "
|
2259 |
msgstr ""
|
2260 |
|
2261 |
-
#: ../
|
2262 |
-
msgid "
|
2263 |
msgstr ""
|
2264 |
|
2265 |
-
#: ../
|
2266 |
-
msgid "
|
2267 |
msgstr ""
|
2268 |
|
2269 |
-
#: ../
|
2270 |
-
msgid "
|
2271 |
msgstr ""
|
2272 |
|
2273 |
-
#: ../
|
2274 |
-
msgid "
|
2275 |
msgstr ""
|
2276 |
|
2277 |
-
#: ../
|
2278 |
-
msgid "
|
2279 |
msgstr ""
|
2280 |
|
2281 |
-
#: ../
|
2282 |
-
msgid "
|
2283 |
msgstr ""
|
2284 |
|
2285 |
-
#: ../
|
2286 |
-
|
2287 |
-
msgid "if empty, the default format %s will be used"
|
2288 |
msgstr ""
|
2289 |
|
2290 |
-
#: ../
|
2291 |
-
msgid "
|
2292 |
msgstr ""
|
2293 |
|
2294 |
-
#: ../
|
2295 |
-
msgid "
|
2296 |
msgstr ""
|
2297 |
|
2298 |
-
#: ../
|
2299 |
-
msgid "
|
2300 |
msgstr ""
|
2301 |
|
2302 |
-
#: ../
|
2303 |
-
msgid "
|
2304 |
msgstr ""
|
2305 |
|
2306 |
-
#: ../
|
2307 |
-
msgid "
|
2308 |
msgstr ""
|
2309 |
|
2310 |
-
#: ../settings.php:
|
2311 |
-
msgid "
|
2312 |
msgstr ""
|
2313 |
|
2314 |
-
#: ../
|
2315 |
-
msgid "
|
2316 |
msgstr ""
|
2317 |
|
2318 |
-
#: ../
|
2319 |
-
msgid "
|
2320 |
msgstr ""
|
2321 |
|
2322 |
-
#: ../
|
2323 |
-
msgid "
|
2324 |
msgstr ""
|
2325 |
|
2326 |
-
#: ../
|
2327 |
-
msgid "
|
2328 |
msgstr ""
|
2329 |
|
2330 |
-
#: ../
|
2331 |
-
msgid "
|
2332 |
msgstr ""
|
2333 |
|
2334 |
-
#: ../
|
2335 |
-
msgid "
|
2336 |
msgstr ""
|
2337 |
|
2338 |
-
#: ../
|
2339 |
-
msgid "
|
2340 |
msgstr ""
|
2341 |
|
2342 |
-
#: ../
|
2343 |
-
msgid "
|
2344 |
msgstr ""
|
2345 |
|
2346 |
-
#: ../
|
2347 |
-
msgid "
|
2348 |
msgstr ""
|
2349 |
|
2350 |
-
#: ../
|
2351 |
-
msgid "
|
2352 |
msgstr ""
|
2353 |
|
2354 |
-
#: ../
|
2355 |
-
msgid "
|
2356 |
msgstr ""
|
2357 |
|
2358 |
-
#: ../
|
2359 |
-
msgid "
|
2360 |
msgstr ""
|
2361 |
|
2362 |
-
#: ../
|
2363 |
-
msgid "
|
2364 |
msgstr ""
|
2365 |
|
2366 |
-
#: ../
|
2367 |
-
msgid ""
|
2368 |
-
"Restrict or completely block access to the WordPress REST API according to "
|
2369 |
-
"your needs"
|
2370 |
msgstr ""
|
2371 |
|
2372 |
-
#: ../
|
2373 |
-
msgid "
|
2374 |
msgstr ""
|
2375 |
|
2376 |
-
#: ../
|
2377 |
-
msgid "
|
2378 |
msgstr ""
|
2379 |
|
2380 |
-
#: ../
|
2381 |
-
msgid "
|
2382 |
msgstr ""
|
2383 |
|
2384 |
-
#: ../
|
2385 |
-
msgid "
|
2386 |
msgstr ""
|
2387 |
|
2388 |
-
#: ../
|
2389 |
-
msgid "
|
2390 |
msgstr ""
|
2391 |
|
2392 |
-
#: ../
|
2393 |
-
msgid "
|
2394 |
msgstr ""
|
2395 |
|
2396 |
-
#: ../
|
2397 |
-
msgid ""
|
2398 |
-
"Specify REST API namespaces to be allowed if REST API is disabled. One "
|
2399 |
-
"string per line."
|
2400 |
msgstr ""
|
2401 |
|
2402 |
-
#: ../
|
2403 |
-
msgid "
|
2404 |
msgstr ""
|
2405 |
|
2406 |
-
#: ../
|
2407 |
-
msgid ""
|
2408 |
-
"Restrict user account creation and user management with the following "
|
2409 |
-
"policies"
|
2410 |
msgstr ""
|
2411 |
|
2412 |
-
#: ../
|
2413 |
-
msgid "
|
2414 |
msgstr ""
|
2415 |
|
2416 |
-
#: ../
|
2417 |
-
msgid "
|
2418 |
msgstr ""
|
2419 |
|
2420 |
-
#: ../
|
2421 |
-
msgid "
|
2422 |
msgstr ""
|
2423 |
|
2424 |
-
#: ../
|
2425 |
-
msgid "
|
2426 |
msgstr ""
|
2427 |
|
2428 |
-
#: ../
|
2429 |
-
msgid "
|
2430 |
msgstr ""
|
2431 |
|
2432 |
-
#: ../
|
2433 |
-
msgid "
|
2434 |
msgstr ""
|
2435 |
|
2436 |
-
#: ../
|
2437 |
-
msgid "
|
2438 |
msgstr ""
|
2439 |
|
2440 |
-
#: ../
|
2441 |
-
msgid "
|
2442 |
msgstr ""
|
2443 |
|
2444 |
-
#: ../
|
2445 |
-
msgid "
|
2446 |
msgstr ""
|
2447 |
|
2448 |
-
#: ../
|
2449 |
-
msgid "
|
2450 |
msgstr ""
|
2451 |
|
2452 |
-
#: ../
|
2453 |
-
msgid "
|
2454 |
msgstr ""
|
2455 |
|
2456 |
-
#: ../
|
2457 |
-
msgid "
|
2458 |
msgstr ""
|
2459 |
|
2460 |
-
#: ../
|
2461 |
-
msgid "
|
2462 |
msgstr ""
|
2463 |
|
2464 |
-
#: ../
|
2465 |
-
msgid "
|
2466 |
msgstr ""
|
2467 |
|
2468 |
-
#: ../
|
2469 |
-
msgid "
|
2470 |
msgstr ""
|
2471 |
|
2472 |
-
#: ../
|
2473 |
-
msgid "
|
2474 |
msgstr ""
|
2475 |
|
2476 |
-
#: ../
|
2477 |
-
msgid "
|
2478 |
msgstr ""
|
2479 |
|
2480 |
-
#: ../
|
2481 |
-
msgid "
|
2482 |
msgstr ""
|
2483 |
|
2484 |
-
#: ../
|
2485 |
-
msgid "
|
2486 |
msgstr ""
|
2487 |
|
2488 |
-
#: ../
|
2489 |
-
msgid "
|
2490 |
msgstr ""
|
2491 |
|
2492 |
-
#: ../
|
2493 |
-
msgid "
|
2494 |
msgstr ""
|
2495 |
|
2496 |
-
#: ../
|
2497 |
-
msgid "
|
2498 |
msgstr ""
|
2499 |
|
2500 |
-
#: ../
|
2501 |
-
msgid ""
|
2502 |
-
"Specify email addresses, wildcards or REGEX patterns. Use comma to separate "
|
2503 |
-
"items."
|
2504 |
msgstr ""
|
2505 |
|
2506 |
-
#: ../
|
2507 |
-
msgid "
|
2508 |
msgstr ""
|
2509 |
|
2510 |
-
#: ../
|
2511 |
-
msgid "
|
2512 |
msgstr ""
|
2513 |
|
2514 |
-
#: ../
|
2515 |
-
msgid ""
|
2516 |
-
"Usernames from this list are not allowed to log in or register. Any IP "
|
2517 |
-
"address, have tried to use any of these usernames, will be immediately "
|
2518 |
-
"blocked. Use comma to separate logins."
|
2519 |
msgstr ""
|
2520 |
|
2521 |
-
#: ../
|
2522 |
-
msgid "
|
2523 |
msgstr ""
|
2524 |
|
2525 |
-
#: ../
|
2526 |
-
msgid "
|
2527 |
msgstr ""
|
2528 |
|
2529 |
-
#: ../
|
2530 |
-
msgid "
|
2531 |
msgstr ""
|
2532 |
|
2533 |
-
#: ../
|
2534 |
-
msgid "
|
2535 |
msgstr ""
|
2536 |
|
2537 |
-
#: ../
|
2538 |
-
msgid ""
|
2539 |
-
"These features help your organization to be in compliance with personal data "
|
2540 |
-
"protection laws"
|
2541 |
msgstr ""
|
2542 |
|
2543 |
-
#: ../
|
2544 |
-
msgid "
|
2545 |
msgstr ""
|
2546 |
|
2547 |
-
#: ../
|
2548 |
-
msgid "
|
2549 |
msgstr ""
|
2550 |
|
2551 |
-
#: ../
|
2552 |
-
msgid "
|
2553 |
msgstr ""
|
2554 |
|
2555 |
-
#: ../
|
2556 |
-
msgid "
|
2557 |
msgstr ""
|
2558 |
|
2559 |
-
#: ../
|
2560 |
-
msgid "
|
2561 |
msgstr ""
|
2562 |
|
2563 |
-
#: ../
|
2564 |
-
msgid "
|
2565 |
msgstr ""
|
2566 |
|
2567 |
-
#: ../
|
2568 |
-
msgid "
|
2569 |
msgstr ""
|
2570 |
|
2571 |
-
#: ../
|
2572 |
-
msgid "
|
2573 |
msgstr ""
|
2574 |
|
2575 |
-
#: ../
|
2576 |
-
msgid "
|
2577 |
msgstr ""
|
2578 |
|
2579 |
-
#: ../
|
2580 |
-
msgid "
|
2581 |
msgstr ""
|
2582 |
|
2583 |
-
#: ../
|
2584 |
-
msgid "
|
2585 |
msgstr ""
|
2586 |
|
2587 |
-
#: ../
|
2588 |
-
msgid "
|
2589 |
msgstr ""
|
2590 |
|
2591 |
-
#: ../
|
2592 |
-
msgid "
|
2593 |
msgstr ""
|
2594 |
|
2595 |
-
#: ../
|
2596 |
-
|
2597 |
-
msgid "if empty, the website administrator email %s will be used"
|
2598 |
msgstr ""
|
2599 |
|
2600 |
-
#: ../
|
2601 |
-
msgid "
|
2602 |
msgstr ""
|
2603 |
|
2604 |
-
#: ../
|
2605 |
-
msgid "
|
2606 |
msgstr ""
|
2607 |
|
2608 |
-
#: ../
|
2609 |
-
msgid "
|
2610 |
msgstr ""
|
2611 |
|
2612 |
-
#: ../
|
2613 |
-
msgid "
|
2614 |
msgstr ""
|
2615 |
|
2616 |
-
#: ../
|
2617 |
-
msgid "
|
2618 |
msgstr ""
|
2619 |
|
2620 |
-
#: ../
|
2621 |
-
msgid "
|
2622 |
msgstr ""
|
2623 |
|
2624 |
-
#: ../
|
2625 |
-
msgid "
|
2626 |
msgstr ""
|
2627 |
|
2628 |
-
#: ../
|
2629 |
-
msgid "
|
2630 |
msgstr ""
|
2631 |
|
2632 |
-
#: ../
|
2633 |
-
msgid ""
|
2634 |
-
"Weekly report is a summary of all activities and suspicious events occurred "
|
2635 |
-
"during the last seven days"
|
2636 |
msgstr ""
|
2637 |
|
2638 |
-
#: ../
|
2639 |
-
msgid "
|
2640 |
msgstr ""
|
2641 |
|
2642 |
-
#: ../
|
2643 |
-
msgid "
|
2644 |
msgstr ""
|
2645 |
|
2646 |
-
#: ../
|
2647 |
-
msgid "
|
2648 |
msgstr ""
|
2649 |
|
2650 |
-
#: ../
|
2651 |
-
msgid "
|
2652 |
msgstr ""
|
2653 |
|
2654 |
-
#: ../
|
2655 |
-
msgid ""
|
2656 |
-
"Traffic Inspector is a context-aware web application firewall (WAF) that "
|
2657 |
-
"protects your website by recognizing and denying malicious HTTP requests"
|
2658 |
msgstr ""
|
2659 |
|
2660 |
-
#: ../
|
2661 |
-
msgid "
|
2662 |
msgstr ""
|
2663 |
|
2664 |
-
#: ../
|
2665 |
-
msgid "
|
2666 |
msgstr ""
|
2667 |
|
2668 |
-
#: ../
|
2669 |
-
msgid "
|
2670 |
msgstr ""
|
2671 |
|
2672 |
-
#: ../
|
2673 |
-
msgid "
|
2674 |
msgstr ""
|
2675 |
|
2676 |
-
#: ../
|
2677 |
-
msgid ""
|
2678 |
-
"Enter a request URI to exclude the request from inspection. One item per "
|
2679 |
-
"line."
|
2680 |
msgstr ""
|
2681 |
|
2682 |
-
#: ../
|
2683 |
-
msgid "
|
2684 |
msgstr ""
|
2685 |
|
2686 |
-
#: ../
|
2687 |
-
msgid "
|
2688 |
msgstr ""
|
2689 |
|
2690 |
-
#: ../
|
2691 |
-
msgid ""
|
2692 |
-
"Block IP addresses that send excessive requests for non-existing pages or "
|
2693 |
-
"scan website for security breaches"
|
2694 |
msgstr ""
|
2695 |
|
2696 |
-
#: ../
|
2697 |
-
msgid "
|
2698 |
msgstr ""
|
2699 |
|
2700 |
-
#: ../
|
2701 |
-
msgid "
|
2702 |
msgstr ""
|
2703 |
|
2704 |
-
#: ../
|
2705 |
-
msgid "
|
2706 |
msgstr ""
|
2707 |
|
2708 |
-
#: ../
|
2709 |
-
msgid ""
|
2710 |
-
"Enable optional traffic logging if you need to monitor suspicious and "
|
2711 |
-
"malicious activity or solve security issues"
|
2712 |
msgstr ""
|
2713 |
|
2714 |
-
#: ../
|
2715 |
-
msgid "
|
2716 |
msgstr ""
|
2717 |
|
2718 |
-
#: ../
|
2719 |
-
msgid "
|
2720 |
msgstr ""
|
2721 |
|
2722 |
-
#: ../
|
2723 |
-
msgid "
|
2724 |
msgstr ""
|
2725 |
|
2726 |
-
#: ../
|
2727 |
-
msgid "
|
2728 |
msgstr ""
|
2729 |
|
2730 |
-
#: ../
|
2731 |
-
msgid "
|
2732 |
msgstr ""
|
2733 |
|
2734 |
-
#: ../
|
2735 |
-
msgid "
|
2736 |
msgstr ""
|
2737 |
|
2738 |
-
#: ../
|
2739 |
-
msgid "
|
2740 |
msgstr ""
|
2741 |
|
2742 |
-
#: ../
|
2743 |
-
msgid "
|
2744 |
msgstr ""
|
2745 |
|
2746 |
-
#: ../
|
2747 |
-
msgid "
|
2748 |
msgstr ""
|
2749 |
|
2750 |
-
#: ../
|
2751 |
-
msgid "
|
2752 |
msgstr ""
|
2753 |
|
2754 |
-
|
2755 |
-
|
2756 |
-
|
|
|
|
|
|
|
|
|
2757 |
|
2758 |
-
#: ../
|
2759 |
-
|
|
|
2760 |
msgstr ""
|
2761 |
|
2762 |
-
#: ../
|
2763 |
-
|
|
|
|
|
2764 |
msgstr ""
|
2765 |
|
2766 |
-
#: ../
|
2767 |
-
msgid "
|
2768 |
msgstr ""
|
2769 |
|
2770 |
-
#: ../
|
2771 |
-
|
|
|
2772 |
msgstr ""
|
2773 |
|
2774 |
-
#: ../
|
2775 |
-
msgid "
|
2776 |
msgstr ""
|
2777 |
|
2778 |
-
#: ../
|
2779 |
-
msgid "
|
2780 |
msgstr ""
|
2781 |
|
2782 |
-
#: ../
|
2783 |
-
msgid "
|
2784 |
msgstr ""
|
2785 |
|
2786 |
-
#: ../
|
2787 |
-
msgid "
|
2788 |
msgstr ""
|
2789 |
|
2790 |
-
#: ../
|
2791 |
-
msgid ""
|
2792 |
-
"The scanner monitors file changes, verifies the integrity of WordPress, "
|
2793 |
-
"plugins, and themes, and detects malware"
|
2794 |
msgstr ""
|
2795 |
|
2796 |
-
#: ../settings.php:
|
2797 |
-
msgid "
|
2798 |
msgstr ""
|
2799 |
|
2800 |
-
#: ../settings.php:
|
2801 |
-
msgid ""
|
2802 |
-
"Specify custom PHP code signatures. One item per line. To specify a REGEX "
|
2803 |
-
"pattern, enclose a whole line in two braces."
|
2804 |
msgstr ""
|
2805 |
|
2806 |
-
#: ../settings.php:
|
2807 |
-
msgid "
|
2808 |
msgstr ""
|
2809 |
|
2810 |
-
#: ../settings.php:
|
2811 |
msgid ""
|
2812 |
-
"
|
2813 |
-
"
|
2814 |
msgstr ""
|
2815 |
|
2816 |
-
#: ../settings.php:
|
2817 |
-
msgid "
|
2818 |
msgstr ""
|
2819 |
|
2820 |
-
#: ../settings.php:
|
2821 |
-
msgid "
|
2822 |
msgstr ""
|
2823 |
|
2824 |
-
#: ../settings.php:
|
2825 |
-
msgid "
|
2826 |
msgstr ""
|
2827 |
|
2828 |
-
#: ../settings.php:
|
2829 |
-
msgid "
|
2830 |
msgstr ""
|
2831 |
|
2832 |
-
#: ../settings.php:
|
2833 |
-
msgid "
|
2834 |
msgstr ""
|
2835 |
|
2836 |
-
#: ../settings.php:
|
2837 |
-
msgid "
|
2838 |
msgstr ""
|
2839 |
|
2840 |
-
#: ../settings.php:
|
2841 |
-
msgid "
|
2842 |
msgstr ""
|
2843 |
|
2844 |
-
#: ../settings.php:
|
2845 |
-
msgid "
|
2846 |
msgstr ""
|
2847 |
|
2848 |
-
#: ../settings.php:
|
2849 |
-
msgid "
|
2850 |
msgstr ""
|
2851 |
|
2852 |
-
#: ../settings.php:
|
2853 |
-
msgid "
|
2854 |
msgstr ""
|
2855 |
|
2856 |
-
#: ../settings.php:
|
2857 |
-
msgid "
|
2858 |
msgstr ""
|
2859 |
|
2860 |
-
#: ../settings.php:
|
2861 |
-
msgid "
|
2862 |
msgstr ""
|
2863 |
|
2864 |
-
#: ../settings.php:
|
2865 |
-
msgid ""
|
2866 |
-
"The scanner automatically scans the website, removes malware and sends email "
|
2867 |
-
"reports with the results of a scan"
|
2868 |
msgstr ""
|
2869 |
|
2870 |
-
#: ../settings.php:
|
2871 |
-
msgid "
|
2872 |
msgstr ""
|
2873 |
|
2874 |
-
#: ../settings.php:
|
2875 |
-
msgid "
|
2876 |
msgstr ""
|
2877 |
|
2878 |
-
#: ../settings.php:
|
2879 |
-
msgid "
|
2880 |
msgstr ""
|
2881 |
|
2882 |
-
#: ../settings.php:
|
2883 |
-
msgid ""
|
2884 |
-
"Configure what issues to include in the email report and the condition for "
|
2885 |
-
"sending reports"
|
2886 |
msgstr ""
|
2887 |
|
2888 |
-
#: ../settings.php:
|
2889 |
-
msgid "
|
2890 |
msgstr ""
|
2891 |
|
2892 |
-
#: ../settings.php:
|
2893 |
-
msgid "
|
2894 |
msgstr ""
|
2895 |
|
2896 |
-
#: ../settings.php:
|
2897 |
-
msgid "
|
2898 |
msgstr ""
|
2899 |
|
2900 |
-
#: ../settings.php:
|
2901 |
-
msgid "
|
2902 |
msgstr ""
|
2903 |
|
2904 |
-
#: ../settings.php:
|
2905 |
-
msgid "
|
|
|
|
|
2906 |
msgstr ""
|
2907 |
|
2908 |
-
#: ../settings.php:
|
2909 |
-
msgid "
|
2910 |
msgstr ""
|
2911 |
|
2912 |
-
#: ../settings.php:
|
2913 |
-
msgid "
|
2914 |
msgstr ""
|
2915 |
|
2916 |
-
#: ../settings.php:
|
2917 |
-
msgid "
|
2918 |
msgstr ""
|
2919 |
|
2920 |
-
#: ../settings.php:
|
2921 |
-
msgid "
|
2922 |
msgstr ""
|
2923 |
|
2924 |
-
#: ../settings.php:
|
2925 |
-
msgid "
|
2926 |
msgstr ""
|
2927 |
|
2928 |
-
#: ../settings.php:
|
2929 |
-
msgid "
|
2930 |
msgstr ""
|
2931 |
|
2932 |
-
#: ../settings.php:
|
2933 |
-
msgid ""
|
2934 |
-
"These policies are automatically enforced at the end of every scheduled scan "
|
2935 |
-
"based on its results. All affected files are moved to the quarantine"
|
2936 |
msgstr ""
|
2937 |
|
2938 |
-
#: ../settings.php:
|
2939 |
-
msgid "
|
2940 |
msgstr ""
|
2941 |
|
2942 |
-
#: ../settings.php:
|
2943 |
-
msgid "
|
|
|
|
|
2944 |
msgstr ""
|
2945 |
|
2946 |
-
#: ../settings.php:
|
2947 |
-
msgid "
|
2948 |
msgstr ""
|
2949 |
|
2950 |
-
#: ../settings.php:
|
2951 |
-
msgid "
|
2952 |
msgstr ""
|
2953 |
|
2954 |
-
#: ../settings.php:
|
2955 |
-
msgid "
|
2956 |
msgstr ""
|
2957 |
|
2958 |
-
#: ../settings.php:
|
2959 |
-
msgid "
|
2960 |
msgstr ""
|
2961 |
|
2962 |
-
#: ../settings.php:
|
2963 |
-
msgid "
|
2964 |
msgstr ""
|
2965 |
|
2966 |
-
#: ../settings.php:
|
2967 |
-
msgid "
|
2968 |
msgstr ""
|
2969 |
|
2970 |
-
#: ../settings.php:
|
2971 |
-
msgid "
|
|
|
|
|
2972 |
msgstr ""
|
2973 |
|
2974 |
-
#: ../settings.php:
|
2975 |
-
msgid "
|
2976 |
msgstr ""
|
2977 |
|
2978 |
-
#: ../settings.php:
|
2979 |
-
msgid "
|
2980 |
msgstr ""
|
2981 |
|
2982 |
-
#: ../settings.php:
|
2983 |
-
msgid "
|
2984 |
msgstr ""
|
2985 |
|
2986 |
-
#: ../settings.php:
|
2987 |
-
msgid "
|
2988 |
msgstr ""
|
2989 |
|
2990 |
-
#: ../settings.php:
|
2991 |
-
|
|
|
2992 |
msgstr ""
|
2993 |
|
2994 |
-
#: ../settings.php:
|
2995 |
-
msgid "
|
2996 |
msgstr ""
|
2997 |
|
2998 |
-
#: ../settings.php:
|
2999 |
-
msgid "
|
3000 |
msgstr ""
|
3001 |
|
3002 |
-
#: ../settings.php:
|
3003 |
-
msgid "
|
3004 |
msgstr ""
|
3005 |
|
3006 |
-
#: ../settings.php:
|
3007 |
-
msgid "
|
3008 |
msgstr ""
|
3009 |
|
3010 |
-
#: ../settings.php:
|
3011 |
-
msgid "
|
3012 |
msgstr ""
|
3013 |
|
3014 |
-
#: ../settings.php:
|
3015 |
-
msgid "
|
3016 |
msgstr ""
|
3017 |
|
3018 |
-
#: ../settings.php:
|
3019 |
-
msgid "
|
3020 |
msgstr ""
|
3021 |
|
3022 |
-
#: ../settings.php:
|
3023 |
-
msgid "
|
3024 |
msgstr ""
|
3025 |
|
3026 |
-
#: ../settings.php:
|
3027 |
-
msgid "
|
3028 |
msgstr ""
|
3029 |
|
3030 |
-
#: ../settings.php:
|
3031 |
-
msgid ""
|
3032 |
-
"These settings enable you to fine-tune the behavior of anti-spam algorithms "
|
3033 |
-
"and avoid false positives"
|
3034 |
msgstr ""
|
3035 |
|
3036 |
-
#: ../settings.php:
|
3037 |
-
|
|
|
3038 |
msgstr ""
|
3039 |
|
3040 |
-
#: ../settings.php:
|
3041 |
-
msgid "
|
3042 |
msgstr ""
|
3043 |
|
3044 |
-
#: ../settings.php:
|
3045 |
-
msgid "
|
3046 |
msgstr ""
|
3047 |
|
3048 |
-
#: ../settings.php:
|
3049 |
-
msgid "
|
3050 |
msgstr ""
|
3051 |
|
3052 |
-
#: ../settings.php:
|
3053 |
-
msgid ""
|
3054 |
-
"Enter a part of query string or query path to exclude a request from "
|
3055 |
-
"inspection by the engine. One item per line."
|
3056 |
msgstr ""
|
3057 |
|
3058 |
-
#: ../settings.php:
|
3059 |
-
msgid "
|
3060 |
msgstr ""
|
3061 |
|
3062 |
-
#: ../settings.php:
|
3063 |
-
msgid "
|
3064 |
msgstr ""
|
3065 |
|
3066 |
-
#: ../settings.php:
|
3067 |
-
msgid "
|
3068 |
msgstr ""
|
3069 |
|
3070 |
-
#: ../settings.php:
|
3071 |
-
msgid "
|
3072 |
msgstr ""
|
3073 |
|
3074 |
-
#: ../settings.php:
|
3075 |
-
msgid "
|
3076 |
msgstr ""
|
3077 |
|
3078 |
-
#: ../settings.php:
|
3079 |
-
msgid "
|
3080 |
msgstr ""
|
3081 |
|
3082 |
-
#: ../settings.php:
|
3083 |
-
msgid "
|
3084 |
msgstr ""
|
3085 |
|
3086 |
-
#: ../settings.php:
|
3087 |
-
msgid "
|
3088 |
msgstr ""
|
3089 |
|
3090 |
-
#: ../settings.php:
|
3091 |
-
msgid ""
|
3092 |
-
"Before you can start using reCAPTCHA, you have to obtain Site key and Secret "
|
3093 |
-
"key on the Google website"
|
3094 |
msgstr ""
|
3095 |
|
3096 |
-
#: ../settings.php:
|
3097 |
-
msgid "
|
3098 |
msgstr ""
|
3099 |
|
3100 |
-
#: ../settings.php:
|
3101 |
-
msgid "
|
3102 |
msgstr ""
|
3103 |
|
3104 |
-
#: ../settings.php:
|
3105 |
-
msgid "
|
3106 |
msgstr ""
|
3107 |
|
3108 |
-
#: ../settings.php:
|
3109 |
-
msgid "
|
3110 |
msgstr ""
|
3111 |
|
3112 |
-
#: ../settings.php:
|
3113 |
-
msgid ""
|
3114 |
-
"(do not enable it unless you get and enter the Site and Secret keys for the "
|
3115 |
-
"invisible version)"
|
3116 |
msgstr ""
|
3117 |
|
3118 |
-
#: ../settings.php:
|
3119 |
-
msgid "
|
3120 |
msgstr ""
|
3121 |
|
3122 |
-
#: ../settings.php:
|
3123 |
-
msgid "
|
|
|
|
|
3124 |
msgstr ""
|
3125 |
|
3126 |
-
#: ../settings.php:
|
3127 |
-
msgid "
|
3128 |
msgstr ""
|
3129 |
|
3130 |
-
#: ../settings.php:
|
3131 |
-
msgid "
|
3132 |
msgstr ""
|
3133 |
|
3134 |
-
#: ../settings.php:
|
3135 |
-
msgid "
|
3136 |
msgstr ""
|
3137 |
|
3138 |
-
#: ../settings.php:
|
3139 |
-
msgid "
|
3140 |
msgstr ""
|
3141 |
|
3142 |
-
#: ../settings.php:
|
3143 |
-
msgid "
|
3144 |
msgstr ""
|
3145 |
|
3146 |
-
#: ../settings.php:
|
3147 |
-
msgid "
|
3148 |
msgstr ""
|
3149 |
|
3150 |
-
#: ../settings.php:
|
3151 |
-
msgid "
|
|
|
|
|
3152 |
msgstr ""
|
3153 |
|
3154 |
-
#: ../settings.php:
|
3155 |
-
msgid "
|
3156 |
msgstr ""
|
3157 |
|
3158 |
-
#: ../settings.php:
|
3159 |
-
msgid "
|
|
|
|
|
3160 |
msgstr ""
|
3161 |
|
3162 |
-
#: ../settings.php:
|
3163 |
-
|
3164 |
-
msgid "Lock out IP address for %s minutes after %s failed attempts within %s minutes"
|
3165 |
msgstr ""
|
3166 |
|
3167 |
-
#: ../settings.php:
|
3168 |
-
msgid "
|
3169 |
msgstr ""
|
3170 |
|
3171 |
-
#: ../settings.php:
|
3172 |
-
msgid "
|
3173 |
msgstr ""
|
3174 |
|
3175 |
-
#: ../settings.php:
|
3176 |
-
msgid "
|
3177 |
msgstr ""
|
3178 |
|
3179 |
-
#: ../settings.php:
|
3180 |
-
msgid "
|
3181 |
msgstr ""
|
3182 |
|
3183 |
-
#: ../settings.php:
|
3184 |
-
msgid "
|
3185 |
msgstr ""
|
3186 |
|
3187 |
-
#: ../settings.php:
|
3188 |
-
msgid "
|
3189 |
msgstr ""
|
3190 |
|
3191 |
-
#: ../settings.php:
|
3192 |
-
msgid "
|
3193 |
msgstr ""
|
3194 |
|
3195 |
-
#: ../settings.php:
|
3196 |
-
msgid "
|
3197 |
msgstr ""
|
3198 |
|
3199 |
-
#: ../settings.php:
|
3200 |
-
msgid "
|
3201 |
msgstr ""
|
3202 |
|
3203 |
-
#: ../settings.php:
|
3204 |
-
msgid "
|
3205 |
msgstr ""
|
3206 |
|
3207 |
-
#: ../settings.php:
|
3208 |
-
msgid "
|
3209 |
msgstr ""
|
3210 |
|
3211 |
-
#: ../
|
3212 |
-
msgid "
|
3213 |
msgstr ""
|
3214 |
|
3215 |
-
#: ../
|
3216 |
-
msgid "
|
3217 |
msgstr ""
|
3218 |
|
3219 |
-
#: ../
|
3220 |
-
msgid "
|
3221 |
msgstr ""
|
3222 |
|
3223 |
-
#: ../
|
3224 |
-
msgid "
|
3225 |
msgstr ""
|
3226 |
|
3227 |
-
#: ../
|
3228 |
-
msgid "
|
3229 |
msgstr ""
|
3230 |
|
3231 |
-
#: ../
|
3232 |
-
msgid "
|
|
|
|
|
3233 |
msgstr ""
|
3234 |
|
3235 |
-
#: ../
|
3236 |
-
msgid "
|
3237 |
msgstr ""
|
3238 |
|
3239 |
-
#: ../
|
3240 |
-
msgid ""
|
3241 |
-
"This verification PIN code is expired. We have just sent a new one to your "
|
3242 |
-
"email."
|
3243 |
msgstr ""
|
3244 |
|
3245 |
-
#: ../
|
3246 |
-
msgid "
|
3247 |
msgstr ""
|
3248 |
|
3249 |
-
#: ../
|
3250 |
-
msgid "
|
3251 |
msgstr ""
|
3252 |
|
3253 |
-
#: ../
|
3254 |
-
msgid "
|
3255 |
msgstr ""
|
3256 |
|
3257 |
-
#: ../
|
3258 |
-
|
3259 |
-
msgid "The code is valid for %s minutes."
|
3260 |
msgstr ""
|
3261 |
|
3262 |
-
#: ../
|
3263 |
-
msgid "
|
|
|
|
|
3264 |
msgstr ""
|
3265 |
|
3266 |
-
#: ../
|
3267 |
-
msgid "
|
3268 |
msgstr ""
|
3269 |
|
3270 |
-
#: ../
|
3271 |
-
msgid "
|
3272 |
msgstr ""
|
3273 |
|
3274 |
-
#: ../
|
3275 |
-
msgid "
|
|
|
|
|
|
|
3276 |
msgstr ""
|
3277 |
|
3278 |
-
#: ../
|
3279 |
-
msgid "
|
3280 |
msgstr ""
|
3281 |
|
3282 |
-
#: ../
|
3283 |
-
msgid "
|
3284 |
msgstr ""
|
3285 |
|
3286 |
-
#: ../
|
3287 |
-
msgid "
|
3288 |
msgstr ""
|
3289 |
|
3290 |
-
#: ../
|
3291 |
-
msgid "
|
3292 |
msgstr ""
|
3293 |
|
3294 |
-
#: ../
|
3295 |
-
msgid "
|
|
|
|
|
3296 |
msgstr ""
|
3297 |
|
3298 |
-
#: ../
|
3299 |
-
msgid "
|
3300 |
msgstr ""
|
3301 |
|
3302 |
-
#: ../
|
3303 |
-
msgid "
|
3304 |
msgstr ""
|
3305 |
|
3306 |
-
#: ../
|
3307 |
-
msgid "
|
3308 |
msgstr ""
|
3309 |
|
3310 |
-
#: ../
|
3311 |
-
msgid ""
|
3312 |
-
"When you click the button below you will get a configuration file, which you "
|
3313 |
-
"can upload on another site."
|
3314 |
msgstr ""
|
3315 |
|
3316 |
-
#: ../
|
3317 |
-
msgid "
|
3318 |
msgstr ""
|
3319 |
|
3320 |
-
#: ../
|
3321 |
-
msgid "
|
3322 |
msgstr ""
|
3323 |
|
3324 |
-
#: ../
|
3325 |
-
msgid "
|
3326 |
msgstr ""
|
3327 |
|
3328 |
-
#: ../
|
3329 |
-
msgid ""
|
3330 |
-
"When you click the button below, file will be uploaded and all existing "
|
3331 |
-
"settings will be overridden."
|
3332 |
msgstr ""
|
3333 |
|
3334 |
-
#: ../
|
3335 |
-
msgid "
|
3336 |
msgstr ""
|
3337 |
|
3338 |
-
#: ../
|
3339 |
-
msgid "
|
3340 |
msgstr ""
|
3341 |
|
3342 |
-
#: ../
|
3343 |
-
msgid "
|
3344 |
msgstr ""
|
3345 |
|
3346 |
-
#: ../
|
3347 |
-
msgid ""
|
3348 |
-
"When you click the button below, the default WP Cerber settings will be "
|
3349 |
-
"loaded. The Custom login URL and Access Lists will not be changed."
|
3350 |
msgstr ""
|
3351 |
|
3352 |
-
#: ../
|
3353 |
-
msgid "
|
3354 |
msgstr ""
|
3355 |
|
3356 |
-
#: ../
|
3357 |
-
|
|
|
3358 |
msgstr ""
|
3359 |
|
3360 |
-
#: ../
|
3361 |
-
msgid "
|
3362 |
msgstr ""
|
3363 |
|
3364 |
-
#: ../
|
3365 |
-
msgid "
|
3366 |
msgstr ""
|
3367 |
|
3368 |
-
#: ../
|
3369 |
-
msgid "
|
3370 |
msgstr ""
|
3371 |
|
3372 |
-
#: ../
|
3373 |
-
msgid "
|
3374 |
msgstr ""
|
3375 |
|
3376 |
-
#: ../
|
3377 |
-
msgid "
|
3378 |
msgstr ""
|
3379 |
|
3380 |
-
#: ../
|
3381 |
-
msgid "
|
3382 |
msgstr ""
|
3383 |
|
3384 |
-
#: ../
|
3385 |
-
msgid "
|
3386 |
msgstr ""
|
3387 |
|
3388 |
-
#: ../
|
3389 |
-
msgid "
|
3390 |
msgstr ""
|
3391 |
|
3392 |
-
#: ../
|
3393 |
-
msgid "
|
|
|
|
|
3394 |
msgstr ""
|
3395 |
|
3396 |
-
#: ../
|
3397 |
-
msgid "
|
3398 |
msgstr ""
|
3399 |
|
3400 |
-
#: ../
|
3401 |
-
msgid "
|
3402 |
msgstr ""
|
3403 |
|
3404 |
-
#: ../
|
3405 |
-
msgid "
|
3406 |
msgstr ""
|
3407 |
|
3408 |
-
#: ../
|
3409 |
-
msgid "
|
3410 |
msgstr ""
|
3411 |
|
3412 |
-
#: ../
|
3413 |
-
msgid "
|
|
|
|
|
3414 |
msgstr ""
|
3415 |
|
3416 |
-
#: ../
|
3417 |
-
msgid "
|
3418 |
msgstr ""
|
3419 |
|
3420 |
-
#: ../
|
3421 |
-
msgid "
|
3422 |
msgstr ""
|
3423 |
|
3424 |
-
#: ../
|
3425 |
-
msgid "
|
3426 |
msgstr ""
|
3427 |
|
3428 |
-
#: ../
|
3429 |
-
msgid "
|
3430 |
msgstr ""
|
3431 |
|
3432 |
-
#: ../
|
3433 |
-
msgid "
|
|
|
|
|
3434 |
msgstr ""
|
3435 |
|
3436 |
-
#: ../
|
3437 |
-
msgid "
|
3438 |
msgstr ""
|
3439 |
|
3440 |
-
#: ../
|
3441 |
-
msgid "
|
3442 |
msgstr ""
|
3443 |
|
3444 |
-
#: ../
|
3445 |
-
msgid "
|
|
|
|
|
3446 |
msgstr ""
|
3447 |
|
3448 |
-
#: ../
|
3449 |
-
msgid "
|
3450 |
msgstr ""
|
3451 |
|
3452 |
-
#: ../
|
3453 |
-
msgid "
|
3454 |
msgstr ""
|
3455 |
|
3456 |
-
#: ../
|
3457 |
-
msgid "
|
3458 |
msgstr ""
|
3459 |
|
3460 |
-
#: ../
|
3461 |
-
msgid "
|
|
|
|
|
3462 |
msgstr ""
|
3463 |
|
3464 |
-
#: ../
|
3465 |
-
msgid "
|
3466 |
msgstr ""
|
3467 |
|
3468 |
-
#: ../
|
3469 |
-
msgid "
|
3470 |
msgstr ""
|
3471 |
|
3472 |
-
#: ../
|
3473 |
-
msgid "
|
3474 |
msgstr ""
|
3475 |
|
3476 |
-
#: ../
|
3477 |
-
msgid "
|
3478 |
msgstr ""
|
3479 |
|
3480 |
-
#: ../
|
3481 |
-
msgid "
|
3482 |
msgstr ""
|
3483 |
|
3484 |
-
#: ../
|
3485 |
-
msgid "
|
3486 |
msgstr ""
|
3487 |
|
3488 |
-
#: ../
|
3489 |
-
msgid "
|
3490 |
msgstr ""
|
3491 |
|
3492 |
-
#: ../
|
3493 |
-
msgid "
|
3494 |
msgstr ""
|
3495 |
|
3496 |
-
#: ../
|
3497 |
-
msgid "
|
3498 |
msgstr ""
|
3499 |
|
3500 |
-
#: ../
|
3501 |
-
msgid "
|
3502 |
msgstr ""
|
3503 |
|
3504 |
-
#: ../
|
3505 |
-
msgid "
|
3506 |
msgstr ""
|
3507 |
|
3508 |
-
#: ../
|
3509 |
-
msgid "
|
3510 |
msgstr ""
|
3511 |
|
3512 |
-
#: ../
|
3513 |
-
msgid "
|
3514 |
msgstr ""
|
3515 |
|
3516 |
-
#: ../
|
3517 |
-
msgid "
|
3518 |
msgstr ""
|
3519 |
|
3520 |
-
#: ../
|
3521 |
-
msgid "
|
3522 |
msgstr ""
|
3523 |
|
3524 |
-
#: ../
|
3525 |
-
msgid "
|
3526 |
msgstr ""
|
3527 |
|
3528 |
-
#: ../
|
3529 |
-
msgid "
|
3530 |
msgstr ""
|
3531 |
|
3532 |
-
#: ../
|
3533 |
-
msgid "
|
3534 |
msgstr ""
|
3535 |
|
3536 |
-
#: ../
|
|
|
|
|
|
|
|
|
3537 |
msgid ""
|
3538 |
-
"
|
3539 |
-
"
|
3540 |
msgstr ""
|
3541 |
|
3542 |
-
#: ../
|
3543 |
-
|
3544 |
-
|
3545 |
-
msgid_plural "%s websites have been deleted"
|
3546 |
-
msgstr[0] ""
|
3547 |
-
msgstr[1] ""
|
3548 |
|
3549 |
-
#: ../
|
3550 |
-
msgid "
|
|
|
|
|
3551 |
msgstr ""
|
3552 |
|
3553 |
-
#: ../
|
3554 |
-
|
3555 |
-
msgid "You have switched to %s"
|
3556 |
msgstr ""
|
3557 |
|
3558 |
-
#: ../
|
3559 |
-
msgid "
|
|
|
|
|
3560 |
msgstr ""
|
3561 |
|
3562 |
-
#: ../
|
3563 |
-
msgid "
|
3564 |
msgstr ""
|
3565 |
|
3566 |
-
#: ../
|
3567 |
-
|
3568 |
-
msgid "My Websites"
|
3569 |
msgstr ""
|
3570 |
|
3571 |
-
#: ../
|
3572 |
-
msgid "
|
3573 |
msgstr ""
|
3574 |
|
3575 |
-
#: ../
|
3576 |
-
msgid "
|
3577 |
msgstr ""
|
3578 |
|
3579 |
-
#: ../
|
3580 |
-
msgid "
|
3581 |
msgstr ""
|
3582 |
|
3583 |
-
#: ../
|
3584 |
-
msgid "
|
3585 |
msgstr ""
|
3586 |
|
3587 |
-
#: ../
|
3588 |
-
msgid "
|
3589 |
msgstr ""
|
3590 |
|
3591 |
-
#: ../
|
3592 |
-
msgid "
|
3593 |
msgstr ""
|
3594 |
|
3595 |
-
#: ../
|
3596 |
-
msgid "
|
3597 |
msgstr ""
|
3598 |
|
3599 |
-
#: ../
|
3600 |
-
msgid "
|
3601 |
msgstr ""
|
3602 |
|
3603 |
-
#: ../
|
3604 |
-
msgid "
|
3605 |
msgstr ""
|
3606 |
|
3607 |
-
#: ../
|
3608 |
-
msgid "
|
3609 |
msgstr ""
|
3610 |
|
3611 |
-
#: ../
|
3612 |
-
msgid "
|
|
|
|
|
3613 |
msgstr ""
|
3614 |
|
3615 |
-
#: ../
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3616 |
msgid ""
|
3617 |
-
"
|
3618 |
-
"
|
3619 |
msgstr ""
|
3620 |
|
3621 |
-
#: ../
|
3622 |
-
msgid "
|
3623 |
msgstr ""
|
3624 |
|
3625 |
-
#: ../
|
3626 |
-
msgid "
|
3627 |
msgstr ""
|
3628 |
|
3629 |
-
#: ../
|
3630 |
-
msgid "
|
3631 |
msgstr ""
|
3632 |
|
3633 |
-
#: ../
|
3634 |
-
msgid "
|
3635 |
msgstr ""
|
3636 |
|
3637 |
-
#: ../
|
3638 |
-
msgid "
|
3639 |
msgstr ""
|
3640 |
|
3641 |
-
#: ../
|
3642 |
-
msgid "
|
3643 |
msgstr ""
|
3644 |
|
3645 |
-
#: ../
|
3646 |
-
msgid "
|
3647 |
msgstr ""
|
3648 |
|
3649 |
-
#: ../
|
3650 |
-
msgid "
|
3651 |
msgstr ""
|
3652 |
|
3653 |
-
#: ../
|
3654 |
-
msgid "
|
3655 |
msgstr ""
|
3656 |
|
3657 |
-
#: ../
|
3658 |
-
msgid "
|
3659 |
msgstr ""
|
3660 |
|
3661 |
-
#: ../
|
3662 |
-
msgid "
|
3663 |
msgstr ""
|
3664 |
|
3665 |
-
#: ../
|
3666 |
-
msgid "
|
|
|
|
|
3667 |
msgstr ""
|
3668 |
|
3669 |
-
#: ../
|
3670 |
-
msgid "
|
3671 |
msgstr ""
|
3672 |
|
3673 |
-
#: ../
|
3674 |
-
msgid "
|
3675 |
msgstr ""
|
3676 |
|
3677 |
-
#: ../
|
3678 |
-
msgid "
|
3679 |
msgstr ""
|
3680 |
|
3681 |
-
#: ../
|
3682 |
-
msgid "
|
3683 |
msgstr ""
|
3684 |
|
3685 |
-
#: ../
|
3686 |
-
msgid "
|
3687 |
msgstr ""
|
3688 |
|
3689 |
-
#: ../
|
3690 |
-
msgid "
|
3691 |
msgstr ""
|
3692 |
|
3693 |
-
#: ../
|
3694 |
-
msgid "
|
3695 |
msgstr ""
|
3696 |
|
3697 |
-
#: ../
|
3698 |
-
msgid "
|
3699 |
msgstr ""
|
3700 |
|
3701 |
-
#: ../
|
3702 |
-
msgid "
|
3703 |
msgstr ""
|
3704 |
|
3705 |
-
#: ../
|
3706 |
-
msgid "
|
3707 |
msgstr ""
|
3708 |
|
3709 |
-
#: ../
|
3710 |
-
msgid "
|
3711 |
msgstr ""
|
3712 |
|
3713 |
-
#: ../
|
3714 |
-
msgid "
|
3715 |
msgstr ""
|
3716 |
|
3717 |
-
#: ../
|
3718 |
-
msgid "
|
3719 |
msgstr ""
|
3720 |
|
3721 |
-
#: ../
|
3722 |
-
msgid "
|
3723 |
msgstr ""
|
3724 |
|
3725 |
-
#: ../
|
3726 |
-
msgid "
|
3727 |
msgstr ""
|
3728 |
|
3729 |
-
#: ../
|
3730 |
-
msgid "
|
3731 |
msgstr ""
|
3732 |
|
3733 |
-
#: ../
|
3734 |
-
msgid "
|
3735 |
msgstr ""
|
3736 |
|
3737 |
-
#: ../
|
3738 |
-
msgid "
|
3739 |
msgstr ""
|
3740 |
|
3741 |
-
#: ../
|
3742 |
-
msgid "
|
3743 |
msgstr ""
|
3744 |
|
3745 |
-
#: ../
|
3746 |
-
msgid "
|
3747 |
msgstr ""
|
3748 |
|
3749 |
-
#: ../
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3750 |
msgid ""
|
3751 |
-
"
|
3752 |
-
"
|
3753 |
-
"or the plugin folder. No exception, no excuses."
|
3754 |
msgstr ""
|
3755 |
|
3756 |
-
#: ../
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3757 |
msgid ""
|
3758 |
-
"
|
3759 |
-
"
|
3760 |
msgstr ""
|
3761 |
|
3762 |
-
#: ../
|
3763 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3764 |
msgid ""
|
3765 |
-
"
|
3766 |
-
"
|
3767 |
-
"made (bespoke) plugin or theme."
|
3768 |
msgstr ""
|
3769 |
|
3770 |
-
#: ../
|
3771 |
-
msgid "
|
3772 |
msgstr ""
|
3773 |
|
3774 |
-
#: ../
|
3775 |
-
msgid "
|
3776 |
msgstr ""
|
3777 |
|
3778 |
-
#: ../
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3779 |
msgid ""
|
3780 |
-
"
|
3781 |
-
"
|
3782 |
-
"earlier. The file may have been altered by malware, infected by a virus or "
|
3783 |
-
"has been tampered with."
|
3784 |
msgstr ""
|
3785 |
|
3786 |
-
#: ../
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3787 |
#, php-format
|
3788 |
-
msgid ""
|
3789 |
-
"To solve this issue you have to reinstall %s or update it to the latest "
|
3790 |
-
"version."
|
3791 |
msgstr ""
|
3792 |
|
3793 |
-
#: ../
|
3794 |
-
msgid "
|
3795 |
msgstr ""
|
3796 |
|
3797 |
-
#: ../
|
3798 |
-
msgid "
|
3799 |
msgstr ""
|
3800 |
|
3801 |
-
#: ../
|
3802 |
-
msgid "
|
3803 |
msgstr ""
|
3804 |
|
3805 |
-
#: ../
|
3806 |
-
msgid "
|
3807 |
msgstr ""
|
3808 |
|
3809 |
-
#: ../
|
3810 |
-
msgid "
|
3811 |
msgstr ""
|
3812 |
|
3813 |
-
#: ../
|
3814 |
-
msgid "
|
3815 |
msgstr ""
|
3816 |
|
3817 |
-
#: ../
|
3818 |
-
msgid "
|
3819 |
msgstr ""
|
3820 |
|
3821 |
-
#: ../
|
3822 |
-
msgid "
|
3823 |
msgstr ""
|
3824 |
|
3825 |
-
#: ../
|
3826 |
-
msgid "
|
3827 |
msgstr ""
|
3828 |
|
3829 |
-
#: ../
|
3830 |
-
msgid "
|
3831 |
msgstr ""
|
3832 |
|
3833 |
-
#: ../
|
3834 |
-
msgid "
|
3835 |
msgstr ""
|
3836 |
|
3837 |
-
#: ../cerber-
|
3838 |
-
msgid "
|
|
|
|
|
3839 |
msgstr ""
|
3840 |
|
3841 |
-
#: ../cerber-
|
3842 |
-
msgid "
|
3843 |
msgstr ""
|
3844 |
|
3845 |
-
#: ../cerber-
|
3846 |
-
msgid "
|
3847 |
msgstr ""
|
3848 |
|
3849 |
-
#: ../cerber-
|
3850 |
-
msgid "
|
3851 |
msgstr ""
|
3852 |
|
3853 |
-
#: ../cerber-
|
3854 |
-
|
|
|
3855 |
msgstr ""
|
3856 |
|
3857 |
-
#: ../cerber-
|
3858 |
-
msgid "
|
3859 |
msgstr ""
|
3860 |
|
3861 |
-
#: ../cerber-
|
3862 |
-
msgid "
|
3863 |
msgstr ""
|
3864 |
|
3865 |
-
#: ../cerber-
|
3866 |
-
msgid "
|
3867 |
msgstr ""
|
3868 |
|
3869 |
-
#: ../cerber-
|
3870 |
-
msgid "
|
3871 |
msgstr ""
|
3872 |
|
3873 |
-
#: ../cerber-
|
3874 |
-
msgid "
|
3875 |
msgstr ""
|
3876 |
|
3877 |
-
#: ../cerber-
|
3878 |
-
msgid "
|
3879 |
msgstr ""
|
3880 |
|
3881 |
-
#: ../cerber-
|
3882 |
-
msgid "
|
3883 |
msgstr ""
|
3884 |
|
3885 |
-
#: ../cerber-
|
3886 |
-
msgid "
|
3887 |
msgstr ""
|
3888 |
|
3889 |
-
#: ../cerber-
|
3890 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3891 |
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: Wed Aug 12 2020 13:22:49 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 |
+
#. Name of the plugin
|
28 |
+
msgid "WP Cerber Security, Anti-spam & Malware Scan"
|
29 |
msgstr ""
|
30 |
|
31 |
+
#. URI of the plugin
|
32 |
+
msgid "https://wpcerber.com"
|
|
|
33 |
msgstr ""
|
34 |
|
35 |
+
#. Description of the plugin
|
36 |
+
msgid ""
|
37 |
+
"Defends WordPress against hacker attacks, spam, trojans, and viruses. "
|
38 |
+
"Malware scanner and integrity checker. Hardening WordPress with a set of "
|
39 |
+
"comprehensive security algorithms. Spam protection with a sophisticated bot "
|
40 |
+
"detection engine and reCAPTCHA. Tracks user and intruder activity with "
|
41 |
+
"powerful email, mobile and desktop notifications."
|
42 |
msgstr ""
|
43 |
|
44 |
+
#. Author of the plugin
|
45 |
+
msgid "Cerber Tech Inc."
|
46 |
msgstr ""
|
47 |
|
48 |
+
#: ../cerber-ds.php:800
|
49 |
+
msgid "Administration Email Address"
|
50 |
msgstr ""
|
51 |
|
52 |
+
#: ../cerber-ds.php:801
|
53 |
+
msgid "New User Default Role"
|
54 |
msgstr ""
|
55 |
|
56 |
+
#: ../cerber-ds.php:802
|
57 |
+
msgid "Site Address (URL)"
|
58 |
msgstr ""
|
59 |
|
60 |
+
#: ../cerber-ds.php:803
|
61 |
+
msgid "WordPress Address (URL)"
|
62 |
msgstr ""
|
63 |
|
64 |
+
#: ../cerber-ds.php:804
|
65 |
+
msgid "Anyone can register"
|
66 |
msgstr ""
|
67 |
|
68 |
+
#: ../cerber-ds.php:805
|
69 |
+
msgid "Active Plugins"
|
70 |
msgstr ""
|
71 |
|
72 |
+
#: ../cerber-ds.php:806
|
73 |
+
msgid "Active Theme"
|
74 |
msgstr ""
|
75 |
|
76 |
+
#: ../cerber-load.php:336
|
77 |
+
msgid "You are not allowed to log in. Ask your administrator for assistance."
|
78 |
msgstr ""
|
79 |
|
80 |
+
#: ../cerber-load.php:342
|
81 |
+
#, php-format
|
82 |
+
msgid ""
|
83 |
+
"You have exceeded the number of allowed login attempts. Please try again in "
|
84 |
+
"%d minutes."
|
85 |
msgstr ""
|
86 |
|
87 |
+
#: ../cerber-load.php:346
|
88 |
+
msgid "You are not allowed to log in"
|
89 |
msgstr ""
|
90 |
|
91 |
+
#: ../cerber-load.php:361
|
92 |
+
#, php-format
|
93 |
+
msgid "You have only one attempt remaining."
|
94 |
+
msgid_plural "You have %d attempts remaining."
|
95 |
+
msgstr[0] ""
|
96 |
+
msgstr[1] ""
|
97 |
|
98 |
+
#: ../cerber-load.php:635 ../cerber-load.php:647 ../cerber-load.php:654 ../cerber-
|
99 |
+
#: load.php:996 ../cerber-load.php:1535 ../cerber-load.php:1542 ../cerber-load.
|
100 |
+
#: php:1548 ../cerber-load.php:1553 ../cerber-load.php:1560 ../cerber-load.php:
|
101 |
+
#: 1567 ../cerber-load.php:1573 ../cerber-load.php:1580 ../cerber-load.php:1751 ..
|
102 |
+
#: /cerber-load.php:1888 ../nexus/cerber-nexus-slave.php:204 ../nexus/cerber-
|
103 |
+
#: nexus-slave.php:215 ../admin/cerber-admin.php:866 ../admin/cerber-settings.php:
|
104 |
+
#: 653 ../admin/cerber-settings.php:673 ../admin/cerber-settings.php:753 ..
|
105 |
+
#: /common.php:367 ../common.php:445 ../common.php:450 ../common.php:456 ..
|
106 |
+
#: /common.php:460
|
107 |
+
msgid "ERROR:"
|
108 |
msgstr ""
|
109 |
|
110 |
+
#: ../cerber-load.php:664
|
111 |
+
msgid ""
|
112 |
+
"Human verification failed. Please click the square box in the reCAPTCHA "
|
113 |
+
"block below."
|
114 |
msgstr ""
|
115 |
|
116 |
+
#: ../cerber-load.php:794
|
117 |
+
msgid ""
|
118 |
+
"> > > Translator of WP Cerber? To get the PRO license for free, drop your "
|
119 |
+
"contacts here: https://wpcerber.com/contact/"
|
120 |
msgstr ""
|
121 |
|
122 |
+
#: ../cerber-load.php:1105
|
123 |
+
#, php-format
|
124 |
+
msgid ""
|
125 |
+
"<strong>ERROR</strong>: The password you entered for the username %s is "
|
126 |
+
"incorrect."
|
127 |
msgstr ""
|
128 |
|
129 |
+
#: ../cerber-load.php:1535 ../cerber-load.php:1543 ../cerber-load.php:1549 ..
|
130 |
+
#: /cerber-load.php:1574 ../cerber-load.php:1581
|
131 |
+
msgid "You are not allowed to register."
|
132 |
msgstr ""
|
133 |
|
134 |
+
#: ../cerber-load.php:1561
|
135 |
+
msgid "Username is not allowed. Please choose another one."
|
136 |
msgstr ""
|
137 |
|
138 |
+
#: ../cerber-load.php:1568
|
139 |
+
msgid "Email address is not permitted."
|
140 |
msgstr ""
|
141 |
|
142 |
+
#: ../cerber-load.php:1568
|
143 |
+
msgid "Please choose another one."
|
|
|
144 |
msgstr ""
|
145 |
|
146 |
+
#: ../cerber-load.php:1888
|
147 |
+
msgid "Sorry, human verification failed."
|
|
|
148 |
msgstr ""
|
149 |
|
150 |
+
#: ../cerber-load.php:4084
|
151 |
+
msgid "We're sorry, you are not allowed to proceed"
|
152 |
msgstr ""
|
153 |
|
154 |
+
#: ../cerber-load.php:4200
|
155 |
+
msgid "WP Cerber notify"
|
156 |
msgstr ""
|
157 |
|
158 |
+
#: ../cerber-load.php:4224
|
159 |
+
msgid "Citadel mode is activated"
|
160 |
msgstr ""
|
161 |
|
162 |
+
#: ../cerber-load.php:4226
|
163 |
+
#, php-format
|
164 |
+
msgid "Citadel mode is activated after %d failed login attempts in %d minutes."
|
165 |
msgstr ""
|
166 |
|
167 |
+
#: ../cerber-load.php:4227
|
168 |
+
#, php-format
|
169 |
+
msgid "Last failed attempt was at %s from IP %s with user login: %s."
|
170 |
msgstr ""
|
171 |
|
172 |
+
#: ../cerber-load.php:4228 ../cerber-load.php:5044
|
173 |
+
msgid "View activity in dashboard"
|
174 |
msgstr ""
|
175 |
|
176 |
+
#: ../cerber-load.php:4252
|
177 |
+
msgid "unspecified"
|
|
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: ../cerber-load.php:4255
|
181 |
+
msgid "Number of lockouts is increasing"
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: ../cerber-load.php:4257
|
185 |
+
msgid "Number of active lockouts"
|
186 |
msgstr ""
|
187 |
|
188 |
+
#: ../cerber-load.php:4258
|
189 |
+
#, php-format
|
190 |
+
msgid "Last lockout was added: %s for IP %s"
|
191 |
msgstr ""
|
192 |
|
193 |
+
#: ../cerber-load.php:4259 ../dashboard.php:200
|
194 |
+
msgid "Reason"
|
195 |
msgstr ""
|
196 |
|
197 |
+
#: ../cerber-load.php:4260
|
198 |
+
msgid "View activity for this IP"
|
199 |
msgstr ""
|
200 |
|
201 |
+
#: ../cerber-load.php:4261
|
202 |
+
msgid "View lockouts in dashboard"
|
|
|
203 |
msgstr ""
|
204 |
|
205 |
+
#: ../cerber-load.php:4264 ../cerber-load.php:4266
|
206 |
+
msgid "A new version of WP Cerber is available to install"
|
|
|
207 |
msgstr ""
|
208 |
|
209 |
+
#: ../cerber-load.php:4265
|
210 |
+
msgid "Hi!"
|
|
|
|
|
211 |
msgstr ""
|
212 |
|
213 |
+
#: ../cerber-load.php:4268 ../cerber-load.php:4279 ../nexus/cerber-slave-list.php:
|
214 |
+
#: 44
|
215 |
+
msgid "Website"
|
216 |
msgstr ""
|
217 |
|
218 |
+
#: ../cerber-load.php:4271 ../cerber-load.php:4272
|
219 |
+
msgid "The WP Cerber security plugin has been deactivated"
|
|
|
220 |
msgstr ""
|
221 |
|
222 |
+
#: ../cerber-load.php:4274
|
223 |
+
msgid "Not logged in"
|
224 |
msgstr ""
|
225 |
|
226 |
+
#: ../cerber-load.php:4280
|
227 |
+
msgid "By user"
|
228 |
msgstr ""
|
229 |
|
230 |
+
#: ../cerber-load.php:4281
|
231 |
+
msgid "From IP address"
|
232 |
msgstr ""
|
233 |
|
234 |
+
#: ../cerber-load.php:4284
|
235 |
+
msgid "From country"
|
|
|
236 |
msgstr ""
|
237 |
|
238 |
+
#: ../cerber-load.php:4288
|
239 |
+
msgid "The WP Cerber security plugin is now active"
|
240 |
msgstr ""
|
241 |
|
242 |
+
#: ../cerber-load.php:4289 ../cerber-load.php:5322
|
243 |
+
msgid "WP Cerber is now active and has started protecting your site"
|
244 |
msgstr ""
|
245 |
|
246 |
+
#: ../cerber-load.php:4291 ../cerber-load.php:5326
|
247 |
+
msgid "Getting Started Guide"
|
248 |
msgstr ""
|
249 |
|
250 |
+
#: ../cerber-load.php:4300
|
251 |
+
msgid "New Custom login URL"
|
252 |
msgstr ""
|
253 |
|
254 |
+
#: ../cerber-load.php:4304 ../cerber-load.php:4305
|
255 |
+
msgid "A new activity has been recorded"
|
256 |
msgstr ""
|
257 |
|
258 |
+
#: ../cerber-load.php:4310
|
259 |
+
msgid "Weekly report"
|
260 |
msgstr ""
|
261 |
|
262 |
+
#: ../cerber-load.php:4313 ../cerber-load.php:4323
|
263 |
+
msgid "To change reporting settings visit"
|
264 |
msgstr ""
|
265 |
|
266 |
+
#: ../cerber-load.php:4320
|
267 |
+
msgid "Scanner Report"
|
268 |
msgstr ""
|
269 |
|
270 |
+
#: ../cerber-load.php:4349
|
271 |
+
msgid "Your login page:"
|
272 |
msgstr ""
|
273 |
|
274 |
+
#: ../cerber-load.php:4354
|
275 |
+
msgid "Your license is valid until"
|
276 |
msgstr ""
|
277 |
|
278 |
+
#: ../cerber-load.php:4357
|
279 |
+
msgid "This message was sent by"
|
|
|
280 |
msgstr ""
|
281 |
|
282 |
+
#: ../cerber-load.php:4378
|
283 |
+
#, php-format
|
284 |
+
msgid "Your last sign-in was %s from %s"
|
285 |
msgstr ""
|
286 |
|
287 |
+
#: ../cerber-load.php:4448
|
288 |
+
msgid "Weekly Report"
|
289 |
msgstr ""
|
290 |
|
291 |
+
#: ../cerber-load.php:4460
|
292 |
+
msgid "Activity details"
|
293 |
msgstr ""
|
294 |
|
295 |
+
#: ../cerber-load.php:4474
|
296 |
+
msgid "Attempts to log in with non-existing usernames"
|
297 |
msgstr ""
|
298 |
|
299 |
+
#: ../cerber-load.php:5003 ../cerber-users.php:1163 ../dashboard.php:1809 ..
|
300 |
+
#: /dashboard.php:2356 ../dashboard.php:4776 ../settings.php:277
|
301 |
+
msgid "Activity"
|
302 |
msgstr ""
|
303 |
|
304 |
+
#: ../cerber-load.php:5012
|
305 |
+
msgid "IP"
|
306 |
msgstr ""
|
307 |
|
308 |
+
#: ../cerber-load.php:5016 ../cerber-users.php:971
|
309 |
+
msgid "User"
|
310 |
msgstr ""
|
311 |
|
312 |
+
#: ../cerber-load.php:5020
|
313 |
+
msgid "Username used"
|
314 |
msgstr ""
|
315 |
|
316 |
+
#: ../cerber-load.php:5024
|
317 |
+
msgid "Search string"
|
318 |
msgstr ""
|
319 |
|
320 |
+
#: ../cerber-load.php:5045
|
321 |
+
msgid "To delete the alert, click here"
|
322 |
msgstr ""
|
323 |
|
324 |
+
#: ../cerber-load.php:5263
|
325 |
+
#, php-format
|
326 |
+
msgid "The WP Cerber requires PHP %s or higher. You are running"
|
327 |
msgstr ""
|
328 |
|
329 |
+
#: ../cerber-load.php:5267
|
330 |
+
#, php-format
|
331 |
+
msgid "The WP Cerber requires WordPress %s or higher. You are running"
|
332 |
msgstr ""
|
333 |
|
334 |
+
#: ../cerber-load.php:5277
|
335 |
+
msgid "Can't activate WP Cerber due to a database error."
|
336 |
msgstr ""
|
337 |
|
338 |
+
#: ../cerber-load.php:5306
|
339 |
+
#, php-format
|
340 |
+
msgid "Your IP address %s has been added to the White IP Access List"
|
341 |
msgstr ""
|
342 |
|
343 |
+
#: ../cerber-load.php:5335
|
344 |
+
msgid "Import settings"
|
345 |
msgstr ""
|
346 |
|
347 |
+
#: ../cerber-load.php:7220
|
348 |
+
msgid "Awesome!"
|
349 |
msgstr ""
|
350 |
|
351 |
+
#: ../cerber-scanner.php:938 ../dashboard.php:1798
|
352 |
+
msgid "Full Scan"
|
353 |
msgstr ""
|
354 |
|
355 |
+
#: ../cerber-scanner.php:938 ../dashboard.php:1796
|
356 |
+
msgid "Quick Scan"
|
357 |
msgstr ""
|
358 |
|
359 |
+
#: ../cerber-scanner.php:1439
|
360 |
+
msgid "Verified"
|
361 |
msgstr ""
|
362 |
|
363 |
+
#: ../cerber-scanner.php:1445
|
364 |
+
msgid "Vulnerability found"
|
365 |
msgstr ""
|
366 |
|
367 |
+
#: ../cerber-scanner.php:1446
|
368 |
+
msgid "Integrity data not found"
|
369 |
msgstr ""
|
370 |
|
371 |
+
#: ../cerber-scanner.php:1447
|
372 |
+
msgid "Unable to check the integrity of the plugin due to a network error"
|
373 |
msgstr ""
|
374 |
|
375 |
+
#: ../cerber-scanner.php:1448
|
376 |
+
msgid "Unable to check the integrity of WordPress files due to a network error"
|
|
|
377 |
msgstr ""
|
378 |
|
379 |
+
#: ../cerber-scanner.php:1449
|
380 |
+
msgid "Unable to check the integrity of the theme due to a network error"
|
381 |
msgstr ""
|
382 |
|
383 |
+
#: ../cerber-scanner.php:1450
|
384 |
+
msgid "Unable to check the integrity due to a DB error"
|
385 |
msgstr ""
|
386 |
|
387 |
+
#: ../cerber-scanner.php:1452
|
388 |
+
msgid "Local file doesn't exist"
|
389 |
msgstr ""
|
390 |
|
391 |
+
#: ../cerber-scanner.php:1454
|
392 |
+
msgid "Unable to process file"
|
393 |
msgstr ""
|
394 |
|
395 |
+
#: ../cerber-scanner.php:1455 ../cerber-scanner.php:4644
|
396 |
+
msgid "Unable to open file"
|
397 |
msgstr ""
|
398 |
|
399 |
+
#: ../cerber-scanner.php:1457 ../admin/cerber-admin.php:79
|
400 |
+
msgid "Checksum mismatch"
|
401 |
msgstr ""
|
402 |
|
403 |
+
#: ../cerber-scanner.php:1460
|
404 |
+
msgid "Suspicious code found"
|
405 |
msgstr ""
|
406 |
|
407 |
+
#: ../cerber-scanner.php:1461
|
408 |
+
msgid "Malicious code found"
|
409 |
msgstr ""
|
410 |
|
411 |
+
#: ../cerber-scanner.php:1462
|
412 |
+
msgid "Unattended suspicious file"
|
413 |
msgstr ""
|
414 |
|
415 |
+
#: ../cerber-scanner.php:1463
|
416 |
+
msgid "Executable code found"
|
417 |
msgstr ""
|
418 |
|
419 |
+
#: ../cerber-scanner.php:1466 ../cerber-scanner.php:2706
|
420 |
+
msgid "Suspicious directives found"
|
421 |
msgstr ""
|
422 |
|
423 |
+
#: ../cerber-scanner.php:1467
|
424 |
+
msgid "Unwanted file extension"
|
425 |
msgstr ""
|
426 |
|
427 |
+
#: ../cerber-scanner.php:1469
|
428 |
+
msgid "Content has been modified"
|
429 |
+
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
430 |
|
431 |
+
#: ../cerber-scanner.php:1470
|
432 |
+
msgid "New file"
|
433 |
msgstr ""
|
434 |
|
435 |
+
#: ../cerber-scanner.php:1472
|
436 |
+
msgid "Unable to delete"
|
437 |
msgstr ""
|
438 |
|
439 |
+
#: ../cerber-scanner.php:1473
|
440 |
+
msgid "File deleted"
|
441 |
msgstr ""
|
442 |
|
443 |
+
#: ../cerber-scanner.php:1474
|
444 |
+
msgid "File recovered"
|
|
|
445 |
msgstr ""
|
446 |
|
447 |
+
#: ../cerber-scanner.php:1493 ../cerber-users.php:20 ../cerber-users.php:446 ..
|
448 |
+
#: /dashboard.php:1795 ../dashboard.php:1797 ../settings.php:735 ../settings.php:
|
449 |
+
#: 763 ../settings.php:887 ../settings.php:896 ../settings.php:1239
|
450 |
msgid "Disabled"
|
451 |
msgstr ""
|
452 |
|
453 |
+
#: ../cerber-scanner.php:1494
|
454 |
+
msgid "Every hour"
|
455 |
msgstr ""
|
456 |
|
457 |
+
#: ../cerber-scanner.php:1495
|
458 |
+
msgid "Every 3 hours"
|
459 |
msgstr ""
|
460 |
|
461 |
+
#: ../cerber-scanner.php:1496
|
462 |
+
msgid "Every 6 hours"
|
|
|
463 |
msgstr ""
|
464 |
|
465 |
+
#: ../cerber-scanner.php:2526
|
466 |
+
msgid "Custom signature found"
|
467 |
msgstr ""
|
468 |
|
469 |
+
#: ../cerber-scanner.php:2701
|
470 |
+
msgid ""
|
471 |
+
"This file contains executable code and may contain obfuscated malware. If "
|
472 |
+
"this file is a part of a theme or a plugin, it must be located in the theme "
|
473 |
+
"or the plugin folder. No exception, no excuses."
|
474 |
msgstr ""
|
475 |
|
476 |
+
#: ../cerber-scanner.php:2702
|
477 |
+
msgid ""
|
478 |
+
"The scanner recognizes this file as \"ownerless\" or \"not bundled\" because it "
|
479 |
+
"does not belong to any known part of the website and should not be here."
|
480 |
msgstr ""
|
481 |
|
482 |
+
#: ../cerber-scanner.php:2703
|
483 |
+
#, php-format
|
484 |
+
msgid ""
|
485 |
+
"It may remain after upgrading to a newer version of %s. It also may be a "
|
486 |
+
"piece of obfuscated malware. In a rare case it might be a part of a custom-"
|
487 |
+
"made (bespoke) plugin or theme."
|
488 |
msgstr ""
|
489 |
|
490 |
+
#: ../cerber-scanner.php:2704
|
491 |
+
msgid "Suspicious code instruction found"
|
492 |
msgstr ""
|
493 |
|
494 |
+
#: ../cerber-scanner.php:2705
|
495 |
+
msgid "Suspicious code signatures found"
|
496 |
msgstr ""
|
497 |
|
498 |
+
#: ../cerber-scanner.php:2707
|
499 |
+
msgid ""
|
500 |
+
"The contents of the file have been changed and do not match what exists in "
|
501 |
+
"the official WordPress repository or a reference file you have uploaded "
|
502 |
+
"earlier. The file may have been altered by malware, infected by a virus or "
|
503 |
+
"has been tampered with."
|
504 |
msgstr ""
|
505 |
|
506 |
+
#: ../cerber-scanner.php:2708
|
507 |
+
#, php-format
|
508 |
+
msgid ""
|
509 |
+
"To solve this issue you have to reinstall %s or update it to the latest "
|
510 |
+
"version."
|
511 |
msgstr ""
|
512 |
|
513 |
+
#: ../cerber-scanner.php:2709
|
514 |
+
msgid "Please upload a reference ZIP archive"
|
515 |
msgstr ""
|
516 |
|
517 |
+
#: ../cerber-scanner.php:2710
|
518 |
+
msgid "Resolve issue"
|
519 |
msgstr ""
|
520 |
|
521 |
+
#: ../cerber-scanner.php:3757
|
522 |
+
msgid "Preparing for the scan"
|
523 |
msgstr ""
|
524 |
|
525 |
+
#: ../cerber-scanner.php:3758
|
526 |
+
msgid "Scanning folders for files"
|
527 |
msgstr ""
|
528 |
|
529 |
+
#: ../cerber-scanner.php:3759
|
530 |
+
msgid "Scanning the upload folder for files"
|
531 |
msgstr ""
|
532 |
|
533 |
+
#: ../cerber-scanner.php:3760
|
534 |
+
msgid "Scanning the temp folder for files"
|
535 |
msgstr ""
|
536 |
|
537 |
+
#: ../cerber-scanner.php:3761
|
538 |
+
msgid "Scanning the session folder for files"
|
539 |
msgstr ""
|
540 |
|
541 |
+
#: ../cerber-scanner.php:3762
|
542 |
+
msgid "Parsing the list of files"
|
543 |
msgstr ""
|
544 |
|
545 |
+
#: ../cerber-scanner.php:3763
|
546 |
+
msgid "Checking for new and modified files"
|
547 |
msgstr ""
|
548 |
|
549 |
+
#: ../cerber-scanner.php:3764
|
550 |
+
msgid "Verifying the integrity of WordPress"
|
551 |
msgstr ""
|
552 |
|
553 |
+
#: ../cerber-scanner.php:3765
|
554 |
+
msgid "Recovering WordPress files"
|
555 |
msgstr ""
|
556 |
|
557 |
+
#: ../cerber-scanner.php:3766
|
558 |
+
msgid "Verifying the integrity of the plugins"
|
559 |
msgstr ""
|
560 |
|
561 |
+
#: ../cerber-scanner.php:3767
|
562 |
+
msgid "Recovering plugins files"
|
563 |
msgstr ""
|
564 |
|
565 |
+
#: ../cerber-scanner.php:3768
|
566 |
+
msgid "Verifying the integrity of the themes"
|
567 |
msgstr ""
|
568 |
|
569 |
+
#: ../cerber-scanner.php:3769
|
570 |
+
msgid "Searching for malicious code"
|
571 |
msgstr ""
|
572 |
|
573 |
+
#: ../cerber-scanner.php:3770
|
574 |
+
msgid "Finalizing the scan"
|
575 |
msgstr ""
|
576 |
|
577 |
+
#: ../cerber-scanner.php:4773
|
578 |
+
msgid "Full Scan Report"
|
579 |
msgstr ""
|
580 |
|
581 |
+
#: ../cerber-scanner.php:4773
|
582 |
+
msgid "Quick Scan Report"
|
583 |
msgstr ""
|
584 |
|
585 |
+
#: ../cerber-scanner.php:4786
|
586 |
+
msgid "Files scanned"
|
587 |
+
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
588 |
|
589 |
+
#: ../cerber-scanner.php:4817 ../admin/cerber-admin.php:103
|
590 |
+
msgid "Issues total"
|
591 |
msgstr ""
|
592 |
|
593 |
+
#: ../cerber-scanner.php:4871
|
594 |
+
msgid "Deleted"
|
595 |
msgstr ""
|
596 |
|
597 |
+
#: ../cerber-scanner.php:4875
|
598 |
+
msgid "Recovered"
|
599 |
msgstr ""
|
600 |
|
601 |
+
#: ../cerber-scanner.php:4924
|
602 |
+
msgid "Automatically moved to quarantine"
|
|
|
|
|
603 |
msgstr ""
|
604 |
|
605 |
+
#: ../cerber-scanner.php:4925
|
606 |
+
msgid "Automatically deleted"
|
|
|
|
|
607 |
msgstr ""
|
608 |
|
609 |
+
#: ../cerber-scanner.php:4928
|
610 |
+
msgid "Automatically recovered"
|
611 |
msgstr ""
|
612 |
|
613 |
+
#: ../cerber-scanner.php:4940
|
614 |
+
msgid "To view full report visit"
|
615 |
msgstr ""
|
616 |
|
617 |
+
#: ../cerber-tools.php:34
|
618 |
+
msgid "Export settings to the file"
|
619 |
msgstr ""
|
620 |
|
621 |
+
#: ../cerber-tools.php:35
|
622 |
+
msgid ""
|
623 |
+
"When you click the button below you will get a configuration file, which you "
|
624 |
+
"can upload on another site."
|
625 |
msgstr ""
|
626 |
|
627 |
+
#: ../cerber-tools.php:36
|
628 |
+
msgid "What do you want to export?"
|
629 |
msgstr ""
|
630 |
|
631 |
+
#: ../cerber-tools.php:37 ../cerber-tools.php:48 ../nexus/cerber-nexus.php:93 ..
|
632 |
+
#: /dashboard.php:4849 ../dashboard.php:4910
|
633 |
+
msgid "Settings"
|
634 |
msgstr ""
|
635 |
|
636 |
+
#: ../cerber-tools.php:38 ../cerber-tools.php:49 ../dashboard.php:4780
|
637 |
+
msgid "Access Lists"
|
638 |
msgstr ""
|
639 |
|
640 |
+
#: ../cerber-tools.php:39
|
641 |
+
msgid "Download file"
|
642 |
msgstr ""
|
643 |
|
644 |
+
#: ../cerber-tools.php:43
|
645 |
+
msgid "Import settings from the file"
|
646 |
msgstr ""
|
647 |
|
648 |
+
#: ../cerber-tools.php:44
|
649 |
+
msgid ""
|
650 |
+
"When you click the button below, file will be uploaded and all existing "
|
651 |
+
"settings will be overridden."
|
652 |
msgstr ""
|
653 |
|
654 |
+
#: ../cerber-tools.php:45
|
655 |
+
msgid "Select file to import."
|
656 |
msgstr ""
|
657 |
|
658 |
+
#: ../cerber-tools.php:45 ../admin/cerber-admin.php:246
|
659 |
+
#, php-format
|
660 |
+
msgid "Maximum upload file size: %s."
|
661 |
msgstr ""
|
662 |
|
663 |
+
#: ../cerber-tools.php:48
|
664 |
+
msgid "What do you want to import?"
|
665 |
msgstr ""
|
666 |
|
667 |
+
#: ../cerber-tools.php:50 ../admin/cerber-admin.php:249
|
668 |
+
msgid "Upload file"
|
669 |
msgstr ""
|
670 |
|
671 |
+
#: ../cerber-tools.php:52
|
672 |
+
msgid "Load the default plugin settings"
|
673 |
msgstr ""
|
674 |
|
675 |
+
#: ../cerber-tools.php:53
|
676 |
+
msgid ""
|
677 |
+
"When you click the button below, the default WP Cerber settings will be "
|
678 |
+
"loaded. The Custom login URL and Access Lists will not be changed."
|
679 |
msgstr ""
|
680 |
|
681 |
+
#: ../cerber-tools.php:54
|
682 |
+
msgid "To get the most out of WP Cerber, follow these steps:"
|
683 |
msgstr ""
|
684 |
|
685 |
+
#: ../cerber-tools.php:57
|
686 |
+
msgid "Load default settings"
|
687 |
msgstr ""
|
688 |
|
689 |
+
#: ../cerber-tools.php:59 ../admin/cerber-admin.php:729 ../admin/cerber-admin.php:
|
690 |
+
#: 896 ../dashboard.php:5272
|
691 |
+
msgid "Are you sure?"
|
692 |
msgstr ""
|
693 |
|
694 |
+
#: ../cerber-tools.php:69 ../dashboard.php:255 ../dashboard.php:1344 ../dashboard.
|
695 |
+
#: php:1393 ../dashboard.php:1766
|
696 |
+
msgid "White IP Access List"
|
697 |
msgstr ""
|
698 |
|
699 |
+
#: ../cerber-tools.php:70 ../dashboard.php:258 ../dashboard.php:1347 ../dashboard.
|
700 |
+
#: php:1396 ../dashboard.php:1767
|
701 |
+
msgid "Black IP Access List"
|
702 |
msgstr ""
|
703 |
|
704 |
+
#: ../cerber-tools.php:72
|
705 |
+
msgid "Load entries"
|
706 |
msgstr ""
|
707 |
|
708 |
+
#: ../cerber-tools.php:189
|
709 |
+
msgid "No file was uploaded or file is corrupted"
|
710 |
msgstr ""
|
711 |
|
712 |
+
#: ../cerber-tools.php:228
|
713 |
+
msgid "A database error occurred while importing access list entries"
|
714 |
msgstr ""
|
715 |
|
716 |
+
#: ../cerber-tools.php:236
|
717 |
+
msgid "Settings has imported successfully from"
|
718 |
msgstr ""
|
719 |
|
720 |
+
#: ../cerber-tools.php:243
|
721 |
+
msgid "Error while parsing file"
|
722 |
msgstr ""
|
723 |
|
724 |
+
#: ../cerber-tools.php:320
|
725 |
+
msgid "Unsubscribe"
|
726 |
msgstr ""
|
727 |
|
728 |
+
#: ../cerber-lab.php:837
|
729 |
+
msgid "Want to make WP Cerber even more powerful?"
|
730 |
msgstr ""
|
731 |
|
732 |
+
#: ../cerber-lab.php:838
|
733 |
+
msgid ""
|
734 |
+
"Allow WP Cerber to send locked out malicious IP addresses to Cerber Lab. "
|
735 |
+
"This helps the plugin team to develop new algorithms for WP Cerber that will "
|
736 |
+
"defend WordPress against new threats and botnets that are appearing "
|
737 |
+
"everyday. You can disable the sending in the plugin settings at any time."
|
738 |
msgstr ""
|
739 |
|
740 |
+
#: ../cerber-lab.php:839
|
741 |
+
msgid "OK, nail them all"
|
742 |
msgstr ""
|
743 |
|
744 |
+
#: ../cerber-lab.php:840
|
745 |
+
msgid "NO, maybe later"
|
|
|
746 |
msgstr ""
|
747 |
|
748 |
+
#: ../cerber-lab.php:841 ../admin/cerber-settings.php:100 ../admin/cerber-
|
749 |
+
#: settings.php:270
|
750 |
+
msgid "Know more"
|
751 |
msgstr ""
|
752 |
|
753 |
+
#: ../nexus/cerber-nexus-master.php:67
|
754 |
+
msgid "Show homepage in the Website column"
|
755 |
msgstr ""
|
756 |
|
757 |
+
#: ../nexus/cerber-nexus-master.php:69
|
758 |
+
msgid "Hide server IP address"
|
759 |
msgstr ""
|
760 |
|
761 |
+
#: ../nexus/cerber-nexus-master.php:96
|
762 |
+
msgid "Select an existing group or enter a new one to add it"
|
763 |
msgstr ""
|
764 |
|
765 |
+
#: ../nexus/cerber-nexus-master.php:104
|
766 |
+
msgid "Website Properties"
|
767 |
msgstr ""
|
768 |
|
769 |
+
#: ../nexus/cerber-nexus-master.php:114
|
770 |
+
msgid "Website URL"
|
771 |
msgstr ""
|
772 |
|
773 |
+
#: ../nexus/cerber-nexus-master.php:119
|
774 |
+
msgid "Display as"
|
775 |
msgstr ""
|
776 |
|
777 |
+
#: ../nexus/cerber-nexus-master.php:127 ../nexus/cerber-slave-list.php:54
|
778 |
+
msgid "Group"
|
779 |
msgstr ""
|
780 |
|
781 |
+
#: ../nexus/cerber-nexus-master.php:141 ../nexus/cerber-slave-list.php:56
|
782 |
+
msgid "Notes"
|
783 |
msgstr ""
|
784 |
|
785 |
+
#: ../nexus/cerber-nexus-master.php:149
|
786 |
+
msgid "Website Owner"
|
787 |
msgstr ""
|
788 |
|
789 |
+
#: ../nexus/cerber-nexus-master.php:153
|
790 |
+
msgid "First Name"
|
791 |
msgstr ""
|
792 |
|
793 |
+
#: ../nexus/cerber-nexus-master.php:157
|
794 |
+
msgid "Last Name"
|
795 |
msgstr ""
|
796 |
|
797 |
+
#: ../nexus/cerber-nexus-master.php:161
|
798 |
+
msgid "Email"
|
799 |
msgstr ""
|
800 |
|
801 |
+
#: ../nexus/cerber-nexus-master.php:165
|
802 |
+
msgid "Phone"
|
803 |
msgstr ""
|
804 |
|
805 |
+
#: ../nexus/cerber-nexus-master.php:169
|
806 |
+
msgid "Company"
|
807 |
msgstr ""
|
808 |
|
809 |
+
#: ../nexus/cerber-nexus-master.php:173
|
810 |
+
msgid "Address"
|
811 |
msgstr ""
|
812 |
|
813 |
+
#: ../nexus/cerber-nexus-master.php:286
|
814 |
+
msgid "Security access token is invalid"
|
815 |
msgstr ""
|
816 |
|
817 |
+
#: ../nexus/cerber-nexus-master.php:316
|
818 |
+
msgid "The website you are trying to add is already in the list"
|
819 |
msgstr ""
|
820 |
|
821 |
+
#: ../nexus/cerber-nexus-master.php:325
|
822 |
+
msgid "The website has been added successfully"
|
823 |
msgstr ""
|
824 |
|
825 |
+
#: ../nexus/cerber-nexus-master.php:326
|
826 |
+
msgid "Click to edit"
|
827 |
msgstr ""
|
828 |
|
829 |
+
#: ../nexus/cerber-nexus-master.php:327
|
830 |
+
msgid "Switch to the Dashboard"
|
831 |
msgstr ""
|
832 |
|
833 |
+
#: ../nexus/cerber-nexus-master.php:330
|
834 |
+
msgid ""
|
835 |
+
"Keep in mind: You have added the website that does not support SSL "
|
836 |
+
"encryption. This may lead to data leakage."
|
837 |
msgstr ""
|
838 |
|
839 |
+
#: ../nexus/cerber-nexus-master.php:449
|
840 |
+
#, php-format
|
841 |
+
msgid "Website has been deleted"
|
842 |
+
msgid_plural "%s websites have been deleted"
|
843 |
+
msgstr[0] ""
|
844 |
+
msgstr[1] ""
|
845 |
+
|
846 |
+
#: ../nexus/cerber-nexus-master.php:693
|
847 |
+
msgid "Invalid response from the slave website"
|
848 |
msgstr ""
|
849 |
|
850 |
+
#: ../nexus/cerber-nexus-master.php:1025
|
851 |
+
#, php-format
|
852 |
+
msgid "You have switched to %s"
|
853 |
msgstr ""
|
854 |
|
855 |
+
#: ../nexus/cerber-nexus-master.php:1035
|
856 |
+
msgid "You have switched back to the master website"
|
857 |
msgstr ""
|
858 |
|
859 |
+
#: ../nexus/cerber-nexus-master.php:1251
|
860 |
+
msgid "You are here:"
|
861 |
msgstr ""
|
862 |
|
863 |
+
#: ../nexus/cerber-nexus-master.php:1254 ../nexus/cerber-nexus.php:92 ..
|
864 |
+
#: /nexus/cerber-nexus.php:102
|
865 |
+
msgid "My Websites"
|
866 |
msgstr ""
|
867 |
|
868 |
+
#: ../nexus/cerber-nexus-master.php:1269
|
869 |
+
msgid "Visit Site"
|
870 |
msgstr ""
|
871 |
|
872 |
+
#: ../nexus/cerber-nexus-master.php:1335
|
873 |
+
msgid "Are you sure you want to delete selected websites?"
|
874 |
msgstr ""
|
875 |
|
876 |
+
#: ../nexus/cerber-nexus-master.php:1379
|
877 |
+
msgid "A newer version is available"
|
878 |
msgstr ""
|
879 |
|
880 |
+
#: ../nexus/cerber-nexus-master.php:1401 ../nexus/cerber-nexus-master.php:1409
|
881 |
+
msgid "Active plugins and updates on"
|
882 |
msgstr ""
|
883 |
|
884 |
+
#: ../nexus/cerber-slave-list.php:47
|
885 |
+
msgid "WordPress"
|
|
|
|
|
|
|
|
|
|
|
886 |
msgstr ""
|
887 |
|
888 |
+
#: ../nexus/cerber-slave-list.php:50
|
889 |
+
msgid "Updates"
|
890 |
msgstr ""
|
891 |
|
892 |
+
#: ../nexus/cerber-slave-list.php:51
|
893 |
+
msgid "Malware Scan"
|
894 |
msgstr ""
|
895 |
|
896 |
+
#: ../nexus/cerber-slave-list.php:52
|
897 |
+
msgid "Server"
|
898 |
msgstr ""
|
899 |
|
900 |
+
#: ../nexus/cerber-slave-list.php:53
|
901 |
+
msgid "Server Country"
|
902 |
msgstr ""
|
903 |
|
904 |
+
#: ../nexus/cerber-slave-list.php:55
|
905 |
+
msgid "Owner"
|
906 |
msgstr ""
|
907 |
|
908 |
+
#: ../nexus/cerber-slave-list.php:117
|
909 |
+
msgid "Upgrade WP Cerber"
|
910 |
msgstr ""
|
911 |
|
912 |
+
#: ../nexus/cerber-slave-list.php:118
|
913 |
+
msgid "Upgrade all active plugins"
|
914 |
msgstr ""
|
915 |
|
916 |
+
#: ../nexus/cerber-slave-list.php:119
|
917 |
+
msgid "Delete website"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
918 |
msgstr ""
|
919 |
|
920 |
+
#: ../nexus/cerber-slave-list.php:135
|
921 |
+
msgid "All groups"
|
922 |
msgstr ""
|
923 |
|
924 |
+
#: ../nexus/cerber-slave-list.php:145
|
925 |
+
msgid "All servers"
|
926 |
msgstr ""
|
927 |
|
928 |
+
#: ../nexus/cerber-slave-list.php:152
|
929 |
+
msgid "All countries"
|
930 |
msgstr ""
|
931 |
|
932 |
+
#: ../nexus/cerber-slave-list.php:161
|
933 |
+
msgid "Add a slave website"
|
934 |
msgstr ""
|
935 |
|
936 |
+
#: ../nexus/cerber-slave-list.php:247 ../cerber-users.php:1085
|
937 |
+
msgid "Search results for:"
|
938 |
msgstr ""
|
939 |
|
940 |
+
#: ../nexus/cerber-slave-list.php:282
|
941 |
+
msgid "Edit"
|
942 |
msgstr ""
|
943 |
|
944 |
+
#: ../nexus/cerber-slave-list.php:288
|
945 |
+
msgid "Switch to"
|
946 |
msgstr ""
|
947 |
|
948 |
+
#: ../nexus/cerber-slave-list.php:333 ../dashboard.php:434 ../dashboard.php:3710 .
|
949 |
+
#: ./dashboard.php:4277 ../common.php:1528 ../whois.php:222 ../whois.php:253
|
950 |
+
msgid "Unknown"
|
951 |
msgstr ""
|
952 |
|
953 |
+
#: ../nexus/cerber-slave-list.php:340 ../admin/cerber-admin.php:67
|
954 |
+
msgid "Vulnerabilities"
|
955 |
msgstr ""
|
956 |
|
957 |
+
#: ../nexus/cerber-slave-list.php:347 ../dashboard.php:1649 ../dashboard.php:1740
|
958 |
+
#: ../dashboard.php:1789 ../common.php:1666
|
959 |
+
msgid "Never"
|
960 |
msgstr ""
|
961 |
|
962 |
+
#: ../nexus/cerber-slave-list.php:420
|
963 |
+
msgid "No websites configured."
|
964 |
msgstr ""
|
965 |
|
966 |
+
#: ../nexus/cerber-slave-list.php:420
|
967 |
+
msgid "Add a new one"
|
968 |
msgstr ""
|
969 |
|
970 |
+
#: ../nexus/cerber-slave-list.php:420
|
971 |
+
msgid "Disable master mode"
|
972 |
msgstr ""
|
973 |
|
974 |
+
#: ../nexus/cerber-nexus.php:64
|
975 |
+
msgid "Enable slave mode"
|
976 |
msgstr ""
|
977 |
|
978 |
+
#: ../nexus/cerber-nexus.php:65
|
979 |
+
msgid "This website can be managed from a master website"
|
980 |
msgstr ""
|
981 |
|
982 |
+
#: ../nexus/cerber-nexus.php:68
|
983 |
+
msgid "Enable master mode"
|
984 |
msgstr ""
|
985 |
|
986 |
+
#: ../nexus/cerber-nexus.php:69
|
987 |
+
msgid "Configure this website as a master to manage other website"
|
988 |
msgstr ""
|
989 |
|
990 |
+
#: ../nexus/cerber-nexus.php:74
|
991 |
+
msgid "To proceed, please select the mode for this website"
|
992 |
msgstr ""
|
993 |
|
994 |
+
#: ../nexus/cerber-nexus.php:98 ../nexus/cerber-nexus.php:102
|
995 |
+
msgid "Slave Settings"
|
996 |
msgstr ""
|
997 |
|
998 |
+
#: ../nexus/cerber-nexus.php:144
|
999 |
+
msgid "Secret Access Token"
|
1000 |
msgstr ""
|
1001 |
|
1002 |
+
#: ../nexus/cerber-nexus.php:146
|
1003 |
+
msgid ""
|
1004 |
+
"The token is unique to this website. Keep it secret. Install the token on a "
|
1005 |
+
"master website to grant access to this website."
|
1006 |
msgstr ""
|
1007 |
|
1008 |
+
#: ../nexus/cerber-nexus.php:148
|
1009 |
+
msgid "Are you sure? This permanently invalidates the token."
|
1010 |
msgstr ""
|
1011 |
|
1012 |
+
#: ../nexus/cerber-nexus.php:149
|
1013 |
+
msgid "To revoke the token and disable remote management, click here:"
|
1014 |
msgstr ""
|
1015 |
|
1016 |
+
#: ../nexus/cerber-nexus.php:149
|
1017 |
+
msgid "Disable slave mode"
|
1018 |
msgstr ""
|
1019 |
|
1020 |
+
#: ../nexus/cerber-nexus.php:264
|
1021 |
+
msgid "This website is set as master."
|
1022 |
msgstr ""
|
1023 |
|
1024 |
+
#: ../nexus/cerber-nexus.php:265
|
1025 |
+
msgid "Add slave websites by using access tokens."
|
1026 |
msgstr ""
|
1027 |
|
1028 |
+
#: ../nexus/cerber-nexus.php:268
|
1029 |
+
msgid "This website is set as slave."
|
1030 |
msgstr ""
|
1031 |
|
1032 |
+
#: ../nexus/cerber-nexus.php:269
|
1033 |
+
msgid "Install the access token on the master website."
|
1034 |
msgstr ""
|
1035 |
|
1036 |
+
#: ../nexus/cerber-nexus-slave.php:436
|
1037 |
+
msgid "Settings updated"
|
1038 |
msgstr ""
|
1039 |
|
1040 |
+
#: ../cerber-addons.php:289 ../dashboard.php:80 ../dashboard.php:80
|
1041 |
+
msgid "Add-ons"
|
1042 |
msgstr ""
|
1043 |
|
1044 |
+
#: ../cerber-users.php:10 ../cerber-users.php:439
|
1045 |
+
msgid "Two-Factor Authentication"
|
1046 |
msgstr ""
|
1047 |
|
1048 |
+
#: ../cerber-users.php:18
|
1049 |
+
msgid "Determined by user role policies"
|
1050 |
msgstr ""
|
1051 |
|
1052 |
+
#: ../cerber-users.php:19 ../cerber-users.php:447
|
1053 |
+
msgid "Always enabled"
|
1054 |
msgstr ""
|
1055 |
|
1056 |
+
#: ../cerber-users.php:39
|
1057 |
+
msgid "Block User"
|
1058 |
msgstr ""
|
1059 |
|
1060 |
+
#: ../cerber-users.php:43 ../cerber-users.php:49
|
1061 |
+
msgid "User is not permitted to log into the website"
|
1062 |
msgstr ""
|
1063 |
|
1064 |
+
#: ../cerber-users.php:52 ../cerber-users.php:1130 ../dashboard.php:1688
|
1065 |
+
msgid "You"
|
1066 |
msgstr ""
|
1067 |
|
1068 |
+
#: ../cerber-users.php:58
|
1069 |
+
#, php-format
|
1070 |
+
msgctxt "e.g. blocked by John at 11:00"
|
1071 |
+
msgid "blocked by %s at %s"
|
1072 |
msgstr ""
|
1073 |
|
1074 |
+
#: ../cerber-users.php:68 ../settings.php:535
|
1075 |
+
msgid "User Message"
|
1076 |
msgstr ""
|
1077 |
|
1078 |
+
#: ../cerber-users.php:70
|
1079 |
+
msgid "An optional message for this user"
|
1080 |
msgstr ""
|
1081 |
|
1082 |
+
#: ../cerber-users.php:75
|
1083 |
+
msgid "Admin Note"
|
1084 |
msgstr ""
|
1085 |
|
1086 |
+
#: ../cerber-users.php:86
|
1087 |
+
msgid "2FA PIN Code"
|
1088 |
msgstr ""
|
1089 |
|
1090 |
+
#: ../cerber-users.php:101
|
1091 |
+
msgid "Two-Factor Authentication Email"
|
1092 |
msgstr ""
|
1093 |
|
1094 |
+
#: ../cerber-users.php:181
|
1095 |
+
msgid "Blocked Users"
|
1096 |
msgstr ""
|
1097 |
|
1098 |
+
#: ../cerber-users.php:213
|
1099 |
+
msgid "Block"
|
1100 |
msgstr ""
|
1101 |
|
1102 |
+
#: ../cerber-users.php:288
|
1103 |
+
msgid "Save All Changes"
|
1104 |
msgstr ""
|
1105 |
|
1106 |
+
#: ../cerber-users.php:401
|
1107 |
+
msgid "Block access to WordPress Dashboard"
|
1108 |
msgstr ""
|
1109 |
|
1110 |
+
#: ../cerber-users.php:406
|
1111 |
+
msgid "Hide Toolbar when viewing site"
|
1112 |
msgstr ""
|
1113 |
|
1114 |
+
#: ../cerber-users.php:412
|
1115 |
+
msgid "Redirection rules"
|
1116 |
msgstr ""
|
1117 |
|
1118 |
+
#: ../cerber-users.php:416
|
1119 |
+
msgid "Redirect user after login"
|
1120 |
msgstr ""
|
1121 |
|
1122 |
+
#: ../cerber-users.php:421
|
1123 |
+
msgid "Redirect user after logout"
|
1124 |
msgstr ""
|
1125 |
|
1126 |
+
#: ../cerber-users.php:432 ../settings.php:597
|
1127 |
+
msgid "User session expiration time"
|
1128 |
msgstr ""
|
1129 |
|
1130 |
+
#: ../cerber-users.php:443
|
1131 |
+
msgid "Two-factor authentication"
|
1132 |
msgstr ""
|
1133 |
|
1134 |
+
#: ../cerber-users.php:448
|
1135 |
+
msgid "Advanced mode"
|
1136 |
msgstr ""
|
1137 |
|
1138 |
+
#: ../cerber-users.php:452
|
1139 |
+
msgid "Enforce two-factor authentication if any of the following conditions is true"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1140 |
msgstr ""
|
1141 |
|
1142 |
+
#: ../cerber-users.php:458
|
1143 |
+
msgid "Login from a different country"
|
1144 |
msgstr ""
|
1145 |
|
1146 |
+
#: ../cerber-users.php:464
|
1147 |
+
msgid "Login from a different network Class C"
|
1148 |
msgstr ""
|
1149 |
|
1150 |
+
#: ../cerber-users.php:470
|
1151 |
+
msgid "Login from a different IP address"
|
1152 |
msgstr ""
|
1153 |
|
1154 |
+
#: ../cerber-users.php:476
|
1155 |
+
msgid "Using a different browser or device"
|
1156 |
msgstr ""
|
1157 |
|
1158 |
+
#: ../cerber-users.php:482
|
1159 |
+
msgid "Enforce two-factor authentication with fixed intervals"
|
1160 |
msgstr ""
|
1161 |
|
1162 |
+
#: ../cerber-users.php:488
|
1163 |
+
msgid "Regular time intervals (days)"
|
1164 |
msgstr ""
|
1165 |
|
1166 |
+
#: ../cerber-users.php:490
|
1167 |
+
msgid "days interval"
|
1168 |
msgstr ""
|
1169 |
|
1170 |
+
#: ../cerber-users.php:495
|
1171 |
+
msgid "Fixed number of logins"
|
1172 |
msgstr ""
|
1173 |
|
1174 |
+
#: ../cerber-users.php:497
|
1175 |
+
msgid "number of logins"
|
1176 |
msgstr ""
|
1177 |
|
1178 |
+
#: ../cerber-users.php:541
|
1179 |
+
msgid "Policies have been updated"
|
1180 |
msgstr ""
|
1181 |
|
1182 |
+
#: ../cerber-users.php:613
|
|
|
1183 |
#, php-format
|
1184 |
+
msgid "Session has been terminated"
|
1185 |
+
msgid_plural "%s sessions have been terminated"
|
1186 |
msgstr[0] ""
|
1187 |
msgstr[1] ""
|
1188 |
|
1189 |
+
#: ../cerber-users.php:944
|
1190 |
+
msgid "WP Cerber Personal Data Eraser"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1191 |
msgstr ""
|
1192 |
|
1193 |
+
#: ../cerber-users.php:973
|
1194 |
+
msgid "Created"
|
1195 |
msgstr ""
|
1196 |
|
1197 |
+
#: ../cerber-users.php:974 ../dashboard.php:199
|
1198 |
+
msgid "Expires"
|
1199 |
msgstr ""
|
1200 |
|
1201 |
+
#: ../cerber-users.php:975 ../dashboard.php:196 ../dashboard.php:846 ../dashboard.
|
1202 |
+
#: php:1101 ../dashboard.php:4033
|
1203 |
+
msgid "IP Address"
|
1204 |
msgstr ""
|
1205 |
|
1206 |
+
#: ../cerber-users.php:976 ../dashboard.php:4034
|
1207 |
+
msgid "Host Info"
|
1208 |
msgstr ""
|
1209 |
|
1210 |
+
#: ../cerber-users.php:977 ../admin/cerber-admin.php:765 ../admin/cerber-admin.
|
1211 |
+
#: php:920 ../dashboard.php:201
|
1212 |
+
msgid "Action"
|
1213 |
msgstr ""
|
1214 |
|
1215 |
+
#: ../cerber-users.php:994
|
1216 |
+
msgid "Terminate session"
|
1217 |
msgstr ""
|
1218 |
|
1219 |
+
#: ../cerber-users.php:995
|
1220 |
+
msgid "Block user"
|
|
|
1221 |
msgstr ""
|
1222 |
|
1223 |
+
#: ../cerber-users.php:1019 ../dashboard.php:1144
|
1224 |
+
msgid "Filter by registered user"
|
1225 |
msgstr ""
|
1226 |
|
1227 |
+
#: ../cerber-users.php:1022
|
1228 |
+
msgid "Search for IP address"
|
1229 |
msgstr ""
|
1230 |
|
1231 |
+
#: ../cerber-users.php:1127
|
1232 |
+
msgid "Profile"
|
1233 |
msgstr ""
|
1234 |
|
1235 |
+
#: ../cerber-users.php:1140
|
1236 |
+
msgid "All Logins"
|
|
|
|
|
1237 |
msgstr ""
|
1238 |
|
1239 |
+
#: ../cerber-users.php:1141
|
1240 |
+
msgid "User Activity"
|
|
|
1241 |
msgstr ""
|
1242 |
|
1243 |
+
#: ../cerber-users.php:1164 ../dashboard.php:1810
|
1244 |
+
msgid "Traffic"
|
1245 |
msgstr ""
|
1246 |
|
1247 |
+
#: ../cerber-users.php:1187
|
1248 |
+
msgid "Terminate"
|
1249 |
msgstr ""
|
1250 |
|
1251 |
#: ../admin/cerber-admin.php:43
|
1256 |
msgid "Finished"
|
1257 |
msgstr ""
|
1258 |
|
1259 |
+
#: ../admin/cerber-admin.php:51 ../settings.php:259
|
1260 |
msgid "Duration"
|
1261 |
msgstr ""
|
1262 |
|
1264 |
msgid "Performance"
|
1265 |
msgstr ""
|
1266 |
|
|
|
|
|
|
|
|
|
1267 |
#: ../admin/cerber-admin.php:71
|
1268 |
msgid "New files"
|
1269 |
msgstr ""
|
1272 |
msgid "Changed files"
|
1273 |
msgstr ""
|
1274 |
|
|
|
|
|
|
|
|
|
1275 |
#: ../admin/cerber-admin.php:83
|
1276 |
msgid "Unwanted extensions"
|
1277 |
msgstr ""
|
1280 |
msgid "Unattended files"
|
1281 |
msgstr ""
|
1282 |
|
1283 |
+
#: ../admin/cerber-admin.php:96 ../admin/cerber-admin.php:760
|
1284 |
msgid "Scanned"
|
1285 |
msgstr ""
|
1286 |
|
1292 |
msgid "Critical issues"
|
1293 |
msgstr ""
|
1294 |
|
|
|
|
|
|
|
|
|
1295 |
#: ../admin/cerber-admin.php:164
|
1296 |
msgid "Currently a scheduled scan in progress. Please wait until it is finished."
|
1297 |
msgstr ""
|
1342 |
"malware."
|
1343 |
msgstr ""
|
1344 |
|
1345 |
+
#: ../admin/cerber-admin.php:353
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1346 |
msgid ""
|
1347 |
"File access error. Possibly scan results are outdated. Please run Quick or "
|
1348 |
"Full Scan."
|
1349 |
msgstr ""
|
1350 |
|
1351 |
+
#: ../admin/cerber-admin.php:704
|
1352 |
msgid "There are no files in the quarantine at the moment."
|
1353 |
msgstr ""
|
1354 |
|
1355 |
+
#: ../admin/cerber-admin.php:721
|
1356 |
msgid "No files match the specified filter."
|
1357 |
msgstr ""
|
1358 |
|
1359 |
+
#: ../admin/cerber-admin.php:721
|
1360 |
msgid "Click here to see the full list of files"
|
1361 |
msgstr ""
|
1362 |
|
1363 |
+
#: ../admin/cerber-admin.php:739
|
1364 |
msgid "Delete permanently"
|
1365 |
msgstr ""
|
1366 |
|
1367 |
+
#: ../admin/cerber-admin.php:742
|
1368 |
msgid "Restore"
|
1369 |
msgstr ""
|
1370 |
|
1371 |
+
#: ../admin/cerber-admin.php:761
|
1372 |
msgid "Quarantined"
|
1373 |
msgstr ""
|
1374 |
|
1375 |
+
#: ../admin/cerber-admin.php:762
|
1376 |
msgid "Automatic deletion"
|
1377 |
msgstr ""
|
1378 |
|
1379 |
+
#: ../admin/cerber-admin.php:763 ../admin/cerber-admin.php:918 ../admin/cerber-
|
1380 |
+
#: admin.php:1326
|
1381 |
msgid "Size"
|
1382 |
msgstr ""
|
1383 |
|
1384 |
+
#: ../admin/cerber-admin.php:764 ../admin/cerber-admin.php:919
|
1385 |
msgid "File"
|
1386 |
msgstr ""
|
1387 |
|
1388 |
+
#: ../admin/cerber-admin.php:775
|
1389 |
msgid "All scans"
|
1390 |
msgstr ""
|
1391 |
|
1392 |
+
#: ../admin/cerber-admin.php:837
|
1393 |
msgid "The file has been deleted permanently."
|
1394 |
msgstr ""
|
1395 |
|
1396 |
+
#: ../admin/cerber-admin.php:852
|
1397 |
msgid "The file has been restored to its original location."
|
1398 |
msgstr ""
|
1399 |
|
1400 |
+
#: ../admin/cerber-admin.php:876
|
1401 |
msgid "Apply"
|
1402 |
msgstr ""
|
1403 |
|
1404 |
+
#: ../admin/cerber-admin.php:877 ../admin/cerber-admin.php:904
|
1405 |
msgid "Remove from the list"
|
1406 |
msgstr ""
|
1407 |
|
1408 |
+
#: ../admin/cerber-admin.php:878
|
1409 |
msgid "User Insights"
|
1410 |
msgstr ""
|
1411 |
|
1412 |
+
#: ../admin/cerber-admin.php:879
|
1413 |
msgid "Traffic Insights"
|
1414 |
msgstr ""
|
1415 |
|
1416 |
+
#: ../admin/cerber-admin.php:880
|
1417 |
msgid "Activity Insights"
|
1418 |
msgstr ""
|
1419 |
|
1420 |
+
#: ../admin/cerber-admin.php:882
|
1421 |
msgid "The list is empty."
|
1422 |
msgstr ""
|
1423 |
|
1424 |
+
#: ../admin/cerber-admin.php:916
|
1425 |
msgid "Added"
|
1426 |
msgstr ""
|
1427 |
|
1428 |
+
#: ../admin/cerber-admin.php:917 ../admin/cerber-admin.php:1327
|
1429 |
msgid "Modified"
|
1430 |
msgstr ""
|
1431 |
|
1432 |
+
#: ../admin/cerber-admin.php:991
|
1433 |
msgid "Files without extension"
|
1434 |
msgstr ""
|
1435 |
|
1436 |
+
#: ../admin/cerber-admin.php:992
|
1437 |
msgid "Back to list"
|
1438 |
msgstr ""
|
1439 |
|
1440 |
+
#: ../admin/cerber-admin.php:1052
|
1441 |
msgid "Brief summary"
|
1442 |
msgstr ""
|
1443 |
|
1444 |
+
#: ../admin/cerber-admin.php:1103
|
1445 |
msgid "Folder"
|
1446 |
msgstr ""
|
1447 |
|
1448 |
+
#: ../admin/cerber-admin.php:1104
|
1449 |
msgid "Path"
|
1450 |
msgstr ""
|
1451 |
|
1452 |
+
#: ../admin/cerber-admin.php:1105 ../admin/cerber-admin.php:1199
|
1453 |
msgid "Files"
|
1454 |
msgstr ""
|
1455 |
|
1456 |
+
#: ../admin/cerber-admin.php:1106 ../admin/cerber-admin.php:1200
|
1457 |
msgid "Space Occupied"
|
1458 |
msgstr ""
|
1459 |
|
1460 |
+
#: ../admin/cerber-admin.php:1170
|
1461 |
msgid "No extension"
|
1462 |
msgstr ""
|
1463 |
|
1464 |
+
#: ../admin/cerber-admin.php:1195
|
1465 |
msgid "File extensions statistics"
|
1466 |
msgstr ""
|
1467 |
|
1468 |
+
#: ../admin/cerber-admin.php:1198
|
1469 |
msgid "Extension"
|
1470 |
msgstr ""
|
1471 |
|
1472 |
+
#: ../admin/cerber-admin.php:1201
|
1473 |
msgid "Smallest"
|
1474 |
msgstr ""
|
1475 |
|
1476 |
+
#: ../admin/cerber-admin.php:1202
|
1477 |
msgid "Largest"
|
1478 |
msgstr ""
|
1479 |
|
1480 |
+
#: ../admin/cerber-admin.php:1203
|
1481 |
msgid "Average Size"
|
1482 |
msgstr ""
|
1483 |
|
1484 |
+
#: ../admin/cerber-admin.php:1204
|
1485 |
msgid "Oldest"
|
1486 |
msgstr ""
|
1487 |
|
1488 |
+
#: ../admin/cerber-admin.php:1205
|
1489 |
msgid "Newest"
|
1490 |
msgstr ""
|
1491 |
|
1492 |
+
#: ../admin/cerber-admin.php:1221
|
1493 |
msgid "Top 10 largest files"
|
1494 |
msgstr ""
|
1495 |
|
1496 |
+
#: ../admin/cerber-admin.php:1325
|
1497 |
msgid "File Name"
|
1498 |
msgstr ""
|
1499 |
|
1500 |
+
#: ../admin/cerber-settings.php:352
|
1501 |
+
#, php-format
|
1502 |
+
msgid "%s retries are allowed within %s minutes"
|
1503 |
msgstr ""
|
1504 |
|
1505 |
+
#: ../admin/cerber-settings.php:358
|
1506 |
+
#, php-format
|
1507 |
+
msgid "%s registrations are allowed within %s minutes from one IP address"
|
|
|
|
|
|
|
1508 |
msgstr ""
|
1509 |
|
1510 |
+
#: ../admin/cerber-settings.php:364
|
1511 |
+
#, php-format
|
1512 |
+
msgid "Increase lockout duration to %s hours after %s lockouts in the last %s hours"
|
1513 |
msgstr ""
|
1514 |
|
1515 |
+
#: ../admin/cerber-settings.php:372
|
1516 |
+
msgid "Notify admin if the number of active lockouts above"
|
1517 |
msgstr ""
|
1518 |
|
1519 |
+
#: ../admin/cerber-settings.php:377 ../settings.php:271
|
1520 |
+
msgid "Click to send test"
|
1521 |
msgstr ""
|
1522 |
|
1523 |
+
#: ../admin/cerber-settings.php:381
|
1524 |
#, php-format
|
1525 |
+
msgid "Enable after %s failed login attempts in the last %s minutes"
|
|
|
|
|
1526 |
msgstr ""
|
1527 |
|
1528 |
+
#: ../admin/cerber-settings.php:517
|
1529 |
+
msgid "Select one or more roles"
|
1530 |
msgstr ""
|
1531 |
|
1532 |
+
#: ../admin/cerber-settings.php:541
|
1533 |
+
msgid "Sunday"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1534 |
msgstr ""
|
1535 |
|
1536 |
+
#: ../admin/cerber-settings.php:542
|
1537 |
+
msgid "Monday"
|
|
|
|
|
1538 |
msgstr ""
|
1539 |
|
1540 |
+
#: ../admin/cerber-settings.php:543
|
1541 |
+
msgid "Tuesday"
|
|
|
|
|
|
|
1542 |
msgstr ""
|
1543 |
|
1544 |
+
#: ../admin/cerber-settings.php:544
|
1545 |
+
msgid "Wednesday"
|
|
|
1546 |
msgstr ""
|
1547 |
|
1548 |
+
#: ../admin/cerber-settings.php:545
|
1549 |
+
msgid "Thursday"
|
1550 |
msgstr ""
|
1551 |
|
1552 |
+
#: ../admin/cerber-settings.php:546
|
1553 |
+
msgid "Friday"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1554 |
msgstr ""
|
1555 |
|
1556 |
+
#: ../admin/cerber-settings.php:547
|
1557 |
+
msgid "Saturday"
|
1558 |
msgstr ""
|
1559 |
|
1560 |
+
#: ../admin/cerber-settings.php:557
|
1561 |
+
msgctxt "preposition of time like: at 11:00"
|
1562 |
+
msgid "at"
|
1563 |
msgstr ""
|
1564 |
|
1565 |
+
#: ../admin/cerber-settings.php:576
|
1566 |
+
msgid "Click to send now"
|
1567 |
msgstr ""
|
1568 |
|
1569 |
+
#: ../admin/cerber-settings.php:628 ../dashboard.php:3162
|
1570 |
+
msgid "Save Changes"
|
|
|
1571 |
msgstr ""
|
1572 |
|
1573 |
+
#: ../admin/cerber-settings.php:654
|
1574 |
+
msgid "Plugin initialization mode has not been changed"
|
|
|
1575 |
msgstr ""
|
1576 |
|
1577 |
+
#: ../admin/cerber-settings.php:681 ../admin/cerber-settings.php:682
|
1578 |
+
msgid "Attention! You have changed the login URL! The new login URL is"
|
1579 |
msgstr ""
|
1580 |
|
1581 |
+
#: ../admin/cerber-settings.php:683 ../admin/cerber-settings.php:684
|
1582 |
+
msgid ""
|
1583 |
+
"If you use a caching plugin, you have to add your new login URL to the list "
|
1584 |
+
"of pages not to cache."
|
1585 |
msgstr ""
|
1586 |
|
1587 |
+
#: ../admin/cerber-settings.php:777 ../admin/cerber-settings.php:789 ..
|
1588 |
+
#: /admin/cerber-settings.php:949
|
1589 |
+
msgid "<strong>ERROR</strong>: please enter a valid email address."
|
1590 |
msgstr ""
|
1591 |
|
1592 |
+
#: ../admin/cerber-settings.php:955
|
1593 |
+
msgid "The schedule has been updated"
|
1594 |
msgstr ""
|
1595 |
|
1596 |
+
#: ../admin/cerber-settings.php:958
|
1597 |
+
msgid "Unable to update the schedule"
|
|
|
1598 |
msgstr ""
|
1599 |
|
1600 |
+
#. Description of the plugin
|
1601 |
+
msgid ""
|
1602 |
+
"This is a standard boot module for WP Cerber Security & Antispam plugin. It "
|
1603 |
+
"was installed when you set the plugin initialization mode to Standard. Know "
|
1604 |
+
"more: <a href=\"https://wpcerber.com\">wpcerber.com</a>."
|
1605 |
msgstr ""
|
1606 |
|
1607 |
+
#: ../dashboard.php:55
|
1608 |
+
msgid "Cerber Dashboard"
|
1609 |
msgstr ""
|
1610 |
|
1611 |
+
#: ../dashboard.php:55 ../dashboard.php:1808 ../dashboard.php:2691 ../dashboard.
|
1612 |
+
#: php:4775
|
1613 |
+
msgid "Dashboard"
|
1614 |
msgstr ""
|
1615 |
|
1616 |
+
#: ../dashboard.php:57
|
1617 |
+
msgid "Cerber Traffic Inspector"
|
1618 |
msgstr ""
|
1619 |
|
1620 |
+
#: ../dashboard.php:57 ../dashboard.php:1771 ../dashboard.php:4846
|
1621 |
+
msgid "Traffic Inspector"
|
|
|
1622 |
msgstr ""
|
1623 |
|
1624 |
+
#: ../dashboard.php:61
|
1625 |
+
msgid "Cerber Data Shield Policies"
|
1626 |
msgstr ""
|
1627 |
|
1628 |
+
#: ../dashboard.php:61
|
1629 |
+
msgid "Data Shield"
|
1630 |
msgstr ""
|
1631 |
|
1632 |
+
#: ../dashboard.php:62
|
1633 |
+
msgid "Cerber Security Rules"
|
1634 |
msgstr ""
|
1635 |
|
1636 |
+
#: ../dashboard.php:62 ../dashboard.php:4892
|
1637 |
+
msgid "Security Rules"
|
1638 |
msgstr ""
|
1639 |
|
1640 |
+
#: ../dashboard.php:65
|
1641 |
+
msgid "Cerber User Security"
|
1642 |
msgstr ""
|
1643 |
|
1644 |
+
#: ../dashboard.php:65 ../dashboard.php:4872
|
1645 |
+
msgid "User Policies"
|
1646 |
msgstr ""
|
1647 |
|
1648 |
+
#: ../dashboard.php:68 ../dashboard.php:4907
|
1649 |
+
msgid "Site Integrity"
|
1650 |
msgstr ""
|
1651 |
|
1652 |
+
#: ../dashboard.php:72
|
1653 |
+
msgid "Cerber anti-spam settings"
|
1654 |
msgstr ""
|
1655 |
|
1656 |
+
#: ../dashboard.php:72 ../settings.php:1166
|
1657 |
+
msgid "Anti-spam"
|
1658 |
msgstr ""
|
1659 |
|
1660 |
+
#: ../dashboard.php:83
|
1661 |
+
msgid "Cerber tools"
|
1662 |
msgstr ""
|
1663 |
|
1664 |
+
#: ../dashboard.php:83 ../dashboard.php:4961
|
1665 |
+
msgid "Tools"
|
1666 |
msgstr ""
|
1667 |
|
1668 |
+
#: ../dashboard.php:191 ../dashboard.php:309
|
1669 |
+
msgid "Remove"
|
1670 |
msgstr ""
|
1671 |
|
1672 |
+
#: ../dashboard.php:197 ../dashboard.php:1102
|
1673 |
+
msgid "Hostname"
|
1674 |
msgstr ""
|
1675 |
|
1676 |
+
#: ../dashboard.php:198 ../dashboard.php:1103
|
1677 |
+
msgid "Country"
|
1678 |
msgstr ""
|
1679 |
|
1680 |
+
#: ../dashboard.php:217
|
1681 |
+
#, php-format
|
1682 |
+
msgid "Showing last %d records from %d"
|
1683 |
msgstr ""
|
1684 |
|
1685 |
+
#: ../dashboard.php:219
|
1686 |
+
msgid "Hint"
|
1687 |
msgstr ""
|
1688 |
|
1689 |
+
#: ../dashboard.php:219
|
1690 |
+
msgid "To view activity, click on the IP"
|
|
|
1691 |
msgstr ""
|
1692 |
|
1693 |
+
#: ../dashboard.php:223
|
1694 |
+
msgid "No lockouts at the moment. The sky is clear."
|
1695 |
msgstr ""
|
1696 |
|
1697 |
+
#: ../dashboard.php:265
|
1698 |
+
msgid "Your IP"
|
1699 |
msgstr ""
|
1700 |
|
1701 |
+
#: ../dashboard.php:305 ../dashboard.php:1384 ../dashboard.php:1439 ../dashboard.
|
1702 |
+
#: php:1580
|
1703 |
+
msgid "Check for activities"
|
1704 |
msgstr ""
|
1705 |
|
1706 |
+
#: ../dashboard.php:315
|
1707 |
+
msgid "List is empty"
|
1708 |
msgstr ""
|
1709 |
|
1710 |
+
#: ../dashboard.php:321
|
1711 |
+
msgid "IP address, range, wildcard, or CIDR"
|
1712 |
msgstr ""
|
1713 |
|
1714 |
+
#: ../dashboard.php:322
|
1715 |
+
msgid "Add Entry"
|
1716 |
msgstr ""
|
1717 |
|
1718 |
+
#: ../dashboard.php:323
|
1719 |
+
msgid "Optional comment for this entry"
|
1720 |
msgstr ""
|
1721 |
|
1722 |
+
#: ../dashboard.php:345
|
1723 |
+
msgid "You cannot add your IP address or network"
|
1724 |
msgstr ""
|
1725 |
|
1726 |
+
#: ../dashboard.php:349
|
1727 |
#, php-format
|
1728 |
+
msgid "IP address %s has been added to Black IP Access List"
|
1729 |
msgstr ""
|
1730 |
|
1731 |
+
#: ../dashboard.php:352
|
1732 |
#, php-format
|
1733 |
+
msgid "IP address %s has been added to White IP Access List"
|
1734 |
msgstr ""
|
1735 |
|
1736 |
+
#: ../dashboard.php:514
|
1737 |
+
msgid "unknown"
|
1738 |
msgstr ""
|
1739 |
|
1740 |
+
#: ../dashboard.php:576
|
1741 |
#, php-format
|
1742 |
+
msgid "Lockout for %s was removed"
|
1743 |
msgstr ""
|
1744 |
|
1745 |
+
#: ../dashboard.php:584
|
1746 |
+
msgid "Email has been sent to"
|
1747 |
msgstr ""
|
1748 |
|
1749 |
+
#: ../dashboard.php:587
|
1750 |
+
msgid "Unable to send email to"
|
1751 |
msgstr ""
|
1752 |
|
1753 |
+
#: ../dashboard.php:653
|
1754 |
+
msgid "Default settings have been loaded"
|
1755 |
msgstr ""
|
1756 |
|
1757 |
+
#: ../dashboard.php:847 ../dashboard.php:1104 ../dashboard.php:3577 ../dashboard.
|
1758 |
+
#: php:4031
|
1759 |
+
msgid "Date"
|
1760 |
msgstr ""
|
1761 |
|
1762 |
+
#: ../dashboard.php:848 ../dashboard.php:1105
|
1763 |
+
msgid "Event"
|
1764 |
msgstr ""
|
1765 |
|
1766 |
+
#: ../dashboard.php:849
|
1767 |
+
msgid "Additional Details"
|
1768 |
msgstr ""
|
1769 |
|
1770 |
+
#: ../dashboard.php:850 ../dashboard.php:1106 ../dashboard.php:4036
|
1771 |
+
msgid "Local User"
|
1772 |
msgstr ""
|
1773 |
|
1774 |
+
#: ../dashboard.php:851
|
1775 |
+
msgid "User login"
|
1776 |
msgstr ""
|
1777 |
|
1778 |
+
#: ../dashboard.php:852 ../dashboard.php:3582
|
1779 |
+
msgid "User ID"
|
|
|
|
|
1780 |
msgstr ""
|
1781 |
|
1782 |
+
#: ../dashboard.php:853 ../dashboard.php:1107
|
1783 |
+
msgid "Username"
|
1784 |
msgstr ""
|
1785 |
|
1786 |
+
#: ../dashboard.php:959 ../dashboard.php:2370
|
1787 |
+
msgid "View all"
|
1788 |
msgstr ""
|
1789 |
|
1790 |
+
#: ../dashboard.php:970
|
1791 |
+
msgid "New users"
|
1792 |
msgstr ""
|
1793 |
|
1794 |
+
#: ../dashboard.php:976 ../dashboard.php:4062
|
1795 |
+
msgid "Suspicious activity"
|
1796 |
msgstr ""
|
1797 |
|
1798 |
+
#: ../dashboard.php:978 ../common.php:1365
|
1799 |
+
msgid "IP blocked"
|
1800 |
msgstr ""
|
1801 |
|
1802 |
+
#: ../dashboard.php:980 ../dashboard.php:1764 ../dashboard.php:4064 ../settings.
|
1803 |
+
#: php:400 ../settings.php:1085
|
1804 |
+
msgid "Logged in users"
|
1805 |
msgstr ""
|
1806 |
|
1807 |
+
#: ../dashboard.php:981 ../dashboard.php:4065
|
1808 |
+
msgid "Not logged in visitors"
|
1809 |
msgstr ""
|
1810 |
|
1811 |
+
#: ../dashboard.php:983
|
1812 |
+
msgid "My activity"
|
1813 |
msgstr ""
|
1814 |
|
1815 |
+
#: ../dashboard.php:984 ../dashboard.php:4075
|
1816 |
+
msgid "My IP"
|
1817 |
msgstr ""
|
1818 |
|
1819 |
+
#: ../dashboard.php:1129 ../dashboard.php:4099
|
1820 |
+
msgid "Export"
|
1821 |
msgstr ""
|
1822 |
|
1823 |
+
#: ../dashboard.php:1134
|
1824 |
+
msgid "No activity has been logged."
|
1825 |
msgstr ""
|
1826 |
|
1827 |
+
#: ../dashboard.php:1145
|
1828 |
+
msgid "Search for IP or username"
|
1829 |
msgstr ""
|
1830 |
|
1831 |
+
#: ../dashboard.php:1148
|
1832 |
+
msgid "Request ID"
|
1833 |
msgstr ""
|
1834 |
|
1835 |
+
#: ../dashboard.php:1149
|
1836 |
+
msgid "Search in URL"
|
1837 |
msgstr ""
|
1838 |
|
1839 |
+
#: ../dashboard.php:1156
|
1840 |
+
msgid "Filter"
|
1841 |
msgstr ""
|
1842 |
|
1843 |
+
#: ../dashboard.php:1400 ../common.php:1424
|
1844 |
+
msgid "Locked out"
|
1845 |
msgstr ""
|
1846 |
|
1847 |
+
#: ../dashboard.php:1432
|
1848 |
+
msgid "Abuse email:"
|
1849 |
msgstr ""
|
1850 |
|
1851 |
+
#: ../dashboard.php:1438
|
1852 |
+
msgid "Network:"
|
1853 |
msgstr ""
|
1854 |
|
1855 |
+
#: ../dashboard.php:1454
|
1856 |
+
msgid "Add network to the Black List"
|
1857 |
msgstr ""
|
1858 |
|
1859 |
+
#: ../dashboard.php:1460
|
1860 |
+
msgid "Add IP to the Black List"
|
1861 |
msgstr ""
|
1862 |
|
1863 |
+
#: ../dashboard.php:1528 ../dashboard.php:1618
|
1864 |
+
msgid "Registered"
|
1865 |
msgstr ""
|
1866 |
|
1867 |
+
#: ../dashboard.php:1540
|
1868 |
+
msgid "Activated"
|
1869 |
msgstr ""
|
1870 |
|
1871 |
+
#: ../dashboard.php:1560
|
1872 |
+
msgid "Last seen"
|
1873 |
msgstr ""
|
1874 |
|
1875 |
+
#: ../dashboard.php:1564
|
1876 |
+
msgid "Active sessions"
|
1877 |
msgstr ""
|
1878 |
|
1879 |
+
#: ../dashboard.php:1615
|
1880 |
+
msgid "Comments"
|
1881 |
msgstr ""
|
1882 |
|
1883 |
+
#: ../dashboard.php:1616
|
1884 |
+
msgid "Last login"
|
1885 |
msgstr ""
|
1886 |
|
1887 |
+
#: ../dashboard.php:1617
|
1888 |
+
msgid "Failed login attempts"
|
1889 |
msgstr ""
|
1890 |
|
1891 |
+
#: ../dashboard.php:1706
|
1892 |
+
msgid "Cerber Quick View"
|
1893 |
+
msgstr ""
|
|
|
|
|
|
|
1894 |
|
1895 |
+
#: ../dashboard.php:1745 ../dashboard.php:1775
|
1896 |
+
msgid "active"
|
1897 |
msgstr ""
|
1898 |
|
1899 |
+
#: ../dashboard.php:1745
|
1900 |
+
msgid "deactivate"
|
1901 |
msgstr ""
|
1902 |
|
1903 |
+
#: ../dashboard.php:1749
|
1904 |
+
msgid "not active"
|
1905 |
msgstr ""
|
1906 |
|
1907 |
+
#: ../dashboard.php:1752 ../dashboard.php:1770
|
1908 |
+
msgid "disabled"
|
1909 |
msgstr ""
|
1910 |
|
1911 |
+
#: ../dashboard.php:1758
|
1912 |
+
msgid "failed attempts"
|
1913 |
msgstr ""
|
1914 |
|
1915 |
+
#: ../dashboard.php:1758 ../dashboard.php:1759
|
1916 |
+
msgid "in 24 hours"
|
1917 |
msgstr ""
|
1918 |
|
1919 |
+
#: ../dashboard.php:1758 ../dashboard.php:1759
|
1920 |
+
msgid "view all"
|
1921 |
msgstr ""
|
1922 |
|
1923 |
+
#: ../dashboard.php:1759
|
1924 |
+
msgid "lockouts"
|
1925 |
msgstr ""
|
1926 |
|
1927 |
+
#: ../dashboard.php:1761
|
1928 |
+
msgid "Lockouts at the moment"
|
1929 |
msgstr ""
|
1930 |
|
1931 |
+
#: ../dashboard.php:1762
|
1932 |
+
msgid "Last lockout"
|
1933 |
msgstr ""
|
1934 |
|
1935 |
+
#: ../dashboard.php:1764
|
1936 |
+
msgid "user"
|
1937 |
+
msgid_plural "users"
|
1938 |
+
msgstr[0] ""
|
1939 |
+
msgstr[1] ""
|
1940 |
|
1941 |
+
#: ../dashboard.php:1766 ../dashboard.php:1767 ../dashboard.php:2669
|
1942 |
+
msgid "entry"
|
1943 |
+
msgid_plural "entries"
|
1944 |
+
msgstr[0] ""
|
1945 |
+
msgstr[1] ""
|
1946 |
|
1947 |
+
#: ../dashboard.php:1768 ../settings.php:244
|
1948 |
+
msgid "Citadel mode"
|
1949 |
msgstr ""
|
1950 |
|
1951 |
+
#: ../dashboard.php:1770
|
1952 |
+
msgid "enabled"
|
|
|
|
|
1953 |
msgstr ""
|
1954 |
|
1955 |
+
#: ../dashboard.php:1775
|
1956 |
+
msgid "no connection"
|
1957 |
msgstr ""
|
1958 |
|
1959 |
+
#: ../dashboard.php:1792
|
1960 |
+
msgctxt "Example: Last malware scan: 23 Jan 2018"
|
1961 |
+
msgid "Last malware scan"
|
1962 |
msgstr ""
|
1963 |
|
1964 |
+
#: ../dashboard.php:1811
|
1965 |
+
msgid "Integrity"
|
1966 |
msgstr ""
|
1967 |
|
1968 |
+
#: ../dashboard.php:1814
|
1969 |
+
msgid "A new version is available"
|
1970 |
msgstr ""
|
1971 |
|
1972 |
+
#: ../dashboard.php:2174 ../settings.php:231
|
1973 |
+
msgid "My site is behind a reverse proxy"
|
1974 |
msgstr ""
|
1975 |
|
1976 |
+
#: ../dashboard.php:2350
|
1977 |
+
msgid "in the last 24 hours"
|
1978 |
msgstr ""
|
1979 |
|
1980 |
+
#: ../dashboard.php:2373
|
1981 |
+
msgid "Recently locked out IP addresses"
|
1982 |
msgstr ""
|
1983 |
|
1984 |
+
#: ../dashboard.php:2484
|
1985 |
+
msgid "Attention! Citadel mode is now active. Nobody is able to log in."
|
1986 |
msgstr ""
|
1987 |
|
1988 |
+
#: ../dashboard.php:2485
|
1989 |
+
msgid "Deactivate"
|
1990 |
msgstr ""
|
1991 |
|
1992 |
+
#: ../dashboard.php:2486 ../dashboard.php:2895
|
1993 |
+
msgid "View Activity"
|
1994 |
msgstr ""
|
1995 |
|
1996 |
+
#: ../dashboard.php:2501
|
1997 |
+
msgid "Settings saved"
|
1998 |
msgstr ""
|
1999 |
|
2000 |
+
#: ../dashboard.php:2577
|
2001 |
+
msgid "Create Alert"
|
2002 |
msgstr ""
|
2003 |
|
2004 |
+
#: ../dashboard.php:2581
|
2005 |
+
msgid "Delete Alert"
|
2006 |
msgstr ""
|
2007 |
|
2008 |
+
#: ../dashboard.php:2614
|
2009 |
+
msgid "The alert has been created"
|
2010 |
msgstr ""
|
2011 |
|
2012 |
+
#: ../dashboard.php:2618
|
2013 |
+
msgid "The alert has been deleted"
|
2014 |
msgstr ""
|
2015 |
|
2016 |
+
#: ../dashboard.php:2692
|
2017 |
+
msgid "Main settings"
|
2018 |
msgstr ""
|
2019 |
|
2020 |
+
#: ../dashboard.php:2828
|
2021 |
+
msgid "Are you sure you want to delete selected files?"
|
2022 |
msgstr ""
|
2023 |
|
2024 |
+
#: ../dashboard.php:2829
|
2025 |
+
msgid "These files have been moved to the quarantine"
|
2026 |
msgstr ""
|
2027 |
|
2028 |
+
#: ../dashboard.php:2832
|
2029 |
+
msgid "Do you want to add selected files to the ignore list?"
|
2030 |
msgstr ""
|
2031 |
|
2032 |
+
#: ../dashboard.php:2833
|
2033 |
+
msgid "These files have been added to the ignore list"
|
2034 |
msgstr ""
|
2035 |
|
2036 |
+
#: ../dashboard.php:2835
|
2037 |
+
msgid "Some errors occurred"
|
2038 |
msgstr ""
|
2039 |
|
2040 |
+
#: ../dashboard.php:2836
|
2041 |
+
msgid "All files have been processed"
|
|
|
|
|
2042 |
msgstr ""
|
2043 |
|
2044 |
+
#: ../dashboard.php:2897 ../dashboard.php:4777
|
2045 |
+
msgid "Sessions"
|
2046 |
msgstr ""
|
2047 |
|
2048 |
+
#: ../dashboard.php:3234
|
2049 |
+
msgid "Role-based rules are configured"
|
2050 |
msgstr ""
|
2051 |
|
2052 |
+
#: ../dashboard.php:3284
|
2053 |
+
msgid "Start typing here to find a country"
|
2054 |
msgstr ""
|
2055 |
|
2056 |
+
#: ../dashboard.php:3291
|
2057 |
+
msgid "Save all rules"
|
2058 |
msgstr ""
|
2059 |
|
2060 |
+
#: ../dashboard.php:3304
|
2061 |
+
#, php-format
|
2062 |
+
msgid "Permitted for one country"
|
2063 |
+
msgid_plural "Permitted for %d countries"
|
2064 |
+
msgstr[0] ""
|
2065 |
+
msgstr[1] ""
|
2066 |
|
2067 |
+
#: ../dashboard.php:3307
|
2068 |
+
#, php-format
|
2069 |
+
msgid "Not permitted for one country"
|
2070 |
+
msgid_plural "Not permitted for %d countries"
|
2071 |
+
msgstr[0] ""
|
2072 |
+
msgstr[1] ""
|
2073 |
|
2074 |
+
#: ../dashboard.php:3315
|
2075 |
+
msgid "No rule"
|
2076 |
msgstr ""
|
2077 |
|
2078 |
+
#: ../dashboard.php:3316
|
2079 |
+
msgid "Any country is permitted"
|
2080 |
msgstr ""
|
2081 |
|
2082 |
+
#: ../dashboard.php:3399
|
2083 |
+
msgid "Click on a country name to add it to the list of selected countries"
|
|
|
|
|
2084 |
msgstr ""
|
2085 |
|
2086 |
+
#: ../dashboard.php:3403
|
2087 |
+
#, php-format
|
2088 |
+
msgctxt "to is a marker of infinitive, e.g. \"to use it\""
|
2089 |
+
msgid "Selected countries are permitted to %s, other countries are not permitted to"
|
2090 |
msgstr ""
|
2091 |
|
2092 |
+
#: ../dashboard.php:3406
|
2093 |
+
#, php-format
|
2094 |
+
msgctxt "to is a marker of infinitive, e.g. \"to use it\""
|
2095 |
+
msgid "Selected countries are not permitted to %s, other countries are permitted to"
|
2096 |
msgstr ""
|
2097 |
|
2098 |
+
#: ../dashboard.php:3426
|
2099 |
+
msgid "Log into the website"
|
2100 |
msgstr ""
|
2101 |
|
2102 |
+
#: ../dashboard.php:3428
|
2103 |
+
msgid "All Users"
|
2104 |
msgstr ""
|
2105 |
|
2106 |
+
#: ../dashboard.php:3430
|
2107 |
+
msgid "Register on the website"
|
2108 |
msgstr ""
|
2109 |
|
2110 |
+
#: ../dashboard.php:3431
|
2111 |
+
msgid "Submit forms"
|
2112 |
msgstr ""
|
2113 |
|
2114 |
+
#: ../dashboard.php:3432
|
2115 |
+
msgid "Post comments"
|
|
|
|
|
2116 |
msgstr ""
|
2117 |
|
2118 |
+
#: ../dashboard.php:3433
|
2119 |
+
msgid "Use XML-RPC"
|
2120 |
msgstr ""
|
2121 |
|
2122 |
+
#: ../dashboard.php:3434
|
2123 |
+
msgid "Use REST API"
|
2124 |
msgstr ""
|
2125 |
|
2126 |
+
#: ../dashboard.php:3476
|
2127 |
+
msgid "Security rules have been updated"
|
2128 |
msgstr ""
|
2129 |
|
2130 |
+
#: ../dashboard.php:3576
|
2131 |
+
msgid "IP address"
|
2132 |
msgstr ""
|
2133 |
|
2134 |
+
#: ../dashboard.php:3583
|
2135 |
+
msgid "Page generation time"
|
|
|
2136 |
msgstr ""
|
2137 |
|
2138 |
+
#: ../dashboard.php:4032
|
2139 |
+
msgid "Request"
|
2140 |
msgstr ""
|
2141 |
|
2142 |
+
#: ../dashboard.php:4035
|
2143 |
+
msgid "User Agent"
|
2144 |
msgstr ""
|
2145 |
|
2146 |
+
#: ../dashboard.php:4052
|
2147 |
+
msgid "No requests have been logged."
|
2148 |
msgstr ""
|
2149 |
|
2150 |
+
#: ../dashboard.php:4060
|
2151 |
+
msgid "All requests"
|
2152 |
msgstr ""
|
2153 |
|
2154 |
+
#: ../dashboard.php:4063
|
2155 |
+
msgid "Errors"
|
2156 |
msgstr ""
|
2157 |
|
2158 |
+
#: ../dashboard.php:4068
|
2159 |
+
msgid "Form submissions"
|
2160 |
msgstr ""
|
2161 |
|
2162 |
+
#: ../dashboard.php:4070
|
2163 |
+
msgid "Page Not Found"
|
2164 |
msgstr ""
|
2165 |
|
2166 |
+
#: ../dashboard.php:4074
|
2167 |
+
msgid "My requests"
|
2168 |
msgstr ""
|
2169 |
|
2170 |
+
#: ../dashboard.php:4082
|
2171 |
+
msgid "Longer than"
|
2172 |
msgstr ""
|
2173 |
|
2174 |
+
#: ../dashboard.php:4092
|
2175 |
+
msgid "Advanced Search"
|
2176 |
msgstr ""
|
2177 |
|
2178 |
+
#: ../dashboard.php:4105
|
2179 |
+
msgid "Refresh"
|
|
|
2180 |
msgstr ""
|
2181 |
|
2182 |
+
#: ../dashboard.php:4140
|
2183 |
+
msgid "Not specified"
|
2184 |
msgstr ""
|
2185 |
|
2186 |
+
#: ../dashboard.php:4200
|
2187 |
+
msgid "Unknown Google's bot"
|
2188 |
msgstr ""
|
2189 |
|
2190 |
+
#: ../dashboard.php:4778
|
2191 |
+
msgid "Lockouts"
|
2192 |
msgstr ""
|
2193 |
|
2194 |
+
#: ../dashboard.php:4779
|
2195 |
+
msgid "Main Settings"
|
2196 |
msgstr ""
|
2197 |
|
2198 |
+
#: ../dashboard.php:4781
|
2199 |
+
msgid "Hardening"
|
2200 |
msgstr ""
|
2201 |
|
2202 |
+
#: ../dashboard.php:4783 ../settings.php:265
|
2203 |
+
msgid "Notifications"
|
2204 |
msgstr ""
|
2205 |
|
2206 |
+
#: ../dashboard.php:4826
|
2207 |
+
msgid "Anti-spam and bot detection settings"
|
2208 |
msgstr ""
|
2209 |
|
2210 |
+
#: ../dashboard.php:4828
|
2211 |
+
msgid "Anti-spam engine"
|
2212 |
msgstr ""
|
2213 |
|
2214 |
+
#: ../dashboard.php:4848
|
2215 |
+
msgid "Live Traffic"
|
2216 |
msgstr ""
|
2217 |
|
2218 |
+
#: ../dashboard.php:4862
|
2219 |
+
msgid "Data Shield Policies"
|
2220 |
msgstr ""
|
2221 |
|
2222 |
+
#: ../dashboard.php:4864
|
2223 |
+
msgid "Accounts & Roles"
|
2224 |
msgstr ""
|
2225 |
|
2226 |
+
#: ../dashboard.php:4865
|
2227 |
+
msgid "Site Settings"
|
2228 |
msgstr ""
|
2229 |
|
2230 |
+
#: ../dashboard.php:4874
|
2231 |
+
msgid "Role-based"
|
2232 |
msgstr ""
|
2233 |
|
2234 |
+
#: ../dashboard.php:4875
|
2235 |
+
msgid "Global"
|
2236 |
msgstr ""
|
2237 |
|
2238 |
+
#: ../dashboard.php:4894
|
2239 |
+
msgid "Countries"
|
2240 |
msgstr ""
|
2241 |
|
2242 |
+
#: ../dashboard.php:4909
|
2243 |
+
msgid "Security Scanner"
|
2244 |
msgstr ""
|
2245 |
|
2246 |
+
#: ../dashboard.php:4911
|
2247 |
+
msgid "Scheduling"
|
2248 |
msgstr ""
|
2249 |
|
2250 |
+
#: ../dashboard.php:4912
|
2251 |
+
msgid "Cleaning up"
|
2252 |
msgstr ""
|
2253 |
|
2254 |
+
#: ../dashboard.php:4913
|
2255 |
+
msgid "Ignore List"
|
2256 |
msgstr ""
|
2257 |
|
2258 |
+
#: ../dashboard.php:4914
|
2259 |
+
msgid "Quarantine"
|
|
|
|
|
2260 |
msgstr ""
|
2261 |
|
2262 |
+
#: ../dashboard.php:4915
|
2263 |
+
msgid "Analytics"
|
2264 |
msgstr ""
|
2265 |
|
2266 |
+
#: ../dashboard.php:4964
|
2267 |
+
msgid "Manage Settings"
|
2268 |
msgstr ""
|
2269 |
|
2270 |
+
#: ../dashboard.php:4965
|
2271 |
+
msgid "Diagnostic"
|
2272 |
msgstr ""
|
2273 |
|
2274 |
+
#: ../dashboard.php:4966
|
2275 |
+
msgid "Diagnostic Log"
|
2276 |
msgstr ""
|
2277 |
|
2278 |
+
#: ../dashboard.php:4967
|
2279 |
+
msgid "Changelog"
|
2280 |
msgstr ""
|
2281 |
|
2282 |
+
#: ../dashboard.php:4968
|
2283 |
+
msgid "License"
|
2284 |
msgstr ""
|
2285 |
|
2286 |
+
#: ../dashboard.php:5069
|
2287 |
+
msgid "Help"
|
|
|
|
|
2288 |
msgstr ""
|
2289 |
|
2290 |
+
#: ../dashboard.php:5118
|
2291 |
+
msgid "Incorrect IP address or IP range"
|
2292 |
msgstr ""
|
2293 |
|
2294 |
+
#: ../dashboard.php:5122
|
2295 |
+
msgid "The IP address you are trying to add is already in the list"
|
|
|
|
|
2296 |
msgstr ""
|
2297 |
|
2298 |
+
#: ../dashboard.php:5257
|
2299 |
+
msgid "These features are available in a professional version of the plugin."
|
2300 |
msgstr ""
|
2301 |
|
2302 |
+
#: ../dashboard.php:5258
|
2303 |
+
msgid "Know more about all advantages at"
|
2304 |
msgstr ""
|
2305 |
|
2306 |
+
#: ../dashboard.php:5293
|
2307 |
+
msgid "Log In"
|
2308 |
msgstr ""
|
2309 |
|
2310 |
+
#: ../dashboard.php:5294
|
2311 |
+
msgid "Log Out"
|
2312 |
msgstr ""
|
2313 |
|
2314 |
+
#: ../dashboard.php:5295
|
2315 |
+
msgid "Register"
|
2316 |
msgstr ""
|
2317 |
|
2318 |
+
#: ../dashboard.php:5298
|
2319 |
+
msgid "WooCommerce Log In"
|
2320 |
msgstr ""
|
2321 |
|
2322 |
+
#: ../dashboard.php:5299
|
2323 |
+
msgid "WooCommerce Log Out"
|
2324 |
msgstr ""
|
2325 |
|
2326 |
+
#: ../dashboard.php:5338 ../dashboard.php:5339
|
2327 |
+
msgid "Add to menu"
|
2328 |
msgstr ""
|
2329 |
|
2330 |
+
#: ../common.php:209
|
2331 |
+
msgid "Check for requests"
|
2332 |
msgstr ""
|
2333 |
|
2334 |
+
#: ../common.php:307
|
2335 |
+
msgid "Malicious activities mitigated"
|
2336 |
msgstr ""
|
2337 |
|
2338 |
+
#: ../common.php:310
|
2339 |
+
msgid "Spam comments denied"
|
2340 |
msgstr ""
|
2341 |
|
2342 |
+
#: ../common.php:311
|
2343 |
+
msgid "Spam form submissions denied"
|
2344 |
msgstr ""
|
2345 |
|
2346 |
+
#: ../common.php:312
|
2347 |
+
msgid "Malicious IP addresses detected"
|
2348 |
msgstr ""
|
2349 |
|
2350 |
+
#: ../common.php:313
|
2351 |
+
msgid "Lockouts occurred"
|
2352 |
msgstr ""
|
2353 |
|
2354 |
+
#: ../common.php:1357
|
2355 |
+
msgid "User created"
|
2356 |
msgstr ""
|
2357 |
|
2358 |
+
#: ../common.php:1358
|
2359 |
+
msgid "User registered"
|
2360 |
msgstr ""
|
2361 |
|
2362 |
+
#: ../common.php:1359
|
2363 |
+
msgid "User deleted"
|
2364 |
msgstr ""
|
2365 |
|
2366 |
+
#: ../common.php:1360
|
2367 |
+
msgid "Logged in"
|
2368 |
msgstr ""
|
2369 |
|
2370 |
+
#: ../common.php:1361
|
2371 |
+
msgid "Logged out"
|
2372 |
msgstr ""
|
2373 |
|
2374 |
+
#: ../common.php:1362
|
2375 |
+
msgid "Login failed"
|
2376 |
msgstr ""
|
2377 |
|
2378 |
+
#: ../common.php:1366
|
2379 |
+
msgid "IP subnet blocked"
|
2380 |
msgstr ""
|
2381 |
|
2382 |
+
#: ../common.php:1369
|
2383 |
+
msgid "Citadel activated!"
|
2384 |
msgstr ""
|
2385 |
|
2386 |
+
#: ../common.php:1370
|
2387 |
+
msgid "Spam comment denied"
|
|
|
|
|
2388 |
msgstr ""
|
2389 |
|
2390 |
+
#: ../common.php:1371
|
2391 |
+
msgid "Spam form submission denied"
|
2392 |
msgstr ""
|
2393 |
|
2394 |
+
#: ../common.php:1372
|
2395 |
+
msgid "Form submission denied"
|
2396 |
msgstr ""
|
2397 |
|
2398 |
+
#: ../common.php:1373
|
2399 |
+
msgid "Comment denied"
|
|
|
|
|
|
|
2400 |
msgstr ""
|
2401 |
|
2402 |
+
#: ../common.php:1382
|
2403 |
+
msgid "Password changed"
|
2404 |
msgstr ""
|
2405 |
|
2406 |
+
#: ../common.php:1383
|
2407 |
+
msgid "Password reset requested"
|
2408 |
msgstr ""
|
2409 |
|
2410 |
+
#: ../common.php:1385
|
2411 |
+
msgid "reCAPTCHA verification failed"
|
2412 |
msgstr ""
|
2413 |
|
2414 |
+
#: ../common.php:1386
|
2415 |
+
msgid "reCAPTCHA settings are incorrect"
|
2416 |
msgstr ""
|
2417 |
|
2418 |
+
#: ../common.php:1387
|
2419 |
+
msgid "Request to the Google reCAPTCHA service failed"
|
|
|
|
|
2420 |
msgstr ""
|
2421 |
|
2422 |
+
#: ../common.php:1389 ../common.php:1505
|
2423 |
+
msgid "Attempt to access prohibited URL"
|
2424 |
msgstr ""
|
2425 |
|
2426 |
+
#: ../common.php:1390 ../common.php:1506
|
2427 |
+
msgid "Attempt to log in with non-existing username"
|
2428 |
msgstr ""
|
2429 |
|
2430 |
+
#: ../common.php:1391 ../common.php:1507
|
2431 |
+
msgid "Attempt to log in with prohibited username"
|
2432 |
msgstr ""
|
2433 |
|
2434 |
+
#: ../common.php:1393
|
2435 |
+
msgid "Attempt to log in denied"
|
2436 |
msgstr ""
|
2437 |
|
2438 |
+
#: ../common.php:1394
|
2439 |
+
msgid "Attempt to register denied"
|
2440 |
msgstr ""
|
2441 |
|
2442 |
+
#: ../common.php:1395 ../common.php:1511
|
2443 |
+
msgid "Probing for vulnerable code"
|
2444 |
msgstr ""
|
2445 |
|
2446 |
+
#: ../common.php:1396
|
2447 |
+
msgid "Attempt to upload malicious file denied"
|
2448 |
msgstr ""
|
2449 |
|
2450 |
+
#: ../common.php:1397
|
2451 |
+
msgid "File upload denied"
|
2452 |
msgstr ""
|
2453 |
|
2454 |
+
#: ../common.php:1399
|
2455 |
+
msgid "Request to REST API denied"
|
2456 |
msgstr ""
|
2457 |
|
2458 |
+
#: ../common.php:1400
|
2459 |
+
msgid "XML-RPC request denied"
|
2460 |
msgstr ""
|
2461 |
|
2462 |
+
#: ../common.php:1402
|
2463 |
+
msgid "User creation denied"
|
2464 |
msgstr ""
|
2465 |
|
2466 |
+
#: ../common.php:1403
|
2467 |
+
msgid "User row update denied"
|
2468 |
msgstr ""
|
2469 |
|
2470 |
+
#: ../common.php:1404
|
2471 |
+
msgid "Role update denied"
|
2472 |
msgstr ""
|
2473 |
|
2474 |
+
#: ../common.php:1405
|
2475 |
+
msgid "Setting update denied"
|
|
|
2476 |
msgstr ""
|
2477 |
|
2478 |
+
#: ../common.php:1406
|
2479 |
+
msgid "User metadata update denied"
|
2480 |
msgstr ""
|
2481 |
|
2482 |
+
#: ../common.php:1408
|
2483 |
+
msgid "Malicious request denied"
|
2484 |
msgstr ""
|
2485 |
|
2486 |
+
#: ../common.php:1411
|
2487 |
+
msgid "User activated"
|
2488 |
msgstr ""
|
2489 |
|
2490 |
+
#: ../common.php:1414
|
2491 |
+
msgid "Invalid master credentials"
|
2492 |
msgstr ""
|
2493 |
|
2494 |
+
#: ../common.php:1422
|
2495 |
+
msgid "Bot detected"
|
2496 |
msgstr ""
|
2497 |
|
2498 |
+
#: ../common.php:1423
|
2499 |
+
msgid "Citadel mode is active"
|
2500 |
msgstr ""
|
2501 |
|
2502 |
+
#: ../common.php:1425
|
2503 |
+
msgid "IP address is locked out"
|
2504 |
msgstr ""
|
2505 |
|
2506 |
+
#: ../common.php:1426
|
2507 |
+
msgid "IP blacklisted"
|
2508 |
msgstr ""
|
2509 |
|
2510 |
+
#: ../common.php:1427
|
2511 |
+
msgid "Malicious activity detected"
|
|
|
|
|
2512 |
msgstr ""
|
2513 |
|
2514 |
+
#: ../common.php:1428
|
2515 |
+
msgid "Blocked by country rule"
|
2516 |
msgstr ""
|
2517 |
|
2518 |
+
#: ../common.php:1429
|
2519 |
+
msgid "Limit reached"
|
2520 |
msgstr ""
|
2521 |
|
2522 |
+
#: ../common.php:1430
|
2523 |
+
msgid "Multiple suspicious activities"
|
2524 |
msgstr ""
|
2525 |
|
2526 |
+
#: ../common.php:1431
|
2527 |
+
msgid "Denied"
|
2528 |
msgstr ""
|
2529 |
|
2530 |
+
#: ../common.php:1433
|
2531 |
+
msgid "Suspicious number of fields"
|
|
|
|
|
2532 |
msgstr ""
|
2533 |
|
2534 |
+
#: ../common.php:1434
|
2535 |
+
msgid "Suspicious number of nested values"
|
2536 |
msgstr ""
|
2537 |
|
2538 |
+
#: ../common.php:1435 ../common.php:1512
|
2539 |
+
msgid "Malicious code detected"
|
2540 |
msgstr ""
|
2541 |
|
2542 |
+
#: ../common.php:1436
|
2543 |
+
msgid "Suspicious SQL code detected"
|
2544 |
msgstr ""
|
2545 |
|
2546 |
+
#: ../common.php:1437
|
2547 |
+
msgid "Suspicious JavaScript code detected"
|
2548 |
msgstr ""
|
2549 |
|
2550 |
+
#: ../common.php:1438
|
2551 |
+
msgid "Blocked by administrator"
|
|
|
|
|
2552 |
msgstr ""
|
2553 |
|
2554 |
+
#: ../common.php:1439
|
2555 |
+
msgid "Site policy enforcement"
|
2556 |
msgstr ""
|
2557 |
|
2558 |
+
#: ../common.php:1440
|
2559 |
+
msgid "2FA code verified"
|
2560 |
msgstr ""
|
2561 |
|
2562 |
+
#: ../common.php:1441
|
2563 |
+
msgid "Initiated by the user"
|
|
|
|
|
2564 |
msgstr ""
|
2565 |
|
2566 |
+
#: ../common.php:1444
|
2567 |
+
msgid "Email address is prohibited"
|
2568 |
msgstr ""
|
2569 |
|
2570 |
+
#: ../common.php:1446
|
2571 |
+
msgid "Permission denied"
|
2572 |
msgstr ""
|
2573 |
|
2574 |
+
#: ../common.php:1448
|
2575 |
+
msgid "Invalid user"
|
2576 |
msgstr ""
|
2577 |
|
2578 |
+
#: ../common.php:1449
|
2579 |
+
msgid "Incorrect password"
|
|
|
|
|
2580 |
msgstr ""
|
2581 |
|
2582 |
+
#: ../common.php:1450
|
2583 |
+
msgid "IP address is not allowed"
|
2584 |
msgstr ""
|
2585 |
|
2586 |
+
#: ../common.php:1453
|
2587 |
+
msgid "IP whitelisted"
|
2588 |
msgstr ""
|
2589 |
|
2590 |
+
#: ../common.php:1503
|
2591 |
+
msgid "Limit on login attempts is reached"
|
2592 |
msgstr ""
|
2593 |
|
2594 |
+
#: ../common.php:1504
|
2595 |
+
msgid "Attempt to access"
|
2596 |
msgstr ""
|
2597 |
|
2598 |
+
#: ../common.php:1508
|
2599 |
+
msgid "Limit on failed reCAPTCHA verifications is reached"
|
2600 |
msgstr ""
|
2601 |
|
2602 |
+
#: ../common.php:1509
|
2603 |
+
msgid "Bot activity is detected"
|
2604 |
msgstr ""
|
2605 |
|
2606 |
+
#: ../common.php:1510
|
2607 |
+
msgid "Multiple suspicious activities were detected"
|
2608 |
msgstr ""
|
2609 |
|
2610 |
+
#: ../common.php:1513
|
2611 |
+
msgid "Attempt to upload a file with malicious code"
|
2612 |
msgstr ""
|
2613 |
|
2614 |
+
#: ../common.php:1515
|
2615 |
+
msgid "Multiple erroneous requests"
|
2616 |
msgstr ""
|
2617 |
|
2618 |
+
#: ../common.php:1516
|
2619 |
+
msgid "Multiple suspicious requests"
|
2620 |
msgstr ""
|
2621 |
|
2622 |
+
#. translators: Time difference between two dates, in seconds (sec=second). 1: Number of seconds
|
2623 |
+
#: ../common.php:1654
|
2624 |
+
#, php-format
|
2625 |
+
msgid "%s sec"
|
2626 |
+
msgid_plural "%s secs"
|
2627 |
+
msgstr[0] ""
|
2628 |
+
msgstr[1] ""
|
2629 |
|
2630 |
+
#: ../common.php:1661
|
2631 |
+
#, php-format
|
2632 |
+
msgid "%s ago"
|
2633 |
msgstr ""
|
2634 |
|
2635 |
+
#: ../common.php:1661
|
2636 |
+
#, php-format
|
2637 |
+
msgctxt "preposition of a period of time like: in 6 hours"
|
2638 |
+
msgid "in %s"
|
2639 |
msgstr ""
|
2640 |
|
2641 |
+
#: ../common.php:1768
|
2642 |
+
msgid "Bytes"
|
2643 |
msgstr ""
|
2644 |
|
2645 |
+
#: ../common.php:1874
|
2646 |
+
#, php-format
|
2647 |
+
msgid "A new version of %s is available. Please install it."
|
2648 |
msgstr ""
|
2649 |
|
2650 |
+
#: ../common.php:2704
|
2651 |
+
msgid "Unable to create the directory"
|
2652 |
msgstr ""
|
2653 |
|
2654 |
+
#: ../common.php:2709
|
2655 |
+
msgid "Destination folder access denied"
|
2656 |
msgstr ""
|
2657 |
|
2658 |
+
#: ../common.php:2712
|
2659 |
+
msgid "File not found"
|
2660 |
msgstr ""
|
2661 |
|
2662 |
+
#: ../common.php:2715
|
2663 |
+
msgid "Unable to copy the file"
|
2664 |
msgstr ""
|
2665 |
|
2666 |
+
#: ../common.php:2721
|
2667 |
+
msgid "Unable to delete the file"
|
|
|
|
|
2668 |
msgstr ""
|
2669 |
|
2670 |
+
#: ../settings.php:114
|
2671 |
+
msgid "All connected devices"
|
2672 |
msgstr ""
|
2673 |
|
2674 |
+
#: ../settings.php:117
|
2675 |
+
msgid "No devices found"
|
|
|
|
|
2676 |
msgstr ""
|
2677 |
|
2678 |
+
#: ../settings.php:121
|
2679 |
+
msgid "Not available"
|
2680 |
msgstr ""
|
2681 |
|
2682 |
+
#: ../settings.php:127
|
2683 |
msgid ""
|
2684 |
+
"Please enable Permalinks to use this feature. Set Permalink Settings to "
|
2685 |
+
"something other than Default."
|
2686 |
msgstr ""
|
2687 |
|
2688 |
+
#: ../settings.php:130
|
2689 |
+
msgid "Be careful about enabling these options."
|
2690 |
msgstr ""
|
2691 |
|
2692 |
+
#: ../settings.php:130
|
2693 |
+
msgid "If you forget your Custom login URL, you will be unable to log in."
|
2694 |
msgstr ""
|
2695 |
|
2696 |
+
#: ../settings.php:133
|
2697 |
+
msgid "These restrictions do not apply to IP addresses in the White IP Access List"
|
2698 |
msgstr ""
|
2699 |
|
2700 |
+
#: ../settings.php:137
|
2701 |
+
msgid "Plugin initialization"
|
2702 |
msgstr ""
|
2703 |
|
2704 |
+
#: ../settings.php:140
|
2705 |
+
msgid "Load security engine"
|
2706 |
msgstr ""
|
2707 |
|
2708 |
+
#: ../settings.php:143
|
2709 |
+
msgid "Legacy mode"
|
2710 |
msgstr ""
|
2711 |
|
2712 |
+
#: ../settings.php:144
|
2713 |
+
msgid "Standard mode"
|
2714 |
msgstr ""
|
2715 |
|
2716 |
+
#: ../settings.php:150
|
2717 |
+
msgid "Limit login attempts"
|
2718 |
msgstr ""
|
2719 |
|
2720 |
+
#: ../settings.php:153
|
2721 |
+
msgid "Limit"
|
2722 |
msgstr ""
|
2723 |
|
2724 |
+
#: ../settings.php:158
|
2725 |
+
msgid "Lockout duration"
|
2726 |
msgstr ""
|
2727 |
|
2728 |
+
#: ../settings.php:159 ../settings.php:260
|
2729 |
+
msgid "minutes"
|
2730 |
msgstr ""
|
2731 |
|
2732 |
+
#: ../settings.php:162
|
2733 |
+
msgid "Aggressive lockout"
|
2734 |
msgstr ""
|
2735 |
|
2736 |
+
#: ../settings.php:166 ../settings.php:528 ../settings.php:553 ../settings.php:741
|
2737 |
+
msgid "Use White IP Access List"
|
|
|
|
|
2738 |
msgstr ""
|
2739 |
|
2740 |
+
#: ../settings.php:167
|
2741 |
+
msgid "Apply limit login rules to IP addresses in the White IP Access List"
|
2742 |
msgstr ""
|
2743 |
|
2744 |
+
#: ../settings.php:173
|
2745 |
+
msgid "Proactive security rules"
|
2746 |
msgstr ""
|
2747 |
|
2748 |
+
#: ../settings.php:174
|
2749 |
+
msgid "Make your protection smarter!"
|
2750 |
msgstr ""
|
2751 |
|
2752 |
+
#: ../settings.php:177
|
2753 |
+
msgid "Block subnet"
|
|
|
|
|
2754 |
msgstr ""
|
2755 |
|
2756 |
+
#: ../settings.php:178
|
2757 |
+
msgid "Always block entire subnet Class C of intruders IP"
|
2758 |
msgstr ""
|
2759 |
|
2760 |
+
#: ../settings.php:182
|
2761 |
+
msgid "Non-existing users"
|
2762 |
msgstr ""
|
2763 |
|
2764 |
+
#: ../settings.php:183
|
2765 |
+
msgid "Immediately block IP when attempting to log in with a non-existing username"
|
2766 |
msgstr ""
|
2767 |
|
2768 |
+
#: ../settings.php:187
|
2769 |
+
msgid "Disable dashboard redirection"
|
2770 |
msgstr ""
|
2771 |
|
2772 |
+
#: ../settings.php:188
|
2773 |
+
msgid ""
|
2774 |
+
"Disable automatic redirection to the login page when /wp-admin/ is requested "
|
2775 |
+
"by an unauthorized request"
|
2776 |
msgstr ""
|
2777 |
|
2778 |
+
#: ../settings.php:192
|
2779 |
+
msgid "Request wp-login.php"
|
2780 |
msgstr ""
|
2781 |
|
2782 |
+
#: ../settings.php:193
|
2783 |
+
msgid "Immediately block IP after any request to wp-login.php"
|
2784 |
msgstr ""
|
2785 |
|
2786 |
+
#: ../settings.php:197
|
2787 |
+
msgid "Display 404 page"
|
2788 |
msgstr ""
|
2789 |
|
2790 |
+
#: ../settings.php:200
|
2791 |
+
msgid "Use 404 template from the active theme"
|
2792 |
msgstr ""
|
2793 |
|
2794 |
+
#: ../settings.php:201
|
2795 |
+
msgid "Display simple 404 page"
|
2796 |
msgstr ""
|
2797 |
|
2798 |
+
#: ../settings.php:208
|
2799 |
+
msgid "Custom login page"
|
2800 |
msgstr ""
|
2801 |
|
2802 |
+
#: ../settings.php:212
|
2803 |
+
msgid "Custom login URL"
|
|
|
|
|
2804 |
msgstr ""
|
2805 |
|
2806 |
+
#: ../settings.php:213
|
2807 |
+
msgid "must not overlap with the existing pages or posts slug"
|
2808 |
msgstr ""
|
2809 |
|
2810 |
+
#: ../settings.php:215
|
2811 |
+
msgid ""
|
2812 |
+
"Custom login URL may contain Latin alphanumeric characters, dashes and "
|
2813 |
+
"underscores only"
|
2814 |
msgstr ""
|
2815 |
|
2816 |
+
#: ../settings.php:220
|
2817 |
+
msgid "Disable wp-login.php"
|
2818 |
msgstr ""
|
2819 |
|
2820 |
+
#: ../settings.php:221
|
2821 |
+
msgid "Block direct access to wp-login.php and return HTTP 404 Not Found Error"
|
2822 |
msgstr ""
|
2823 |
|
2824 |
+
#: ../settings.php:227
|
2825 |
+
msgid "Site-specific settings"
|
2826 |
msgstr ""
|
2827 |
|
2828 |
+
#: ../settings.php:230
|
2829 |
+
msgid "Site connection"
|
2830 |
msgstr ""
|
2831 |
|
2832 |
+
#: ../settings.php:235
|
2833 |
+
msgid "Prefix for plugin cookies"
|
2834 |
msgstr ""
|
2835 |
|
2836 |
+
#: ../settings.php:236
|
2837 |
+
msgid "Prefix may contain only Latin alphanumeric characters and underscores"
|
2838 |
msgstr ""
|
2839 |
|
2840 |
+
#: ../settings.php:245
|
2841 |
+
msgid ""
|
2842 |
+
"In the Citadel mode nobody is able to log in except IPs from the White IP "
|
2843 |
+
"Access List. Active user sessions will not be affected."
|
2844 |
msgstr ""
|
2845 |
|
2846 |
+
#: ../settings.php:248
|
2847 |
+
msgid "Enable authentication log monitoring"
|
2848 |
msgstr ""
|
2849 |
|
2850 |
+
#: ../settings.php:254
|
2851 |
+
msgid "Threshold"
|
2852 |
msgstr ""
|
2853 |
|
2854 |
+
#: ../settings.php:267
|
2855 |
+
msgid "Send notification to admin email"
|
2856 |
msgstr ""
|
2857 |
|
2858 |
+
#: ../settings.php:280 ../settings.php:843
|
2859 |
+
msgid "Keep log records of not logged in visitors for"
|
2860 |
msgstr ""
|
2861 |
|
2862 |
+
#: ../settings.php:281 ../settings.php:287 ../settings.php:844 ../settings.php:
|
2863 |
+
#: 850 ../settings.php:921 ../settings.php:1112
|
2864 |
+
msgid "days"
|
2865 |
msgstr ""
|
2866 |
|
2867 |
+
#: ../settings.php:286 ../settings.php:849
|
2868 |
+
msgid "Keep log records of logged in users for"
|
2869 |
msgstr ""
|
2870 |
|
2871 |
+
#: ../settings.php:292
|
2872 |
+
msgid "Cerber Lab connection"
|
2873 |
msgstr ""
|
2874 |
|
2875 |
+
#: ../settings.php:293
|
2876 |
+
msgid "Send malicious IP addresses to the Cerber Lab"
|
2877 |
msgstr ""
|
2878 |
|
2879 |
+
#: ../settings.php:298
|
2880 |
+
msgid "Cerber Lab protocol"
|
2881 |
msgstr ""
|
2882 |
|
2883 |
+
#: ../settings.php:306
|
2884 |
+
msgid "Use file"
|
2885 |
msgstr ""
|
2886 |
|
2887 |
+
#: ../settings.php:307
|
2888 |
+
msgid "Write failed login attempts to the file"
|
2889 |
msgstr ""
|
2890 |
|
2891 |
+
#: ../settings.php:313
|
2892 |
+
msgid "Preferences"
|
2893 |
msgstr ""
|
2894 |
|
2895 |
+
#: ../settings.php:316
|
2896 |
+
msgid "Drill down IP"
|
2897 |
msgstr ""
|
2898 |
|
2899 |
+
#: ../settings.php:317
|
2900 |
+
msgid "Retrieve extra WHOIS information for IP"
|
2901 |
msgstr ""
|
2902 |
|
2903 |
+
#: ../settings.php:321
|
2904 |
+
msgid "Date format"
|
|
|
|
|
2905 |
msgstr ""
|
2906 |
|
2907 |
+
#: ../settings.php:322
|
2908 |
+
#, php-format
|
2909 |
+
msgid "if empty, the default format %s will be used"
|
2910 |
msgstr ""
|
2911 |
|
2912 |
+
#: ../settings.php:328
|
2913 |
+
msgid "Date format for CSV export"
|
2914 |
msgstr ""
|
2915 |
|
2916 |
+
#: ../settings.php:329
|
2917 |
+
msgid "Use ISO 8601 date format for CSV export files"
|
2918 |
msgstr ""
|
2919 |
|
2920 |
+
#: ../settings.php:333
|
2921 |
+
msgid "Use English"
|
2922 |
msgstr ""
|
2923 |
|
2924 |
+
#: ../settings.php:334
|
2925 |
+
msgid "Use English for admin interface"
|
|
|
|
|
2926 |
msgstr ""
|
2927 |
|
2928 |
+
#: ../settings.php:338
|
2929 |
+
msgid "My IP address"
|
2930 |
msgstr ""
|
2931 |
|
2932 |
+
#: ../settings.php:339
|
2933 |
+
msgid "Do not add my IP address to the White IP Access List upon plugin activation"
|
2934 |
msgstr ""
|
2935 |
|
2936 |
+
#: ../settings.php:350
|
2937 |
+
msgid "Hardening WordPress"
|
2938 |
msgstr ""
|
2939 |
|
2940 |
+
#: ../settings.php:354 ../settings.php:390
|
2941 |
+
msgid "Stop user enumeration"
|
2942 |
msgstr ""
|
2943 |
|
2944 |
+
#: ../settings.php:355
|
2945 |
+
msgid "Block access to user pages like /?author=n"
|
2946 |
msgstr ""
|
2947 |
|
2948 |
+
#: ../settings.php:359
|
2949 |
+
msgid "Protect admin scripts"
|
2950 |
msgstr ""
|
2951 |
|
2952 |
+
#: ../settings.php:360
|
2953 |
+
msgid "Block unauthorized access to load-scripts.php and load-styles.php"
|
2954 |
msgstr ""
|
2955 |
|
2956 |
+
#: ../settings.php:364
|
2957 |
+
msgid "Disable PHP in uploads"
|
2958 |
msgstr ""
|
2959 |
|
2960 |
+
#: ../settings.php:365
|
2961 |
+
msgid "Block execution of PHP scripts in the WordPress media folder"
|
|
|
|
|
2962 |
msgstr ""
|
2963 |
|
2964 |
+
#: ../settings.php:369
|
2965 |
+
msgid "Disable PHP error displaying"
|
2966 |
msgstr ""
|
2967 |
|
2968 |
+
#: ../settings.php:373
|
2969 |
+
msgid "Disable XML-RPC"
|
2970 |
msgstr ""
|
2971 |
|
2972 |
+
#: ../settings.php:374
|
2973 |
+
msgid "Block access to the XML-RPC server (including Pingbacks and Trackbacks)"
|
2974 |
msgstr ""
|
2975 |
|
2976 |
+
#: ../settings.php:378
|
2977 |
+
msgid "Disable feeds"
|
2978 |
msgstr ""
|
2979 |
|
2980 |
+
#: ../settings.php:379
|
2981 |
+
msgid "Block access to the RSS, Atom and RDF feeds"
|
|
|
|
|
2982 |
msgstr ""
|
2983 |
|
2984 |
+
#: ../settings.php:385
|
2985 |
+
msgid "Access to WordPress REST API"
|
2986 |
msgstr ""
|
2987 |
|
2988 |
+
#: ../settings.php:386
|
2989 |
+
msgid ""
|
2990 |
+
"Restrict or completely block access to the WordPress REST API according to "
|
2991 |
+
"your needs"
|
2992 |
msgstr ""
|
2993 |
|
2994 |
+
#: ../settings.php:391
|
2995 |
+
msgid "Block access to users' data via REST API"
|
2996 |
msgstr ""
|
2997 |
|
2998 |
+
#: ../settings.php:395
|
2999 |
+
msgid "Disable REST API"
|
3000 |
msgstr ""
|
3001 |
|
3002 |
+
#: ../settings.php:396
|
3003 |
+
msgid "Block access to WordPress REST API except any of the following"
|
3004 |
msgstr ""
|
3005 |
|
3006 |
+
#: ../settings.php:401
|
3007 |
+
msgid "Allow REST API for logged in users"
|
3008 |
msgstr ""
|
3009 |
|
3010 |
+
#: ../settings.php:406
|
3011 |
+
msgid "Allow REST API for these roles"
|
3012 |
msgstr ""
|
3013 |
|
3014 |
+
#: ../settings.php:411
|
3015 |
+
msgid "Allow these namespaces"
|
3016 |
msgstr ""
|
3017 |
|
3018 |
+
#: ../settings.php:415
|
3019 |
+
msgid ""
|
3020 |
+
"Specify REST API namespaces to be allowed if REST API is disabled. One "
|
3021 |
+
"string per line."
|
3022 |
msgstr ""
|
3023 |
|
3024 |
+
#: ../settings.php:423
|
3025 |
+
msgid "Protect user accounts"
|
3026 |
msgstr ""
|
3027 |
|
3028 |
+
#: ../settings.php:428
|
3029 |
+
msgid ""
|
3030 |
+
"Restrict user account creation and user management with the following "
|
3031 |
+
"policies"
|
3032 |
msgstr ""
|
3033 |
|
3034 |
+
#: ../settings.php:434
|
3035 |
+
msgid "User registrations are limited to these roles"
|
|
|
3036 |
msgstr ""
|
3037 |
|
3038 |
+
#: ../settings.php:440
|
3039 |
+
msgid "Users with these roles are permitted to create new accounts"
|
3040 |
msgstr ""
|
3041 |
|
3042 |
+
#: ../settings.php:445
|
3043 |
+
msgid "Users with these roles are permitted to change sensitive user data"
|
3044 |
msgstr ""
|
3045 |
|
3046 |
+
#: ../settings.php:450 ../settings.php:478 ../settings.php:507
|
3047 |
+
msgid "Do not apply these policies to the IP addresses in the White IP Access List"
|
3048 |
msgstr ""
|
3049 |
|
3050 |
+
#: ../settings.php:458
|
3051 |
+
msgid "Protect user roles"
|
3052 |
msgstr ""
|
3053 |
|
3054 |
+
#: ../settings.php:462
|
3055 |
+
msgid "Restrict roles and capabilities management with the following policies"
|
3056 |
msgstr ""
|
3057 |
|
3058 |
+
#: ../settings.php:468
|
3059 |
+
msgid "Users with these roles are permitted to add new roles"
|
3060 |
msgstr ""
|
3061 |
|
3062 |
+
#: ../settings.php:473
|
3063 |
+
msgid "Users with these roles are permitted to change role capabilities"
|
3064 |
msgstr ""
|
3065 |
|
3066 |
+
#: ../settings.php:486
|
3067 |
+
msgid "Protect site settings"
|
3068 |
msgstr ""
|
3069 |
|
3070 |
+
#: ../settings.php:490
|
3071 |
+
msgid "Restrict updating site settings with the following policies"
|
3072 |
msgstr ""
|
3073 |
|
3074 |
+
#: ../settings.php:496
|
3075 |
+
msgid "Users with these roles are permitted to change protected settings"
|
3076 |
msgstr ""
|
3077 |
|
3078 |
+
#: ../settings.php:501
|
3079 |
+
msgid "Protected settings"
|
3080 |
msgstr ""
|
3081 |
|
3082 |
+
#: ../settings.php:521
|
3083 |
+
msgid "Authorized users only"
|
3084 |
msgstr ""
|
3085 |
|
3086 |
+
#: ../settings.php:522
|
3087 |
+
msgid "Only registered and logged in website users have access to the website"
|
3088 |
msgstr ""
|
3089 |
|
3090 |
+
#: ../settings.php:529
|
3091 |
+
msgid "Do not apply these policy to the IP addresses in the White IP Access List"
|
3092 |
msgstr ""
|
3093 |
|
3094 |
+
#: ../settings.php:539 ../settings.php:1484
|
3095 |
+
msgid "Only registered and logged in users are allowed to view this website"
|
3096 |
msgstr ""
|
3097 |
|
3098 |
+
#: ../settings.php:544
|
3099 |
+
msgid "Redirect to URL"
|
3100 |
msgstr ""
|
3101 |
|
3102 |
+
#: ../settings.php:554
|
3103 |
+
msgid ""
|
3104 |
+
"Only users from IP addresses in the White IP Access List may register on the "
|
3105 |
+
"website"
|
3106 |
msgstr ""
|
3107 |
|
3108 |
+
#: ../settings.php:559
|
3109 |
+
msgid "User message"
|
3110 |
msgstr ""
|
3111 |
|
3112 |
+
#: ../settings.php:566
|
3113 |
+
msgid "Registration limit"
|
|
|
|
|
3114 |
msgstr ""
|
3115 |
|
3116 |
+
#: ../settings.php:572
|
3117 |
+
msgid "Restrict email addresses"
|
3118 |
msgstr ""
|
3119 |
|
3120 |
+
#: ../settings.php:575
|
3121 |
+
msgid "No restrictions"
|
3122 |
msgstr ""
|
3123 |
|
3124 |
+
#: ../settings.php:576
|
3125 |
+
msgid "Deny all email addresses that match the following"
|
3126 |
msgstr ""
|
3127 |
|
3128 |
+
#: ../settings.php:577
|
3129 |
+
msgid "Permit only email addresses that match the following"
|
|
|
3130 |
msgstr ""
|
3131 |
|
3132 |
+
#: ../settings.php:582
|
3133 |
+
msgid ""
|
3134 |
+
"Specify email addresses, wildcards or REGEX patterns. Use comma to separate "
|
3135 |
+
"items."
|
3136 |
msgstr ""
|
3137 |
|
3138 |
+
#: ../settings.php:582 ../settings.php:590
|
3139 |
+
msgid "To specify a REGEX pattern wrap a pattern in two forward slashes."
|
3140 |
msgstr ""
|
3141 |
|
3142 |
+
#: ../settings.php:589
|
3143 |
+
msgid "Prohibited usernames"
|
3144 |
msgstr ""
|
3145 |
|
3146 |
+
#: ../settings.php:590
|
3147 |
+
msgid ""
|
3148 |
+
"Usernames from this list are not allowed to log in or register. Any IP "
|
3149 |
+
"address, have tried to use any of these usernames, will be immediately "
|
3150 |
+
"blocked. Use comma to separate logins."
|
3151 |
msgstr ""
|
3152 |
|
3153 |
+
#: ../settings.php:598
|
3154 |
+
msgid "minutes (leave empty to use the default WordPress value)"
|
3155 |
msgstr ""
|
3156 |
|
3157 |
+
#: ../settings.php:604
|
3158 |
+
msgid "Sort users in dashboard"
|
3159 |
msgstr ""
|
3160 |
|
3161 |
+
#: ../settings.php:605
|
3162 |
+
msgid "by date of registration"
|
3163 |
msgstr ""
|
3164 |
|
3165 |
+
#: ../settings.php:613
|
3166 |
+
msgid "Personal Data"
|
3167 |
msgstr ""
|
3168 |
|
3169 |
+
#: ../settings.php:615
|
3170 |
+
msgid ""
|
3171 |
+
"These features help your organization to be in compliance with personal data "
|
3172 |
+
"protection laws"
|
3173 |
msgstr ""
|
3174 |
|
3175 |
+
#: ../settings.php:619
|
3176 |
+
msgid "Enable data erase"
|
3177 |
msgstr ""
|
3178 |
|
3179 |
+
#: ../settings.php:626
|
3180 |
+
msgid "Terminate user sessions"
|
3181 |
msgstr ""
|
3182 |
|
3183 |
+
#: ../settings.php:627
|
3184 |
+
msgid "Delete user sessions data when user data is erased"
|
3185 |
msgstr ""
|
3186 |
|
3187 |
+
#: ../settings.php:633
|
3188 |
+
msgid "Enable data export"
|
|
|
|
|
3189 |
msgstr ""
|
3190 |
|
3191 |
+
#: ../settings.php:640
|
3192 |
+
msgid "Include activity log events"
|
3193 |
msgstr ""
|
3194 |
|
3195 |
+
#: ../settings.php:646
|
3196 |
+
msgid "Include traffic log entries"
|
3197 |
msgstr ""
|
3198 |
|
3199 |
+
#: ../settings.php:649
|
3200 |
+
msgid "Request URL"
|
3201 |
msgstr ""
|
3202 |
|
3203 |
+
#: ../settings.php:650
|
3204 |
+
msgid "Form fields data"
|
|
|
|
|
3205 |
msgstr ""
|
3206 |
|
3207 |
+
#: ../settings.php:651
|
3208 |
+
msgid "Cookies"
|
3209 |
msgstr ""
|
3210 |
|
3211 |
+
#: ../settings.php:659
|
3212 |
+
msgid "Email notifications"
|
3213 |
msgstr ""
|
3214 |
|
3215 |
+
#: ../settings.php:664
|
3216 |
+
msgid "Lockout notifications"
|
3217 |
msgstr ""
|
3218 |
|
3219 |
+
#: ../settings.php:668 ../settings.php:715 ../settings.php:976
|
3220 |
+
msgid "Email Address"
|
|
|
|
|
3221 |
msgstr ""
|
3222 |
|
3223 |
+
#: ../settings.php:669 ../settings.php:717 ../settings.php:815 ../settings.php:978
|
3224 |
+
msgid "Use comma to specify multiple values"
|
3225 |
msgstr ""
|
3226 |
|
3227 |
+
#: ../settings.php:673
|
3228 |
+
#, php-format
|
3229 |
+
msgid "if empty, the website administrator email %s will be used"
|
3230 |
msgstr ""
|
3231 |
|
3232 |
+
#: ../settings.php:676
|
3233 |
+
msgid "Notification limit"
|
3234 |
msgstr ""
|
3235 |
|
3236 |
+
#: ../settings.php:677
|
3237 |
+
msgid "notifications are allowed per hour (0 means unlimited)"
|
3238 |
msgstr ""
|
3239 |
|
3240 |
+
#: ../settings.php:681
|
3241 |
+
msgid "New version is available"
|
3242 |
msgstr ""
|
3243 |
|
3244 |
+
#: ../settings.php:687
|
3245 |
+
msgid "Push notifications"
|
3246 |
msgstr ""
|
3247 |
|
3248 |
+
#: ../settings.php:688
|
3249 |
+
msgid "Get notified instantly with mobile and desktop notifications"
|
3250 |
msgstr ""
|
3251 |
|
3252 |
+
#: ../settings.php:692
|
3253 |
+
msgid "Pushbullet access token"
|
3254 |
msgstr ""
|
3255 |
|
3256 |
+
#: ../settings.php:695
|
3257 |
+
msgid "Pushbullet device"
|
3258 |
msgstr ""
|
3259 |
|
3260 |
+
#: ../settings.php:702
|
3261 |
+
msgid "Weekly reports"
|
3262 |
msgstr ""
|
3263 |
|
3264 |
+
#: ../settings.php:703
|
3265 |
+
msgid ""
|
3266 |
+
"Weekly report is a summary of all activities and suspicious events occurred "
|
3267 |
+
"during the last seven days"
|
3268 |
msgstr ""
|
3269 |
|
3270 |
+
#: ../settings.php:706
|
3271 |
+
msgid "Enable reporting"
|
3272 |
msgstr ""
|
3273 |
|
3274 |
+
#: ../settings.php:710
|
3275 |
+
msgid "Send reports on"
|
3276 |
msgstr ""
|
3277 |
|
3278 |
+
#: ../settings.php:716 ../settings.php:977
|
3279 |
+
msgid "if empty, the email addresses from the notification settings will be used"
|
3280 |
msgstr ""
|
3281 |
|
3282 |
+
#: ../settings.php:727
|
3283 |
+
msgid "Traffic Inspection"
|
3284 |
msgstr ""
|
3285 |
|
3286 |
+
#: ../settings.php:728
|
3287 |
+
msgid ""
|
3288 |
+
"Traffic Inspector is a context-aware web application firewall (WAF) that "
|
3289 |
+
"protects your website by recognizing and denying malicious HTTP requests"
|
3290 |
msgstr ""
|
3291 |
|
3292 |
+
#: ../settings.php:732
|
3293 |
+
msgid "Enable traffic inspection"
|
3294 |
msgstr ""
|
3295 |
|
3296 |
+
#: ../settings.php:736 ../settings.php:764
|
3297 |
+
msgid "Maximum compatibility"
|
3298 |
msgstr ""
|
3299 |
|
3300 |
+
#: ../settings.php:737 ../settings.php:765
|
3301 |
+
msgid "Maximum security"
|
3302 |
msgstr ""
|
3303 |
|
3304 |
+
#: ../settings.php:745
|
3305 |
+
msgid "Request whitelist"
|
3306 |
msgstr ""
|
3307 |
|
3308 |
+
#: ../settings.php:749
|
3309 |
+
msgid ""
|
3310 |
+
"Enter a request URI to exclude the request from inspection. One item per "
|
3311 |
+
"line."
|
3312 |
msgstr ""
|
3313 |
|
3314 |
+
#: ../settings.php:749 ../settings.php:799
|
3315 |
+
msgid "To specify a REGEX pattern, enclose a whole line in two braces."
|
3316 |
msgstr ""
|
3317 |
|
3318 |
+
#: ../settings.php:755
|
3319 |
+
msgid "Erroneous Request Shielding"
|
3320 |
msgstr ""
|
3321 |
|
3322 |
+
#: ../settings.php:757
|
3323 |
+
msgid ""
|
3324 |
+
"Block IP addresses that send excessive requests for non-existing pages or "
|
3325 |
+
"scan website for security breaches"
|
3326 |
msgstr ""
|
3327 |
|
3328 |
+
#: ../settings.php:760
|
3329 |
+
msgid "Enable error shielding"
|
3330 |
msgstr ""
|
3331 |
|
3332 |
+
#: ../settings.php:769
|
3333 |
+
msgid "Ignore logged in users"
|
3334 |
msgstr ""
|
3335 |
|
3336 |
+
#: ../settings.php:776
|
3337 |
+
msgid "Traffic Logging"
|
3338 |
msgstr ""
|
3339 |
|
3340 |
+
#: ../settings.php:777
|
3341 |
+
msgid ""
|
3342 |
+
"Enable optional traffic logging if you need to monitor suspicious and "
|
3343 |
+
"malicious activity or solve security issues"
|
3344 |
msgstr ""
|
3345 |
|
3346 |
+
#: ../settings.php:781
|
3347 |
+
msgid "Logging mode"
|
3348 |
msgstr ""
|
3349 |
|
3350 |
+
#: ../settings.php:784
|
3351 |
+
msgid "Logging disabled"
|
3352 |
msgstr ""
|
3353 |
|
3354 |
+
#: ../settings.php:785
|
3355 |
+
msgid "Minimal"
|
3356 |
msgstr ""
|
3357 |
|
3358 |
+
#: ../settings.php:786
|
3359 |
+
msgid "Smart"
|
3360 |
msgstr ""
|
3361 |
|
3362 |
+
#: ../settings.php:787
|
3363 |
+
msgid "All traffic"
|
3364 |
msgstr ""
|
3365 |
|
3366 |
+
#: ../settings.php:791
|
3367 |
+
msgid "Do not log known crawlers"
|
3368 |
msgstr ""
|
3369 |
|
3370 |
+
#: ../settings.php:795
|
3371 |
+
msgid "Do not log these locations"
|
3372 |
msgstr ""
|
3373 |
|
3374 |
+
#: ../settings.php:799
|
3375 |
+
msgid "Specify URL paths to exclude requests from logging. One item per line."
|
3376 |
msgstr ""
|
3377 |
|
3378 |
+
#: ../settings.php:802
|
3379 |
+
msgid "Do not log these User-Agents"
|
3380 |
msgstr ""
|
3381 |
|
3382 |
+
#: ../settings.php:806
|
3383 |
+
msgid "Specify User-Agents to exclude requests from logging. One item per line."
|
3384 |
msgstr ""
|
3385 |
|
3386 |
+
#: ../settings.php:809
|
3387 |
+
msgid "Save request fields"
|
3388 |
msgstr ""
|
3389 |
|
3390 |
+
#: ../settings.php:813
|
3391 |
+
msgid "Mask these form fields"
|
3392 |
msgstr ""
|
3393 |
|
3394 |
+
#: ../settings.php:820
|
3395 |
+
msgid "Save request headers"
|
3396 |
msgstr ""
|
3397 |
|
3398 |
+
#: ../settings.php:825
|
3399 |
+
msgid "Save $_SERVER"
|
3400 |
msgstr ""
|
3401 |
|
3402 |
+
#: ../settings.php:829
|
3403 |
+
msgid "Save request cookies"
|
3404 |
msgstr ""
|
3405 |
|
3406 |
+
#: ../settings.php:833
|
3407 |
+
msgid "Save software errors"
|
3408 |
msgstr ""
|
3409 |
|
3410 |
+
#: ../settings.php:837
|
3411 |
+
msgid "Page generation time threshold"
|
3412 |
msgstr ""
|
3413 |
|
3414 |
+
#: ../settings.php:838
|
3415 |
+
msgid "milliseconds"
|
3416 |
msgstr ""
|
3417 |
|
3418 |
+
#: ../settings.php:858
|
3419 |
+
msgid "Scanner settings"
|
3420 |
+
msgstr ""
|
3421 |
+
|
3422 |
+
#: ../settings.php:859
|
3423 |
msgid ""
|
3424 |
+
"The scanner monitors file changes, verifies the integrity of WordPress, "
|
3425 |
+
"plugins, and themes, and detects malware"
|
3426 |
msgstr ""
|
3427 |
|
3428 |
+
#: ../settings.php:863
|
3429 |
+
msgid "Custom signatures"
|
3430 |
+
msgstr ""
|
|
|
|
|
|
|
3431 |
|
3432 |
+
#: ../settings.php:867
|
3433 |
+
msgid ""
|
3434 |
+
"Specify custom PHP code signatures. One item per line. To specify a REGEX "
|
3435 |
+
"pattern, enclose a whole line in two braces."
|
3436 |
msgstr ""
|
3437 |
|
3438 |
+
#: ../settings.php:870
|
3439 |
+
msgid "Unwanted file extensions"
|
|
|
3440 |
msgstr ""
|
3441 |
|
3442 |
+
#: ../settings.php:874
|
3443 |
+
msgid ""
|
3444 |
+
"Specify file extensions to search for. Full scan only. Use comma to separate "
|
3445 |
+
"items."
|
3446 |
msgstr ""
|
3447 |
|
3448 |
+
#: ../settings.php:877
|
3449 |
+
msgid "Directories to exclude"
|
3450 |
msgstr ""
|
3451 |
|
3452 |
+
#: ../settings.php:881
|
3453 |
+
msgid "Specify directories to exclude from scanning. One directory per line."
|
|
|
3454 |
msgstr ""
|
3455 |
|
3456 |
+
#: ../settings.php:884
|
3457 |
+
msgid "Monitor new files"
|
3458 |
msgstr ""
|
3459 |
|
3460 |
+
#: ../settings.php:888 ../settings.php:897
|
3461 |
+
msgid "Executable files"
|
3462 |
msgstr ""
|
3463 |
|
3464 |
+
#: ../settings.php:889 ../settings.php:898
|
3465 |
+
msgid "All files"
|
3466 |
msgstr ""
|
3467 |
|
3468 |
+
#: ../settings.php:893
|
3469 |
+
msgid "Monitor modified files"
|
3470 |
msgstr ""
|
3471 |
|
3472 |
+
#: ../settings.php:902
|
3473 |
+
msgid "Change file permissions when necessary"
|
3474 |
msgstr ""
|
3475 |
|
3476 |
+
#: ../settings.php:906
|
3477 |
+
msgid "Scan temporary directory"
|
3478 |
msgstr ""
|
3479 |
|
3480 |
+
#: ../settings.php:910
|
3481 |
+
msgid "Scan session directory"
|
3482 |
msgstr ""
|
3483 |
|
3484 |
+
#: ../settings.php:914 ../settings.php:1217 ../settings.php:1245
|
3485 |
+
msgid "Enable diagnostic logging"
|
3486 |
msgstr ""
|
3487 |
|
3488 |
+
#: ../settings.php:919
|
3489 |
+
msgid "Delete quarantined files after"
|
3490 |
msgstr ""
|
3491 |
|
3492 |
+
#: ../settings.php:928
|
3493 |
+
msgid "Automated recurring scan schedule"
|
3494 |
msgstr ""
|
3495 |
|
3496 |
+
#: ../settings.php:929
|
3497 |
+
msgid ""
|
3498 |
+
"The scanner automatically scans the website, removes malware and sends email "
|
3499 |
+
"reports with the results of a scan"
|
3500 |
msgstr ""
|
3501 |
|
3502 |
+
#: ../settings.php:933
|
3503 |
+
msgid "Launch Quick Scan"
|
3504 |
+
msgstr ""
|
3505 |
+
|
3506 |
+
#: ../settings.php:938
|
3507 |
+
msgid "Launch Full Scan"
|
3508 |
+
msgstr ""
|
3509 |
+
|
3510 |
+
#: ../settings.php:945
|
3511 |
+
msgid "Scan results reporting"
|
3512 |
+
msgstr ""
|
3513 |
+
|
3514 |
+
#: ../settings.php:946
|
3515 |
msgid ""
|
3516 |
+
"Configure what issues to include in the email report and the condition for "
|
3517 |
+
"sending reports"
|
3518 |
msgstr ""
|
3519 |
|
3520 |
+
#: ../settings.php:950
|
3521 |
+
msgid "Report an issue if any of the following is true"
|
3522 |
msgstr ""
|
3523 |
|
3524 |
+
#: ../settings.php:953 ../settings.php:999
|
3525 |
+
msgid "Low severity"
|
3526 |
msgstr ""
|
3527 |
|
3528 |
+
#: ../settings.php:954 ../settings.php:1000
|
3529 |
+
msgid "Medium severity"
|
3530 |
msgstr ""
|
3531 |
|
3532 |
+
#: ../settings.php:955 ../settings.php:1001
|
3533 |
+
msgid "High severity"
|
3534 |
msgstr ""
|
3535 |
|
3536 |
+
#: ../settings.php:959
|
3537 |
+
msgid "Send email report"
|
3538 |
msgstr ""
|
3539 |
|
3540 |
+
#: ../settings.php:962
|
3541 |
+
msgid "After every scan"
|
3542 |
msgstr ""
|
3543 |
|
3544 |
+
#: ../settings.php:963
|
3545 |
+
msgid "If any changes in scan results occurred"
|
3546 |
msgstr ""
|
3547 |
|
3548 |
+
#: ../settings.php:964
|
3549 |
+
msgid "If new issues found"
|
3550 |
msgstr ""
|
3551 |
|
3552 |
+
#: ../settings.php:968
|
3553 |
+
msgid "Include file sizes"
|
3554 |
msgstr ""
|
3555 |
|
3556 |
+
#: ../settings.php:972
|
3557 |
+
msgid "Include scan errors"
|
3558 |
msgstr ""
|
3559 |
|
3560 |
+
#: ../settings.php:987
|
3561 |
+
msgid "Automatic cleanup of malware and suspicious files"
|
3562 |
msgstr ""
|
3563 |
|
3564 |
+
#: ../settings.php:988
|
3565 |
+
msgid ""
|
3566 |
+
"These policies are automatically enforced at the end of every scheduled scan "
|
3567 |
+
"based on its results. All affected files are moved to the quarantine"
|
3568 |
msgstr ""
|
3569 |
|
3570 |
+
#: ../settings.php:992
|
3571 |
+
msgid "Delete unattended files"
|
3572 |
msgstr ""
|
3573 |
|
3574 |
+
#: ../settings.php:996
|
3575 |
+
msgid "Files in the uploads folder"
|
3576 |
msgstr ""
|
3577 |
|
3578 |
+
#: ../settings.php:1005
|
3579 |
+
msgid "Files with unwanted extensions"
|
3580 |
msgstr ""
|
3581 |
|
3582 |
+
#: ../settings.php:1011
|
3583 |
+
msgid "Automatic recovery of modified and infected files"
|
3584 |
msgstr ""
|
3585 |
|
3586 |
+
#: ../settings.php:1014
|
3587 |
+
msgid "Recover WordPress files"
|
3588 |
msgstr ""
|
3589 |
|
3590 |
+
#: ../settings.php:1018
|
3591 |
+
msgid "Recover plugins files"
|
3592 |
msgstr ""
|
3593 |
|
3594 |
+
#: ../settings.php:1024
|
3595 |
+
msgid "Exclusions"
|
3596 |
msgstr ""
|
3597 |
|
3598 |
+
#: ../settings.php:1025
|
3599 |
+
msgid "These files will never be deleted during automatic cleanup."
|
3600 |
msgstr ""
|
3601 |
|
3602 |
+
#: ../settings.php:1028
|
3603 |
+
msgid "Files in the temporary directory"
|
3604 |
msgstr ""
|
3605 |
|
3606 |
+
#: ../settings.php:1032
|
3607 |
+
msgid "Files in the sessions directory"
|
3608 |
msgstr ""
|
3609 |
|
3610 |
+
#: ../settings.php:1036
|
3611 |
+
msgid "Files in these directories"
|
3612 |
msgstr ""
|
3613 |
|
3614 |
+
#: ../settings.php:1040
|
3615 |
+
msgid "Use absolute paths. One item per line."
|
3616 |
msgstr ""
|
3617 |
|
3618 |
+
#: ../settings.php:1043
|
3619 |
+
msgid "Files with these extensions"
|
3620 |
msgstr ""
|
3621 |
|
3622 |
+
#: ../settings.php:1047
|
3623 |
+
msgid "Use comma to separate items."
|
3624 |
msgstr ""
|
3625 |
|
3626 |
+
#: ../settings.php:1054
|
3627 |
+
msgid "Cerber anti-spam engine"
|
3628 |
msgstr ""
|
3629 |
|
3630 |
+
#: ../settings.php:1055
|
3631 |
+
msgid "Spam protection for comment, registration and contact forms on a website"
|
3632 |
msgstr ""
|
3633 |
|
3634 |
+
#: ../settings.php:1059
|
3635 |
+
msgid "Comment form"
|
3636 |
msgstr ""
|
3637 |
|
3638 |
+
#: ../settings.php:1060
|
3639 |
+
msgid "Protect comment form with bot detection engine"
|
3640 |
msgstr ""
|
3641 |
|
3642 |
+
#: ../settings.php:1064 ../settings.php:1136
|
3643 |
+
msgid "Registration form"
|
3644 |
msgstr ""
|
3645 |
|
3646 |
+
#: ../settings.php:1065
|
3647 |
+
msgid "Protect registration form with bot detection engine"
|
3648 |
msgstr ""
|
3649 |
|
3650 |
+
#: ../settings.php:1069
|
3651 |
+
msgid "Other forms"
|
3652 |
+
msgstr ""
|
3653 |
+
|
3654 |
+
#: ../settings.php:1070
|
3655 |
+
msgid "Protect all forms on the website with bot detection engine"
|
3656 |
+
msgstr ""
|
3657 |
+
|
3658 |
+
#: ../settings.php:1076
|
3659 |
+
msgid "Adjust anti-spam engine"
|
3660 |
+
msgstr ""
|
3661 |
+
|
3662 |
+
#: ../settings.php:1077
|
3663 |
msgid ""
|
3664 |
+
"These settings enable you to fine-tune the behavior of anti-spam algorithms "
|
3665 |
+
"and avoid false positives"
|
|
|
3666 |
msgstr ""
|
3667 |
|
3668 |
+
#: ../settings.php:1080
|
3669 |
+
msgid "Safe mode"
|
3670 |
+
msgstr ""
|
3671 |
+
|
3672 |
+
#: ../settings.php:1081
|
3673 |
+
msgid "Use less restrictive policies (allow AJAX)"
|
3674 |
+
msgstr ""
|
3675 |
+
|
3676 |
+
#: ../settings.php:1086
|
3677 |
+
msgid "Disable bot detection engine for logged in users"
|
3678 |
+
msgstr ""
|
3679 |
+
|
3680 |
+
#: ../settings.php:1090
|
3681 |
+
msgid "Query whitelist"
|
3682 |
+
msgstr ""
|
3683 |
+
|
3684 |
+
#: ../settings.php:1091
|
3685 |
msgid ""
|
3686 |
+
"Enter a part of query string or query path to exclude a request from "
|
3687 |
+
"inspection by the engine. One item per line."
|
3688 |
msgstr ""
|
3689 |
|
3690 |
+
#: ../settings.php:1100
|
3691 |
+
msgid "Comment processing"
|
3692 |
+
msgstr ""
|
3693 |
+
|
3694 |
+
#: ../settings.php:1101
|
3695 |
+
msgid "How the plugin processes comments submitted through the standard comment form"
|
3696 |
+
msgstr ""
|
3697 |
+
|
3698 |
+
#: ../settings.php:1104
|
3699 |
+
msgid "If a spam comment detected"
|
3700 |
+
msgstr ""
|
3701 |
+
|
3702 |
+
#: ../settings.php:1106
|
3703 |
+
msgid "Deny it completely"
|
3704 |
+
msgstr ""
|
3705 |
+
|
3706 |
+
#: ../settings.php:1106
|
3707 |
+
msgid "Mark it as spam"
|
3708 |
+
msgstr ""
|
3709 |
+
|
3710 |
+
#: ../settings.php:1109
|
3711 |
+
msgid "Trash spam comments"
|
3712 |
+
msgstr ""
|
3713 |
+
|
3714 |
+
#: ../settings.php:1111
|
3715 |
+
msgid "Move spam comments to trash after"
|
3716 |
+
msgstr ""
|
3717 |
+
|
3718 |
+
#: ../settings.php:1118
|
3719 |
+
msgid "reCAPTCHA settings"
|
3720 |
+
msgstr ""
|
3721 |
+
|
3722 |
+
#: ../settings.php:1119
|
3723 |
msgid ""
|
3724 |
+
"Before you can start using reCAPTCHA, you have to obtain Site key and Secret "
|
3725 |
+
"key on the Google website"
|
|
|
3726 |
msgstr ""
|
3727 |
|
3728 |
+
#: ../settings.php:1123
|
3729 |
+
msgid "Site key"
|
3730 |
msgstr ""
|
3731 |
|
3732 |
+
#: ../settings.php:1127
|
3733 |
+
msgid "Secret key"
|
3734 |
msgstr ""
|
3735 |
|
3736 |
+
#: ../settings.php:1131
|
3737 |
+
msgid "Invisible reCAPTCHA"
|
3738 |
+
msgstr ""
|
3739 |
+
|
3740 |
+
#: ../settings.php:1132
|
3741 |
+
msgid "Enable invisible reCAPTCHA"
|
3742 |
+
msgstr ""
|
3743 |
+
|
3744 |
+
#: ../settings.php:1132
|
3745 |
msgid ""
|
3746 |
+
"(do not enable it unless you get and enter the Site and Secret keys for the "
|
3747 |
+
"invisible version)"
|
|
|
|
|
3748 |
msgstr ""
|
3749 |
|
3750 |
+
#: ../settings.php:1137
|
3751 |
+
msgid "Enable reCAPTCHA for WordPress registration form"
|
3752 |
+
msgstr ""
|
3753 |
+
|
3754 |
+
#: ../settings.php:1142
|
3755 |
+
msgid "Enable reCAPTCHA for WooCommerce registration form"
|
3756 |
+
msgstr ""
|
3757 |
+
|
3758 |
+
#: ../settings.php:1146
|
3759 |
+
msgid "Lost password form"
|
3760 |
+
msgstr ""
|
3761 |
+
|
3762 |
+
#: ../settings.php:1147
|
3763 |
+
msgid "Enable reCAPTCHA for WordPress lost password form"
|
3764 |
+
msgstr ""
|
3765 |
+
|
3766 |
+
#: ../settings.php:1152
|
3767 |
+
msgid "Enable reCAPTCHA for WooCommerce lost password form"
|
3768 |
+
msgstr ""
|
3769 |
+
|
3770 |
+
#: ../settings.php:1156
|
3771 |
+
msgid "Login form"
|
3772 |
+
msgstr ""
|
3773 |
+
|
3774 |
+
#: ../settings.php:1157
|
3775 |
+
msgid "Enable reCAPTCHA for WordPress login form"
|
3776 |
+
msgstr ""
|
3777 |
+
|
3778 |
+
#: ../settings.php:1162
|
3779 |
+
msgid "Enable reCAPTCHA for WooCommerce login form"
|
3780 |
+
msgstr ""
|
3781 |
+
|
3782 |
+
#: ../settings.php:1167
|
3783 |
+
msgid "Enable reCAPTCHA for WordPress comment form"
|
3784 |
+
msgstr ""
|
3785 |
+
|
3786 |
+
#: ../settings.php:1172
|
3787 |
+
msgid "Disable reCAPTCHA for logged in users"
|
3788 |
+
msgstr ""
|
3789 |
+
|
3790 |
+
#: ../settings.php:1176
|
3791 |
+
msgid "Limit attempts"
|
3792 |
+
msgstr ""
|
3793 |
+
|
3794 |
+
#: ../settings.php:1177
|
3795 |
#, php-format
|
3796 |
+
msgid "Lock out IP address for %s minutes after %s failed attempts within %s minutes"
|
|
|
|
|
3797 |
msgstr ""
|
3798 |
|
3799 |
+
#: ../settings.php:1184
|
3800 |
+
msgid "Master settings"
|
3801 |
msgstr ""
|
3802 |
|
3803 |
+
#: ../settings.php:1192
|
3804 |
+
msgid "Return to the website list"
|
3805 |
msgstr ""
|
3806 |
|
3807 |
+
#: ../settings.php:1196
|
3808 |
+
msgid "Show \"Switched to\" notification"
|
3809 |
msgstr ""
|
3810 |
|
3811 |
+
#: ../settings.php:1200
|
3812 |
+
msgid "Add @ site to the page title"
|
3813 |
msgstr ""
|
3814 |
|
3815 |
+
#: ../settings.php:1204
|
3816 |
+
msgid "Use master language"
|
3817 |
msgstr ""
|
3818 |
|
3819 |
+
#: ../settings.php:1228
|
3820 |
+
msgid "Limit access by IP address"
|
3821 |
msgstr ""
|
3822 |
|
3823 |
+
#: ../settings.php:1234
|
3824 |
+
msgid "Access to this website"
|
3825 |
msgstr ""
|
3826 |
|
3827 |
+
#: ../settings.php:1237
|
3828 |
+
msgid "Full access mode"
|
3829 |
msgstr ""
|
3830 |
|
3831 |
+
#: ../settings.php:1238
|
3832 |
+
msgid "Read-only mode"
|
3833 |
msgstr ""
|
3834 |
|
3835 |
+
#: ../settings.php:1259
|
3836 |
+
msgid "The full access mode requires the PRO version of WP Cerber"
|
3837 |
msgstr ""
|
3838 |
|
3839 |
+
#: ../settings.php:1327
|
3840 |
+
msgid "Any activity"
|
3841 |
msgstr ""
|
3842 |
|
3843 |
+
#: ../cerber-2fa.php:352
|
3844 |
+
msgid ""
|
3845 |
+
"This verification PIN code is expired. We have just sent a new one to your "
|
3846 |
+
"email."
|
3847 |
msgstr ""
|
3848 |
|
3849 |
+
#: ../cerber-2fa.php:355
|
3850 |
+
msgid "You have entered an incorrect verification PIN code"
|
3851 |
msgstr ""
|
3852 |
|
3853 |
+
#: ../cerber-2fa.php:402 ../cerber-2fa.php:486
|
3854 |
+
msgid "Please verify that it’s you"
|
3855 |
msgstr ""
|
3856 |
|
3857 |
+
#: ../cerber-2fa.php:489
|
3858 |
+
msgid "Please use the following verification PIN code to confirm your identity"
|
3859 |
msgstr ""
|
3860 |
|
3861 |
+
#: ../cerber-2fa.php:489
|
3862 |
+
#, php-format
|
3863 |
+
msgid "The code is valid for %s minutes."
|
3864 |
msgstr ""
|
3865 |
|
3866 |
+
#: ../cerber-2fa.php:514
|
3867 |
+
msgid "Here are the details of the sign-in attempt"
|
3868 |
msgstr ""
|
3869 |
|
3870 |
+
#: ../cerber-2fa.php:563
|
3871 |
+
msgid "expires"
|
3872 |
msgstr ""
|
3873 |
|
3874 |
+
#: ../cerber-2fa.php:580
|
3875 |
+
msgid "only digits are allowed"
|
3876 |
msgstr ""
|
3877 |
|
3878 |
+
#: ../cerber-2fa.php:583
|
3879 |
+
msgid "We've sent a verification PIN code to your email"
|
3880 |
msgstr ""
|
3881 |
|
3882 |
+
#: ../cerber-2fa.php:584
|
3883 |
+
msgid "Enter the code from the email in the field below."
|
3884 |
msgstr ""
|
3885 |
|
3886 |
+
#: ../cerber-2fa.php:586
|
3887 |
+
msgid "Try again"
|
3888 |
msgstr ""
|
3889 |
|
3890 |
+
#: ../cerber-2fa.php:587
|
3891 |
+
msgid "Cancel"
|
3892 |
msgstr ""
|
3893 |
|
3894 |
+
#: ../cerber-2fa.php:588
|
3895 |
+
msgid "Did not receive an email?"
|
3896 |
msgstr ""
|
3897 |
|
3898 |
+
#: ../cerber-2fa.php:588
|
3899 |
+
msgid "or"
|
3900 |
+
msgstr ""
|
3901 |
+
|
3902 |
+
#: ../cerber-2fa.php:594
|
3903 |
+
msgid "Verify it's you"
|
3904 |
+
msgstr ""
|
3905 |
+
|
3906 |
+
#: ../cerber-2fa.php:599
|
3907 |
+
msgid "Verify"
|
3908 |
msgstr ""
|
nexus/cerber-nexus-master.php
CHANGED
@@ -31,14 +31,15 @@
|
|
31 |
|
32 |
*/
|
33 |
|
34 |
-
|
35 |
-
|
|
|
36 |
|
37 |
require_once( dirname( cerber_plugin_file() ) . '/cerber-maintenance.php' );
|
38 |
require_once( dirname( __FILE__ ) . '/cerber-slave-list.php' );
|
39 |
|
40 |
-
|
41 |
-
|
42 |
|
43 |
function nexus_show_slaves() {
|
44 |
//load_nexus_test_slaves();
|
31 |
|
32 |
*/
|
33 |
|
34 |
+
if ( ! defined( 'WPINC' ) ) {
|
35 |
+
exit;
|
36 |
+
}
|
37 |
|
38 |
require_once( dirname( cerber_plugin_file() ) . '/cerber-maintenance.php' );
|
39 |
require_once( dirname( __FILE__ ) . '/cerber-slave-list.php' );
|
40 |
|
41 |
+
const CRB_ADD_SLAVE_LNK = '#TB_inline?width=450&height=350&inlineId=crb-popup-add-slave';
|
42 |
+
const CRB_NX_SLAVE = 'slave-edit-form'; // Special form for editing slave data
|
43 |
|
44 |
function nexus_show_slaves() {
|
45 |
//load_nexus_test_slaves();
|
nexus/cerber-slave-list.php
CHANGED
@@ -202,7 +202,8 @@ class CRB_Slave_Table extends WP_List_Table {
|
|
202 |
$limit = 'LIMIT ' . $per_page;
|
203 |
}
|
204 |
|
205 |
-
|
|
|
206 |
$where[] = 'group_id = ' . absint( $group_id );
|
207 |
}
|
208 |
|
@@ -388,7 +389,11 @@ class CRB_Slave_Table extends WP_List_Table {
|
|
388 |
case 'srv_country':
|
389 |
return crb_country_html( $item['server_country'] );
|
390 |
case 'site_grp':
|
391 |
-
|
|
|
|
|
|
|
|
|
392 |
break;
|
393 |
case 'site_owner':
|
394 |
if ( ! $owner = crb_array_get( $item['details'], 'owner_biz' ) ) {
|
202 |
$limit = 'LIMIT ' . $per_page;
|
203 |
}
|
204 |
|
205 |
+
$group_id = cerber_get_get( 'filter_group_id', '\d+' );
|
206 |
+
if ( is_numeric( $group_id ) ) {
|
207 |
$where[] = 'group_id = ' . absint( $group_id );
|
208 |
}
|
209 |
|
389 |
case 'srv_country':
|
390 |
return crb_country_html( $item['server_country'] );
|
391 |
case 'site_grp':
|
392 |
+
if ( $ret = crb_array_get( $groups, $item['group_id'], 'Not set' ) ) {
|
393 |
+
$ret = '<a href="' . $this->base_sites . '&filter_group_id=' . $item['group_id'] . '">' . $ret . '</a>';
|
394 |
+
}
|
395 |
+
|
396 |
+
return $ret;
|
397 |
break;
|
398 |
case 'site_owner':
|
399 |
if ( ! $owner = crb_array_get( $item['details'], 'owner_biz' ) ) {
|
readme.txt
CHANGED
@@ -5,7 +5,7 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_i
|
|
5 |
Requires at least: 4.9
|
6 |
Requires PHP: 5.6
|
7 |
Tested up to: 5.5
|
8 |
-
Stable tag: 8.6.
|
9 |
License: GPLv2
|
10 |
|
11 |
Protection against hacker attacks and bots. Malware scanner & integrity checker. User activity log. Antispam reCAPTCHA. Limit login attempts.
|
@@ -331,6 +331,19 @@ To get access to your dashboard you need to copy the WP Cerber Reset folder to t
|
|
331 |
|
332 |
== Changelog ==
|
333 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
334 |
= 8.6.6 =
|
335 |
* New: On the user sessions page, you can now search sessions by a user name, email, and the IP address from which a user has logged in.
|
336 |
* New: You can specify locations (URL Paths) to exclude requests from logging. They can be either exact matches or regular expressions (REGEX).
|
5 |
Requires at least: 4.9
|
6 |
Requires PHP: 5.6
|
7 |
Tested up to: 5.5
|
8 |
+
Stable tag: 8.6.7
|
9 |
License: GPLv2
|
10 |
|
11 |
Protection against hacker attacks and bots. Malware scanner & integrity checker. User activity log. Antispam reCAPTCHA. Limit login attempts.
|
331 |
|
332 |
== Changelog ==
|
333 |
|
334 |
+
= 8.6.7 =
|
335 |
+
* New: In the professional version of WP Cerber, you can now permit user registrations for IP addresses in the White IP Access List only.
|
336 |
+
* New: All URLs in the logs are displayed in a shortened form without the website’s domain. There is no much value having see known things.
|
337 |
+
* New: A new label "IP Whitelisted" with green borders has been introduced. It is displayed in a log row on the Live Traffic if the IP address was in White IP Access List, but the appropriate setting “Use White IP Access List” was not enabled at the moment when the event was logged.
|
338 |
+
* New: If you now hover the mouse over a red square icon in the Activity or Live Traffic log, you see the reason why the IP address in the row is currently locked out.
|
339 |
+
* New: If you now hover the mouse over a green or black square Access List icon in the Activity or Live Traffic log, you see the comment you’ve previously specified for that Access List entry.
|
340 |
+
* Improved: All non-REGEX entries [in the list of prohibited usernames (logins)](https://wpcerber.com/using-list-of-prohibited-logins-to-catch-stupid-bots/) are case-insensitive now. This applies to standard Latin-based (ASCII) WordPress usernames only.
|
341 |
+
* Improved: The name of a group in the Group column on [Cerber.Hub’s](https://wpcerber.com/manage-multiple-websites/) website list is a link that takes you to the list of websites in the group.
|
342 |
+
* Improved: The launch time of the daily maintenance tasks is now set to the night-time at 02:20. If you need them to get rescheduled, you can manually delete the “cerber_daily” cron task via a plugin or deactivate/activate WP Cerber.
|
343 |
+
* Fixed: Configured [REST API restrictions](https://wpcerber.com/restrict-access-to-wordpress-rest-api/) have no effect if a WordPress is installed not in the root folder of a website (there is a path in the site URL). Affected versions: 8.6.1 and newer.
|
344 |
+
* Fixed: A bug in the logging subsystem: depending on server configuration, submitted form fields are not saved into the DB (if it is enabled in the logging settings).
|
345 |
+
* Fixed: A bug with Cerber’s admin CSS styles that were added in the previous version and hid the top pagination links on the "All posts" and "All posts" admin pages.
|
346 |
+
|
347 |
= 8.6.6 =
|
348 |
* New: On the user sessions page, you can now search sessions by a user name, email, and the IP address from which a user has logged in.
|
349 |
* New: You can specify locations (URL Paths) to exclude requests from logging. They can be either exact matches or regular expressions (REGEX).
|
settings.php
CHANGED
@@ -32,32 +32,33 @@
|
|
32 |
*/
|
33 |
|
34 |
|
35 |
-
|
36 |
// If this file is called directly, abort executing.
|
37 |
-
if ( ! defined( 'WPINC' ) ) {
|
|
|
|
|
38 |
|
39 |
// Processed by WP Settings API
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
|
55 |
// Processed by Cerber
|
56 |
-
|
57 |
-
|
58 |
// A new, united settings entry
|
59 |
// @since 8.5.9.1
|
60 |
-
|
61 |
|
62 |
/**
|
63 |
* A set of Cerber settings (WP options)
|
@@ -548,7 +549,20 @@ function cerber_settings_config( $args = array() ) {
|
|
548 |
'maxlength' => 1000,
|
549 |
'enabler' => array( 'authonly' ),
|
550 |
),
|
551 |
-
'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
552 |
'title' => __( 'Registration limit', 'wp-cerber' ),
|
553 |
'type' => 'reglimit',
|
554 |
'default' => array( 3, 60 ),
|
@@ -1469,6 +1483,8 @@ function cerber_get_defaults( $setting = null ) {
|
|
1469 |
'authonlyacl' => 0,
|
1470 |
'authonlymsg' => __( 'Only registered and logged in users are allowed to view this website', 'wp-cerber' ),
|
1471 |
'authonlyredir' => '',
|
|
|
|
|
1472 |
'reglimit_num' => 3,
|
1473 |
'reglimit_min' => 60,
|
1474 |
'emrule' => 0,
|
32 |
*/
|
33 |
|
34 |
|
|
|
35 |
// If this file is called directly, abort executing.
|
36 |
+
if ( ! defined( 'WPINC' ) ) {
|
37 |
+
exit;
|
38 |
+
}
|
39 |
|
40 |
// Processed by WP Settings API
|
41 |
+
const CERBER_OPT = 'cerber-main';
|
42 |
+
const CERBER_OPT_H = 'cerber-hardening';
|
43 |
+
const CERBER_OPT_U = 'cerber-users';
|
44 |
+
const CERBER_OPT_A = 'cerber-antispam';
|
45 |
+
const CERBER_OPT_C = 'cerber-recaptcha';
|
46 |
+
const CERBER_OPT_N = 'cerber-notifications';
|
47 |
+
const CERBER_OPT_T = 'cerber-traffic';
|
48 |
+
const CERBER_OPT_S = 'cerber-scanner';
|
49 |
+
const CERBER_OPT_E = 'cerber-schedule';
|
50 |
+
const CERBER_OPT_P = 'cerber-policies';
|
51 |
+
const CERBER_OPT_US = 'cerber-user_shield';
|
52 |
+
const CERBER_OPT_OS = 'cerber-opt_shield';
|
53 |
+
const CERBER_OPT_SL = 'cerber-nexus-slave';
|
54 |
+
const CERBER_OPT_MA = 'cerber-nexus_master';
|
55 |
|
56 |
// Processed by Cerber
|
57 |
+
const CERBER_SETTINGS = 'cerber_settings';
|
58 |
+
const CERBER_GEO_RULES = 'geo_rule_set';
|
59 |
// A new, united settings entry
|
60 |
// @since 8.5.9.1
|
61 |
+
const CERBER_CONFIG = 'cerber_configuration';
|
62 |
|
63 |
/**
|
64 |
* A set of Cerber settings (WP options)
|
549 |
'maxlength' => 1000,
|
550 |
'enabler' => array( 'authonly' ),
|
551 |
),
|
552 |
+
'regwhite' => array(
|
553 |
+
'title' => __( 'Use White IP Access List', 'wp-cerber' ),
|
554 |
+
'label' => __( 'Only users from IP addresses in the White IP Access List may register on the website', 'wp-cerber' ),
|
555 |
+
'type' => 'checkbox',
|
556 |
+
'pro' => 1
|
557 |
+
),
|
558 |
+
'regwhite_msg' => array(
|
559 |
+
'title' => __( 'User message', 'wp-cerber' ),
|
560 |
+
'placeholder' => 'This optional message will be displayed to a user if their IP address is not whitelisted',
|
561 |
+
'type' => 'textarea',
|
562 |
+
'enabler' => array( 'regwhite' ),
|
563 |
+
'pro' => 1
|
564 |
+
),
|
565 |
+
'reglimit' => array(
|
566 |
'title' => __( 'Registration limit', 'wp-cerber' ),
|
567 |
'type' => 'reglimit',
|
568 |
'default' => array( 3, 60 ),
|
1483 |
'authonlyacl' => 0,
|
1484 |
'authonlymsg' => __( 'Only registered and logged in users are allowed to view this website', 'wp-cerber' ),
|
1485 |
'authonlyredir' => '',
|
1486 |
+
'regwhite' => 0,
|
1487 |
+
'regwhite_msg' => '',
|
1488 |
'reglimit_num' => 3,
|
1489 |
'reglimit_min' => 60,
|
1490 |
'emrule' => 0,
|
wp-cerber.php
CHANGED
@@ -5,7 +5,7 @@
|
|
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: Cerber Tech Inc.
|
7 |
Author URI: https://wpcerber.com
|
8 |
-
Version: 8.6.
|
9 |
Text Domain: wp-cerber
|
10 |
Domain Path: /languages
|
11 |
Network: true
|
@@ -31,8 +31,8 @@
|
|
31 |
|
32 |
*/
|
33 |
|
34 |
-
|
35 |
-
|
36 |
|
37 |
function cerber_plugin_file() {
|
38 |
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: Cerber Tech Inc.
|
7 |
Author URI: https://wpcerber.com
|
8 |
+
Version: 8.6.7
|
9 |
Text Domain: wp-cerber
|
10 |
Domain Path: /languages
|
11 |
Network: true
|
31 |
|
32 |
*/
|
33 |
|
34 |
+
const CERBER_VER = '8.6.7';
|
35 |
+
const CERBER_PLUGIN_ID = 'wp-cerber/wp-cerber.php';
|
36 |
|
37 |
function cerber_plugin_file() {
|
38 |
return __FILE__;
|