Version Description
- May 17, 2022 =
- Improvement: Improved scan support for sites with non-standard directory structures
- Improvement: Increased accuracy of executable PHP upload detection
- Improvement: Addressed various deprecation notices with PHP 8.1
- Improvement: Improved handling of invalidated license keys
- Fix: Corrected lost password redirect URL when used with WooCommerce
- Fix: Prevented errors when live traffic data exceeds database column length
- Fix: Prevented bulk password resets from locking out admins
- Fix: Corrected issue that prevented saving country blocking settings in certain cases
- Change: Updated copyright information
Download this release
Release Info
Developer | wfalexk |
Plugin | Wordfence Security – Firewall & Malware Scan |
Version | 7.5.10 |
Comparing to | |
See all releases |
Code changes from version 7.5.9 to 7.5.10
- css/{activity-report-widget.1647958122.css → activity-report-widget.1652811581.css} +0 -0
- css/{diff.1647958122.css → diff.1652811581.css} +0 -0
- css/{dt_table.1647958122.css → dt_table.1652811581.css} +0 -0
- css/{fullLog.1647958122.css → fullLog.1652811581.css} +0 -0
- css/{iptraf.1647958122.css → iptraf.1652811581.css} +0 -0
- css/{jquery-ui-timepicker-addon.1647958122.css → jquery-ui-timepicker-addon.1652811581.css} +0 -0
- css/{jquery-ui.min.1647958122.css → jquery-ui.min.1652811581.css} +0 -0
- css/{jquery-ui.structure.min.1647958122.css → jquery-ui.structure.min.1652811581.css} +0 -0
- css/{jquery-ui.theme.min.1647958122.css → jquery-ui.theme.min.1652811581.css} +0 -0
- css/license/{care-global.1647958122.css → care-global.1652811581.css} +0 -0
- css/license/{care.1647958122.css → care.1652811581.css} +0 -0
- css/license/{free-global.1647958122.css → free-global.1652811581.css} +0 -0
- css/license/{free.1647958122.css → free.1652811581.css} +0 -0
- css/license/{premium-global.1647958122.css → premium-global.1652811581.css} +0 -0
- css/license/{premium.1647958122.css → premium.1652811581.css} +0 -0
- css/license/{response-global.1647958122.css → response-global.1652811581.css} +0 -0
- css/license/{response-variables.1647958122.css → response-variables.1652811581.css} +0 -0
- css/license/{response.1647958122.css → response.1652811581.css} +0 -0
- css/{main.1647958122.css → main.1652811581.css} +0 -0
- css/{phpinfo.1647958122.css → phpinfo.1652811581.css} +0 -0
- css/{wf-adminbar.1647958122.css → wf-adminbar.1652811581.css} +0 -0
- css/{wf-colorbox.1647958122.css → wf-colorbox.1652811581.css} +0 -0
- css/{wf-font-awesome.1647958122.css → wf-font-awesome.1652811581.css} +0 -0
- css/{wf-global.1647958122.css → wf-global.1652811581.css} +0 -0
- css/{wf-ionicons.1647958122.css → wf-ionicons.1652811581.css} +0 -0
- css/{wf-onboarding.1647958122.css → wf-onboarding.1652811581.css} +0 -0
- css/{wf-roboto-font.1647958122.css → wf-roboto-font.1652811581.css} +0 -0
- css/{wfselect2.min.1647958122.css → wfselect2.min.1652811581.css} +0 -0
- css/{wordfenceBox.1647958122.css → wordfenceBox.1652811581.css} +0 -0
- js/{Chart.bundle.min.1647958122.js → Chart.bundle.min.1652811581.js} +0 -0
- js/{admin.1647958122.js → admin.1652811581.js} +17 -8
- js/{admin.ajaxWatcher.1647958122.js → admin.ajaxWatcher.1652811581.js} +0 -0
- js/{admin.liveTraffic.1647958122.js → admin.liveTraffic.1652811581.js} +0 -0
- js/{date.1647958122.js → date.1652811581.js} +0 -0
- js/{jquery-ui-timepicker-addon.1647958122.js → jquery-ui-timepicker-addon.1652811581.js} +0 -0
- js/{jquery.colorbox-min.1647958122.js → jquery.colorbox-min.1652811581.js} +0 -0
- js/{jquery.colorbox.1647958122.js → jquery.colorbox.1652811581.js} +0 -0
- js/{jquery.dataTables.min.1647958122.js → jquery.dataTables.min.1652811581.js} +0 -0
- js/{jquery.qrcode.min.1647958122.js → jquery.qrcode.min.1652811581.js} +0 -0
- js/{jquery.tmpl.min.1647958122.js → jquery.tmpl.min.1652811581.js} +0 -0
- js/{jquery.tools.min.1647958122.js → jquery.tools.min.1652811581.js} +0 -0
- js/{knockout-3.5.1.1647958122.js → knockout-3.5.1.1652811581.js} +0 -0
- js/{wfdashboard.1647958122.js → wfdashboard.1652811581.js} +0 -0
- js/{wfdropdown.1647958122.js → wfdropdown.1652811581.js} +0 -0
- js/{wfglobal.1647958122.js → wfglobal.1652811581.js} +0 -0
- js/{wfi18n.1647958122.js → wfi18n.1652811581.js} +0 -0
- js/{wfpopover.1647958122.js → wfpopover.1652811581.js} +0 -0
- js/{wfselect2.min.1647958122.js → wfselect2.min.1652811581.js} +0 -0
- languages/wordfence.po +928 -912
- lib/wfFileUtils.php +77 -0
- lib/wfIssues.php +24 -4
- lib/wfLog.php +5 -0
- lib/wfScanEngine.php +64 -49
- lib/wfScanFile.php +41 -0
- lib/wfScanPath.php +65 -0
- lib/wordfenceClass.php +109 -28
- lib/wordfenceHash.php +140 -153
- lib/wordfenceScanner.php +13 -6
- modules/login-security/css/{admin-global.1647958122.css → admin-global.1652811581.css} +0 -0
- modules/login-security/css/{admin.1647958122.css → admin.1652811581.css} +0 -0
- modules/login-security/css/{colorbox.1647958122.css → colorbox.1652811581.css} +0 -0
- modules/login-security/css/{font-awesome.1647958122.css → font-awesome.1652811581.css} +0 -0
- modules/login-security/css/{ionicons.1647958122.css → ionicons.1652811581.css} +0 -0
- modules/login-security/css/{jquery-ui.min.1647958122.css → jquery-ui.min.1652811581.css} +0 -0
- modules/login-security/css/{jquery-ui.structure.min.1647958122.css → jquery-ui.structure.min.1652811581.css} +0 -0
- modules/login-security/css/{jquery-ui.theme.min.1647958122.css → jquery-ui.theme.min.1652811581.css} +0 -0
- modules/login-security/css/{login.1647958122.css → login.1652811581.css} +0 -0
- modules/login-security/js/{admin-global.1647958122.js → admin-global.1652811581.js} +0 -0
- modules/login-security/js/{admin.1647958122.js → admin.1652811581.js} +0 -0
- modules/login-security/js/{jquery.colorbox.1647958122.js → jquery.colorbox.1652811581.js} +0 -0
- modules/login-security/js/{jquery.colorbox.min.1647958122.js → jquery.colorbox.min.1652811581.js} +0 -0
- modules/login-security/js/{jquery.qrcode.min.1647958122.js → jquery.qrcode.min.1652811581.js} +0 -0
- modules/login-security/js/{jquery.tmpl.min.1647958122.js → jquery.tmpl.min.1652811581.js} +0 -0
- modules/login-security/js/{login.1647958122.js → login.1652811581.js} +0 -0
- modules/login-security/wordfence-login-security.php +1 -1
- readme.txt +13 -2
- vendor/wordfence/wf-waf/src/init.php +2 -1
- vendor/wordfence/wf-waf/src/lib/rules.php +190 -165
- vendor/wordfence/wf-waf/src/lib/shutdown.php +68 -0
- vendor/wordfence/wf-waf/src/lib/storage/mysql.php +21 -12
- vendor/wordfence/wf-waf/src/lib/utils.php +40 -1
- vendor/wordfence/wf-waf/src/lib/waf.php +8 -5
- views/dashboard/options-group-license.php +11 -0
- views/scanner/issue-configReadable.php +1 -1
- views/scanner/issue-coreUnknown.php +1 -1
- views/scanner/issue-file.php +1 -1
- views/scanner/issue-knownfile.php +1 -1
- views/scanner/issue-publiclyAccessible.php +1 -1
- views/scanner/issue-wpscan_directoryList.php +1 -1
- views/scanner/issue-wpscan_fullPathDiscl.php +1 -1
- waf/bootstrap.php +3 -2
- waf/wfWAFIPBlocksController.php +4 -2
- wordfence.php +4 -4
css/{activity-report-widget.1647958122.css → activity-report-widget.1652811581.css}
RENAMED
File without changes
|
css/{diff.1647958122.css → diff.1652811581.css}
RENAMED
File without changes
|
css/{dt_table.1647958122.css → dt_table.1652811581.css}
RENAMED
File without changes
|
css/{fullLog.1647958122.css → fullLog.1652811581.css}
RENAMED
File without changes
|
css/{iptraf.1647958122.css → iptraf.1652811581.css}
RENAMED
File without changes
|
css/{jquery-ui-timepicker-addon.1647958122.css → jquery-ui-timepicker-addon.1652811581.css}
RENAMED
File without changes
|
css/{jquery-ui.min.1647958122.css → jquery-ui.min.1652811581.css}
RENAMED
File without changes
|
css/{jquery-ui.structure.min.1647958122.css → jquery-ui.structure.min.1652811581.css}
RENAMED
File without changes
|
css/{jquery-ui.theme.min.1647958122.css → jquery-ui.theme.min.1652811581.css}
RENAMED
File without changes
|
css/license/{care-global.1647958122.css → care-global.1652811581.css}
RENAMED
File without changes
|
css/license/{care.1647958122.css → care.1652811581.css}
RENAMED
File without changes
|
css/license/{free-global.1647958122.css → free-global.1652811581.css}
RENAMED
File without changes
|
css/license/{free.1647958122.css → free.1652811581.css}
RENAMED
File without changes
|
css/license/{premium-global.1647958122.css → premium-global.1652811581.css}
RENAMED
File without changes
|
css/license/{premium.1647958122.css → premium.1652811581.css}
RENAMED
File without changes
|
css/license/{response-global.1647958122.css → response-global.1652811581.css}
RENAMED
File without changes
|
css/license/{response-variables.1647958122.css → response-variables.1652811581.css}
RENAMED
File without changes
|
css/license/{response.1647958122.css → response.1652811581.css}
RENAMED
File without changes
|
css/{main.1647958122.css → main.1652811581.css}
RENAMED
File without changes
|
css/{phpinfo.1647958122.css → phpinfo.1652811581.css}
RENAMED
File without changes
|
css/{wf-adminbar.1647958122.css → wf-adminbar.1652811581.css}
RENAMED
File without changes
|
css/{wf-colorbox.1647958122.css → wf-colorbox.1652811581.css}
RENAMED
File without changes
|
css/{wf-font-awesome.1647958122.css → wf-font-awesome.1652811581.css}
RENAMED
File without changes
|
css/{wf-global.1647958122.css → wf-global.1652811581.css}
RENAMED
File without changes
|
css/{wf-ionicons.1647958122.css → wf-ionicons.1652811581.css}
RENAMED
File without changes
|
css/{wf-onboarding.1647958122.css → wf-onboarding.1652811581.css}
RENAMED
File without changes
|
css/{wf-roboto-font.1647958122.css → wf-roboto-font.1652811581.css}
RENAMED
File without changes
|
css/{wfselect2.min.1647958122.css → wfselect2.min.1652811581.css}
RENAMED
File without changes
|
css/{wordfenceBox.1647958122.css → wordfenceBox.1652811581.css}
RENAMED
File without changes
|
js/{Chart.bundle.min.1647958122.js → Chart.bundle.min.1652811581.js}
RENAMED
File without changes
|
js/{admin.1647958122.js → admin.1652811581.js}
RENAMED
@@ -1620,7 +1620,7 @@
|
|
1620 |
e.preventDefault();
|
1621 |
e.stopPropagation();
|
1622 |
|
1623 |
-
WFAD.promptToRepairFile(issueID,
|
1624 |
});
|
1625 |
});
|
1626 |
|
@@ -2022,7 +2022,7 @@
|
|
2022 |
}
|
2023 |
});
|
2024 |
},
|
2025 |
-
promptToRepairFile: function(issueID,
|
2026 |
if (window.localStorage) {
|
2027 |
var sudoExpiration = window.localStorage.getItem('wf-repair-file-sudo');
|
2028 |
if (sudoExpiration && parseInt(sudoExpiration, 10) > new Date().getTime()) {
|
@@ -2030,8 +2030,8 @@
|
|
2030 |
return;
|
2031 |
}
|
2032 |
}
|
2033 |
-
WFAD.colorboxModalHTML((WFAD.isSmallScreen ? '300px' : '400px'), __("Download Backup File"), __('Please make a backup of this file before proceeding. If you need to restore this backup file, you can copy it to the following path from your site\'s root:') + '<p class="wf-padding-add-top-medium"><code>' + file + '</code></p>'
|
2034 |
-
+ '<a href="' + WFAD.makeDownloadFileLink(
|
2035 |
'<input type="button" class="wf-btn wf-btn-primary" name="but1" id="wfRepairFileNextBtn" value="Repair File" disabled="disabled" onclick="WFAD.promptToRepairFileDone(' + parseInt(issueID, 10) + ', jQuery(\'#forceRepairFileCheckbox\').prop(\'checked\'));this.disabled=true;" />' +
|
2036 |
'<label class="wf-padding-add-left"><input type="checkbox" id="forceRepairFileCheckbox" onclick="jQuery(\'#wfRepairFileNextBtn\').prop(\'disabled\', !this.checked); return true;"> ' + __('Don\'t ask again') + '</label>' +
|
2037 |
'</p>' +
|
@@ -2333,19 +2333,28 @@
|
|
2333 |
makeIPTrafLink: function(IP) {
|
2334 |
return WordfenceAdminVars.siteBaseURL + '?_wfsf=IPTraf&nonce=' + this.nonce + '&IP=' + encodeURIComponent(IP);
|
2335 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2336 |
makeDiffLink: function(dat) {
|
2337 |
return WordfenceAdminVars.siteBaseURL + '?_wfsf=diff&nonce=' + this.nonce +
|
2338 |
'&file=' + encodeURIComponent(this.es(dat['file'])) +
|
|
|
2339 |
'&cType=' + encodeURIComponent(this.es(dat['cType'])) +
|
2340 |
'&cKey=' + encodeURIComponent(this.es(dat['cKey'])) +
|
2341 |
'&cName=' + encodeURIComponent(this.es(dat['cName'])) +
|
2342 |
'&cVersion=' + encodeURIComponent(this.es(dat['cVersion']));
|
2343 |
},
|
2344 |
-
makeViewFileLink: function(
|
2345 |
-
return WordfenceAdminVars.siteBaseURL + '?_wfsf=view&nonce=' + this.nonce + '&file=' + encodeURIComponent(file);
|
2346 |
},
|
2347 |
-
makeDownloadFileLink: function(
|
2348 |
-
return WordfenceAdminVars.siteBaseURL + '?_wfsf=download&nonce=' + this.nonce + '&file=' + encodeURIComponent(file);
|
2349 |
},
|
2350 |
makeViewOptionLink: function(option, siteID) {
|
2351 |
return WordfenceAdminVars.siteBaseURL + '?_wfsf=viewOption&nonce=' + this.nonce + '&option=' + encodeURIComponent(option) + '&site_id=' + encodeURIComponent(siteID);
|
1620 |
e.preventDefault();
|
1621 |
e.stopPropagation();
|
1622 |
|
1623 |
+
WFAD.promptToRepairFile(issueID, issueObject.data);
|
1624 |
});
|
1625 |
});
|
1626 |
|
2022 |
}
|
2023 |
});
|
2024 |
},
|
2025 |
+
promptToRepairFile: function(issueID, data) {
|
2026 |
if (window.localStorage) {
|
2027 |
var sudoExpiration = window.localStorage.getItem('wf-repair-file-sudo');
|
2028 |
if (sudoExpiration && parseInt(sudoExpiration, 10) > new Date().getTime()) {
|
2030 |
return;
|
2031 |
}
|
2032 |
}
|
2033 |
+
WFAD.colorboxModalHTML((WFAD.isSmallScreen ? '300px' : '400px'), __("Download Backup File"), __('Please make a backup of this file before proceeding. If you need to restore this backup file, you can copy it to the following path from your site\'s root:') + '<p class="wf-padding-add-top-medium"><code>' + data.file + '</code></p>'
|
2034 |
+
+ '<a href="' + WFAD.makeDownloadFileLink(data) + '" onclick="jQuery(\'#wfRepairFileNextBtn\').prop(\'disabled\', false); return true;">' + __('Click here to download a backup copy of this file now') + '</a><p class="wf-flex-horizontal">' +
|
2035 |
'<input type="button" class="wf-btn wf-btn-primary" name="but1" id="wfRepairFileNextBtn" value="Repair File" disabled="disabled" onclick="WFAD.promptToRepairFileDone(' + parseInt(issueID, 10) + ', jQuery(\'#forceRepairFileCheckbox\').prop(\'checked\'));this.disabled=true;" />' +
|
2036 |
'<label class="wf-padding-add-left"><input type="checkbox" id="forceRepairFileCheckbox" onclick="jQuery(\'#wfRepairFileNextBtn\').prop(\'disabled\', !this.checked); return true;"> ' + __('Don\'t ask again') + '</label>' +
|
2037 |
'</p>' +
|
2333 |
makeIPTrafLink: function(IP) {
|
2334 |
return WordfenceAdminVars.siteBaseURL + '?_wfsf=IPTraf&nonce=' + this.nonce + '&IP=' + encodeURIComponent(IP);
|
2335 |
},
|
2336 |
+
getRealFileParameters: function(data) {
|
2337 |
+
if ('realFile' in data) {
|
2338 |
+
return '&realFile=' + encodeURIComponent(this.es(data['realFile'])) + '&realFileToken=' + encodeURIComponent(this.es(data['realFileToken']));
|
2339 |
+
}
|
2340 |
+
else {
|
2341 |
+
return '';
|
2342 |
+
}
|
2343 |
+
},
|
2344 |
makeDiffLink: function(dat) {
|
2345 |
return WordfenceAdminVars.siteBaseURL + '?_wfsf=diff&nonce=' + this.nonce +
|
2346 |
'&file=' + encodeURIComponent(this.es(dat['file'])) +
|
2347 |
+
this.getRealFileParameters(dat) +
|
2348 |
'&cType=' + encodeURIComponent(this.es(dat['cType'])) +
|
2349 |
'&cKey=' + encodeURIComponent(this.es(dat['cKey'])) +
|
2350 |
'&cName=' + encodeURIComponent(this.es(dat['cName'])) +
|
2351 |
'&cVersion=' + encodeURIComponent(this.es(dat['cVersion']));
|
2352 |
},
|
2353 |
+
makeViewFileLink: function(data) {
|
2354 |
+
return WordfenceAdminVars.siteBaseURL + '?_wfsf=view&nonce=' + this.nonce + '&file=' + encodeURIComponent(data.file) + this.getRealFileParameters(data);
|
2355 |
},
|
2356 |
+
makeDownloadFileLink: function(data) {
|
2357 |
+
return WordfenceAdminVars.siteBaseURL + '?_wfsf=download&nonce=' + this.nonce + '&file=' + encodeURIComponent(data.file) + this.getRealFileParameters(data);
|
2358 |
},
|
2359 |
makeViewOptionLink: function(option, siteID) {
|
2360 |
return WordfenceAdminVars.siteBaseURL + '?_wfsf=viewOption&nonce=' + this.nonce + '&option=' + encodeURIComponent(option) + '&site_id=' + encodeURIComponent(siteID);
|
js/{admin.ajaxWatcher.1647958122.js → admin.ajaxWatcher.1652811581.js}
RENAMED
File without changes
|
js/{admin.liveTraffic.1647958122.js → admin.liveTraffic.1652811581.js}
RENAMED
File without changes
|
js/{date.1647958122.js → date.1652811581.js}
RENAMED
File without changes
|
js/{jquery-ui-timepicker-addon.1647958122.js → jquery-ui-timepicker-addon.1652811581.js}
RENAMED
File without changes
|
js/{jquery.colorbox-min.1647958122.js → jquery.colorbox-min.1652811581.js}
RENAMED
File without changes
|
js/{jquery.colorbox.1647958122.js → jquery.colorbox.1652811581.js}
RENAMED
File without changes
|
js/{jquery.dataTables.min.1647958122.js → jquery.dataTables.min.1652811581.js}
RENAMED
File without changes
|
js/{jquery.qrcode.min.1647958122.js → jquery.qrcode.min.1652811581.js}
RENAMED
File without changes
|
js/{jquery.tmpl.min.1647958122.js → jquery.tmpl.min.1652811581.js}
RENAMED
File without changes
|
js/{jquery.tools.min.1647958122.js → jquery.tools.min.1652811581.js}
RENAMED
File without changes
|
js/{knockout-3.5.1.1647958122.js → knockout-3.5.1.1652811581.js}
RENAMED
File without changes
|
js/{wfdashboard.1647958122.js → wfdashboard.1652811581.js}
RENAMED
File without changes
|
js/{wfdropdown.1647958122.js → wfdropdown.1652811581.js}
RENAMED
File without changes
|
js/{wfglobal.1647958122.js → wfglobal.1652811581.js}
RENAMED
File without changes
|
js/{wfi18n.1647958122.js → wfi18n.1652811581.js}
RENAMED
File without changes
|
js/{wfpopover.1647958122.js → wfpopover.1652811581.js}
RENAMED
File without changes
|
js/{wfselect2.min.1647958122.js → wfselect2.min.1652811581.js}
RENAMED
File without changes
|
languages/wordfence.po
CHANGED
@@ -2,14 +2,14 @@
|
|
2 |
# This file is distributed under the same license as the Wordfence Security plugin.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Wordfence Security 7.5.
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
|
7 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
8 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"POT-Creation-Date: 2022-
|
13 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
14 |
"X-Generator: WP-CLI 2.4.0\n"
|
15 |
"X-Domain: wordfence\n"
|
@@ -57,7 +57,7 @@ msgstr ""
|
|
57 |
#: lib/dashboard/widget_content_logins.php:7
|
58 |
#: lib/dashboard/widget_ips.php:115
|
59 |
#: lib/dashboard/widget_logins.php:96
|
60 |
-
#: lib/wordfenceClass.php:
|
61 |
#: views/reports/activity-report-email-inline.php:146
|
62 |
#: views/reports/activity-report.php:16
|
63 |
#: views/waf/option-whitelist.php:110
|
@@ -68,7 +68,7 @@ msgstr ""
|
|
68 |
|
69 |
#: lib/dashboard/widget_content_logins.php:6
|
70 |
#: lib/dashboard/widget_logins.php:95
|
71 |
-
#: lib/wordfenceClass.php:
|
72 |
#: views/reports/activity-report-email-inline.php:256
|
73 |
#: views/reports/activity-report.php:106
|
74 |
msgid "Username"
|
@@ -133,7 +133,7 @@ msgstr ""
|
|
133 |
#. translators: WordPress username.
|
134 |
#: lib/dashboard/widget_ips.php:96
|
135 |
#: lib/dashboard/widget_logins.php:77
|
136 |
-
#: lib/wordfenceClass.php:
|
137 |
msgid "An error occurred"
|
138 |
msgstr ""
|
139 |
|
@@ -234,56 +234,56 @@ msgstr ""
|
|
234 |
#: lib/menu_tools_twoFactor.php:51
|
235 |
#: lib/menu_wordfence_central.php:59
|
236 |
#: lib/wf503.php:390
|
237 |
-
#: lib/wfScanEngine.php:
|
238 |
-
#: lib/wfScanEngine.php:
|
239 |
-
#: lib/wfScanEngine.php:
|
240 |
-
#: lib/wfScanEngine.php:
|
241 |
-
#: lib/wfScanEngine.php:
|
242 |
-
#: lib/wfScanEngine.php:
|
243 |
-
#: lib/wfScanEngine.php:
|
244 |
-
#: lib/wfScanEngine.php:
|
245 |
-
#: lib/wfScanEngine.php:
|
246 |
-
#: lib/wfScanEngine.php:
|
247 |
-
#: lib/wfScanEngine.php:
|
248 |
-
#: lib/wfScanEngine.php:
|
249 |
-
#: lib/wfScanEngine.php:
|
250 |
-
#: lib/wfScanEngine.php:
|
251 |
-
#: lib/wfScanEngine.php:
|
252 |
-
#: lib/wfScanEngine.php:
|
253 |
#: lib/wfVersionCheckController.php:68
|
254 |
#: lib/wfVersionCheckController.php:91
|
255 |
#: lib/wfVersionCheckController.php:167
|
256 |
#: lib/wfVersionCheckController.php:186
|
257 |
-
#: lib/wordfenceClass.php:
|
258 |
-
#: lib/wordfenceClass.php:
|
259 |
-
#: lib/wordfenceClass.php:
|
260 |
-
#: lib/wordfenceClass.php:
|
261 |
-
#: lib/wordfenceClass.php:
|
262 |
-
#: lib/wordfenceClass.php:
|
263 |
-
#: lib/wordfenceClass.php:
|
264 |
-
#: lib/wordfenceClass.php:
|
265 |
-
#: lib/wordfenceClass.php:
|
266 |
-
#: lib/wordfenceClass.php:
|
267 |
-
#: lib/wordfenceClass.php:
|
268 |
-
#: lib/wordfenceClass.php:
|
269 |
-
#: lib/wordfenceClass.php:
|
270 |
-
#: lib/wordfenceClass.php:6249
|
271 |
-
#: lib/wordfenceClass.php:6268
|
272 |
-
#: lib/wordfenceClass.php:6274
|
273 |
#: lib/wordfenceClass.php:6321
|
274 |
-
#: lib/wordfenceClass.php:
|
275 |
-
#: lib/wordfenceClass.php:
|
276 |
-
#: lib/wordfenceClass.php:
|
277 |
-
#: lib/wordfenceClass.php:
|
278 |
-
#: lib/wordfenceClass.php:
|
279 |
-
#: lib/wordfenceClass.php:
|
280 |
-
#: lib/wordfenceClass.php:
|
281 |
-
#: lib/wordfenceClass.php:
|
282 |
-
#: lib/wordfenceClass.php:
|
283 |
-
#: lib/
|
284 |
-
#: lib/
|
285 |
-
#: lib/
|
286 |
-
#: lib/wordfenceHash.php:
|
|
|
|
|
|
|
287 |
#: views/blocking/block-list.php:35
|
288 |
#: views/blocking/blocking-create.php:179
|
289 |
#: views/blocking/blocking-status.php:27
|
@@ -305,9 +305,9 @@ msgstr ""
|
|
305 |
#: views/dashboard/options-group-import.php:31
|
306 |
#: views/dashboard/options-group-import.php:44
|
307 |
#: views/dashboard/options-group-license.php:35
|
308 |
-
#: views/dashboard/options-group-license.php:
|
309 |
-
#: views/dashboard/options-group-license.php:
|
310 |
-
#: views/dashboard/options-group-license.php:
|
311 |
#: views/dashboard/status-payment-expiring.php:31
|
312 |
#: views/dashboard/status-renewing.php:17
|
313 |
#: views/gdpr/banner.php:55
|
@@ -426,7 +426,7 @@ msgid "Last Updated: %s ago"
|
|
426 |
msgstr ""
|
427 |
|
428 |
#: lib/dashboard/widget_notifications.php:8
|
429 |
-
#: lib/wordfenceClass.php:
|
430 |
msgid "Notifications"
|
431 |
msgstr ""
|
432 |
|
@@ -501,15 +501,15 @@ msgstr ""
|
|
501 |
#: lib/menu_tools_diagnostic.php:982
|
502 |
#: lib/menu_tools_twoFactor.php:235
|
503 |
#: lib/menu_tools_twoFactor.php:273
|
504 |
-
#: lib/wordfenceClass.php:
|
505 |
-
#: lib/wordfenceClass.php:
|
506 |
-
#: lib/wordfenceClass.php:
|
507 |
-
#: lib/wordfenceClass.php:
|
508 |
-
#: lib/wordfenceClass.php:
|
509 |
#: views/blocking/block-list.php:501
|
510 |
#: views/blocking/blocking-create.php:212
|
511 |
#: views/blocking/blocking-create.php:529
|
512 |
-
#: views/dashboard/options-group-license.php:
|
513 |
#: views/options/block-all-options-controls.php:164
|
514 |
#: views/options/block-controls.php:79
|
515 |
msgid "Cancel"
|
@@ -723,7 +723,7 @@ msgstr ""
|
|
723 |
#: lib/wfVersionCheckController.php:91
|
724 |
#: lib/wfVersionCheckController.php:167
|
725 |
#: lib/wfVersionCheckController.php:186
|
726 |
-
#: lib/wordfenceClass.php:
|
727 |
#: views/blocking/blocking-create.php:528
|
728 |
#: views/blocking/blocking-status.php:27
|
729 |
#: views/dashboard/options-group-dashboard.php:107
|
@@ -926,7 +926,7 @@ msgid "Live Updates Paused — Click inside window to resume"
|
|
926 |
msgstr ""
|
927 |
|
928 |
#: lib/menu_dashboard.php:24
|
929 |
-
#: lib/wordfenceClass.php:
|
930 |
msgid "Wordfence Dashboard"
|
931 |
msgstr ""
|
932 |
|
@@ -938,7 +938,7 @@ msgstr ""
|
|
938 |
#: lib/menu_dashboard_options.php:98
|
939 |
#: lib/menu_firewall.php:20
|
940 |
#: lib/menu_firewall.php:30
|
941 |
-
#: lib/wordfenceClass.php:
|
942 |
#: models/page/wfPage.php:105
|
943 |
msgid "Firewall"
|
944 |
msgstr ""
|
@@ -975,7 +975,7 @@ msgstr ""
|
|
975 |
#: lib/menu_dashboard_options.php:115
|
976 |
#: lib/menu_scanner.php:31
|
977 |
#: lib/menu_scanner.php:305
|
978 |
-
#: lib/wordfenceClass.php:
|
979 |
#: models/page/wfPage.php:113
|
980 |
msgid "Scan"
|
981 |
msgstr ""
|
@@ -1013,7 +1013,7 @@ msgstr ""
|
|
1013 |
|
1014 |
#: lib/menu_dashboard.php:89
|
1015 |
#: lib/menu_dashboard_options.php:133
|
1016 |
-
#: views/dashboard/options-group-license.php:
|
1017 |
msgid "Reset License"
|
1018 |
msgstr ""
|
1019 |
|
@@ -1058,13 +1058,13 @@ msgstr ""
|
|
1058 |
#: lib/menu_scanner.php:80
|
1059 |
#: lib/menu_support.php:55
|
1060 |
#: lib/menu_tools_twoFactor.php:51
|
1061 |
-
#: lib/wordfenceClass.php:
|
1062 |
#: views/blocking/blocking-create.php:179
|
1063 |
#: views/blocking/blocking-status.php:23
|
1064 |
#: views/blocking/blocking-status.php:27
|
1065 |
#: views/blocking/options-group-advanced-country.php:85
|
1066 |
#: views/dashboard/options-group-dashboard.php:107
|
1067 |
-
#: views/dashboard/options-group-license.php:
|
1068 |
#: views/onboarding/fresh-install.php:42
|
1069 |
#: views/onboarding/modal-final-attempt.php:41
|
1070 |
#: views/onboarding/plugin-header.php:64
|
@@ -1152,7 +1152,7 @@ msgid "Learn about Wordfence Response"
|
|
1152 |
msgstr ""
|
1153 |
|
1154 |
#: lib/menu_dashboard.php:229
|
1155 |
-
#: lib/wordfenceClass.php:
|
1156 |
msgid "Tools"
|
1157 |
msgstr ""
|
1158 |
|
@@ -1164,7 +1164,7 @@ msgstr ""
|
|
1164 |
#: lib/menu_firewall_waf.php:157
|
1165 |
#: lib/menu_scanner.php:139
|
1166 |
#: lib/menu_support.php:19
|
1167 |
-
#: lib/wordfenceClass.php:
|
1168 |
msgid "Help"
|
1169 |
msgstr ""
|
1170 |
|
@@ -1383,7 +1383,7 @@ msgstr ""
|
|
1383 |
#: lib/menu_firewall.php:41
|
1384 |
#: lib/menu_firewall_blocking.php:119
|
1385 |
#: lib/menu_firewall_waf.php:142
|
1386 |
-
#: lib/wordfenceClass.php:
|
1387 |
#: models/page/wfPage.php:109
|
1388 |
msgid "Blocking"
|
1389 |
msgstr ""
|
@@ -1572,7 +1572,7 @@ msgstr ""
|
|
1572 |
#: lib/menu_tools_diagnostic.php:301
|
1573 |
#: lib/menu_tools_diagnostic.php:302
|
1574 |
#: lib/menu_tools_diagnostic.php:305
|
1575 |
-
#: lib/wordfenceClass.php:
|
1576 |
#: models/firewall/wfFirewall.php:41
|
1577 |
#: views/diagnostics/text.php:154
|
1578 |
#: views/diagnostics/text.php:159
|
@@ -1694,7 +1694,7 @@ msgstr ""
|
|
1694 |
|
1695 |
#: lib/menu_options.php:24
|
1696 |
#: lib/menu_options.php:262
|
1697 |
-
#: lib/wordfenceClass.php:
|
1698 |
msgid "All Options"
|
1699 |
msgstr ""
|
1700 |
|
@@ -2333,7 +2333,7 @@ msgid "Signature updates delayed by 30 days"
|
|
2333 |
msgstr ""
|
2334 |
|
2335 |
#: lib/menu_scanner.php:80
|
2336 |
-
#: lib/wordfenceClass.php:
|
2337 |
msgid "Protect More Sites"
|
2338 |
msgstr ""
|
2339 |
|
@@ -2416,20 +2416,20 @@ msgstr ""
|
|
2416 |
#: lib/menu_tools_twoFactor.php:255
|
2417 |
#: lib/menu_tools_twoFactor.php:264
|
2418 |
#: lib/menu_tools_twoFactor.php:284
|
2419 |
-
#: lib/wordfenceClass.php:
|
2420 |
-
#: lib/wordfenceClass.php:
|
2421 |
-
#: lib/wordfenceClass.php:
|
2422 |
-
#: lib/wordfenceClass.php:
|
2423 |
-
#: lib/wordfenceClass.php:
|
2424 |
-
#: lib/wordfenceClass.php:
|
2425 |
-
#: lib/wordfenceClass.php:
|
2426 |
-
#: lib/wordfenceClass.php:
|
2427 |
-
#: lib/wordfenceClass.php:
|
2428 |
-
#: lib/wordfenceClass.php:
|
2429 |
-
#: lib/wordfenceClass.php:
|
2430 |
-
#: lib/wordfenceClass.php:
|
2431 |
-
#: lib/wordfenceClass.php:
|
2432 |
-
#: lib/wordfenceClass.php:
|
2433 |
#: views/dashboard/options-group-import.php:147
|
2434 |
#: views/dashboard/options-group-import.php:157
|
2435 |
#: views/dashboard/options-group-import.php:177
|
@@ -2632,7 +2632,7 @@ msgstr ""
|
|
2632 |
#: lib/menu_tools_livetraffic.php:41
|
2633 |
#: lib/menu_tools_livetraffic.php:571
|
2634 |
#: lib/menu_tools_livetraffic.php:602
|
2635 |
-
#: lib/wordfenceClass.php:
|
2636 |
#: models/page/wfPage.php:119
|
2637 |
msgid "Live Traffic"
|
2638 |
msgstr ""
|
@@ -3123,7 +3123,7 @@ msgid "Interval the trash is automatically emptied at in days"
|
|
3123 |
msgstr ""
|
3124 |
|
3125 |
#: lib/menu_tools_diagnostic.php:304
|
3126 |
-
#: lib/wordfenceClass.php:
|
3127 |
#: views/diagnostics/text.php:162
|
3128 |
msgid "Never"
|
3129 |
msgstr ""
|
@@ -3470,7 +3470,7 @@ msgstr ""
|
|
3470 |
|
3471 |
#: lib/menu_tools_diagnostic.php:732
|
3472 |
#: lib/menu_tools_diagnostic.php:771
|
3473 |
-
#: lib/wordfenceClass.php:
|
3474 |
msgid "Download"
|
3475 |
msgstr ""
|
3476 |
|
@@ -3500,7 +3500,7 @@ msgid "New Issues (%d total)"
|
|
3500 |
msgstr ""
|
3501 |
|
3502 |
#: lib/menu_tools_diagnostic.php:811
|
3503 |
-
#: lib/wordfenceClass.php:
|
3504 |
#: views/diagnostics/text.php:584
|
3505 |
msgid "No New Issues"
|
3506 |
msgstr ""
|
@@ -3570,17 +3570,17 @@ msgid "Enable beta threat defense feed"
|
|
3570 |
msgstr ""
|
3571 |
|
3572 |
#: lib/menu_tools_diagnostic.php:961
|
3573 |
-
#: lib/wordfenceClass.php:
|
3574 |
msgid "Restore Defaults"
|
3575 |
msgstr ""
|
3576 |
|
3577 |
#: lib/menu_tools_diagnostic.php:962
|
3578 |
-
#: lib/wordfenceClass.php:
|
3579 |
msgid "Cancel Changes"
|
3580 |
msgstr ""
|
3581 |
|
3582 |
#: lib/menu_tools_diagnostic.php:963
|
3583 |
-
#: lib/wordfenceClass.php:
|
3584 |
msgid "Save Changes"
|
3585 |
msgstr ""
|
3586 |
|
@@ -3651,14 +3651,14 @@ msgstr ""
|
|
3651 |
#: lib/menu_tools_livetraffic.php:100
|
3652 |
#: lib/menu_tools_livetraffic.php:227
|
3653 |
#: lib/menu_tools_livetraffic.php:458
|
3654 |
-
#: lib/wordfenceClass.php:
|
3655 |
msgid "Human"
|
3656 |
msgstr ""
|
3657 |
|
3658 |
#: lib/menu_tools_livetraffic.php:101
|
3659 |
#: lib/menu_tools_livetraffic.php:228
|
3660 |
#: lib/menu_tools_livetraffic.php:458
|
3661 |
-
#: lib/wordfenceClass.php:
|
3662 |
msgid "Bot"
|
3663 |
msgstr ""
|
3664 |
|
@@ -3668,7 +3668,7 @@ msgstr ""
|
|
3668 |
|
3669 |
#: lib/menu_tools_livetraffic.php:103
|
3670 |
#: lib/wfDiagnostic.php:762
|
3671 |
-
#: lib/wordfenceClass.php:
|
3672 |
msgid "Blocked"
|
3673 |
msgstr ""
|
3674 |
|
@@ -3761,7 +3761,7 @@ msgid "%s hits"
|
|
3761 |
msgstr ""
|
3762 |
|
3763 |
#: lib/menu_tools_livetraffic.php:286
|
3764 |
-
#: lib/wordfenceClass.php:
|
3765 |
msgid "Type"
|
3766 |
msgstr ""
|
3767 |
|
@@ -3784,7 +3784,7 @@ msgid "IP Address"
|
|
3784 |
msgstr ""
|
3785 |
|
3786 |
#: lib/menu_tools_livetraffic.php:291
|
3787 |
-
#: lib/wordfenceClass.php:
|
3788 |
#: views/blocking/blocking-create.php:193
|
3789 |
msgid "Hostname"
|
3790 |
msgstr ""
|
@@ -4144,22 +4144,22 @@ msgid "You've chosen to block the network that <span style=\"color: #F00;\">%s</
|
|
4144 |
msgstr ""
|
4145 |
|
4146 |
#: lib/menu_tools_whois.php:95
|
4147 |
-
#: lib/wordfenceClass.php:
|
4148 |
msgid "Enter a valid IP or domain"
|
4149 |
msgstr ""
|
4150 |
|
4151 |
#: lib/menu_tools_whois.php:95
|
4152 |
-
#: lib/wordfenceClass.php:
|
4153 |
msgid "Please enter a valid IP address or domain name for your whois lookup."
|
4154 |
msgstr ""
|
4155 |
|
4156 |
#: lib/menu_tools_whois.php:99
|
4157 |
-
#: lib/wordfenceClass.php:
|
4158 |
msgid "Loading..."
|
4159 |
msgstr ""
|
4160 |
|
4161 |
#: lib/menu_tools_whois.php:104
|
4162 |
-
#: lib/wordfenceClass.php:
|
4163 |
msgid "Look up IP or Domain"
|
4164 |
msgstr ""
|
4165 |
|
@@ -4189,7 +4189,7 @@ msgstr ""
|
|
4189 |
|
4190 |
#: lib/menu_wordfence_central.php:44
|
4191 |
#: lib/menu_wordfence_central.php:57
|
4192 |
-
#: lib/wordfenceClass.php:
|
4193 |
msgid "Wordfence Central"
|
4194 |
msgstr ""
|
4195 |
|
@@ -4272,20 +4272,20 @@ msgstr ""
|
|
4272 |
#. translators: Error message.
|
4273 |
#: lib/rest-api/wfRESTConfigController.php:215
|
4274 |
#: lib/rest-api/wfRESTConfigController.php:258
|
4275 |
-
#: lib/wordfenceClass.php:
|
4276 |
msgid "An error occurred while saving the configuration: %s"
|
4277 |
msgstr ""
|
4278 |
|
4279 |
#. translators: Error message.
|
4280 |
#: lib/rest-api/wfRESTConfigController.php:226
|
4281 |
#: lib/rest-api/wfRESTConfigController.php:269
|
4282 |
-
#: lib/wordfenceClass.php:
|
4283 |
msgid "Errors occurred while saving the configuration: %s"
|
4284 |
msgstr ""
|
4285 |
|
4286 |
#: lib/rest-api/wfRESTConfigController.php:231
|
4287 |
#: lib/rest-api/wfRESTConfigController.php:274
|
4288 |
-
#: lib/wordfenceClass.php:
|
4289 |
msgid "Errors occurred while saving the configuration."
|
4290 |
msgstr ""
|
4291 |
|
@@ -4402,37 +4402,37 @@ msgid "Wordfence activity for %1$s on %2$s"
|
|
4402 |
msgstr ""
|
4403 |
|
4404 |
#: lib/wfActivityReport.php:584
|
4405 |
-
#: lib/wordfenceClass.php:
|
4406 |
msgid "Blocked because the IP is blocklisted"
|
4407 |
msgstr ""
|
4408 |
|
4409 |
#. translators: Reason for firewall action.
|
4410 |
#: lib/wfActivityReport.php:587
|
4411 |
-
#: lib/wordfenceClass.php:
|
4412 |
msgid "Blocked for %s"
|
4413 |
msgstr ""
|
4414 |
|
4415 |
#. translators: 1. Reason for firewall action. 2. Input parameter. 2. Input parameter value.
|
4416 |
#: lib/wfActivityReport.php:599
|
4417 |
-
#: lib/wordfenceClass.php:
|
4418 |
msgid "Blocked for %1$s in query string: %2$s = %3$s"
|
4419 |
msgstr ""
|
4420 |
|
4421 |
#. translators: 1. Reason for firewall action. 2. Input parameter. 2. Input parameter value.
|
4422 |
#: lib/wfActivityReport.php:602
|
4423 |
-
#: lib/wordfenceClass.php:
|
4424 |
msgid "Blocked for %1$s in POST body: %2$s = %3$s"
|
4425 |
msgstr ""
|
4426 |
|
4427 |
#. translators: 1. Reason for firewall action. 2. Input parameter. 2. Input parameter value.
|
4428 |
#: lib/wfActivityReport.php:605
|
4429 |
-
#: lib/wordfenceClass.php:
|
4430 |
msgid "Blocked for %1$s in cookie: %2$s = %3$s"
|
4431 |
msgstr ""
|
4432 |
|
4433 |
#. translators: 1. Reason for firewall action. 2. Input parameter. 2. Input parameter value.
|
4434 |
#: lib/wfActivityReport.php:608
|
4435 |
-
#: lib/wordfenceClass.php:
|
4436 |
msgid "Blocked for %1$s in file: %2$s = %3$s"
|
4437 |
msgstr ""
|
4438 |
|
@@ -4443,10 +4443,10 @@ msgid "Unknown"
|
|
4443 |
msgstr ""
|
4444 |
|
4445 |
#: lib/wfAdminNoticeQueue.php:193
|
4446 |
-
#: lib/wordfenceClass.php:
|
4447 |
-
#: lib/wordfenceClass.php:
|
4448 |
-
#: lib/wordfenceClass.php:
|
4449 |
-
#: lib/wordfenceClass.php:
|
4450 |
msgid "Dismiss"
|
4451 |
msgstr ""
|
4452 |
|
@@ -5678,7 +5678,7 @@ msgid "Unable to remove code execution protections applied to the .htaccess file
|
|
5678 |
msgstr ""
|
5679 |
|
5680 |
#: lib/wfConfig.php:1186
|
5681 |
-
#: lib/wordfenceClass.php:
|
5682 |
msgid "The grace period end time must be in the future."
|
5683 |
msgstr ""
|
5684 |
|
@@ -5716,7 +5716,7 @@ msgid "An empty license key was entered."
|
|
5716 |
msgstr ""
|
5717 |
|
5718 |
#: lib/wfConfig.php:1312
|
5719 |
-
#: lib/wordfenceClass.php:
|
5720 |
msgid "The license key entered is not in a valid format. It must contain only numbers and the letters A-F."
|
5721 |
msgstr ""
|
5722 |
|
@@ -6237,13 +6237,13 @@ msgstr ""
|
|
6237 |
|
6238 |
#: lib/wfLog.php:600
|
6239 |
#: models/block/wfBlock.php:1442
|
6240 |
-
#: waf/wfWAFIPBlocksController.php:
|
6241 |
msgid "Access from your area has been temporarily limited for security reasons"
|
6242 |
msgstr ""
|
6243 |
|
6244 |
#: lib/wfLog.php:615
|
6245 |
-
#: lib/wordfenceClass.php:
|
6246 |
-
#: waf/wfWAFIPBlocksController.php:
|
6247 |
msgid "Manual block by administrator"
|
6248 |
msgstr ""
|
6249 |
|
@@ -6388,7 +6388,7 @@ msgstr ""
|
|
6388 |
#: lib/wfScan.php:263
|
6389 |
#: lib/wfScan.php:278
|
6390 |
#: lib/wfScan.php:293
|
6391 |
-
#: lib/wfScanEngine.php:
|
6392 |
msgid "Wordfence used %1$s of memory for scan. Server peak memory usage was: %2$s"
|
6393 |
msgstr ""
|
6394 |
|
@@ -6413,801 +6413,801 @@ msgid "Scan Engine Error: %s"
|
|
6413 |
msgstr ""
|
6414 |
|
6415 |
#. translators: Number of scan results.
|
6416 |
-
#: lib/wfScanEngine.php:
|
6417 |
msgid "%d issue found in most recent scan"
|
6418 |
msgid_plural "%d issues found in most recent scan"
|
6419 |
msgstr[0] ""
|
6420 |
msgstr[1] ""
|
6421 |
|
6422 |
#. translators: 1. Time duration. 2. Support URL.
|
6423 |
-
#: lib/wfScanEngine.php:
|
6424 |
msgid "The scan time limit of %1$s has been exceeded and the scan will be terminated. This limit can be customized on the options page. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Get More Information<span class=\"screen-reader-text\"> ("
|
6425 |
msgstr ""
|
6426 |
|
6427 |
-
#: lib/wfScanEngine.php:
|
6428 |
msgid "Scan Time Limit Exceeded"
|
6429 |
msgstr ""
|
6430 |
|
6431 |
#. translators: 1. Number of files. 2. Number of plugins. 3. Number of themes. 4. Number of posts. 5. Number of comments. 6. Number of URLs. 7. Time duration.
|
6432 |
-
#: lib/wfScanEngine.php:
|
6433 |
msgid "Scan interrupted. Scanned %1$d files, %2$d plugins, %3$d themes, %4$d posts, %5$d comments and %6$d URLs in %7$s."
|
6434 |
msgstr ""
|
6435 |
|
6436 |
#. translators: Number of scan results.
|
6437 |
-
#: lib/wfScanEngine.php:
|
6438 |
msgid "Scan interrupted. You have %d new issue to fix. See below."
|
6439 |
msgid_plural "Scan interrupted. You have %d new issues to fix. See below."
|
6440 |
msgstr[0] ""
|
6441 |
msgstr[1] ""
|
6442 |
|
6443 |
-
#: lib/wfScanEngine.php:
|
6444 |
msgid "Scan interrupted. No problems found prior to stopping."
|
6445 |
msgstr ""
|
6446 |
|
6447 |
#. translators: 1. Software version. 2. Software version.
|
6448 |
-
#: lib/wfScanEngine.php:
|
6449 |
msgid "Aborting scan because WordPress updated from version %1$s to %2$s. The scan will be reattempted later."
|
6450 |
msgstr ""
|
6451 |
|
6452 |
-
#: lib/wfScanEngine.php:
|
6453 |
msgid "Forking during hash scan to ensure continuity."
|
6454 |
msgstr ""
|
6455 |
|
6456 |
-
#: lib/wfScanEngine.php:
|
6457 |
msgid "Entered fork()"
|
6458 |
msgstr ""
|
6459 |
|
6460 |
-
#: lib/wfScanEngine.php:
|
6461 |
msgid "Calling startScan(true)"
|
6462 |
msgstr ""
|
6463 |
|
6464 |
#. translators: 1. Number of files. 2. Number of plugins. 3. Number of themes. 4. Number of posts. 5. Number of comments. 6. Number of URLs. 7. Time duration.
|
6465 |
-
#: lib/wfScanEngine.php:
|
6466 |
msgid "Scan Complete. Scanned %1$d files, %2$d plugins, %3$d themes, %4$d posts, %5$d comments and %6$d URLs in %7$s."
|
6467 |
msgstr ""
|
6468 |
|
6469 |
#. translators: 1. Time duration.
|
6470 |
-
#: lib/wfScanEngine.php:
|
6471 |
msgid "Quick Scan Complete. Scanned in %s."
|
6472 |
msgstr ""
|
6473 |
|
6474 |
#. translators: Number of scan results.
|
6475 |
-
#: lib/wfScanEngine.php:
|
6476 |
msgid "%d ignored issue was also detected."
|
6477 |
msgid_plural "%d ignored issues were also detected."
|
6478 |
msgstr[0] ""
|
6479 |
msgstr[1] ""
|
6480 |
|
6481 |
#. translators: Number of scan results.
|
6482 |
-
#: lib/wfScanEngine.php:
|
6483 |
msgid "Scan complete. You have %d new issue to fix."
|
6484 |
msgid_plural "Scan complete. You have %d new issues to fix."
|
6485 |
msgstr[0] ""
|
6486 |
msgstr[1] ""
|
6487 |
|
6488 |
-
#: lib/wfScanEngine.php:
|
6489 |
msgid "See below."
|
6490 |
msgstr ""
|
6491 |
|
6492 |
-
#: lib/wfScanEngine.php:
|
6493 |
msgid "Scan complete. Congratulations, no new problems found."
|
6494 |
msgstr ""
|
6495 |
|
6496 |
-
#: lib/wfScanEngine.php:
|
6497 |
msgid "Checking if your site IP is generating spam"
|
6498 |
msgstr ""
|
6499 |
|
6500 |
-
#: lib/wfScanEngine.php:
|
6501 |
msgid "Checking if your IP is generating spam is for paid members only"
|
6502 |
msgstr ""
|
6503 |
|
6504 |
-
#: lib/wfScanEngine.php:
|
6505 |
msgid "Checking if your site is on a domain blocklist"
|
6506 |
msgstr ""
|
6507 |
|
6508 |
-
#: lib/wfScanEngine.php:
|
6509 |
msgid "Checking if your site is on a domain blocklist is for paid members only"
|
6510 |
msgstr ""
|
6511 |
|
6512 |
#. translators: Error message.
|
6513 |
-
#: lib/wfScanEngine.php:
|
6514 |
msgid "Error checking domain blocklists: %s"
|
6515 |
msgstr ""
|
6516 |
|
6517 |
#. translators: WordPress site ID.
|
6518 |
-
#: lib/wfScanEngine.php:
|
6519 |
msgid "The multisite blog with ID %d is listed on Google's Safe Browsing malware list."
|
6520 |
msgstr ""
|
6521 |
|
6522 |
-
#: lib/wfScanEngine.php:
|
6523 |
msgid "Your site is listed on Google's Safe Browsing malware list."
|
6524 |
msgstr ""
|
6525 |
|
6526 |
#. translators: 1. URL. 2. URL.
|
6527 |
-
#: lib/wfScanEngine.php:
|
6528 |
msgid "The URL %1$s is on the malware list. More info available at <a href=\"http://safebrowsing.clients.google.com/safebrowsing/diagnostic?site=%2$s&client=googlechrome&hl=en-US\" target=\"_blank\" rel=\"noopener noreferrer\">Google Safe Browsing diagnostic page<span class=\"screen-reader-text\"> ("
|
6529 |
msgstr ""
|
6530 |
|
6531 |
#. translators: WordPress site ID.
|
6532 |
-
#: lib/wfScanEngine.php:
|
6533 |
msgid "The multisite blog with ID %d is listed on Google's Safe Browsing phishing list."
|
6534 |
msgstr ""
|
6535 |
|
6536 |
-
#: lib/wfScanEngine.php:
|
6537 |
msgid "Your site is listed on Google's Safe Browsing phishing list."
|
6538 |
msgstr ""
|
6539 |
|
6540 |
#. translators: 1. URL. 2. URL.
|
6541 |
-
#: lib/wfScanEngine.php:
|
6542 |
msgid "The URL %1$s is on the phishing list. More info available at <a href=\"http://safebrowsing.clients.google.com/safebrowsing/diagnostic?site=%2$s&client=googlechrome&hl=en-US\" target=\"_blank\" rel=\"noopener noreferrer\">Google Safe Browsing diagnostic page<span class=\"screen-reader-text\"> ("
|
6543 |
msgstr ""
|
6544 |
|
6545 |
#. translators: WordPress site ID.
|
6546 |
-
#: lib/wfScanEngine.php:
|
6547 |
msgid "The multisite blog with ID %d is listed on the Wordfence domain blocklist."
|
6548 |
msgstr ""
|
6549 |
|
6550 |
-
#: lib/wfScanEngine.php:
|
6551 |
msgid "Your site is listed on the Wordfence domain blocklist."
|
6552 |
msgstr ""
|
6553 |
|
6554 |
#. translators: URL.
|
6555 |
-
#: lib/wfScanEngine.php:
|
6556 |
msgid "The URL %s is on the blocklist."
|
6557 |
msgstr ""
|
6558 |
|
6559 |
#. translators: WordPress site ID.
|
6560 |
-
#: lib/wfScanEngine.php:
|
6561 |
msgid "The multisite blog with ID %d is listed on a domain blocklist."
|
6562 |
msgstr ""
|
6563 |
|
6564 |
-
#: lib/wfScanEngine.php:
|
6565 |
msgid "Your site is listed on a domain blocklist."
|
6566 |
msgstr ""
|
6567 |
|
6568 |
#. translators: URL.
|
6569 |
-
#: lib/wfScanEngine.php:
|
6570 |
msgid "The URL is: %s"
|
6571 |
msgstr ""
|
6572 |
|
6573 |
-
#: lib/wfScanEngine.php:
|
6574 |
msgid "Checking for the most secure way to get IPs"
|
6575 |
msgstr ""
|
6576 |
|
6577 |
-
#: lib/wfScanEngine.php:
|
6578 |
msgid "Unable to accurately detect IPs"
|
6579 |
msgstr ""
|
6580 |
|
6581 |
#. translators: Support URL.
|
6582 |
-
#: lib/wfScanEngine.php:
|
6583 |
msgid "Wordfence was unable to validate a test request to your website. This can happen if your website is behind a proxy that does not use one of the standard ways to convey the IP of the request or it is unreachable publicly. IP blocking and live traffic information may not be accurate. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Get More Information<span class=\"screen-reader-text\"> ("
|
6584 |
msgstr ""
|
6585 |
|
6586 |
-
#: lib/wfScanEngine.php:
|
6587 |
-
#: lib/wordfenceClass.php:
|
6588 |
msgid "For maximum security use PHP's built in REMOTE_ADDR."
|
6589 |
msgstr ""
|
6590 |
|
6591 |
-
#: lib/wfScanEngine.php:
|
6592 |
-
#: lib/wordfenceClass.php:
|
6593 |
msgid "This site appears to be behind a front-end proxy, so using the X-Forwarded-For HTTP header will resolve to the correct IPs."
|
6594 |
msgstr ""
|
6595 |
|
6596 |
-
#: lib/wfScanEngine.php:
|
6597 |
-
#: lib/wordfenceClass.php:
|
6598 |
msgid "This site appears to be behind a front-end proxy, so using the X-Real-IP HTTP header will resolve to the correct IPs."
|
6599 |
msgstr ""
|
6600 |
|
6601 |
-
#: lib/wfScanEngine.php:
|
6602 |
-
#: lib/wordfenceClass.php:
|
6603 |
msgid "This site appears to be behind Cloudflare, so using the Cloudflare \"CF-Connecting-IP\" HTTP header will resolve to the correct IPs."
|
6604 |
msgstr ""
|
6605 |
|
6606 |
-
#: lib/wfScanEngine.php:
|
6607 |
msgid "'How does Wordfence get IPs' is misconfigured"
|
6608 |
msgstr ""
|
6609 |
|
6610 |
#. translators: Support URL.
|
6611 |
-
#: lib/wfScanEngine.php:
|
6612 |
msgid "A test request to this website was detected on a different value for this setting. IP blocking and live traffic information may not be accurate. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Get More Information<span class=\"screen-reader-text\"> ("
|
6613 |
msgstr ""
|
6614 |
|
6615 |
-
#: lib/wfScanEngine.php:
|
6616 |
msgid "Check for publicly accessible configuration files, backup files and logs"
|
6617 |
msgstr ""
|
6618 |
|
6619 |
#. translators: File path.
|
6620 |
-
#: lib/wfScanEngine.php:
|
6621 |
msgid "Publicly accessible config, backup, or log file found: %s"
|
6622 |
msgstr ""
|
6623 |
|
6624 |
#. translators: 1. URL to publicly accessible file. 2. Support URL.
|
6625 |
-
#: lib/wfScanEngine.php:
|
6626 |
msgid "<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%1$s</a> is publicly accessible and may expose source code or sensitive information about your site. Files such as this one are commonly checked for by scanners and should be made inaccessible. Alternately, some can be removed if you are certain your site does not need them. Sites using the nginx web server may need manual configuration changes to protect such files. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn more<span class=\"screen-reader-text\"> ("
|
6627 |
msgstr ""
|
6628 |
|
6629 |
-
#: lib/wfScanEngine.php:
|
6630 |
msgid "Checking if your server discloses the path to the document root"
|
6631 |
msgstr ""
|
6632 |
|
6633 |
-
#: lib/wfScanEngine.php:
|
6634 |
msgid "Web server exposes the document root"
|
6635 |
msgstr ""
|
6636 |
|
6637 |
-
#: lib/wfScanEngine.php:
|
6638 |
msgid "Full Path Disclosure (FPD) vulnerabilities enable the attacker to see the path to the webroot/file. e.g.: /home/user/htdocs/file/. Certain vulnerabilities, such as using the load_file() (within a SQL Injection) query to view the page source, require the attacker to have the full path to the file they wish to view."
|
6639 |
msgstr ""
|
6640 |
|
6641 |
-
#: lib/wfScanEngine.php:
|
6642 |
msgid "Directory listing is enabled"
|
6643 |
msgstr ""
|
6644 |
|
6645 |
-
#: lib/wfScanEngine.php:
|
6646 |
msgid "Directory listing provides an attacker with the complete index of all the resources located inside of the directory. The specific risks and consequences vary depending on which files are listed and accessible, but it is recommended that you disable it unless it is needed."
|
6647 |
msgstr ""
|
6648 |
|
6649 |
-
#: lib/wfScanEngine.php:
|
6650 |
msgid "Checking if your site is being Spamvertised"
|
6651 |
msgstr ""
|
6652 |
|
6653 |
-
#: lib/wfScanEngine.php:
|
6654 |
msgid "Check if your site is being Spamvertized is for paid members only"
|
6655 |
msgstr ""
|
6656 |
|
6657 |
-
#: lib/wfScanEngine.php:
|
6658 |
-
msgid "Wordfence could not read the
|
6659 |
msgstr ""
|
6660 |
|
6661 |
-
#: lib/wfScanEngine.php:
|
6662 |
msgid "Checking for paths skipped due to scan settings"
|
6663 |
msgstr ""
|
6664 |
|
6665 |
#. translators: Number of paths skipped in scan.
|
6666 |
-
#: lib/wfScanEngine.php:
|
6667 |
msgid ", and %d more."
|
6668 |
msgstr ""
|
6669 |
|
6670 |
#. translators: Number of paths skipped in scan.
|
6671 |
-
#: lib/wfScanEngine.php:
|
6672 |
msgid "%d path was skipped for the malware scan due to scan settings"
|
6673 |
msgid_plural "%d paths were skipped for the malware scan due to scan settings"
|
6674 |
msgstr[0] ""
|
6675 |
msgstr[1] ""
|
6676 |
|
6677 |
#. translators: 1. Number of paths skipped in scan. 2. Support URL. 3. List of skipped paths.
|
6678 |
-
#: lib/wfScanEngine.php:
|
6679 |
msgid "The option \"Scan files outside your WordPress installation\" is off by default, which means %1$d path and its file(s) will not be scanned for malware or unauthorized changes. To continue skipping this path, you may ignore this issue. Or to start scanning it, enable the option and subsequent scans will include it. Some paths may not be necessary to scan, so this is optional. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span class=\"screen-reader-text\"> ("
|
6680 |
msgid_plural "The option \"Scan files outside your WordPress installation\" is off by default, which means %1$d paths and their file(s) will not be scanned for malware or unauthorized changes. To continue skipping these paths, you may ignore this issue. Or to start scanning them, enable the option and subsequent scans will include them. Some paths may not be necessary to scan, so this is optional. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span class=\"screen-reader-text\"> ("
|
6681 |
msgstr[0] ""
|
6682 |
msgstr[1] ""
|
6683 |
|
6684 |
-
#: lib/wfScanEngine.php:
|
6685 |
msgid "Including files that are outside the WordPress installation in the scan."
|
6686 |
msgstr ""
|
6687 |
|
6688 |
-
#: lib/wfScanEngine.php:
|
6689 |
msgid "Getting plugin list from WordPress"
|
6690 |
msgstr ""
|
6691 |
|
6692 |
#. translators: Number of plugins.
|
6693 |
-
#: lib/wfScanEngine.php:
|
6694 |
msgid "Found %d plugin"
|
6695 |
msgid_plural "Found %d plugins"
|
6696 |
msgstr[0] ""
|
6697 |
msgstr[1] ""
|
6698 |
|
6699 |
-
#: lib/wfScanEngine.php:
|
6700 |
msgid "Getting theme list from WordPress"
|
6701 |
msgstr ""
|
6702 |
|
6703 |
#. translators: Number of themes.
|
6704 |
-
#: lib/wfScanEngine.php:
|
6705 |
msgid "Found %d theme"
|
6706 |
msgid_plural "Found %d themes"
|
6707 |
msgstr[0] ""
|
6708 |
msgstr[1] ""
|
6709 |
|
6710 |
-
#: lib/wfScanEngine.php:
|
6711 |
msgid "Scanning file contents for infections and vulnerabilities"
|
6712 |
msgstr ""
|
6713 |
|
6714 |
-
#: lib/wfScanEngine.php:
|
6715 |
msgid "Skipping scan of file contents for infections and vulnerabilities"
|
6716 |
msgstr ""
|
6717 |
|
6718 |
-
#: lib/wfScanEngine.php:
|
6719 |
msgid "Scanning file contents for URLs on a domain blocklist"
|
6720 |
msgstr ""
|
6721 |
|
6722 |
-
#: lib/wfScanEngine.php:
|
6723 |
msgid "Skipping scan of file contents for URLs on a domain blocklist"
|
6724 |
msgstr ""
|
6725 |
|
6726 |
-
#: lib/wfScanEngine.php:
|
6727 |
msgid "Starting scan of file contents"
|
6728 |
msgstr ""
|
6729 |
|
6730 |
-
#: lib/wfScanEngine.php:
|
6731 |
msgid "Done file contents scan"
|
6732 |
msgstr ""
|
6733 |
|
6734 |
#. translators: Scan result description.
|
6735 |
-
#: lib/wfScanEngine.php:
|
6736 |
-
#: lib/wfScanEngine.php:
|
6737 |
-
#: lib/wfScanEngine.php:
|
6738 |
msgid "Adding issue: %s"
|
6739 |
msgstr ""
|
6740 |
|
6741 |
-
#: lib/wfScanEngine.php:
|
6742 |
msgid "Scanning for publicly accessible quarantined files"
|
6743 |
msgstr ""
|
6744 |
|
6745 |
#. translators: File path.
|
6746 |
-
#: lib/wfScanEngine.php:
|
6747 |
msgid "Testing accessibility of: %s"
|
6748 |
msgstr ""
|
6749 |
|
6750 |
#. translators: File path.
|
6751 |
-
#: lib/wfScanEngine.php:
|
6752 |
msgid "Publicly accessible quarantined file found: %s"
|
6753 |
msgstr ""
|
6754 |
|
6755 |
#. translators: URL to publicly accessible file.
|
6756 |
-
#: lib/wfScanEngine.php:
|
6757 |
msgid "<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%1$s<span class=\"screen-reader-text\"> ("
|
6758 |
msgstr ""
|
6759 |
|
6760 |
-
#: lib/wfScanEngine.php:
|
6761 |
msgid "Scanning posts for URLs on a domain blocklist"
|
6762 |
msgstr ""
|
6763 |
|
6764 |
#. translators: Number of posts left to scan.
|
6765 |
-
#: lib/wfScanEngine.php:
|
6766 |
msgid "Scanning posts with %d left to scan."
|
6767 |
msgstr ""
|
6768 |
|
6769 |
-
#: lib/wfScanEngine.php:
|
6770 |
msgid "Post title contains suspicious code"
|
6771 |
msgstr ""
|
6772 |
|
6773 |
-
#: lib/wfScanEngine.php:
|
6774 |
msgid "This post contains code that is suspicious. Please check the title of the post and confirm that the code in the title is not malicious."
|
6775 |
msgstr ""
|
6776 |
|
6777 |
-
#: lib/wfScanEngine.php:
|
6778 |
msgid "Examining URLs found in posts we scanned for dangerous websites"
|
6779 |
msgstr ""
|
6780 |
|
6781 |
-
#: lib/wfScanEngine.php:
|
6782 |
-
#: lib/wfScanEngine.php:
|
6783 |
msgid "Done examining URLs"
|
6784 |
msgstr ""
|
6785 |
|
6786 |
#. translators: 1. WordPress Post type. 2. URL.
|
6787 |
-
#: lib/wfScanEngine.php:
|
6788 |
-
#: lib/wfScanEngine.php:
|
6789 |
msgid "%1$s contains a suspected malware URL: %2$s"
|
6790 |
msgstr ""
|
6791 |
|
6792 |
#. translators: 1. WordPress Post type. 2. URL. 3. URL.
|
6793 |
#. translators: 1. WordPress post type. 2. URL. 3. URL.
|
6794 |
-
#: lib/wfScanEngine.php:
|
6795 |
-
#: lib/wfScanEngine.php:
|
6796 |
msgid "This %1$s contains a suspected malware URL listed on Google's list of malware sites. The URL is: %2$s - More info available at <a href=\"http://safebrowsing.clients.google.com/safebrowsing/diagnostic?site=%3$s&client=googlechrome&hl=en-US\" target=\"_blank\" rel=\"noopener noreferrer\">Google Safe Browsing diagnostic page<span class=\"screen-reader-text\"> ("
|
6797 |
msgstr ""
|
6798 |
|
6799 |
#. translators: 1. WordPress Post type. 2. URL.
|
6800 |
-
#: lib/wfScanEngine.php:
|
6801 |
msgid "%1$s contains a suspected phishing site URL: %2$s"
|
6802 |
msgstr ""
|
6803 |
|
6804 |
#. translators: 1. WordPress Post type. 2. URL.
|
6805 |
#. translators: 1. WordPress post type. 2. URL.
|
6806 |
-
#: lib/wfScanEngine.php:
|
6807 |
-
#: lib/wfScanEngine.php:
|
6808 |
msgid "This %1$s contains a URL that is a suspected phishing site that is currently listed on Google's list of known phishing sites. The URL is: %2$s"
|
6809 |
msgstr ""
|
6810 |
|
6811 |
#. translators: 1. WordPress Post type. 2. URL.
|
6812 |
#. translators: 1. WordPress post type. 2. URL.
|
6813 |
-
#: lib/wfScanEngine.php:
|
6814 |
-
#: lib/wfScanEngine.php:
|
6815 |
msgid "This %1$s contains a URL that is currently listed on Wordfence's domain blocklist. The URL is: %2$s"
|
6816 |
msgstr ""
|
6817 |
|
6818 |
#. translators: Scan result description.
|
6819 |
-
#: lib/wfScanEngine.php:
|
6820 |
msgid "Adding issue: %1$s"
|
6821 |
msgstr ""
|
6822 |
|
6823 |
-
#: lib/wfScanEngine.php:
|
6824 |
msgid "Scanning comments for URLs on a domain blocklist"
|
6825 |
msgstr ""
|
6826 |
|
6827 |
#. translators: Number of comments left to scan.
|
6828 |
-
#: lib/wfScanEngine.php:
|
6829 |
msgid "Scanning comments with %d left to scan."
|
6830 |
msgstr ""
|
6831 |
|
6832 |
#. translators: 1. WordPress post type. 2. WordPress author username.
|
6833 |
-
#: lib/wfScanEngine.php:
|
6834 |
msgid "%1$s with author %2$s contains a suspected malware URL."
|
6835 |
msgstr ""
|
6836 |
|
6837 |
#. translators: WordPress post type.
|
6838 |
-
#: lib/wfScanEngine.php:
|
6839 |
msgid "%s contains a suspected phishing site URL."
|
6840 |
msgstr ""
|
6841 |
|
6842 |
#. translators: URL.
|
6843 |
-
#: lib/wfScanEngine.php:
|
6844 |
msgid "%s contains a suspected malware URL."
|
6845 |
msgstr ""
|
6846 |
|
6847 |
#. translators: WordPress username.
|
6848 |
-
#: lib/wfScanEngine.php:
|
6849 |
msgid "Author: %s"
|
6850 |
msgstr ""
|
6851 |
|
6852 |
#. translators: Email address.
|
6853 |
-
#: lib/wfScanEngine.php:
|
6854 |
msgid "Email: %s"
|
6855 |
msgstr ""
|
6856 |
|
6857 |
#. translators: IP address.
|
6858 |
-
#: lib/wfScanEngine.php:
|
6859 |
msgid "Source IP: %s"
|
6860 |
msgstr ""
|
6861 |
|
6862 |
#. translators: Comment description.
|
6863 |
-
#: lib/wfScanEngine.php:
|
6864 |
msgid "Scanning comment with %s"
|
6865 |
msgstr ""
|
6866 |
|
6867 |
#. translators: Comment description.
|
6868 |
-
#: lib/wfScanEngine.php:
|
6869 |
-
#: lib/wfScanEngine.php:
|
6870 |
msgid "Marking comment as spam for containing a malware URL. Comment has %s"
|
6871 |
msgstr ""
|
6872 |
|
6873 |
#. translators: Comment description.
|
6874 |
-
#: lib/wfScanEngine.php:
|
6875 |
msgid "Marking comment as spam for containing a phishing URL. Comment has %s"
|
6876 |
msgstr ""
|
6877 |
|
6878 |
#. translators: Comment description.
|
6879 |
-
#: lib/wfScanEngine.php:
|
6880 |
msgid "Scanned comment with %s"
|
6881 |
msgstr ""
|
6882 |
|
6883 |
-
#: lib/wfScanEngine.php:
|
6884 |
msgid "Scanning for weak passwords"
|
6885 |
msgstr ""
|
6886 |
|
6887 |
-
#: lib/wfScanEngine.php:
|
6888 |
msgid "We were unable to generate the user list for your password check."
|
6889 |
msgstr ""
|
6890 |
|
6891 |
#. translators: Number of users.
|
6892 |
-
#: lib/wfScanEngine.php:
|
6893 |
msgid "Starting password strength check on %d user."
|
6894 |
msgid_plural "Starting password strength check on %d users."
|
6895 |
msgstr[0] ""
|
6896 |
msgstr[1] ""
|
6897 |
|
6898 |
#. translators: Number of users.
|
6899 |
-
#: lib/wfScanEngine.php:
|
6900 |
msgid "Total of %d users left to process in password strength check."
|
6901 |
msgid_plural "Total of %d users left to process in password strength check."
|
6902 |
msgstr[0] ""
|
6903 |
msgstr[1] ""
|
6904 |
|
6905 |
#. translators: WordPress user ID.
|
6906 |
-
#: lib/wfScanEngine.php:
|
6907 |
msgid "Could not get username for user with ID %d when checking password strength."
|
6908 |
msgstr ""
|
6909 |
|
6910 |
#. translators: 1. WordPress username. 2. WordPress user ID.
|
6911 |
-
#: lib/wfScanEngine.php:
|
6912 |
msgid "Checking password strength of user '%1$s' with ID %2$d"
|
6913 |
msgstr ""
|
6914 |
|
6915 |
#. translators: 1. WordPress username. 2. WordPress capability.
|
6916 |
-
#: lib/wfScanEngine.php:
|
6917 |
msgid "User \"%1$s\" with \"%2$s\" access has an easy password."
|
6918 |
msgstr ""
|
6919 |
|
6920 |
#. translators: WordPress capability.
|
6921 |
-
#: lib/wfScanEngine.php:
|
6922 |
msgid "A user with the a role of '%s' has a password that is easy to guess. Please change this password yourself or ask the user to change it."
|
6923 |
msgstr ""
|
6924 |
|
6925 |
#. translators: WordPress username.
|
6926 |
-
#: lib/wfScanEngine.php:
|
6927 |
msgid "User \"%s\" with 'subscriber' access has a very easy password."
|
6928 |
msgstr ""
|
6929 |
|
6930 |
-
#: lib/wfScanEngine.php:
|
6931 |
msgid "A user with 'subscriber' access has a password that is very easy to guess. Please either change it or ask the user to change their password."
|
6932 |
msgstr ""
|
6933 |
|
6934 |
#. translators: Scan result description.
|
6935 |
-
#: lib/wfScanEngine.php:
|
6936 |
msgid "Adding issue %s"
|
6937 |
msgstr ""
|
6938 |
|
6939 |
#. translators: WordPress username.
|
6940 |
-
#: lib/wfScanEngine.php:
|
6941 |
msgid "Completed checking password strength of user '%s'"
|
6942 |
msgstr ""
|
6943 |
|
6944 |
-
#: lib/wfScanEngine.php:
|
6945 |
msgid "Scanning to check available disk space"
|
6946 |
msgstr ""
|
6947 |
|
6948 |
-
#: lib/wfScanEngine.php:
|
6949 |
msgid "Unable to access available disk space information"
|
6950 |
msgstr ""
|
6951 |
|
6952 |
#. translators: 1. Number of bytes. 2. Number of bytes.
|
6953 |
-
#: lib/wfScanEngine.php:
|
6954 |
msgid "Total disk space: %1$s -- Free disk space: %2$s"
|
6955 |
msgstr ""
|
6956 |
|
6957 |
#. translators: Number of bytes.
|
6958 |
-
#: lib/wfScanEngine.php:
|
6959 |
msgid "The disk has %s MB available"
|
6960 |
msgstr ""
|
6961 |
|
6962 |
#. translators: Number of bytes.
|
6963 |
-
#: lib/wfScanEngine.php:
|
6964 |
msgid "You have %s disk space remaining"
|
6965 |
msgstr ""
|
6966 |
|
6967 |
#. translators: Number of bytes.
|
6968 |
-
#: lib/wfScanEngine.php:
|
6969 |
msgid "You only have %s of your disk space remaining. Please free up disk space or your website may stop serving requests."
|
6970 |
msgstr ""
|
6971 |
|
6972 |
-
#: lib/wfScanEngine.php:
|
6973 |
msgid "Checking Web Application Firewall status"
|
6974 |
msgstr ""
|
6975 |
|
6976 |
-
#: lib/wfScanEngine.php:
|
6977 |
msgid "Web Application Firewall is disabled"
|
6978 |
msgstr ""
|
6979 |
|
6980 |
#. translators: Support URL.
|
6981 |
-
#: lib/wfScanEngine.php:
|
6982 |
msgid "Wordfence's Web Application Firewall has been unexpectedly disabled. If you see a notice at the top of the Wordfence admin pages that says \"The Wordfence Web Application Firewall cannot run,\" click the link in that message to rebuild the configuration. If this does not work, you may need to fix file permissions. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">More Details<span class=\"screen-reader-text\"> ("
|
6983 |
msgstr ""
|
6984 |
|
6985 |
-
#: lib/wfScanEngine.php:
|
6986 |
msgid "Scanning for old themes, plugins and core files"
|
6987 |
msgstr ""
|
6988 |
|
6989 |
-
#: lib/wfScanEngine.php:
|
6990 |
msgid "Your WordPress version is out of date"
|
6991 |
msgstr ""
|
6992 |
|
6993 |
#. translators: Software version.
|
6994 |
-
#: lib/wfScanEngine.php:
|
6995 |
msgid "WordPress version %s is now available. Please upgrade immediately to get the latest security updates from WordPress."
|
6996 |
msgstr ""
|
6997 |
|
6998 |
#. translators: 1. Plugin name. 2. Software version. 3. Software version.
|
6999 |
-
#: lib/wfScanEngine.php:
|
7000 |
msgid "The Plugin \"%1$s\" needs an upgrade (%2$s -> %3$s)."
|
7001 |
msgstr ""
|
7002 |
|
7003 |
#. translators: Theme name.
|
7004 |
-
#: lib/wfScanEngine.php:
|
7005 |
-
#: lib/wfScanEngine.php:
|
7006 |
msgid "You need to upgrade \"%s\" to the newest version to ensure you have any security fixes the developer has released."
|
7007 |
msgstr ""
|
7008 |
|
7009 |
#. translators: 1. Theme name. 2. Software version. 3. Software version.
|
7010 |
-
#: lib/wfScanEngine.php:
|
7011 |
msgid "The Theme \"%1$s\" needs an upgrade (%2$s -> %3$s)."
|
7012 |
msgstr ""
|
7013 |
|
7014 |
#. translators: 1. Plugin name. 2. Software version. 3. Software version.
|
7015 |
-
#: lib/wfScanEngine.php:
|
7016 |
msgid "The Plugin \"%1$s\" appears to be abandoned (updated %2$s, tested to WP %3$s)."
|
7017 |
msgstr ""
|
7018 |
|
7019 |
#. translators: 1. Plugin name. 2. Software version.
|
7020 |
-
#: lib/wfScanEngine.php:
|
7021 |
msgid "It was last updated %1$s ago and tested up to WordPress %2$s."
|
7022 |
msgstr ""
|
7023 |
|
7024 |
#. translators: 1. Plugin name. 2. Software version.
|
7025 |
-
#: lib/wfScanEngine.php:
|
7026 |
msgid "The Plugin \"%1$s\" appears to be abandoned (updated %2$s)."
|
7027 |
msgstr ""
|
7028 |
|
7029 |
#. translators: Time duration.
|
7030 |
-
#: lib/wfScanEngine.php:
|
7031 |
msgid "It was last updated %s ago."
|
7032 |
msgstr ""
|
7033 |
|
7034 |
-
#: lib/wfScanEngine.php:
|
7035 |
-
#: lib/wfScanEngine.php:
|
7036 |
msgid "It has unpatched security issues and may have compatibility problems with the current version of WordPress."
|
7037 |
msgstr ""
|
7038 |
|
7039 |
-
#: lib/wfScanEngine.php:
|
7040 |
-
#: lib/wfScanEngine.php:
|
7041 |
msgid "Plugins can be removed from wordpress.org for various reasons. This can include benign issues like a plugin author discontinuing development or moving the plugin distribution to their own site, but some might also be due to security issues. In any case, future updates may or may not be available, so it is worth investigating the cause and deciding whether to temporarily or permanently replace or remove the plugin."
|
7042 |
msgstr ""
|
7043 |
|
7044 |
#. translators: Support URL.
|
7045 |
-
#: lib/wfScanEngine.php:
|
7046 |
-
#: lib/wfScanEngine.php:
|
7047 |
-
#: lib/wfScanEngine.php:
|
7048 |
-
#: lib/wfScanEngine.php:
|
7049 |
msgid "<a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Get more information.<span class=\"screen-reader-text\"> ("
|
7050 |
msgstr ""
|
7051 |
|
7052 |
#. translators: Plugin name.
|
7053 |
-
#: lib/wfScanEngine.php:
|
7054 |
msgid "The Plugin \"%s\" has been removed from wordpress.org."
|
7055 |
msgstr ""
|
7056 |
|
7057 |
-
#: lib/wfScanEngine.php:
|
7058 |
msgid "Scanning for admin users not created through WordPress"
|
7059 |
msgstr ""
|
7060 |
|
7061 |
#. translators: WordPress username.
|
7062 |
-
#: lib/wfScanEngine.php:
|
7063 |
msgid "An admin user with the username %s was created outside of WordPress."
|
7064 |
msgstr ""
|
7065 |
|
7066 |
#. translators: WordPress username.
|
7067 |
-
#: lib/wfScanEngine.php:
|
7068 |
msgid "An admin user with the username %s was created outside of WordPress. It's possible a plugin could have created the account, but if you do not recognize the user, we suggest you remove it."
|
7069 |
msgstr ""
|
7070 |
|
7071 |
#. translators: WordPress username.
|
7072 |
-
#: lib/wfScanEngine.php:
|
7073 |
msgid "An admin user with a suspicious username %s was found."
|
7074 |
msgstr ""
|
7075 |
|
7076 |
#. translators: WordPress username.
|
7077 |
-
#: lib/wfScanEngine.php:
|
7078 |
msgid "An admin user with a suspicious username %s was found. Administrators accounts with usernames similar to this are commonly seen created by hackers. It's possible a plugin could have created the account, but if you do not recognize the user, we suggest you remove it."
|
7079 |
msgstr ""
|
7080 |
|
7081 |
-
#: lib/wfScanEngine.php:
|
7082 |
msgid "Scanning for suspicious site options"
|
7083 |
msgstr ""
|
7084 |
|
7085 |
-
#: lib/wfScanEngine.php:
|
7086 |
msgid "Examining URLs found in the options we scanned for dangerous websites"
|
7087 |
msgstr ""
|
7088 |
|
7089 |
#. translators: URL.
|
7090 |
-
#: lib/wfScanEngine.php:
|
7091 |
-
#: lib/wfScanEngine.php:
|
7092 |
msgid "Option contains a suspected malware URL: %s"
|
7093 |
msgstr ""
|
7094 |
|
7095 |
#. translators: URL.
|
7096 |
-
#: lib/wfScanEngine.php:
|
7097 |
msgid "This option contains a suspected malware URL listed on Google's list of malware sites. It may indicate your site is infected with malware. The URL is: %s"
|
7098 |
msgstr ""
|
7099 |
|
7100 |
#. translators: URL.
|
7101 |
-
#: lib/wfScanEngine.php:
|
7102 |
msgid "Option contains a suspected phishing site URL: %s"
|
7103 |
msgstr ""
|
7104 |
|
7105 |
#. translators: URL.
|
7106 |
-
#: lib/wfScanEngine.php:
|
7107 |
msgid "This option contains a URL that is a suspected phishing site that is currently listed on Google's list of known phishing sites. It may indicate your site is infected with malware. The URL is: %s"
|
7108 |
msgstr ""
|
7109 |
|
7110 |
#. translators: URL.
|
7111 |
-
#: lib/wfScanEngine.php:
|
7112 |
msgid "This option contains a URL that is currently listed on Wordfence's domain blocklist. It may indicate your site is infected with malware. The URL is: %s"
|
7113 |
msgstr ""
|
7114 |
|
7115 |
-
#: lib/wfScanEngine.php:
|
7116 |
msgid "Checking for future GeoIP support"
|
7117 |
msgstr ""
|
7118 |
|
7119 |
-
#: lib/wfScanEngine.php:
|
7120 |
msgid "PHP Update Needed for Country Blocking"
|
7121 |
msgstr ""
|
7122 |
|
7123 |
#. translators: Software version.
|
7124 |
-
#: lib/wfScanEngine.php:
|
7125 |
msgid "The GeoIP database that is required for country blocking has been updated to a new format. This new format requires sites to run PHP 5.4 or newer, and this site is on PHP %s. To ensure country blocking continues functioning, please update PHP."
|
7126 |
msgstr ""
|
7127 |
|
7128 |
-
#: lib/wfScanEngine.php:
|
7129 |
msgid "Previous scan was stopped successfully."
|
7130 |
msgstr ""
|
7131 |
|
7132 |
-
#: lib/wfScanEngine.php:
|
7133 |
msgid "Scan was stopped on administrator request."
|
7134 |
msgstr ""
|
7135 |
|
7136 |
-
#: lib/wfScanEngine.php:
|
7137 |
msgid "Entering start scan routine"
|
7138 |
msgstr ""
|
7139 |
|
7140 |
-
#: lib/wfScanEngine.php:
|
7141 |
msgid "A scan is already running. Use the stop scan button if you would like to terminate the current scan."
|
7142 |
msgstr ""
|
7143 |
|
7144 |
#. translators: Support URL.
|
7145 |
-
#: lib/wfScanEngine.php:
|
7146 |
msgid "Test result of scan start URL fetch: %s"
|
7147 |
msgstr ""
|
7148 |
|
7149 |
#. translators: WordPress admin panel URL.
|
7150 |
-
#: lib/wfScanEngine.php:
|
7151 |
msgid "Starting cron with normal ajax at URL %s"
|
7152 |
msgstr ""
|
7153 |
|
7154 |
#. translators: Error message.
|
7155 |
#. translators: WordPress admin panel URL.
|
7156 |
-
#: lib/wfScanEngine.php:
|
7157 |
-
#: lib/wfScanEngine.php:
|
7158 |
msgid "There was an error starting the scan: %s."
|
7159 |
msgstr ""
|
7160 |
|
7161 |
-
#: lib/wfScanEngine.php:
|
7162 |
-
#: lib/wfScanEngine.php:
|
7163 |
msgid "There was an unknown error starting the scan."
|
7164 |
msgstr ""
|
7165 |
|
7166 |
-
#: lib/wfScanEngine.php:
|
7167 |
-
#: lib/wfScanEngine.php:
|
7168 |
msgid "Scan process ended after forking."
|
7169 |
msgstr ""
|
7170 |
|
7171 |
#. translators: WordPress admin panel URL.
|
7172 |
-
#: lib/wfScanEngine.php:
|
7173 |
msgid "Starting cron via proxy at URL %s"
|
7174 |
msgstr ""
|
7175 |
|
7176 |
#. translators: Time in seconds.
|
7177 |
-
#: lib/wfScanEngine.php:
|
7178 |
msgid "Got value from wf config maxExecutionTime: %s"
|
7179 |
msgstr ""
|
7180 |
|
7181 |
#. translators: Time in seconds.
|
7182 |
-
#: lib/wfScanEngine.php:
|
7183 |
msgid "getMaxExecutionTime() returning config value: %s"
|
7184 |
msgstr ""
|
7185 |
|
7186 |
#. translators: PHP ini value.
|
7187 |
-
#: lib/wfScanEngine.php:
|
7188 |
msgid "Got max_execution_time value from ini: %s"
|
7189 |
msgstr ""
|
7190 |
|
7191 |
#. translators: 1. PHP ini setting. 2. Time in seconds.
|
7192 |
-
#: lib/wfScanEngine.php:
|
7193 |
msgid "ini value of %1$d is higher than value for WORDFENCE_SCAN_MAX_INI_EXECUTION_TIME (%2$d), reducing"
|
7194 |
msgstr ""
|
7195 |
|
7196 |
#. translators: PHP ini setting.
|
7197 |
-
#: lib/wfScanEngine.php:
|
7198 |
msgid "getMaxExecutionTime() returning half ini value: %d"
|
7199 |
msgstr ""
|
7200 |
|
7201 |
-
#: lib/wfScanEngine.php:
|
7202 |
msgid "getMaxExecutionTime() returning default of: 15"
|
7203 |
msgstr ""
|
7204 |
|
7205 |
#. translators: 1. HTTP status code.
|
7206 |
-
#: lib/wfScanEngine.php:
|
7207 |
msgid "Got error response from Wordfence servers: %s"
|
7208 |
msgstr ""
|
7209 |
|
7210 |
-
#: lib/wfScanEngine.php:
|
7211 |
msgid "Invalid response from Wordfence servers."
|
7212 |
msgstr ""
|
7213 |
|
@@ -7377,1447 +7377,1459 @@ msgid ""
|
|
7377 |
"select the license about to expire and click the button to renew that license."
|
7378 |
msgstr ""
|
7379 |
|
7380 |
-
#: lib/wordfenceClass.php:
|
7381 |
msgid "Your Premium Wordfence License is set to auto-renew in 10 days."
|
7382 |
msgstr ""
|
7383 |
|
7384 |
-
#: lib/wordfenceClass.php:
|
7385 |
msgid "To update your license settings please visit http://www.wordfence.com/zz9/dashboard"
|
7386 |
msgstr ""
|
7387 |
|
7388 |
-
#: lib/wordfenceClass.php:
|
7389 |
msgid "Your Premium Wordfence License expires in less than 2 weeks."
|
7390 |
msgstr ""
|
7391 |
|
7392 |
-
#: lib/wordfenceClass.php:
|
7393 |
msgid "Your Premium Wordfence License expires in less than a week."
|
7394 |
msgstr ""
|
7395 |
|
7396 |
-
#: lib/wordfenceClass.php:
|
7397 |
msgid "Your Premium Wordfence License expires in 2 days."
|
7398 |
msgstr ""
|
7399 |
|
7400 |
-
#: lib/wordfenceClass.php:
|
7401 |
msgid "Your Premium Wordfence License expires in 1 day."
|
7402 |
msgstr ""
|
7403 |
|
7404 |
-
#: lib/wordfenceClass.php:
|
7405 |
msgid "Your Wordfence Premium License has Expired!"
|
7406 |
msgstr ""
|
7407 |
|
7408 |
-
#: lib/wordfenceClass.php:
|
7409 |
msgid "The Wordfence Premium License in use on this site has been removed from your account."
|
7410 |
msgstr ""
|
7411 |
|
7412 |
-
#: lib/wordfenceClass.php:
|
7413 |
msgid "The license you were using has been removed from your account. Please reach out to billing@wordfence.com or create a Premium support case at https://support.wordfence.com/support/tickets for more information. Our staff is happy to help."
|
7414 |
msgstr ""
|
7415 |
|
7416 |
#. translators: Wordfence license key.
|
7417 |
-
#: lib/wordfenceClass.php:
|
7418 |
msgid "Could not verify Wordfence License: %s"
|
7419 |
msgstr ""
|
7420 |
|
7421 |
#. translators: WordPress version.
|
7422 |
-
#: lib/wordfenceClass.php:
|
7423 |
msgid "WordPress (v%s)"
|
7424 |
msgstr ""
|
7425 |
|
7426 |
#. translators: Number of plugins.
|
7427 |
-
#: lib/wordfenceClass.php:
|
7428 |
msgid "%d plugin"
|
7429 |
msgid_plural "%d plugins"
|
7430 |
msgstr[0] ""
|
7431 |
msgstr[1] ""
|
7432 |
|
7433 |
#. translators: Number of themes.
|
7434 |
-
#: lib/wordfenceClass.php:
|
7435 |
msgid "%d theme"
|
7436 |
msgid_plural "%d themes"
|
7437 |
msgstr[0] ""
|
7438 |
msgstr[1] ""
|
7439 |
|
7440 |
-
#: lib/wordfenceClass.php:
|
7441 |
msgid "An update is available for "
|
7442 |
msgid_plural "Updates are available for "
|
7443 |
msgstr[0] ""
|
7444 |
msgstr[1] ""
|
7445 |
|
7446 |
-
#: lib/wordfenceClass.php:
|
7447 |
msgid "and "
|
7448 |
msgstr ""
|
7449 |
|
7450 |
#. translators: Wordfence version.
|
7451 |
-
#: lib/wordfenceClass.php:
|
7452 |
msgid "`runInstall` called with previous version = %s"
|
7453 |
msgstr ""
|
7454 |
|
7455 |
-
#: lib/wordfenceClass.php:
|
7456 |
-
#: lib/wordfenceClass.php:
|
7457 |
msgid "Could not understand the response we received from the Wordfence servers when applying for a free license key."
|
7458 |
msgstr ""
|
7459 |
|
7460 |
-
#: lib/wordfenceClass.php:
|
7461 |
msgid "Automatically generated from previous country blocking settings"
|
7462 |
msgstr ""
|
7463 |
|
7464 |
-
#: lib/wordfenceClass.php:
|
7465 |
#: views/user/disabled-application-passwords.php:15
|
7466 |
msgid "Application passwords have been disabled by Wordfence."
|
7467 |
msgstr ""
|
7468 |
|
7469 |
-
#: lib/wordfenceClass.php:
|
7470 |
msgid "Upgrade To Premium"
|
7471 |
msgstr ""
|
7472 |
|
7473 |
-
#: lib/wordfenceClass.php:
|
7474 |
msgid "wp_mail from address is incomplete, attempting to fix"
|
7475 |
msgstr ""
|
7476 |
|
7477 |
#. translators: Email address.
|
7478 |
-
#: lib/wordfenceClass.php:
|
7479 |
msgid "Fixing wp_mail from address: %s"
|
7480 |
msgstr ""
|
7481 |
|
7482 |
-
#: lib/wordfenceClass.php:
|
7483 |
msgid "You appear to have logged out or you are not an admin. Please sign-out and sign-in again."
|
7484 |
msgstr ""
|
7485 |
|
7486 |
-
#: lib/wordfenceClass.php:
|
7487 |
msgid "Your browser sent an invalid security token to Wordfence. Please try reloading this page or signing out and in again."
|
7488 |
msgstr ""
|
7489 |
|
7490 |
-
#: lib/wordfenceClass.php:
|
7491 |
msgid "Wordfence encountered an internal error executing that request."
|
7492 |
msgstr ""
|
7493 |
|
7494 |
#. translators: Error message.
|
7495 |
-
#: lib/wordfenceClass.php:
|
7496 |
msgid "2FA Migration Error: %s"
|
7497 |
msgstr ""
|
7498 |
|
7499 |
-
#: lib/wordfenceClass.php:
|
7500 |
msgid "Please choose a stronger password. Try including numbers, symbols, and a mix of upper and lowercase letters and remove common words."
|
7501 |
msgstr ""
|
7502 |
|
7503 |
-
#: lib/wordfenceClass.php:
|
7504 |
msgid "Passwords containing a space followed by \"wf\" without quotes are not allowed."
|
7505 |
msgstr ""
|
7506 |
|
7507 |
#. translators: Support URL.
|
7508 |
-
#: lib/wordfenceClass.php:
|
7509 |
msgid "Please choose a different password. The password you are using exists on lists of passwords leaked in data breaches. Attackers use such lists to break into sites and install malicious code. <a href=\"%s\">Learn More</a>"
|
7510 |
msgstr ""
|
7511 |
|
7512 |
#. translators: 1. Password reset limit (number). 2. WordPress username.
|
7513 |
-
#: lib/wordfenceClass.php:
|
7514 |
msgid "Exceeded the maximum number of tries to recover their password which is set at: %1$s. The last username or email they entered before getting locked out was: '%2$s'"
|
7515 |
msgstr ""
|
7516 |
|
7517 |
-
#: lib/wordfenceClass.php:
|
7518 |
-
#: lib/wordfenceClass.php:
|
7519 |
msgid "Sorry but your browser sent an invalid security token when trying to use this form."
|
7520 |
msgstr ""
|
7521 |
|
7522 |
-
#: lib/wordfenceClass.php:
|
7523 |
msgid "Please wait 3 minutes and try again"
|
7524 |
msgstr ""
|
7525 |
|
7526 |
-
#: lib/wordfenceClass.php:
|
7527 |
msgid "You have used this form too much. Please wait 3 minutes and try again."
|
7528 |
msgstr ""
|
7529 |
|
7530 |
-
#: lib/wordfenceClass.php:
|
7531 |
msgid "Unlock email requested"
|
7532 |
msgstr ""
|
7533 |
|
7534 |
-
#: lib/wordfenceClass.php:
|
7535 |
msgid "Your request was received"
|
7536 |
msgstr ""
|
7537 |
|
7538 |
#. translators: Email address.
|
7539 |
-
#: lib/wordfenceClass.php:
|
7540 |
msgid "We received a request to email \"%s\" instructions to unlock their access. If that is the email address of a site administrator or someone on the Wordfence alert list, they have been emailed instructions on how to regain access to this system. The instructions we sent will expire 30 minutes from now."
|
7541 |
msgstr ""
|
7542 |
|
7543 |
-
#: lib/wordfenceClass.php:
|
7544 |
msgid "Invalid key provided for authentication."
|
7545 |
msgstr ""
|
7546 |
|
7547 |
-
#: lib/wordfenceClass.php:
|
7548 |
msgid "Request received via unlock email link to unblock all IPs."
|
7549 |
msgstr ""
|
7550 |
|
7551 |
-
#: lib/wordfenceClass.php:
|
7552 |
msgid "Request received via unlock email link to unblock all IPs via disabling firewall rules."
|
7553 |
msgstr ""
|
7554 |
|
7555 |
-
#: lib/wordfenceClass.php:
|
7556 |
msgid "Invalid function specified. Please check the link we emailed you and make sure it was not cut-off by your email reader."
|
7557 |
msgstr ""
|
7558 |
|
7559 |
-
#: lib/wordfenceClass.php:
|
7560 |
msgid "Unsubscribe Requested"
|
7561 |
msgstr ""
|
7562 |
|
7563 |
-
#: lib/wordfenceClass.php:
|
7564 |
msgid "An error occurred while saving the license."
|
7565 |
msgstr ""
|
7566 |
|
7567 |
#. translators: Error message.
|
7568 |
-
#: lib/wordfenceClass.php:
|
7569 |
-
#: lib/wordfenceClass.php:
|
7570 |
msgid "An error occurred while saving the license: %s"
|
7571 |
msgstr ""
|
7572 |
|
7573 |
-
#: lib/wordfenceClass.php:
|
7574 |
msgid "Rescheduled missing daily cron"
|
7575 |
msgstr ""
|
7576 |
|
7577 |
-
#: lib/wordfenceClass.php:
|
7578 |
msgid "Rescheduled missing hourly cron"
|
7579 |
msgstr ""
|
7580 |
|
7581 |
-
#: lib/wordfenceClass.php:
|
7582 |
-
#: lib/wordfenceClass.php:
|
7583 |
msgid "Accessed a banned URL"
|
7584 |
msgstr ""
|
7585 |
|
7586 |
-
#: lib/wordfenceClass.php:
|
7587 |
-
#: lib/wordfenceClass.php:
|
7588 |
msgid "POST received with blank user-agent and referer"
|
7589 |
msgstr ""
|
7590 |
|
7591 |
-
#: lib/wordfenceClass.php:
|
7592 |
msgid "<strong>ERROR</strong>: You can't register using that username"
|
7593 |
msgstr ""
|
7594 |
|
7595 |
-
#: lib/wordfenceClass.php:
|
7596 |
msgid "Sorry, you are not allowed to list users."
|
7597 |
msgstr ""
|
7598 |
|
7599 |
-
#: lib/wordfenceClass.php:
|
7600 |
msgid "Invalid user ID."
|
7601 |
msgstr ""
|
7602 |
|
7603 |
-
#: lib/wordfenceClass.php:
|
7604 |
msgid "<strong>VERIFICATION FAILED</strong>: Two-factor authentication verification failed. Please try again."
|
7605 |
msgstr ""
|
7606 |
|
7607 |
#. translators: 1. WordPress username. 2. Password reset URL.
|
7608 |
#. translators: 1. WordPress username. 2. Reset password URL.
|
7609 |
-
#: lib/wordfenceClass.php:
|
7610 |
-
#: lib/wordfenceClass.php:
|
7611 |
msgid "<strong>ERROR</strong>: The username or password you entered is incorrect. <a href=\"%2$s\" title=\"Password Lost and Found\">Lost your password</a>?"
|
7612 |
msgstr ""
|
7613 |
|
7614 |
#. translators: 1. WordPress admin panel URL. 2. Support URL.
|
7615 |
-
#: lib/wordfenceClass.php:
|
7616 |
-
#: lib/wordfenceClass.php:
|
7617 |
msgid "<strong>WARNING: </strong>The password you are using exists on lists of passwords leaked in data breaches. Attackers use such lists to break into sites and install malicious code. Please <a href=\"%1$s\">change your password</a>. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span class=\"screen-reader-text\"> ("
|
7618 |
msgstr ""
|
7619 |
|
7620 |
-
#: lib/wordfenceClass.php:
|
7621 |
msgid "<strong>INVALID CODE</strong>: Please sign in again and add a space, the letters <code>wf</code>, and the code from your authenticator app to the end of your password (e.g., <code>wf123456</code>)."
|
7622 |
msgstr ""
|
7623 |
|
7624 |
-
#: lib/wordfenceClass.php:
|
7625 |
msgid "<strong>INVALID CODE</strong>: Please sign in again and add a space, the letters <code>wf</code>, and the code sent to your phone to the end of your password (e.g., <code>wf123456</code>)."
|
7626 |
msgstr ""
|
7627 |
|
7628 |
-
#: lib/wordfenceClass.php:
|
7629 |
-
#: lib/wordfenceClass.php:
|
7630 |
-
#: lib/wordfenceClass.php:
|
7631 |
msgid "<strong>AUTHENTICATION FAILURE</strong>: A temporary failure was encountered while trying to log in. Please try again."
|
7632 |
msgstr ""
|
7633 |
|
7634 |
-
#: lib/wordfenceClass.php:
|
7635 |
msgid "<strong>INVALID CODE</strong>: You need to enter the code generated by your authenticator app. The code should be a six digit number (e.g., 123456)."
|
7636 |
msgstr ""
|
7637 |
|
7638 |
-
#: lib/wordfenceClass.php:
|
7639 |
msgid "<strong>INVALID CODE</strong>: You need to enter the code generated sent to your phone. The code should be a six digit number (e.g., 123456)."
|
7640 |
msgstr ""
|
7641 |
|
7642 |
-
#: lib/wordfenceClass.php:
|
7643 |
msgid "<strong>CODE EXPIRED. CHECK YOUR PHONE:</strong> The code you entered has expired. Codes are only valid for 30 minutes for security reasons. We have sent you a new code. Please sign in using your username, password, and the new code we sent you."
|
7644 |
msgstr ""
|
7645 |
|
7646 |
-
#: lib/wordfenceClass.php:
|
7647 |
msgid "<strong>INVALID CODE</strong>: You need to enter your password and the code we sent to your phone. The code should start with 'wf' and should be four characters (e.g., wfAB12)."
|
7648 |
msgstr ""
|
7649 |
|
7650 |
-
#: lib/wordfenceClass.php:
|
7651 |
msgid "<strong>CODE REQUIRED</strong>: Please check your authenticator app for the current code. Enter it below to sign in."
|
7652 |
msgstr ""
|
7653 |
|
7654 |
-
#: lib/wordfenceClass.php:
|
7655 |
msgid "<strong>CODE REQUIRED</strong>: Please check your authenticator app for the current code. Please sign in again and add a space, the letters <code>wf</code>, and the code to the end of your password (e.g., <code>wf123456</code>)."
|
7656 |
msgstr ""
|
7657 |
|
7658 |
-
#: lib/wordfenceClass.php:
|
7659 |
-
#: lib/wordfenceClass.php:
|
7660 |
msgid "<strong>CHECK YOUR PHONE</strong>: A code has been sent to your phone and will arrive within 30 seconds. Enter it below to sign in."
|
7661 |
msgstr ""
|
7662 |
|
7663 |
-
#: lib/wordfenceClass.php:
|
7664 |
msgid "<strong>CHECK YOUR PHONE</strong>: A code has been sent to your phone and will arrive within 30 seconds. Please sign in again and add a space, the letters <code>wf</code>, and the code to the end of your password (e.g., <code>wf123456</code>)."
|
7665 |
msgstr ""
|
7666 |
|
7667 |
-
#: lib/wordfenceClass.php:
|
7668 |
msgid "<strong>CHECK YOUR PHONE</strong>: A code has been sent to your phone and will arrive within 30 seconds. Please sign in again and add a space and the code to the end of your password (e.g., <code>wfABCD</code>)."
|
7669 |
msgstr ""
|
7670 |
|
7671 |
#. translators: 1. Reset password URL. 2. Support URL.
|
7672 |
-
#: lib/wordfenceClass.php:
|
7673 |
-
#: lib/wordfenceClass.php:
|
7674 |
msgid "<strong>WARNING: </strong>Your login has been allowed because you have previously logged in from the same IP, but you will be blocked if your IP changes. The password you are using exists on lists of passwords leaked in data breaches. Attackers use such lists to break into sites and install malicious code. Please <a href=\"%1$s\">change your password</a>. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span class=\"screen-reader-text\"> ("
|
7675 |
msgstr ""
|
7676 |
|
7677 |
#. translators: 1. Reset password URL. 2. Support URL.
|
7678 |
-
#: lib/wordfenceClass.php:
|
7679 |
-
#: lib/wordfenceClass.php:
|
7680 |
msgid "<strong>INSECURE PASSWORD:</strong> Your login attempt has been blocked because the password you are using exists on lists of passwords leaked in data breaches. Attackers use such lists to break into sites and install malicious code. Please <a href=\"%1$s\">reset your password</a> to reactivate your account. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span style=\"font-size:0;\"> (opens in new tab)</span></a>"
|
7681 |
msgstr ""
|
7682 |
|
7683 |
-
#: lib/wordfenceClass.php:
|
7684 |
msgid "Admin Login Blocked"
|
7685 |
msgstr ""
|
7686 |
|
7687 |
#. translators: WordPress username.
|
7688 |
-
#: lib/wordfenceClass.php:
|
7689 |
msgid "A user with username \"%s\" who has administrator access tried to sign in to your WordPress site. Access was denied because all administrator accounts are required to have Cellphone Sign-in enabled but this account does not."
|
7690 |
msgstr ""
|
7691 |
|
7692 |
#. translators: WordPress username.
|
7693 |
-
#: lib/wordfenceClass.php:
|
7694 |
msgid "<strong>Cellphone Sign-in Required</strong>: Cellphone Sign-in is required for all administrator accounts. Please contact the site administrator to enable it for your account."
|
7695 |
msgstr ""
|
7696 |
|
7697 |
-
#: lib/wordfenceClass.php:
|
7698 |
msgid "Blocked by Wordfence Security Network"
|
7699 |
msgstr ""
|
7700 |
|
7701 |
-
#: lib/wordfenceClass.php:
|
7702 |
msgid "Blocked by login security setting"
|
7703 |
msgstr ""
|
7704 |
|
7705 |
#. translators: WordPress username.
|
7706 |
-
#: lib/wordfenceClass.php:
|
7707 |
msgid "Used an invalid username '%s' to try to sign in"
|
7708 |
msgstr ""
|
7709 |
|
7710 |
#. translators: 1. Login attempt limit. 2. WordPress username.
|
7711 |
-
#: lib/wordfenceClass.php:
|
7712 |
msgid "Exceeded the maximum number of login failures which is: %1$s. The last username they tried to sign in with was: '%2$s'"
|
7713 |
msgstr ""
|
7714 |
|
7715 |
-
#: lib/wordfenceClass.php:
|
7716 |
msgid "An invalid type was specified to get file."
|
7717 |
msgstr ""
|
7718 |
|
7719 |
-
#: lib/wordfenceClass.php:
|
7720 |
msgid "We could not fetch a core WordPress file from the Wordfence API."
|
7721 |
msgstr ""
|
7722 |
|
7723 |
-
#: lib/wordfenceClass.php:
|
7724 |
msgid "Wordfence Test Email"
|
7725 |
msgstr ""
|
7726 |
|
7727 |
#. translators: 1. Site URL. 2. IP address.
|
7728 |
-
#: lib/wordfenceClass.php:
|
7729 |
msgid ""
|
7730 |
"This is a test email from %1$s.\n"
|
7731 |
"The IP address that requested this was: %2$s"
|
7732 |
msgstr ""
|
7733 |
|
7734 |
-
#: lib/wordfenceClass.php:
|
7735 |
msgid "Cellphone Sign-in is only available to paid members. <a href=\"https://www.wordfence.com/gnl1twoFac3/wordfence-signup/\" target=\"_blank\" rel=\"noopener noreferrer\">Click here to upgrade now.<span class=\"screen-reader-text\"> ("
|
7736 |
msgstr ""
|
7737 |
|
7738 |
-
#: lib/wordfenceClass.php:
|
7739 |
msgid "The username you specified does not exist."
|
7740 |
msgstr ""
|
7741 |
|
7742 |
-
#: lib/wordfenceClass.php:
|
7743 |
msgid "The username you specified is already enabled."
|
7744 |
msgstr ""
|
7745 |
|
7746 |
-
#: lib/wordfenceClass.php:
|
7747 |
msgid "Unknown authentication mode."
|
7748 |
msgstr ""
|
7749 |
|
7750 |
-
#: lib/wordfenceClass.php:
|
7751 |
msgid "The phone number you entered must start with a '+', then country code and then area code and number. For example, a number in the United States with country code '1' would look like this: +1-123-555-1234"
|
7752 |
msgstr ""
|
7753 |
|
7754 |
#. translators: Error message.
|
7755 |
-
#: lib/wordfenceClass.php:
|
7756 |
-
#: lib/wordfenceClass.php:
|
7757 |
-
#: lib/wordfenceClass.php:
|
7758 |
msgid "Could not contact Wordfence servers to generate a verification code: %s"
|
7759 |
msgstr ""
|
7760 |
|
7761 |
#. translators: Error message.
|
7762 |
-
#: lib/wordfenceClass.php:
|
7763 |
-
#: lib/wordfenceClass.php:
|
7764 |
msgid "Could not generate verification code: %s"
|
7765 |
msgstr ""
|
7766 |
|
7767 |
#. translators: Error message.
|
7768 |
-
#: lib/wordfenceClass.php:
|
7769 |
-
#: lib/wordfenceClass.php:
|
7770 |
msgid "We could not generate a verification code."
|
7771 |
msgstr ""
|
7772 |
|
7773 |
-
#: lib/wordfenceClass.php:
|
7774 |
msgid "Unknown two-factor authentication mode."
|
7775 |
msgstr ""
|
7776 |
|
7777 |
-
#: lib/wordfenceClass.php:
|
7778 |
msgid "The code you entered is invalid. Cellphone sign-in will not be enabled for this user until you enter a valid code."
|
7779 |
msgstr ""
|
7780 |
|
7781 |
-
#: lib/wordfenceClass.php:
|
7782 |
msgid "We could not find the user you are trying to activate. They may have been removed from the list of Cellphone Sign-in users. Please reload this page."
|
7783 |
msgstr ""
|
7784 |
|
7785 |
-
#: lib/wordfenceClass.php:
|
7786 |
msgid "That user has already been removed from the list."
|
7787 |
msgstr ""
|
7788 |
|
7789 |
-
#: lib/wordfenceClass.php:
|
7790 |
msgid "No scan is scheduled"
|
7791 |
msgstr ""
|
7792 |
|
7793 |
-
#: lib/wordfenceClass.php:
|
7794 |
msgid "Next scan is starting now"
|
7795 |
msgstr ""
|
7796 |
|
7797 |
#. translators: 1. Time until. 2. Localized date.
|
7798 |
-
#: lib/wordfenceClass.php:
|
7799 |
msgid "Next scan in %1$s (%2$s)"
|
7800 |
msgstr ""
|
7801 |
|
7802 |
#. translators: Localized date.
|
7803 |
-
#: lib/wordfenceClass.php:
|
7804 |
msgid "Scheduled Wordfence scan starting at %s"
|
7805 |
msgstr ""
|
7806 |
|
7807 |
-
#: lib/wordfenceClass.php:
|
7808 |
msgid "Sorry but this feature is only available for paid customers."
|
7809 |
msgstr ""
|
7810 |
|
7811 |
#. translators: Site URL.
|
7812 |
-
#: lib/wordfenceClass.php:
|
7813 |
msgid "SITE: %s"
|
7814 |
msgstr ""
|
7815 |
|
7816 |
#. translators: Plugin version.
|
7817 |
-
#: lib/wordfenceClass.php:
|
7818 |
msgid "PLUGIN VERSION: %s"
|
7819 |
msgstr ""
|
7820 |
|
7821 |
#. translators: WordPress version.
|
7822 |
-
#: lib/wordfenceClass.php:
|
7823 |
msgid "WORDPRESS VERSION: %s"
|
7824 |
msgstr ""
|
7825 |
|
7826 |
#. translators: Wordfence license key.
|
7827 |
-
#: lib/wordfenceClass.php:
|
7828 |
msgid "LICENSE KEY: %s"
|
7829 |
msgstr ""
|
7830 |
|
7831 |
#. translators: Email address.
|
7832 |
-
#: lib/wordfenceClass.php:
|
7833 |
msgid "ADMIN EMAIL: %s"
|
7834 |
msgstr ""
|
7835 |
|
7836 |
#. translators: Email address.
|
7837 |
-
#: lib/wordfenceClass.php:
|
7838 |
msgid "LOG:"
|
7839 |
msgstr ""
|
7840 |
|
7841 |
-
#: lib/wordfenceClass.php:
|
7842 |
msgid "# Scan Issues"
|
7843 |
msgstr ""
|
7844 |
|
7845 |
#. translators: Number of scan results.
|
7846 |
-
#: lib/wordfenceClass.php:
|
7847 |
msgid "## New Issues (%d total)"
|
7848 |
msgstr ""
|
7849 |
|
7850 |
#. translators: Number of scan results.
|
7851 |
-
#: lib/wordfenceClass.php:
|
7852 |
msgid "## Ignored Issues (%d total)"
|
7853 |
msgstr ""
|
7854 |
|
7855 |
-
#: lib/wordfenceClass.php:
|
7856 |
msgid "No Ignored Issues"
|
7857 |
msgstr ""
|
7858 |
|
7859 |
-
#: lib/wordfenceClass.php:
|
7860 |
msgid "Wordfence Activity Log"
|
7861 |
msgstr ""
|
7862 |
|
7863 |
#. translators: Error message.
|
7864 |
-
#: lib/wordfenceClass.php:
|
7865 |
msgid "Could not fetch free license key from Wordfence: %s"
|
7866 |
msgstr ""
|
7867 |
|
7868 |
-
#: lib/wordfenceClass.php:
|
7869 |
msgid "We could not find your .htaccess file to modify it."
|
7870 |
msgstr ""
|
7871 |
|
7872 |
#. translators: Error message.
|
7873 |
-
#: lib/wordfenceClass.php:
|
7874 |
msgid "We found your .htaccess file but could not open it for writing: %s"
|
7875 |
msgstr ""
|
7876 |
|
7877 |
-
#: lib/wordfenceClass.php:
|
7878 |
msgid "All Countries"
|
7879 |
msgstr ""
|
7880 |
|
7881 |
-
#: lib/wordfenceClass.php:
|
7882 |
msgid "1 Country"
|
7883 |
msgstr ""
|
7884 |
|
7885 |
#. translators: Number of countries.
|
7886 |
-
#: lib/wordfenceClass.php:
|
7887 |
msgid "%d Countries"
|
7888 |
msgstr ""
|
7889 |
|
7890 |
-
#: lib/wordfenceClass.php:
|
7891 |
msgid "Entire Site"
|
7892 |
msgstr ""
|
7893 |
|
7894 |
-
#: lib/wordfenceClass.php:
|
7895 |
msgid "Login Only"
|
7896 |
msgstr ""
|
7897 |
|
7898 |
-
#: lib/wordfenceClass.php:
|
7899 |
msgid "Site Except Login"
|
7900 |
msgstr ""
|
7901 |
|
7902 |
-
#: lib/wordfenceClass.php:
|
7903 |
msgid "IP Range"
|
7904 |
msgstr ""
|
7905 |
|
7906 |
#. translators: 2FA backup codes.
|
7907 |
-
#: lib/wordfenceClass.php:
|
7908 |
-
#: lib/wordfenceClass.php:
|
7909 |
msgid "User Agent"
|
7910 |
msgstr ""
|
7911 |
|
7912 |
-
#: lib/wordfenceClass.php:
|
7913 |
#: views/blocking/blocking-create.php:201
|
7914 |
msgid "Referrer"
|
7915 |
msgstr ""
|
7916 |
|
7917 |
-
#: lib/wordfenceClass.php:
|
7918 |
msgid "Permanent"
|
7919 |
msgstr ""
|
7920 |
|
7921 |
-
#: lib/wordfenceClass.php:
|
7922 |
msgid "An error occurred while creating the block."
|
7923 |
msgstr ""
|
7924 |
|
7925 |
-
#: lib/wordfenceClass.php:
|
7926 |
msgid "No block parameters were provided."
|
7927 |
msgstr ""
|
7928 |
|
7929 |
-
#: lib/wordfenceClass.php:
|
7930 |
-
#: lib/wordfenceClass.php:
|
7931 |
msgid "No blocks were provided."
|
7932 |
msgstr ""
|
7933 |
|
7934 |
-
#: lib/wordfenceClass.php:
|
7935 |
msgid "The license provided is already in use on another site."
|
7936 |
msgstr ""
|
7937 |
|
7938 |
-
#: lib/wordfenceClass.php:
|
7939 |
msgid "The Wordfence activation server returned an unexpected response. Please try again."
|
7940 |
msgstr ""
|
7941 |
|
7942 |
-
#: lib/wordfenceClass.php:
|
7943 |
msgid "We received an error while trying to activate the license with the Wordfence servers: "
|
7944 |
msgstr ""
|
7945 |
|
7946 |
-
#: lib/wordfenceClass.php:
|
7947 |
msgid "No license was provided to install."
|
7948 |
msgstr ""
|
7949 |
|
7950 |
-
#: lib/wordfenceClass.php:
|
7951 |
msgid "An unknown configuration section was provided."
|
7952 |
msgstr ""
|
7953 |
|
7954 |
-
#: lib/wordfenceClass.php:
|
7955 |
msgid "No configuration section was provided."
|
7956 |
msgstr ""
|
7957 |
|
7958 |
-
#: lib/wordfenceClass.php:
|
7959 |
-
#: lib/wordfenceClass.php:
|
7960 |
msgid "An error occurred while saving the configuration."
|
7961 |
msgstr ""
|
7962 |
|
7963 |
-
#: lib/wordfenceClass.php:
|
7964 |
msgid "No configuration changes were provided to save."
|
7965 |
msgstr ""
|
7966 |
|
7967 |
-
#: lib/wordfenceClass.php:
|
7968 |
-
#: lib/wordfenceClass.php:
|
7969 |
-
#: lib/wordfenceClass.php:
|
7970 |
-
#: lib/wordfenceClass.php:
|
7971 |
-
#: lib/wordfenceClass.php:
|
7972 |
-
#: lib/wordfenceClass.php:
|
7973 |
msgid "We could not find that issue in our database."
|
7974 |
msgstr ""
|
7975 |
|
7976 |
-
#: lib/wordfenceClass.php:
|
7977 |
msgid "An error occurred while trying to hide the file."
|
7978 |
msgstr ""
|
7979 |
|
7980 |
-
#: lib/wordfenceClass.php:
|
7981 |
msgid "An invalid file was requested for hiding."
|
7982 |
msgstr ""
|
7983 |
|
7984 |
-
#: lib/wordfenceClass.php:
|
7985 |
-
#: lib/wordfenceClass.php:
|
7986 |
msgid "You don't have permission to repair .htaccess. You need to either fix the file manually using FTP or change the file permissions and ownership so that your web server has write access to repair the file."
|
7987 |
msgstr ""
|
7988 |
|
7989 |
-
#: lib/wordfenceClass.php:
|
7990 |
msgid "Manual permanent block by admin"
|
7991 |
msgstr ""
|
7992 |
|
7993 |
-
#: lib/wordfenceClass.php:
|
7994 |
msgid "Please enter a valid IP address to block."
|
7995 |
msgstr ""
|
7996 |
|
7997 |
-
#: lib/wordfenceClass.php:
|
7998 |
msgid "You can't block your own IP address."
|
7999 |
msgstr ""
|
8000 |
|
8001 |
#. translators: IP address.
|
8002 |
-
#: lib/wordfenceClass.php:
|
8003 |
msgid "The IP address %s is allowlisted and can't be blocked. You can remove this IP from the allowlist on the Wordfence options page."
|
8004 |
msgstr ""
|
8005 |
|
8006 |
#. translators: IP address.
|
8007 |
-
#: lib/wordfenceClass.php:
|
8008 |
msgid "The IP address %s is in a range of IP addresses that Wordfence does not block. The IP range may be internal or belong to a service safe to allow access for."
|
8009 |
msgstr ""
|
8010 |
|
8011 |
-
#: lib/wordfenceClass.php:
|
8012 |
msgid "The IP address you're trying to block belongs to Google. Your options are currently set to not block these crawlers. Change this in Wordfence options if you want to manually block Google."
|
8013 |
msgstr ""
|
8014 |
|
8015 |
-
#: lib/wordfenceClass.php:
|
8016 |
msgid "An invalid operation was called."
|
8017 |
msgstr ""
|
8018 |
|
8019 |
-
#: lib/wordfenceClass.php:
|
8020 |
msgid "An invalid status was specified when trying to update that issue."
|
8021 |
msgstr ""
|
8022 |
|
8023 |
-
#: lib/wordfenceClass.php:
|
8024 |
msgid "Scan stop request received."
|
8025 |
msgstr ""
|
8026 |
|
8027 |
-
#: lib/wordfenceClass.php:
|
8028 |
msgid "A request was received to stop the previous scan."
|
8029 |
msgstr ""
|
8030 |
|
8031 |
-
#: lib/wordfenceClass.php:
|
8032 |
msgid "Idle"
|
8033 |
msgstr ""
|
8034 |
|
8035 |
#. translators: Localized date.
|
8036 |
-
#: lib/wordfenceClass.php:
|
8037 |
msgid "Scan completed on %s"
|
8038 |
msgstr ""
|
8039 |
|
8040 |
-
#: lib/wordfenceClass.php:
|
8041 |
msgid "Last scan failed"
|
8042 |
msgstr ""
|
8043 |
|
8044 |
#. translators: Time until.
|
8045 |
-
#: lib/wordfenceClass.php:
|
8046 |
msgid "more than %s"
|
8047 |
msgstr ""
|
8048 |
|
8049 |
#. translators: Localized date.
|
8050 |
-
#: lib/wordfenceClass.php:
|
8051 |
msgid "The current scan looks like it has failed. Its last status update was <span id=\"wf-scan-failed-time-ago\">%s</span> ago. You may continue to wait in case it resumes or stop and restart the scan. Some sites may need adjustments to run scans reliably."
|
8052 |
msgstr ""
|
8053 |
|
8054 |
#. translators: Localized date.
|
8055 |
-
#: lib/wordfenceClass.php:
|
8056 |
-
#: lib/wordfenceClass.php:
|
8057 |
-
#: lib/wordfenceClass.php:
|
8058 |
-
#: lib/wordfenceClass.php:
|
8059 |
-
#: lib/wordfenceClass.php:
|
8060 |
msgid "Click here for steps you can try."
|
8061 |
msgstr ""
|
8062 |
|
8063 |
#. translators: Localized date.
|
8064 |
-
#: lib/wordfenceClass.php:
|
8065 |
msgid "Cancel Scan"
|
8066 |
msgstr ""
|
8067 |
|
8068 |
-
#: lib/wordfenceClass.php:
|
8069 |
msgid "The previous scan has failed. Some sites may need adjustments to run scans reliably."
|
8070 |
msgstr ""
|
8071 |
|
8072 |
#. translators: Time limit (number).
|
8073 |
-
#: lib/wordfenceClass.php:
|
8074 |
msgid "The previous scan has terminated because the time limit of %s was reached. This limit can be customized on the options page."
|
8075 |
msgstr ""
|
8076 |
|
8077 |
-
#: lib/wordfenceClass.php:
|
8078 |
msgid "The previous scan has terminated because we detected an update occurring during the scan."
|
8079 |
msgstr ""
|
8080 |
|
8081 |
-
#: lib/wordfenceClass.php:
|
8082 |
msgid "The scan has failed to start. This is often because the site either cannot make outbound requests or is blocked from connecting to itself."
|
8083 |
msgstr ""
|
8084 |
|
8085 |
-
#: lib/wordfenceClass.php:
|
8086 |
msgid "Scans are not functional because SSL is unavailable."
|
8087 |
msgstr ""
|
8088 |
|
8089 |
-
#: lib/wordfenceClass.php:
|
8090 |
msgid "The scan has failed because we were unable to contact the Wordfence servers. Some sites may need adjustments to run scans reliably."
|
8091 |
msgstr ""
|
8092 |
|
8093 |
-
#: lib/wordfenceClass.php:
|
8094 |
msgid "The scan has failed because we received an unexpected response from the Wordfence servers. This may be a temporary error, though some sites may need adjustments to run scans reliably."
|
8095 |
msgstr ""
|
8096 |
|
8097 |
-
#: lib/wordfenceClass.php:
|
8098 |
msgid "Invalid email address given."
|
8099 |
msgstr ""
|
8100 |
|
8101 |
-
#: lib/wordfenceClass.php:
|
8102 |
-
#: lib/wordfenceClass.php:
|
8103 |
msgid "Deleting an infected wp-config.php file must be done outside of Wordfence. The wp-config.php file contains your database credentials, which you will need to restore normal site operations. Your site will NOT function once the wp-config.php file has been deleted."
|
8104 |
msgstr ""
|
8105 |
|
8106 |
#. translators: 1. File path. 2. Error message.
|
8107 |
-
#: lib/wordfenceClass.php:
|
8108 |
msgid "Could not delete file %1$s. Error was: %2$s"
|
8109 |
msgstr ""
|
8110 |
|
8111 |
#. translators: File path.
|
8112 |
-
#: lib/wordfenceClass.php:
|
8113 |
msgid "We could not retrieve the original file of %s to do a repair."
|
8114 |
msgstr ""
|
8115 |
|
8116 |
#. translators: File path.
|
8117 |
-
#: lib/wordfenceClass.php:
|
8118 |
msgid "An invalid file %s was specified for repair."
|
8119 |
msgstr ""
|
8120 |
|
8121 |
#. translators: File path.
|
8122 |
-
#: lib/wordfenceClass.php:
|
8123 |
msgid "You don't have permission to repair %s. You need to either fix the file manually using FTP or change the file permissions and ownership so that your web server has write access to repair the file."
|
8124 |
msgstr ""
|
8125 |
|
8126 |
#. translators: 1. File path. 2. Error message.
|
8127 |
-
#: lib/wordfenceClass.php:
|
8128 |
msgid "We could not write to %1$s. The error was: %2$s"
|
8129 |
msgstr ""
|
8130 |
|
8131 |
#. translators: 1. File path. 2. Number of bytes.
|
8132 |
-
#: lib/wordfenceClass.php:
|
8133 |
msgid "We could not write to %1$s. (%2$d bytes written) You may not have permission to modify files on your WordPress server."
|
8134 |
msgstr ""
|
8135 |
|
8136 |
-
#: lib/wordfenceClass.php:
|
8137 |
msgid "Deleted some files with errors"
|
8138 |
msgstr ""
|
8139 |
|
8140 |
-
#: lib/wordfenceClass.php:
|
8141 |
msgid "Repaired some files with errors"
|
8142 |
msgstr ""
|
8143 |
|
8144 |
#. translators: 1. Number of files. 2. Error message.
|
8145 |
-
#: lib/wordfenceClass.php:
|
8146 |
msgid "Deleted %1$d files but we encountered the following errors with other files: %2$s"
|
8147 |
msgstr ""
|
8148 |
|
8149 |
#. translators: 1. Number of files. 2. Error message.
|
8150 |
-
#: lib/wordfenceClass.php:
|
8151 |
msgid "Repaired %1$d files but we encountered the following errors with other files: %2$s"
|
8152 |
msgstr ""
|
8153 |
|
8154 |
#. translators: Number of files.
|
8155 |
-
#: lib/wordfenceClass.php:
|
8156 |
msgid "Deleted %d files successfully"
|
8157 |
msgstr ""
|
8158 |
|
8159 |
#. translators: Number of files.
|
8160 |
-
#: lib/wordfenceClass.php:
|
8161 |
msgid "Repaired %d files successfully"
|
8162 |
msgstr ""
|
8163 |
|
8164 |
#. translators: Number of files.
|
8165 |
-
#: lib/wordfenceClass.php:
|
8166 |
msgid "Deleted %d files successfully. No errors were encountered."
|
8167 |
msgstr ""
|
8168 |
|
8169 |
#. translators: Number of files.
|
8170 |
-
#: lib/wordfenceClass.php:
|
8171 |
msgid "Repaired %d files successfully. No errors were encountered."
|
8172 |
msgstr ""
|
8173 |
|
8174 |
-
#: lib/wordfenceClass.php:
|
8175 |
msgid "Could not delete files"
|
8176 |
msgstr ""
|
8177 |
|
8178 |
-
#: lib/wordfenceClass.php:
|
8179 |
msgid "Could not repair files"
|
8180 |
msgstr ""
|
8181 |
|
8182 |
#. translators: Error message.
|
8183 |
-
#: lib/wordfenceClass.php:
|
8184 |
msgid "We could not delete any of the files you selected. We encountered the following errors: %s"
|
8185 |
msgstr ""
|
8186 |
|
8187 |
#. translators: Error message.
|
8188 |
-
#: lib/wordfenceClass.php:
|
8189 |
msgid "We could not repair any of the files you selected. We encountered the following errors: %s"
|
8190 |
msgstr ""
|
8191 |
|
8192 |
-
#: lib/wordfenceClass.php:
|
8193 |
msgid "Nothing done"
|
8194 |
msgstr ""
|
8195 |
|
8196 |
-
#: lib/wordfenceClass.php:
|
8197 |
msgid "We didn't delete anything and no errors were found."
|
8198 |
msgstr ""
|
8199 |
|
8200 |
-
#: lib/wordfenceClass.php:
|
8201 |
msgid "We didn't repair anything and no errors were found."
|
8202 |
msgstr ""
|
8203 |
|
8204 |
-
#: lib/wordfenceClass.php:
|
8205 |
msgid "Invalid bulk operation selected"
|
8206 |
msgstr ""
|
8207 |
|
8208 |
-
#: lib/wordfenceClass.php:
|
8209 |
msgid "Could not delete file because we could not find that issue."
|
8210 |
msgstr ""
|
8211 |
|
8212 |
-
#: lib/wordfenceClass.php:
|
8213 |
msgid "Could not delete file because that issue does not appear to be a file related issue."
|
8214 |
msgstr ""
|
8215 |
|
8216 |
-
#: lib/wordfenceClass.php:
|
8217 |
msgid "An invalid file was requested for deletion."
|
8218 |
msgstr ""
|
8219 |
|
8220 |
#. translators: 1. File path. 2. Error message.
|
8221 |
-
#: lib/wordfenceClass.php:
|
8222 |
msgid "Could not delete file %1$s. The error was: %2$s"
|
8223 |
msgstr ""
|
8224 |
|
8225 |
-
#: lib/wordfenceClass.php:
|
8226 |
msgid "Could not remove the option because we could not find that issue."
|
8227 |
msgstr ""
|
8228 |
|
8229 |
-
#: lib/wordfenceClass.php:
|
8230 |
msgid "Could not remove the option because that issue does not appear to be a database related issue."
|
8231 |
msgstr ""
|
8232 |
|
8233 |
#. translators: 1. WordPress option. 2. Error message.
|
8234 |
-
#: lib/wordfenceClass.php:
|
8235 |
msgid "Could not remove the option %1$s. The error was: %2$s"
|
8236 |
msgstr ""
|
8237 |
|
8238 |
-
#: lib/wordfenceClass.php:
|
8239 |
msgid "Modifying the .htaccess file did not resolve the issue, so the original .htaccess file was restored. You can fix this manually by setting <code>display_errors</code> to <code>Off</code> in your php.ini if your site is on a VPS or dedicated server that you control."
|
8240 |
msgstr ""
|
8241 |
|
8242 |
-
#: lib/wordfenceClass.php:
|
8243 |
msgid "We could not get the original file to do a repair."
|
8244 |
msgstr ""
|
8245 |
|
8246 |
-
#: lib/wordfenceClass.php:
|
8247 |
msgid "An invalid file was specified for repair."
|
8248 |
msgstr ""
|
8249 |
|
8250 |
-
#: lib/wordfenceClass.php:
|
8251 |
msgid "We could not write to that file. You may not have permission to modify files on your WordPress server."
|
8252 |
msgstr ""
|
8253 |
|
8254 |
-
#: lib/wordfenceClass.php:
|
8255 |
msgid "Ajax request received to start scan."
|
8256 |
msgstr ""
|
8257 |
|
8258 |
#. translators: Number of URLs.
|
8259 |
-
#: lib/wordfenceClass.php:
|
8260 |
msgid "Page contains %d malware URL: "
|
8261 |
msgid_plural "Page contains %d malware URLs: "
|
8262 |
msgstr[0] ""
|
8263 |
msgstr[1] ""
|
8264 |
|
8265 |
-
#: lib/wordfenceClass.php:
|
8266 |
msgid "Run a Scan"
|
8267 |
msgstr ""
|
8268 |
|
8269 |
-
#: lib/wordfenceClass.php:
|
8270 |
msgid "Unknown dashboard data set."
|
8271 |
msgstr ""
|
8272 |
|
8273 |
-
#: lib/wordfenceClass.php:
|
8274 |
msgid "Bad security token. It may have been more than 12 hours since you reloaded the page you came from. Try reloading the page you came from. If that doesn't work, please sign out and sign-in again."
|
8275 |
msgstr ""
|
8276 |
|
8277 |
-
#: lib/wordfenceClass.php:
|
8278 |
msgid "An invalid IP address was specified."
|
8279 |
msgstr ""
|
8280 |
|
8281 |
-
#: lib/wordfenceClass.php:
|
8282 |
-
|
8283 |
-
|
|
|
|
|
|
|
|
|
8284 |
msgid "File access blocked. (WORDFENCE_DISABLE_FILE_VIEWER is true)"
|
8285 |
msgstr ""
|
8286 |
|
8287 |
-
#: lib/wordfenceClass.php:
|
8288 |
-
#: lib/wordfenceClass.php:
|
8289 |
msgid "Invalid file requested. (Relative paths not allowed)"
|
8290 |
msgstr ""
|
8291 |
|
8292 |
-
#: lib/wordfenceClass.php:
|
8293 |
-
#: lib/wordfenceClass.php:
|
8294 |
-
#: lib/wordfenceClass.php:
|
8295 |
msgid "File contains illegal characters."
|
8296 |
msgstr ""
|
8297 |
|
8298 |
#. translators: Error message.
|
8299 |
-
#: lib/wordfenceClass.php:
|
8300 |
msgid "We could not open the requested file for reading. The error was: %s"
|
8301 |
msgstr ""
|
8302 |
|
8303 |
-
#: lib/wordfenceClass.php:
|
8304 |
msgid "Greater than 2 Gigs"
|
8305 |
msgstr ""
|
8306 |
|
8307 |
-
#: lib/wordfenceClass.php:
|
8308 |
msgid "Unknown file size."
|
8309 |
msgstr ""
|
8310 |
|
8311 |
-
#: lib/wordfenceClass.php:
|
8312 |
msgid "We could not get the contents of the original file to do a comparison."
|
8313 |
msgstr ""
|
8314 |
|
8315 |
-
#: lib/wordfenceClass.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8316 |
msgid "File does not exist."
|
8317 |
msgstr ""
|
8318 |
|
8319 |
-
#: lib/wordfenceClass.php:
|
8320 |
#: views/dashboard/options-group-import.php:167
|
8321 |
msgid "Reload"
|
8322 |
msgstr ""
|
8323 |
|
8324 |
-
#: lib/wordfenceClass.php:
|
8325 |
msgid "${totalIPs} addresses in this network"
|
8326 |
msgstr ""
|
8327 |
|
8328 |
#. translators: 1. Description of firewall action. 2. Description of input parameters.
|
8329 |
-
#: lib/wordfenceClass.php:
|
8330 |
msgid "%s in POST body: %s"
|
8331 |
msgstr ""
|
8332 |
|
8333 |
#. translators: 1. Description of firewall action. 2. Description of input parameters.
|
8334 |
-
#: lib/wordfenceClass.php:
|
8335 |
msgid "%s in cookie: %s"
|
8336 |
msgstr ""
|
8337 |
|
8338 |
#. translators: 1. Description of firewall action. 2. Description of input parameters.
|
8339 |
-
#: lib/wordfenceClass.php:
|
8340 |
msgid "%s in file: %s"
|
8341 |
msgstr ""
|
8342 |
|
8343 |
#. translators: 1. Description of firewall action. 2. Description of input parameters.
|
8344 |
-
#: lib/wordfenceClass.php:
|
8345 |
msgid "%s in query string: %s"
|
8346 |
msgstr ""
|
8347 |
|
8348 |
#. translators: Domain name.
|
8349 |
-
#: lib/wordfenceClass.php:
|
8350 |
msgid "%s is not valid hostname"
|
8351 |
msgstr ""
|
8352 |
|
8353 |
#. translators: Domain name.
|
8354 |
-
#: lib/wordfenceClass.php:
|
8355 |
msgid ".htaccess Updated"
|
8356 |
msgstr ""
|
8357 |
|
8358 |
-
#: lib/wordfenceClass.php:
|
8359 |
msgid ".htaccess change"
|
8360 |
msgstr ""
|
8361 |
|
8362 |
-
#: lib/wordfenceClass.php:
|
8363 |
msgid "404 Not Found"
|
8364 |
msgstr ""
|
8365 |
|
8366 |
-
#: lib/wordfenceClass.php:
|
8367 |
msgid "Activity Log Sent"
|
8368 |
msgstr ""
|
8369 |
|
8370 |
-
#: lib/wordfenceClass.php:
|
8371 |
msgid "Add action to allowlist"
|
8372 |
msgstr ""
|
8373 |
|
8374 |
-
#: lib/wordfenceClass.php:
|
8375 |
msgid "Add code to .htaccess"
|
8376 |
msgstr ""
|
8377 |
|
8378 |
-
#: lib/wordfenceClass.php:
|
8379 |
msgid "All Hits"
|
8380 |
msgstr ""
|
8381 |
|
8382 |
#. translators: WordPress username.
|
8383 |
-
#: lib/wordfenceClass.php:
|
8384 |
msgid "All capabilties of admin user %s were successfully revoked."
|
8385 |
msgstr ""
|
8386 |
|
8387 |
-
#: lib/wordfenceClass.php:
|
8388 |
msgid "An error occurred when adding the request to the allowlist."
|
8389 |
msgstr ""
|
8390 |
|
8391 |
-
#: lib/wordfenceClass.php:
|
8392 |
msgid "Are you sure you want to allowlist this action?"
|
8393 |
msgstr ""
|
8394 |
|
8395 |
-
#: lib/wordfenceClass.php:
|
8396 |
msgid "Authentication Code"
|
8397 |
msgstr ""
|
8398 |
|
8399 |
-
#: lib/wordfenceClass.php:
|
8400 |
msgid "Background Request Blocked"
|
8401 |
msgstr ""
|
8402 |
|
8403 |
-
#: lib/wordfenceClass.php:
|
8404 |
msgid "Block This Network"
|
8405 |
msgstr ""
|
8406 |
|
8407 |
-
#: lib/wordfenceClass.php:
|
8408 |
msgid "Blocked By Firewall"
|
8409 |
msgstr ""
|
8410 |
|
8411 |
-
#: lib/wordfenceClass.php:
|
8412 |
msgid "Blocked WAF"
|
8413 |
msgstr ""
|
8414 |
|
8415 |
-
#: lib/wordfenceClass.php:
|
8416 |
msgid "Blocked by Wordfence"
|
8417 |
msgstr ""
|
8418 |
|
8419 |
-
#: lib/wordfenceClass.php:
|
8420 |
msgid "Blocked by Wordfence plugin settings"
|
8421 |
msgstr ""
|
8422 |
|
8423 |
-
#: lib/wordfenceClass.php:
|
8424 |
msgid "Blocked by the Wordfence Application Firewall and plugin settings"
|
8425 |
msgstr ""
|
8426 |
|
8427 |
-
#: lib/wordfenceClass.php:
|
8428 |
msgid "Blocked by the Wordfence Security Network"
|
8429 |
msgstr ""
|
8430 |
|
8431 |
-
#: lib/wordfenceClass.php:
|
8432 |
msgid "Blocked by the Wordfence Web Application Firewall"
|
8433 |
msgstr ""
|
8434 |
|
8435 |
-
#: lib/wordfenceClass.php:
|
8436 |
msgid "Cellphone Sign-In Recovery Codes"
|
8437 |
msgstr ""
|
8438 |
|
8439 |
-
#: lib/wordfenceClass.php:
|
8440 |
msgid "Cellphone Sign-in activated for user."
|
8441 |
msgstr ""
|
8442 |
|
8443 |
-
#: lib/wordfenceClass.php:
|
8444 |
msgid "Click here to download a backup copy of this file now"
|
8445 |
msgstr ""
|
8446 |
|
8447 |
-
#: lib/wordfenceClass.php:
|
8448 |
msgid "Click here to download a backup copy of your .htaccess file now"
|
8449 |
msgstr ""
|
8450 |
|
8451 |
-
#: lib/wordfenceClass.php:
|
8452 |
msgid "Click to fix .htaccess"
|
8453 |
msgstr ""
|
8454 |
|
8455 |
-
#: lib/wordfenceClass.php:
|
8456 |
msgid "Crawlers"
|
8457 |
msgstr ""
|
8458 |
|
8459 |
-
#: lib/wordfenceClass.php:
|
8460 |
msgid "Diagnostic report has been sent successfully."
|
8461 |
msgstr ""
|
8462 |
|
8463 |
-
#: lib/wordfenceClass.php:
|
8464 |
msgid "Directory Listing Disabled"
|
8465 |
msgstr ""
|
8466 |
|
8467 |
-
#: lib/wordfenceClass.php:
|
8468 |
msgid "Directory listing has been disabled on your server."
|
8469 |
msgstr ""
|
8470 |
|
8471 |
-
#: lib/wordfenceClass.php:
|
8472 |
msgid "Don't ask again"
|
8473 |
msgstr ""
|
8474 |
|
8475 |
-
#: lib/wordfenceClass.php:
|
8476 |
msgid "Download Backup File"
|
8477 |
msgstr ""
|
8478 |
|
8479 |
-
#: lib/wordfenceClass.php:
|
8480 |
msgid "Each line of 16 letters and numbers is a single recovery code, with optional spaces for readability. When typing your password, enter \"wf\" followed by the entire code like \"mypassword wf1234 5678 90AB CDEF\". If your site shows a separate prompt for entering a code after entering only your username and password, enter only the code like \"1234 5678 90AB CDEF\". Your recovery codes are:"
|
8481 |
msgstr ""
|
8482 |
|
8483 |
-
#: lib/wordfenceClass.php:
|
8484 |
msgid "Email Diagnostic Report"
|
8485 |
msgstr ""
|
8486 |
|
8487 |
-
#: lib/wordfenceClass.php:
|
8488 |
msgid "Email Wordfence Activity Log"
|
8489 |
msgstr ""
|
8490 |
|
8491 |
-
#: lib/wordfenceClass.php:
|
8492 |
msgid "Enter the email address you would like to send the Wordfence activity log to. Note that the activity log may contain thousands of lines of data. This log is usually only sent to a member of the Wordfence support team. It also contains your PHP configuration from the phpinfo() function for diagnostic data."
|
8493 |
msgstr ""
|
8494 |
|
8495 |
-
#: lib/wordfenceClass.php:
|
8496 |
msgid "Error"
|
8497 |
msgstr ""
|
8498 |
|
8499 |
-
#: lib/wordfenceClass.php:
|
8500 |
msgid "Error Enabling All Options Page"
|
8501 |
msgstr ""
|
8502 |
|
8503 |
-
#: lib/wordfenceClass.php:
|
8504 |
msgid "Error Restoring Defaults"
|
8505 |
msgstr ""
|
8506 |
|
8507 |
-
#: lib/wordfenceClass.php:
|
8508 |
msgid "Error Saving Option"
|
8509 |
msgstr ""
|
8510 |
|
8511 |
-
#: lib/wordfenceClass.php:
|
8512 |
msgid "Error Saving Options"
|
8513 |
msgstr ""
|
8514 |
|
8515 |
-
#: lib/wordfenceClass.php:
|
8516 |
msgid "Failed Login"
|
8517 |
msgstr ""
|
8518 |
|
8519 |
-
#: lib/wordfenceClass.php:
|
8520 |
msgid "Failed Login: Invalid Username"
|
8521 |
msgstr ""
|
8522 |
|
8523 |
-
#: lib/wordfenceClass.php:
|
8524 |
msgid "Failed Login: Valid Username"
|
8525 |
msgstr ""
|
8526 |
|
8527 |
-
#: lib/wordfenceClass.php:
|
8528 |
msgid "File hidden successfully"
|
8529 |
msgstr ""
|
8530 |
|
8531 |
-
#: lib/wordfenceClass.php:
|
8532 |
msgid "File restored OK"
|
8533 |
msgstr ""
|
8534 |
|
8535 |
-
#: lib/wordfenceClass.php:
|
8536 |
msgid "Filter Traffic"
|
8537 |
msgstr ""
|
8538 |
|
8539 |
-
#: lib/wordfenceClass.php:
|
8540 |
msgid "Firewall Response"
|
8541 |
msgstr ""
|
8542 |
|
8543 |
-
#: lib/wordfenceClass.php:
|
8544 |
#: views/scanner/issue-wpscan_fullPathDiscl.php:8
|
8545 |
msgid "Full Path Disclosure"
|
8546 |
msgstr ""
|
8547 |
|
8548 |
-
#: lib/wordfenceClass.php:
|
8549 |
msgid "Google Bot"
|
8550 |
msgstr ""
|
8551 |
|
8552 |
-
#: lib/wordfenceClass.php:
|
8553 |
msgid "Google Crawlers"
|
8554 |
msgstr ""
|
8555 |
|
8556 |
-
#: lib/wordfenceClass.php:
|
8557 |
msgid "HTTP Response Code"
|
8558 |
msgstr ""
|
8559 |
|
8560 |
-
#: lib/wordfenceClass.php:
|
8561 |
msgid "Humans"
|
8562 |
msgstr ""
|
8563 |
|
8564 |
-
#: lib/wordfenceClass.php:
|
8565 |
msgid "Key:"
|
8566 |
msgstr ""
|
8567 |
|
8568 |
#. translators: Localized date.
|
8569 |
-
#: lib/wordfenceClass.php:
|
8570 |
msgid "Last Updated: %s"
|
8571 |
msgstr ""
|
8572 |
|
8573 |
#. translators: Localized date.
|
8574 |
-
#: lib/wordfenceClass.php:
|
8575 |
msgid "Learn more about repairing modified files."
|
8576 |
msgstr ""
|
8577 |
|
8578 |
-
#: lib/wordfenceClass.php:
|
8579 |
msgid "Locked Out"
|
8580 |
msgstr ""
|
8581 |
|
8582 |
-
#: lib/wordfenceClass.php:
|
8583 |
msgid "Locked out from logging in"
|
8584 |
msgstr ""
|
8585 |
|
8586 |
-
#: lib/wordfenceClass.php:
|
8587 |
msgid "Logged In"
|
8588 |
msgstr ""
|
8589 |
|
8590 |
-
#: lib/wordfenceClass.php:
|
8591 |
msgid "Logins"
|
8592 |
msgstr ""
|
8593 |
|
8594 |
-
#: lib/wordfenceClass.php:
|
8595 |
msgid "Logins and Logouts"
|
8596 |
msgstr ""
|
8597 |
|
8598 |
#. translators: Localized date.
|
8599 |
-
#: lib/wordfenceClass.php:
|
8600 |
msgid "Next Update Check: %s"
|
8601 |
msgstr ""
|
8602 |
|
8603 |
#. translators: Localized date.
|
8604 |
-
#: lib/wordfenceClass.php:
|
8605 |
msgid "No activity to report yet. Please complete your first scan."
|
8606 |
msgstr ""
|
8607 |
|
8608 |
-
#: lib/wordfenceClass.php:
|
8609 |
msgid "No issues have been ignored."
|
8610 |
msgstr ""
|
8611 |
|
8612 |
-
#: lib/wordfenceClass.php:
|
8613 |
msgid "No new issues have been found."
|
8614 |
msgstr ""
|
8615 |
|
8616 |
-
#: lib/wordfenceClass.php:
|
8617 |
msgid "No rules were updated. Please verify you have permissions to write to the /wp-content/wflogs directory."
|
8618 |
msgstr ""
|
8619 |
|
8620 |
-
#: lib/wordfenceClass.php:
|
8621 |
msgid "No rules were updated. Please verify your website can reach the Wordfence servers."
|
8622 |
msgstr ""
|
8623 |
|
8624 |
-
#: lib/wordfenceClass.php:
|
8625 |
msgid "No rules were updated. Your website has reached the maximum number of rule update requests. Please try again later."
|
8626 |
msgstr ""
|
8627 |
|
8628 |
-
#: lib/wordfenceClass.php:
|
8629 |
msgid "Note: Status will update when changes are saved"
|
8630 |
msgstr ""
|
8631 |
|
8632 |
-
#: lib/wordfenceClass.php:
|
8633 |
msgid "OK"
|
8634 |
msgstr ""
|
8635 |
|
8636 |
-
#: lib/wordfenceClass.php:
|
8637 |
msgid "Pages Not Found"
|
8638 |
msgstr ""
|
8639 |
|
8640 |
-
#: lib/wordfenceClass.php:
|
8641 |
msgid "Paid Members Only"
|
8642 |
msgstr ""
|
8643 |
|
8644 |
-
#: lib/wordfenceClass.php:
|
8645 |
msgid "Please enter a valid email address."
|
8646 |
msgstr ""
|
8647 |
|
8648 |
-
#: lib/wordfenceClass.php:
|
8649 |
msgid "Please include your support ticket number or forum username."
|
8650 |
msgstr ""
|
8651 |
|
8652 |
-
#: lib/wordfenceClass.php:
|
8653 |
msgid "Please make a backup of this file before proceeding. If you need to restore this backup file, you can copy it to the following path from your site's root:"
|
8654 |
msgstr ""
|
8655 |
|
8656 |
-
#: lib/wordfenceClass.php:
|
8657 |
msgid "Please specify a reason"
|
8658 |
msgstr ""
|
8659 |
|
8660 |
-
#: lib/wordfenceClass.php:
|
8661 |
msgid "Please specify a valid IP address range in the form of \"1.2.3.4 - 1.2.3.5\" without quotes. Make sure the dash between the IP addresses in a normal dash (a minus sign on your keyboard) and not another character that looks like a dash."
|
8662 |
msgstr ""
|
8663 |
|
8664 |
-
#: lib/wordfenceClass.php:
|
8665 |
msgid "Please specify either an IP address range, Hostname or a web browser pattern to match."
|
8666 |
msgstr ""
|
8667 |
|
8668 |
-
#: lib/wordfenceClass.php:
|
8669 |
msgid "Recent Activity"
|
8670 |
msgstr ""
|
8671 |
|
8672 |
-
#: lib/wordfenceClass.php:
|
8673 |
msgid "Recovery Codes"
|
8674 |
msgstr ""
|
8675 |
|
8676 |
-
#: lib/wordfenceClass.php:
|
8677 |
msgid "Redirected"
|
8678 |
msgstr ""
|
8679 |
|
8680 |
-
#: lib/wordfenceClass.php:
|
8681 |
msgid "Redirected by Country Blocking bypass URL"
|
8682 |
msgstr ""
|
8683 |
|
8684 |
-
#: lib/wordfenceClass.php:
|
8685 |
msgid "Referer"
|
8686 |
msgstr ""
|
8687 |
|
8688 |
-
#: lib/wordfenceClass.php:
|
8689 |
msgid "Registered Users"
|
8690 |
msgstr ""
|
8691 |
|
8692 |
-
#: lib/wordfenceClass.php:
|
8693 |
msgid "Rule Update Failed"
|
8694 |
msgstr ""
|
8695 |
|
8696 |
-
#: lib/wordfenceClass.php:
|
8697 |
msgid "Rules Updated"
|
8698 |
msgstr ""
|
8699 |
|
8700 |
-
#: lib/wordfenceClass.php:
|
8701 |
msgid "Scan Complete."
|
8702 |
msgstr ""
|
8703 |
|
8704 |
-
#: lib/wordfenceClass.php:
|
8705 |
msgid "Scan the code below with your authenticator app to add this account. Some authenticator apps also allow you to type in the text version instead."
|
8706 |
msgstr ""
|
8707 |
|
8708 |
-
#: lib/wordfenceClass.php:
|
8709 |
msgid "Security Event"
|
8710 |
msgstr ""
|
8711 |
|
8712 |
-
#: lib/wordfenceClass.php:
|
8713 |
msgid "Send"
|
8714 |
msgstr ""
|
8715 |
|
8716 |
-
#: lib/wordfenceClass.php:
|
8717 |
msgid "Sorry, but no data for that IP or domain was found."
|
8718 |
msgstr ""
|
8719 |
|
8720 |
-
#: lib/wordfenceClass.php:
|
8721 |
msgid "Specify a valid IP range"
|
8722 |
msgstr ""
|
8723 |
|
8724 |
-
#: lib/wordfenceClass.php:
|
8725 |
msgid "Specify a valid hostname"
|
8726 |
msgstr ""
|
8727 |
|
8728 |
-
#: lib/wordfenceClass.php:
|
8729 |
msgid "Specify an IP range, Hostname or Browser pattern"
|
8730 |
msgstr ""
|
8731 |
|
8732 |
-
#: lib/wordfenceClass.php:
|
8733 |
msgid "Success deleting file"
|
8734 |
msgstr ""
|
8735 |
|
8736 |
-
#: lib/wordfenceClass.php:
|
8737 |
msgid "Success removing option"
|
8738 |
msgstr ""
|
8739 |
|
8740 |
-
#: lib/wordfenceClass.php:
|
8741 |
msgid "Success restoring file"
|
8742 |
msgstr ""
|
8743 |
|
8744 |
-
#: lib/wordfenceClass.php:
|
8745 |
msgid "Success updating option"
|
8746 |
msgstr ""
|
8747 |
|
8748 |
-
#: lib/wordfenceClass.php:
|
8749 |
msgid "Successfully deleted admin"
|
8750 |
msgstr ""
|
8751 |
|
8752 |
-
#: lib/wordfenceClass.php:
|
8753 |
msgid "Successfully revoked admin"
|
8754 |
msgstr ""
|
8755 |
|
8756 |
-
#: lib/wordfenceClass.php:
|
8757 |
msgid "Test Email Sent"
|
8758 |
msgstr ""
|
8759 |
|
8760 |
-
#: lib/wordfenceClass.php:
|
8761 |
msgid "The 'How does Wordfence get IPs' option was successfully updated to the recommended value."
|
8762 |
msgstr ""
|
8763 |
|
8764 |
-
#: lib/wordfenceClass.php:
|
8765 |
msgid "The Full Path disclosure issue has been fixed"
|
8766 |
msgstr ""
|
8767 |
|
8768 |
#. translators: WordPress username.
|
8769 |
-
#: lib/wordfenceClass.php:
|
8770 |
msgid "The admin user %s was successfully deleted."
|
8771 |
msgstr ""
|
8772 |
|
8773 |
#. translators: File path.
|
8774 |
-
#: lib/wordfenceClass.php:
|
8775 |
msgid "The file %s was successfully deleted."
|
8776 |
msgstr ""
|
8777 |
|
8778 |
#. translators: File path.
|
8779 |
-
#: lib/wordfenceClass.php:
|
8780 |
msgid "The file %s was successfully hidden from public view."
|
8781 |
msgstr ""
|
8782 |
|
8783 |
#. translators: File path.
|
8784 |
-
#: lib/wordfenceClass.php:
|
8785 |
msgid "The file %s was successfully restored."
|
8786 |
msgstr ""
|
8787 |
|
8788 |
#. translators: WordPress option.
|
8789 |
-
#: lib/wordfenceClass.php:
|
8790 |
msgid "The option %s was successfully removed."
|
8791 |
msgstr ""
|
8792 |
|
8793 |
#. translators: WordPress option.
|
8794 |
-
#: lib/wordfenceClass.php:
|
8795 |
msgid "The request has been allowlisted. Please try it again."
|
8796 |
msgstr ""
|
8797 |
|
8798 |
-
#: lib/wordfenceClass.php:
|
8799 |
msgid "There was an error while sending the email."
|
8800 |
msgstr ""
|
8801 |
|
8802 |
-
#: lib/wordfenceClass.php:
|
8803 |
msgid "This will be shown only once. Keep these codes somewhere safe."
|
8804 |
msgstr ""
|
8805 |
|
8806 |
-
#: lib/wordfenceClass.php:
|
8807 |
msgid "Throttled"
|
8808 |
msgstr ""
|
8809 |
|
8810 |
-
#: lib/wordfenceClass.php:
|
8811 |
msgid "Two Factor Status"
|
8812 |
msgstr ""
|
8813 |
|
8814 |
#. translators: HTTP client type.
|
8815 |
-
#: lib/wordfenceClass.php:
|
8816 |
msgid "Type: %s"
|
8817 |
msgstr ""
|
8818 |
|
8819 |
#. translators: HTTP client type.
|
8820 |
-
#: lib/wordfenceClass.php:
|
8821 |
#: views/scanner/issue-checkGSB.php:8
|
8822 |
#: views/scanner/issue-commentBadURL.php:8
|
8823 |
#: views/scanner/issue-configReadable.php:12
|
@@ -8837,847 +8849,839 @@ msgstr ""
|
|
8837 |
msgid "URL"
|
8838 |
msgstr ""
|
8839 |
|
8840 |
-
#: lib/wordfenceClass.php:
|
8841 |
msgid "Unable to automatically hide file"
|
8842 |
msgstr ""
|
8843 |
|
8844 |
#. translators: 2FA backup codes.
|
8845 |
-
#: lib/wordfenceClass.php:
|
8846 |
msgid "Use one of these %s codes to log in if you are unable to access your phone. Codes are 16 characters long, plus optional spaces. Each one may be used only once."
|
8847 |
msgstr ""
|
8848 |
|
8849 |
#. translators: 2FA backup codes.
|
8850 |
-
#: lib/wordfenceClass.php:
|
8851 |
msgid "Use one of these %s codes to log in if you lose access to your authenticator device. Codes are 16 characters long, plus optional spaces. Each one may be used only once."
|
8852 |
msgstr ""
|
8853 |
|
8854 |
-
#: lib/wordfenceClass.php:
|
8855 |
msgid "User ID"
|
8856 |
msgstr ""
|
8857 |
|
8858 |
-
#: lib/wordfenceClass.php:
|
8859 |
msgid "WHOIS LOOKUP"
|
8860 |
msgstr ""
|
8861 |
|
8862 |
-
#: lib/wordfenceClass.php:
|
8863 |
msgid "We are about to change your <em>.htaccess</em> file. Please make a backup of this file before proceeding."
|
8864 |
msgstr ""
|
8865 |
|
8866 |
#. translators: Error message.
|
8867 |
-
#: lib/wordfenceClass.php:
|
8868 |
msgid "We can't modify your .htaccess file for you because: %s"
|
8869 |
msgstr ""
|
8870 |
|
8871 |
#. translators: Error message.
|
8872 |
-
#: lib/wordfenceClass.php:
|
8873 |
msgid "We encountered a problem"
|
8874 |
msgstr ""
|
8875 |
|
8876 |
#. translators: URL.
|
8877 |
-
#: lib/wordfenceClass.php:
|
8878 |
msgid "Wordfence Firewall blocked a background request to WordPress for the URL %s. If this occurred as a result of an intentional action, you may consider allowlisting the request to allow it in the future."
|
8879 |
msgstr ""
|
8880 |
|
8881 |
#. translators: URL.
|
8882 |
-
#: lib/wordfenceClass.php:
|
8883 |
msgid "Wordfence is working..."
|
8884 |
msgstr ""
|
8885 |
|
8886 |
-
#: lib/wordfenceClass.php:
|
8887 |
msgid "You are using Nginx as your web server. You'll need to disable autoindexing in your nginx.conf. See the <a target='_blank' rel='noopener noreferrer' href='https://nginx.org/en/docs/http/ngx_http_autoindex_module.html'>Nginx docs for more info</a> on how to do this."
|
8888 |
msgstr ""
|
8889 |
|
8890 |
-
#: lib/wordfenceClass.php:
|
8891 |
msgid "You are using an Nginx web server and using a FastCGI processor like PHP5-FPM. You will need to manually delete or hide those files."
|
8892 |
msgstr ""
|
8893 |
|
8894 |
-
#: lib/wordfenceClass.php:
|
8895 |
msgid "You are using an Nginx web server and using a FastCGI processor like PHP5-FPM. You will need to manually modify your php.ini to disable <em>display_error</em>"
|
8896 |
msgstr ""
|
8897 |
|
8898 |
-
#: lib/wordfenceClass.php:
|
8899 |
msgid "You forgot to include a reason you're blocking this IP range. We ask you to include this for your own record keeping."
|
8900 |
msgstr ""
|
8901 |
|
8902 |
-
#: lib/wordfenceClass.php:
|
8903 |
msgid "You have unsaved changes to your options. If you leave this page, those changes will be lost."
|
8904 |
msgstr ""
|
8905 |
|
8906 |
-
#: lib/wordfenceClass.php:
|
8907 |
msgid "Your .htaccess has been updated successfully. Please verify your site is functioning normally."
|
8908 |
msgstr ""
|
8909 |
|
8910 |
#. translators: Email address.
|
8911 |
-
#: lib/wordfenceClass.php:
|
8912 |
msgid "Your Wordfence activity log was sent to %s"
|
8913 |
msgstr ""
|
8914 |
|
8915 |
#. translators: Email address.
|
8916 |
-
#: lib/wordfenceClass.php:
|
8917 |
msgid "Your rules have been updated successfully."
|
8918 |
msgstr ""
|
8919 |
|
8920 |
-
#: lib/wordfenceClass.php:
|
8921 |
msgid "Your rules have been updated successfully. You are currently using the free version of Wordfence. Upgrade to Wordfence premium to have your rules updated automatically as new threats emerge. <a href=\"https://www.wordfence.com/wafUpdateRules1/wordfence-signup/\">Click here to purchase a premium license</a>. <em>Note: Your rules will still update every 30 days as a free user.</em>"
|
8922 |
msgstr ""
|
8923 |
|
8924 |
#. translators: wp_mail() return value.
|
8925 |
-
#: lib/wordfenceClass.php:
|
8926 |
msgid "Your test email was sent to the requested email address. The result we received from the WordPress wp_mail() function was: %s<br /><br />A 'True' result means WordPress thinks the mail was sent without errors. A 'False' result means that WordPress encountered an error sending your mail. Note that it's possible to get a 'True' response with an error elsewhere in your mail system that may cause emails to not be delivered."
|
8927 |
msgstr ""
|
8928 |
|
8929 |
#. translators: wp_mail() return value.
|
8930 |
-
#: lib/wordfenceClass.php:
|
8931 |
msgid "blocked by firewall"
|
8932 |
msgstr ""
|
8933 |
|
8934 |
#. translators: Reason for firewall action.
|
8935 |
-
#: lib/wordfenceClass.php:
|
8936 |
msgid "blocked by firewall for %s"
|
8937 |
msgstr ""
|
8938 |
|
8939 |
#. translators: Reason for firewall action.
|
8940 |
-
#: lib/wordfenceClass.php:
|
8941 |
msgid "blocked by real-time IP blocklist"
|
8942 |
msgstr ""
|
8943 |
|
8944 |
-
#: lib/wordfenceClass.php:
|
8945 |
msgid "blocked by the Wordfence Security Network"
|
8946 |
msgstr ""
|
8947 |
|
8948 |
#. translators: Reason for firewall action.
|
8949 |
-
#: lib/wordfenceClass.php:
|
8950 |
msgid "blocked for %s"
|
8951 |
msgstr ""
|
8952 |
|
8953 |
#. translators: Reason for firewall action.
|
8954 |
-
#: lib/wordfenceClass.php:
|
8955 |
msgid "locked out from logging in"
|
8956 |
msgstr ""
|
8957 |
|
8958 |
-
#: lib/wordfenceClass.php:
|
8959 |
msgid "Wordfence generated an error on activation. The output we received during activation was:"
|
8960 |
msgstr ""
|
8961 |
|
8962 |
-
#: lib/wordfenceClass.php:
|
8963 |
msgid "Wordfence could not register with the Wordfence scanning servers when it activated."
|
8964 |
msgstr ""
|
8965 |
|
8966 |
-
#: lib/wordfenceClass.php:
|
8967 |
msgid "You can try to fix this by deactivating Wordfence and then activating it again, so Wordfence will retry registering for you. If you keep seeing this error, it usually means your WordPress server can't connect to our scanning servers, or your wfConfig database table cannot be created to save the key. You can try asking your host to allow your server to connect to noc1.wordfence.com or check the wfConfig database table and database privileges."
|
8968 |
msgstr ""
|
8969 |
|
8970 |
-
#: lib/wordfenceClass.php:
|
8971 |
msgid "The Wordfence Web Application Firewall cannot run."
|
8972 |
msgstr ""
|
8973 |
|
8974 |
#. translators: 1. WordPress admin panel URL. 2. Support URL.
|
8975 |
-
#: lib/wordfenceClass.php:
|
8976 |
msgid "The configuration files are corrupt or inaccessible by the web server, which is preventing the WAF from functioning. Please verify the web server has permission to access the configuration files. You may also try to rebuild the configuration file by <a href=\"%1$s\">clicking here</a>. It will automatically resume normal operation when it is fixed. <a class=\"wfhelp\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"%2$s\"><span class=\"screen-reader-text\"> ("
|
8977 |
msgstr ""
|
8978 |
|
8979 |
-
#: lib/wordfenceClass.php:
|
8980 |
msgid "The WAF storage engine is currently set to mysqli, but Wordfence is unable to use the database. The WAF will fall back to using local file system storage instead."
|
8981 |
msgstr ""
|
8982 |
|
8983 |
-
#: lib/wordfenceClass.php:
|
8984 |
-
#: lib/wordfenceClass.php:
|
8985 |
msgid "The Wordfence Web Application Firewall needs a configuration update."
|
8986 |
msgstr ""
|
8987 |
|
8988 |
#. translators: 1. WordPress admin panel URL. 2. Support URL.
|
8989 |
-
#: lib/wordfenceClass.php:
|
8990 |
msgid "It is currently configured to use an older version of PHP and may become deactivated if PHP is updated. You may perform the configuration update automatically by <a href=\"%1$s\">clicking here</a>. <a class=\"wfhelp\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"%2$s\"><span class=\"screen-reader-text\"> ("
|
8991 |
msgstr ""
|
8992 |
|
8993 |
#. translators: 1. WordPress admin panel URL. 2. Support URL.
|
8994 |
-
#: lib/wordfenceClass.php:
|
8995 |
msgid "It is not currently in extended protection mode but was configured to use an older version of PHP and may have become deactivated when PHP was updated. You may perform the configuration update automatically by <a href=\"%1$s\">clicking here</a> or use the \"Optimize the Wordfence Firewall\" button on the Firewall Options page. <a class=\"wfhelp\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"%2$s\"><span class=\"screen-reader-text\"> ("
|
8996 |
msgstr ""
|
8997 |
|
8998 |
-
#: lib/wordfenceClass.php:
|
8999 |
msgid "The Wordfence Web Application Firewall is in read-only mode."
|
9000 |
msgstr ""
|
9001 |
|
9002 |
-
#: lib/wordfenceClass.php:
|
9003 |
msgid "This site is currently using PHP's built in REMOTE_ADDR."
|
9004 |
msgstr ""
|
9005 |
|
9006 |
-
#: lib/wordfenceClass.php:
|
9007 |
msgid "This site is currently using the X-Forwarded-For HTTP header, which should only be used when the site is behind a front-end proxy that outputs this header."
|
9008 |
msgstr ""
|
9009 |
|
9010 |
-
#: lib/wordfenceClass.php:
|
9011 |
msgid "This site is currently using the X-Real-IP HTTP header, which should only be used when the site is behind a front-end proxy that outputs this header."
|
9012 |
msgstr ""
|
9013 |
|
9014 |
-
#: lib/wordfenceClass.php:
|
9015 |
msgid "This site is currently using the Cloudflare \"CF-Connecting-IP\" HTTP header, which should only be used when the site is behind Cloudflare."
|
9016 |
msgstr ""
|
9017 |
|
9018 |
-
#: lib/wordfenceClass.php:
|
9019 |
msgid "Your 'How does Wordfence get IPs' setting is misconfigured."
|
9020 |
msgstr ""
|
9021 |
|
9022 |
-
#: lib/wordfenceClass.php:
|
9023 |
msgid "Click here to use the recommended setting"
|
9024 |
msgstr ""
|
9025 |
|
9026 |
-
#: lib/wordfenceClass.php:
|
9027 |
#: views/onboarding/fresh-install.php:38
|
9028 |
msgid "or"
|
9029 |
msgstr ""
|
9030 |
|
9031 |
-
#: lib/wordfenceClass.php:
|
9032 |
msgid "visit the options page"
|
9033 |
msgstr ""
|
9034 |
|
9035 |
-
#: lib/wordfenceClass.php:
|
9036 |
msgid "to manually update it."
|
9037 |
msgstr ""
|
9038 |
|
9039 |
-
#: lib/wordfenceClass.php:
|
9040 |
msgid "Do you want Wordfence to stay up-to-date automatically?"
|
9041 |
msgstr ""
|
9042 |
|
9043 |
-
#: lib/wordfenceClass.php:
|
9044 |
msgid "Yes, enable auto-update."
|
9045 |
msgstr ""
|
9046 |
|
9047 |
-
#: lib/wordfenceClass.php:
|
9048 |
msgid "No thanks."
|
9049 |
msgstr ""
|
9050 |
|
9051 |
-
#: lib/wordfenceClass.php:
|
9052 |
msgid "Wordfence country blocking is currently set to block the United States. We recommend allowing access from the United States for Google and other benign crawlers, unless you choose to only block the login page."
|
9053 |
msgstr ""
|
9054 |
|
9055 |
#. translators: Localized date.
|
9056 |
-
#: lib/wordfenceClass.php:
|
9057 |
msgid "The last rules update for the Wordfence Web Application Firewall was unsuccessful. The last successful update check was %s, so this site may be missing new rules added since then."
|
9058 |
msgstr ""
|
9059 |
|
9060 |
#. translators: 1. Localized date. 2. WordPress admin panel URL.
|
9061 |
-
#: lib/wordfenceClass.php:
|
9062 |
msgid "You may wait for the next automatic attempt at %1$s or try to <a href=\"%2$s\">Manually Update</a> by clicking the \"Manually Refresh Rules\" button below the Rules list."
|
9063 |
msgstr ""
|
9064 |
|
9065 |
#. translators: WordPress admin panel URL.
|
9066 |
-
#: lib/wordfenceClass.php:
|
9067 |
msgid "You may wait for the next automatic attempt or try to <a href=\"%s\">Manually Update</a> by clicking the \"Manually Refresh Rules\" button below the Rules list."
|
9068 |
msgstr ""
|
9069 |
|
9070 |
#. translators: WordPress admin panel URL.
|
9071 |
-
#: lib/wordfenceClass.php:
|
9072 |
msgid "You may wait for the next automatic attempt at %s or log into the parent site to manually update by clicking the \"Manually Refresh Rules\" button below the Rules list."
|
9073 |
msgstr ""
|
9074 |
|
9075 |
-
#: lib/wordfenceClass.php:
|
9076 |
msgid "You may wait for the next automatic attempt or log into the parent site to manually update by clicking the \"Manually Refresh Rules\" button below the Rules list."
|
9077 |
msgstr ""
|
9078 |
|
9079 |
-
#: lib/wordfenceClass.php:
|
9080 |
#: models/page/wfPage.php:101
|
9081 |
msgid "Dashboard"
|
9082 |
msgstr ""
|
9083 |
|
9084 |
-
#: lib/wordfenceClass.php:
|
9085 |
msgid "Upgrade to Care"
|
9086 |
msgstr ""
|
9087 |
|
9088 |
-
#: lib/wordfenceClass.php:
|
9089 |
msgid "Upgrade to Response"
|
9090 |
msgstr ""
|
9091 |
|
9092 |
#. translators: Number of notifications.
|
9093 |
-
#: lib/wordfenceClass.php:
|
9094 |
msgid "You have %d new Wordfence notification."
|
9095 |
msgid_plural "You have %d new Wordfence notifications."
|
9096 |
msgstr[0] ""
|
9097 |
msgstr[1] ""
|
9098 |
|
9099 |
-
#: lib/wordfenceClass.php:
|
9100 |
msgid "JavaScript Errors"
|
9101 |
msgstr ""
|
9102 |
|
9103 |
-
#: lib/wordfenceClass.php:
|
9104 |
msgid "Malware URLs"
|
9105 |
msgstr ""
|
9106 |
|
9107 |
#. translators: WordPress admin panel URL.
|
9108 |
-
#: lib/wordfenceClass.php:
|
9109 |
-
#: lib/wordfenceClass.php:
|
9110 |
msgid "<a href=\"%s\">Click here</a> to rebuild the configuration file."
|
9111 |
msgstr ""
|
9112 |
|
9113 |
#. translators: File path.
|
9114 |
-
#: lib/wordfenceClass.php:
|
9115 |
-
#: lib/wordfenceClass.php:
|
9116 |
msgid "We were unable to write to %s which the WAF uses for storage. Please update permissions on the parent directory so the web server can write to it."
|
9117 |
msgstr ""
|
9118 |
|
9119 |
-
#: lib/wordfenceClass.php:
|
9120 |
-
#: lib/wordfenceClass.php:
|
9121 |
msgid "An error occured when fetching the WAF configuration from the database."
|
9122 |
msgstr ""
|
9123 |
|
9124 |
#. translators: Plugin name.
|
9125 |
-
#: lib/wordfenceClass.php:
|
9126 |
msgid "The Wordfence Live Traffic feature has been disabled because you have %s active which is not compatible with Wordfence Live Traffic."
|
9127 |
msgstr ""
|
9128 |
|
9129 |
#. translators: 1. Plugin name.
|
9130 |
-
#: lib/wordfenceClass.php:
|
9131 |
msgid "If you want to reenable Wordfence Live Traffic, you need to deactivate %1$s and then go to the Wordfence options page and reenable Live Traffic there. Wordfence does work with %1$s, however Live Traffic will be disabled and the Wordfence firewall will also count less hits per visitor because of the %1$s caching function. All other functions should work correctly."
|
9132 |
msgstr ""
|
9133 |
|
9134 |
#. translators: File path.
|
9135 |
-
#: lib/wordfenceClass.php:
|
9136 |
msgid "The file <code>%s</code> was restored successfully."
|
9137 |
msgstr ""
|
9138 |
|
9139 |
-
#: lib/wordfenceClass.php:
|
9140 |
msgid "There was an error restoring the file."
|
9141 |
msgstr ""
|
9142 |
|
9143 |
-
#: lib/wordfenceClass.php:
|
9144 |
-
#: lib/wordfenceClass.php:
|
9145 |
msgid "Return to scan results"
|
9146 |
msgstr ""
|
9147 |
|
9148 |
#. translators: File path.
|
9149 |
-
#: lib/wordfenceClass.php:
|
9150 |
msgid "The file <code>%s</code> was deleted successfully."
|
9151 |
msgstr ""
|
9152 |
|
9153 |
-
#: lib/wordfenceClass.php:
|
9154 |
msgid "There was an error deleting the file."
|
9155 |
msgstr ""
|
9156 |
|
9157 |
#. translators: IP address.
|
9158 |
-
#: lib/wordfenceClass.php:
|
9159 |
msgid ""
|
9160 |
"User IP: %s\n"
|
9161 |
""
|
9162 |
msgstr ""
|
9163 |
|
9164 |
#. translators: Domain name.
|
9165 |
-
#: lib/wordfenceClass.php:
|
9166 |
msgid ""
|
9167 |
"User hostname: %s\n"
|
9168 |
""
|
9169 |
msgstr ""
|
9170 |
|
9171 |
-
#: lib/wordfenceClass.php:
|
9172 |
msgid "User location: "
|
9173 |
msgstr ""
|
9174 |
|
9175 |
#. translators: WordPress admin panel URL.
|
9176 |
-
#: lib/wordfenceClass.php:
|
9177 |
msgid "No longer an administrator for this site? Click here to stop receiving security alerts: %s"
|
9178 |
msgstr ""
|
9179 |
|
9180 |
-
#: lib/wordfenceClass.php:
|
9181 |
msgid "The IP you provided must be in dotted quad notation or use ranges with square brackets. e.g. 10.11.12.13 or 10.11.12.[1-50]"
|
9182 |
msgstr ""
|
9183 |
|
9184 |
-
#: lib/wordfenceClass.php:
|
9185 |
msgid "Invalid email address provided"
|
9186 |
msgstr ""
|
9187 |
|
9188 |
-
#: lib/wordfenceClass.php:
|
9189 |
msgid "Test email sent successfully"
|
9190 |
msgstr ""
|
9191 |
|
9192 |
-
#: lib/wordfenceClass.php:
|
9193 |
msgid "Test email failed to send"
|
9194 |
msgstr ""
|
9195 |
|
9196 |
#. translators: Localized date range.
|
9197 |
-
#: lib/wordfenceClass.php:
|
9198 |
msgid "Wordfence activity in the past %s"
|
9199 |
msgstr ""
|
9200 |
|
9201 |
-
#: lib/wordfenceClass.php:
|
9202 |
-
#: lib/wordfenceClass.php:
|
9203 |
-
#: lib/wordfenceClass.php:
|
9204 |
msgid "We could not find that user in the database."
|
9205 |
msgstr ""
|
9206 |
|
9207 |
-
#: lib/wordfenceClass.php:
|
9208 |
msgid "This user's email is the network admin email. It will need to be changed before deleting this user."
|
9209 |
msgstr ""
|
9210 |
|
9211 |
-
#: lib/wordfenceClass.php:
|
9212 |
msgid "Wordfence could not find your .htaccess file."
|
9213 |
msgstr ""
|
9214 |
|
9215 |
-
#: lib/wordfenceClass.php:
|
9216 |
msgid "Updating the .htaccess did not fix the issue. You may need to add <code>Options -Indexes</code> to your httpd.conf if using Apache, or find documentation on how to disable directory listing for your web server."
|
9217 |
msgstr ""
|
9218 |
|
9219 |
-
#: lib/wordfenceClass.php:
|
9220 |
msgid "There was an error writing to your .htaccess file."
|
9221 |
msgstr ""
|
9222 |
|
9223 |
-
#: lib/wordfenceClass.php:
|
9224 |
msgid "Required parameters not sent."
|
9225 |
msgstr ""
|
9226 |
|
9227 |
-
#: lib/wordfenceClass.php:
|
9228 |
msgid "The WAF is currently in read-only mode and will not save any configuration changes."
|
9229 |
msgstr ""
|
9230 |
|
9231 |
-
#: lib/wordfenceClass.php:
|
9232 |
#: views/waf/option-whitelist.php:60
|
9233 |
msgid "Allowlisted via Firewall Options page"
|
9234 |
msgstr ""
|
9235 |
|
9236 |
-
#: lib/wordfenceClass.php:
|
9237 |
msgid "Allowlisted via Live Traffic"
|
9238 |
msgstr ""
|
9239 |
|
9240 |
-
#: lib/wordfenceClass.php:
|
9241 |
-
#: lib/wordfenceClass.php:
|
9242 |
msgid "A valid server configuration was not provided."
|
9243 |
msgstr ""
|
9244 |
|
9245 |
-
#: lib/wordfenceClass.php:
|
9246 |
-
#: lib/wordfenceClass.php:
|
9247 |
msgid "Filesystem Credentials Required"
|
9248 |
msgstr ""
|
9249 |
|
9250 |
#. translators: Support URL.
|
9251 |
-
#: lib/wordfenceClass.php:
|
9252 |
-
#: lib/wordfenceClass.php:
|
9253 |
-
#: lib/wordfenceClass.php:
|
9254 |
-
#: lib/wordfenceClass.php:
|
9255 |
msgid "If you cannot complete the setup process, <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"%s\">click here for help<span class=\"screen-reader-text\"> ("
|
9256 |
msgstr ""
|
9257 |
|
9258 |
#. translators: Support URL.
|
9259 |
-
#: lib/wordfenceClass.php:
|
9260 |
msgid "Once you have entered credentials, click Continue to complete the setup."
|
9261 |
msgstr ""
|
9262 |
|
9263 |
-
#: lib/wordfenceClass.php:
|
9264 |
-
#: lib/wordfenceClass.php:
|
9265 |
msgid "Filesystem Permission Error"
|
9266 |
msgstr ""
|
9267 |
|
9268 |
-
#: lib/wordfenceClass.php:
|
9269 |
msgid "Manual Installation Instructions"
|
9270 |
msgstr ""
|
9271 |
|
9272 |
-
#: lib/wordfenceClass.php:
|
9273 |
msgid "Installation Successful"
|
9274 |
msgstr ""
|
9275 |
|
9276 |
-
#: lib/wordfenceClass.php:
|
9277 |
msgid "Installation Failed"
|
9278 |
msgstr ""
|
9279 |
|
9280 |
#. translators: Support URL.
|
9281 |
-
#: lib/wordfenceClass.php:
|
9282 |
-
#: lib/wordfenceClass.php:
|
9283 |
-
#: lib/wordfenceClass.php:
|
9284 |
-
#: lib/wordfenceClass.php:
|
9285 |
-
#: lib/wordfenceClass.php:
|
9286 |
msgid "If you cannot complete the uninstall process, <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"%s\">click here for help<span class=\"screen-reader-text\"> ("
|
9287 |
msgstr ""
|
9288 |
|
9289 |
#. translators: Support URL.
|
9290 |
-
#: lib/wordfenceClass.php:
|
9291 |
msgid "Once you have entered credentials, click Continue to complete uninstallation."
|
9292 |
msgstr ""
|
9293 |
|
9294 |
-
#: lib/wordfenceClass.php:
|
9295 |
msgid "The <code>auto_prepend_file</code> setting has been successfully removed from <code>.htaccess</code> and <code>.user.ini</code>. Once this change takes effect, Extended Protection Mode will be disabled."
|
9296 |
msgstr ""
|
9297 |
|
9298 |
-
#: lib/wordfenceClass.php:
|
9299 |
msgid "Any previous value for <code>auto_prepend_file</code> will need to be re-enabled manually if still needed."
|
9300 |
msgstr ""
|
9301 |
|
9302 |
#. translators: Time until.
|
9303 |
-
#: lib/wordfenceClass.php:
|
9304 |
msgid "Waiting for it to take effect. This may take up to %s."
|
9305 |
msgstr ""
|
9306 |
|
9307 |
-
#: lib/wordfenceClass.php:
|
9308 |
msgid "Waiting for Changes"
|
9309 |
msgstr ""
|
9310 |
|
9311 |
-
#: lib/wordfenceClass.php:
|
9312 |
msgid "Extended Protection Mode has not been disabled. This may be because <code>auto_prepend_file</code> is configured somewhere else or the value is still cached by PHP."
|
9313 |
msgstr ""
|
9314 |
|
9315 |
-
#: lib/wordfenceClass.php:
|
9316 |
msgid "Retrying Failed."
|
9317 |
msgstr ""
|
9318 |
|
9319 |
-
#: lib/wordfenceClass.php:
|
9320 |
msgid "Try Again"
|
9321 |
msgstr ""
|
9322 |
|
9323 |
-
#: lib/wordfenceClass.php:
|
9324 |
msgid "Unable to Uninstall"
|
9325 |
msgstr ""
|
9326 |
|
9327 |
-
#: lib/wordfenceClass.php:
|
9328 |
msgid "Uninstallation Complete"
|
9329 |
msgstr ""
|
9330 |
|
9331 |
-
#: lib/wordfenceClass.php:
|
9332 |
msgid "Uninstallation Failed"
|
9333 |
msgstr ""
|
9334 |
|
9335 |
#. translators: 1. Number of attacks/blocks. 2. Time since.
|
9336 |
-
#: lib/wordfenceClass.php:
|
9337 |
msgid "The Wordfence Web Application Firewall has blocked %1$d attacks over the last %2$s. Below is a sample of these recent attacks:"
|
9338 |
msgstr ""
|
9339 |
|
9340 |
-
#: lib/wordfenceClass.php:
|
9341 |
msgid "To make your site as secure as possible, take a moment to optimize the Wordfence Web Application Firewall:"
|
9342 |
msgstr ""
|
9343 |
|
9344 |
-
#: lib/wordfenceClass.php:
|
9345 |
msgid "Click here to configure"
|
9346 |
msgstr ""
|
9347 |
|
9348 |
-
#: lib/wordfenceClass.php:
|
9349 |
#: views/waf/waf-install-success.php:14
|
9350 |
msgid "Nice work! The firewall is now optimized."
|
9351 |
msgstr ""
|
9352 |
|
9353 |
-
#: lib/wordfenceClass.php:
|
9354 |
-
#: lib/wordfenceClass.php:
|
9355 |
#: views/waf/waf-install-success.php:16
|
9356 |
#: views/waf/waf-uninstall-success.php:19
|
9357 |
msgid "The changes have not yet taken effect. If you are using LiteSpeed or IIS as your web server or CGI/FastCGI interface, you may need to wait a few minutes for the changes to take effect since the configuration files are sometimes cached. You also may need to select a different server configuration in order to complete this step, but wait for a few minutes before trying. You can try refreshing this page."
|
9358 |
msgstr ""
|
9359 |
|
9360 |
-
#: lib/wordfenceClass.php:
|
9361 |
#: views/waf/waf-uninstall-success.php:15
|
9362 |
msgid "Uninstallation was successful!"
|
9363 |
msgstr ""
|
9364 |
|
9365 |
-
#: lib/wordfenceClass.php:
|
9366 |
#: views/waf/waf-uninstall-success.php:17
|
9367 |
msgid "Uninstallation from this site was successful! The Wordfence Firewall is still active because it is installed in another WordPress installation."
|
9368 |
msgstr ""
|
9369 |
|
9370 |
-
#: lib/wordfenceClass.php:
|
9371 |
msgid "The update was successful!"
|
9372 |
msgstr ""
|
9373 |
|
9374 |
-
#: lib/wordfenceClass.php:
|
9375 |
msgid "Auth grant is invalid."
|
9376 |
msgstr ""
|
9377 |
|
9378 |
#. translators: Error message.
|
9379 |
-
#: lib/wordfenceClass.php:
|
9380 |
msgid "Invalid response from Wordfence Central: %s"
|
9381 |
msgstr ""
|
9382 |
|
9383 |
#. translators: JSON property.
|
9384 |
-
#: lib/wordfenceClass.php:
|
9385 |
-
#: lib/wordfenceClass.php:
|
9386 |
msgid "Invalid response from Wordfence Central. Parameter %s not found in response."
|
9387 |
msgstr ""
|
9388 |
|
9389 |
-
#: lib/wordfenceClass.php:
|
9390 |
-
#: lib/wordfenceClass.php:
|
9391 |
msgid "Access token not found."
|
9392 |
msgstr ""
|
9393 |
|
9394 |
-
#: lib/wordfenceClass.php:
|
9395 |
-
#: lib/wordfenceClass.php:
|
9396 |
msgid "Invalid response from Wordfence Central."
|
9397 |
msgstr ""
|
9398 |
|
9399 |
-
#: lib/wordfenceClass.php:
|
9400 |
msgid "Auth grant not found."
|
9401 |
msgstr ""
|
9402 |
|
9403 |
-
#: lib/wordfenceClass.php:
|
9404 |
msgid "We were unable to create the <code>wordfence-waf.php</code> file in the root of the WordPress installation. It's possible WordPress cannot write to the <code>wordfence-waf.php</code> file because of file permissions. Please verify the permissions are correct and retry the installation."
|
9405 |
msgstr ""
|
9406 |
|
9407 |
-
#: lib/wordfenceClass.php:
|
9408 |
-
#: lib/wordfenceClass.php:
|
9409 |
msgid "We were unable to make changes to the .htaccess file. It's possible WordPress cannot write to the .htaccess file because of file permissions, which may have been set by another security plugin, or you may have set them manually. Please verify the permissions allow the web server to write to the file, and retry the installation."
|
9410 |
msgstr ""
|
9411 |
|
9412 |
#. translators: File path.
|
9413 |
-
#: lib/wordfenceClass.php:
|
9414 |
-
#: lib/wordfenceClass.php:
|
9415 |
msgid "We were unable to make changes to the %1$s file. It's possible WordPress cannot write to the %1$s file because of file permissions. Please verify the permissions are correct and retry the installation."
|
9416 |
msgstr ""
|
9417 |
|
9418 |
-
#: lib/wordfenceClass.php:
|
9419 |
msgid "We were unable to remove the <code>wordfence-waf.php</code> file in the root of the WordPress installation. It's possible WordPress cannot remove the <code>wordfence-waf.php</code> file because of file permissions. Please verify the permissions are correct and retry the removal."
|
9420 |
msgstr ""
|
9421 |
|
9422 |
-
#: lib/wordfenceHash.php:
|
9423 |
msgid "Fetching core, theme and plugin file signatures from Wordfence"
|
9424 |
msgstr ""
|
9425 |
|
9426 |
-
#: lib/wordfenceHash.php:
|
9427 |
msgid "Fetching list of known malware files from Wordfence"
|
9428 |
msgstr ""
|
9429 |
|
9430 |
-
#: lib/wordfenceHash.php:
|
9431 |
msgid "Using cached malware prefixes"
|
9432 |
msgstr ""
|
9433 |
|
9434 |
-
#: lib/wordfenceHash.php:
|
9435 |
msgid "Fetching fresh malware prefixes"
|
9436 |
msgstr ""
|
9437 |
|
9438 |
-
#: lib/wordfenceHash.php:
|
9439 |
msgid "Could not fetch malware signatures from Wordfence servers."
|
9440 |
msgstr ""
|
9441 |
|
9442 |
-
#: lib/wordfenceHash.php:
|
9443 |
msgid "Malware data received from Wordfence servers was not valid."
|
9444 |
msgstr ""
|
9445 |
|
9446 |
-
#: lib/wordfenceHash.php:
|
9447 |
msgid "Fetching list of known core files from Wordfence"
|
9448 |
msgstr ""
|
9449 |
|
9450 |
-
#: lib/wordfenceHash.php:
|
9451 |
msgid "Using cached core hashes"
|
9452 |
msgstr ""
|
9453 |
|
9454 |
-
#: lib/wordfenceHash.php:
|
9455 |
msgid "Fetching fresh core hashes"
|
9456 |
msgstr ""
|
9457 |
|
9458 |
-
#: lib/wordfenceHash.php:
|
9459 |
msgid "Could not fetch core hashes from Wordfence servers."
|
9460 |
msgstr ""
|
9461 |
|
9462 |
-
#: lib/wordfenceHash.php:
|
9463 |
msgid "Core hashes data received from Wordfence servers was not valid."
|
9464 |
msgstr ""
|
9465 |
|
9466 |
-
#: lib/wordfenceHash.php:
|
9467 |
-
msgid "Could not read directory %s to do scan."
|
9468 |
-
msgstr ""
|
9469 |
-
|
9470 |
-
#: lib/wordfenceHash.php:147
|
9471 |
msgid "Comparing core WordPress files against originals in repository"
|
9472 |
msgstr ""
|
9473 |
|
9474 |
-
#: lib/wordfenceHash.php:
|
9475 |
msgid "Skipping core scan"
|
9476 |
msgstr ""
|
9477 |
|
9478 |
-
#: lib/wordfenceHash.php:
|
9479 |
msgid "Comparing open source themes against WordPress.org originals"
|
9480 |
msgstr ""
|
9481 |
|
9482 |
-
#: lib/wordfenceHash.php:
|
9483 |
msgid "Skipping theme scan"
|
9484 |
msgstr ""
|
9485 |
|
9486 |
-
#: lib/wordfenceHash.php:
|
9487 |
msgid "Comparing plugins against WordPress.org originals"
|
9488 |
msgstr ""
|
9489 |
|
9490 |
-
#: lib/wordfenceHash.php:
|
9491 |
msgid "Skipping plugin scan"
|
9492 |
msgstr ""
|
9493 |
|
9494 |
-
#: lib/wordfenceHash.php:
|
9495 |
msgid "Scanning for known malware files"
|
9496 |
msgstr ""
|
9497 |
|
9498 |
-
#: lib/wordfenceHash.php:
|
9499 |
msgid "Skipping malware scan"
|
9500 |
msgstr ""
|
9501 |
|
9502 |
-
#: lib/wordfenceHash.php:
|
9503 |
msgid "Scanning for unknown files in wp-admin and wp-includes"
|
9504 |
msgstr ""
|
9505 |
|
9506 |
-
#: lib/wordfenceHash.php:
|
9507 |
msgid "Skipping unknown core file scan"
|
9508 |
msgstr ""
|
9509 |
|
9510 |
#. translators: WordPress version.
|
9511 |
-
#: lib/wordfenceHash.php:
|
9512 |
msgid "Unknown WordPress core version: %s"
|
9513 |
msgstr ""
|
9514 |
|
9515 |
#. translators: WordPress version.
|
9516 |
-
#: lib/wordfenceHash.php:
|
9517 |
msgid "The core files scan will not be run because this version of WordPress is not currently indexed by Wordfence. This may be due to using a prerelease version or because the servers are still indexing a new release. If you are using an official WordPress release, this issue will automatically dismiss once the version is indexed and another scan is run."
|
9518 |
msgstr ""
|
9519 |
|
9520 |
#. translators: File path.
|
9521 |
-
#: lib/wordfenceHash.php:
|
9522 |
msgid "Wordfence file scanner detected a possible infinite loop. Exiting on file: %s"
|
9523 |
msgstr ""
|
9524 |
|
9525 |
-
#: lib/wordfenceHash.php:201
|
9526 |
-
msgid "Indexing files for scanning"
|
9527 |
-
msgstr ""
|
9528 |
-
|
9529 |
#. translators: Time in seconds.
|
9530 |
-
#: lib/wordfenceHash.php:
|
9531 |
msgid "Index time: %s"
|
9532 |
msgstr ""
|
9533 |
|
9534 |
-
#: lib/wordfenceHash.php:
|
9535 |
msgid "Beginning file hashing"
|
9536 |
msgstr ""
|
9537 |
|
9538 |
-
#: lib/wordfenceHash.php:
|
9539 |
msgid "Processing pending issues"
|
9540 |
msgstr ""
|
9541 |
|
9542 |
#. translators: 1. Number of files. 2. Data in bytes.
|
9543 |
-
#: lib/wordfenceHash.php:
|
9544 |
msgid "Analyzed %1$d files containing %2$s of data."
|
9545 |
msgstr ""
|
9546 |
|
9547 |
-
#: lib/wordfenceHash.php:
|
9548 |
msgid "Invalid response from Wordfence API during check_possible_malware"
|
9549 |
msgstr ""
|
9550 |
|
9551 |
#. translators: File path.
|
9552 |
-
#: lib/wordfenceHash.php:
|
9553 |
msgid "This file is suspected malware: %s"
|
9554 |
msgstr ""
|
9555 |
|
9556 |
#. translators: Malware name/title.
|
9557 |
-
#: lib/wordfenceHash.php:
|
9558 |
msgid "This file's signature matches a known malware file. The title of the malware is '%s'. Immediately inspect this file using the 'View' option below and consider deleting it from your server."
|
9559 |
msgstr ""
|
9560 |
|
9561 |
#. translators: File path.
|
9562 |
-
#: lib/wordfenceHash.php:
|
9563 |
-
#: lib/wordfenceHash.php:
|
9564 |
msgid "Found .suspected file: %s"
|
9565 |
msgstr ""
|
9566 |
|
9567 |
#. translators: File path.
|
|
|
9568 |
#: lib/wordfenceHash.php:323
|
9569 |
-
#: lib/wordfenceHash.php:351
|
9570 |
msgid "Skipping unneeded hash: %s"
|
9571 |
msgstr ""
|
9572 |
|
9573 |
#. translators: Number of files.
|
9574 |
-
#: lib/wordfenceHash.php:
|
9575 |
msgid "%d files indexed"
|
9576 |
msgstr ""
|
9577 |
|
9578 |
#. translators: File path.
|
9579 |
-
#: lib/wordfenceHash.php:
|
9580 |
msgid "Forking during indexing: %s"
|
9581 |
msgstr ""
|
9582 |
|
9583 |
#. translators: PHP max execution time.
|
9584 |
-
#: lib/wordfenceHash.php:
|
9585 |
msgid "Calling fork() from wordfenceHash with maxExecTime: %s"
|
9586 |
msgstr ""
|
9587 |
|
9588 |
#. translators: File path.
|
9589 |
-
#: lib/wordfenceHash.php:
|
9590 |
msgid "Skipping file larger than max size: %s"
|
9591 |
msgstr ""
|
9592 |
|
9593 |
#. translators: 1. File path. 2. Memory in bytes.
|
9594 |
-
#: lib/wordfenceHash.php:
|
9595 |
msgid "Scanning: %1$s (Mem:%2$s)"
|
9596 |
msgstr ""
|
9597 |
|
9598 |
#. translators: File path.
|
9599 |
-
#: lib/wordfenceHash.php:
|
9600 |
msgid "Scanning: %s"
|
9601 |
msgstr ""
|
9602 |
|
9603 |
#. translators: File path.
|
9604 |
-
#: lib/wordfenceHash.php:
|
9605 |
msgid "WordPress core file modified: %s"
|
9606 |
msgstr ""
|
9607 |
|
9608 |
#. translators: File path.
|
9609 |
-
#: lib/wordfenceHash.php:
|
9610 |
msgid "This WordPress core file has been modified and differs from the original file distributed with this version of WordPress."
|
9611 |
msgstr ""
|
9612 |
|
9613 |
#. translators: File path.
|
9614 |
-
#: lib/wordfenceHash.php:
|
9615 |
msgid "Modified plugin file: %s"
|
9616 |
msgstr ""
|
9617 |
|
9618 |
#. translators: 1. Plugin name. 2. Plugin version. 3. Support URL.
|
9619 |
-
#: lib/wordfenceHash.php:
|
9620 |
msgid "This file belongs to plugin \"%1$s\" version \"%2$s\" and has been modified from the file that is distributed by WordPress.org for this version. Please use the link to see how the file has changed. If you have modified this file yourself, you can safely ignore this warning. If you see a lot of changed files in a plugin that have been made by the author, then try uninstalling and reinstalling the plugin to force an upgrade. Doing this is a workaround for plugin authors who don't manage their code correctly. <a href=\"%3$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span class=\"screen-reader-text\"> ("
|
9621 |
msgstr ""
|
9622 |
|
9623 |
#. translators: File path.
|
9624 |
-
#: lib/wordfenceHash.php:
|
9625 |
msgid "Modified theme file: %s"
|
9626 |
msgstr ""
|
9627 |
|
9628 |
#. translators: 1. Plugin name. 2. Plugin version. 3. Support URL.
|
9629 |
-
#: lib/wordfenceHash.php:
|
9630 |
msgid "This file belongs to theme \"%1$s\" version \"%2$s\" and has been modified from the original distribution. It is common for site owners to modify their theme files, so if you have modified this file yourself you can safely ignore this warning. <a href=\"%3$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span class=\"screen-reader-text\"> ("
|
9631 |
msgstr ""
|
9632 |
|
9633 |
#. translators: File path.
|
9634 |
-
#: lib/wordfenceHash.php:
|
9635 |
msgid "Old WordPress core file not removed during update: %s"
|
9636 |
msgstr ""
|
9637 |
|
9638 |
#. translators: File path.
|
9639 |
-
#: lib/wordfenceHash.php:
|
9640 |
msgid "This file is in a WordPress core location but is from an older version of WordPress and not used with your current version. Hosting or permissions issues can cause these files to get left behind when WordPress is updated and they should be removed if possible."
|
9641 |
msgstr ""
|
9642 |
|
9643 |
#. translators: File path.
|
9644 |
-
#: lib/wordfenceHash.php:
|
9645 |
-
#: lib/wordfenceHash.php:
|
9646 |
msgid "Unknown file in WordPress core: %s"
|
9647 |
msgstr ""
|
9648 |
|
9649 |
#. translators: File path.
|
9650 |
-
#: lib/wordfenceHash.php:
|
9651 |
msgid "This file is in a WordPress core location but is not distributed with this version of WordPress. This scan often includes files left over from a previous WordPress version, but it may also find files added by another plugin, files added by your host, or malicious files added by an attacker."
|
9652 |
msgstr ""
|
9653 |
|
9654 |
#. translators: Support URL.
|
9655 |
-
#: lib/wordfenceHash.php:
|
9656 |
msgid "This file is in a WordPress core location but is not distributed with this version of WordPress. This scan often includes files left over from a previous WordPress version, but it may also find files added by another plugin, files added by your host, or malicious files added by an attacker. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span class=\"screen-reader-text\"> ("
|
9657 |
msgstr ""
|
9658 |
|
9659 |
#. translators: 1. Number of files. 2. Data in bytes.
|
9660 |
-
#: lib/wordfenceHash.php:
|
9661 |
msgid "Analyzed %1$d files containing %2$s of data so far"
|
9662 |
msgstr ""
|
9663 |
|
9664 |
#. translators: Number of scan results.
|
9665 |
-
#: lib/wordfenceHash.php:
|
9666 |
msgid "(+ %d more)"
|
9667 |
msgstr ""
|
9668 |
|
9669 |
#. translators: Number of files.
|
9670 |
-
#: lib/wordfenceHash.php:
|
9671 |
msgid "%d more similar files were found."
|
9672 |
msgstr ""
|
9673 |
|
9674 |
#. translators: Number of files.
|
9675 |
-
#: lib/wordfenceHash.php:
|
9676 |
msgid "1 more similar file was found."
|
9677 |
msgstr ""
|
9678 |
|
9679 |
#. translators: Number of files.
|
9680 |
-
#: lib/wordfenceHash.php:
|
9681 |
msgid "<a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span class=\"screen-reader-text\"> ("
|
9682 |
msgstr ""
|
9683 |
|
@@ -9738,78 +9742,78 @@ msgid "This file appears to be an old version of the TimThumb script which makes
|
|
9738 |
msgstr ""
|
9739 |
|
9740 |
#. translators: Malware signature rule ID.
|
9741 |
-
#: lib/wordfenceScanner.php:
|
9742 |
msgid "Resuming malware scan at rule %s."
|
9743 |
msgstr ""
|
9744 |
|
9745 |
-
#: lib/wordfenceScanner.php:
|
9746 |
msgid "This file appears to be installed or modified by a hacker to perform malicious activity. If you know about this file you can choose to ignore it to exclude it from future scans."
|
9747 |
msgstr ""
|
9748 |
|
9749 |
-
#: lib/wordfenceScanner.php:
|
9750 |
msgid "File appears to be malicious or unsafe: %s"
|
9751 |
msgstr ""
|
9752 |
|
9753 |
-
#: lib/wordfenceScanner.php:
|
9754 |
msgid "The matched text in this file is: %s"
|
9755 |
msgstr ""
|
9756 |
|
9757 |
#. translators: Scan result type.
|
9758 |
-
#: lib/wordfenceScanner.php:
|
9759 |
msgid "The issue type is: %s"
|
9760 |
msgstr ""
|
9761 |
|
9762 |
#. translators: Scan result description.
|
9763 |
-
#: lib/wordfenceScanner.php:
|
9764 |
msgid "Description: %s"
|
9765 |
msgstr ""
|
9766 |
|
9767 |
#. translators: Malware signature rule ID.
|
9768 |
-
#: lib/wordfenceScanner.php:
|
9769 |
msgid "Forking during malware scan (%s) to ensure continuity."
|
9770 |
msgstr ""
|
9771 |
|
9772 |
-
#: lib/wordfenceScanner.php:
|
9773 |
msgid "This file may contain malicious executable code: "
|
9774 |
msgstr ""
|
9775 |
|
9776 |
#. translators: Malware signature matched text.
|
9777 |
-
#: lib/wordfenceScanner.php:
|
9778 |
msgid "This file is a PHP executable file and contains the word \"eval\" (without quotes) and the word \"%s\" (without quotes). The eval() function along with an encoding function like the one mentioned are commonly used by hackers to hide their code. If you know about this file you can choose to ignore it to exclude it from future scans. This file was detected because you have enabled HIGH SENSITIVITY scanning. This option is more aggressive than the usual scans, and may cause false positives."
|
9779 |
msgstr ""
|
9780 |
|
9781 |
-
#: lib/wordfenceScanner.php:
|
9782 |
msgid "Asking Wordfence to check URLs against malware list."
|
9783 |
msgstr ""
|
9784 |
|
9785 |
-
#: lib/wordfenceScanner.php:
|
9786 |
-
#: lib/wordfenceScanner.php:
|
9787 |
msgid "File contains suspected malware URL: "
|
9788 |
msgstr ""
|
9789 |
|
9790 |
#. translators: 1. Malware signature matched text. 2. Malicious URL. 3. Malicious URL.
|
9791 |
-
#: lib/wordfenceScanner.php:
|
9792 |
msgid "This file contains a suspected malware URL listed on Google's list of malware sites. Wordfence decodes %1$s when scanning files so the URL may not be visible if you view this file. The URL is: %2$s - More info available at <a href=\"http://safebrowsing.clients.google.com/safebrowsing/diagnostic?site=%3$s&client=googlechrome&hl=en-US\" target=\"_blank\" rel=\"noopener noreferrer\">Google Safe Browsing diagnostic page<span class=\"screen-reader-text\"> (opens in new tab)</span></a>."
|
9793 |
msgstr ""
|
9794 |
|
9795 |
-
#: lib/wordfenceScanner.php:
|
9796 |
msgid "File contains suspected phishing URL: "
|
9797 |
msgstr ""
|
9798 |
|
9799 |
-
#: lib/wordfenceScanner.php:
|
9800 |
msgid "This file contains a URL that is a suspected phishing site that is currently listed on Google's list of known phishing sites. The URL is: "
|
9801 |
msgstr ""
|
9802 |
|
9803 |
-
#: lib/wordfenceScanner.php:
|
9804 |
msgid "This file contains a URL that is currently listed on Wordfence's domain blocklist. The URL is: "
|
9805 |
msgstr ""
|
9806 |
|
9807 |
-
#: lib/wordfenceScanner.php:
|
9808 |
msgid "Finalizing malware scan results"
|
9809 |
msgstr ""
|
9810 |
|
9811 |
#. translators: 1. Number of fils. 2. Seconds in millisecond precision.
|
9812 |
-
#: lib/wordfenceScanner.php:
|
9813 |
msgid "Scanned contents of %1$d additional files at %2$.2f per second"
|
9814 |
msgstr ""
|
9815 |
|
@@ -10637,30 +10641,42 @@ msgid "%s License Expired"
|
|
10637 |
msgstr ""
|
10638 |
|
10639 |
#: views/dashboard/options-group-license.php:53
|
|
|
|
|
|
|
|
|
10640 |
msgid "%s License Active"
|
10641 |
msgstr ""
|
10642 |
|
10643 |
-
#: views/dashboard/options-group-license.php:
|
10644 |
msgid "Reset site to a free license"
|
10645 |
msgstr ""
|
10646 |
|
10647 |
-
#: views/dashboard/options-group-license.php:
|
10648 |
msgid "Click here to manage your Wordfence licenses"
|
10649 |
msgstr ""
|
10650 |
|
10651 |
-
#: views/dashboard/options-group-license.php:
|
|
|
|
|
|
|
|
|
10652 |
msgid "Install License"
|
10653 |
msgstr ""
|
10654 |
|
10655 |
-
#: views/dashboard/options-group-license.php:
|
|
|
|
|
|
|
|
|
10656 |
msgid "Confirm Reset"
|
10657 |
msgstr ""
|
10658 |
|
10659 |
-
#: views/dashboard/options-group-license.php:
|
10660 |
msgid "<p>Are you sure you want to reset this site's Wordfence License? This will disable Premium features and return the site to the free version of Wordfence. Your settings will still be retained when reinstalling a license.</p><p>If autorenew is enabled for the current license, the license will renew at the next expiration date. If you would like to turn renewal off or assign the license to another site, log into wordfence.com to change it.</p>"
|
10661 |
msgstr ""
|
10662 |
|
10663 |
-
#: views/dashboard/options-group-license.php:
|
10664 |
msgid "Reset"
|
10665 |
msgstr ""
|
10666 |
|
2 |
# This file is distributed under the same license as the Wordfence Security plugin.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Wordfence Security 7.5.10\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/src\n"
|
7 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
8 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"POT-Creation-Date: 2022-05-17T14:17:20-04:00\n"
|
13 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
14 |
"X-Generator: WP-CLI 2.4.0\n"
|
15 |
"X-Domain: wordfence\n"
|
57 |
#: lib/dashboard/widget_content_logins.php:7
|
58 |
#: lib/dashboard/widget_ips.php:115
|
59 |
#: lib/dashboard/widget_logins.php:96
|
60 |
+
#: lib/wordfenceClass.php:6164
|
61 |
#: views/reports/activity-report-email-inline.php:146
|
62 |
#: views/reports/activity-report.php:16
|
63 |
#: views/waf/option-whitelist.php:110
|
68 |
|
69 |
#: lib/dashboard/widget_content_logins.php:6
|
70 |
#: lib/dashboard/widget_logins.php:95
|
71 |
+
#: lib/wordfenceClass.php:6239
|
72 |
#: views/reports/activity-report-email-inline.php:256
|
73 |
#: views/reports/activity-report.php:106
|
74 |
msgid "Username"
|
133 |
#. translators: WordPress username.
|
134 |
#: lib/dashboard/widget_ips.php:96
|
135 |
#: lib/dashboard/widget_logins.php:77
|
136 |
+
#: lib/wordfenceClass.php:6110
|
137 |
msgid "An error occurred"
|
138 |
msgstr ""
|
139 |
|
234 |
#: lib/menu_tools_twoFactor.php:51
|
235 |
#: lib/menu_wordfence_central.php:59
|
236 |
#: lib/wf503.php:390
|
237 |
+
#: lib/wfScanEngine.php:281
|
238 |
+
#: lib/wfScanEngine.php:614
|
239 |
+
#: lib/wfScanEngine.php:627
|
240 |
+
#: lib/wfScanEngine.php:699
|
241 |
+
#: lib/wfScanEngine.php:722
|
242 |
+
#: lib/wfScanEngine.php:797
|
243 |
+
#: lib/wfScanEngine.php:1010
|
244 |
+
#: lib/wfScanEngine.php:1011
|
245 |
+
#: lib/wfScanEngine.php:1152
|
246 |
+
#: lib/wfScanEngine.php:1289
|
247 |
+
#: lib/wfScanEngine.php:1432
|
248 |
+
#: lib/wfScanEngine.php:1796
|
249 |
+
#: lib/wfScanEngine.php:2042
|
250 |
+
#: lib/wfScanEngine.php:2081
|
251 |
+
#: lib/wfScanEngine.php:2269
|
252 |
+
#: lib/wfScanEngine.php:2311
|
253 |
#: lib/wfVersionCheckController.php:68
|
254 |
#: lib/wfVersionCheckController.php:91
|
255 |
#: lib/wfVersionCheckController.php:167
|
256 |
#: lib/wfVersionCheckController.php:186
|
257 |
+
#: lib/wordfenceClass.php:1398
|
258 |
+
#: lib/wordfenceClass.php:2750
|
259 |
+
#: lib/wordfenceClass.php:2886
|
260 |
+
#: lib/wordfenceClass.php:3041
|
261 |
+
#: lib/wordfenceClass.php:3077
|
262 |
+
#: lib/wordfenceClass.php:3605
|
263 |
+
#: lib/wordfenceClass.php:4931
|
264 |
+
#: lib/wordfenceClass.php:4939
|
265 |
+
#: lib/wordfenceClass.php:4945
|
266 |
+
#: lib/wordfenceClass.php:4958
|
267 |
+
#: lib/wordfenceClass.php:4970
|
268 |
+
#: lib/wordfenceClass.php:4978
|
269 |
+
#: lib/wordfenceClass.php:6299
|
|
|
|
|
|
|
270 |
#: lib/wordfenceClass.php:6321
|
271 |
+
#: lib/wordfenceClass.php:6340
|
272 |
+
#: lib/wordfenceClass.php:6346
|
273 |
+
#: lib/wordfenceClass.php:6393
|
274 |
+
#: lib/wordfenceClass.php:8045
|
275 |
+
#: lib/wordfenceClass.php:8069
|
276 |
+
#: lib/wordfenceClass.php:8113
|
277 |
+
#: lib/wordfenceClass.php:8152
|
278 |
+
#: lib/wordfenceClass.php:8177
|
279 |
+
#: lib/wordfenceClass.php:8208
|
280 |
+
#: lib/wordfenceClass.php:8237
|
281 |
+
#: lib/wordfenceClass.php:8283
|
282 |
+
#: lib/wordfenceClass.php:9005
|
283 |
+
#: lib/wordfenceHash.php:515
|
284 |
+
#: lib/wordfenceHash.php:562
|
285 |
+
#: lib/wordfenceHash.php:636
|
286 |
+
#: lib/wordfenceHash.php:750
|
287 |
#: views/blocking/block-list.php:35
|
288 |
#: views/blocking/blocking-create.php:179
|
289 |
#: views/blocking/blocking-status.php:27
|
305 |
#: views/dashboard/options-group-import.php:31
|
306 |
#: views/dashboard/options-group-import.php:44
|
307 |
#: views/dashboard/options-group-license.php:35
|
308 |
+
#: views/dashboard/options-group-license.php:65
|
309 |
+
#: views/dashboard/options-group-license.php:67
|
310 |
+
#: views/dashboard/options-group-license.php:72
|
311 |
#: views/dashboard/status-payment-expiring.php:31
|
312 |
#: views/dashboard/status-renewing.php:17
|
313 |
#: views/gdpr/banner.php:55
|
426 |
msgstr ""
|
427 |
|
428 |
#: lib/dashboard/widget_notifications.php:8
|
429 |
+
#: lib/wordfenceClass.php:6779
|
430 |
msgid "Notifications"
|
431 |
msgstr ""
|
432 |
|
501 |
#: lib/menu_tools_diagnostic.php:982
|
502 |
#: lib/menu_tools_twoFactor.php:235
|
503 |
#: lib/menu_tools_twoFactor.php:273
|
504 |
+
#: lib/wordfenceClass.php:8070
|
505 |
+
#: lib/wordfenceClass.php:8114
|
506 |
+
#: lib/wordfenceClass.php:8178
|
507 |
+
#: lib/wordfenceClass.php:8238
|
508 |
+
#: lib/wordfenceClass.php:8284
|
509 |
#: views/blocking/block-list.php:501
|
510 |
#: views/blocking/blocking-create.php:212
|
511 |
#: views/blocking/blocking-create.php:529
|
512 |
+
#: views/dashboard/options-group-license.php:165
|
513 |
#: views/options/block-all-options-controls.php:164
|
514 |
#: views/options/block-controls.php:79
|
515 |
msgid "Cancel"
|
723 |
#: lib/wfVersionCheckController.php:91
|
724 |
#: lib/wfVersionCheckController.php:167
|
725 |
#: lib/wfVersionCheckController.php:186
|
726 |
+
#: lib/wordfenceClass.php:6426
|
727 |
#: views/blocking/blocking-create.php:528
|
728 |
#: views/blocking/blocking-status.php:27
|
729 |
#: views/dashboard/options-group-dashboard.php:107
|
926 |
msgstr ""
|
927 |
|
928 |
#: lib/menu_dashboard.php:24
|
929 |
+
#: lib/wordfenceClass.php:6664
|
930 |
msgid "Wordfence Dashboard"
|
931 |
msgstr ""
|
932 |
|
938 |
#: lib/menu_dashboard_options.php:98
|
939 |
#: lib/menu_firewall.php:20
|
940 |
#: lib/menu_firewall.php:30
|
941 |
+
#: lib/wordfenceClass.php:6668
|
942 |
#: models/page/wfPage.php:105
|
943 |
msgid "Firewall"
|
944 |
msgstr ""
|
975 |
#: lib/menu_dashboard_options.php:115
|
976 |
#: lib/menu_scanner.php:31
|
977 |
#: lib/menu_scanner.php:305
|
978 |
+
#: lib/wordfenceClass.php:6675
|
979 |
#: models/page/wfPage.php:113
|
980 |
msgid "Scan"
|
981 |
msgstr ""
|
1013 |
|
1014 |
#: lib/menu_dashboard.php:89
|
1015 |
#: lib/menu_dashboard_options.php:133
|
1016 |
+
#: views/dashboard/options-group-license.php:65
|
1017 |
msgid "Reset License"
|
1018 |
msgstr ""
|
1019 |
|
1058 |
#: lib/menu_scanner.php:80
|
1059 |
#: lib/menu_support.php:55
|
1060 |
#: lib/menu_tools_twoFactor.php:51
|
1061 |
+
#: lib/wordfenceClass.php:6704
|
1062 |
#: views/blocking/blocking-create.php:179
|
1063 |
#: views/blocking/blocking-status.php:23
|
1064 |
#: views/blocking/blocking-status.php:27
|
1065 |
#: views/blocking/options-group-advanced-country.php:85
|
1066 |
#: views/dashboard/options-group-dashboard.php:107
|
1067 |
+
#: views/dashboard/options-group-license.php:72
|
1068 |
#: views/onboarding/fresh-install.php:42
|
1069 |
#: views/onboarding/modal-final-attempt.php:41
|
1070 |
#: views/onboarding/plugin-header.php:64
|
1152 |
msgstr ""
|
1153 |
|
1154 |
#: lib/menu_dashboard.php:229
|
1155 |
+
#: lib/wordfenceClass.php:6679
|
1156 |
msgid "Tools"
|
1157 |
msgstr ""
|
1158 |
|
1164 |
#: lib/menu_firewall_waf.php:157
|
1165 |
#: lib/menu_scanner.php:139
|
1166 |
#: lib/menu_support.php:19
|
1167 |
+
#: lib/wordfenceClass.php:6692
|
1168 |
msgid "Help"
|
1169 |
msgstr ""
|
1170 |
|
1383 |
#: lib/menu_firewall.php:41
|
1384 |
#: lib/menu_firewall_blocking.php:119
|
1385 |
#: lib/menu_firewall_waf.php:142
|
1386 |
+
#: lib/wordfenceClass.php:6670
|
1387 |
#: models/page/wfPage.php:109
|
1388 |
msgid "Blocking"
|
1389 |
msgstr ""
|
1572 |
#: lib/menu_tools_diagnostic.php:301
|
1573 |
#: lib/menu_tools_diagnostic.php:302
|
1574 |
#: lib/menu_tools_diagnostic.php:305
|
1575 |
+
#: lib/wordfenceClass.php:6136
|
1576 |
#: models/firewall/wfFirewall.php:41
|
1577 |
#: views/diagnostics/text.php:154
|
1578 |
#: views/diagnostics/text.php:159
|
1694 |
|
1695 |
#: lib/menu_options.php:24
|
1696 |
#: lib/menu_options.php:262
|
1697 |
+
#: lib/wordfenceClass.php:6687
|
1698 |
msgid "All Options"
|
1699 |
msgstr ""
|
1700 |
|
2333 |
msgstr ""
|
2334 |
|
2335 |
#: lib/menu_scanner.php:80
|
2336 |
+
#: lib/wordfenceClass.php:6716
|
2337 |
msgid "Protect More Sites"
|
2338 |
msgstr ""
|
2339 |
|
2416 |
#: lib/menu_tools_twoFactor.php:255
|
2417 |
#: lib/menu_tools_twoFactor.php:264
|
2418 |
#: lib/menu_tools_twoFactor.php:284
|
2419 |
+
#: lib/wordfenceClass.php:4940
|
2420 |
+
#: lib/wordfenceClass.php:4946
|
2421 |
+
#: lib/wordfenceClass.php:4952
|
2422 |
+
#: lib/wordfenceClass.php:4959
|
2423 |
+
#: lib/wordfenceClass.php:4965
|
2424 |
+
#: lib/wordfenceClass.php:4972
|
2425 |
+
#: lib/wordfenceClass.php:4980
|
2426 |
+
#: lib/wordfenceClass.php:6078
|
2427 |
+
#: lib/wordfenceClass.php:6080
|
2428 |
+
#: lib/wordfenceClass.php:6131
|
2429 |
+
#: lib/wordfenceClass.php:8095
|
2430 |
+
#: lib/wordfenceClass.php:8102
|
2431 |
+
#: lib/wordfenceClass.php:8209
|
2432 |
+
#: lib/wordfenceClass.php:8273
|
2433 |
#: views/dashboard/options-group-import.php:147
|
2434 |
#: views/dashboard/options-group-import.php:157
|
2435 |
#: views/dashboard/options-group-import.php:177
|
2632 |
#: lib/menu_tools_livetraffic.php:41
|
2633 |
#: lib/menu_tools_livetraffic.php:571
|
2634 |
#: lib/menu_tools_livetraffic.php:602
|
2635 |
+
#: lib/wordfenceClass.php:6681
|
2636 |
#: models/page/wfPage.php:119
|
2637 |
msgid "Live Traffic"
|
2638 |
msgstr ""
|
3123 |
msgstr ""
|
3124 |
|
3125 |
#: lib/menu_tools_diagnostic.php:304
|
3126 |
+
#: lib/wordfenceClass.php:4259
|
3127 |
#: views/diagnostics/text.php:162
|
3128 |
msgid "Never"
|
3129 |
msgstr ""
|
3470 |
|
3471 |
#: lib/menu_tools_diagnostic.php:732
|
3472 |
#: lib/menu_tools_diagnostic.php:771
|
3473 |
+
#: lib/wordfenceClass.php:6139
|
3474 |
msgid "Download"
|
3475 |
msgstr ""
|
3476 |
|
3500 |
msgstr ""
|
3501 |
|
3502 |
#: lib/menu_tools_diagnostic.php:811
|
3503 |
+
#: lib/wordfenceClass.php:3960
|
3504 |
#: views/diagnostics/text.php:584
|
3505 |
msgid "No New Issues"
|
3506 |
msgstr ""
|
3570 |
msgstr ""
|
3571 |
|
3572 |
#: lib/menu_tools_diagnostic.php:961
|
3573 |
+
#: lib/wordfenceClass.php:6200
|
3574 |
msgid "Restore Defaults"
|
3575 |
msgstr ""
|
3576 |
|
3577 |
#: lib/menu_tools_diagnostic.php:962
|
3578 |
+
#: lib/wordfenceClass.php:6125
|
3579 |
msgid "Cancel Changes"
|
3580 |
msgstr ""
|
3581 |
|
3582 |
#: lib/menu_tools_diagnostic.php:963
|
3583 |
+
#: lib/wordfenceClass.php:6203
|
3584 |
msgid "Save Changes"
|
3585 |
msgstr ""
|
3586 |
|
3651 |
#: lib/menu_tools_livetraffic.php:100
|
3652 |
#: lib/menu_tools_livetraffic.php:227
|
3653 |
#: lib/menu_tools_livetraffic.php:458
|
3654 |
+
#: lib/wordfenceClass.php:6162
|
3655 |
msgid "Human"
|
3656 |
msgstr ""
|
3657 |
|
3658 |
#: lib/menu_tools_livetraffic.php:101
|
3659 |
#: lib/menu_tools_livetraffic.php:228
|
3660 |
#: lib/menu_tools_livetraffic.php:458
|
3661 |
+
#: lib/wordfenceClass.php:6124
|
3662 |
msgid "Bot"
|
3663 |
msgstr ""
|
3664 |
|
3668 |
|
3669 |
#: lib/menu_tools_livetraffic.php:103
|
3670 |
#: lib/wfDiagnostic.php:762
|
3671 |
+
#: lib/wordfenceClass.php:6116
|
3672 |
msgid "Blocked"
|
3673 |
msgstr ""
|
3674 |
|
3761 |
msgstr ""
|
3762 |
|
3763 |
#: lib/menu_tools_livetraffic.php:286
|
3764 |
+
#: lib/wordfenceClass.php:6231
|
3765 |
msgid "Type"
|
3766 |
msgstr ""
|
3767 |
|
3784 |
msgstr ""
|
3785 |
|
3786 |
#: lib/menu_tools_livetraffic.php:291
|
3787 |
+
#: lib/wordfenceClass.php:4241
|
3788 |
#: views/blocking/blocking-create.php:193
|
3789 |
msgid "Hostname"
|
3790 |
msgstr ""
|
4144 |
msgstr ""
|
4145 |
|
4146 |
#: lib/menu_tools_whois.php:95
|
4147 |
+
#: lib/wordfenceClass.php:6144
|
4148 |
msgid "Enter a valid IP or domain"
|
4149 |
msgstr ""
|
4150 |
|
4151 |
#: lib/menu_tools_whois.php:95
|
4152 |
+
#: lib/wordfenceClass.php:6187
|
4153 |
msgid "Please enter a valid IP address or domain name for your whois lookup."
|
4154 |
msgstr ""
|
4155 |
|
4156 |
#: lib/menu_tools_whois.php:99
|
4157 |
+
#: lib/wordfenceClass.php:6168
|
4158 |
msgid "Loading..."
|
4159 |
msgstr ""
|
4160 |
|
4161 |
#: lib/menu_tools_whois.php:104
|
4162 |
+
#: lib/wordfenceClass.php:6174
|
4163 |
msgid "Look up IP or Domain"
|
4164 |
msgstr ""
|
4165 |
|
4189 |
|
4190 |
#: lib/menu_wordfence_central.php:44
|
4191 |
#: lib/menu_wordfence_central.php:57
|
4192 |
+
#: lib/wordfenceClass.php:6697
|
4193 |
msgid "Wordfence Central"
|
4194 |
msgstr ""
|
4195 |
|
4272 |
#. translators: Error message.
|
4273 |
#: lib/rest-api/wfRESTConfigController.php:215
|
4274 |
#: lib/rest-api/wfRESTConfigController.php:258
|
4275 |
+
#: lib/wordfenceClass.php:4525
|
4276 |
msgid "An error occurred while saving the configuration: %s"
|
4277 |
msgstr ""
|
4278 |
|
4279 |
#. translators: Error message.
|
4280 |
#: lib/rest-api/wfRESTConfigController.php:226
|
4281 |
#: lib/rest-api/wfRESTConfigController.php:269
|
4282 |
+
#: lib/wordfenceClass.php:4534
|
4283 |
msgid "Errors occurred while saving the configuration: %s"
|
4284 |
msgstr ""
|
4285 |
|
4286 |
#: lib/rest-api/wfRESTConfigController.php:231
|
4287 |
#: lib/rest-api/wfRESTConfigController.php:274
|
4288 |
+
#: lib/wordfenceClass.php:4539
|
4289 |
msgid "Errors occurred while saving the configuration."
|
4290 |
msgstr ""
|
4291 |
|
4402 |
msgstr ""
|
4403 |
|
4404 |
#: lib/wfActivityReport.php:584
|
4405 |
+
#: lib/wordfenceClass.php:8448
|
4406 |
msgid "Blocked because the IP is blocklisted"
|
4407 |
msgstr ""
|
4408 |
|
4409 |
#. translators: Reason for firewall action.
|
4410 |
#: lib/wfActivityReport.php:587
|
4411 |
+
#: lib/wordfenceClass.php:8451
|
4412 |
msgid "Blocked for %s"
|
4413 |
msgstr ""
|
4414 |
|
4415 |
#. translators: 1. Reason for firewall action. 2. Input parameter. 2. Input parameter value.
|
4416 |
#: lib/wfActivityReport.php:599
|
4417 |
+
#: lib/wordfenceClass.php:8465
|
4418 |
msgid "Blocked for %1$s in query string: %2$s = %3$s"
|
4419 |
msgstr ""
|
4420 |
|
4421 |
#. translators: 1. Reason for firewall action. 2. Input parameter. 2. Input parameter value.
|
4422 |
#: lib/wfActivityReport.php:602
|
4423 |
+
#: lib/wordfenceClass.php:8470
|
4424 |
msgid "Blocked for %1$s in POST body: %2$s = %3$s"
|
4425 |
msgstr ""
|
4426 |
|
4427 |
#. translators: 1. Reason for firewall action. 2. Input parameter. 2. Input parameter value.
|
4428 |
#: lib/wfActivityReport.php:605
|
4429 |
+
#: lib/wordfenceClass.php:8475
|
4430 |
msgid "Blocked for %1$s in cookie: %2$s = %3$s"
|
4431 |
msgstr ""
|
4432 |
|
4433 |
#. translators: 1. Reason for firewall action. 2. Input parameter. 2. Input parameter value.
|
4434 |
#: lib/wfActivityReport.php:608
|
4435 |
+
#: lib/wordfenceClass.php:8480
|
4436 |
msgid "Blocked for %1$s in file: %2$s = %3$s"
|
4437 |
msgstr ""
|
4438 |
|
4443 |
msgstr ""
|
4444 |
|
4445 |
#: lib/wfAdminNoticeQueue.php:193
|
4446 |
+
#: lib/wordfenceClass.php:6137
|
4447 |
+
#: lib/wordfenceClass.php:6392
|
4448 |
+
#: lib/wordfenceClass.php:6427
|
4449 |
+
#: lib/wordfenceClass.php:9003
|
4450 |
msgid "Dismiss"
|
4451 |
msgstr ""
|
4452 |
|
5678 |
msgstr ""
|
5679 |
|
5680 |
#: lib/wfConfig.php:1186
|
5681 |
+
#: lib/wordfenceClass.php:7558
|
5682 |
msgid "The grace period end time must be in the future."
|
5683 |
msgstr ""
|
5684 |
|
5716 |
msgstr ""
|
5717 |
|
5718 |
#: lib/wfConfig.php:1312
|
5719 |
+
#: lib/wordfenceClass.php:4410
|
5720 |
msgid "The license key entered is not in a valid format. It must contain only numbers and the letters A-F."
|
5721 |
msgstr ""
|
5722 |
|
6237 |
|
6238 |
#: lib/wfLog.php:600
|
6239 |
#: models/block/wfBlock.php:1442
|
6240 |
+
#: waf/wfWAFIPBlocksController.php:73
|
6241 |
msgid "Access from your area has been temporarily limited for security reasons"
|
6242 |
msgstr ""
|
6243 |
|
6244 |
#: lib/wfLog.php:615
|
6245 |
+
#: lib/wordfenceClass.php:6175
|
6246 |
+
#: waf/wfWAFIPBlocksController.php:99
|
6247 |
msgid "Manual block by administrator"
|
6248 |
msgstr ""
|
6249 |
|
6388 |
#: lib/wfScan.php:263
|
6389 |
#: lib/wfScan.php:278
|
6390 |
#: lib/wfScan.php:293
|
6391 |
+
#: lib/wfScanEngine.php:444
|
6392 |
msgid "Wordfence used %1$s of memory for scan. Server peak memory usage was: %2$s"
|
6393 |
msgstr ""
|
6394 |
|
6413 |
msgstr ""
|
6414 |
|
6415 |
#. translators: Number of scan results.
|
6416 |
+
#: lib/wfScanEngine.php:116
|
6417 |
msgid "%d issue found in most recent scan"
|
6418 |
msgid_plural "%d issues found in most recent scan"
|
6419 |
msgstr[0] ""
|
6420 |
msgstr[1] ""
|
6421 |
|
6422 |
#. translators: 1. Time duration. 2. Support URL.
|
6423 |
+
#: lib/wfScanEngine.php:281
|
6424 |
msgid "The scan time limit of %1$s has been exceeded and the scan will be terminated. This limit can be customized on the options page. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Get More Information<span class=\"screen-reader-text\"> ("
|
6425 |
msgstr ""
|
6426 |
|
6427 |
+
#: lib/wfScanEngine.php:285
|
6428 |
msgid "Scan Time Limit Exceeded"
|
6429 |
msgstr ""
|
6430 |
|
6431 |
#. translators: 1. Number of files. 2. Number of plugins. 3. Number of themes. 4. Number of posts. 5. Number of comments. 6. Number of URLs. 7. Time duration.
|
6432 |
+
#: lib/wfScanEngine.php:290
|
6433 |
msgid "Scan interrupted. Scanned %1$d files, %2$d plugins, %3$d themes, %4$d posts, %5$d comments and %6$d URLs in %7$s."
|
6434 |
msgstr ""
|
6435 |
|
6436 |
#. translators: Number of scan results.
|
6437 |
+
#: lib/wfScanEngine.php:302
|
6438 |
msgid "Scan interrupted. You have %d new issue to fix. See below."
|
6439 |
msgid_plural "Scan interrupted. You have %d new issues to fix. See below."
|
6440 |
msgstr[0] ""
|
6441 |
msgstr[1] ""
|
6442 |
|
6443 |
+
#: lib/wfScanEngine.php:311
|
6444 |
msgid "Scan interrupted. No problems found prior to stopping."
|
6445 |
msgstr ""
|
6446 |
|
6447 |
#. translators: 1. Software version. 2. Software version.
|
6448 |
+
#: lib/wfScanEngine.php:323
|
6449 |
msgid "Aborting scan because WordPress updated from version %1$s to %2$s. The scan will be reattempted later."
|
6450 |
msgstr ""
|
6451 |
|
6452 |
+
#: lib/wfScanEngine.php:353
|
6453 |
msgid "Forking during hash scan to ensure continuity."
|
6454 |
msgstr ""
|
6455 |
|
6456 |
+
#: lib/wfScanEngine.php:359
|
6457 |
msgid "Entered fork()"
|
6458 |
msgstr ""
|
6459 |
|
6460 |
+
#: lib/wfScanEngine.php:362
|
6461 |
msgid "Calling startScan(true)"
|
6462 |
msgstr ""
|
6463 |
|
6464 |
#. translators: 1. Number of files. 2. Number of plugins. 3. Number of themes. 4. Number of posts. 5. Number of comments. 6. Number of URLs. 7. Time duration.
|
6465 |
+
#: lib/wfScanEngine.php:452
|
6466 |
msgid "Scan Complete. Scanned %1$d files, %2$d plugins, %3$d themes, %4$d posts, %5$d comments and %6$d URLs in %7$s."
|
6467 |
msgstr ""
|
6468 |
|
6469 |
#. translators: 1. Time duration.
|
6470 |
+
#: lib/wfScanEngine.php:464
|
6471 |
msgid "Quick Scan Complete. Scanned in %s."
|
6472 |
msgstr ""
|
6473 |
|
6474 |
#. translators: Number of scan results.
|
6475 |
+
#: lib/wfScanEngine.php:473
|
6476 |
msgid "%d ignored issue was also detected."
|
6477 |
msgid_plural "%d ignored issues were also detected."
|
6478 |
msgstr[0] ""
|
6479 |
msgstr[1] ""
|
6480 |
|
6481 |
#. translators: Number of scan results.
|
6482 |
+
#: lib/wfScanEngine.php:484
|
6483 |
msgid "Scan complete. You have %d new issue to fix."
|
6484 |
msgid_plural "Scan complete. You have %d new issues to fix."
|
6485 |
msgstr[0] ""
|
6486 |
msgstr[1] ""
|
6487 |
|
6488 |
+
#: lib/wfScanEngine.php:492
|
6489 |
msgid "See below."
|
6490 |
msgstr ""
|
6491 |
|
6492 |
+
#: lib/wfScanEngine.php:495
|
6493 |
msgid "Scan complete. Congratulations, no new problems found."
|
6494 |
msgstr ""
|
6495 |
|
6496 |
+
#: lib/wfScanEngine.php:506
|
6497 |
msgid "Checking if your site IP is generating spam"
|
6498 |
msgstr ""
|
6499 |
|
6500 |
+
#: lib/wfScanEngine.php:525
|
6501 |
msgid "Checking if your IP is generating spam is for paid members only"
|
6502 |
msgstr ""
|
6503 |
|
6504 |
+
#: lib/wfScanEngine.php:532
|
6505 |
msgid "Checking if your site is on a domain blocklist"
|
6506 |
msgstr ""
|
6507 |
|
6508 |
+
#: lib/wfScanEngine.php:537
|
6509 |
msgid "Checking if your site is on a domain blocklist is for paid members only"
|
6510 |
msgstr ""
|
6511 |
|
6512 |
#. translators: Error message.
|
6513 |
+
#: lib/wfScanEngine.php:573
|
6514 |
msgid "Error checking domain blocklists: %s"
|
6515 |
msgstr ""
|
6516 |
|
6517 |
#. translators: WordPress site ID.
|
6518 |
+
#: lib/wfScanEngine.php:607
|
6519 |
msgid "The multisite blog with ID %d is listed on Google's Safe Browsing malware list."
|
6520 |
msgstr ""
|
6521 |
|
6522 |
+
#: lib/wfScanEngine.php:610
|
6523 |
msgid "Your site is listed on Google's Safe Browsing malware list."
|
6524 |
msgstr ""
|
6525 |
|
6526 |
#. translators: 1. URL. 2. URL.
|
6527 |
+
#: lib/wfScanEngine.php:614
|
6528 |
msgid "The URL %1$s is on the malware list. More info available at <a href=\"http://safebrowsing.clients.google.com/safebrowsing/diagnostic?site=%2$s&client=googlechrome&hl=en-US\" target=\"_blank\" rel=\"noopener noreferrer\">Google Safe Browsing diagnostic page<span class=\"screen-reader-text\"> ("
|
6529 |
msgstr ""
|
6530 |
|
6531 |
#. translators: WordPress site ID.
|
6532 |
+
#: lib/wfScanEngine.php:620
|
6533 |
msgid "The multisite blog with ID %d is listed on Google's Safe Browsing phishing list."
|
6534 |
msgstr ""
|
6535 |
|
6536 |
+
#: lib/wfScanEngine.php:623
|
6537 |
msgid "Your site is listed on Google's Safe Browsing phishing list."
|
6538 |
msgstr ""
|
6539 |
|
6540 |
#. translators: 1. URL. 2. URL.
|
6541 |
+
#: lib/wfScanEngine.php:627
|
6542 |
msgid "The URL %1$s is on the phishing list. More info available at <a href=\"http://safebrowsing.clients.google.com/safebrowsing/diagnostic?site=%2$s&client=googlechrome&hl=en-US\" target=\"_blank\" rel=\"noopener noreferrer\">Google Safe Browsing diagnostic page<span class=\"screen-reader-text\"> ("
|
6543 |
msgstr ""
|
6544 |
|
6545 |
#. translators: WordPress site ID.
|
6546 |
+
#: lib/wfScanEngine.php:633
|
6547 |
msgid "The multisite blog with ID %d is listed on the Wordfence domain blocklist."
|
6548 |
msgstr ""
|
6549 |
|
6550 |
+
#: lib/wfScanEngine.php:636
|
6551 |
msgid "Your site is listed on the Wordfence domain blocklist."
|
6552 |
msgstr ""
|
6553 |
|
6554 |
#. translators: URL.
|
6555 |
+
#: lib/wfScanEngine.php:640
|
6556 |
msgid "The URL %s is on the blocklist."
|
6557 |
msgstr ""
|
6558 |
|
6559 |
#. translators: WordPress site ID.
|
6560 |
+
#: lib/wfScanEngine.php:646
|
6561 |
msgid "The multisite blog with ID %d is listed on a domain blocklist."
|
6562 |
msgstr ""
|
6563 |
|
6564 |
+
#: lib/wfScanEngine.php:649
|
6565 |
msgid "Your site is listed on a domain blocklist."
|
6566 |
msgstr ""
|
6567 |
|
6568 |
#. translators: URL.
|
6569 |
+
#: lib/wfScanEngine.php:651
|
6570 |
msgid "The URL is: %s"
|
6571 |
msgstr ""
|
6572 |
|
6573 |
+
#: lib/wfScanEngine.php:671
|
6574 |
msgid "Checking for the most secure way to get IPs"
|
6575 |
msgstr ""
|
6576 |
|
6577 |
+
#: lib/wfScanEngine.php:698
|
6578 |
msgid "Unable to accurately detect IPs"
|
6579 |
msgstr ""
|
6580 |
|
6581 |
#. translators: Support URL.
|
6582 |
+
#: lib/wfScanEngine.php:699
|
6583 |
msgid "Wordfence was unable to validate a test request to your website. This can happen if your website is behind a proxy that does not use one of the standard ways to convey the IP of the request or it is unreachable publicly. IP blocking and live traffic information may not be accurate. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Get More Information<span class=\"screen-reader-text\"> ("
|
6584 |
msgstr ""
|
6585 |
|
6586 |
+
#: lib/wfScanEngine.php:709
|
6587 |
+
#: lib/wordfenceClass.php:6369
|
6588 |
msgid "For maximum security use PHP's built in REMOTE_ADDR."
|
6589 |
msgstr ""
|
6590 |
|
6591 |
+
#: lib/wfScanEngine.php:711
|
6592 |
+
#: lib/wordfenceClass.php:6372
|
6593 |
msgid "This site appears to be behind a front-end proxy, so using the X-Forwarded-For HTTP header will resolve to the correct IPs."
|
6594 |
msgstr ""
|
6595 |
|
6596 |
+
#: lib/wfScanEngine.php:713
|
6597 |
+
#: lib/wordfenceClass.php:6375
|
6598 |
msgid "This site appears to be behind a front-end proxy, so using the X-Real-IP HTTP header will resolve to the correct IPs."
|
6599 |
msgstr ""
|
6600 |
|
6601 |
+
#: lib/wfScanEngine.php:715
|
6602 |
+
#: lib/wordfenceClass.php:6378
|
6603 |
msgid "This site appears to be behind Cloudflare, so using the Cloudflare \"CF-Connecting-IP\" HTTP header will resolve to the correct IPs."
|
6604 |
msgstr ""
|
6605 |
|
6606 |
+
#: lib/wfScanEngine.php:719
|
6607 |
msgid "'How does Wordfence get IPs' is misconfigured"
|
6608 |
msgstr ""
|
6609 |
|
6610 |
#. translators: Support URL.
|
6611 |
+
#: lib/wfScanEngine.php:722
|
6612 |
msgid "A test request to this website was detected on a different value for this setting. IP blocking and live traffic information may not be accurate. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Get More Information<span class=\"screen-reader-text\"> ("
|
6613 |
msgstr ""
|
6614 |
|
6615 |
+
#: lib/wfScanEngine.php:743
|
6616 |
msgid "Check for publicly accessible configuration files, backup files and logs"
|
6617 |
msgstr ""
|
6618 |
|
6619 |
#. translators: File path.
|
6620 |
+
#: lib/wfScanEngine.php:794
|
6621 |
msgid "Publicly accessible config, backup, or log file found: %s"
|
6622 |
msgstr ""
|
6623 |
|
6624 |
#. translators: 1. URL to publicly accessible file. 2. Support URL.
|
6625 |
+
#: lib/wfScanEngine.php:797
|
6626 |
msgid "<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%1$s</a> is publicly accessible and may expose source code or sensitive information about your site. Files such as this one are commonly checked for by scanners and should be made inaccessible. Alternately, some can be removed if you are certain your site does not need them. Sites using the nginx web server may need manual configuration changes to protect such files. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn more<span class=\"screen-reader-text\"> ("
|
6627 |
msgstr ""
|
6628 |
|
6629 |
+
#: lib/wfScanEngine.php:827
|
6630 |
msgid "Checking if your server discloses the path to the document root"
|
6631 |
msgstr ""
|
6632 |
|
6633 |
+
#: lib/wfScanEngine.php:837
|
6634 |
msgid "Web server exposes the document root"
|
6635 |
msgstr ""
|
6636 |
|
6637 |
+
#: lib/wfScanEngine.php:838
|
6638 |
msgid "Full Path Disclosure (FPD) vulnerabilities enable the attacker to see the path to the webroot/file. e.g.: /home/user/htdocs/file/. Certain vulnerabilities, such as using the load_file() (within a SQL Injection) query to view the page source, require the attacker to have the full path to the file they wish to view."
|
6639 |
msgstr ""
|
6640 |
|
6641 |
+
#: lib/wfScanEngine.php:864
|
6642 |
msgid "Directory listing is enabled"
|
6643 |
msgstr ""
|
6644 |
|
6645 |
+
#: lib/wfScanEngine.php:865
|
6646 |
msgid "Directory listing provides an attacker with the complete index of all the resources located inside of the directory. The specific risks and consequences vary depending on which files are listed and accessible, but it is recommended that you disable it unless it is needed."
|
6647 |
msgstr ""
|
6648 |
|
6649 |
+
#: lib/wfScanEngine.php:881
|
6650 |
msgid "Checking if your site is being Spamvertised"
|
6651 |
msgstr ""
|
6652 |
|
6653 |
+
#: lib/wfScanEngine.php:900
|
6654 |
msgid "Check if your site is being Spamvertized is for paid members only"
|
6655 |
msgstr ""
|
6656 |
|
6657 |
+
#: lib/wfScanEngine.php:954
|
6658 |
+
msgid "Wordfence could not read the content of your WordPress directory. This usually indicates your permissions are so strict that your web server can't read your WordPress directory."
|
6659 |
msgstr ""
|
6660 |
|
6661 |
+
#: lib/wfScanEngine.php:972
|
6662 |
msgid "Checking for paths skipped due to scan settings"
|
6663 |
msgstr ""
|
6664 |
|
6665 |
#. translators: Number of paths skipped in scan.
|
6666 |
+
#: lib/wfScanEngine.php:982
|
6667 |
msgid ", and %d more."
|
6668 |
msgstr ""
|
6669 |
|
6670 |
#. translators: Number of paths skipped in scan.
|
6671 |
+
#: lib/wfScanEngine.php:1006
|
6672 |
msgid "%d path was skipped for the malware scan due to scan settings"
|
6673 |
msgid_plural "%d paths were skipped for the malware scan due to scan settings"
|
6674 |
msgstr[0] ""
|
6675 |
msgstr[1] ""
|
6676 |
|
6677 |
#. translators: 1. Number of paths skipped in scan. 2. Support URL. 3. List of skipped paths.
|
6678 |
+
#: lib/wfScanEngine.php:1009
|
6679 |
msgid "The option \"Scan files outside your WordPress installation\" is off by default, which means %1$d path and its file(s) will not be scanned for malware or unauthorized changes. To continue skipping this path, you may ignore this issue. Or to start scanning it, enable the option and subsequent scans will include it. Some paths may not be necessary to scan, so this is optional. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span class=\"screen-reader-text\"> ("
|
6680 |
msgid_plural "The option \"Scan files outside your WordPress installation\" is off by default, which means %1$d paths and their file(s) will not be scanned for malware or unauthorized changes. To continue skipping these paths, you may ignore this issue. Or to start scanning them, enable the option and subsequent scans will include them. Some paths may not be necessary to scan, so this is optional. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span class=\"screen-reader-text\"> ("
|
6681 |
msgstr[0] ""
|
6682 |
msgstr[1] ""
|
6683 |
|
6684 |
+
#: lib/wfScanEngine.php:1037
|
6685 |
msgid "Including files that are outside the WordPress installation in the scan."
|
6686 |
msgstr ""
|
6687 |
|
6688 |
+
#: lib/wfScanEngine.php:1040
|
6689 |
msgid "Getting plugin list from WordPress"
|
6690 |
msgstr ""
|
6691 |
|
6692 |
#. translators: Number of plugins.
|
6693 |
+
#: lib/wfScanEngine.php:1042
|
6694 |
msgid "Found %d plugin"
|
6695 |
msgid_plural "Found %d plugins"
|
6696 |
msgstr[0] ""
|
6697 |
msgstr[1] ""
|
6698 |
|
6699 |
+
#: lib/wfScanEngine.php:1044
|
6700 |
msgid "Getting theme list from WordPress"
|
6701 |
msgstr ""
|
6702 |
|
6703 |
#. translators: Number of themes.
|
6704 |
+
#: lib/wfScanEngine.php:1046
|
6705 |
msgid "Found %d theme"
|
6706 |
msgid_plural "Found %d themes"
|
6707 |
msgstr[0] ""
|
6708 |
msgstr[1] ""
|
6709 |
|
6710 |
+
#: lib/wfScanEngine.php:1063
|
6711 |
msgid "Scanning file contents for infections and vulnerabilities"
|
6712 |
msgstr ""
|
6713 |
|
6714 |
+
#: lib/wfScanEngine.php:1066
|
6715 |
msgid "Skipping scan of file contents for infections and vulnerabilities"
|
6716 |
msgstr ""
|
6717 |
|
6718 |
+
#: lib/wfScanEngine.php:1070
|
6719 |
msgid "Scanning file contents for URLs on a domain blocklist"
|
6720 |
msgstr ""
|
6721 |
|
6722 |
+
#: lib/wfScanEngine.php:1073
|
6723 |
msgid "Skipping scan of file contents for URLs on a domain blocklist"
|
6724 |
msgstr ""
|
6725 |
|
6726 |
+
#: lib/wfScanEngine.php:1078
|
6727 |
msgid "Starting scan of file contents"
|
6728 |
msgstr ""
|
6729 |
|
6730 |
+
#: lib/wfScanEngine.php:1094
|
6731 |
msgid "Done file contents scan"
|
6732 |
msgstr ""
|
6733 |
|
6734 |
#. translators: Scan result description.
|
6735 |
+
#: lib/wfScanEngine.php:1102
|
6736 |
+
#: lib/wfScanEngine.php:2271
|
6737 |
+
#: lib/wfScanEngine.php:2313
|
6738 |
msgid "Adding issue: %s"
|
6739 |
msgstr ""
|
6740 |
|
6741 |
+
#: lib/wfScanEngine.php:1135
|
6742 |
msgid "Scanning for publicly accessible quarantined files"
|
6743 |
msgstr ""
|
6744 |
|
6745 |
#. translators: File path.
|
6746 |
+
#: lib/wfScanEngine.php:1140
|
6747 |
msgid "Testing accessibility of: %s"
|
6748 |
msgstr ""
|
6749 |
|
6750 |
#. translators: File path.
|
6751 |
+
#: lib/wfScanEngine.php:1149
|
6752 |
msgid "Publicly accessible quarantined file found: %s"
|
6753 |
msgstr ""
|
6754 |
|
6755 |
#. translators: URL to publicly accessible file.
|
6756 |
+
#: lib/wfScanEngine.php:1152
|
6757 |
msgid "<a href=\"%1$s\" target=\"_blank\" rel=\"noopener noreferrer\">%1$s<span class=\"screen-reader-text\"> ("
|
6758 |
msgstr ""
|
6759 |
|
6760 |
+
#: lib/wfScanEngine.php:1176
|
6761 |
msgid "Scanning posts for URLs on a domain blocklist"
|
6762 |
msgstr ""
|
6763 |
|
6764 |
#. translators: Number of posts left to scan.
|
6765 |
+
#: lib/wfScanEngine.php:1199
|
6766 |
msgid "Scanning posts with %d left to scan."
|
6767 |
msgstr ""
|
6768 |
|
6769 |
+
#: lib/wfScanEngine.php:1221
|
6770 |
msgid "Post title contains suspicious code"
|
6771 |
msgstr ""
|
6772 |
|
6773 |
+
#: lib/wfScanEngine.php:1222
|
6774 |
msgid "This post contains code that is suspicious. Please check the title of the post and confirm that the code in the title is not malicious."
|
6775 |
msgstr ""
|
6776 |
|
6777 |
+
#: lib/wfScanEngine.php:1245
|
6778 |
msgid "Examining URLs found in posts we scanned for dangerous websites"
|
6779 |
msgstr ""
|
6780 |
|
6781 |
+
#: lib/wfScanEngine.php:1247
|
6782 |
+
#: lib/wfScanEngine.php:2234
|
6783 |
msgid "Done examining URLs"
|
6784 |
msgstr ""
|
6785 |
|
6786 |
#. translators: 1. WordPress Post type. 2. URL.
|
6787 |
+
#: lib/wfScanEngine.php:1283
|
6788 |
+
#: lib/wfScanEngine.php:1303
|
6789 |
msgid "%1$s contains a suspected malware URL: %2$s"
|
6790 |
msgstr ""
|
6791 |
|
6792 |
#. translators: 1. WordPress Post type. 2. URL. 3. URL.
|
6793 |
#. translators: 1. WordPress post type. 2. URL. 3. URL.
|
6794 |
+
#: lib/wfScanEngine.php:1289
|
6795 |
+
#: lib/wfScanEngine.php:1432
|
6796 |
msgid "This %1$s contains a suspected malware URL listed on Google's list of malware sites. The URL is: %2$s - More info available at <a href=\"http://safebrowsing.clients.google.com/safebrowsing/diagnostic?site=%3$s&client=googlechrome&hl=en-US\" target=\"_blank\" rel=\"noopener noreferrer\">Google Safe Browsing diagnostic page<span class=\"screen-reader-text\"> ("
|
6797 |
msgstr ""
|
6798 |
|
6799 |
#. translators: 1. WordPress Post type. 2. URL.
|
6800 |
+
#: lib/wfScanEngine.php:1295
|
6801 |
msgid "%1$s contains a suspected phishing site URL: %2$s"
|
6802 |
msgstr ""
|
6803 |
|
6804 |
#. translators: 1. WordPress Post type. 2. URL.
|
6805 |
#. translators: 1. WordPress post type. 2. URL.
|
6806 |
+
#: lib/wfScanEngine.php:1298
|
6807 |
+
#: lib/wfScanEngine.php:1441
|
6808 |
msgid "This %1$s contains a URL that is a suspected phishing site that is currently listed on Google's list of known phishing sites. The URL is: %2$s"
|
6809 |
msgstr ""
|
6810 |
|
6811 |
#. translators: 1. WordPress Post type. 2. URL.
|
6812 |
#. translators: 1. WordPress post type. 2. URL.
|
6813 |
+
#: lib/wfScanEngine.php:1306
|
6814 |
+
#: lib/wfScanEngine.php:1449
|
6815 |
msgid "This %1$s contains a URL that is currently listed on Wordfence's domain blocklist. The URL is: %2$s"
|
6816 |
msgstr ""
|
6817 |
|
6818 |
#. translators: Scan result description.
|
6819 |
+
#: lib/wfScanEngine.php:1315
|
6820 |
msgid "Adding issue: %1$s"
|
6821 |
msgstr ""
|
6822 |
|
6823 |
+
#: lib/wfScanEngine.php:1351
|
6824 |
msgid "Scanning comments for URLs on a domain blocklist"
|
6825 |
msgstr ""
|
6826 |
|
6827 |
#. translators: Number of comments left to scan.
|
6828 |
+
#: lib/wfScanEngine.php:1375
|
6829 |
msgid "Scanning comments with %d left to scan."
|
6830 |
msgstr ""
|
6831 |
|
6832 |
#. translators: 1. WordPress post type. 2. WordPress author username.
|
6833 |
+
#: lib/wfScanEngine.php:1429
|
6834 |
msgid "%1$s with author %2$s contains a suspected malware URL."
|
6835 |
msgstr ""
|
6836 |
|
6837 |
#. translators: WordPress post type.
|
6838 |
+
#: lib/wfScanEngine.php:1438
|
6839 |
msgid "%s contains a suspected phishing site URL."
|
6840 |
msgstr ""
|
6841 |
|
6842 |
#. translators: URL.
|
6843 |
+
#: lib/wfScanEngine.php:1446
|
6844 |
msgid "%s contains a suspected malware URL."
|
6845 |
msgstr ""
|
6846 |
|
6847 |
#. translators: WordPress username.
|
6848 |
+
#: lib/wfScanEngine.php:1494
|
6849 |
msgid "Author: %s"
|
6850 |
msgstr ""
|
6851 |
|
6852 |
#. translators: Email address.
|
6853 |
+
#: lib/wfScanEngine.php:1497
|
6854 |
msgid "Email: %s"
|
6855 |
msgstr ""
|
6856 |
|
6857 |
#. translators: IP address.
|
6858 |
+
#: lib/wfScanEngine.php:1499
|
6859 |
msgid "Source IP: %s"
|
6860 |
msgstr ""
|
6861 |
|
6862 |
#. translators: Comment description.
|
6863 |
+
#: lib/wfScanEngine.php:1500
|
6864 |
msgid "Scanning comment with %s"
|
6865 |
msgstr ""
|
6866 |
|
6867 |
#. translators: Comment description.
|
6868 |
+
#: lib/wfScanEngine.php:1513
|
6869 |
+
#: lib/wfScanEngine.php:1519
|
6870 |
msgid "Marking comment as spam for containing a malware URL. Comment has %s"
|
6871 |
msgstr ""
|
6872 |
|
6873 |
#. translators: Comment description.
|
6874 |
+
#: lib/wfScanEngine.php:1516
|
6875 |
msgid "Marking comment as spam for containing a phishing URL. Comment has %s"
|
6876 |
msgstr ""
|
6877 |
|
6878 |
#. translators: Comment description.
|
6879 |
+
#: lib/wfScanEngine.php:1526
|
6880 |
msgid "Scanned comment with %s"
|
6881 |
msgstr ""
|
6882 |
|
6883 |
+
#: lib/wfScanEngine.php:1577
|
6884 |
msgid "Scanning for weak passwords"
|
6885 |
msgstr ""
|
6886 |
|
6887 |
+
#: lib/wfScanEngine.php:1588
|
6888 |
msgid "We were unable to generate the user list for your password check."
|
6889 |
msgstr ""
|
6890 |
|
6891 |
#. translators: Number of users.
|
6892 |
+
#: lib/wfScanEngine.php:1604
|
6893 |
msgid "Starting password strength check on %d user."
|
6894 |
msgid_plural "Starting password strength check on %d users."
|
6895 |
msgstr[0] ""
|
6896 |
msgstr[1] ""
|
6897 |
|
6898 |
#. translators: Number of users.
|
6899 |
+
#: lib/wfScanEngine.php:1613
|
6900 |
msgid "Total of %d users left to process in password strength check."
|
6901 |
msgid_plural "Total of %d users left to process in password strength check."
|
6902 |
msgstr[0] ""
|
6903 |
msgstr[1] ""
|
6904 |
|
6905 |
#. translators: WordPress user ID.
|
6906 |
+
#: lib/wfScanEngine.php:1648
|
6907 |
msgid "Could not get username for user with ID %d when checking password strength."
|
6908 |
msgstr ""
|
6909 |
|
6910 |
#. translators: 1. WordPress username. 2. WordPress user ID.
|
6911 |
+
#: lib/wfScanEngine.php:1654
|
6912 |
msgid "Checking password strength of user '%1$s' with ID %2$d"
|
6913 |
msgstr ""
|
6914 |
|
6915 |
#. translators: 1. WordPress username. 2. WordPress capability.
|
6916 |
+
#: lib/wfScanEngine.php:1662
|
6917 |
msgid "User \"%1$s\" with \"%2$s\" access has an easy password."
|
6918 |
msgstr ""
|
6919 |
|
6920 |
#. translators: WordPress capability.
|
6921 |
+
#: lib/wfScanEngine.php:1668
|
6922 |
msgid "A user with the a role of '%s' has a password that is easy to guess. Please change this password yourself or ask the user to change it."
|
6923 |
msgstr ""
|
6924 |
|
6925 |
#. translators: WordPress username.
|
6926 |
+
#: lib/wfScanEngine.php:1676
|
6927 |
msgid "User \"%s\" with 'subscriber' access has a very easy password."
|
6928 |
msgstr ""
|
6929 |
|
6930 |
+
#: lib/wfScanEngine.php:1677
|
6931 |
msgid "A user with 'subscriber' access has a password that is very easy to guess. Please either change it or ask the user to change their password."
|
6932 |
msgstr ""
|
6933 |
|
6934 |
#. translators: Scan result description.
|
6935 |
+
#: lib/wfScanEngine.php:1684
|
6936 |
msgid "Adding issue %s"
|
6937 |
msgstr ""
|
6938 |
|
6939 |
#. translators: WordPress username.
|
6940 |
+
#: lib/wfScanEngine.php:1701
|
6941 |
msgid "Completed checking password strength of user '%s'"
|
6942 |
msgstr ""
|
6943 |
|
6944 |
+
#: lib/wfScanEngine.php:1734
|
6945 |
msgid "Scanning to check available disk space"
|
6946 |
msgstr ""
|
6947 |
|
6948 |
+
#: lib/wfScanEngine.php:1741
|
6949 |
msgid "Unable to access available disk space information"
|
6950 |
msgstr ""
|
6951 |
|
6952 |
#. translators: 1. Number of bytes. 2. Number of bytes.
|
6953 |
+
#: lib/wfScanEngine.php:1750
|
6954 |
msgid "Total disk space: %1$s -- Free disk space: %2$s"
|
6955 |
msgstr ""
|
6956 |
|
6957 |
#. translators: Number of bytes.
|
6958 |
+
#: lib/wfScanEngine.php:1755
|
6959 |
msgid "The disk has %s MB available"
|
6960 |
msgstr ""
|
6961 |
|
6962 |
#. translators: Number of bytes.
|
6963 |
+
#: lib/wfScanEngine.php:1770
|
6964 |
msgid "You have %s disk space remaining"
|
6965 |
msgstr ""
|
6966 |
|
6967 |
#. translators: Number of bytes.
|
6968 |
+
#: lib/wfScanEngine.php:1771
|
6969 |
msgid "You only have %s of your disk space remaining. Please free up disk space or your website may stop serving requests."
|
6970 |
msgstr ""
|
6971 |
|
6972 |
+
#: lib/wfScanEngine.php:1784
|
6973 |
msgid "Checking Web Application Firewall status"
|
6974 |
msgstr ""
|
6975 |
|
6976 |
+
#: lib/wfScanEngine.php:1795
|
6977 |
msgid "Web Application Firewall is disabled"
|
6978 |
msgstr ""
|
6979 |
|
6980 |
#. translators: Support URL.
|
6981 |
+
#: lib/wfScanEngine.php:1796
|
6982 |
msgid "Wordfence's Web Application Firewall has been unexpectedly disabled. If you see a notice at the top of the Wordfence admin pages that says \"The Wordfence Web Application Firewall cannot run,\" click the link in that message to rebuild the configuration. If this does not work, you may need to fix file permissions. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">More Details<span class=\"screen-reader-text\"> ("
|
6983 |
msgstr ""
|
6984 |
|
6985 |
+
#: lib/wfScanEngine.php:1811
|
6986 |
msgid "Scanning for old themes, plugins and core files"
|
6987 |
msgstr ""
|
6988 |
|
6989 |
+
#: lib/wfScanEngine.php:1897
|
6990 |
msgid "Your WordPress version is out of date"
|
6991 |
msgstr ""
|
6992 |
|
6993 |
#. translators: Software version.
|
6994 |
+
#: lib/wfScanEngine.php:1898
|
6995 |
msgid "WordPress version %s is now available. Please upgrade immediately to get the latest security updates from WordPress."
|
6996 |
msgstr ""
|
6997 |
|
6998 |
#. translators: 1. Plugin name. 2. Software version. 3. Software version.
|
6999 |
+
#: lib/wfScanEngine.php:1925
|
7000 |
msgid "The Plugin \"%1$s\" needs an upgrade (%2$s -> %3$s)."
|
7001 |
msgstr ""
|
7002 |
|
7003 |
#. translators: Theme name.
|
7004 |
+
#: lib/wfScanEngine.php:1932
|
7005 |
+
#: lib/wfScanEngine.php:1966
|
7006 |
msgid "You need to upgrade \"%s\" to the newest version to ensure you have any security fixes the developer has released."
|
7007 |
msgstr ""
|
7008 |
|
7009 |
#. translators: 1. Theme name. 2. Software version. 3. Software version.
|
7010 |
+
#: lib/wfScanEngine.php:1959
|
7011 |
msgid "The Theme \"%1$s\" needs an upgrade (%2$s -> %3$s)."
|
7012 |
msgstr ""
|
7013 |
|
7014 |
#. translators: 1. Plugin name. 2. Software version. 3. Software version.
|
7015 |
+
#: lib/wfScanEngine.php:2010
|
7016 |
msgid "The Plugin \"%1$s\" appears to be abandoned (updated %2$s, tested to WP %3$s)."
|
7017 |
msgstr ""
|
7018 |
|
7019 |
#. translators: 1. Plugin name. 2. Software version.
|
7020 |
+
#: lib/wfScanEngine.php:2017
|
7021 |
msgid "It was last updated %1$s ago and tested up to WordPress %2$s."
|
7022 |
msgstr ""
|
7023 |
|
7024 |
#. translators: 1. Plugin name. 2. Software version.
|
7025 |
+
#: lib/wfScanEngine.php:2024
|
7026 |
msgid "The Plugin \"%1$s\" appears to be abandoned (updated %2$s)."
|
7027 |
msgstr ""
|
7028 |
|
7029 |
#. translators: Time duration.
|
7030 |
+
#: lib/wfScanEngine.php:2030
|
7031 |
msgid "It was last updated %s ago."
|
7032 |
msgstr ""
|
7033 |
|
7034 |
+
#: lib/wfScanEngine.php:2036
|
7035 |
+
#: lib/wfScanEngine.php:2075
|
7036 |
msgid "It has unpatched security issues and may have compatibility problems with the current version of WordPress."
|
7037 |
msgstr ""
|
7038 |
|
7039 |
+
#: lib/wfScanEngine.php:2038
|
7040 |
+
#: lib/wfScanEngine.php:2077
|
7041 |
msgid "Plugins can be removed from wordpress.org for various reasons. This can include benign issues like a plugin author discontinuing development or moving the plugin distribution to their own site, but some might also be due to security issues. In any case, future updates may or may not be available, so it is worth investigating the cause and deciding whether to temporarily or permanently replace or remove the plugin."
|
7042 |
msgstr ""
|
7043 |
|
7044 |
#. translators: Support URL.
|
7045 |
+
#: lib/wfScanEngine.php:2042
|
7046 |
+
#: lib/wfScanEngine.php:2081
|
7047 |
+
#: lib/wfScanEngine.php:2269
|
7048 |
+
#: lib/wfScanEngine.php:2311
|
7049 |
msgid "<a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Get more information.<span class=\"screen-reader-text\"> ("
|
7050 |
msgstr ""
|
7051 |
|
7052 |
#. translators: Plugin name.
|
7053 |
+
#: lib/wfScanEngine.php:2073
|
7054 |
msgid "The Plugin \"%s\" has been removed from wordpress.org."
|
7055 |
msgstr ""
|
7056 |
|
7057 |
+
#: lib/wfScanEngine.php:2126
|
7058 |
msgid "Scanning for admin users not created through WordPress"
|
7059 |
msgstr ""
|
7060 |
|
7061 |
#. translators: WordPress username.
|
7062 |
+
#: lib/wfScanEngine.php:2148
|
7063 |
msgid "An admin user with the username %s was created outside of WordPress."
|
7064 |
msgstr ""
|
7065 |
|
7066 |
#. translators: WordPress username.
|
7067 |
+
#: lib/wfScanEngine.php:2149
|
7068 |
msgid "An admin user with the username %s was created outside of WordPress. It's possible a plugin could have created the account, but if you do not recognize the user, we suggest you remove it."
|
7069 |
msgstr ""
|
7070 |
|
7071 |
#. translators: WordPress username.
|
7072 |
+
#: lib/wfScanEngine.php:2175
|
7073 |
msgid "An admin user with a suspicious username %s was found."
|
7074 |
msgstr ""
|
7075 |
|
7076 |
#. translators: WordPress username.
|
7077 |
+
#: lib/wfScanEngine.php:2176
|
7078 |
msgid "An admin user with a suspicious username %s was found. Administrators accounts with usernames similar to this are commonly seen created by hackers. It's possible a plugin could have created the account, but if you do not recognize the user, we suggest you remove it."
|
7079 |
msgstr ""
|
7080 |
|
7081 |
+
#: lib/wfScanEngine.php:2197
|
7082 |
msgid "Scanning for suspicious site options"
|
7083 |
msgstr ""
|
7084 |
|
7085 |
+
#: lib/wfScanEngine.php:2232
|
7086 |
msgid "Examining URLs found in the options we scanned for dangerous websites"
|
7087 |
msgstr ""
|
7088 |
|
7089 |
#. translators: URL.
|
7090 |
+
#: lib/wfScanEngine.php:2256
|
7091 |
+
#: lib/wfScanEngine.php:2262
|
7092 |
msgid "Option contains a suspected malware URL: %s"
|
7093 |
msgstr ""
|
7094 |
|
7095 |
#. translators: URL.
|
7096 |
+
#: lib/wfScanEngine.php:2257
|
7097 |
msgid "This option contains a suspected malware URL listed on Google's list of malware sites. It may indicate your site is infected with malware. The URL is: %s"
|
7098 |
msgstr ""
|
7099 |
|
7100 |
#. translators: URL.
|
7101 |
+
#: lib/wfScanEngine.php:2259
|
7102 |
msgid "Option contains a suspected phishing site URL: %s"
|
7103 |
msgstr ""
|
7104 |
|
7105 |
#. translators: URL.
|
7106 |
+
#: lib/wfScanEngine.php:2260
|
7107 |
msgid "This option contains a URL that is a suspected phishing site that is currently listed on Google's list of known phishing sites. It may indicate your site is infected with malware. The URL is: %s"
|
7108 |
msgstr ""
|
7109 |
|
7110 |
#. translators: URL.
|
7111 |
+
#: lib/wfScanEngine.php:2263
|
7112 |
msgid "This option contains a URL that is currently listed on Wordfence's domain blocklist. It may indicate your site is infected with malware. The URL is: %s"
|
7113 |
msgstr ""
|
7114 |
|
7115 |
+
#: lib/wfScanEngine.php:2303
|
7116 |
msgid "Checking for future GeoIP support"
|
7117 |
msgstr ""
|
7118 |
|
7119 |
+
#: lib/wfScanEngine.php:2308
|
7120 |
msgid "PHP Update Needed for Country Blocking"
|
7121 |
msgstr ""
|
7122 |
|
7123 |
#. translators: Software version.
|
7124 |
+
#: lib/wfScanEngine.php:2309
|
7125 |
msgid "The GeoIP database that is required for country blocking has been updated to a new format. This new format requires sites to run PHP 5.4 or newer, and this site is on PHP %s. To ensure country blocking continues functioning, please update PHP."
|
7126 |
msgstr ""
|
7127 |
|
7128 |
+
#: lib/wfScanEngine.php:2358
|
7129 |
msgid "Previous scan was stopped successfully."
|
7130 |
msgstr ""
|
7131 |
|
7132 |
+
#: lib/wfScanEngine.php:2359
|
7133 |
msgid "Scan was stopped on administrator request."
|
7134 |
msgstr ""
|
7135 |
|
7136 |
+
#: lib/wfScanEngine.php:2375
|
7137 |
msgid "Entering start scan routine"
|
7138 |
msgstr ""
|
7139 |
|
7140 |
+
#: lib/wfScanEngine.php:2378
|
7141 |
msgid "A scan is already running. Use the stop scan button if you would like to terminate the current scan."
|
7142 |
msgstr ""
|
7143 |
|
7144 |
#. translators: Support URL.
|
7145 |
+
#: lib/wfScanEngine.php:2396
|
7146 |
msgid "Test result of scan start URL fetch: %s"
|
7147 |
msgstr ""
|
7148 |
|
7149 |
#. translators: WordPress admin panel URL.
|
7150 |
+
#: lib/wfScanEngine.php:2405
|
7151 |
msgid "Starting cron with normal ajax at URL %s"
|
7152 |
msgstr ""
|
7153 |
|
7154 |
#. translators: Error message.
|
7155 |
#. translators: WordPress admin panel URL.
|
7156 |
+
#: lib/wfScanEngine.php:2427
|
7157 |
+
#: lib/wfScanEngine.php:2462
|
7158 |
msgid "There was an error starting the scan: %s."
|
7159 |
msgstr ""
|
7160 |
|
7161 |
+
#: lib/wfScanEngine.php:2429
|
7162 |
+
#: lib/wfScanEngine.php:2464
|
7163 |
msgid "There was an unknown error starting the scan."
|
7164 |
msgstr ""
|
7165 |
|
7166 |
+
#: lib/wfScanEngine.php:2436
|
7167 |
+
#: lib/wfScanEngine.php:2470
|
7168 |
msgid "Scan process ended after forking."
|
7169 |
msgstr ""
|
7170 |
|
7171 |
#. translators: WordPress admin panel URL.
|
7172 |
+
#: lib/wfScanEngine.php:2440
|
7173 |
msgid "Starting cron via proxy at URL %s"
|
7174 |
msgstr ""
|
7175 |
|
7176 |
#. translators: Time in seconds.
|
7177 |
+
#: lib/wfScanEngine.php:2516
|
7178 |
msgid "Got value from wf config maxExecutionTime: %s"
|
7179 |
msgstr ""
|
7180 |
|
7181 |
#. translators: Time in seconds.
|
7182 |
+
#: lib/wfScanEngine.php:2520
|
7183 |
msgid "getMaxExecutionTime() returning config value: %s"
|
7184 |
msgstr ""
|
7185 |
|
7186 |
#. translators: PHP ini value.
|
7187 |
+
#: lib/wfScanEngine.php:2527
|
7188 |
msgid "Got max_execution_time value from ini: %s"
|
7189 |
msgstr ""
|
7190 |
|
7191 |
#. translators: 1. PHP ini setting. 2. Time in seconds.
|
7192 |
+
#: lib/wfScanEngine.php:2534
|
7193 |
msgid "ini value of %1$d is higher than value for WORDFENCE_SCAN_MAX_INI_EXECUTION_TIME (%2$d), reducing"
|
7194 |
msgstr ""
|
7195 |
|
7196 |
#. translators: PHP ini setting.
|
7197 |
+
#: lib/wfScanEngine.php:2544
|
7198 |
msgid "getMaxExecutionTime() returning half ini value: %d"
|
7199 |
msgstr ""
|
7200 |
|
7201 |
+
#: lib/wfScanEngine.php:2550
|
7202 |
msgid "getMaxExecutionTime() returning default of: 15"
|
7203 |
msgstr ""
|
7204 |
|
7205 |
#. translators: 1. HTTP status code.
|
7206 |
+
#: lib/wfScanEngine.php:2752
|
7207 |
msgid "Got error response from Wordfence servers: %s"
|
7208 |
msgstr ""
|
7209 |
|
7210 |
+
#: lib/wfScanEngine.php:2756
|
7211 |
msgid "Invalid response from Wordfence servers."
|
7212 |
msgstr ""
|
7213 |
|
7377 |
"select the license about to expire and click the button to renew that license."
|
7378 |
msgstr ""
|
7379 |
|
7380 |
+
#: lib/wordfenceClass.php:212
|
7381 |
msgid "Your Premium Wordfence License is set to auto-renew in 10 days."
|
7382 |
msgstr ""
|
7383 |
|
7384 |
+
#: lib/wordfenceClass.php:213
|
7385 |
msgid "To update your license settings please visit http://www.wordfence.com/zz9/dashboard"
|
7386 |
msgstr ""
|
7387 |
|
7388 |
+
#: lib/wordfenceClass.php:225
|
7389 |
msgid "Your Premium Wordfence License expires in less than 2 weeks."
|
7390 |
msgstr ""
|
7391 |
|
7392 |
+
#: lib/wordfenceClass.php:228
|
7393 |
msgid "Your Premium Wordfence License expires in less than a week."
|
7394 |
msgstr ""
|
7395 |
|
7396 |
+
#: lib/wordfenceClass.php:231
|
7397 |
msgid "Your Premium Wordfence License expires in 2 days."
|
7398 |
msgstr ""
|
7399 |
|
7400 |
+
#: lib/wordfenceClass.php:234
|
7401 |
msgid "Your Premium Wordfence License expires in 1 day."
|
7402 |
msgstr ""
|
7403 |
|
7404 |
+
#: lib/wordfenceClass.php:238
|
7405 |
msgid "Your Wordfence Premium License has Expired!"
|
7406 |
msgstr ""
|
7407 |
|
7408 |
+
#: lib/wordfenceClass.php:270
|
7409 |
msgid "The Wordfence Premium License in use on this site has been removed from your account."
|
7410 |
msgstr ""
|
7411 |
|
7412 |
+
#: lib/wordfenceClass.php:270
|
7413 |
msgid "The license you were using has been removed from your account. Please reach out to billing@wordfence.com or create a Premium support case at https://support.wordfence.com/support/tickets for more information. Our staff is happy to help."
|
7414 |
msgstr ""
|
7415 |
|
7416 |
#. translators: Wordfence license key.
|
7417 |
+
#: lib/wordfenceClass.php:280
|
7418 |
msgid "Could not verify Wordfence License: %s"
|
7419 |
msgstr ""
|
7420 |
|
7421 |
#. translators: WordPress version.
|
7422 |
+
#: lib/wordfenceClass.php:362
|
7423 |
msgid "WordPress (v%s)"
|
7424 |
msgstr ""
|
7425 |
|
7426 |
#. translators: Number of plugins.
|
7427 |
+
#: lib/wordfenceClass.php:366
|
7428 |
msgid "%d plugin"
|
7429 |
msgid_plural "%d plugins"
|
7430 |
msgstr[0] ""
|
7431 |
msgstr[1] ""
|
7432 |
|
7433 |
#. translators: Number of themes.
|
7434 |
+
#: lib/wordfenceClass.php:371
|
7435 |
msgid "%d theme"
|
7436 |
msgid_plural "%d themes"
|
7437 |
msgstr[0] ""
|
7438 |
msgstr[1] ""
|
7439 |
|
7440 |
+
#: lib/wordfenceClass.php:375
|
7441 |
msgid "An update is available for "
|
7442 |
msgid_plural "Updates are available for "
|
7443 |
msgstr[0] ""
|
7444 |
msgstr[1] ""
|
7445 |
|
7446 |
+
#: lib/wordfenceClass.php:380
|
7447 |
msgid "and "
|
7448 |
msgstr ""
|
7449 |
|
7450 |
#. translators: Wordfence version.
|
7451 |
+
#: lib/wordfenceClass.php:419
|
7452 |
msgid "`runInstall` called with previous version = %s"
|
7453 |
msgstr ""
|
7454 |
|
7455 |
+
#: lib/wordfenceClass.php:471
|
7456 |
+
#: lib/wordfenceClass.php:4032
|
7457 |
msgid "Could not understand the response we received from the Wordfence servers when applying for a free license key."
|
7458 |
msgstr ""
|
7459 |
|
7460 |
+
#: lib/wordfenceClass.php:835
|
7461 |
msgid "Automatically generated from previous country blocking settings"
|
7462 |
msgstr ""
|
7463 |
|
7464 |
+
#: lib/wordfenceClass.php:1282
|
7465 |
#: views/user/disabled-application-passwords.php:15
|
7466 |
msgid "Application passwords have been disabled by Wordfence."
|
7467 |
msgstr ""
|
7468 |
|
7469 |
+
#: lib/wordfenceClass.php:1398
|
7470 |
msgid "Upgrade To Premium"
|
7471 |
msgstr ""
|
7472 |
|
7473 |
+
#: lib/wordfenceClass.php:1417
|
7474 |
msgid "wp_mail from address is incomplete, attempting to fix"
|
7475 |
msgstr ""
|
7476 |
|
7477 |
#. translators: Email address.
|
7478 |
+
#: lib/wordfenceClass.php:1427
|
7479 |
msgid "Fixing wp_mail from address: %s"
|
7480 |
msgstr ""
|
7481 |
|
7482 |
+
#: lib/wordfenceClass.php:1526
|
7483 |
msgid "You appear to have logged out or you are not an admin. Please sign-out and sign-in again."
|
7484 |
msgstr ""
|
7485 |
|
7486 |
+
#: lib/wordfenceClass.php:1531
|
7487 |
msgid "Your browser sent an invalid security token to Wordfence. Please try reloading this page or signing out and in again."
|
7488 |
msgstr ""
|
7489 |
|
7490 |
+
#: lib/wordfenceClass.php:1537
|
7491 |
msgid "Wordfence encountered an internal error executing that request."
|
7492 |
msgstr ""
|
7493 |
|
7494 |
#. translators: Error message.
|
7495 |
+
#: lib/wordfenceClass.php:1643
|
7496 |
msgid "2FA Migration Error: %s"
|
7497 |
msgstr ""
|
7498 |
|
7499 |
+
#: lib/wordfenceClass.php:1683
|
7500 |
msgid "Please choose a stronger password. Try including numbers, symbols, and a mix of upper and lowercase letters and remove common words."
|
7501 |
msgstr ""
|
7502 |
|
7503 |
+
#: lib/wordfenceClass.php:1689
|
7504 |
msgid "Passwords containing a space followed by \"wf\" without quotes are not allowed."
|
7505 |
msgstr ""
|
7506 |
|
7507 |
#. translators: Support URL.
|
7508 |
+
#: lib/wordfenceClass.php:1704
|
7509 |
msgid "Please choose a different password. The password you are using exists on lists of passwords leaked in data breaches. Attackers use such lists to break into sites and install malicious code. <a href=\"%s\">Learn More</a>"
|
7510 |
msgstr ""
|
7511 |
|
7512 |
#. translators: 1. Password reset limit (number). 2. WordPress username.
|
7513 |
+
#: lib/wordfenceClass.php:1801
|
7514 |
msgid "Exceeded the maximum number of tries to recover their password which is set at: %1$s. The last username or email they entered before getting locked out was: '%2$s'"
|
7515 |
msgstr ""
|
7516 |
|
7517 |
+
#: lib/wordfenceClass.php:1849
|
7518 |
+
#: lib/wordfenceClass.php:2032
|
7519 |
msgid "Sorry but your browser sent an invalid security token when trying to use this form."
|
7520 |
msgstr ""
|
7521 |
|
7522 |
+
#: lib/wordfenceClass.php:1854
|
7523 |
msgid "Please wait 3 minutes and try again"
|
7524 |
msgstr ""
|
7525 |
|
7526 |
+
#: lib/wordfenceClass.php:1855
|
7527 |
msgid "You have used this form too much. Please wait 3 minutes and try again."
|
7528 |
msgstr ""
|
7529 |
|
7530 |
+
#: lib/wordfenceClass.php:1894
|
7531 |
msgid "Unlock email requested"
|
7532 |
msgstr ""
|
7533 |
|
7534 |
+
#: lib/wordfenceClass.php:1896
|
7535 |
msgid "Your request was received"
|
7536 |
msgstr ""
|
7537 |
|
7538 |
#. translators: Email address.
|
7539 |
+
#: lib/wordfenceClass.php:1897
|
7540 |
msgid "We received a request to email \"%s\" instructions to unlock their access. If that is the email address of a site administrator or someone on the Wordfence alert list, they have been emailed instructions on how to regain access to this system. The instructions we sent will expire 30 minutes from now."
|
7541 |
msgstr ""
|
7542 |
|
7543 |
+
#: lib/wordfenceClass.php:1903
|
7544 |
msgid "Invalid key provided for authentication."
|
7545 |
msgstr ""
|
7546 |
|
7547 |
+
#: lib/wordfenceClass.php:1914
|
7548 |
msgid "Request received via unlock email link to unblock all IPs."
|
7549 |
msgstr ""
|
7550 |
|
7551 |
+
#: lib/wordfenceClass.php:1923
|
7552 |
msgid "Request received via unlock email link to unblock all IPs via disabling firewall rules."
|
7553 |
msgstr ""
|
7554 |
|
7555 |
+
#: lib/wordfenceClass.php:1931
|
7556 |
msgid "Invalid function specified. Please check the link we emailed you and make sure it was not cut-off by your email reader."
|
7557 |
msgstr ""
|
7558 |
|
7559 |
+
#: lib/wordfenceClass.php:1976
|
7560 |
msgid "Unsubscribe Requested"
|
7561 |
msgstr ""
|
7562 |
|
7563 |
+
#: lib/wordfenceClass.php:2038
|
7564 |
msgid "An error occurred while saving the license."
|
7565 |
msgstr ""
|
7566 |
|
7567 |
#. translators: Error message.
|
7568 |
+
#: lib/wordfenceClass.php:2040
|
7569 |
+
#: lib/wordfenceClass.php:2060
|
7570 |
msgid "An error occurred while saving the license: %s"
|
7571 |
msgstr ""
|
7572 |
|
7573 |
+
#: lib/wordfenceClass.php:2076
|
7574 |
msgid "Rescheduled missing daily cron"
|
7575 |
msgstr ""
|
7576 |
|
7577 |
+
#: lib/wordfenceClass.php:2081
|
7578 |
msgid "Rescheduled missing hourly cron"
|
7579 |
msgstr ""
|
7580 |
|
7581 |
+
#: lib/wordfenceClass.php:2393
|
7582 |
+
#: lib/wordfenceClass.php:2397
|
7583 |
msgid "Accessed a banned URL"
|
7584 |
msgstr ""
|
7585 |
|
7586 |
+
#: lib/wordfenceClass.php:2404
|
7587 |
+
#: lib/wordfenceClass.php:2408
|
7588 |
msgid "POST received with blank user-agent and referer"
|
7589 |
msgstr ""
|
7590 |
|
7591 |
+
#: lib/wordfenceClass.php:2542
|
7592 |
msgid "<strong>ERROR</strong>: You can't register using that username"
|
7593 |
msgstr ""
|
7594 |
|
7595 |
+
#: lib/wordfenceClass.php:2582
|
7596 |
msgid "Sorry, you are not allowed to list users."
|
7597 |
msgstr ""
|
7598 |
|
7599 |
+
#: lib/wordfenceClass.php:2589
|
7600 |
msgid "Invalid user ID."
|
7601 |
msgstr ""
|
7602 |
|
7603 |
+
#: lib/wordfenceClass.php:2733
|
7604 |
msgid "<strong>VERIFICATION FAILED</strong>: Two-factor authentication verification failed. Please try again."
|
7605 |
msgstr ""
|
7606 |
|
7607 |
#. translators: 1. WordPress username. 2. Password reset URL.
|
7608 |
#. translators: 1. WordPress username. 2. Reset password URL.
|
7609 |
+
#: lib/wordfenceClass.php:2740
|
7610 |
+
#: lib/wordfenceClass.php:3190
|
7611 |
msgid "<strong>ERROR</strong>: The username or password you entered is incorrect. <a href=\"%2$s\" title=\"Password Lost and Found\">Lost your password</a>?"
|
7612 |
msgstr ""
|
7613 |
|
7614 |
#. translators: 1. WordPress admin panel URL. 2. Support URL.
|
7615 |
+
#: lib/wordfenceClass.php:2750
|
7616 |
+
#: lib/wordfenceClass.php:2886
|
7617 |
msgid "<strong>WARNING: </strong>The password you are using exists on lists of passwords leaked in data breaches. Attackers use such lists to break into sites and install malicious code. Please <a href=\"%1$s\">change your password</a>. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span class=\"screen-reader-text\"> ("
|
7618 |
msgstr ""
|
7619 |
|
7620 |
+
#: lib/wordfenceClass.php:2774
|
7621 |
msgid "<strong>INVALID CODE</strong>: Please sign in again and add a space, the letters <code>wf</code>, and the code from your authenticator app to the end of your password (e.g., <code>wf123456</code>)."
|
7622 |
msgstr ""
|
7623 |
|
7624 |
+
#: lib/wordfenceClass.php:2778
|
7625 |
msgid "<strong>INVALID CODE</strong>: Please sign in again and add a space, the letters <code>wf</code>, and the code sent to your phone to the end of your password (e.g., <code>wf123456</code>)."
|
7626 |
msgstr ""
|
7627 |
|
7628 |
+
#: lib/wordfenceClass.php:2785
|
7629 |
+
#: lib/wordfenceClass.php:2836
|
7630 |
+
#: lib/wordfenceClass.php:2859
|
7631 |
msgid "<strong>AUTHENTICATION FAILURE</strong>: A temporary failure was encountered while trying to log in. Please try again."
|
7632 |
msgstr ""
|
7633 |
|
7634 |
+
#: lib/wordfenceClass.php:2795
|
7635 |
msgid "<strong>INVALID CODE</strong>: You need to enter the code generated by your authenticator app. The code should be a six digit number (e.g., 123456)."
|
7636 |
msgstr ""
|
7637 |
|
7638 |
+
#: lib/wordfenceClass.php:2799
|
7639 |
msgid "<strong>INVALID CODE</strong>: You need to enter the code generated sent to your phone. The code should be a six digit number (e.g., 123456)."
|
7640 |
msgstr ""
|
7641 |
|
7642 |
+
#: lib/wordfenceClass.php:2845
|
7643 |
msgid "<strong>CODE EXPIRED. CHECK YOUR PHONE:</strong> The code you entered has expired. Codes are only valid for 30 minutes for security reasons. We have sent you a new code. Please sign in using your username, password, and the new code we sent you."
|
7644 |
msgstr ""
|
7645 |
|
7646 |
+
#: lib/wordfenceClass.php:2868
|
7647 |
msgid "<strong>INVALID CODE</strong>: You need to enter your password and the code we sent to your phone. The code should start with 'wf' and should be four characters (e.g., wfAB12)."
|
7648 |
msgstr ""
|
7649 |
|
7650 |
+
#: lib/wordfenceClass.php:2919
|
7651 |
msgid "<strong>CODE REQUIRED</strong>: Please check your authenticator app for the current code. Enter it below to sign in."
|
7652 |
msgstr ""
|
7653 |
|
7654 |
+
#: lib/wordfenceClass.php:2924
|
7655 |
msgid "<strong>CODE REQUIRED</strong>: Please check your authenticator app for the current code. Please sign in again and add a space, the letters <code>wf</code>, and the code to the end of your password (e.g., <code>wf123456</code>)."
|
7656 |
msgstr ""
|
7657 |
|
7658 |
+
#: lib/wordfenceClass.php:2958
|
7659 |
+
#: lib/wordfenceClass.php:3015
|
7660 |
msgid "<strong>CHECK YOUR PHONE</strong>: A code has been sent to your phone and will arrive within 30 seconds. Enter it below to sign in."
|
7661 |
msgstr ""
|
7662 |
|
7663 |
+
#: lib/wordfenceClass.php:2963
|
7664 |
msgid "<strong>CHECK YOUR PHONE</strong>: A code has been sent to your phone and will arrive within 30 seconds. Please sign in again and add a space, the letters <code>wf</code>, and the code to the end of your password (e.g., <code>wf123456</code>)."
|
7665 |
msgstr ""
|
7666 |
|
7667 |
+
#: lib/wordfenceClass.php:3020
|
7668 |
msgid "<strong>CHECK YOUR PHONE</strong>: A code has been sent to your phone and will arrive within 30 seconds. Please sign in again and add a space and the code to the end of your password (e.g., <code>wfABCD</code>)."
|
7669 |
msgstr ""
|
7670 |
|
7671 |
#. translators: 1. Reset password URL. 2. Support URL.
|
7672 |
+
#: lib/wordfenceClass.php:3041
|
7673 |
+
#: lib/wordfenceClass.php:3077
|
7674 |
msgid "<strong>WARNING: </strong>Your login has been allowed because you have previously logged in from the same IP, but you will be blocked if your IP changes. The password you are using exists on lists of passwords leaked in data breaches. Attackers use such lists to break into sites and install malicious code. Please <a href=\"%1$s\">change your password</a>. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span class=\"screen-reader-text\"> ("
|
7675 |
msgstr ""
|
7676 |
|
7677 |
#. translators: 1. Reset password URL. 2. Support URL.
|
7678 |
+
#: lib/wordfenceClass.php:3058
|
7679 |
+
#: lib/wordfenceClass.php:3094
|
7680 |
msgid "<strong>INSECURE PASSWORD:</strong> Your login attempt has been blocked because the password you are using exists on lists of passwords leaked in data breaches. Attackers use such lists to break into sites and install malicious code. Please <a href=\"%1$s\">reset your password</a> to reactivate your account. <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span style=\"font-size:0;\"> (opens in new tab)</span></a>"
|
7681 |
msgstr ""
|
7682 |
|
7683 |
+
#: lib/wordfenceClass.php:3066
|
7684 |
msgid "Admin Login Blocked"
|
7685 |
msgstr ""
|
7686 |
|
7687 |
#. translators: WordPress username.
|
7688 |
+
#: lib/wordfenceClass.php:3066
|
7689 |
msgid "A user with username \"%s\" who has administrator access tried to sign in to your WordPress site. Access was denied because all administrator accounts are required to have Cellphone Sign-in enabled but this account does not."
|
7690 |
msgstr ""
|
7691 |
|
7692 |
#. translators: WordPress username.
|
7693 |
+
#: lib/wordfenceClass.php:3067
|
7694 |
msgid "<strong>Cellphone Sign-in Required</strong>: Cellphone Sign-in is required for all administrator accounts. Please contact the site administrator to enable it for your account."
|
7695 |
msgstr ""
|
7696 |
|
7697 |
+
#: lib/wordfenceClass.php:3107
|
7698 |
msgid "Blocked by Wordfence Security Network"
|
7699 |
msgstr ""
|
7700 |
|
7701 |
+
#: lib/wordfenceClass.php:3137
|
7702 |
msgid "Blocked by login security setting"
|
7703 |
msgstr ""
|
7704 |
|
7705 |
#. translators: WordPress username.
|
7706 |
+
#: lib/wordfenceClass.php:3147
|
7707 |
msgid "Used an invalid username '%s' to try to sign in"
|
7708 |
msgstr ""
|
7709 |
|
7710 |
#. translators: 1. Login attempt limit. 2. WordPress username.
|
7711 |
+
#: lib/wordfenceClass.php:3166
|
7712 |
msgid "Exceeded the maximum number of login failures which is: %1$s. The last username they tried to sign in with was: '%2$s'"
|
7713 |
msgstr ""
|
7714 |
|
7715 |
+
#: lib/wordfenceClass.php:3523
|
7716 |
msgid "An invalid type was specified to get file."
|
7717 |
msgstr ""
|
7718 |
|
7719 |
+
#: lib/wordfenceClass.php:3539
|
7720 |
msgid "We could not fetch a core WordPress file from the Wordfence API."
|
7721 |
msgstr ""
|
7722 |
|
7723 |
+
#: lib/wordfenceClass.php:3598
|
7724 |
msgid "Wordfence Test Email"
|
7725 |
msgstr ""
|
7726 |
|
7727 |
#. translators: 1. Site URL. 2. IP address.
|
7728 |
+
#: lib/wordfenceClass.php:3598
|
7729 |
msgid ""
|
7730 |
"This is a test email from %1$s.\n"
|
7731 |
"The IP address that requested this was: %2$s"
|
7732 |
msgstr ""
|
7733 |
|
7734 |
+
#: lib/wordfenceClass.php:3605
|
7735 |
msgid "Cellphone Sign-in is only available to paid members. <a href=\"https://www.wordfence.com/gnl1twoFac3/wordfence-signup/\" target=\"_blank\" rel=\"noopener noreferrer\">Click here to upgrade now.<span class=\"screen-reader-text\"> ("
|
7736 |
msgstr ""
|
7737 |
|
7738 |
+
#: lib/wordfenceClass.php:3612
|
7739 |
msgid "The username you specified does not exist."
|
7740 |
msgstr ""
|
7741 |
|
7742 |
+
#: lib/wordfenceClass.php:3621
|
7743 |
msgid "The username you specified is already enabled."
|
7744 |
msgstr ""
|
7745 |
|
7746 |
+
#: lib/wordfenceClass.php:3626
|
7747 |
msgid "Unknown authentication mode."
|
7748 |
msgstr ""
|
7749 |
|
7750 |
+
#: lib/wordfenceClass.php:3631
|
7751 |
msgid "The phone number you entered must start with a '+', then country code and then area code and number. For example, a number in the United States with country code '1' would look like this: +1-123-555-1234"
|
7752 |
msgstr ""
|
7753 |
|
7754 |
#. translators: Error message.
|
7755 |
+
#: lib/wordfenceClass.php:3638
|
7756 |
+
#: lib/wordfenceClass.php:3670
|
7757 |
+
#: lib/wordfenceClass.php:3733
|
7758 |
msgid "Could not contact Wordfence servers to generate a verification code: %s"
|
7759 |
msgstr ""
|
7760 |
|
7761 |
#. translators: Error message.
|
7762 |
+
#: lib/wordfenceClass.php:3650
|
7763 |
+
#: lib/wordfenceClass.php:3694
|
7764 |
msgid "Could not generate verification code: %s"
|
7765 |
msgstr ""
|
7766 |
|
7767 |
#. translators: Error message.
|
7768 |
+
#: lib/wordfenceClass.php:3651
|
7769 |
+
#: lib/wordfenceClass.php:3695
|
7770 |
msgid "We could not generate a verification code."
|
7771 |
msgstr ""
|
7772 |
|
7773 |
+
#: lib/wordfenceClass.php:3711
|
7774 |
msgid "Unknown two-factor authentication mode."
|
7775 |
msgstr ""
|
7776 |
|
7777 |
+
#: lib/wordfenceClass.php:3744
|
7778 |
msgid "The code you entered is invalid. Cellphone sign-in will not be enabled for this user until you enter a valid code."
|
7779 |
msgstr ""
|
7780 |
|
7781 |
+
#: lib/wordfenceClass.php:3749
|
7782 |
msgid "We could not find the user you are trying to activate. They may have been removed from the list of Cellphone Sign-in users. Please reload this page."
|
7783 |
msgstr ""
|
7784 |
|
7785 |
+
#: lib/wordfenceClass.php:3831
|
7786 |
msgid "That user has already been removed from the list."
|
7787 |
msgstr ""
|
7788 |
|
7789 |
+
#: lib/wordfenceClass.php:3851
|
7790 |
msgid "No scan is scheduled"
|
7791 |
msgstr ""
|
7792 |
|
7793 |
+
#: lib/wordfenceClass.php:3856
|
7794 |
msgid "Next scan is starting now"
|
7795 |
msgstr ""
|
7796 |
|
7797 |
#. translators: 1. Time until. 2. Localized date.
|
7798 |
+
#: lib/wordfenceClass.php:3859
|
7799 |
msgid "Next scan in %1$s (%2$s)"
|
7800 |
msgstr ""
|
7801 |
|
7802 |
#. translators: Localized date.
|
7803 |
+
#: lib/wordfenceClass.php:3876
|
7804 |
msgid "Scheduled Wordfence scan starting at %s"
|
7805 |
msgstr ""
|
7806 |
|
7807 |
+
#: lib/wordfenceClass.php:3899
|
7808 |
msgid "Sorry but this feature is only available for paid customers."
|
7809 |
msgstr ""
|
7810 |
|
7811 |
#. translators: Site URL.
|
7812 |
+
#: lib/wordfenceClass.php:3913
|
7813 |
msgid "SITE: %s"
|
7814 |
msgstr ""
|
7815 |
|
7816 |
#. translators: Plugin version.
|
7817 |
+
#: lib/wordfenceClass.php:3914
|
7818 |
msgid "PLUGIN VERSION: %s"
|
7819 |
msgstr ""
|
7820 |
|
7821 |
#. translators: WordPress version.
|
7822 |
+
#: lib/wordfenceClass.php:3915
|
7823 |
msgid "WORDPRESS VERSION: %s"
|
7824 |
msgstr ""
|
7825 |
|
7826 |
#. translators: Wordfence license key.
|
7827 |
+
#: lib/wordfenceClass.php:3916
|
7828 |
msgid "LICENSE KEY: %s"
|
7829 |
msgstr ""
|
7830 |
|
7831 |
#. translators: Email address.
|
7832 |
+
#: lib/wordfenceClass.php:3917
|
7833 |
msgid "ADMIN EMAIL: %s"
|
7834 |
msgstr ""
|
7835 |
|
7836 |
#. translators: Email address.
|
7837 |
+
#: lib/wordfenceClass.php:3918
|
7838 |
msgid "LOG:"
|
7839 |
msgstr ""
|
7840 |
|
7841 |
+
#: lib/wordfenceClass.php:3934
|
7842 |
msgid "# Scan Issues"
|
7843 |
msgstr ""
|
7844 |
|
7845 |
#. translators: Number of scan results.
|
7846 |
+
#: lib/wordfenceClass.php:3939
|
7847 |
msgid "## New Issues (%d total)"
|
7848 |
msgstr ""
|
7849 |
|
7850 |
#. translators: Number of scan results.
|
7851 |
+
#: lib/wordfenceClass.php:3966
|
7852 |
msgid "## Ignored Issues (%d total)"
|
7853 |
msgstr ""
|
7854 |
|
7855 |
+
#: lib/wordfenceClass.php:3987
|
7856 |
msgid "No Ignored Issues"
|
7857 |
msgstr ""
|
7858 |
|
7859 |
+
#: lib/wordfenceClass.php:4009
|
7860 |
msgid "Wordfence Activity Log"
|
7861 |
msgstr ""
|
7862 |
|
7863 |
#. translators: Error message.
|
7864 |
+
#: lib/wordfenceClass.php:4035
|
7865 |
msgid "Could not fetch free license key from Wordfence: %s"
|
7866 |
msgstr ""
|
7867 |
|
7868 |
+
#: lib/wordfenceClass.php:4126
|
7869 |
msgid "We could not find your .htaccess file to modify it."
|
7870 |
msgstr ""
|
7871 |
|
7872 |
#. translators: Error message.
|
7873 |
+
#: lib/wordfenceClass.php:4131
|
7874 |
msgid "We found your .htaccess file but could not open it for writing: %s"
|
7875 |
msgstr ""
|
7876 |
|
7877 |
+
#: lib/wordfenceClass.php:4214
|
7878 |
msgid "All Countries"
|
7879 |
msgstr ""
|
7880 |
|
7881 |
+
#: lib/wordfenceClass.php:4217
|
7882 |
msgid "1 Country"
|
7883 |
msgstr ""
|
7884 |
|
7885 |
#. translators: Number of countries.
|
7886 |
+
#: lib/wordfenceClass.php:4220
|
7887 |
msgid "%d Countries"
|
7888 |
msgstr ""
|
7889 |
|
7890 |
+
#: lib/wordfenceClass.php:4224
|
7891 |
msgid "Entire Site"
|
7892 |
msgstr ""
|
7893 |
|
7894 |
+
#: lib/wordfenceClass.php:4227
|
7895 |
msgid "Login Only"
|
7896 |
msgstr ""
|
7897 |
|
7898 |
+
#: lib/wordfenceClass.php:4230
|
7899 |
msgid "Site Except Login"
|
7900 |
msgstr ""
|
7901 |
|
7902 |
+
#: lib/wordfenceClass.php:4238
|
7903 |
msgid "IP Range"
|
7904 |
msgstr ""
|
7905 |
|
7906 |
#. translators: 2FA backup codes.
|
7907 |
+
#: lib/wordfenceClass.php:4239
|
7908 |
+
#: lib/wordfenceClass.php:6237
|
7909 |
msgid "User Agent"
|
7910 |
msgstr ""
|
7911 |
|
7912 |
+
#: lib/wordfenceClass.php:4240
|
7913 |
#: views/blocking/blocking-create.php:201
|
7914 |
msgid "Referrer"
|
7915 |
msgstr ""
|
7916 |
|
7917 |
+
#: lib/wordfenceClass.php:4255
|
7918 |
msgid "Permanent"
|
7919 |
msgstr ""
|
7920 |
|
7921 |
+
#: lib/wordfenceClass.php:4327
|
7922 |
msgid "An error occurred while creating the block."
|
7923 |
msgstr ""
|
7924 |
|
7925 |
+
#: lib/wordfenceClass.php:4333
|
7926 |
msgid "No block parameters were provided."
|
7927 |
msgstr ""
|
7928 |
|
7929 |
+
#: lib/wordfenceClass.php:4370
|
7930 |
+
#: lib/wordfenceClass.php:4402
|
7931 |
msgid "No blocks were provided."
|
7932 |
msgstr ""
|
7933 |
|
7934 |
+
#: lib/wordfenceClass.php:4434
|
7935 |
msgid "The license provided is already in use on another site."
|
7936 |
msgstr ""
|
7937 |
|
7938 |
+
#: lib/wordfenceClass.php:4439
|
7939 |
msgid "The Wordfence activation server returned an unexpected response. Please try again."
|
7940 |
msgstr ""
|
7941 |
|
7942 |
+
#: lib/wordfenceClass.php:4445
|
7943 |
msgid "We received an error while trying to activate the license with the Wordfence servers: "
|
7944 |
msgstr ""
|
7945 |
|
7946 |
+
#: lib/wordfenceClass.php:4458
|
7947 |
msgid "No license was provided to install."
|
7948 |
msgstr ""
|
7949 |
|
7950 |
+
#: lib/wordfenceClass.php:4509
|
7951 |
msgid "An unknown configuration section was provided."
|
7952 |
msgstr ""
|
7953 |
|
7954 |
+
#: lib/wordfenceClass.php:4515
|
7955 |
msgid "No configuration section was provided."
|
7956 |
msgstr ""
|
7957 |
|
7958 |
+
#: lib/wordfenceClass.php:4561
|
7959 |
+
#: lib/wordfenceClass.php:4566
|
7960 |
msgid "An error occurred while saving the configuration."
|
7961 |
msgstr ""
|
7962 |
|
7963 |
+
#: lib/wordfenceClass.php:4577
|
7964 |
msgid "No configuration changes were provided to save."
|
7965 |
msgstr ""
|
7966 |
|
7967 |
+
#: lib/wordfenceClass.php:4608
|
7968 |
+
#: lib/wordfenceClass.php:5241
|
7969 |
+
#: lib/wordfenceClass.php:5272
|
7970 |
+
#: lib/wordfenceClass.php:7356
|
7971 |
+
#: lib/wordfenceClass.php:7391
|
7972 |
+
#: lib/wordfenceClass.php:7423
|
7973 |
msgid "We could not find that issue in our database."
|
7974 |
msgstr ""
|
7975 |
|
7976 |
+
#: lib/wordfenceClass.php:4618
|
7977 |
msgid "An error occurred while trying to hide the file."
|
7978 |
msgstr ""
|
7979 |
|
7980 |
+
#: lib/wordfenceClass.php:4631
|
7981 |
msgid "An invalid file was requested for hiding."
|
7982 |
msgstr ""
|
7983 |
|
7984 |
+
#: lib/wordfenceClass.php:4658
|
7985 |
+
#: lib/wordfenceClass.php:5252
|
7986 |
msgid "You don't have permission to repair .htaccess. You need to either fix the file manually using FTP or change the file permissions and ownership so that your web server has write access to repair the file."
|
7987 |
msgstr ""
|
7988 |
|
7989 |
+
#: lib/wordfenceClass.php:4682
|
7990 |
msgid "Manual permanent block by admin"
|
7991 |
msgstr ""
|
7992 |
|
7993 |
+
#: lib/wordfenceClass.php:4718
|
7994 |
msgid "Please enter a valid IP address to block."
|
7995 |
msgstr ""
|
7996 |
|
7997 |
+
#: lib/wordfenceClass.php:4721
|
7998 |
msgid "You can't block your own IP address."
|
7999 |
msgstr ""
|
8000 |
|
8001 |
#. translators: IP address.
|
8002 |
+
#: lib/wordfenceClass.php:4725
|
8003 |
msgid "The IP address %s is allowlisted and can't be blocked. You can remove this IP from the allowlist on the Wordfence options page."
|
8004 |
msgstr ""
|
8005 |
|
8006 |
#. translators: IP address.
|
8007 |
+
#: lib/wordfenceClass.php:4727
|
8008 |
msgid "The IP address %s is in a range of IP addresses that Wordfence does not block. The IP range may be internal or belong to a service safe to allow access for."
|
8009 |
msgstr ""
|
8010 |
|
8011 |
+
#: lib/wordfenceClass.php:4733
|
8012 |
msgid "The IP address you're trying to block belongs to Google. Your options are currently set to not block these crawlers. Change this in Wordfence options if you want to manually block Google."
|
8013 |
msgstr ""
|
8014 |
|
8015 |
+
#: lib/wordfenceClass.php:4776
|
8016 |
msgid "An invalid operation was called."
|
8017 |
msgstr ""
|
8018 |
|
8019 |
+
#: lib/wordfenceClass.php:4786
|
8020 |
msgid "An invalid status was specified when trying to update that issue."
|
8021 |
msgstr ""
|
8022 |
|
8023 |
+
#: lib/wordfenceClass.php:4798
|
8024 |
msgid "Scan stop request received."
|
8025 |
msgstr ""
|
8026 |
|
8027 |
+
#: lib/wordfenceClass.php:4799
|
8028 |
msgid "A request was received to stop the previous scan."
|
8029 |
msgstr ""
|
8030 |
|
8031 |
+
#: lib/wordfenceClass.php:4848
|
8032 |
msgid "Idle"
|
8033 |
msgstr ""
|
8034 |
|
8035 |
#. translators: Localized date.
|
8036 |
+
#: lib/wordfenceClass.php:4857
|
8037 |
msgid "Scan completed on %s"
|
8038 |
msgstr ""
|
8039 |
|
8040 |
+
#: lib/wordfenceClass.php:4864
|
8041 |
msgid "Last scan failed"
|
8042 |
msgstr ""
|
8043 |
|
8044 |
#. translators: Time until.
|
8045 |
+
#: lib/wordfenceClass.php:4927
|
8046 |
msgid "more than %s"
|
8047 |
msgstr ""
|
8048 |
|
8049 |
#. translators: Localized date.
|
8050 |
+
#: lib/wordfenceClass.php:4931
|
8051 |
msgid "The current scan looks like it has failed. Its last status update was <span id=\"wf-scan-failed-time-ago\">%s</span> ago. You may continue to wait in case it resumes or stop and restart the scan. Some sites may need adjustments to run scans reliably."
|
8052 |
msgstr ""
|
8053 |
|
8054 |
#. translators: Localized date.
|
8055 |
+
#: lib/wordfenceClass.php:4931
|
8056 |
+
#: lib/wordfenceClass.php:4939
|
8057 |
+
#: lib/wordfenceClass.php:4958
|
8058 |
+
#: lib/wordfenceClass.php:4970
|
8059 |
+
#: lib/wordfenceClass.php:4978
|
8060 |
msgid "Click here for steps you can try."
|
8061 |
msgstr ""
|
8062 |
|
8063 |
#. translators: Localized date.
|
8064 |
+
#: lib/wordfenceClass.php:4932
|
8065 |
msgid "Cancel Scan"
|
8066 |
msgstr ""
|
8067 |
|
8068 |
+
#: lib/wordfenceClass.php:4939
|
8069 |
msgid "The previous scan has failed. Some sites may need adjustments to run scans reliably."
|
8070 |
msgstr ""
|
8071 |
|
8072 |
#. translators: Time limit (number).
|
8073 |
+
#: lib/wordfenceClass.php:4945
|
8074 |
msgid "The previous scan has terminated because the time limit of %s was reached. This limit can be customized on the options page."
|
8075 |
msgstr ""
|
8076 |
|
8077 |
+
#: lib/wordfenceClass.php:4951
|
8078 |
msgid "The previous scan has terminated because we detected an update occurring during the scan."
|
8079 |
msgstr ""
|
8080 |
|
8081 |
+
#: lib/wordfenceClass.php:4958
|
8082 |
msgid "The scan has failed to start. This is often because the site either cannot make outbound requests or is blocked from connecting to itself."
|
8083 |
msgstr ""
|
8084 |
|
8085 |
+
#: lib/wordfenceClass.php:4964
|
8086 |
msgid "Scans are not functional because SSL is unavailable."
|
8087 |
msgstr ""
|
8088 |
|
8089 |
+
#: lib/wordfenceClass.php:4970
|
8090 |
msgid "The scan has failed because we were unable to contact the Wordfence servers. Some sites may need adjustments to run scans reliably."
|
8091 |
msgstr ""
|
8092 |
|
8093 |
+
#: lib/wordfenceClass.php:4978
|
8094 |
msgid "The scan has failed because we received an unexpected response from the Wordfence servers. This may be a temporary error, though some sites may need adjustments to run scans reliably."
|
8095 |
msgstr ""
|
8096 |
|
8097 |
+
#: lib/wordfenceClass.php:5005
|
8098 |
msgid "Invalid email address given."
|
8099 |
msgstr ""
|
8100 |
|
8101 |
+
#: lib/wordfenceClass.php:5042
|
8102 |
+
#: lib/wordfenceClass.php:5163
|
8103 |
msgid "Deleting an infected wp-config.php file must be done outside of Wordfence. The wp-config.php file contains your database credentials, which you will need to restore normal site operations. Your site will NOT function once the wp-config.php file has been deleted."
|
8104 |
msgstr ""
|
8105 |
|
8106 |
#. translators: 1. File path. 2. Error message.
|
8107 |
+
#: lib/wordfenceClass.php:5051
|
8108 |
msgid "Could not delete file %1$s. Error was: %2$s"
|
8109 |
msgstr ""
|
8110 |
|
8111 |
#. translators: File path.
|
8112 |
+
#: lib/wordfenceClass.php:5072
|
8113 |
msgid "We could not retrieve the original file of %s to do a repair."
|
8114 |
msgstr ""
|
8115 |
|
8116 |
#. translators: File path.
|
8117 |
+
#: lib/wordfenceClass.php:5077
|
8118 |
msgid "An invalid file %s was specified for repair."
|
8119 |
msgstr ""
|
8120 |
|
8121 |
#. translators: File path.
|
8122 |
+
#: lib/wordfenceClass.php:5085
|
8123 |
msgid "You don't have permission to repair %s. You need to either fix the file manually using FTP or change the file permissions and ownership so that your web server has write access to repair the file."
|
8124 |
msgstr ""
|
8125 |
|
8126 |
#. translators: 1. File path. 2. Error message.
|
8127 |
+
#: lib/wordfenceClass.php:5088
|
8128 |
msgid "We could not write to %1$s. The error was: %2$s"
|
8129 |
msgstr ""
|
8130 |
|
8131 |
#. translators: 1. File path. 2. Number of bytes.
|
8132 |
+
#: lib/wordfenceClass.php:5099
|
8133 |
msgid "We could not write to %1$s. (%2$d bytes written) You may not have permission to modify files on your WordPress server."
|
8134 |
msgstr ""
|
8135 |
|
8136 |
+
#: lib/wordfenceClass.php:5111
|
8137 |
msgid "Deleted some files with errors"
|
8138 |
msgstr ""
|
8139 |
|
8140 |
+
#: lib/wordfenceClass.php:5111
|
8141 |
msgid "Repaired some files with errors"
|
8142 |
msgstr ""
|
8143 |
|
8144 |
#. translators: 1. Number of files. 2. Error message.
|
8145 |
+
#: lib/wordfenceClass.php:5114
|
8146 |
msgid "Deleted %1$d files but we encountered the following errors with other files: %2$s"
|
8147 |
msgstr ""
|
8148 |
|
8149 |
#. translators: 1. Number of files. 2. Error message.
|
8150 |
+
#: lib/wordfenceClass.php:5116
|
8151 |
msgid "Repaired %1$d files but we encountered the following errors with other files: %2$s"
|
8152 |
msgstr ""
|
8153 |
|
8154 |
#. translators: Number of files.
|
8155 |
+
#: lib/wordfenceClass.php:5120
|
8156 |
msgid "Deleted %d files successfully"
|
8157 |
msgstr ""
|
8158 |
|
8159 |
#. translators: Number of files.
|
8160 |
+
#: lib/wordfenceClass.php:5120
|
8161 |
msgid "Repaired %d files successfully"
|
8162 |
msgstr ""
|
8163 |
|
8164 |
#. translators: Number of files.
|
8165 |
+
#: lib/wordfenceClass.php:5121
|
8166 |
msgid "Deleted %d files successfully. No errors were encountered."
|
8167 |
msgstr ""
|
8168 |
|
8169 |
#. translators: Number of files.
|
8170 |
+
#: lib/wordfenceClass.php:5121
|
8171 |
msgid "Repaired %d files successfully. No errors were encountered."
|
8172 |
msgstr ""
|
8173 |
|
8174 |
+
#: lib/wordfenceClass.php:5124
|
8175 |
msgid "Could not delete files"
|
8176 |
msgstr ""
|
8177 |
|
8178 |
+
#: lib/wordfenceClass.php:5124
|
8179 |
msgid "Could not repair files"
|
8180 |
msgstr ""
|
8181 |
|
8182 |
#. translators: Error message.
|
8183 |
+
#: lib/wordfenceClass.php:5127
|
8184 |
msgid "We could not delete any of the files you selected. We encountered the following errors: %s"
|
8185 |
msgstr ""
|
8186 |
|
8187 |
#. translators: Error message.
|
8188 |
+
#: lib/wordfenceClass.php:5129
|
8189 |
msgid "We could not repair any of the files you selected. We encountered the following errors: %s"
|
8190 |
msgstr ""
|
8191 |
|
8192 |
+
#: lib/wordfenceClass.php:5132
|
8193 |
msgid "Nothing done"
|
8194 |
msgstr ""
|
8195 |
|
8196 |
+
#: lib/wordfenceClass.php:5133
|
8197 |
msgid "We didn't delete anything and no errors were found."
|
8198 |
msgstr ""
|
8199 |
|
8200 |
+
#: lib/wordfenceClass.php:5133
|
8201 |
msgid "We didn't repair anything and no errors were found."
|
8202 |
msgstr ""
|
8203 |
|
8204 |
+
#: lib/wordfenceClass.php:5141
|
8205 |
msgid "Invalid bulk operation selected"
|
8206 |
msgstr ""
|
8207 |
|
8208 |
+
#: lib/wordfenceClass.php:5151
|
8209 |
msgid "Could not delete file because we could not find that issue."
|
8210 |
msgstr ""
|
8211 |
|
8212 |
+
#: lib/wordfenceClass.php:5154
|
8213 |
msgid "Could not delete file because that issue does not appear to be a file related issue."
|
8214 |
msgstr ""
|
8215 |
|
8216 |
+
#: lib/wordfenceClass.php:5159
|
8217 |
msgid "An invalid file was requested for deletion."
|
8218 |
msgstr ""
|
8219 |
|
8220 |
#. translators: 1. File path. 2. Error message.
|
8221 |
+
#: lib/wordfenceClass.php:5202
|
8222 |
msgid "Could not delete file %1$s. The error was: %2$s"
|
8223 |
msgstr ""
|
8224 |
|
8225 |
+
#: lib/wordfenceClass.php:5215
|
8226 |
msgid "Could not remove the option because we could not find that issue."
|
8227 |
msgstr ""
|
8228 |
|
8229 |
+
#: lib/wordfenceClass.php:5218
|
8230 |
msgid "Could not remove the option because that issue does not appear to be a database related issue."
|
8231 |
msgstr ""
|
8232 |
|
8233 |
#. translators: 1. WordPress option. 2. Error message.
|
8234 |
+
#: lib/wordfenceClass.php:5231
|
8235 |
msgid "Could not remove the option %1$s. The error was: %2$s"
|
8236 |
msgstr ""
|
8237 |
|
8238 |
+
#: lib/wordfenceClass.php:5258
|
8239 |
msgid "Modifying the .htaccess file did not resolve the issue, so the original .htaccess file was restored. You can fix this manually by setting <code>display_errors</code> to <code>Off</code> in your php.ini if your site is on a VPS or dedicated server that you control."
|
8240 |
msgstr ""
|
8241 |
|
8242 |
+
#: lib/wordfenceClass.php:5300
|
8243 |
msgid "We could not get the original file to do a repair."
|
8244 |
msgstr ""
|
8245 |
|
8246 |
+
#: lib/wordfenceClass.php:5304
|
8247 |
msgid "An invalid file was specified for repair."
|
8248 |
msgstr ""
|
8249 |
|
8250 |
+
#: lib/wordfenceClass.php:5324
|
8251 |
msgid "We could not write to that file. You may not have permission to modify files on your WordPress server."
|
8252 |
msgstr ""
|
8253 |
|
8254 |
+
#: lib/wordfenceClass.php:5328
|
8255 |
msgid "Ajax request received to start scan."
|
8256 |
msgstr ""
|
8257 |
|
8258 |
#. translators: Number of URLs.
|
8259 |
+
#: lib/wordfenceClass.php:5383
|
8260 |
msgid "Page contains %d malware URL: "
|
8261 |
msgid_plural "Page contains %d malware URLs: "
|
8262 |
msgstr[0] ""
|
8263 |
msgstr[1] ""
|
8264 |
|
8265 |
+
#: lib/wordfenceClass.php:5386
|
8266 |
msgid "Run a Scan"
|
8267 |
msgstr ""
|
8268 |
|
8269 |
+
#: lib/wordfenceClass.php:5434
|
8270 |
msgid "Unknown dashboard data set."
|
8271 |
msgstr ""
|
8272 |
|
8273 |
+
#: lib/wordfenceClass.php:5465
|
8274 |
msgid "Bad security token. It may have been more than 12 hours since you reloaded the page you came from. Try reloading the page you came from. If that doesn't work, please sign out and sign-in again."
|
8275 |
msgstr ""
|
8276 |
|
8277 |
+
#: lib/wordfenceClass.php:5652
|
8278 |
msgid "An invalid IP address was specified."
|
8279 |
msgstr ""
|
8280 |
|
8281 |
+
#: lib/wordfenceClass.php:5694
|
8282 |
+
msgid "This link has expired. Refresh the scan results page and try again."
|
8283 |
+
msgstr ""
|
8284 |
+
|
8285 |
+
#: lib/wordfenceClass.php:5718
|
8286 |
+
#: lib/wordfenceClass.php:5761
|
8287 |
+
#: lib/wordfenceClass.php:5810
|
8288 |
msgid "File access blocked. (WORDFENCE_DISABLE_FILE_VIEWER is true)"
|
8289 |
msgstr ""
|
8290 |
|
8291 |
+
#: lib/wordfenceClass.php:5725
|
8292 |
+
#: lib/wordfenceClass.php:5817
|
8293 |
msgid "Invalid file requested. (Relative paths not allowed)"
|
8294 |
msgstr ""
|
8295 |
|
8296 |
+
#: lib/wordfenceClass.php:5729
|
8297 |
+
#: lib/wordfenceClass.php:5765
|
8298 |
+
#: lib/wordfenceClass.php:5821
|
8299 |
msgid "File contains illegal characters."
|
8300 |
msgstr ""
|
8301 |
|
8302 |
#. translators: Error message.
|
8303 |
+
#: lib/wordfenceClass.php:5739
|
8304 |
msgid "We could not open the requested file for reading. The error was: %s"
|
8305 |
msgstr ""
|
8306 |
|
8307 |
+
#: lib/wordfenceClass.php:5747
|
8308 |
msgid "Greater than 2 Gigs"
|
8309 |
msgstr ""
|
8310 |
|
8311 |
+
#: lib/wordfenceClass.php:5752
|
8312 |
msgid "Unknown file size."
|
8313 |
msgstr ""
|
8314 |
|
8315 |
+
#: lib/wordfenceClass.php:5774
|
8316 |
msgid "We could not get the contents of the original file to do a comparison."
|
8317 |
msgstr ""
|
8318 |
|
8319 |
+
#: lib/wordfenceClass.php:5783
|
8320 |
+
msgid "Empty file path provided"
|
8321 |
+
msgstr ""
|
8322 |
+
|
8323 |
+
#: lib/wordfenceClass.php:5788
|
8324 |
+
msgid "Unable to read file contents"
|
8325 |
+
msgstr ""
|
8326 |
+
|
8327 |
+
#: lib/wordfenceClass.php:5825
|
8328 |
msgid "File does not exist."
|
8329 |
msgstr ""
|
8330 |
|
8331 |
+
#: lib/wordfenceClass.php:6079
|
8332 |
#: views/dashboard/options-group-import.php:167
|
8333 |
msgid "Reload"
|
8334 |
msgstr ""
|
8335 |
|
8336 |
+
#: lib/wordfenceClass.php:6096
|
8337 |
msgid "${totalIPs} addresses in this network"
|
8338 |
msgstr ""
|
8339 |
|
8340 |
#. translators: 1. Description of firewall action. 2. Description of input parameters.
|
8341 |
+
#: lib/wordfenceClass.php:6097
|
8342 |
msgid "%s in POST body: %s"
|
8343 |
msgstr ""
|
8344 |
|
8345 |
#. translators: 1. Description of firewall action. 2. Description of input parameters.
|
8346 |
+
#: lib/wordfenceClass.php:6098
|
8347 |
msgid "%s in cookie: %s"
|
8348 |
msgstr ""
|
8349 |
|
8350 |
#. translators: 1. Description of firewall action. 2. Description of input parameters.
|
8351 |
+
#: lib/wordfenceClass.php:6099
|
8352 |
msgid "%s in file: %s"
|
8353 |
msgstr ""
|
8354 |
|
8355 |
#. translators: 1. Description of firewall action. 2. Description of input parameters.
|
8356 |
+
#: lib/wordfenceClass.php:6100
|
8357 |
msgid "%s in query string: %s"
|
8358 |
msgstr ""
|
8359 |
|
8360 |
#. translators: Domain name.
|
8361 |
+
#: lib/wordfenceClass.php:6101
|
8362 |
msgid "%s is not valid hostname"
|
8363 |
msgstr ""
|
8364 |
|
8365 |
#. translators: Domain name.
|
8366 |
+
#: lib/wordfenceClass.php:6102
|
8367 |
msgid ".htaccess Updated"
|
8368 |
msgstr ""
|
8369 |
|
8370 |
+
#: lib/wordfenceClass.php:6103
|
8371 |
msgid ".htaccess change"
|
8372 |
msgstr ""
|
8373 |
|
8374 |
+
#: lib/wordfenceClass.php:6104
|
8375 |
msgid "404 Not Found"
|
8376 |
msgstr ""
|
8377 |
|
8378 |
+
#: lib/wordfenceClass.php:6105
|
8379 |
msgid "Activity Log Sent"
|
8380 |
msgstr ""
|
8381 |
|
8382 |
+
#: lib/wordfenceClass.php:6106
|
8383 |
msgid "Add action to allowlist"
|
8384 |
msgstr ""
|
8385 |
|
8386 |
+
#: lib/wordfenceClass.php:6107
|
8387 |
msgid "Add code to .htaccess"
|
8388 |
msgstr ""
|
8389 |
|
8390 |
+
#: lib/wordfenceClass.php:6108
|
8391 |
msgid "All Hits"
|
8392 |
msgstr ""
|
8393 |
|
8394 |
#. translators: WordPress username.
|
8395 |
+
#: lib/wordfenceClass.php:6109
|
8396 |
msgid "All capabilties of admin user %s were successfully revoked."
|
8397 |
msgstr ""
|
8398 |
|
8399 |
+
#: lib/wordfenceClass.php:6111
|
8400 |
msgid "An error occurred when adding the request to the allowlist."
|
8401 |
msgstr ""
|
8402 |
|
8403 |
+
#: lib/wordfenceClass.php:6112
|
8404 |
msgid "Are you sure you want to allowlist this action?"
|
8405 |
msgstr ""
|
8406 |
|
8407 |
+
#: lib/wordfenceClass.php:6113
|
8408 |
msgid "Authentication Code"
|
8409 |
msgstr ""
|
8410 |
|
8411 |
+
#: lib/wordfenceClass.php:6114
|
8412 |
msgid "Background Request Blocked"
|
8413 |
msgstr ""
|
8414 |
|
8415 |
+
#: lib/wordfenceClass.php:6115
|
8416 |
msgid "Block This Network"
|
8417 |
msgstr ""
|
8418 |
|
8419 |
+
#: lib/wordfenceClass.php:6117
|
8420 |
msgid "Blocked By Firewall"
|
8421 |
msgstr ""
|
8422 |
|
8423 |
+
#: lib/wordfenceClass.php:6118
|
8424 |
msgid "Blocked WAF"
|
8425 |
msgstr ""
|
8426 |
|
8427 |
+
#: lib/wordfenceClass.php:6119
|
8428 |
msgid "Blocked by Wordfence"
|
8429 |
msgstr ""
|
8430 |
|
8431 |
+
#: lib/wordfenceClass.php:6120
|
8432 |
msgid "Blocked by Wordfence plugin settings"
|
8433 |
msgstr ""
|
8434 |
|
8435 |
+
#: lib/wordfenceClass.php:6121
|
8436 |
msgid "Blocked by the Wordfence Application Firewall and plugin settings"
|
8437 |
msgstr ""
|
8438 |
|
8439 |
+
#: lib/wordfenceClass.php:6122
|
8440 |
msgid "Blocked by the Wordfence Security Network"
|
8441 |
msgstr ""
|
8442 |
|
8443 |
+
#: lib/wordfenceClass.php:6123
|
8444 |
msgid "Blocked by the Wordfence Web Application Firewall"
|
8445 |
msgstr ""
|
8446 |
|
8447 |
+
#: lib/wordfenceClass.php:6126
|
8448 |
msgid "Cellphone Sign-In Recovery Codes"
|
8449 |
msgstr ""
|
8450 |
|
8451 |
+
#: lib/wordfenceClass.php:6127
|
8452 |
msgid "Cellphone Sign-in activated for user."
|
8453 |
msgstr ""
|
8454 |
|
8455 |
+
#: lib/wordfenceClass.php:6128
|
8456 |
msgid "Click here to download a backup copy of this file now"
|
8457 |
msgstr ""
|
8458 |
|
8459 |
+
#: lib/wordfenceClass.php:6129
|
8460 |
msgid "Click here to download a backup copy of your .htaccess file now"
|
8461 |
msgstr ""
|
8462 |
|
8463 |
+
#: lib/wordfenceClass.php:6130
|
8464 |
msgid "Click to fix .htaccess"
|
8465 |
msgstr ""
|
8466 |
|
8467 |
+
#: lib/wordfenceClass.php:6132
|
8468 |
msgid "Crawlers"
|
8469 |
msgstr ""
|
8470 |
|
8471 |
+
#: lib/wordfenceClass.php:6133
|
8472 |
msgid "Diagnostic report has been sent successfully."
|
8473 |
msgstr ""
|
8474 |
|
8475 |
+
#: lib/wordfenceClass.php:6134
|
8476 |
msgid "Directory Listing Disabled"
|
8477 |
msgstr ""
|
8478 |
|
8479 |
+
#: lib/wordfenceClass.php:6135
|
8480 |
msgid "Directory listing has been disabled on your server."
|
8481 |
msgstr ""
|
8482 |
|
8483 |
+
#: lib/wordfenceClass.php:6138
|
8484 |
msgid "Don't ask again"
|
8485 |
msgstr ""
|
8486 |
|
8487 |
+
#: lib/wordfenceClass.php:6140
|
8488 |
msgid "Download Backup File"
|
8489 |
msgstr ""
|
8490 |
|
8491 |
+
#: lib/wordfenceClass.php:6141
|
8492 |
msgid "Each line of 16 letters and numbers is a single recovery code, with optional spaces for readability. When typing your password, enter \"wf\" followed by the entire code like \"mypassword wf1234 5678 90AB CDEF\". If your site shows a separate prompt for entering a code after entering only your username and password, enter only the code like \"1234 5678 90AB CDEF\". Your recovery codes are:"
|
8493 |
msgstr ""
|
8494 |
|
8495 |
+
#: lib/wordfenceClass.php:6142
|
8496 |
msgid "Email Diagnostic Report"
|
8497 |
msgstr ""
|
8498 |
|
8499 |
+
#: lib/wordfenceClass.php:6143
|
8500 |
msgid "Email Wordfence Activity Log"
|
8501 |
msgstr ""
|
8502 |
|
8503 |
+
#: lib/wordfenceClass.php:6145
|
8504 |
msgid "Enter the email address you would like to send the Wordfence activity log to. Note that the activity log may contain thousands of lines of data. This log is usually only sent to a member of the Wordfence support team. It also contains your PHP configuration from the phpinfo() function for diagnostic data."
|
8505 |
msgstr ""
|
8506 |
|
8507 |
+
#: lib/wordfenceClass.php:6146
|
8508 |
msgid "Error"
|
8509 |
msgstr ""
|
8510 |
|
8511 |
+
#: lib/wordfenceClass.php:6147
|
8512 |
msgid "Error Enabling All Options Page"
|
8513 |
msgstr ""
|
8514 |
|
8515 |
+
#: lib/wordfenceClass.php:6148
|
8516 |
msgid "Error Restoring Defaults"
|
8517 |
msgstr ""
|
8518 |
|
8519 |
+
#: lib/wordfenceClass.php:6149
|
8520 |
msgid "Error Saving Option"
|
8521 |
msgstr ""
|
8522 |
|
8523 |
+
#: lib/wordfenceClass.php:6150
|
8524 |
msgid "Error Saving Options"
|
8525 |
msgstr ""
|
8526 |
|
8527 |
+
#: lib/wordfenceClass.php:6151
|
8528 |
msgid "Failed Login"
|
8529 |
msgstr ""
|
8530 |
|
8531 |
+
#: lib/wordfenceClass.php:6152
|
8532 |
msgid "Failed Login: Invalid Username"
|
8533 |
msgstr ""
|
8534 |
|
8535 |
+
#: lib/wordfenceClass.php:6153
|
8536 |
msgid "Failed Login: Valid Username"
|
8537 |
msgstr ""
|
8538 |
|
8539 |
+
#: lib/wordfenceClass.php:6154
|
8540 |
msgid "File hidden successfully"
|
8541 |
msgstr ""
|
8542 |
|
8543 |
+
#: lib/wordfenceClass.php:6155
|
8544 |
msgid "File restored OK"
|
8545 |
msgstr ""
|
8546 |
|
8547 |
+
#: lib/wordfenceClass.php:6156
|
8548 |
msgid "Filter Traffic"
|
8549 |
msgstr ""
|
8550 |
|
8551 |
+
#: lib/wordfenceClass.php:6157
|
8552 |
msgid "Firewall Response"
|
8553 |
msgstr ""
|
8554 |
|
8555 |
+
#: lib/wordfenceClass.php:6158
|
8556 |
#: views/scanner/issue-wpscan_fullPathDiscl.php:8
|
8557 |
msgid "Full Path Disclosure"
|
8558 |
msgstr ""
|
8559 |
|
8560 |
+
#: lib/wordfenceClass.php:6159
|
8561 |
msgid "Google Bot"
|
8562 |
msgstr ""
|
8563 |
|
8564 |
+
#: lib/wordfenceClass.php:6160
|
8565 |
msgid "Google Crawlers"
|
8566 |
msgstr ""
|
8567 |
|
8568 |
+
#: lib/wordfenceClass.php:6161
|
8569 |
msgid "HTTP Response Code"
|
8570 |
msgstr ""
|
8571 |
|
8572 |
+
#: lib/wordfenceClass.php:6163
|
8573 |
msgid "Humans"
|
8574 |
msgstr ""
|
8575 |
|
8576 |
+
#: lib/wordfenceClass.php:6165
|
8577 |
msgid "Key:"
|
8578 |
msgstr ""
|
8579 |
|
8580 |
#. translators: Localized date.
|
8581 |
+
#: lib/wordfenceClass.php:6166
|
8582 |
msgid "Last Updated: %s"
|
8583 |
msgstr ""
|
8584 |
|
8585 |
#. translators: Localized date.
|
8586 |
+
#: lib/wordfenceClass.php:6167
|
8587 |
msgid "Learn more about repairing modified files."
|
8588 |
msgstr ""
|
8589 |
|
8590 |
+
#: lib/wordfenceClass.php:6169
|
8591 |
msgid "Locked Out"
|
8592 |
msgstr ""
|
8593 |
|
8594 |
+
#: lib/wordfenceClass.php:6170
|
8595 |
msgid "Locked out from logging in"
|
8596 |
msgstr ""
|
8597 |
|
8598 |
+
#: lib/wordfenceClass.php:6171
|
8599 |
msgid "Logged In"
|
8600 |
msgstr ""
|
8601 |
|
8602 |
+
#: lib/wordfenceClass.php:6172
|
8603 |
msgid "Logins"
|
8604 |
msgstr ""
|
8605 |
|
8606 |
+
#: lib/wordfenceClass.php:6173
|
8607 |
msgid "Logins and Logouts"
|
8608 |
msgstr ""
|
8609 |
|
8610 |
#. translators: Localized date.
|
8611 |
+
#: lib/wordfenceClass.php:6176
|
8612 |
msgid "Next Update Check: %s"
|
8613 |
msgstr ""
|
8614 |
|
8615 |
#. translators: Localized date.
|
8616 |
+
#: lib/wordfenceClass.php:6177
|
8617 |
msgid "No activity to report yet. Please complete your first scan."
|
8618 |
msgstr ""
|
8619 |
|
8620 |
+
#: lib/wordfenceClass.php:6178
|
8621 |
msgid "No issues have been ignored."
|
8622 |
msgstr ""
|
8623 |
|
8624 |
+
#: lib/wordfenceClass.php:6179
|
8625 |
msgid "No new issues have been found."
|
8626 |
msgstr ""
|
8627 |
|
8628 |
+
#: lib/wordfenceClass.php:6180
|
8629 |
msgid "No rules were updated. Please verify you have permissions to write to the /wp-content/wflogs directory."
|
8630 |
msgstr ""
|
8631 |
|
8632 |
+
#: lib/wordfenceClass.php:6181
|
8633 |
msgid "No rules were updated. Please verify your website can reach the Wordfence servers."
|
8634 |
msgstr ""
|
8635 |
|
8636 |
+
#: lib/wordfenceClass.php:6182
|
8637 |
msgid "No rules were updated. Your website has reached the maximum number of rule update requests. Please try again later."
|
8638 |
msgstr ""
|
8639 |
|
8640 |
+
#: lib/wordfenceClass.php:6183
|
8641 |
msgid "Note: Status will update when changes are saved"
|
8642 |
msgstr ""
|
8643 |
|
8644 |
+
#: lib/wordfenceClass.php:6184
|
8645 |
msgid "OK"
|
8646 |
msgstr ""
|
8647 |
|
8648 |
+
#: lib/wordfenceClass.php:6185
|
8649 |
msgid "Pages Not Found"
|
8650 |
msgstr ""
|
8651 |
|
8652 |
+
#: lib/wordfenceClass.php:6186
|
8653 |
msgid "Paid Members Only"
|
8654 |
msgstr ""
|
8655 |
|
8656 |
+
#: lib/wordfenceClass.php:6188
|
8657 |
msgid "Please enter a valid email address."
|
8658 |
msgstr ""
|
8659 |
|
8660 |
+
#: lib/wordfenceClass.php:6189
|
8661 |
msgid "Please include your support ticket number or forum username."
|
8662 |
msgstr ""
|
8663 |
|
8664 |
+
#: lib/wordfenceClass.php:6190
|
8665 |
msgid "Please make a backup of this file before proceeding. If you need to restore this backup file, you can copy it to the following path from your site's root:"
|
8666 |
msgstr ""
|
8667 |
|
8668 |
+
#: lib/wordfenceClass.php:6191
|
8669 |
msgid "Please specify a reason"
|
8670 |
msgstr ""
|
8671 |
|
8672 |
+
#: lib/wordfenceClass.php:6192
|
8673 |
msgid "Please specify a valid IP address range in the form of \"1.2.3.4 - 1.2.3.5\" without quotes. Make sure the dash between the IP addresses in a normal dash (a minus sign on your keyboard) and not another character that looks like a dash."
|
8674 |
msgstr ""
|
8675 |
|
8676 |
+
#: lib/wordfenceClass.php:6193
|
8677 |
msgid "Please specify either an IP address range, Hostname or a web browser pattern to match."
|
8678 |
msgstr ""
|
8679 |
|
8680 |
+
#: lib/wordfenceClass.php:6194
|
8681 |
msgid "Recent Activity"
|
8682 |
msgstr ""
|
8683 |
|
8684 |
+
#: lib/wordfenceClass.php:6195
|
8685 |
msgid "Recovery Codes"
|
8686 |
msgstr ""
|
8687 |
|
8688 |
+
#: lib/wordfenceClass.php:6196
|
8689 |
msgid "Redirected"
|
8690 |
msgstr ""
|
8691 |
|
8692 |
+
#: lib/wordfenceClass.php:6197
|
8693 |
msgid "Redirected by Country Blocking bypass URL"
|
8694 |
msgstr ""
|
8695 |
|
8696 |
+
#: lib/wordfenceClass.php:6198
|
8697 |
msgid "Referer"
|
8698 |
msgstr ""
|
8699 |
|
8700 |
+
#: lib/wordfenceClass.php:6199
|
8701 |
msgid "Registered Users"
|
8702 |
msgstr ""
|
8703 |
|
8704 |
+
#: lib/wordfenceClass.php:6201
|
8705 |
msgid "Rule Update Failed"
|
8706 |
msgstr ""
|
8707 |
|
8708 |
+
#: lib/wordfenceClass.php:6202
|
8709 |
msgid "Rules Updated"
|
8710 |
msgstr ""
|
8711 |
|
8712 |
+
#: lib/wordfenceClass.php:6204
|
8713 |
msgid "Scan Complete."
|
8714 |
msgstr ""
|
8715 |
|
8716 |
+
#: lib/wordfenceClass.php:6205
|
8717 |
msgid "Scan the code below with your authenticator app to add this account. Some authenticator apps also allow you to type in the text version instead."
|
8718 |
msgstr ""
|
8719 |
|
8720 |
+
#: lib/wordfenceClass.php:6206
|
8721 |
msgid "Security Event"
|
8722 |
msgstr ""
|
8723 |
|
8724 |
+
#: lib/wordfenceClass.php:6207
|
8725 |
msgid "Send"
|
8726 |
msgstr ""
|
8727 |
|
8728 |
+
#: lib/wordfenceClass.php:6208
|
8729 |
msgid "Sorry, but no data for that IP or domain was found."
|
8730 |
msgstr ""
|
8731 |
|
8732 |
+
#: lib/wordfenceClass.php:6209
|
8733 |
msgid "Specify a valid IP range"
|
8734 |
msgstr ""
|
8735 |
|
8736 |
+
#: lib/wordfenceClass.php:6210
|
8737 |
msgid "Specify a valid hostname"
|
8738 |
msgstr ""
|
8739 |
|
8740 |
+
#: lib/wordfenceClass.php:6211
|
8741 |
msgid "Specify an IP range, Hostname or Browser pattern"
|
8742 |
msgstr ""
|
8743 |
|
8744 |
+
#: lib/wordfenceClass.php:6212
|
8745 |
msgid "Success deleting file"
|
8746 |
msgstr ""
|
8747 |
|
8748 |
+
#: lib/wordfenceClass.php:6213
|
8749 |
msgid "Success removing option"
|
8750 |
msgstr ""
|
8751 |
|
8752 |
+
#: lib/wordfenceClass.php:6214
|
8753 |
msgid "Success restoring file"
|
8754 |
msgstr ""
|
8755 |
|
8756 |
+
#: lib/wordfenceClass.php:6215
|
8757 |
msgid "Success updating option"
|
8758 |
msgstr ""
|
8759 |
|
8760 |
+
#: lib/wordfenceClass.php:6216
|
8761 |
msgid "Successfully deleted admin"
|
8762 |
msgstr ""
|
8763 |
|
8764 |
+
#: lib/wordfenceClass.php:6217
|
8765 |
msgid "Successfully revoked admin"
|
8766 |
msgstr ""
|
8767 |
|
8768 |
+
#: lib/wordfenceClass.php:6218
|
8769 |
msgid "Test Email Sent"
|
8770 |
msgstr ""
|
8771 |
|
8772 |
+
#: lib/wordfenceClass.php:6219
|
8773 |
msgid "The 'How does Wordfence get IPs' option was successfully updated to the recommended value."
|
8774 |
msgstr ""
|
8775 |
|
8776 |
+
#: lib/wordfenceClass.php:6220
|
8777 |
msgid "The Full Path disclosure issue has been fixed"
|
8778 |
msgstr ""
|
8779 |
|
8780 |
#. translators: WordPress username.
|
8781 |
+
#: lib/wordfenceClass.php:6221
|
8782 |
msgid "The admin user %s was successfully deleted."
|
8783 |
msgstr ""
|
8784 |
|
8785 |
#. translators: File path.
|
8786 |
+
#: lib/wordfenceClass.php:6222
|
8787 |
msgid "The file %s was successfully deleted."
|
8788 |
msgstr ""
|
8789 |
|
8790 |
#. translators: File path.
|
8791 |
+
#: lib/wordfenceClass.php:6223
|
8792 |
msgid "The file %s was successfully hidden from public view."
|
8793 |
msgstr ""
|
8794 |
|
8795 |
#. translators: File path.
|
8796 |
+
#: lib/wordfenceClass.php:6224
|
8797 |
msgid "The file %s was successfully restored."
|
8798 |
msgstr ""
|
8799 |
|
8800 |
#. translators: WordPress option.
|
8801 |
+
#: lib/wordfenceClass.php:6225
|
8802 |
msgid "The option %s was successfully removed."
|
8803 |
msgstr ""
|
8804 |
|
8805 |
#. translators: WordPress option.
|
8806 |
+
#: lib/wordfenceClass.php:6226
|
8807 |
msgid "The request has been allowlisted. Please try it again."
|
8808 |
msgstr ""
|
8809 |
|
8810 |
+
#: lib/wordfenceClass.php:6227
|
8811 |
msgid "There was an error while sending the email."
|
8812 |
msgstr ""
|
8813 |
|
8814 |
+
#: lib/wordfenceClass.php:6228
|
8815 |
msgid "This will be shown only once. Keep these codes somewhere safe."
|
8816 |
msgstr ""
|
8817 |
|
8818 |
+
#: lib/wordfenceClass.php:6229
|
8819 |
msgid "Throttled"
|
8820 |
msgstr ""
|
8821 |
|
8822 |
+
#: lib/wordfenceClass.php:6230
|
8823 |
msgid "Two Factor Status"
|
8824 |
msgstr ""
|
8825 |
|
8826 |
#. translators: HTTP client type.
|
8827 |
+
#: lib/wordfenceClass.php:6232
|
8828 |
msgid "Type: %s"
|
8829 |
msgstr ""
|
8830 |
|
8831 |
#. translators: HTTP client type.
|
8832 |
+
#: lib/wordfenceClass.php:6233
|
8833 |
#: views/scanner/issue-checkGSB.php:8
|
8834 |
#: views/scanner/issue-commentBadURL.php:8
|
8835 |
#: views/scanner/issue-configReadable.php:12
|
8849 |
msgid "URL"
|
8850 |
msgstr ""
|
8851 |
|
8852 |
+
#: lib/wordfenceClass.php:6234
|
8853 |
msgid "Unable to automatically hide file"
|
8854 |
msgstr ""
|
8855 |
|
8856 |
#. translators: 2FA backup codes.
|
8857 |
+
#: lib/wordfenceClass.php:6235
|
8858 |
msgid "Use one of these %s codes to log in if you are unable to access your phone. Codes are 16 characters long, plus optional spaces. Each one may be used only once."
|
8859 |
msgstr ""
|
8860 |
|
8861 |
#. translators: 2FA backup codes.
|
8862 |
+
#: lib/wordfenceClass.php:6236
|
8863 |
msgid "Use one of these %s codes to log in if you lose access to your authenticator device. Codes are 16 characters long, plus optional spaces. Each one may be used only once."
|
8864 |
msgstr ""
|
8865 |
|
8866 |
+
#: lib/wordfenceClass.php:6238
|
8867 |
msgid "User ID"
|
8868 |
msgstr ""
|
8869 |
|
8870 |
+
#: lib/wordfenceClass.php:6240
|
8871 |
msgid "WHOIS LOOKUP"
|
8872 |
msgstr ""
|
8873 |
|
8874 |
+
#: lib/wordfenceClass.php:6241
|
8875 |
msgid "We are about to change your <em>.htaccess</em> file. Please make a backup of this file before proceeding."
|
8876 |
msgstr ""
|
8877 |
|
8878 |
#. translators: Error message.
|
8879 |
+
#: lib/wordfenceClass.php:6242
|
8880 |
msgid "We can't modify your .htaccess file for you because: %s"
|
8881 |
msgstr ""
|
8882 |
|
8883 |
#. translators: Error message.
|
8884 |
+
#: lib/wordfenceClass.php:6243
|
8885 |
msgid "We encountered a problem"
|
8886 |
msgstr ""
|
8887 |
|
8888 |
#. translators: URL.
|
8889 |
+
#: lib/wordfenceClass.php:6244
|
8890 |
msgid "Wordfence Firewall blocked a background request to WordPress for the URL %s. If this occurred as a result of an intentional action, you may consider allowlisting the request to allow it in the future."
|
8891 |
msgstr ""
|
8892 |
|
8893 |
#. translators: URL.
|
8894 |
+
#: lib/wordfenceClass.php:6245
|
8895 |
msgid "Wordfence is working..."
|
8896 |
msgstr ""
|
8897 |
|
8898 |
+
#: lib/wordfenceClass.php:6246
|
8899 |
msgid "You are using Nginx as your web server. You'll need to disable autoindexing in your nginx.conf. See the <a target='_blank' rel='noopener noreferrer' href='https://nginx.org/en/docs/http/ngx_http_autoindex_module.html'>Nginx docs for more info</a> on how to do this."
|
8900 |
msgstr ""
|
8901 |
|
8902 |
+
#: lib/wordfenceClass.php:6247
|
8903 |
msgid "You are using an Nginx web server and using a FastCGI processor like PHP5-FPM. You will need to manually delete or hide those files."
|
8904 |
msgstr ""
|
8905 |
|
8906 |
+
#: lib/wordfenceClass.php:6248
|
8907 |
msgid "You are using an Nginx web server and using a FastCGI processor like PHP5-FPM. You will need to manually modify your php.ini to disable <em>display_error</em>"
|
8908 |
msgstr ""
|
8909 |
|
8910 |
+
#: lib/wordfenceClass.php:6249
|
8911 |
msgid "You forgot to include a reason you're blocking this IP range. We ask you to include this for your own record keeping."
|
8912 |
msgstr ""
|
8913 |
|
8914 |
+
#: lib/wordfenceClass.php:6250
|
8915 |
msgid "You have unsaved changes to your options. If you leave this page, those changes will be lost."
|
8916 |
msgstr ""
|
8917 |
|
8918 |
+
#: lib/wordfenceClass.php:6251
|
8919 |
msgid "Your .htaccess has been updated successfully. Please verify your site is functioning normally."
|
8920 |
msgstr ""
|
8921 |
|
8922 |
#. translators: Email address.
|
8923 |
+
#: lib/wordfenceClass.php:6252
|
8924 |
msgid "Your Wordfence activity log was sent to %s"
|
8925 |
msgstr ""
|
8926 |
|
8927 |
#. translators: Email address.
|
8928 |
+
#: lib/wordfenceClass.php:6253
|
8929 |
msgid "Your rules have been updated successfully."
|
8930 |
msgstr ""
|
8931 |
|
8932 |
+
#: lib/wordfenceClass.php:6254
|
8933 |
msgid "Your rules have been updated successfully. You are currently using the free version of Wordfence. Upgrade to Wordfence premium to have your rules updated automatically as new threats emerge. <a href=\"https://www.wordfence.com/wafUpdateRules1/wordfence-signup/\">Click here to purchase a premium license</a>. <em>Note: Your rules will still update every 30 days as a free user.</em>"
|
8934 |
msgstr ""
|
8935 |
|
8936 |
#. translators: wp_mail() return value.
|
8937 |
+
#: lib/wordfenceClass.php:6255
|
8938 |
msgid "Your test email was sent to the requested email address. The result we received from the WordPress wp_mail() function was: %s<br /><br />A 'True' result means WordPress thinks the mail was sent without errors. A 'False' result means that WordPress encountered an error sending your mail. Note that it's possible to get a 'True' response with an error elsewhere in your mail system that may cause emails to not be delivered."
|
8939 |
msgstr ""
|
8940 |
|
8941 |
#. translators: wp_mail() return value.
|
8942 |
+
#: lib/wordfenceClass.php:6256
|
8943 |
msgid "blocked by firewall"
|
8944 |
msgstr ""
|
8945 |
|
8946 |
#. translators: Reason for firewall action.
|
8947 |
+
#: lib/wordfenceClass.php:6257
|
8948 |
msgid "blocked by firewall for %s"
|
8949 |
msgstr ""
|
8950 |
|
8951 |
#. translators: Reason for firewall action.
|
8952 |
+
#: lib/wordfenceClass.php:6258
|
8953 |
msgid "blocked by real-time IP blocklist"
|
8954 |
msgstr ""
|
8955 |
|
8956 |
+
#: lib/wordfenceClass.php:6259
|
8957 |
msgid "blocked by the Wordfence Security Network"
|
8958 |
msgstr ""
|
8959 |
|
8960 |
#. translators: Reason for firewall action.
|
8961 |
+
#: lib/wordfenceClass.php:6260
|
8962 |
msgid "blocked for %s"
|
8963 |
msgstr ""
|
8964 |
|
8965 |
#. translators: Reason for firewall action.
|
8966 |
+
#: lib/wordfenceClass.php:6261
|
8967 |
msgid "locked out from logging in"
|
8968 |
msgstr ""
|
8969 |
|
8970 |
+
#: lib/wordfenceClass.php:6274
|
8971 |
msgid "Wordfence generated an error on activation. The output we received during activation was:"
|
8972 |
msgstr ""
|
8973 |
|
8974 |
+
#: lib/wordfenceClass.php:6281
|
8975 |
msgid "Wordfence could not register with the Wordfence scanning servers when it activated."
|
8976 |
msgstr ""
|
8977 |
|
8978 |
+
#: lib/wordfenceClass.php:6282
|
8979 |
msgid "You can try to fix this by deactivating Wordfence and then activating it again, so Wordfence will retry registering for you. If you keep seeing this error, it usually means your WordPress server can't connect to our scanning servers, or your wfConfig database table cannot be created to save the key. You can try asking your host to allow your server to connect to noc1.wordfence.com or check the wfConfig database table and database privileges."
|
8980 |
msgstr ""
|
8981 |
|
8982 |
+
#: lib/wordfenceClass.php:6296
|
8983 |
msgid "The Wordfence Web Application Firewall cannot run."
|
8984 |
msgstr ""
|
8985 |
|
8986 |
#. translators: 1. WordPress admin panel URL. 2. Support URL.
|
8987 |
+
#: lib/wordfenceClass.php:6299
|
8988 |
msgid "The configuration files are corrupt or inaccessible by the web server, which is preventing the WAF from functioning. Please verify the web server has permission to access the configuration files. You may also try to rebuild the configuration file by <a href=\"%1$s\">clicking here</a>. It will automatically resume normal operation when it is fixed. <a class=\"wfhelp\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"%2$s\"><span class=\"screen-reader-text\"> ("
|
8989 |
msgstr ""
|
8990 |
|
8991 |
+
#: lib/wordfenceClass.php:6305
|
8992 |
msgid "The WAF storage engine is currently set to mysqli, but Wordfence is unable to use the database. The WAF will fall back to using local file system storage instead."
|
8993 |
msgstr ""
|
8994 |
|
8995 |
+
#: lib/wordfenceClass.php:6318
|
8996 |
+
#: lib/wordfenceClass.php:6337
|
8997 |
msgid "The Wordfence Web Application Firewall needs a configuration update."
|
8998 |
msgstr ""
|
8999 |
|
9000 |
#. translators: 1. WordPress admin panel URL. 2. Support URL.
|
9001 |
+
#: lib/wordfenceClass.php:6321
|
9002 |
msgid "It is currently configured to use an older version of PHP and may become deactivated if PHP is updated. You may perform the configuration update automatically by <a href=\"%1$s\">clicking here</a>. <a class=\"wfhelp\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"%2$s\"><span class=\"screen-reader-text\"> ("
|
9003 |
msgstr ""
|
9004 |
|
9005 |
#. translators: 1. WordPress admin panel URL. 2. Support URL.
|
9006 |
+
#: lib/wordfenceClass.php:6340
|
9007 |
msgid "It is not currently in extended protection mode but was configured to use an older version of PHP and may have become deactivated when PHP was updated. You may perform the configuration update automatically by <a href=\"%1$s\">clicking here</a> or use the \"Optimize the Wordfence Firewall\" button on the Firewall Options page. <a class=\"wfhelp\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"%2$s\"><span class=\"screen-reader-text\"> ("
|
9008 |
msgstr ""
|
9009 |
|
9010 |
+
#: lib/wordfenceClass.php:6346
|
9011 |
msgid "The Wordfence Web Application Firewall is in read-only mode."
|
9012 |
msgstr ""
|
9013 |
|
9014 |
+
#: lib/wordfenceClass.php:6355
|
9015 |
msgid "This site is currently using PHP's built in REMOTE_ADDR."
|
9016 |
msgstr ""
|
9017 |
|
9018 |
+
#: lib/wordfenceClass.php:6358
|
9019 |
msgid "This site is currently using the X-Forwarded-For HTTP header, which should only be used when the site is behind a front-end proxy that outputs this header."
|
9020 |
msgstr ""
|
9021 |
|
9022 |
+
#: lib/wordfenceClass.php:6361
|
9023 |
msgid "This site is currently using the X-Real-IP HTTP header, which should only be used when the site is behind a front-end proxy that outputs this header."
|
9024 |
msgstr ""
|
9025 |
|
9026 |
+
#: lib/wordfenceClass.php:6364
|
9027 |
msgid "This site is currently using the Cloudflare \"CF-Connecting-IP\" HTTP header, which should only be used when the site is behind Cloudflare."
|
9028 |
msgstr ""
|
9029 |
|
9030 |
+
#: lib/wordfenceClass.php:6381
|
9031 |
msgid "Your 'How does Wordfence get IPs' setting is misconfigured."
|
9032 |
msgstr ""
|
9033 |
|
9034 |
+
#: lib/wordfenceClass.php:6383
|
9035 |
msgid "Click here to use the recommended setting"
|
9036 |
msgstr ""
|
9037 |
|
9038 |
+
#: lib/wordfenceClass.php:6385
|
9039 |
#: views/onboarding/fresh-install.php:38
|
9040 |
msgid "or"
|
9041 |
msgstr ""
|
9042 |
|
9043 |
+
#: lib/wordfenceClass.php:6387
|
9044 |
msgid "visit the options page"
|
9045 |
msgstr ""
|
9046 |
|
9047 |
+
#: lib/wordfenceClass.php:6389
|
9048 |
msgid "to manually update it."
|
9049 |
msgstr ""
|
9050 |
|
9051 |
+
#: lib/wordfenceClass.php:6397
|
9052 |
msgid "Do you want Wordfence to stay up-to-date automatically?"
|
9053 |
msgstr ""
|
9054 |
|
9055 |
+
#: lib/wordfenceClass.php:6399
|
9056 |
msgid "Yes, enable auto-update."
|
9057 |
msgstr ""
|
9058 |
|
9059 |
+
#: lib/wordfenceClass.php:6401
|
9060 |
msgid "No thanks."
|
9061 |
msgstr ""
|
9062 |
|
9063 |
+
#: lib/wordfenceClass.php:6425
|
9064 |
msgid "Wordfence country blocking is currently set to block the United States. We recommend allowing access from the United States for Google and other benign crawlers, unless you choose to only block the login page."
|
9065 |
msgstr ""
|
9066 |
|
9067 |
#. translators: Localized date.
|
9068 |
+
#: lib/wordfenceClass.php:6534
|
9069 |
msgid "The last rules update for the Wordfence Web Application Firewall was unsuccessful. The last successful update check was %s, so this site may be missing new rules added since then."
|
9070 |
msgstr ""
|
9071 |
|
9072 |
#. translators: 1. Localized date. 2. WordPress admin panel URL.
|
9073 |
+
#: lib/wordfenceClass.php:6542
|
9074 |
msgid "You may wait for the next automatic attempt at %1$s or try to <a href=\"%2$s\">Manually Update</a> by clicking the \"Manually Refresh Rules\" button below the Rules list."
|
9075 |
msgstr ""
|
9076 |
|
9077 |
#. translators: WordPress admin panel URL.
|
9078 |
+
#: lib/wordfenceClass.php:6548
|
9079 |
msgid "You may wait for the next automatic attempt or try to <a href=\"%s\">Manually Update</a> by clicking the \"Manually Refresh Rules\" button below the Rules list."
|
9080 |
msgstr ""
|
9081 |
|
9082 |
#. translators: WordPress admin panel URL.
|
9083 |
+
#: lib/wordfenceClass.php:6553
|
9084 |
msgid "You may wait for the next automatic attempt at %s or log into the parent site to manually update by clicking the \"Manually Refresh Rules\" button below the Rules list."
|
9085 |
msgstr ""
|
9086 |
|
9087 |
+
#: lib/wordfenceClass.php:6556
|
9088 |
msgid "You may wait for the next automatic attempt or log into the parent site to manually update by clicking the \"Manually Refresh Rules\" button below the Rules list."
|
9089 |
msgstr ""
|
9090 |
|
9091 |
+
#: lib/wordfenceClass.php:6664
|
9092 |
#: models/page/wfPage.php:101
|
9093 |
msgid "Dashboard"
|
9094 |
msgstr ""
|
9095 |
|
9096 |
+
#: lib/wordfenceClass.php:6708
|
9097 |
msgid "Upgrade to Care"
|
9098 |
msgstr ""
|
9099 |
|
9100 |
+
#: lib/wordfenceClass.php:6712
|
9101 |
msgid "Upgrade to Response"
|
9102 |
msgstr ""
|
9103 |
|
9104 |
#. translators: Number of notifications.
|
9105 |
+
#: lib/wordfenceClass.php:6761
|
9106 |
msgid "You have %d new Wordfence notification."
|
9107 |
msgid_plural "You have %d new Wordfence notifications."
|
9108 |
msgstr[0] ""
|
9109 |
msgstr[1] ""
|
9110 |
|
9111 |
+
#: lib/wordfenceClass.php:6785
|
9112 |
msgid "JavaScript Errors"
|
9113 |
msgstr ""
|
9114 |
|
9115 |
+
#: lib/wordfenceClass.php:6791
|
9116 |
msgid "Malware URLs"
|
9117 |
msgstr ""
|
9118 |
|
9119 |
#. translators: WordPress admin panel URL.
|
9120 |
+
#: lib/wordfenceClass.php:6909
|
9121 |
+
#: lib/wordfenceClass.php:6972
|
9122 |
msgid "<a href=\"%s\">Click here</a> to rebuild the configuration file."
|
9123 |
msgstr ""
|
9124 |
|
9125 |
#. translators: File path.
|
9126 |
+
#: lib/wordfenceClass.php:6920
|
9127 |
+
#: lib/wordfenceClass.php:6983
|
9128 |
msgid "We were unable to write to %s which the WAF uses for storage. Please update permissions on the parent directory so the web server can write to it."
|
9129 |
msgstr ""
|
9130 |
|
9131 |
+
#: lib/wordfenceClass.php:6930
|
9132 |
+
#: lib/wordfenceClass.php:6993
|
9133 |
msgid "An error occured when fetching the WAF configuration from the database."
|
9134 |
msgstr ""
|
9135 |
|
9136 |
#. translators: Plugin name.
|
9137 |
+
#: lib/wordfenceClass.php:7015
|
9138 |
msgid "The Wordfence Live Traffic feature has been disabled because you have %s active which is not compatible with Wordfence Live Traffic."
|
9139 |
msgstr ""
|
9140 |
|
9141 |
#. translators: 1. Plugin name.
|
9142 |
+
#: lib/wordfenceClass.php:7017
|
9143 |
msgid "If you want to reenable Wordfence Live Traffic, you need to deactivate %1$s and then go to the Wordfence options page and reenable Live Traffic there. Wordfence does work with %1$s, however Live Traffic will be disabled and the Wordfence firewall will also count less hits per visitor because of the %1$s caching function. All other functions should work correctly."
|
9144 |
msgstr ""
|
9145 |
|
9146 |
#. translators: File path.
|
9147 |
+
#: lib/wordfenceClass.php:7078
|
9148 |
msgid "The file <code>%s</code> was restored successfully."
|
9149 |
msgstr ""
|
9150 |
|
9151 |
+
#: lib/wordfenceClass.php:7083
|
9152 |
msgid "There was an error restoring the file."
|
9153 |
msgstr ""
|
9154 |
|
9155 |
+
#: lib/wordfenceClass.php:7093
|
9156 |
+
#: lib/wordfenceClass.php:7116
|
9157 |
msgid "Return to scan results"
|
9158 |
msgstr ""
|
9159 |
|
9160 |
#. translators: File path.
|
9161 |
+
#: lib/wordfenceClass.php:7102
|
9162 |
msgid "The file <code>%s</code> was deleted successfully."
|
9163 |
msgstr ""
|
9164 |
|
9165 |
+
#: lib/wordfenceClass.php:7106
|
9166 |
msgid "There was an error deleting the file."
|
9167 |
msgstr ""
|
9168 |
|
9169 |
#. translators: IP address.
|
9170 |
+
#: lib/wordfenceClass.php:7174
|
9171 |
msgid ""
|
9172 |
"User IP: %s\n"
|
9173 |
""
|
9174 |
msgstr ""
|
9175 |
|
9176 |
#. translators: Domain name.
|
9177 |
+
#: lib/wordfenceClass.php:7177
|
9178 |
msgid ""
|
9179 |
"User hostname: %s\n"
|
9180 |
""
|
9181 |
msgstr ""
|
9182 |
|
9183 |
+
#: lib/wordfenceClass.php:7181
|
9184 |
msgid "User location: "
|
9185 |
msgstr ""
|
9186 |
|
9187 |
#. translators: WordPress admin panel URL.
|
9188 |
+
#: lib/wordfenceClass.php:7236
|
9189 |
msgid "No longer an administrator for this site? Click here to stop receiving security alerts: %s"
|
9190 |
msgstr ""
|
9191 |
|
9192 |
+
#: lib/wordfenceClass.php:7277
|
9193 |
msgid "The IP you provided must be in dotted quad notation or use ranges with square brackets. e.g. 10.11.12.13 or 10.11.12.[1-50]"
|
9194 |
msgstr ""
|
9195 |
|
9196 |
+
#: lib/wordfenceClass.php:7296
|
9197 |
msgid "Invalid email address provided"
|
9198 |
msgstr ""
|
9199 |
|
9200 |
+
#: lib/wordfenceClass.php:7301
|
9201 |
msgid "Test email sent successfully"
|
9202 |
msgstr ""
|
9203 |
|
9204 |
+
#: lib/wordfenceClass.php:7302
|
9205 |
msgid "Test email failed to send"
|
9206 |
msgstr ""
|
9207 |
|
9208 |
#. translators: Localized date range.
|
9209 |
+
#: lib/wordfenceClass.php:7320
|
9210 |
msgid "Wordfence activity in the past %s"
|
9211 |
msgstr ""
|
9212 |
|
9213 |
+
#: lib/wordfenceClass.php:7360
|
9214 |
+
#: lib/wordfenceClass.php:7364
|
9215 |
+
#: lib/wordfenceClass.php:7395
|
9216 |
msgid "We could not find that user in the database."
|
9217 |
msgstr ""
|
9218 |
|
9219 |
+
#: lib/wordfenceClass.php:7368
|
9220 |
msgid "This user's email is the network admin email. It will need to be changed before deleting this user."
|
9221 |
msgstr ""
|
9222 |
|
9223 |
+
#: lib/wordfenceClass.php:7432
|
9224 |
msgid "Wordfence could not find your .htaccess file."
|
9225 |
msgstr ""
|
9226 |
|
9227 |
+
#: lib/wordfenceClass.php:7448
|
9228 |
msgid "Updating the .htaccess did not fix the issue. You may need to add <code>Options -Indexes</code> to your httpd.conf if using Apache, or find documentation on how to disable directory listing for your web server."
|
9229 |
msgstr ""
|
9230 |
|
9231 |
+
#: lib/wordfenceClass.php:7454
|
9232 |
msgid "There was an error writing to your .htaccess file."
|
9233 |
msgstr ""
|
9234 |
|
9235 |
+
#: lib/wordfenceClass.php:7533
|
9236 |
msgid "Required parameters not sent."
|
9237 |
msgstr ""
|
9238 |
|
9239 |
+
#: lib/wordfenceClass.php:7543
|
9240 |
msgid "The WAF is currently in read-only mode and will not save any configuration changes."
|
9241 |
msgstr ""
|
9242 |
|
9243 |
+
#: lib/wordfenceClass.php:7581
|
9244 |
#: views/waf/option-whitelist.php:60
|
9245 |
msgid "Allowlisted via Firewall Options page"
|
9246 |
msgstr ""
|
9247 |
|
9248 |
+
#: lib/wordfenceClass.php:7868
|
9249 |
msgid "Allowlisted via Live Traffic"
|
9250 |
msgstr ""
|
9251 |
|
9252 |
+
#: lib/wordfenceClass.php:8032
|
9253 |
+
#: lib/wordfenceClass.php:8129
|
9254 |
msgid "A valid server configuration was not provided."
|
9255 |
msgstr ""
|
9256 |
|
9257 |
+
#: lib/wordfenceClass.php:8043
|
9258 |
+
#: lib/wordfenceClass.php:8150
|
9259 |
msgid "Filesystem Credentials Required"
|
9260 |
msgstr ""
|
9261 |
|
9262 |
#. translators: Support URL.
|
9263 |
+
#: lib/wordfenceClass.php:8045
|
9264 |
+
#: lib/wordfenceClass.php:8069
|
9265 |
+
#: lib/wordfenceClass.php:8113
|
9266 |
+
#: lib/wordfenceClass.php:9005
|
9267 |
msgid "If you cannot complete the setup process, <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"%s\">click here for help<span class=\"screen-reader-text\"> ("
|
9268 |
msgstr ""
|
9269 |
|
9270 |
#. translators: Support URL.
|
9271 |
+
#: lib/wordfenceClass.php:8046
|
9272 |
msgid "Once you have entered credentials, click Continue to complete the setup."
|
9273 |
msgstr ""
|
9274 |
|
9275 |
+
#: lib/wordfenceClass.php:8067
|
9276 |
+
#: lib/wordfenceClass.php:8175
|
9277 |
msgid "Filesystem Permission Error"
|
9278 |
msgstr ""
|
9279 |
|
9280 |
+
#: lib/wordfenceClass.php:8093
|
9281 |
msgid "Manual Installation Instructions"
|
9282 |
msgstr ""
|
9283 |
|
9284 |
+
#: lib/wordfenceClass.php:8100
|
9285 |
msgid "Installation Successful"
|
9286 |
msgstr ""
|
9287 |
|
9288 |
+
#: lib/wordfenceClass.php:8111
|
9289 |
msgid "Installation Failed"
|
9290 |
msgstr ""
|
9291 |
|
9292 |
#. translators: Support URL.
|
9293 |
+
#: lib/wordfenceClass.php:8152
|
9294 |
+
#: lib/wordfenceClass.php:8177
|
9295 |
+
#: lib/wordfenceClass.php:8208
|
9296 |
+
#: lib/wordfenceClass.php:8237
|
9297 |
+
#: lib/wordfenceClass.php:8283
|
9298 |
msgid "If you cannot complete the uninstall process, <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"%s\">click here for help<span class=\"screen-reader-text\"> ("
|
9299 |
msgstr ""
|
9300 |
|
9301 |
#. translators: Support URL.
|
9302 |
+
#: lib/wordfenceClass.php:8153
|
9303 |
msgid "Once you have entered credentials, click Continue to complete uninstallation."
|
9304 |
msgstr ""
|
9305 |
|
9306 |
+
#: lib/wordfenceClass.php:8197
|
9307 |
msgid "The <code>auto_prepend_file</code> setting has been successfully removed from <code>.htaccess</code> and <code>.user.ini</code>. Once this change takes effect, Extended Protection Mode will be disabled."
|
9308 |
msgstr ""
|
9309 |
|
9310 |
+
#: lib/wordfenceClass.php:8199
|
9311 |
msgid "Any previous value for <code>auto_prepend_file</code> will need to be re-enabled manually if still needed."
|
9312 |
msgstr ""
|
9313 |
|
9314 |
#. translators: Time until.
|
9315 |
+
#: lib/wordfenceClass.php:8203
|
9316 |
msgid "Waiting for it to take effect. This may take up to %s."
|
9317 |
msgstr ""
|
9318 |
|
9319 |
+
#: lib/wordfenceClass.php:8206
|
9320 |
msgid "Waiting for Changes"
|
9321 |
msgstr ""
|
9322 |
|
9323 |
+
#: lib/wordfenceClass.php:8228
|
9324 |
msgid "Extended Protection Mode has not been disabled. This may be because <code>auto_prepend_file</code> is configured somewhere else or the value is still cached by PHP."
|
9325 |
msgstr ""
|
9326 |
|
9327 |
+
#: lib/wordfenceClass.php:8230
|
9328 |
msgid "Retrying Failed."
|
9329 |
msgstr ""
|
9330 |
|
9331 |
+
#: lib/wordfenceClass.php:8232
|
9332 |
msgid "Try Again"
|
9333 |
msgstr ""
|
9334 |
|
9335 |
+
#: lib/wordfenceClass.php:8235
|
9336 |
msgid "Unable to Uninstall"
|
9337 |
msgstr ""
|
9338 |
|
9339 |
+
#: lib/wordfenceClass.php:8271
|
9340 |
msgid "Uninstallation Complete"
|
9341 |
msgstr ""
|
9342 |
|
9343 |
+
#: lib/wordfenceClass.php:8281
|
9344 |
msgid "Uninstallation Failed"
|
9345 |
msgstr ""
|
9346 |
|
9347 |
#. translators: 1. Number of attacks/blocks. 2. Time since.
|
9348 |
+
#: lib/wordfenceClass.php:8435
|
9349 |
msgid "The Wordfence Web Application Firewall has blocked %1$d attacks over the last %2$s. Below is a sample of these recent attacks:"
|
9350 |
msgstr ""
|
9351 |
|
9352 |
+
#: lib/wordfenceClass.php:9002
|
9353 |
msgid "To make your site as secure as possible, take a moment to optimize the Wordfence Web Application Firewall:"
|
9354 |
msgstr ""
|
9355 |
|
9356 |
+
#: lib/wordfenceClass.php:9002
|
9357 |
msgid "Click here to configure"
|
9358 |
msgstr ""
|
9359 |
|
9360 |
+
#: lib/wordfenceClass.php:9011
|
9361 |
#: views/waf/waf-install-success.php:14
|
9362 |
msgid "Nice work! The firewall is now optimized."
|
9363 |
msgstr ""
|
9364 |
|
9365 |
+
#: lib/wordfenceClass.php:9013
|
9366 |
+
#: lib/wordfenceClass.php:9025
|
9367 |
#: views/waf/waf-install-success.php:16
|
9368 |
#: views/waf/waf-uninstall-success.php:19
|
9369 |
msgid "The changes have not yet taken effect. If you are using LiteSpeed or IIS as your web server or CGI/FastCGI interface, you may need to wait a few minutes for the changes to take effect since the configuration files are sometimes cached. You also may need to select a different server configuration in order to complete this step, but wait for a few minutes before trying. You can try refreshing this page."
|
9370 |
msgstr ""
|
9371 |
|
9372 |
+
#: lib/wordfenceClass.php:9019
|
9373 |
#: views/waf/waf-uninstall-success.php:15
|
9374 |
msgid "Uninstallation was successful!"
|
9375 |
msgstr ""
|
9376 |
|
9377 |
+
#: lib/wordfenceClass.php:9022
|
9378 |
#: views/waf/waf-uninstall-success.php:17
|
9379 |
msgid "Uninstallation from this site was successful! The Wordfence Firewall is still active because it is installed in another WordPress installation."
|
9380 |
msgstr ""
|
9381 |
|
9382 |
+
#: lib/wordfenceClass.php:9030
|
9383 |
msgid "The update was successful!"
|
9384 |
msgstr ""
|
9385 |
|
9386 |
+
#: lib/wordfenceClass.php:9180
|
9387 |
msgid "Auth grant is invalid."
|
9388 |
msgstr ""
|
9389 |
|
9390 |
#. translators: Error message.
|
9391 |
+
#: lib/wordfenceClass.php:9195
|
9392 |
msgid "Invalid response from Wordfence Central: %s"
|
9393 |
msgstr ""
|
9394 |
|
9395 |
#. translators: JSON property.
|
9396 |
+
#: lib/wordfenceClass.php:9201
|
9397 |
+
#: lib/wordfenceClass.php:9214
|
9398 |
msgid "Invalid response from Wordfence Central. Parameter %s not found in response."
|
9399 |
msgstr ""
|
9400 |
|
9401 |
+
#: lib/wordfenceClass.php:9243
|
9402 |
+
#: lib/wordfenceClass.php:9380
|
9403 |
msgid "Access token not found."
|
9404 |
msgstr ""
|
9405 |
|
9406 |
+
#: lib/wordfenceClass.php:9288
|
9407 |
+
#: lib/wordfenceClass.php:9355
|
9408 |
msgid "Invalid response from Wordfence Central."
|
9409 |
msgstr ""
|
9410 |
|
9411 |
+
#: lib/wordfenceClass.php:9331
|
9412 |
msgid "Auth grant not found."
|
9413 |
msgstr ""
|
9414 |
|
9415 |
+
#: lib/wordfenceClass.php:9601
|
9416 |
msgid "We were unable to create the <code>wordfence-waf.php</code> file in the root of the WordPress installation. It's possible WordPress cannot write to the <code>wordfence-waf.php</code> file because of file permissions. Please verify the permissions are correct and retry the installation."
|
9417 |
msgstr ""
|
9418 |
|
9419 |
+
#: lib/wordfenceClass.php:9693
|
9420 |
+
#: lib/wordfenceClass.php:9764
|
9421 |
msgid "We were unable to make changes to the .htaccess file. It's possible WordPress cannot write to the .htaccess file because of file permissions, which may have been set by another security plugin, or you may have set them manually. Please verify the permissions allow the web server to write to the file, and retry the installation."
|
9422 |
msgstr ""
|
9423 |
|
9424 |
#. translators: File path.
|
9425 |
+
#: lib/wordfenceClass.php:9734
|
9426 |
+
#: lib/wordfenceClass.php:9782
|
9427 |
msgid "We were unable to make changes to the %1$s file. It's possible WordPress cannot write to the %1$s file because of file permissions. Please verify the permissions are correct and retry the installation."
|
9428 |
msgstr ""
|
9429 |
|
9430 |
+
#: lib/wordfenceClass.php:9798
|
9431 |
msgid "We were unable to remove the <code>wordfence-waf.php</code> file in the root of the WordPress installation. It's possible WordPress cannot remove the <code>wordfence-waf.php</code> file because of file permissions. Please verify the permissions are correct and retry the removal."
|
9432 |
msgstr ""
|
9433 |
|
9434 |
+
#: lib/wordfenceHash.php:64
|
9435 |
msgid "Fetching core, theme and plugin file signatures from Wordfence"
|
9436 |
msgstr ""
|
9437 |
|
9438 |
+
#: lib/wordfenceHash.php:73
|
9439 |
msgid "Fetching list of known malware files from Wordfence"
|
9440 |
msgstr ""
|
9441 |
|
9442 |
+
#: lib/wordfenceHash.php:77
|
9443 |
msgid "Using cached malware prefixes"
|
9444 |
msgstr ""
|
9445 |
|
9446 |
+
#: lib/wordfenceHash.php:80
|
9447 |
msgid "Fetching fresh malware prefixes"
|
9448 |
msgstr ""
|
9449 |
|
9450 |
+
#: lib/wordfenceHash.php:85
|
9451 |
msgid "Could not fetch malware signatures from Wordfence servers."
|
9452 |
msgstr ""
|
9453 |
|
9454 |
+
#: lib/wordfenceHash.php:90
|
9455 |
msgid "Malware data received from Wordfence servers was not valid."
|
9456 |
msgstr ""
|
9457 |
|
9458 |
+
#: lib/wordfenceHash.php:102
|
9459 |
msgid "Fetching list of known core files from Wordfence"
|
9460 |
msgstr ""
|
9461 |
|
9462 |
+
#: lib/wordfenceHash.php:106
|
9463 |
msgid "Using cached core hashes"
|
9464 |
msgstr ""
|
9465 |
|
9466 |
+
#: lib/wordfenceHash.php:109
|
9467 |
msgid "Fetching fresh core hashes"
|
9468 |
msgstr ""
|
9469 |
|
9470 |
+
#: lib/wordfenceHash.php:114
|
9471 |
msgid "Could not fetch core hashes from Wordfence servers."
|
9472 |
msgstr ""
|
9473 |
|
9474 |
+
#: lib/wordfenceHash.php:119
|
9475 |
msgid "Core hashes data received from Wordfence servers was not valid."
|
9476 |
msgstr ""
|
9477 |
|
9478 |
+
#: lib/wordfenceHash.php:137
|
|
|
|
|
|
|
|
|
9479 |
msgid "Comparing core WordPress files against originals in repository"
|
9480 |
msgstr ""
|
9481 |
|
9482 |
+
#: lib/wordfenceHash.php:137
|
9483 |
msgid "Skipping core scan"
|
9484 |
msgstr ""
|
9485 |
|
9486 |
+
#: lib/wordfenceHash.php:138
|
9487 |
msgid "Comparing open source themes against WordPress.org originals"
|
9488 |
msgstr ""
|
9489 |
|
9490 |
+
#: lib/wordfenceHash.php:138
|
9491 |
msgid "Skipping theme scan"
|
9492 |
msgstr ""
|
9493 |
|
9494 |
+
#: lib/wordfenceHash.php:139
|
9495 |
msgid "Comparing plugins against WordPress.org originals"
|
9496 |
msgstr ""
|
9497 |
|
9498 |
+
#: lib/wordfenceHash.php:139
|
9499 |
msgid "Skipping plugin scan"
|
9500 |
msgstr ""
|
9501 |
|
9502 |
+
#: lib/wordfenceHash.php:140
|
9503 |
msgid "Scanning for known malware files"
|
9504 |
msgstr ""
|
9505 |
|
9506 |
+
#: lib/wordfenceHash.php:140
|
9507 |
msgid "Skipping malware scan"
|
9508 |
msgstr ""
|
9509 |
|
9510 |
+
#: lib/wordfenceHash.php:141
|
9511 |
msgid "Scanning for unknown files in wp-admin and wp-includes"
|
9512 |
msgstr ""
|
9513 |
|
9514 |
+
#: lib/wordfenceHash.php:141
|
9515 |
msgid "Skipping unknown core file scan"
|
9516 |
msgstr ""
|
9517 |
|
9518 |
#. translators: WordPress version.
|
9519 |
+
#: lib/wordfenceHash.php:154
|
9520 |
msgid "Unknown WordPress core version: %s"
|
9521 |
msgstr ""
|
9522 |
|
9523 |
#. translators: WordPress version.
|
9524 |
+
#: lib/wordfenceHash.php:155
|
9525 |
msgid "The core files scan will not be run because this version of WordPress is not currently indexed by Wordfence. This may be due to using a prerelease version or because the servers are still indexing a new release. If you are using an official WordPress release, this issue will automatically dismiss once the version is indexed and another scan is run."
|
9526 |
msgstr ""
|
9527 |
|
9528 |
#. translators: File path.
|
9529 |
+
#: lib/wordfenceHash.php:188
|
9530 |
msgid "Wordfence file scanner detected a possible infinite loop. Exiting on file: %s"
|
9531 |
msgstr ""
|
9532 |
|
|
|
|
|
|
|
|
|
9533 |
#. translators: Time in seconds.
|
9534 |
+
#: lib/wordfenceHash.php:202
|
9535 |
msgid "Index time: %s"
|
9536 |
msgstr ""
|
9537 |
|
9538 |
+
#: lib/wordfenceHash.php:207
|
9539 |
msgid "Beginning file hashing"
|
9540 |
msgstr ""
|
9541 |
|
9542 |
+
#: lib/wordfenceHash.php:213
|
9543 |
msgid "Processing pending issues"
|
9544 |
msgstr ""
|
9545 |
|
9546 |
#. translators: 1. Number of files. 2. Data in bytes.
|
9547 |
+
#: lib/wordfenceHash.php:216
|
9548 |
msgid "Analyzed %1$d files containing %2$s of data."
|
9549 |
msgstr ""
|
9550 |
|
9551 |
+
#: lib/wordfenceHash.php:225
|
9552 |
msgid "Invalid response from Wordfence API during check_possible_malware"
|
9553 |
msgstr ""
|
9554 |
|
9555 |
#. translators: File path.
|
9556 |
+
#: lib/wordfenceHash.php:238
|
9557 |
msgid "This file is suspected malware: %s"
|
9558 |
msgstr ""
|
9559 |
|
9560 |
#. translators: Malware name/title.
|
9561 |
+
#: lib/wordfenceHash.php:239
|
9562 |
msgid "This file's signature matches a known malware file. The title of the malware is '%s'. Immediately inspect this file using the 'View' option below and consider deleting it from your server."
|
9563 |
msgstr ""
|
9564 |
|
9565 |
#. translators: File path.
|
9566 |
+
#: lib/wordfenceHash.php:285
|
9567 |
+
#: lib/wordfenceHash.php:314
|
9568 |
msgid "Found .suspected file: %s"
|
9569 |
msgstr ""
|
9570 |
|
9571 |
#. translators: File path.
|
9572 |
+
#: lib/wordfenceHash.php:294
|
9573 |
#: lib/wordfenceHash.php:323
|
|
|
9574 |
msgid "Skipping unneeded hash: %s"
|
9575 |
msgstr ""
|
9576 |
|
9577 |
#. translators: Number of files.
|
9578 |
+
#: lib/wordfenceHash.php:350
|
9579 |
msgid "%d files indexed"
|
9580 |
msgstr ""
|
9581 |
|
9582 |
#. translators: File path.
|
9583 |
+
#: lib/wordfenceHash.php:387
|
9584 |
msgid "Forking during indexing: %s"
|
9585 |
msgstr ""
|
9586 |
|
9587 |
#. translators: PHP max execution time.
|
9588 |
+
#: lib/wordfenceHash.php:390
|
9589 |
msgid "Calling fork() from wordfenceHash with maxExecTime: %s"
|
9590 |
msgstr ""
|
9591 |
|
9592 |
#. translators: File path.
|
9593 |
+
#: lib/wordfenceHash.php:427
|
9594 |
msgid "Skipping file larger than max size: %s"
|
9595 |
msgstr ""
|
9596 |
|
9597 |
#. translators: 1. File path. 2. Memory in bytes.
|
9598 |
+
#: lib/wordfenceHash.php:432
|
9599 |
msgid "Scanning: %1$s (Mem:%2$s)"
|
9600 |
msgstr ""
|
9601 |
|
9602 |
#. translators: File path.
|
9603 |
+
#: lib/wordfenceHash.php:435
|
9604 |
msgid "Scanning: %s"
|
9605 |
msgstr ""
|
9606 |
|
9607 |
#. translators: File path.
|
9608 |
+
#: lib/wordfenceHash.php:475
|
9609 |
msgid "WordPress core file modified: %s"
|
9610 |
msgstr ""
|
9611 |
|
9612 |
#. translators: File path.
|
9613 |
+
#: lib/wordfenceHash.php:476
|
9614 |
msgid "This WordPress core file has been modified and differs from the original file distributed with this version of WordPress."
|
9615 |
msgstr ""
|
9616 |
|
9617 |
#. translators: File path.
|
9618 |
+
#: lib/wordfenceHash.php:512
|
9619 |
msgid "Modified plugin file: %s"
|
9620 |
msgstr ""
|
9621 |
|
9622 |
#. translators: 1. Plugin name. 2. Plugin version. 3. Support URL.
|
9623 |
+
#: lib/wordfenceHash.php:515
|
9624 |
msgid "This file belongs to plugin \"%1$s\" version \"%2$s\" and has been modified from the file that is distributed by WordPress.org for this version. Please use the link to see how the file has changed. If you have modified this file yourself, you can safely ignore this warning. If you see a lot of changed files in a plugin that have been made by the author, then try uninstalling and reinstalling the plugin to force an upgrade. Doing this is a workaround for plugin authors who don't manage their code correctly. <a href=\"%3$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span class=\"screen-reader-text\"> ("
|
9625 |
msgstr ""
|
9626 |
|
9627 |
#. translators: File path.
|
9628 |
+
#: lib/wordfenceHash.php:559
|
9629 |
msgid "Modified theme file: %s"
|
9630 |
msgstr ""
|
9631 |
|
9632 |
#. translators: 1. Plugin name. 2. Plugin version. 3. Support URL.
|
9633 |
+
#: lib/wordfenceHash.php:562
|
9634 |
msgid "This file belongs to theme \"%1$s\" version \"%2$s\" and has been modified from the original distribution. It is common for site owners to modify their theme files, so if you have modified this file yourself you can safely ignore this warning. <a href=\"%3$s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span class=\"screen-reader-text\"> ("
|
9635 |
msgstr ""
|
9636 |
|
9637 |
#. translators: File path.
|
9638 |
+
#: lib/wordfenceHash.php:596
|
9639 |
msgid "Old WordPress core file not removed during update: %s"
|
9640 |
msgstr ""
|
9641 |
|
9642 |
#. translators: File path.
|
9643 |
+
#: lib/wordfenceHash.php:597
|
9644 |
msgid "This file is in a WordPress core location but is from an older version of WordPress and not used with your current version. Hosting or permissions issues can cause these files to get left behind when WordPress is updated and they should be removed if possible."
|
9645 |
msgstr ""
|
9646 |
|
9647 |
#. translators: File path.
|
9648 |
+
#: lib/wordfenceHash.php:614
|
9649 |
+
#: lib/wordfenceHash.php:635
|
9650 |
msgid "Unknown file in WordPress core: %s"
|
9651 |
msgstr ""
|
9652 |
|
9653 |
#. translators: File path.
|
9654 |
+
#: lib/wordfenceHash.php:615
|
9655 |
msgid "This file is in a WordPress core location but is not distributed with this version of WordPress. This scan often includes files left over from a previous WordPress version, but it may also find files added by another plugin, files added by your host, or malicious files added by an attacker."
|
9656 |
msgstr ""
|
9657 |
|
9658 |
#. translators: Support URL.
|
9659 |
+
#: lib/wordfenceHash.php:636
|
9660 |
msgid "This file is in a WordPress core location but is not distributed with this version of WordPress. This scan often includes files left over from a previous WordPress version, but it may also find files added by another plugin, files added by your host, or malicious files added by an attacker. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span class=\"screen-reader-text\"> ("
|
9661 |
msgstr ""
|
9662 |
|
9663 |
#. translators: 1. Number of files. 2. Data in bytes.
|
9664 |
+
#: lib/wordfenceHash.php:665
|
9665 |
msgid "Analyzed %1$d files containing %2$s of data so far"
|
9666 |
msgstr ""
|
9667 |
|
9668 |
#. translators: Number of scan results.
|
9669 |
+
#: lib/wordfenceHash.php:749
|
9670 |
msgid "(+ %d more)"
|
9671 |
msgstr ""
|
9672 |
|
9673 |
#. translators: Number of files.
|
9674 |
+
#: lib/wordfenceHash.php:750
|
9675 |
msgid "%d more similar files were found."
|
9676 |
msgstr ""
|
9677 |
|
9678 |
#. translators: Number of files.
|
9679 |
+
#: lib/wordfenceHash.php:750
|
9680 |
msgid "1 more similar file was found."
|
9681 |
msgstr ""
|
9682 |
|
9683 |
#. translators: Number of files.
|
9684 |
+
#: lib/wordfenceHash.php:750
|
9685 |
msgid "<a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Learn More<span class=\"screen-reader-text\"> ("
|
9686 |
msgstr ""
|
9687 |
|
9742 |
msgstr ""
|
9743 |
|
9744 |
#. translators: Malware signature rule ID.
|
9745 |
+
#: lib/wordfenceScanner.php:372
|
9746 |
msgid "Resuming malware scan at rule %s."
|
9747 |
msgstr ""
|
9748 |
|
9749 |
+
#: lib/wordfenceScanner.php:406
|
9750 |
msgid "This file appears to be installed or modified by a hacker to perform malicious activity. If you know about this file you can choose to ignore it to exclude it from future scans."
|
9751 |
msgstr ""
|
9752 |
|
9753 |
+
#: lib/wordfenceScanner.php:417
|
9754 |
msgid "File appears to be malicious or unsafe: %s"
|
9755 |
msgstr ""
|
9756 |
|
9757 |
+
#: lib/wordfenceScanner.php:418
|
9758 |
msgid "The matched text in this file is: %s"
|
9759 |
msgstr ""
|
9760 |
|
9761 |
#. translators: Scan result type.
|
9762 |
+
#: lib/wordfenceScanner.php:418
|
9763 |
msgid "The issue type is: %s"
|
9764 |
msgstr ""
|
9765 |
|
9766 |
#. translators: Scan result description.
|
9767 |
+
#: lib/wordfenceScanner.php:418
|
9768 |
msgid "Description: %s"
|
9769 |
msgstr ""
|
9770 |
|
9771 |
#. translators: Malware signature rule ID.
|
9772 |
+
#: lib/wordfenceScanner.php:437
|
9773 |
msgid "Forking during malware scan (%s) to ensure continuity."
|
9774 |
msgstr ""
|
9775 |
|
9776 |
+
#: lib/wordfenceScanner.php:459
|
9777 |
msgid "This file may contain malicious executable code: "
|
9778 |
msgstr ""
|
9779 |
|
9780 |
#. translators: Malware signature matched text.
|
9781 |
+
#: lib/wordfenceScanner.php:460
|
9782 |
msgid "This file is a PHP executable file and contains the word \"eval\" (without quotes) and the word \"%s\" (without quotes). The eval() function along with an encoding function like the one mentioned are commonly used by hackers to hide their code. If you know about this file you can choose to ignore it to exclude it from future scans. This file was detected because you have enabled HIGH SENSITIVITY scanning. This option is more aggressive than the usual scans, and may cause false positives."
|
9783 |
msgstr ""
|
9784 |
|
9785 |
+
#: lib/wordfenceScanner.php:498
|
9786 |
msgid "Asking Wordfence to check URLs against malware list."
|
9787 |
msgstr ""
|
9788 |
|
9789 |
+
#: lib/wordfenceScanner.php:526
|
9790 |
+
#: lib/wordfenceScanner.php:568
|
9791 |
msgid "File contains suspected malware URL: "
|
9792 |
msgstr ""
|
9793 |
|
9794 |
#. translators: 1. Malware signature matched text. 2. Malicious URL. 3. Malicious URL.
|
9795 |
+
#: lib/wordfenceScanner.php:529
|
9796 |
msgid "This file contains a suspected malware URL listed on Google's list of malware sites. Wordfence decodes %1$s when scanning files so the URL may not be visible if you view this file. The URL is: %2$s - More info available at <a href=\"http://safebrowsing.clients.google.com/safebrowsing/diagnostic?site=%3$s&client=googlechrome&hl=en-US\" target=\"_blank\" rel=\"noopener noreferrer\">Google Safe Browsing diagnostic page<span class=\"screen-reader-text\"> (opens in new tab)</span></a>."
|
9797 |
msgstr ""
|
9798 |
|
9799 |
+
#: lib/wordfenceScanner.php:550
|
9800 |
msgid "File contains suspected phishing URL: "
|
9801 |
msgstr ""
|
9802 |
|
9803 |
+
#: lib/wordfenceScanner.php:551
|
9804 |
msgid "This file contains a URL that is a suspected phishing site that is currently listed on Google's list of known phishing sites. The URL is: "
|
9805 |
msgstr ""
|
9806 |
|
9807 |
+
#: lib/wordfenceScanner.php:569
|
9808 |
msgid "This file contains a URL that is currently listed on Wordfence's domain blocklist. The URL is: "
|
9809 |
msgstr ""
|
9810 |
|
9811 |
+
#: lib/wordfenceScanner.php:585
|
9812 |
msgid "Finalizing malware scan results"
|
9813 |
msgstr ""
|
9814 |
|
9815 |
#. translators: 1. Number of fils. 2. Seconds in millisecond precision.
|
9816 |
+
#: lib/wordfenceScanner.php:607
|
9817 |
msgid "Scanned contents of %1$d additional files at %2$.2f per second"
|
9818 |
msgstr ""
|
9819 |
|
10641 |
msgstr ""
|
10642 |
|
10643 |
#: views/dashboard/options-group-license.php:53
|
10644 |
+
msgid "Premium License Deactivated"
|
10645 |
+
msgstr ""
|
10646 |
+
|
10647 |
+
#: views/dashboard/options-group-license.php:56
|
10648 |
msgid "%s License Active"
|
10649 |
msgstr ""
|
10650 |
|
10651 |
+
#: views/dashboard/options-group-license.php:62
|
10652 |
msgid "Reset site to a free license"
|
10653 |
msgstr ""
|
10654 |
|
10655 |
+
#: views/dashboard/options-group-license.php:67
|
10656 |
msgid "Click here to manage your Wordfence licenses"
|
10657 |
msgstr ""
|
10658 |
|
10659 |
+
#: views/dashboard/options-group-license.php:70
|
10660 |
+
msgid "Remove Invalid License"
|
10661 |
+
msgstr ""
|
10662 |
+
|
10663 |
+
#: views/dashboard/options-group-license.php:74
|
10664 |
msgid "Install License"
|
10665 |
msgstr ""
|
10666 |
|
10667 |
+
#: views/dashboard/options-group-license.php:150
|
10668 |
+
msgid "This was a premium license key, but it is no longer valid, so premium features are disabled. You can either remove the invalid key and continue using Wordfence's free features, or enter a new premium key to upgrade. If you have questions, contact <a href=\"mailto:billing@wordfence.com\">billing@wordfence.com</a>."
|
10669 |
+
msgstr ""
|
10670 |
+
|
10671 |
+
#: views/dashboard/options-group-license.php:163
|
10672 |
msgid "Confirm Reset"
|
10673 |
msgstr ""
|
10674 |
|
10675 |
+
#: views/dashboard/options-group-license.php:164
|
10676 |
msgid "<p>Are you sure you want to reset this site's Wordfence License? This will disable Premium features and return the site to the free version of Wordfence. Your settings will still be retained when reinstalling a license.</p><p>If autorenew is enabled for the current license, the license will renew at the next expiration date. If you would like to turn renewal off or assign the license to another site, log into wordfence.com to change it.</p>"
|
10677 |
msgstr ""
|
10678 |
|
10679 |
+
#: views/dashboard/options-group-license.php:166
|
10680 |
msgid "Reset"
|
10681 |
msgstr ""
|
10682 |
|
lib/wfFileUtils.php
ADDED
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class wfFileUtils {
|
4 |
+
|
5 |
+
const CURRENT_DIRECTORY = '.';
|
6 |
+
const PARENT_DIRECTORY = '..';
|
7 |
+
const DIRECTORY_SEPARATOR = '/';
|
8 |
+
|
9 |
+
public static function isCurrentOrParentDirectory($file) {
|
10 |
+
return $file === self::CURRENT_DIRECTORY || $file === self::PARENT_DIRECTORY;
|
11 |
+
}
|
12 |
+
|
13 |
+
public static function getContents($directory) {
|
14 |
+
$contents = scandir($directory);
|
15 |
+
if ($contents === false)
|
16 |
+
throw new Exception("Unable to read contents of directory: $directory");
|
17 |
+
return array_filter($contents, function ($file) { return !wfFileUtils::isCurrentOrParentDirectory($file); });
|
18 |
+
}
|
19 |
+
|
20 |
+
public static function trimSeparators($path, $trimLeft = true, $trimRight = true) {
|
21 |
+
if ($trimLeft)
|
22 |
+
$path = ltrim($path, self::DIRECTORY_SEPARATOR);
|
23 |
+
if ($trimRight)
|
24 |
+
$path = rtrim($path, self::DIRECTORY_SEPARATOR);
|
25 |
+
return $path;
|
26 |
+
}
|
27 |
+
|
28 |
+
public static function joinPaths() {
|
29 |
+
$paths = func_get_args();
|
30 |
+
$count = count($paths);
|
31 |
+
$filtered = array();
|
32 |
+
$trailingSeparator = false;
|
33 |
+
for ($i = 0; $i < $count; $i++) {
|
34 |
+
$path = self::trimSeparators($paths[$i], !empty($filtered));
|
35 |
+
if (!empty($path)) {
|
36 |
+
$filtered[] = $path;
|
37 |
+
$trailingSeparator = substr($paths[$i], -1) === self::DIRECTORY_SEPARATOR;
|
38 |
+
}
|
39 |
+
}
|
40 |
+
return implode(self::DIRECTORY_SEPARATOR, $filtered) . ($trailingSeparator ? self::DIRECTORY_SEPARATOR : '');
|
41 |
+
}
|
42 |
+
|
43 |
+
public static function splitPath($path, &$count = null) {
|
44 |
+
$components = array_filter(explode(self::DIRECTORY_SEPARATOR, $path));
|
45 |
+
$count = count($components);
|
46 |
+
return $components;
|
47 |
+
}
|
48 |
+
|
49 |
+
public static function isReadableFile($file) {
|
50 |
+
return @is_file($file) && @is_readable($file);
|
51 |
+
}
|
52 |
+
|
53 |
+
public static function belongsTo($child, $parent) {
|
54 |
+
$childComponents = self::splitPath($child, $childCount);
|
55 |
+
$parentComponents = self::splitPath($parent, $parentCount);
|
56 |
+
if ($childCount < $parentCount)
|
57 |
+
return false;
|
58 |
+
for ($i = 0; $i < $parentCount; $i++) {
|
59 |
+
if ($childComponents[$i] !== $parentComponents[$i])
|
60 |
+
return false;
|
61 |
+
}
|
62 |
+
return true;
|
63 |
+
}
|
64 |
+
|
65 |
+
public static function matchPaths($a, $b) {
|
66 |
+
$aComponents = self::splitPath($a, $aCount);
|
67 |
+
$bComponents = self::splitPath($b, $bCount);
|
68 |
+
if ($aCount !== $bCount)
|
69 |
+
return false;
|
70 |
+
for ($i = 0; $i < $aCount; $i++) {
|
71 |
+
if ($aComponents[$i] !== $bComponents[$i])
|
72 |
+
return false;
|
73 |
+
}
|
74 |
+
return true;
|
75 |
+
}
|
76 |
+
|
77 |
+
}
|
lib/wfIssues.php
CHANGED
@@ -608,12 +608,18 @@ class wfIssues {
|
|
608 |
foreach($ret as $status => &$issueList){
|
609 |
for($i = 0; $i < sizeof($issueList); $i++){
|
610 |
if ($issueList[$i]['type'] == 'file' || $issueList[$i]['type'] == 'knownfile') {
|
611 |
-
|
612 |
-
|
613 |
-
$
|
614 |
}
|
615 |
else {
|
616 |
-
$localFile =
|
|
|
|
|
|
|
|
|
|
|
|
|
617 |
}
|
618 |
|
619 |
if(file_exists($localFile)){
|
@@ -747,4 +753,18 @@ class wfIssues {
|
|
747 |
public function getIssuesTable() {
|
748 |
return $this->issuesTable;
|
749 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
750 |
}
|
608 |
foreach($ret as $status => &$issueList){
|
609 |
for($i = 0; $i < sizeof($issueList); $i++){
|
610 |
if ($issueList[$i]['type'] == 'file' || $issueList[$i]['type'] == 'knownfile') {
|
611 |
+
if (array_key_exists('realFile', $issueList[$i]['data'])) {
|
612 |
+
$localFile = $issueList[$i]['data']['realFile'];
|
613 |
+
$issueList[$i]['data']['realFileToken'] = self::generateRealFileToken($localFile);
|
614 |
}
|
615 |
else {
|
616 |
+
$localFile = $issueList[$i]['data']['file'];
|
617 |
+
if ($localFile != '.htaccess' && $localFile != $userIni) {
|
618 |
+
$localFile = ABSPATH . '/' . preg_replace('/^[\.\/]+/', '', $localFile);
|
619 |
+
}
|
620 |
+
else {
|
621 |
+
$localFile = ABSPATH . '/' . $localFile;
|
622 |
+
}
|
623 |
}
|
624 |
|
625 |
if(file_exists($localFile)){
|
753 |
public function getIssuesTable() {
|
754 |
return $this->issuesTable;
|
755 |
}
|
756 |
+
|
757 |
+
private static function getRealFileTokenKey($realFile) {
|
758 |
+
return 'wf-real-file-' . base64_encode($realFile);
|
759 |
+
}
|
760 |
+
|
761 |
+
private static function generateRealFileToken($realFile) {
|
762 |
+
$key = self::getRealFileTokenKey($realFile);
|
763 |
+
return wp_create_nonce($key);
|
764 |
+
}
|
765 |
+
|
766 |
+
public static function verifyRealFileToken($token, $realFile) {
|
767 |
+
$key = self::getRealFileTokenKey($realFile);
|
768 |
+
return wp_verify_nonce($token, $key);
|
769 |
+
}
|
770 |
}
|
lib/wfLog.php
CHANGED
@@ -1021,6 +1021,8 @@ class wfUserIPRange {
|
|
1021 |
}
|
1022 |
|
1023 |
protected function _sanitizeIPRange($ip_string) {
|
|
|
|
|
1024 |
$ip_string = preg_replace('/\s/', '', $ip_string); //Strip whitespace
|
1025 |
$ip_string = preg_replace('/[\\x{2013}-\\x{2015}]/u', '-', $ip_string); //Non-hyphen dashes to hyphen
|
1026 |
$ip_string = strtolower($ip_string);
|
@@ -1283,6 +1285,9 @@ class wfRequestModel extends wfModel {
|
|
1283 |
}
|
1284 |
}
|
1285 |
}
|
|
|
|
|
|
|
1286 |
return $actionData;
|
1287 |
}
|
1288 |
|
1021 |
}
|
1022 |
|
1023 |
protected function _sanitizeIPRange($ip_string) {
|
1024 |
+
if (!is_string($ip_string))
|
1025 |
+
return null;
|
1026 |
$ip_string = preg_replace('/\s/', '', $ip_string); //Strip whitespace
|
1027 |
$ip_string = preg_replace('/[\\x{2013}-\\x{2015}]/u', '-', $ip_string); //Non-hyphen dashes to hyphen
|
1028 |
$ip_string = strtolower($ip_string);
|
1285 |
}
|
1286 |
}
|
1287 |
}
|
1288 |
+
else {
|
1289 |
+
$actionData = array();
|
1290 |
+
}
|
1291 |
return $actionData;
|
1292 |
}
|
1293 |
|
lib/wfScanEngine.php
CHANGED
@@ -1,11 +1,14 @@
|
|
1 |
<?php
|
2 |
-
require_once(
|
3 |
-
require_once(
|
4 |
-
require_once(
|
5 |
-
require_once(
|
6 |
-
require_once(
|
7 |
-
require_once(
|
8 |
-
require_once(
|
|
|
|
|
|
|
9 |
|
10 |
class wfScanEngine {
|
11 |
const SCAN_MANUALLY_KILLED = -999;
|
@@ -798,6 +801,7 @@ class wfScanEngine {
|
|
798 |
array(
|
799 |
'url' => $test->getUrl(),
|
800 |
'file' => $pathFromRoot,
|
|
|
801 |
'canDelete' => true,
|
802 |
)
|
803 |
);
|
@@ -901,50 +905,64 @@ class wfScanEngine {
|
|
901 |
private function _scannedSkippedPaths() {
|
902 |
static $_cache = null;
|
903 |
if ($_cache === null) {
|
904 |
-
$
|
905 |
-
|
906 |
-
|
907 |
-
|
908 |
-
|
909 |
-
|
910 |
-
|
911 |
-
|
912 |
-
|
913 |
-
|
914 |
-
|
915 |
-
|
916 |
-
|
917 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
918 |
}
|
919 |
-
|
920 |
$scanOutside = $this->scanController->scanOutsideWordPress();
|
921 |
-
if ($scanOutside) {
|
922 |
-
$_cache = array('scanned' => array_merge(array(ABSPATH), $base_absolute), 'skipped' => array());
|
923 |
-
return $_cache;
|
924 |
-
}
|
925 |
-
|
926 |
$scanned = array();
|
927 |
$skipped = array();
|
928 |
-
foreach ($
|
929 |
-
if (
|
930 |
-
|
931 |
-
|
932 |
-
|
933 |
-
|
934 |
-
|
935 |
-
|
936 |
-
|
937 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
938 |
}
|
939 |
}
|
940 |
-
|
941 |
-
|
942 |
-
|
943 |
-
if ($realFile && !in_array($realFile, $scanned)) {
|
944 |
-
$scanned[] = $realFile;
|
945 |
}
|
946 |
}
|
947 |
-
$_cache = array(
|
|
|
|
|
|
|
948 |
}
|
949 |
return $_cache;
|
950 |
}
|
@@ -957,11 +975,8 @@ class wfScanEngine {
|
|
957 |
$paths = $this->_scannedSkippedPaths();
|
958 |
if (!empty($paths['skipped'])) {
|
959 |
$skippedList = '';
|
960 |
-
foreach ($paths['skipped'] as $index => $
|
961 |
-
$path = esc_html($
|
962 |
-
if (strpos($fullPath, ABSPATH) === 0) {
|
963 |
-
$path = '~/' . esc_html(substr($fullPath, strlen(ABSPATH)));
|
964 |
-
}
|
965 |
|
966 |
if ($index >= 10) {
|
967 |
$skippedList .= sprintf(/* translators: Number of paths skipped in scan. */ __(', and %d more.', 'wordfence'), count($paths['skipped']) - 10);
|
@@ -1030,7 +1045,7 @@ class wfScanEngine {
|
|
1030 |
$knownFilesThemes = $this->getThemes();
|
1031 |
$this->status(2, 'info', sprintf(/* translators: Number of themes. */ _n("Found %d theme", "Found %d themes", sizeof($knownFilesThemes), 'wordfence'), sizeof($knownFilesThemes)));
|
1032 |
|
1033 |
-
$this->hasher = new wordfenceHash(
|
1034 |
}
|
1035 |
|
1036 |
private function scan_knownFiles_main() {
|
1 |
<?php
|
2 |
+
require_once(__DIR__ . '/wordfenceClass.php');
|
3 |
+
require_once(__DIR__ . '/wordfenceHash.php');
|
4 |
+
require_once(__DIR__ . '/wfAPI.php');
|
5 |
+
require_once(__DIR__ . '/wordfenceScanner.php');
|
6 |
+
require_once(__DIR__ . '/wfIssues.php');
|
7 |
+
require_once(__DIR__ . '/wfDB.php');
|
8 |
+
require_once(__DIR__ . '/wfUtils.php');
|
9 |
+
require_once(__DIR__ . '/wfFileUtils.php');
|
10 |
+
require_once(__DIR__ . '/wfScanPath.php');
|
11 |
+
require_once(__DIR__ . '/wfScanFile.php');
|
12 |
|
13 |
class wfScanEngine {
|
14 |
const SCAN_MANUALLY_KILLED = -999;
|
801 |
array(
|
802 |
'url' => $test->getUrl(),
|
803 |
'file' => $pathFromRoot,
|
804 |
+
'realFile' => $test->getPath(),
|
805 |
'canDelete' => true,
|
806 |
)
|
807 |
);
|
905 |
private function _scannedSkippedPaths() {
|
906 |
static $_cache = null;
|
907 |
if ($_cache === null) {
|
908 |
+
$scanPaths = array(
|
909 |
+
new wfScanPath(
|
910 |
+
ABSPATH,
|
911 |
+
ABSPATH,
|
912 |
+
'/',
|
913 |
+
array('.htaccess', 'index.php', 'license.txt', 'readme.html', 'wp-activate.php', 'wp-admin', 'wp-app.php', 'wp-blog-header.php', 'wp-comments-post.php', 'wp-config-sample.php', 'wp-content', 'wp-cron.php', 'wp-includes', 'wp-links-opml.php', 'wp-load.php', 'wp-login.php', 'wp-mail.php', 'wp-pass.php', 'wp-register.php', 'wp-settings.php', 'wp-signup.php', 'wp-trackback.php', 'xmlrpc.php', '.well-known', 'cgi-bin')
|
914 |
+
)
|
915 |
+
);
|
916 |
+
$directoryConstants = array(
|
917 |
+
'WP_CONTENT_DIR' => '/wp-content',
|
918 |
+
'WP_PLUGIN_DIR' => '/wp-content/plugins',
|
919 |
+
'UPLOADS' => '/wp-content/uploads'
|
920 |
+
);
|
921 |
+
foreach ($directoryConstants as $constant => $wordpressPath) {
|
922 |
+
if (!defined($constant))
|
923 |
+
continue;
|
924 |
+
$path = constant($constant);
|
925 |
+
if (!empty($path)) {
|
926 |
+
if ($constant === 'UPLOADS')
|
927 |
+
$path = ABSPATH . $path;
|
928 |
+
$scanPaths[] = new wfScanPath(
|
929 |
+
ABSPATH,
|
930 |
+
$path,
|
931 |
+
$wordpressPath
|
932 |
+
);
|
933 |
+
}
|
934 |
}
|
|
|
935 |
$scanOutside = $this->scanController->scanOutsideWordPress();
|
|
|
|
|
|
|
|
|
|
|
936 |
$scanned = array();
|
937 |
$skipped = array();
|
938 |
+
foreach ($scanPaths as $scanPath) {
|
939 |
+
if (!$scanOutside && $scanPath->hasExpectedFiles()) {
|
940 |
+
try {
|
941 |
+
foreach ($scanPath->getContents() as $fileName) {
|
942 |
+
$file = $scanPath->createScanFile($fileName);
|
943 |
+
if (wfUtils::fileTooBig($file->getRealPath()))
|
944 |
+
continue;
|
945 |
+
if ($scanPath->expectsFile($fileName) || wfFileUtils::isReadableFile($file->getRealPath())) {
|
946 |
+
$scanned[$file->getRealPath()] = $file;
|
947 |
+
}
|
948 |
+
else {
|
949 |
+
$skipped[$file->getRealPath()] = $file;
|
950 |
+
}
|
951 |
+
}
|
952 |
+
}
|
953 |
+
catch (Exception $e) {
|
954 |
+
throw new Exception(__("Wordfence could not read the content of your WordPress directory. This usually indicates your permissions are so strict that your web server can't read your WordPress directory.", 'wordfence'));
|
955 |
}
|
956 |
}
|
957 |
+
else {
|
958 |
+
$file = $scanPath->createScanFile('/');
|
959 |
+
$scanned[$file->getRealPath()] = $file;
|
|
|
|
|
960 |
}
|
961 |
}
|
962 |
+
$_cache = array(
|
963 |
+
'scanned' => array_values($scanned),
|
964 |
+
'skipped' => array_values($skipped)
|
965 |
+
);
|
966 |
}
|
967 |
return $_cache;
|
968 |
}
|
975 |
$paths = $this->_scannedSkippedPaths();
|
976 |
if (!empty($paths['skipped'])) {
|
977 |
$skippedList = '';
|
978 |
+
foreach ($paths['skipped'] as $index => $file) {
|
979 |
+
$path = esc_html($file->getDisplayPath());
|
|
|
|
|
|
|
980 |
|
981 |
if ($index >= 10) {
|
982 |
$skippedList .= sprintf(/* translators: Number of paths skipped in scan. */ __(', and %d more.', 'wordfence'), count($paths['skipped']) - 10);
|
1045 |
$knownFilesThemes = $this->getThemes();
|
1046 |
$this->status(2, 'info', sprintf(/* translators: Number of themes. */ _n("Found %d theme", "Found %d themes", sizeof($knownFilesThemes), 'wordfence'), sizeof($knownFilesThemes)));
|
1047 |
|
1048 |
+
$this->hasher = new wordfenceHash($includeInKnownFilesScan, $knownFilesThemes, $knownFilesPlugins, $this, wfUtils::hex2bin($this->malwarePrefixesHash), $this->coreHashesHash, $this->scanMode);
|
1049 |
}
|
1050 |
|
1051 |
private function scan_knownFiles_main() {
|
lib/wfScanFile.php
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once __DIR__ . '/wfFileUtils.php';
|
4 |
+
|
5 |
+
class wfScanFile {
|
6 |
+
|
7 |
+
private $realPath = null;
|
8 |
+
private $wordpressPath = null;
|
9 |
+
|
10 |
+
public function __construct($realPath, $wordpressPath) {
|
11 |
+
$this->realPath = $realPath;
|
12 |
+
$this->wordpressPath = $wordpressPath;
|
13 |
+
}
|
14 |
+
|
15 |
+
public function getRealPath() {
|
16 |
+
return $this->realPath;
|
17 |
+
}
|
18 |
+
|
19 |
+
public function getWordpressPath() {
|
20 |
+
return $this->wordpressPath;
|
21 |
+
}
|
22 |
+
|
23 |
+
public function getDisplayPath() {
|
24 |
+
if (wfFileUtils::matchPaths($this->realPath, $this->wordpressPath)) {
|
25 |
+
return '~/' . $this->getWordpressPath();
|
26 |
+
}
|
27 |
+
return $this->realPath;
|
28 |
+
}
|
29 |
+
|
30 |
+
public function createChild($childPath) {
|
31 |
+
return new self(
|
32 |
+
realpath(wfFileUtils::joinPaths($this->realPath, $childPath)),
|
33 |
+
wfFileUtils::joinPaths($this->wordpressPath, $childPath)
|
34 |
+
);
|
35 |
+
}
|
36 |
+
|
37 |
+
public function __toString() {
|
38 |
+
return $this->getRealPath();
|
39 |
+
}
|
40 |
+
|
41 |
+
}
|
lib/wfScanPath.php
ADDED
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once __DIR__ . '/wfFileUtils.php';
|
4 |
+
require_once __DIR__ . '/wfScanFile.php';
|
5 |
+
|
6 |
+
class wfScanPath {
|
7 |
+
|
8 |
+
private $baseDirectory;
|
9 |
+
private $path;
|
10 |
+
private $realPath;
|
11 |
+
private $wordpressPath;
|
12 |
+
private $expectedFiles;
|
13 |
+
|
14 |
+
public function __construct($baseDirectory, $path, $wordpressPath = null, $expectedFiles = null) {
|
15 |
+
$this->baseDirectory = $baseDirectory;
|
16 |
+
$this->path = $path;
|
17 |
+
$this->realPath = realpath($path);
|
18 |
+
$this->wordpressPath = $wordpressPath;
|
19 |
+
$this->expectedFiles = is_array($expectedFiles) ? array_flip($expectedFiles) : null;
|
20 |
+
}
|
21 |
+
|
22 |
+
public function getPath() {
|
23 |
+
return $this->path;
|
24 |
+
}
|
25 |
+
|
26 |
+
public function getRealPath() {
|
27 |
+
return $this->realPath;
|
28 |
+
}
|
29 |
+
|
30 |
+
public function getWordpressPath() {
|
31 |
+
return $this->wordpressPath;
|
32 |
+
}
|
33 |
+
|
34 |
+
public function hasExpectedFiles() {
|
35 |
+
return $this->expectedFiles !== null && !empty($this->expectedFiles);
|
36 |
+
}
|
37 |
+
|
38 |
+
public function expectsFile($name) {
|
39 |
+
return array_key_exists($name, $this->expectedFiles);
|
40 |
+
}
|
41 |
+
|
42 |
+
public function isBaseDirectory() {
|
43 |
+
return $this->path === $this->baseDirectory;
|
44 |
+
}
|
45 |
+
|
46 |
+
public function isBelowBaseDirectory() {
|
47 |
+
return wfFileUtils::belongsTo($this->path, $this->baseDirectory);
|
48 |
+
}
|
49 |
+
|
50 |
+
public function getContents() {
|
51 |
+
return wfFileUtils::getContents($this->realPath);
|
52 |
+
}
|
53 |
+
|
54 |
+
public function createScanFile($relativePath) {
|
55 |
+
return new wfScanFile(
|
56 |
+
realpath(wfFileUtils::joinPaths($this->realPath, $relativePath)),
|
57 |
+
wfFileUtils::trimSeparators(wfFileUtils::joinPaths($this->wordpressPath, $relativePath), true, false)
|
58 |
+
);
|
59 |
+
}
|
60 |
+
|
61 |
+
public function __toString() {
|
62 |
+
return $this->realPath;
|
63 |
+
}
|
64 |
+
|
65 |
+
}
|
lib/wordfenceClass.php
CHANGED
@@ -191,8 +191,9 @@ class wordfence {
|
|
191 |
global $wpdb;
|
192 |
$version = $wpdb->get_var("SELECT VERSION()");
|
193 |
wfConfig::set('dbVersion', $version);
|
194 |
-
|
195 |
-
$
|
|
|
196 |
try {
|
197 |
$keyType = wfLicense::KEY_TYPE_FREE;
|
198 |
$keyData = $api->call('ping_api_key', array(), array('supportHash' => wfConfig::get('supportHash', ''), 'whitelistHash' => wfConfig::get('whitelistHash', ''), 'tldlistHash' => wfConfig::get('tldlistHash', '')));
|
@@ -265,7 +266,12 @@ class wordfence {
|
|
265 |
}
|
266 |
|
267 |
if (isset($keyData['_keyNoLongerValid']) && $keyData['_keyNoLongerValid'] == 1) {
|
268 |
-
|
|
|
|
|
|
|
|
|
|
|
269 |
}
|
270 |
|
271 |
wfConfig::set('keyType', $keyType);
|
@@ -1051,6 +1057,20 @@ SQL
|
|
1051 |
foreach ($tables as $t) {
|
1052 |
$schema->drop($t);
|
1053 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1054 |
|
1055 |
//---- enable legacy 2fa if applicable
|
1056 |
if (wfConfig::get('isPaid') && (wfCredentialsController::hasOld2FARecords() || version_compare(phpversion(), '5.3', '<'))) {
|
@@ -1745,7 +1765,13 @@ SQL
|
|
1745 |
}
|
1746 |
|
1747 |
if ($user === false && wfConfig::get('loginSec_maskLoginErrors')) {
|
1748 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1749 |
exit;
|
1750 |
}
|
1751 |
|
@@ -1757,7 +1783,11 @@ SQL
|
|
1757 |
), $alertCallback);
|
1758 |
|
1759 |
}
|
1760 |
-
|
|
|
|
|
|
|
|
|
1761 |
$tKey = self::getForgotPasswordFailureCountTransient($IP);
|
1762 |
$forgotAttempts = get_transient($tKey);
|
1763 |
if($forgotAttempts){
|
@@ -4977,6 +5007,21 @@ HTACCESS;
|
|
4977 |
wfConfig::set('alertEmails', $email);
|
4978 |
return array('ok' => 1, 'email' => $email);
|
4979 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4980 |
public static function ajax_bulkOperation_callback() {
|
4981 |
$op = sanitize_text_field($_POST['op']);
|
4982 |
if ($op == 'del' || $op == 'repair') {
|
@@ -4990,12 +5035,9 @@ HTACCESS;
|
|
4990 |
foreach ($issues['new'] as $i) {
|
4991 |
if ($op == 'del' && @$i['data']['canDelete']) {
|
4992 |
$file = $i['data']['file'];
|
4993 |
-
$localFile =
|
4994 |
-
$localFile
|
4995 |
-
if (strpos($localFile, ABSPATH) !== 0) {
|
4996 |
continue;
|
4997 |
-
}
|
4998 |
-
|
4999 |
if ($localFile === ABSPATH . 'wp-config.php') {
|
5000 |
$errors[] = esc_html__('Deleting an infected wp-config.php file must be done outside of Wordfence. The wp-config.php file contains your database credentials, which you will need to restore normal site operations. Your site will NOT function once the wp-config.php file has been deleted.', 'wordfence');
|
5001 |
}
|
@@ -5011,12 +5053,9 @@ HTACCESS;
|
|
5011 |
}
|
5012 |
else if ($op == 'repair' && @$i['data']['canFix']) {
|
5013 |
$file = $i['data']['file'];
|
5014 |
-
$localFile =
|
5015 |
-
$localFile
|
5016 |
-
if (strpos($localFile, ABSPATH) !== 0) {
|
5017 |
continue;
|
5018 |
-
}
|
5019 |
-
|
5020 |
$result = array();
|
5021 |
if (isset($i['data']) && is_array($i['data']) && isset($i['data']['file']) && isset($i['data']['cType']) && ( //Basics
|
5022 |
$i['data']['cType'] == 'core' || //Core file
|
@@ -5115,12 +5154,11 @@ HTACCESS;
|
|
5115 |
return array('errorMsg' => __('Could not delete file because that issue does not appear to be a file related issue.', 'wordfence'));
|
5116 |
}
|
5117 |
$file = $issue['data']['file'];
|
5118 |
-
$localFile =
|
5119 |
-
$localFile
|
5120 |
-
if(strpos($localFile, ABSPATH) !== 0){
|
5121 |
return array('errorMsg' => __('An invalid file was requested for deletion.', 'wordfence'));
|
5122 |
}
|
5123 |
-
if ($
|
5124 |
return array(
|
5125 |
'errorMsg' => __('Deleting an infected wp-config.php file must be done outside of Wordfence. The wp-config.php file contains your database credentials, which you will need to restore normal site operations. Your site will NOT function once the wp-config.php file has been deleted.', 'wordfence')
|
5126 |
);
|
@@ -5265,7 +5303,12 @@ HTACCESS;
|
|
5265 |
if(preg_match('/\.\./', $file)){
|
5266 |
return array('errorMsg' => __("An invalid file was specified for repair.", 'wordfence'));
|
5267 |
}
|
5268 |
-
|
|
|
|
|
|
|
|
|
|
|
5269 |
if ($wp_filesystem->put_contents($localFile, $result['fileContent'])) {
|
5270 |
$wfIssues->updateIssue($issueID, 'delete');
|
5271 |
$counts = $wfIssues->getIssueCounts();
|
@@ -5643,6 +5686,19 @@ HTML;
|
|
5643 |
return ($a['ctime'] < $b['ctime']) ? -1 : 1;
|
5644 |
}
|
5645 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5646 |
public static function wfFunc_viewOption() {
|
5647 |
/** @var wpdb $wpdb */
|
5648 |
global $wpdb;
|
@@ -5662,7 +5718,9 @@ HTML;
|
|
5662 |
_e("File access blocked. (WORDFENCE_DISABLE_FILE_VIEWER is true)", 'wordfence');
|
5663 |
exit();
|
5664 |
}
|
5665 |
-
$localFile =
|
|
|
|
|
5666 |
if(strpos($localFile, '..') !== false){
|
5667 |
_e("Invalid file requested. (Relative paths not allowed)", 'wordfence');
|
5668 |
exit();
|
@@ -5696,6 +5754,7 @@ HTML;
|
|
5696 |
require(dirname(__FILE__) . '/wfViewResult.php');
|
5697 |
exit(0);
|
5698 |
}
|
|
|
5699 |
public static function wfFunc_diff(){
|
5700 |
wfUtils::doNotCache();
|
5701 |
if (WORDFENCE_DISABLE_FILE_VIEWER) {
|
@@ -5716,8 +5775,19 @@ HTML;
|
|
5716 |
exit(0);
|
5717 |
}
|
5718 |
|
5719 |
-
$localFile =
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5720 |
$localContents = file_get_contents($localFile);
|
|
|
|
|
|
|
|
|
5721 |
if($localContents == $result['fileContent']){
|
5722 |
$diffResult = '';
|
5723 |
} else {
|
@@ -5740,7 +5810,9 @@ HTML;
|
|
5740 |
esc_html_e("File access blocked. (WORDFENCE_DISABLE_FILE_VIEWER is true)", 'wordfence');
|
5741 |
exit();
|
5742 |
}
|
5743 |
-
$localFile =
|
|
|
|
|
5744 |
if (strpos($localFile, '..') !== false) {
|
5745 |
esc_html_e("Invalid file requested. (Relative paths not allowed)", 'wordfence');
|
5746 |
exit();
|
@@ -6621,8 +6693,8 @@ HTML;
|
|
6621 |
}
|
6622 |
|
6623 |
public static function admin_menus_80() {
|
6624 |
-
if (wfCentral::isSupported()) {
|
6625 |
-
add_submenu_page('', __('Wordfence Central', 'wordfence'), __('Wordfence Central', 'wordfence'), 'activate_plugins', 'WordfenceCentral', 'wordfence::menu_wordfence_central');
|
6626 |
}
|
6627 |
}
|
6628 |
|
@@ -6648,6 +6720,10 @@ HTML;
|
|
6648 |
add_submenu_page("Wordfence", $message, "<strong id=\"wfMenuCallout\" style=\"color: #FCB214;\">" . $message . "</strong>", "activate_plugins", $slug, 'wordfence::_menu_noop');
|
6649 |
add_filter('clean_url', 'wordfence::_patchWordfenceSubmenuCallout', 10, 3);
|
6650 |
}
|
|
|
|
|
|
|
|
|
6651 |
|
6652 |
public static function _patchWordfenceSubmenuCallout($url, $original_url, $_context){
|
6653 |
if (preg_match('/(?:WordfenceUpgradeTo(Premium|Care|Response))$/i', $url, $matches)) {
|
@@ -7091,7 +7167,7 @@ HTML
|
|
7091 |
public static function alert($subject, $alertMsg, $IP) {
|
7092 |
wfConfig::inc('totalAlertsSent');
|
7093 |
$emails = wfConfig::getAlertEmails();
|
7094 |
-
if (sizeof($emails) < 1) { return; }
|
7095 |
|
7096 |
$IPMsg = "";
|
7097 |
if ($IP) {
|
@@ -7139,7 +7215,7 @@ HTML
|
|
7139 |
$totalSent += isset($sendArr[$i]) ? $sendArr[$i] : 0;
|
7140 |
}
|
7141 |
if($totalSent >= $sendMax){
|
7142 |
-
return;
|
7143 |
}
|
7144 |
$sendArr[$minuteTime] = isset($sendArr[$minuteTime]) ? $sendArr[$minuteTime] + 1 : 1;
|
7145 |
wfConfig::set_ser('alertFreqTrack', $sendArr);
|
@@ -7151,7 +7227,7 @@ HTML
|
|
7151 |
$lastHashDat = explode(':', $lastHash); //[time, hash]
|
7152 |
if(time() - $lastHashDat[0] < 3600){
|
7153 |
if($lastHashDat[1] == $hash){
|
7154 |
-
return; //Don't send because this email is identical to the previous email which was sent within the last hour.
|
7155 |
}
|
7156 |
}
|
7157 |
}
|
@@ -7160,6 +7236,7 @@ HTML
|
|
7160 |
$uniqueContent = $content . "\n\n" . sprintf(/* translators: WordPress admin panel URL. */ __('No longer an administrator for this site? Click here to stop receiving security alerts: %s', 'wordfence'), wfUtils::getSiteBaseURL() . '?_wfsf=removeAlertEmail&jwt=' . wfUtils::generateJWT(array('email' => $email)));
|
7161 |
wp_mail($email, $subject, $uniqueContent);
|
7162 |
}
|
|
|
7163 |
}
|
7164 |
public static function getLog(){
|
7165 |
if(! self::$wfLog){
|
@@ -9343,6 +9420,10 @@ if (file_exists(__DIR__.%1$s)) {
|
|
9343 |
$hasRun = true;
|
9344 |
add_action('shutdown', 'wfCentral::requestConfigurationSync');
|
9345 |
}
|
|
|
|
|
|
|
|
|
9346 |
}
|
9347 |
|
9348 |
|
191 |
global $wpdb;
|
192 |
$version = $wpdb->get_var("SELECT VERSION()");
|
193 |
wfConfig::set('dbVersion', $version);
|
194 |
+
|
195 |
+
$apiKey = wfConfig::get('apiKey');
|
196 |
+
$api = new wfAPI($apiKey, wfUtils::getWPVersion());
|
197 |
try {
|
198 |
$keyType = wfLicense::KEY_TYPE_FREE;
|
199 |
$keyData = $api->call('ping_api_key', array(), array('supportHash' => wfConfig::get('supportHash', ''), 'whitelistHash' => wfConfig::get('whitelistHash', ''), 'tldlistHash' => wfConfig::get('tldlistHash', '')));
|
266 |
}
|
267 |
|
268 |
if (isset($keyData['_keyNoLongerValid']) && $keyData['_keyNoLongerValid'] == 1) {
|
269 |
+
if (wfConfig::get('keyDeletedNotice') !== $apiKey) {
|
270 |
+
$keyDeletedNoticeSent = self::alert(__("The Wordfence Premium License in use on this site has been removed from your account.", 'wordfence'), __("The license you were using has been removed from your account. Please reach out to billing@wordfence.com or create a Premium support case at https://support.wordfence.com/support/tickets for more information. Our staff is happy to help.", 'wordfence'), false);
|
271 |
+
if ($keyDeletedNoticeSent) {
|
272 |
+
wfConfig::set('keyDeletedNotice', $apiKey);
|
273 |
+
}
|
274 |
+
}
|
275 |
}
|
276 |
|
277 |
wfConfig::set('keyType', $keyType);
|
1057 |
foreach ($tables as $t) {
|
1058 |
$schema->drop($t);
|
1059 |
}
|
1060 |
+
|
1061 |
+
//7.5.10
|
1062 |
+
$knownFilesTable = wfDB::networkTable('wfKnownFileList');
|
1063 |
+
$wordpressPathColumn = $wpdb->get_row($wpdb->prepare("SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = %s AND COLUMN_NAME = 'wordpress_path'", $knownFilesTable));
|
1064 |
+
if ($wordpressPathColumn === null) {
|
1065 |
+
$wpdb->query("DELETE FROM `{$knownFilesTable}`");
|
1066 |
+
$wpdb->query("ALTER TABLE `{$knownFilesTable}` ADD COLUMN wordpress_path TEXT NOT NULL");
|
1067 |
+
}
|
1068 |
+
|
1069 |
+
$realPathColumn = $wpdb->get_row($wpdb->prepare("SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = %s AND COLUMN_NAME = 'real_path'", $fileModsTable));
|
1070 |
+
if ($realPathColumn === null) {
|
1071 |
+
$wpdb->query("DELETE FROM `{$fileModsTable}`");
|
1072 |
+
$wpdb->query("ALTER TABLE `{$fileModsTable}` ADD COLUMN real_path TEXT NOT NULL AFTER filename");
|
1073 |
+
}
|
1074 |
|
1075 |
//---- enable legacy 2fa if applicable
|
1076 |
if (wfConfig::get('isPaid') && (wfCredentialsController::hasOld2FARecords() || version_compare(phpversion(), '5.3', '<'))) {
|
1765 |
}
|
1766 |
|
1767 |
if ($user === false && wfConfig::get('loginSec_maskLoginErrors')) {
|
1768 |
+
if (self::hasWoocommerce() && isset($_POST['wc_reset_password'], $_POST['user_login'])) {
|
1769 |
+
$redirectUrl = add_query_arg('reset-link-sent', 'true', wc_get_account_endpoint_url('lost-password'));
|
1770 |
+
}
|
1771 |
+
else {
|
1772 |
+
$redirectUrl = !empty($_REQUEST['redirect_to']) ? $_REQUEST['redirect_to'] : 'wp-login.php?checkemail=confirm';
|
1773 |
+
}
|
1774 |
+
wp_safe_redirect($redirectUrl);
|
1775 |
exit;
|
1776 |
}
|
1777 |
|
1783 |
), $alertCallback);
|
1784 |
|
1785 |
}
|
1786 |
+
|
1787 |
+
// do not count password reset attempts if there is a user logged in with the edit_users capability
|
1788 |
+
// because they're probably using the "send password reset" feature in the WP admin and therefore we shouldn't
|
1789 |
+
// be locking them out!
|
1790 |
+
if(wfConfig::get('loginSecurityEnabled') && !current_user_can( 'edit_users' ) ){
|
1791 |
$tKey = self::getForgotPasswordFailureCountTransient($IP);
|
1792 |
$forgotAttempts = get_transient($tKey);
|
1793 |
if($forgotAttempts){
|
5007 |
wfConfig::set('alertEmails', $email);
|
5008 |
return array('ok' => 1, 'email' => $email);
|
5009 |
}
|
5010 |
+
private static function resolveLocalFile($issue) {
|
5011 |
+
$data = $issue['data'];
|
5012 |
+
if (array_key_exists('realFile', $data)) {
|
5013 |
+
return $data['realFile'];
|
5014 |
+
}
|
5015 |
+
else {
|
5016 |
+
$file = $issue['data']['file'];
|
5017 |
+
$localFile = ABSPATH . '/' . $file;
|
5018 |
+
$localFile = realpath($localFile);
|
5019 |
+
if (strpos($localFile, ABSPATH) !== 0) {
|
5020 |
+
return null;
|
5021 |
+
}
|
5022 |
+
return $localFile;
|
5023 |
+
}
|
5024 |
+
}
|
5025 |
public static function ajax_bulkOperation_callback() {
|
5026 |
$op = sanitize_text_field($_POST['op']);
|
5027 |
if ($op == 'del' || $op == 'repair') {
|
5035 |
foreach ($issues['new'] as $i) {
|
5036 |
if ($op == 'del' && @$i['data']['canDelete']) {
|
5037 |
$file = $i['data']['file'];
|
5038 |
+
$localFile = self::resolveLocalFile($i);
|
5039 |
+
if ($localFile === null)
|
|
|
5040 |
continue;
|
|
|
|
|
5041 |
if ($localFile === ABSPATH . 'wp-config.php') {
|
5042 |
$errors[] = esc_html__('Deleting an infected wp-config.php file must be done outside of Wordfence. The wp-config.php file contains your database credentials, which you will need to restore normal site operations. Your site will NOT function once the wp-config.php file has been deleted.', 'wordfence');
|
5043 |
}
|
5053 |
}
|
5054 |
else if ($op == 'repair' && @$i['data']['canFix']) {
|
5055 |
$file = $i['data']['file'];
|
5056 |
+
$localFile = self::resolveLocalFile($i);
|
5057 |
+
if ($localFile === null)
|
|
|
5058 |
continue;
|
|
|
|
|
5059 |
$result = array();
|
5060 |
if (isset($i['data']) && is_array($i['data']) && isset($i['data']['file']) && isset($i['data']['cType']) && ( //Basics
|
5061 |
$i['data']['cType'] == 'core' || //Core file
|
5154 |
return array('errorMsg' => __('Could not delete file because that issue does not appear to be a file related issue.', 'wordfence'));
|
5155 |
}
|
5156 |
$file = $issue['data']['file'];
|
5157 |
+
$localFile = self::resolveLocalFile($issue);
|
5158 |
+
if($localFile === null){
|
|
|
5159 |
return array('errorMsg' => __('An invalid file was requested for deletion.', 'wordfence'));
|
5160 |
}
|
5161 |
+
if ($file === 'wp-config.php') {
|
5162 |
return array(
|
5163 |
'errorMsg' => __('Deleting an infected wp-config.php file must be done outside of Wordfence. The wp-config.php file contains your database credentials, which you will need to restore normal site operations. Your site will NOT function once the wp-config.php file has been deleted.', 'wordfence')
|
5164 |
);
|
5303 |
if(preg_match('/\.\./', $file)){
|
5304 |
return array('errorMsg' => __("An invalid file was specified for repair.", 'wordfence'));
|
5305 |
}
|
5306 |
+
if (array_key_exists('realFile', $dat)) {
|
5307 |
+
$localFile = $dat['realFile'];
|
5308 |
+
}
|
5309 |
+
else {
|
5310 |
+
$localFile = rtrim(ABSPATH, '/') . '/' . preg_replace('/^[\.\/]+/', '', $file);
|
5311 |
+
}
|
5312 |
if ($wp_filesystem->put_contents($localFile, $result['fileContent'])) {
|
5313 |
$wfIssues->updateIssue($issueID, 'delete');
|
5314 |
$counts = $wfIssues->getIssueCounts();
|
5686 |
return ($a['ctime'] < $b['ctime']) ? -1 : 1;
|
5687 |
}
|
5688 |
|
5689 |
+
private static function checkRealFileParameters() {
|
5690 |
+
if (array_key_exists('realFile', $_GET)) {
|
5691 |
+
$realFile = stripslashes($_GET['realFile']);
|
5692 |
+
$token = array_key_exists('realFileToken', $_GET) ? $_GET['realFileToken'] : '';
|
5693 |
+
if (!wfIssues::verifyRealFileToken($token, $realFile)) {
|
5694 |
+
esc_html_e('This link has expired. Refresh the scan results page and try again.', 'wordfence');
|
5695 |
+
exit(0);
|
5696 |
+
}
|
5697 |
+
return $realFile;
|
5698 |
+
}
|
5699 |
+
return null;
|
5700 |
+
}
|
5701 |
+
|
5702 |
public static function wfFunc_viewOption() {
|
5703 |
/** @var wpdb $wpdb */
|
5704 |
global $wpdb;
|
5718 |
_e("File access blocked. (WORDFENCE_DISABLE_FILE_VIEWER is true)", 'wordfence');
|
5719 |
exit();
|
5720 |
}
|
5721 |
+
$localFile = self::checkRealFileParameters();
|
5722 |
+
if ($localFile === null)
|
5723 |
+
$localFile = ABSPATH . preg_replace('/^(?:\.\.|[\/]+)/', '', sanitize_text_field($_GET['file']));
|
5724 |
if(strpos($localFile, '..') !== false){
|
5725 |
_e("Invalid file requested. (Relative paths not allowed)", 'wordfence');
|
5726 |
exit();
|
5754 |
require(dirname(__FILE__) . '/wfViewResult.php');
|
5755 |
exit(0);
|
5756 |
}
|
5757 |
+
|
5758 |
public static function wfFunc_diff(){
|
5759 |
wfUtils::doNotCache();
|
5760 |
if (WORDFENCE_DISABLE_FILE_VIEWER) {
|
5775 |
exit(0);
|
5776 |
}
|
5777 |
|
5778 |
+
$localFile = self::checkRealFileParameters();
|
5779 |
+
if ($localFile === null) {
|
5780 |
+
$localFile = realpath(ABSPATH . '/' . preg_replace('/^[\.\/]+/', '', $_GET['file']));
|
5781 |
+
}
|
5782 |
+
if (empty($localFile)) {
|
5783 |
+
esc_html_e('Empty file path provided', 'wordfence');
|
5784 |
+
exit(0);
|
5785 |
+
}
|
5786 |
$localContents = file_get_contents($localFile);
|
5787 |
+
if ($localContents === false) {
|
5788 |
+
esc_html_e('Unable to read file contents', 'wordfence');
|
5789 |
+
exit(0);
|
5790 |
+
}
|
5791 |
if($localContents == $result['fileContent']){
|
5792 |
$diffResult = '';
|
5793 |
} else {
|
5810 |
esc_html_e("File access blocked. (WORDFENCE_DISABLE_FILE_VIEWER is true)", 'wordfence');
|
5811 |
exit();
|
5812 |
}
|
5813 |
+
$localFile = self::checkRealFileParameters();
|
5814 |
+
if ($localFile === null)
|
5815 |
+
$localFile = ABSPATH . preg_replace('/^(?:\.\.|[\/]+)/', '', sanitize_text_field($_GET['file']));
|
5816 |
if (strpos($localFile, '..') !== false) {
|
5817 |
esc_html_e("Invalid file requested. (Relative paths not allowed)", 'wordfence');
|
5818 |
exit();
|
6693 |
}
|
6694 |
|
6695 |
public static function admin_menus_80() {
|
6696 |
+
if (wfCentral::isSupported() && self::isPage('WordfenceCentral')) {
|
6697 |
+
add_submenu_page('Wordfence', __('Wordfence Central', 'wordfence'), __('Wordfence Central', 'wordfence'), 'activate_plugins', 'WordfenceCentral', 'wordfence::menu_wordfence_central');
|
6698 |
}
|
6699 |
}
|
6700 |
|
6720 |
add_submenu_page("Wordfence", $message, "<strong id=\"wfMenuCallout\" style=\"color: #FCB214;\">" . $message . "</strong>", "activate_plugins", $slug, 'wordfence::_menu_noop');
|
6721 |
add_filter('clean_url', 'wordfence::_patchWordfenceSubmenuCallout', 10, 3);
|
6722 |
}
|
6723 |
+
|
6724 |
+
private static function isPage($page) {
|
6725 |
+
return array_key_exists('page', $_GET) && $_GET['page'] === $page;
|
6726 |
+
}
|
6727 |
|
6728 |
public static function _patchWordfenceSubmenuCallout($url, $original_url, $_context){
|
6729 |
if (preg_match('/(?:WordfenceUpgradeTo(Premium|Care|Response))$/i', $url, $matches)) {
|
7167 |
public static function alert($subject, $alertMsg, $IP) {
|
7168 |
wfConfig::inc('totalAlertsSent');
|
7169 |
$emails = wfConfig::getAlertEmails();
|
7170 |
+
if (sizeof($emails) < 1) { return false; }
|
7171 |
|
7172 |
$IPMsg = "";
|
7173 |
if ($IP) {
|
7215 |
$totalSent += isset($sendArr[$i]) ? $sendArr[$i] : 0;
|
7216 |
}
|
7217 |
if($totalSent >= $sendMax){
|
7218 |
+
return false;
|
7219 |
}
|
7220 |
$sendArr[$minuteTime] = isset($sendArr[$minuteTime]) ? $sendArr[$minuteTime] + 1 : 1;
|
7221 |
wfConfig::set_ser('alertFreqTrack', $sendArr);
|
7227 |
$lastHashDat = explode(':', $lastHash); //[time, hash]
|
7228 |
if(time() - $lastHashDat[0] < 3600){
|
7229 |
if($lastHashDat[1] == $hash){
|
7230 |
+
return false; //Don't send because this email is identical to the previous email which was sent within the last hour.
|
7231 |
}
|
7232 |
}
|
7233 |
}
|
7236 |
$uniqueContent = $content . "\n\n" . sprintf(/* translators: WordPress admin panel URL. */ __('No longer an administrator for this site? Click here to stop receiving security alerts: %s', 'wordfence'), wfUtils::getSiteBaseURL() . '?_wfsf=removeAlertEmail&jwt=' . wfUtils::generateJWT(array('email' => $email)));
|
7237 |
wp_mail($email, $subject, $uniqueContent);
|
7238 |
}
|
7239 |
+
return true;
|
7240 |
}
|
7241 |
public static function getLog(){
|
7242 |
if(! self::$wfLog){
|
9420 |
$hasRun = true;
|
9421 |
add_action('shutdown', 'wfCentral::requestConfigurationSync');
|
9422 |
}
|
9423 |
+
|
9424 |
+
public static function hasWoocommerce() {
|
9425 |
+
return class_exists('woocommerce');
|
9426 |
+
}
|
9427 |
}
|
9428 |
|
9429 |
|
lib/wordfenceHash.php
CHANGED
@@ -6,7 +6,6 @@ class wordfenceHash {
|
|
6 |
private $startTime = false;
|
7 |
|
8 |
//Begin serialized vars
|
9 |
-
public $striplen = 0;
|
10 |
public $totalFiles = 0;
|
11 |
public $totalDirs = 0;
|
12 |
public $totalData = 0; //To do a sanity check, don't use 'du' because it gets sparse files wrong and reports blocks used on disk. Use : find . -type f -ls | awk '{total += $7} END {print total}'
|
@@ -22,8 +21,7 @@ class wordfenceHash {
|
|
22 |
private $haveIssues = array();
|
23 |
private $status = array();
|
24 |
private $possibleMalware = array();
|
25 |
-
private $
|
26 |
-
private $only = false;
|
27 |
private $totalForks = 0;
|
28 |
private $alertedOnUnknownWordPressVersion = false;
|
29 |
private $foldersEntered = array();
|
@@ -33,9 +31,9 @@ class wordfenceHash {
|
|
33 |
private $indexSize = 0;
|
34 |
private $currentIndex = 0;
|
35 |
private $coalescingIssues = array();
|
|
|
36 |
|
37 |
/**
|
38 |
-
* @param string $striplen
|
39 |
* @param string $path
|
40 |
* @param array $only
|
41 |
* @param array $themes
|
@@ -43,10 +41,8 @@ class wordfenceHash {
|
|
43 |
* @param wfScanEngine $engine
|
44 |
* @throws Exception
|
45 |
*/
|
46 |
-
public function __construct($
|
47 |
-
$this->
|
48 |
-
$this->path = $path;
|
49 |
-
$this->only = $only;
|
50 |
$this->engine = $engine;
|
51 |
|
52 |
$this->startTime = microtime(true);
|
@@ -131,12 +127,6 @@ class wordfenceHash {
|
|
131 |
wfIssues::statusEnd($coreHashesStatus, wfIssues::STATUS_SUCCESS);
|
132 |
}
|
133 |
|
134 |
-
if($this->path[strlen($this->path) - 1] != '/'){
|
135 |
-
$this->path .= '/';
|
136 |
-
}
|
137 |
-
if(! is_readable($path)){
|
138 |
-
throw new Exception(sprintf(__("Could not read directory %s to do scan.", 'wordfence'), $this->path));
|
139 |
-
}
|
140 |
$this->haveIssues = array(
|
141 |
'core' => wfIssues::STATUS_SECURE,
|
142 |
'coreUnknown' => wfIssues::STATUS_SECURE,
|
@@ -171,7 +161,7 @@ class wordfenceHash {
|
|
171 |
}
|
172 |
}
|
173 |
public function __sleep(){
|
174 |
-
return array('
|
175 |
}
|
176 |
public function __wakeup(){
|
177 |
$this->db = new wfDB();
|
@@ -193,30 +183,15 @@ class wordfenceHash {
|
|
193 |
public function getSuspectedFiles() {
|
194 |
return array_keys($this->suspectedFiles);
|
195 |
}
|
196 |
-
public function run($engine){
|
197 |
if($this->totalForks > 1000){
|
198 |
throw new Exception(sprintf(/* translators: File path. */ __("Wordfence file scanner detected a possible infinite loop. Exiting on file: %s", 'wordfence'), $this->stoppedOnFile));
|
199 |
}
|
200 |
$this->engine = $engine;
|
201 |
-
wordfence::status(4, 'info', __("Indexing files for scanning", 'wordfence'));
|
202 |
if (!$this->indexed) {
|
203 |
$start = microtime(true);
|
204 |
$indexedFiles = array();
|
205 |
-
|
206 |
-
if (count($this->only) > 0) {
|
207 |
-
$files = $this->only; //These are absolute paths
|
208 |
-
}
|
209 |
-
else { //This code path generally should not get hit
|
210 |
-
$rawFiles = scandir($this->path);
|
211 |
-
$files = array();
|
212 |
-
foreach ($rawFiles as $file) {
|
213 |
-
if ($file == '.' || $file == '..') { continue; }
|
214 |
-
$fullFile = rtrim($this->path, '/') . '/' . $file;
|
215 |
-
$files[] = $fullFile;
|
216 |
-
}
|
217 |
-
}
|
218 |
-
|
219 |
-
foreach ($files as $file) {
|
220 |
$this->_dirIndex($file, $indexedFiles);
|
221 |
}
|
222 |
$this->_serviceIndexQueue($indexedFiles, true);
|
@@ -227,7 +202,7 @@ class wordfenceHash {
|
|
227 |
wordfence::status(4, 'info', sprintf(/* translators: Time in seconds. */ __("Index time: %s", 'wordfence'), ($end - $start)));
|
228 |
}
|
229 |
|
230 |
-
$this->_checkForTimeout(
|
231 |
|
232 |
wordfence::status(4, 'info', __("Beginning file hashing", 'wordfence'));
|
233 |
while ($file = $this->_nextFile()) {
|
@@ -258,12 +233,13 @@ class wordfenceHash {
|
|
258 |
$added = $this->engine->addIssue(
|
259 |
'file',
|
260 |
wfIssues::SEVERITY_CRITICAL,
|
261 |
-
$
|
262 |
$md5,
|
263 |
sprintf(/* translators: File path. */ __('This file is suspected malware: %s', 'wordfence'), $file),
|
264 |
sprintf(/* translators: Malware name/title. */ __("This file's signature matches a known malware file. The title of the malware is '%s'. Immediately inspect this file using the 'View' option below and consider deleting it from your server.", 'wordfence'), $name),
|
265 |
array(
|
266 |
'file' => $file,
|
|
|
267 |
'cType' => 'unknown',
|
268 |
'canDiff' => false,
|
269 |
'canFix' => false,
|
@@ -279,30 +255,28 @@ class wordfenceHash {
|
|
279 |
if($this->malwareEnabled){ wfIssues::statusEnd($this->status['malware'], $this->haveIssues['malware']); $this->engine->scanController()->completeStage(wfScanner::STAGE_MALWARE_SCAN, $this->haveIssues['malware']); }
|
280 |
unset($this->knownFiles); $this->knownFiles = false;
|
281 |
}
|
282 |
-
private function _dirIndex($
|
283 |
-
|
|
|
|
|
284 |
return;
|
285 |
-
|
286 |
-
|
287 |
-
if (
|
288 |
-
|
289 |
-
$realPath = realpath($path);
|
290 |
-
if (!$this->stoppedOnFile && isset($this->foldersEntered[$realPath])) { //Not resuming and already entered this path
|
291 |
return;
|
292 |
}
|
293 |
|
294 |
-
$this->foldersEntered[$
|
295 |
|
296 |
$this->totalDirs++;
|
297 |
-
|
298 |
-
$
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
if ($
|
303 |
-
|
304 |
-
if (is_file($file)) {
|
305 |
-
$relativeFile = substr($file, $this->striplen);
|
306 |
if ($this->stoppedOnFile && $relativeFile != $this->stoppedOnFile) {
|
307 |
continue;
|
308 |
}
|
@@ -312,19 +286,17 @@ class wordfenceHash {
|
|
312 |
$this->suspectedFiles[$relativeFile] = 1;
|
313 |
}
|
314 |
|
315 |
-
$this->_checkForTimeout($
|
316 |
-
if ($this->_shouldHashFile($
|
317 |
-
$
|
318 |
-
if ($resolvedFile) {
|
319 |
-
$indexedFiles[] = substr($resolvedFile, $this->striplen);
|
320 |
-
}
|
321 |
}
|
322 |
else {
|
323 |
-
wordfence::status(4, 'info', sprintf(/* translators: File path. */ __("Skipping unneeded hash: %s", 'wordfence'), $
|
324 |
}
|
325 |
$this->_serviceIndexQueue($indexedFiles);
|
326 |
-
}
|
327 |
-
|
|
|
328 |
}
|
329 |
}
|
330 |
|
@@ -332,8 +304,8 @@ class wordfenceHash {
|
|
332 |
unset($this->foldersEntered[$realPath]);
|
333 |
}
|
334 |
else {
|
335 |
-
if (is_file($
|
336 |
-
$relativeFile =
|
337 |
if ($this->stoppedOnFile && $relativeFile != $this->stoppedOnFile) {
|
338 |
return;
|
339 |
}
|
@@ -343,33 +315,36 @@ class wordfenceHash {
|
|
343 |
$this->suspectedFiles[$relativeFile] = 1;
|
344 |
}
|
345 |
|
346 |
-
$this->_checkForTimeout($
|
347 |
-
if ($this->_shouldHashFile($
|
348 |
-
$indexedFiles[] =
|
349 |
}
|
350 |
else {
|
351 |
-
wordfence::status(4, 'info', sprintf(/* translators: File path. */ __("Skipping unneeded hash: %s", 'wordfence'), $
|
352 |
}
|
353 |
$this->_serviceIndexQueue($indexedFiles);
|
354 |
}
|
355 |
}
|
356 |
}
|
357 |
private function _serviceIndexQueue(&$indexedFiles, $final = false) {
|
358 |
-
$
|
359 |
if (count($indexedFiles) > 500) {
|
360 |
-
$
|
361 |
}
|
362 |
else if ($final) {
|
363 |
-
$
|
364 |
$indexedFiles = array();
|
365 |
}
|
366 |
|
367 |
-
|
368 |
-
|
369 |
-
|
|
|
|
|
|
|
370 |
global $wpdb;
|
371 |
$table_wfKnownFileList = wfDB::networkTable('wfKnownFileList');
|
372 |
-
$query = substr("INSERT INTO {$table_wfKnownFileList} (path) VALUES " . str_repeat("('%s'), ", count($
|
373 |
$wpdb->query($wpdb->prepare($query, $payload));
|
374 |
$this->indexSize += count($payload);
|
375 |
wordfence::status(2, 'info', sprintf(/* translators: Number of files. */ __("%d files indexed", 'wordfence'), $this->indexSize));
|
@@ -380,7 +355,13 @@ class wordfenceHash {
|
|
380 |
if (count($files) == 0) {
|
381 |
global $wpdb;
|
382 |
$table_wfKnownFileList = wfDB::networkTable('wfKnownFileList');
|
383 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
384 |
}
|
385 |
|
386 |
$file = null;
|
@@ -395,15 +376,15 @@ class wordfenceHash {
|
|
395 |
if ($file === null) {
|
396 |
return null;
|
397 |
}
|
398 |
-
return
|
399 |
}
|
400 |
-
private function _checkForTimeout($
|
401 |
-
$
|
402 |
-
if ((
|
403 |
if ($indexQueue !== false) {
|
404 |
$this->_serviceIndexQueue($indexQueue, true);
|
405 |
-
$this->stoppedOnFile = $
|
406 |
-
wordfence::status(4, 'info', sprintf(/* translators: File path. */ __("Forking during indexing: %s", 'wordfence'), $
|
407 |
}
|
408 |
else {
|
409 |
wordfence::status(4, 'info', sprintf(/* translators: PHP max execution time. */ __("Calling fork() from wordfenceHash with maxExecTime: %s", 'wordfence'), $this->engine->maxExecTime));
|
@@ -412,25 +393,24 @@ class wordfenceHash {
|
|
412 |
//exits
|
413 |
}
|
414 |
|
415 |
-
if ($this->stoppedOnFile && $
|
416 |
return;
|
417 |
}
|
418 |
-
else if ($this->stoppedOnFile && $
|
419 |
$this->stoppedOnFile = false; //Continue indexing
|
420 |
}
|
421 |
}
|
422 |
-
private function
|
423 |
-
$file = substr($path, $this->striplen);
|
424 |
$excludePatterns = wordfenceScanner::getExcludeFilePattern(wordfenceScanner::EXCLUSION_PATTERNS_USER);
|
425 |
if ($excludePatterns) {
|
426 |
foreach ($excludePatterns as $pattern) {
|
427 |
-
if (preg_match($pattern, $file)) {
|
428 |
return false;
|
429 |
}
|
430 |
}
|
431 |
}
|
432 |
|
433 |
-
$realPath =
|
434 |
if ($realPath === '/') {
|
435 |
return false;
|
436 |
}
|
@@ -440,61 +420,63 @@ class wordfenceHash {
|
|
440 |
|
441 |
return true;
|
442 |
}
|
443 |
-
private function processFile($
|
444 |
-
$
|
445 |
-
|
446 |
-
if (wfUtils::fileTooBig($
|
447 |
-
wordfence::status(4, 'info', sprintf(/* translators: File path. */ __("Skipping file larger than max size: %s", 'wordfence'), $
|
448 |
return;
|
449 |
}
|
450 |
|
451 |
if (function_exists('memory_get_usage')) {
|
452 |
-
wordfence::status(4, 'info', sprintf(/* translators: 1. File path. 2. Memory in bytes. */ __('Scanning: %1$s (Mem:%2$s)', 'wordfence'), $
|
453 |
}
|
454 |
else {
|
455 |
-
wordfence::status(4, 'info', sprintf(/* translators: File path. */ __("Scanning: %s", 'wordfence'), $
|
456 |
}
|
457 |
|
458 |
-
wfUtils::beginProcessingFile($
|
459 |
-
$wfHash = self::hashFile($
|
460 |
$this->engine->scanController()->incrementSummaryItem(wfScanner::SUMMARY_SCANNED_FILES);
|
461 |
if ($wfHash) {
|
462 |
$md5 = strtoupper($wfHash[0]);
|
463 |
$shac = strtoupper($wfHash[1]);
|
464 |
$knownFile = 0;
|
465 |
if($this->malwareEnabled && $this->isMalwarePrefix($md5)){
|
466 |
-
$this->possibleMalware[] = array($
|
|
|
467 |
}
|
468 |
|
469 |
$knownFileExclude = wordfenceScanner::getExcludeFilePattern(wordfenceScanner::EXCLUSION_PATTERNS_KNOWN_FILES);
|
470 |
$allowKnownFileScan = true;
|
471 |
if ($knownFileExclude) {
|
472 |
foreach ($knownFileExclude as $pattern) {
|
473 |
-
if (preg_match($pattern, $
|
474 |
$allowKnownFileScan = false;
|
475 |
}
|
476 |
}
|
477 |
}
|
478 |
|
479 |
if ($allowKnownFileScan) {
|
480 |
-
if (isset($this->knownFiles['core'][$
|
481 |
-
if (strtoupper($this->knownFiles['core'][$
|
482 |
$knownFile = 1;
|
483 |
}
|
484 |
else {
|
485 |
if ($this->coreEnabled) {
|
486 |
-
$localFile = ABSPATH . '/' . preg_replace('/^[\.\/]+/', '', $
|
487 |
$fileContents = @file_get_contents($localFile);
|
488 |
if ($fileContents && (!preg_match('/<\?' . 'php[\r\n\s\t]*\/\/[\r\n\s\t]*Silence is golden\.[\r\n\s\t]*(?:\?>)?[\r\n\s\t]*$/s', $fileContents))) {
|
489 |
$this->engine->addPendingIssue(
|
490 |
'knownfile',
|
491 |
wfIssues::SEVERITY_HIGH,
|
492 |
-
'coreModified' . $
|
493 |
-
'coreModified' . $
|
494 |
-
sprintf(/* translators: File path. */ __('WordPress core file modified: %s', 'wordfence'), $
|
495 |
__("This WordPress core file has been modified and differs from the original file distributed with this version of WordPress.", 'wordfence'),
|
496 |
array(
|
497 |
-
'file' => $
|
|
|
498 |
'cType' => 'core',
|
499 |
'canDiff' => true,
|
500 |
'canFix' => true,
|
@@ -506,28 +488,28 @@ class wordfenceHash {
|
|
506 |
}
|
507 |
}
|
508 |
}
|
509 |
-
else if (isset($this->knownFiles['plugins'][$
|
510 |
-
if (in_array($shac, $this->knownFiles['plugins'][$
|
511 |
$knownFile = 1;
|
512 |
}
|
513 |
else {
|
514 |
if ($this->pluginsEnabled) {
|
515 |
$options = $this->engine->scanController()->scanOptions();
|
516 |
$shouldGenerateIssue = true;
|
517 |
-
if (!$options['scansEnabled_highSense'] && preg_match('~/readme\.(?:txt|md)$~i', $
|
518 |
$shouldGenerateIssue = false;
|
519 |
}
|
520 |
|
521 |
if ($shouldGenerateIssue) {
|
522 |
-
$itemName = $this->knownFiles['plugins'][$
|
523 |
-
$itemVersion = $this->knownFiles['plugins'][$
|
524 |
-
$cKey = $this->knownFiles['plugins'][$
|
525 |
$this->engine->addPendingIssue(
|
526 |
'knownfile',
|
527 |
wfIssues::SEVERITY_MEDIUM,
|
528 |
-
'modifiedplugin' . $
|
529 |
-
'modifiedplugin' . $
|
530 |
-
sprintf(/* translators: File path. */ __('Modified plugin file: %s', 'wordfence'), $
|
531 |
sprintf(
|
532 |
/* translators: 1. Plugin name. 2. Plugin version. 3. Support URL. */
|
533 |
__('This file belongs to plugin "%1$s" version "%2$s" and has been modified from the file that is distributed by WordPress.org for this version. Please use the link to see how the file has changed. If you have modified this file yourself, you can safely ignore this warning. If you see a lot of changed files in a plugin that have been made by the author, then try uninstalling and reinstalling the plugin to force an upgrade. Doing this is a workaround for plugin authors who don\'t manage their code correctly. <a href="%3$s" target="_blank" rel="noopener noreferrer">Learn More<span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>', 'wordfence'),
|
@@ -536,7 +518,8 @@ class wordfenceHash {
|
|
536 |
wfSupportController::esc_supportURL(wfSupportController::ITEM_SCAN_RESULT_MODIFIED_PLUGIN)
|
537 |
),
|
538 |
array(
|
539 |
-
'file' => $
|
|
|
540 |
'cType' => 'plugin',
|
541 |
'canDiff' => true,
|
542 |
'canFix' => true,
|
@@ -552,28 +535,28 @@ class wordfenceHash {
|
|
552 |
|
553 |
}
|
554 |
}
|
555 |
-
else if (isset($this->knownFiles['themes'][$
|
556 |
-
if (in_array($shac, $this->knownFiles['themes'][$
|
557 |
$knownFile = 1;
|
558 |
}
|
559 |
else {
|
560 |
if ($this->themesEnabled) {
|
561 |
$options = $this->engine->scanController()->scanOptions();
|
562 |
$shouldGenerateIssue = true;
|
563 |
-
if (!$options['scansEnabled_highSense'] && preg_match('~/readme\.(?:txt|md)$~i', $
|
564 |
$shouldGenerateIssue = false;
|
565 |
}
|
566 |
|
567 |
if ($shouldGenerateIssue) {
|
568 |
-
$itemName = $this->knownFiles['themes'][$
|
569 |
-
$itemVersion = $this->knownFiles['themes'][$
|
570 |
-
$cKey = $this->knownFiles['themes'][$
|
571 |
$this->engine->addPendingIssue(
|
572 |
'knownfile',
|
573 |
wfIssues::SEVERITY_MEDIUM,
|
574 |
-
'modifiedtheme' . $
|
575 |
-
'modifiedtheme' . $
|
576 |
-
sprintf(/* translators: File path. */ __('Modified theme file: %s', 'wordfence'), $
|
577 |
sprintf(
|
578 |
/* translators: 1. Plugin name. 2. Plugin version. 3. Support URL. */
|
579 |
__('This file belongs to theme "%1$s" version "%2$s" and has been modified from the original distribution. It is common for site owners to modify their theme files, so if you have modified this file yourself you can safely ignore this warning. <a href="%3$s" target="_blank" rel="noopener noreferrer">Learn More<span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>', 'wordfence'),
|
@@ -582,7 +565,8 @@ class wordfenceHash {
|
|
582 |
wfSupportController::esc_supportURL(wfSupportController::ITEM_SCAN_RESULT_MODIFIED_THEME)
|
583 |
),
|
584 |
array(
|
585 |
-
'file' => $
|
|
|
586 |
'cType' => 'theme',
|
587 |
'canDiff' => true,
|
588 |
'canFix' => true,
|
@@ -602,17 +586,18 @@ class wordfenceHash {
|
|
602 |
$restrictedWordPressFolders = array(ABSPATH . 'wp-admin/', ABSPATH . WPINC . '/');
|
603 |
$added = false;
|
604 |
foreach ($restrictedWordPressFolders as $path) {
|
605 |
-
if (strpos($
|
606 |
if ($this->isPreviousCoreFile($shac)) {
|
607 |
$added = $this->engine->addIssue(
|
608 |
'knownfile',
|
609 |
wfIssues::SEVERITY_LOW,
|
610 |
-
'coreUnknown' . $
|
611 |
-
'coreUnknown' . $
|
612 |
-
sprintf(/* translators: File path. */ __('Old WordPress core file not removed during update: %s', 'wordfence'), $
|
613 |
__('This file is in a WordPress core location but is from an older version of WordPress and not used with your current version. Hosting or permissions issues can cause these files to get left behind when WordPress is updated and they should be removed if possible.', 'wordfence'),
|
614 |
array(
|
615 |
-
'file' => $
|
|
|
616 |
'cType' => 'core',
|
617 |
'canDiff' => false,
|
618 |
'canFix' => false,
|
@@ -620,16 +605,17 @@ class wordfenceHash {
|
|
620 |
)
|
621 |
);
|
622 |
}
|
623 |
-
else if (preg_match('#/php\.ini$#', $
|
624 |
$this->engine->addPendingIssue(
|
625 |
'knownfile',
|
626 |
wfIssues::SEVERITY_HIGH,
|
627 |
-
'coreUnknown' . $
|
628 |
-
'coreUnknown' . $
|
629 |
-
sprintf(/* translators: File path. */ __('Unknown file in WordPress core: %s', 'wordfence'), $
|
630 |
__('This file is in a WordPress core location but is not distributed with this version of WordPress. This scan often includes files left over from a previous WordPress version, but it may also find files added by another plugin, files added by your host, or malicious files added by an attacker.', 'wordfence'),
|
631 |
array(
|
632 |
-
'file' => $
|
|
|
633 |
'cType' => 'core',
|
634 |
'canDiff' => false,
|
635 |
'canFix' => false,
|
@@ -644,12 +630,13 @@ class wordfenceHash {
|
|
644 |
$added = $this->engine->addIssue(
|
645 |
'knownfile',
|
646 |
wfIssues::SEVERITY_HIGH,
|
647 |
-
'coreUnknown' . $
|
648 |
-
'coreUnknown' . $
|
649 |
-
sprintf(/* translators: File path. */ __('Unknown file in WordPress core: %s', 'wordfence'), $
|
650 |
sprintf(/* translators: Support URL. */ __('This file is in a WordPress core location but is not distributed with this version of WordPress. This scan often includes files left over from a previous WordPress version, but it may also find files added by another plugin, files added by your host, or malicious files added by an attacker. <a href="%s" target="_blank" rel="noopener noreferrer">Learn More<span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>', 'wordfence'), wfSupportController::esc_supportURL(wfSupportController::ITEM_SCAN_RESULT_UNKNOWN_FILE_CORE)),
|
651 |
array(
|
652 |
-
'file' => $
|
|
|
653 |
'cType' => 'core',
|
654 |
'canDiff' => false,
|
655 |
'canFix' => false,
|
@@ -668,10 +655,10 @@ class wordfenceHash {
|
|
668 |
// we could split this into files whose path we recognize and file's whose path we recognize AND who have a valid sig.
|
669 |
// But because we want to scan files whose sig we don't recognize, regardless of known path or not, we only need one "knownFile" field.
|
670 |
$fileModsTable = wfDB::networkTable('wfFileMods');
|
671 |
-
$this->db->queryWrite("INSERT INTO {$fileModsTable} (filename, filenameMD5, knownFile, oldMD5, newMD5, SHAC) VALUES ('%s', UNHEX(MD5('%s')), %d, '', UNHEX('%s'), UNHEX('%s')) ON DUPLICATE KEY UPDATE newMD5 = UNHEX('%s'), SHAC = UNHEX('%s'), knownFile = %d", $
|
672 |
|
673 |
$this->totalFiles++;
|
674 |
-
$this->totalData += @filesize($
|
675 |
if($this->totalFiles % 100 === 0){
|
676 |
wordfence::status(2, 'info', sprintf(
|
677 |
/* translators: 1. Number of files. 2. Data in bytes. */
|
@@ -681,7 +668,7 @@ class wordfenceHash {
|
|
681 |
));
|
682 |
}
|
683 |
} else {
|
684 |
-
//wordfence::status(2, 'error', "Could not gen hash for file (probably because we don't have permission to access the file): $
|
685 |
}
|
686 |
wfUtils::endProcessingFile();
|
687 |
}
|
@@ -787,13 +774,13 @@ class wordfenceHash {
|
|
787 |
$shac = hash_final($sha256Context, false);
|
788 |
return array($md5, $shac);
|
789 |
}
|
790 |
-
private function _shouldHashFile($
|
791 |
-
$
|
792 |
|
793 |
//Core File, return true
|
794 |
-
if ((isset($this->knownFiles['core']) && isset($this->knownFiles['core'][$
|
795 |
-
(isset($this->knownFiles['plugins']) && isset($this->knownFiles['plugins'][$
|
796 |
-
(isset($this->knownFiles['themes']) && isset($this->knownFiles['themes'][$
|
797 |
return true;
|
798 |
}
|
799 |
|
@@ -801,7 +788,7 @@ class wordfenceHash {
|
|
801 |
$excludePatterns = wordfenceScanner::getExcludeFilePattern(wordfenceScanner::EXCLUSION_PATTERNS_USER | wordfenceScanner::EXCLUSION_PATTERNS_MALWARE);
|
802 |
if ($excludePatterns) {
|
803 |
foreach ($excludePatterns as $pattern) {
|
804 |
-
if (preg_match($pattern, $
|
805 |
return false;
|
806 |
}
|
807 |
}
|
@@ -811,7 +798,7 @@ class wordfenceHash {
|
|
811 |
if ($this->coreUnknownEnabled && !$this->alertedOnUnknownWordPressVersion) {
|
812 |
$restrictedWordPressFolders = array(ABSPATH . 'wp-admin/', ABSPATH . WPINC . '/');
|
813 |
foreach ($restrictedWordPressFolders as $path) {
|
814 |
-
if (strpos($
|
815 |
return true;
|
816 |
}
|
817 |
}
|
@@ -819,19 +806,19 @@ class wordfenceHash {
|
|
819 |
|
820 |
//Determine treatment
|
821 |
$fileExt = '';
|
822 |
-
if (preg_match('/\.([a-zA-Z\d\-]{1,7})$/', $
|
823 |
$fileExt = strtolower($matches[1]);
|
824 |
}
|
825 |
$isPHP = false;
|
826 |
-
if (preg_match('/\.(?:php(?:\d+)?|phtml)(\.|$)/i', $
|
827 |
$isPHP = true;
|
828 |
}
|
829 |
$isHTML = false;
|
830 |
-
if (preg_match('/\.(?:html?)(\.|$)/i', $
|
831 |
$isHTML = true;
|
832 |
}
|
833 |
$isJS = false;
|
834 |
-
if (preg_match('/\.(?:js|svg)(\.|$)/i', $
|
835 |
$isJS = true;
|
836 |
}
|
837 |
|
6 |
private $startTime = false;
|
7 |
|
8 |
//Begin serialized vars
|
|
|
9 |
public $totalFiles = 0;
|
10 |
public $totalDirs = 0;
|
11 |
public $totalData = 0; //To do a sanity check, don't use 'du' because it gets sparse files wrong and reports blocks used on disk. Use : find . -type f -ls | awk '{total += $7} END {print total}'
|
21 |
private $haveIssues = array();
|
22 |
private $status = array();
|
23 |
private $possibleMalware = array();
|
24 |
+
private $scannedFiles;
|
|
|
25 |
private $totalForks = 0;
|
26 |
private $alertedOnUnknownWordPressVersion = false;
|
27 |
private $foldersEntered = array();
|
31 |
private $indexSize = 0;
|
32 |
private $currentIndex = 0;
|
33 |
private $coalescingIssues = array();
|
34 |
+
private $pathMap = array();
|
35 |
|
36 |
/**
|
|
|
37 |
* @param string $path
|
38 |
* @param array $only
|
39 |
* @param array $themes
|
41 |
* @param wfScanEngine $engine
|
42 |
* @throws Exception
|
43 |
*/
|
44 |
+
public function __construct($scannedFiles, $themes, $plugins, $engine, $malwarePrefixesHash, $coreHashesHash, $scanMode) {
|
45 |
+
$this->scannedFiles = $scannedFiles;
|
|
|
|
|
46 |
$this->engine = $engine;
|
47 |
|
48 |
$this->startTime = microtime(true);
|
127 |
wfIssues::statusEnd($coreHashesStatus, wfIssues::STATUS_SUCCESS);
|
128 |
}
|
129 |
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
$this->haveIssues = array(
|
131 |
'core' => wfIssues::STATUS_SECURE,
|
132 |
'coreUnknown' => wfIssues::STATUS_SECURE,
|
161 |
}
|
162 |
}
|
163 |
public function __sleep(){
|
164 |
+
return array('totalFiles', 'totalDirs', 'totalData', 'stoppedOnFile', 'coreEnabled', 'pluginsEnabled', 'themesEnabled', 'malwareEnabled', 'coreUnknownEnabled', 'knownFiles', 'haveIssues', 'status', 'possibleMalware', 'scannedFiles', 'totalForks', 'alertedOnUnknownWordPressVersion', 'foldersProcessed', 'suspectedFiles', 'indexed', 'indexSize', 'currentIndex', 'foldersEntered', 'coalescingIssues', 'pathMap');
|
165 |
}
|
166 |
public function __wakeup(){
|
167 |
$this->db = new wfDB();
|
183 |
public function getSuspectedFiles() {
|
184 |
return array_keys($this->suspectedFiles);
|
185 |
}
|
186 |
+
public function run($engine) {
|
187 |
if($this->totalForks > 1000){
|
188 |
throw new Exception(sprintf(/* translators: File path. */ __("Wordfence file scanner detected a possible infinite loop. Exiting on file: %s", 'wordfence'), $this->stoppedOnFile));
|
189 |
}
|
190 |
$this->engine = $engine;
|
|
|
191 |
if (!$this->indexed) {
|
192 |
$start = microtime(true);
|
193 |
$indexedFiles = array();
|
194 |
+
foreach ($this->scannedFiles as $file) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
195 |
$this->_dirIndex($file, $indexedFiles);
|
196 |
}
|
197 |
$this->_serviceIndexQueue($indexedFiles, true);
|
202 |
wordfence::status(4, 'info', sprintf(/* translators: Time in seconds. */ __("Index time: %s", 'wordfence'), ($end - $start)));
|
203 |
}
|
204 |
|
205 |
+
$this->_checkForTimeout();
|
206 |
|
207 |
wordfence::status(4, 'info', __("Beginning file hashing", 'wordfence'));
|
208 |
while ($file = $this->_nextFile()) {
|
233 |
$added = $this->engine->addIssue(
|
234 |
'file',
|
235 |
wfIssues::SEVERITY_CRITICAL,
|
236 |
+
$file,
|
237 |
$md5,
|
238 |
sprintf(/* translators: File path. */ __('This file is suspected malware: %s', 'wordfence'), $file),
|
239 |
sprintf(/* translators: Malware name/title. */ __("This file's signature matches a known malware file. The title of the malware is '%s'. Immediately inspect this file using the 'View' option below and consider deleting it from your server.", 'wordfence'), $name),
|
240 |
array(
|
241 |
'file' => $file,
|
242 |
+
'realFile' => array_key_exists($file, $this->pathMap) ? $this->pathMap[$file] : null,
|
243 |
'cType' => 'unknown',
|
244 |
'canDiff' => false,
|
245 |
'canFix' => false,
|
255 |
if($this->malwareEnabled){ wfIssues::statusEnd($this->status['malware'], $this->haveIssues['malware']); $this->engine->scanController()->completeStage(wfScanner::STAGE_MALWARE_SCAN, $this->haveIssues['malware']); }
|
256 |
unset($this->knownFiles); $this->knownFiles = false;
|
257 |
}
|
258 |
+
private function _dirIndex($file, &$indexedFiles) {
|
259 |
+
$realPath = $file->getRealPath();
|
260 |
+
//Applies to files and dirs
|
261 |
+
if (!is_readable($realPath))
|
262 |
return;
|
263 |
+
if (!$this->_shouldProcessFile($file))
|
264 |
+
return;
|
265 |
+
if (is_dir($realPath)) {
|
266 |
+
if ((!$this->stoppedOnFile || $this->stoppedOnFile != $file->getWordpressPath()) && isset($this->foldersEntered[$realPath])) { //Not resuming and already entered this path
|
|
|
|
|
267 |
return;
|
268 |
}
|
269 |
|
270 |
+
$this->foldersEntered[$file->getRealPath()] = 1;
|
271 |
|
272 |
$this->totalDirs++;
|
273 |
+
foreach (wfFileUtils::getContents($realPath) as $child) {
|
274 |
+
if (wfFileUtils::isCurrentOrParentDirectory($child)) {
|
275 |
+
continue;
|
276 |
+
}
|
277 |
+
$child = $file->createChild($child);
|
278 |
+
if (is_file($child->getRealPath())) {
|
279 |
+
$relativeFile = $child->getWordpressPath();
|
|
|
|
|
280 |
if ($this->stoppedOnFile && $relativeFile != $this->stoppedOnFile) {
|
281 |
continue;
|
282 |
}
|
286 |
$this->suspectedFiles[$relativeFile] = 1;
|
287 |
}
|
288 |
|
289 |
+
$this->_checkForTimeout($child, $indexedFiles);
|
290 |
+
if ($this->_shouldHashFile($child)) {
|
291 |
+
$indexedFiles[] = $child;
|
|
|
|
|
|
|
292 |
}
|
293 |
else {
|
294 |
+
wordfence::status(4, 'info', sprintf(/* translators: File path. */ __("Skipping unneeded hash: %s", 'wordfence'), (string) $child));
|
295 |
}
|
296 |
$this->_serviceIndexQueue($indexedFiles);
|
297 |
+
}
|
298 |
+
elseif (is_dir($child->getRealPath())) {
|
299 |
+
$this->_dirIndex($child, $indexedFiles);
|
300 |
}
|
301 |
}
|
302 |
|
304 |
unset($this->foldersEntered[$realPath]);
|
305 |
}
|
306 |
else {
|
307 |
+
if (is_file($realPath)) {
|
308 |
+
$relativeFile = $file->getWordpressPath();
|
309 |
if ($this->stoppedOnFile && $relativeFile != $this->stoppedOnFile) {
|
310 |
return;
|
311 |
}
|
315 |
$this->suspectedFiles[$relativeFile] = 1;
|
316 |
}
|
317 |
|
318 |
+
$this->_checkForTimeout($file, $indexedFiles);
|
319 |
+
if ($this->_shouldHashFile($file)) {
|
320 |
+
$indexedFiles[] = $file;
|
321 |
}
|
322 |
else {
|
323 |
+
wordfence::status(4, 'info', sprintf(/* translators: File path. */ __("Skipping unneeded hash: %s", 'wordfence'), (string) $file));
|
324 |
}
|
325 |
$this->_serviceIndexQueue($indexedFiles);
|
326 |
}
|
327 |
}
|
328 |
}
|
329 |
private function _serviceIndexQueue(&$indexedFiles, $final = false) {
|
330 |
+
$files = array();
|
331 |
if (count($indexedFiles) > 500) {
|
332 |
+
$files = array_splice($indexedFiles, 0, 500);
|
333 |
}
|
334 |
else if ($final) {
|
335 |
+
$files = $indexedFiles;
|
336 |
$indexedFiles = array();
|
337 |
}
|
338 |
|
339 |
+
if (count($files) > 0) {
|
340 |
+
$payload = array();
|
341 |
+
foreach ($files as $file) {
|
342 |
+
$payload[] = (string) $file;
|
343 |
+
$payload[] = $file->getWordpressPath();
|
344 |
+
}
|
345 |
global $wpdb;
|
346 |
$table_wfKnownFileList = wfDB::networkTable('wfKnownFileList');
|
347 |
+
$query = substr("INSERT INTO {$table_wfKnownFileList} (path, wordpress_path) VALUES " . str_repeat("('%s', '%s'), ", count($files)), 0, -2);
|
348 |
$wpdb->query($wpdb->prepare($query, $payload));
|
349 |
$this->indexSize += count($payload);
|
350 |
wordfence::status(2, 'info', sprintf(/* translators: Number of files. */ __("%d files indexed", 'wordfence'), $this->indexSize));
|
355 |
if (count($files) == 0) {
|
356 |
global $wpdb;
|
357 |
$table_wfKnownFileList = wfDB::networkTable('wfKnownFileList');
|
358 |
+
$rows = $wpdb->get_results($wpdb->prepare("SELECT path, wordpress_path FROM {$table_wfKnownFileList} WHERE id > %d ORDER BY id ASC LIMIT 500", $this->currentIndex));
|
359 |
+
$files = array_map(
|
360 |
+
function ($row) {
|
361 |
+
return new wfScanFile($row->path, $row->wordpress_path);
|
362 |
+
},
|
363 |
+
$rows
|
364 |
+
);
|
365 |
}
|
366 |
|
367 |
$file = null;
|
376 |
if ($file === null) {
|
377 |
return null;
|
378 |
}
|
379 |
+
return $file;
|
380 |
}
|
381 |
+
private function _checkForTimeout($file = null, $indexQueue = false) {
|
382 |
+
$wordpressPath = $file ? $file->getWordpressPath() : null;
|
383 |
+
if (($this->stoppedOnFile !== $wordpressPath) && $this->engine->shouldFork()) { //max X seconds but don't allow fork if we're looking for the file we stopped on. Search mode is VERY fast.
|
384 |
if ($indexQueue !== false) {
|
385 |
$this->_serviceIndexQueue($indexQueue, true);
|
386 |
+
$this->stoppedOnFile = $wordpressPath;
|
387 |
+
wordfence::status(4, 'info', sprintf(/* translators: File path. */ __("Forking during indexing: %s", 'wordfence'), (string) $file));
|
388 |
}
|
389 |
else {
|
390 |
wordfence::status(4, 'info', sprintf(/* translators: PHP max execution time. */ __("Calling fork() from wordfenceHash with maxExecTime: %s", 'wordfence'), $this->engine->maxExecTime));
|
393 |
//exits
|
394 |
}
|
395 |
|
396 |
+
if ($this->stoppedOnFile && $wordpressPath != $this->stoppedOnFile && $indexQueue !== false) {
|
397 |
return;
|
398 |
}
|
399 |
+
else if ($this->stoppedOnFile && $wordpressPath == $this->stoppedOnFile) {
|
400 |
$this->stoppedOnFile = false; //Continue indexing
|
401 |
}
|
402 |
}
|
403 |
+
private function _shouldProcessFile($file) {
|
|
|
404 |
$excludePatterns = wordfenceScanner::getExcludeFilePattern(wordfenceScanner::EXCLUSION_PATTERNS_USER);
|
405 |
if ($excludePatterns) {
|
406 |
foreach ($excludePatterns as $pattern) {
|
407 |
+
if (preg_match($pattern, $file->getWordpressPath())) {
|
408 |
return false;
|
409 |
}
|
410 |
}
|
411 |
}
|
412 |
|
413 |
+
$realPath = $file->getRealPath();
|
414 |
if ($realPath === '/') {
|
415 |
return false;
|
416 |
}
|
420 |
|
421 |
return true;
|
422 |
}
|
423 |
+
private function processFile($file) {
|
424 |
+
$realPath = $file->getRealPath();
|
425 |
+
$wordpressPath = $file->getWordpressPath();
|
426 |
+
if (wfUtils::fileTooBig($realPath)) {
|
427 |
+
wordfence::status(4, 'info', sprintf(/* translators: File path. */ __("Skipping file larger than max size: %s", 'wordfence'), $realPath));
|
428 |
return;
|
429 |
}
|
430 |
|
431 |
if (function_exists('memory_get_usage')) {
|
432 |
+
wordfence::status(4, 'info', sprintf(/* translators: 1. File path. 2. Memory in bytes. */ __('Scanning: %1$s (Mem:%2$s)', 'wordfence'), $realPath, sprintf('%.1fM', memory_get_usage(true) / (1024 * 1024))));
|
433 |
}
|
434 |
else {
|
435 |
+
wordfence::status(4, 'info', sprintf(/* translators: File path. */ __("Scanning: %s", 'wordfence'), $realPath));
|
436 |
}
|
437 |
|
438 |
+
wfUtils::beginProcessingFile($wordpressPath);
|
439 |
+
$wfHash = self::hashFile($realPath);
|
440 |
$this->engine->scanController()->incrementSummaryItem(wfScanner::SUMMARY_SCANNED_FILES);
|
441 |
if ($wfHash) {
|
442 |
$md5 = strtoupper($wfHash[0]);
|
443 |
$shac = strtoupper($wfHash[1]);
|
444 |
$knownFile = 0;
|
445 |
if($this->malwareEnabled && $this->isMalwarePrefix($md5)){
|
446 |
+
$this->possibleMalware[] = array($wordpressPath, $md5);
|
447 |
+
$this->pathMap[$wordpressPath] = $realPath;
|
448 |
}
|
449 |
|
450 |
$knownFileExclude = wordfenceScanner::getExcludeFilePattern(wordfenceScanner::EXCLUSION_PATTERNS_KNOWN_FILES);
|
451 |
$allowKnownFileScan = true;
|
452 |
if ($knownFileExclude) {
|
453 |
foreach ($knownFileExclude as $pattern) {
|
454 |
+
if (preg_match($pattern, $realPath)) {
|
455 |
$allowKnownFileScan = false;
|
456 |
}
|
457 |
}
|
458 |
}
|
459 |
|
460 |
if ($allowKnownFileScan) {
|
461 |
+
if (isset($this->knownFiles['core'][$wordpressPath])) {
|
462 |
+
if (strtoupper($this->knownFiles['core'][$wordpressPath]) == $shac) {
|
463 |
$knownFile = 1;
|
464 |
}
|
465 |
else {
|
466 |
if ($this->coreEnabled) {
|
467 |
+
$localFile = ABSPATH . '/' . preg_replace('/^[\.\/]+/', '', $wordpressPath);
|
468 |
$fileContents = @file_get_contents($localFile);
|
469 |
if ($fileContents && (!preg_match('/<\?' . 'php[\r\n\s\t]*\/\/[\r\n\s\t]*Silence is golden\.[\r\n\s\t]*(?:\?>)?[\r\n\s\t]*$/s', $fileContents))) {
|
470 |
$this->engine->addPendingIssue(
|
471 |
'knownfile',
|
472 |
wfIssues::SEVERITY_HIGH,
|
473 |
+
'coreModified' . $wordpressPath,
|
474 |
+
'coreModified' . $wordpressPath . $md5,
|
475 |
+
sprintf(/* translators: File path. */ __('WordPress core file modified: %s', 'wordfence'), $wordpressPath),
|
476 |
__("This WordPress core file has been modified and differs from the original file distributed with this version of WordPress.", 'wordfence'),
|
477 |
array(
|
478 |
+
'file' => $wordpressPath,
|
479 |
+
'realFile' => $realPath,
|
480 |
'cType' => 'core',
|
481 |
'canDiff' => true,
|
482 |
'canFix' => true,
|
488 |
}
|
489 |
}
|
490 |
}
|
491 |
+
else if (isset($this->knownFiles['plugins'][$wordpressPath])) {
|
492 |
+
if (in_array($shac, $this->knownFiles['plugins'][$wordpressPath])) {
|
493 |
$knownFile = 1;
|
494 |
}
|
495 |
else {
|
496 |
if ($this->pluginsEnabled) {
|
497 |
$options = $this->engine->scanController()->scanOptions();
|
498 |
$shouldGenerateIssue = true;
|
499 |
+
if (!$options['scansEnabled_highSense'] && preg_match('~/readme\.(?:txt|md)$~i', $wordpressPath)) { //Don't generate issues for changed readme files unless high sensitivity is on
|
500 |
$shouldGenerateIssue = false;
|
501 |
}
|
502 |
|
503 |
if ($shouldGenerateIssue) {
|
504 |
+
$itemName = $this->knownFiles['plugins'][$wordpressPath][0];
|
505 |
+
$itemVersion = $this->knownFiles['plugins'][$wordpressPath][1];
|
506 |
+
$cKey = $this->knownFiles['plugins'][$wordpressPath][2];
|
507 |
$this->engine->addPendingIssue(
|
508 |
'knownfile',
|
509 |
wfIssues::SEVERITY_MEDIUM,
|
510 |
+
'modifiedplugin' . $wordpressPath,
|
511 |
+
'modifiedplugin' . $wordpressPath . $md5,
|
512 |
+
sprintf(/* translators: File path. */ __('Modified plugin file: %s', 'wordfence'), $wordpressPath),
|
513 |
sprintf(
|
514 |
/* translators: 1. Plugin name. 2. Plugin version. 3. Support URL. */
|
515 |
__('This file belongs to plugin "%1$s" version "%2$s" and has been modified from the file that is distributed by WordPress.org for this version. Please use the link to see how the file has changed. If you have modified this file yourself, you can safely ignore this warning. If you see a lot of changed files in a plugin that have been made by the author, then try uninstalling and reinstalling the plugin to force an upgrade. Doing this is a workaround for plugin authors who don\'t manage their code correctly. <a href="%3$s" target="_blank" rel="noopener noreferrer">Learn More<span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>', 'wordfence'),
|
518 |
wfSupportController::esc_supportURL(wfSupportController::ITEM_SCAN_RESULT_MODIFIED_PLUGIN)
|
519 |
),
|
520 |
array(
|
521 |
+
'file' => $wordpressPath,
|
522 |
+
'realFile' => $realPath,
|
523 |
'cType' => 'plugin',
|
524 |
'canDiff' => true,
|
525 |
'canFix' => true,
|
535 |
|
536 |
}
|
537 |
}
|
538 |
+
else if (isset($this->knownFiles['themes'][$wordpressPath])) {
|
539 |
+
if (in_array($shac, $this->knownFiles['themes'][$wordpressPath])) {
|
540 |
$knownFile = 1;
|
541 |
}
|
542 |
else {
|
543 |
if ($this->themesEnabled) {
|
544 |
$options = $this->engine->scanController()->scanOptions();
|
545 |
$shouldGenerateIssue = true;
|
546 |
+
if (!$options['scansEnabled_highSense'] && preg_match('~/readme\.(?:txt|md)$~i', $wordpressPath)) { //Don't generate issues for changed readme files unless high sensitivity is on
|
547 |
$shouldGenerateIssue = false;
|
548 |
}
|
549 |
|
550 |
if ($shouldGenerateIssue) {
|
551 |
+
$itemName = $this->knownFiles['themes'][$wordpressPath][0];
|
552 |
+
$itemVersion = $this->knownFiles['themes'][$wordpressPath][1];
|
553 |
+
$cKey = $this->knownFiles['themes'][$wordpressPath][2];
|
554 |
$this->engine->addPendingIssue(
|
555 |
'knownfile',
|
556 |
wfIssues::SEVERITY_MEDIUM,
|
557 |
+
'modifiedtheme' . $wordpressPath,
|
558 |
+
'modifiedtheme' . $wordpressPath . $md5,
|
559 |
+
sprintf(/* translators: File path. */ __('Modified theme file: %s', 'wordfence'), $wordpressPath),
|
560 |
sprintf(
|
561 |
/* translators: 1. Plugin name. 2. Plugin version. 3. Support URL. */
|
562 |
__('This file belongs to theme "%1$s" version "%2$s" and has been modified from the original distribution. It is common for site owners to modify their theme files, so if you have modified this file yourself you can safely ignore this warning. <a href="%3$s" target="_blank" rel="noopener noreferrer">Learn More<span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>', 'wordfence'),
|
565 |
wfSupportController::esc_supportURL(wfSupportController::ITEM_SCAN_RESULT_MODIFIED_THEME)
|
566 |
),
|
567 |
array(
|
568 |
+
'file' => $wordpressPath,
|
569 |
+
'realFile' => $realPath,
|
570 |
'cType' => 'theme',
|
571 |
'canDiff' => true,
|
572 |
'canFix' => true,
|
586 |
$restrictedWordPressFolders = array(ABSPATH . 'wp-admin/', ABSPATH . WPINC . '/');
|
587 |
$added = false;
|
588 |
foreach ($restrictedWordPressFolders as $path) {
|
589 |
+
if (strpos($realPath, $path) === 0) {
|
590 |
if ($this->isPreviousCoreFile($shac)) {
|
591 |
$added = $this->engine->addIssue(
|
592 |
'knownfile',
|
593 |
wfIssues::SEVERITY_LOW,
|
594 |
+
'coreUnknown' . $wordpressPath,
|
595 |
+
'coreUnknown' . $wordpressPath . $md5,
|
596 |
+
sprintf(/* translators: File path. */ __('Old WordPress core file not removed during update: %s', 'wordfence'), $wordpressPath),
|
597 |
__('This file is in a WordPress core location but is from an older version of WordPress and not used with your current version. Hosting or permissions issues can cause these files to get left behind when WordPress is updated and they should be removed if possible.', 'wordfence'),
|
598 |
array(
|
599 |
+
'file' => $wordpressPath,
|
600 |
+
'realFile' => $realPath,
|
601 |
'cType' => 'core',
|
602 |
'canDiff' => false,
|
603 |
'canFix' => false,
|
605 |
)
|
606 |
);
|
607 |
}
|
608 |
+
else if (preg_match('#/php\.ini$#', $wordpressPath)) {
|
609 |
$this->engine->addPendingIssue(
|
610 |
'knownfile',
|
611 |
wfIssues::SEVERITY_HIGH,
|
612 |
+
'coreUnknown' . $wordpressPath,
|
613 |
+
'coreUnknown' . $wordpressPath . $md5,
|
614 |
+
sprintf(/* translators: File path. */ __('Unknown file in WordPress core: %s', 'wordfence'), $wordpressPath),
|
615 |
__('This file is in a WordPress core location but is not distributed with this version of WordPress. This scan often includes files left over from a previous WordPress version, but it may also find files added by another plugin, files added by your host, or malicious files added by an attacker.', 'wordfence'),
|
616 |
array(
|
617 |
+
'file' => $wordpressPath,
|
618 |
+
'realFile' => $realPath,
|
619 |
'cType' => 'core',
|
620 |
'canDiff' => false,
|
621 |
'canFix' => false,
|
630 |
$added = $this->engine->addIssue(
|
631 |
'knownfile',
|
632 |
wfIssues::SEVERITY_HIGH,
|
633 |
+
'coreUnknown' . $wordpressPath,
|
634 |
+
'coreUnknown' . $wordpressPath . $md5,
|
635 |
+
sprintf(/* translators: File path. */ __('Unknown file in WordPress core: %s', 'wordfence'), $wordpressPath),
|
636 |
sprintf(/* translators: Support URL. */ __('This file is in a WordPress core location but is not distributed with this version of WordPress. This scan often includes files left over from a previous WordPress version, but it may also find files added by another plugin, files added by your host, or malicious files added by an attacker. <a href="%s" target="_blank" rel="noopener noreferrer">Learn More<span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>', 'wordfence'), wfSupportController::esc_supportURL(wfSupportController::ITEM_SCAN_RESULT_UNKNOWN_FILE_CORE)),
|
637 |
array(
|
638 |
+
'file' => $wordpressPath,
|
639 |
+
'realFile' => $realPath,
|
640 |
'cType' => 'core',
|
641 |
'canDiff' => false,
|
642 |
'canFix' => false,
|
655 |
// we could split this into files whose path we recognize and file's whose path we recognize AND who have a valid sig.
|
656 |
// But because we want to scan files whose sig we don't recognize, regardless of known path or not, we only need one "knownFile" field.
|
657 |
$fileModsTable = wfDB::networkTable('wfFileMods');
|
658 |
+
$this->db->queryWrite("INSERT INTO {$fileModsTable} (filename, real_path, filenameMD5, knownFile, oldMD5, newMD5, SHAC) VALUES ('%s', '%s', UNHEX(MD5('%s')), %d, '', UNHEX('%s'), UNHEX('%s')) ON DUPLICATE KEY UPDATE newMD5 = UNHEX('%s'), SHAC = UNHEX('%s'), knownFile = %d", $wordpressPath, $realPath, $wordpressPath, $knownFile, $md5, $shac, $md5, $shac, $knownFile);
|
659 |
|
660 |
$this->totalFiles++;
|
661 |
+
$this->totalData += @filesize($realPath); //We already checked if file overflows int in the fileTooBig routine above
|
662 |
if($this->totalFiles % 100 === 0){
|
663 |
wordfence::status(2, 'info', sprintf(
|
664 |
/* translators: 1. Number of files. 2. Data in bytes. */
|
668 |
));
|
669 |
}
|
670 |
} else {
|
671 |
+
//wordfence::status(2, 'error', "Could not gen hash for file (probably because we don't have permission to access the file): $realPath");
|
672 |
}
|
673 |
wfUtils::endProcessingFile();
|
674 |
}
|
774 |
$shac = hash_final($sha256Context, false);
|
775 |
return array($md5, $shac);
|
776 |
}
|
777 |
+
private function _shouldHashFile($file) {
|
778 |
+
$wordpressPath = $file->getWordpressPath();
|
779 |
|
780 |
//Core File, return true
|
781 |
+
if ((isset($this->knownFiles['core']) && isset($this->knownFiles['core'][$wordpressPath])) ||
|
782 |
+
(isset($this->knownFiles['plugins']) && isset($this->knownFiles['plugins'][$wordpressPath])) ||
|
783 |
+
(isset($this->knownFiles['themes']) && isset($this->knownFiles['themes'][$wordpressPath]))) {
|
784 |
return true;
|
785 |
}
|
786 |
|
788 |
$excludePatterns = wordfenceScanner::getExcludeFilePattern(wordfenceScanner::EXCLUSION_PATTERNS_USER | wordfenceScanner::EXCLUSION_PATTERNS_MALWARE);
|
789 |
if ($excludePatterns) {
|
790 |
foreach ($excludePatterns as $pattern) {
|
791 |
+
if (preg_match($pattern, $wordpressPath)) {
|
792 |
return false;
|
793 |
}
|
794 |
}
|
798 |
if ($this->coreUnknownEnabled && !$this->alertedOnUnknownWordPressVersion) {
|
799 |
$restrictedWordPressFolders = array(ABSPATH . 'wp-admin/', ABSPATH . WPINC . '/');
|
800 |
foreach ($restrictedWordPressFolders as $path) {
|
801 |
+
if (strpos($file->getRealPath(), $path) === 0) {
|
802 |
return true;
|
803 |
}
|
804 |
}
|
806 |
|
807 |
//Determine treatment
|
808 |
$fileExt = '';
|
809 |
+
if (preg_match('/\.([a-zA-Z\d\-]{1,7})$/', $wordpressPath, $matches)) {
|
810 |
$fileExt = strtolower($matches[1]);
|
811 |
}
|
812 |
$isPHP = false;
|
813 |
+
if (preg_match('/\.(?:php(?:\d+)?|phtml)(\.|$)/i', $wordpressPath)) {
|
814 |
$isPHP = true;
|
815 |
}
|
816 |
$isHTML = false;
|
817 |
+
if (preg_match('/\.(?:html?)(\.|$)/i', $wordpressPath)) {
|
818 |
$isHTML = true;
|
819 |
}
|
820 |
$isJS = false;
|
821 |
+
if (preg_match('/\.(?:js|svg)(\.|$)/i', $wordpressPath)) {
|
822 |
$isJS = true;
|
823 |
}
|
824 |
|
lib/wordfenceScanner.php
CHANGED
@@ -350,6 +350,7 @@ class wordfenceScanner {
|
|
350 |
'longMsg' => __('This file appears to be an old version of the TimThumb script which makes your system vulnerable to attackers. Please upgrade the theme or plugin that uses this or remove it.', 'wordfence') . $extraMsg,
|
351 |
'data' => array_merge(array(
|
352 |
'file' => $file,
|
|
|
353 |
'shac' => $record->SHAC,
|
354 |
'highSense' => $options['scansEnabled_highSense'],
|
355 |
'betaSigs' => wfConfig::get('betaThreatDefenseFeed'),
|
@@ -417,6 +418,7 @@ class wordfenceScanner {
|
|
417 |
'longMsg' => $customMessage . ' ' . sprintf(__('The matched text in this file is: %s', 'wordfence'), '<strong style="color: #F00;" class="wf-split-word">' . wfUtils::potentialBinaryStringToHTML((wfUtils::strlen($matchString) > 200 ? wfUtils::substr($matchString, 0, 200) . '...' : $matchString)) . '</strong>') . ' ' . '<br><br>' . sprintf(/* translators: Scan result type. */ __('The issue type is: %s', 'wordfence'), '<strong>' . esc_html($rule[7]) . '</strong>') . '<br>' . sprintf(/* translators: Scan result description. */ __('Description: %s', 'wordfence'), '<strong>' . esc_html($rule[3]) . '</strong>') . $extraMsg,
|
418 |
'data' => array_merge(array(
|
419 |
'file' => $file,
|
|
|
420 |
'shac' => $record->SHAC,
|
421 |
'highSense' => $options['scansEnabled_highSense'],
|
422 |
'betaSigs' => wfConfig::get('betaThreatDefenseFeed'),
|
@@ -458,6 +460,7 @@ class wordfenceScanner {
|
|
458 |
'longMsg' => sprintf(/* translators: Malware signature matched text. */ __('This file is a PHP executable file and contains the word "eval" (without quotes) and the word "%s" (without quotes). The eval() function along with an encoding function like the one mentioned are commonly used by hackers to hide their code. If you know about this file you can choose to ignore it to exclude it from future scans. This file was detected because you have enabled HIGH SENSITIVITY scanning. This option is more aggressive than the usual scans, and may cause false positives.', 'wordfence'), '<span class="wf-split-word">' . esc_html($badStringFound) . '</span>'),
|
459 |
'data' => array_merge(array(
|
460 |
'file' => $file,
|
|
|
461 |
'shac' => $record->SHAC,
|
462 |
'highSense' => $options['scansEnabled_highSense'],
|
463 |
'betaSigs' => wfConfig::get('betaThreatDefenseFeed'),
|
@@ -727,6 +730,7 @@ class wordfenceScanner {
|
|
727 |
*/
|
728 |
class wordfenceMalwareScanFile {
|
729 |
protected $_filename;
|
|
|
730 |
protected $_filenameMD5;
|
731 |
protected $_newMD5;
|
732 |
protected $_shac;
|
@@ -749,22 +753,23 @@ class wordfenceMalwareScanFile {
|
|
749 |
|
750 |
public static function files($limit = 500) {
|
751 |
$db = self::getDB();
|
752 |
-
$result = $db->querySelect("SELECT filename, filenameMD5, HEX(newMD5) AS newMD5, HEX(SHAC) AS SHAC, stoppedOnSignature, stoppedOnPosition, isSafeFile FROM " . wfDB::networkTable('wfFileMods') . " WHERE oldMD5 != newMD5 AND knownFile = 0 limit %d", $limit);
|
753 |
$files = array();
|
754 |
foreach ($result as $row) {
|
755 |
-
$files[] = new wordfenceMalwareScanFile($row['filename'], $row['filenameMD5'], $row['newMD5'], $row['SHAC'], $row['stoppedOnSignature'], $row['stoppedOnPosition'], $row['isSafeFile']);
|
756 |
}
|
757 |
return $files;
|
758 |
}
|
759 |
|
760 |
public static function fileForPath($file) {
|
761 |
$db = self::getDB();
|
762 |
-
$row = $db->querySingleRec("SELECT filename, filenameMD5, HEX(newMD5) AS newMD5, HEX(SHAC) AS SHAC, stoppedOnSignature, stoppedOnPosition, isSafeFile FROM " . wfDB::networkTable('wfFileMods') . " WHERE filename = '%s'", $file);
|
763 |
-
return new wordfenceMalwareScanFile($row['filename'], $row['filenameMD5'], $row['newMD5'], $row['SHAC'], $row['stoppedOnSignature'], $row['stoppedOnPosition'], $row['isSafeFile']);
|
764 |
}
|
765 |
|
766 |
-
public function __construct($filename, $filenameMD5, $newMD5, $shac, $stoppedOnSignature, $stoppedOnPosition, $isSafeFile) {
|
767 |
$this->_filename = $filename;
|
|
|
768 |
$this->_filenameMD5 = $filenameMD5;
|
769 |
$this->_newMD5 = $newMD5;
|
770 |
$this->_shac = strtoupper($shac);
|
@@ -777,6 +782,8 @@ class wordfenceMalwareScanFile {
|
|
777 |
switch ($key) {
|
778 |
case 'filename':
|
779 |
return $this->_filename;
|
|
|
|
|
780 |
case 'filenameMD5':
|
781 |
return $this->_filenameMD5;
|
782 |
case 'newMD5':
|
@@ -793,7 +800,7 @@ class wordfenceMalwareScanFile {
|
|
793 |
}
|
794 |
|
795 |
public function __toString() {
|
796 |
-
return "Record [filename: {$this->filename}, filenameMD5: {$this->filenameMD5}, newMD5: {$this->newMD5}, stoppedOnSignature: {$this->stoppedOnSignature}, stoppedOnPosition: {$this->stoppedOnPosition}]";
|
797 |
}
|
798 |
|
799 |
public function markComplete() {
|
350 |
'longMsg' => __('This file appears to be an old version of the TimThumb script which makes your system vulnerable to attackers. Please upgrade the theme or plugin that uses this or remove it.', 'wordfence') . $extraMsg,
|
351 |
'data' => array_merge(array(
|
352 |
'file' => $file,
|
353 |
+
'realFile' => $record->realPath,
|
354 |
'shac' => $record->SHAC,
|
355 |
'highSense' => $options['scansEnabled_highSense'],
|
356 |
'betaSigs' => wfConfig::get('betaThreatDefenseFeed'),
|
418 |
'longMsg' => $customMessage . ' ' . sprintf(__('The matched text in this file is: %s', 'wordfence'), '<strong style="color: #F00;" class="wf-split-word">' . wfUtils::potentialBinaryStringToHTML((wfUtils::strlen($matchString) > 200 ? wfUtils::substr($matchString, 0, 200) . '...' : $matchString)) . '</strong>') . ' ' . '<br><br>' . sprintf(/* translators: Scan result type. */ __('The issue type is: %s', 'wordfence'), '<strong>' . esc_html($rule[7]) . '</strong>') . '<br>' . sprintf(/* translators: Scan result description. */ __('Description: %s', 'wordfence'), '<strong>' . esc_html($rule[3]) . '</strong>') . $extraMsg,
|
419 |
'data' => array_merge(array(
|
420 |
'file' => $file,
|
421 |
+
'realFile' => $record->realPath,
|
422 |
'shac' => $record->SHAC,
|
423 |
'highSense' => $options['scansEnabled_highSense'],
|
424 |
'betaSigs' => wfConfig::get('betaThreatDefenseFeed'),
|
460 |
'longMsg' => sprintf(/* translators: Malware signature matched text. */ __('This file is a PHP executable file and contains the word "eval" (without quotes) and the word "%s" (without quotes). The eval() function along with an encoding function like the one mentioned are commonly used by hackers to hide their code. If you know about this file you can choose to ignore it to exclude it from future scans. This file was detected because you have enabled HIGH SENSITIVITY scanning. This option is more aggressive than the usual scans, and may cause false positives.', 'wordfence'), '<span class="wf-split-word">' . esc_html($badStringFound) . '</span>'),
|
461 |
'data' => array_merge(array(
|
462 |
'file' => $file,
|
463 |
+
'realFile' => $record->realPath,
|
464 |
'shac' => $record->SHAC,
|
465 |
'highSense' => $options['scansEnabled_highSense'],
|
466 |
'betaSigs' => wfConfig::get('betaThreatDefenseFeed'),
|
730 |
*/
|
731 |
class wordfenceMalwareScanFile {
|
732 |
protected $_filename;
|
733 |
+
protected $_realPath;
|
734 |
protected $_filenameMD5;
|
735 |
protected $_newMD5;
|
736 |
protected $_shac;
|
753 |
|
754 |
public static function files($limit = 500) {
|
755 |
$db = self::getDB();
|
756 |
+
$result = $db->querySelect("SELECT filename, real_path, filenameMD5, HEX(newMD5) AS newMD5, HEX(SHAC) AS SHAC, stoppedOnSignature, stoppedOnPosition, isSafeFile FROM " . wfDB::networkTable('wfFileMods') . " WHERE oldMD5 != newMD5 AND knownFile = 0 limit %d", $limit);
|
757 |
$files = array();
|
758 |
foreach ($result as $row) {
|
759 |
+
$files[] = new wordfenceMalwareScanFile($row['filename'], $row['real_path'], $row['filenameMD5'], $row['newMD5'], $row['SHAC'], $row['stoppedOnSignature'], $row['stoppedOnPosition'], $row['isSafeFile']);
|
760 |
}
|
761 |
return $files;
|
762 |
}
|
763 |
|
764 |
public static function fileForPath($file) {
|
765 |
$db = self::getDB();
|
766 |
+
$row = $db->querySingleRec("SELECT filename, real_path, filenameMD5, HEX(newMD5) AS newMD5, HEX(SHAC) AS SHAC, stoppedOnSignature, stoppedOnPosition, isSafeFile FROM " . wfDB::networkTable('wfFileMods') . " WHERE filename = '%s'", $file);
|
767 |
+
return new wordfenceMalwareScanFile($row['filename'], $row['real_path'], $row['filenameMD5'], $row['newMD5'], $row['SHAC'], $row['stoppedOnSignature'], $row['stoppedOnPosition'], $row['isSafeFile']);
|
768 |
}
|
769 |
|
770 |
+
public function __construct($filename, $realPath, $filenameMD5, $newMD5, $shac, $stoppedOnSignature, $stoppedOnPosition, $isSafeFile) {
|
771 |
$this->_filename = $filename;
|
772 |
+
$this->_realPath = $realPath;
|
773 |
$this->_filenameMD5 = $filenameMD5;
|
774 |
$this->_newMD5 = $newMD5;
|
775 |
$this->_shac = strtoupper($shac);
|
782 |
switch ($key) {
|
783 |
case 'filename':
|
784 |
return $this->_filename;
|
785 |
+
case 'realPath':
|
786 |
+
return $this->_realPath;
|
787 |
case 'filenameMD5':
|
788 |
return $this->_filenameMD5;
|
789 |
case 'newMD5':
|
800 |
}
|
801 |
|
802 |
public function __toString() {
|
803 |
+
return "Record [filename: {$this->filename}, realPath: {$this->realPath}, filenameMD5: {$this->filenameMD5}, newMD5: {$this->newMD5}, stoppedOnSignature: {$this->stoppedOnSignature}, stoppedOnPosition: {$this->stoppedOnPosition}]";
|
804 |
}
|
805 |
|
806 |
public function markComplete() {
|
modules/login-security/css/{admin-global.1647958122.css → admin-global.1652811581.css}
RENAMED
File without changes
|
modules/login-security/css/{admin.1647958122.css → admin.1652811581.css}
RENAMED
File without changes
|
modules/login-security/css/{colorbox.1647958122.css → colorbox.1652811581.css}
RENAMED
File without changes
|
modules/login-security/css/{font-awesome.1647958122.css → font-awesome.1652811581.css}
RENAMED
File without changes
|
modules/login-security/css/{ionicons.1647958122.css → ionicons.1652811581.css}
RENAMED
File without changes
|
modules/login-security/css/{jquery-ui.min.1647958122.css → jquery-ui.min.1652811581.css}
RENAMED
File without changes
|
modules/login-security/css/{jquery-ui.structure.min.1647958122.css → jquery-ui.structure.min.1652811581.css}
RENAMED
File without changes
|
modules/login-security/css/{jquery-ui.theme.min.1647958122.css → jquery-ui.theme.min.1652811581.css}
RENAMED
File without changes
|
modules/login-security/css/{login.1647958122.css → login.1652811581.css}
RENAMED
File without changes
|
modules/login-security/js/{admin-global.1647958122.js → admin-global.1652811581.js}
RENAMED
File without changes
|
modules/login-security/js/{admin.1647958122.js → admin.1652811581.js}
RENAMED
File without changes
|
modules/login-security/js/{jquery.colorbox.1647958122.js → jquery.colorbox.1652811581.js}
RENAMED
File without changes
|
modules/login-security/js/{jquery.colorbox.min.1647958122.js → jquery.colorbox.min.1652811581.js}
RENAMED
File without changes
|
modules/login-security/js/{jquery.qrcode.min.1647958122.js → jquery.qrcode.min.1652811581.js}
RENAMED
File without changes
|
modules/login-security/js/{jquery.tmpl.min.1647958122.js → jquery.tmpl.min.1652811581.js}
RENAMED
File without changes
|
modules/login-security/js/{login.1647958122.js → login.1652811581.js}
RENAMED
File without changes
|
modules/login-security/wordfence-login-security.php
CHANGED
@@ -27,7 +27,7 @@ else {
|
|
27 |
define('WORDFENCE_LS_FROM_CORE', ($wfCoreActive && isset($wfCoreLoading) && $wfCoreLoading));
|
28 |
|
29 |
define('WORDFENCE_LS_VERSION', '1.0.9');
|
30 |
-
define('WORDFENCE_LS_BUILD_NUMBER', '
|
31 |
|
32 |
define('WORDFENCE_LS_PLUGIN_BASENAME', plugin_basename(__FILE__));
|
33 |
|
27 |
define('WORDFENCE_LS_FROM_CORE', ($wfCoreActive && isset($wfCoreLoading) && $wfCoreLoading));
|
28 |
|
29 |
define('WORDFENCE_LS_VERSION', '1.0.9');
|
30 |
+
define('WORDFENCE_LS_BUILD_NUMBER', '1652811581');
|
31 |
|
32 |
define('WORDFENCE_LS_PLUGIN_BASENAME', plugin_basename(__FILE__));
|
33 |
|
readme.txt
CHANGED
@@ -3,8 +3,8 @@ Contributors: mmaunder, wfryan, wfmatt, wfmattr
|
|
3 |
Tags: security, firewall, malware scanner, web application firewall, two factor authentication, block hackers, country blocking, clean hacked site, blocklist, waf, login security
|
4 |
Requires at least: 3.9
|
5 |
Requires PHP: 5.3
|
6 |
-
Tested up to:
|
7 |
-
Stable tag: 7.5.
|
8 |
License: GPLv3
|
9 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
@@ -185,6 +185,17 @@ Secure your website with Wordfence.
|
|
185 |
|
186 |
== Changelog ==
|
187 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
188 |
= 7.5.9 - March 22, 2022 =
|
189 |
* Improvement: Updated GeoIP database
|
190 |
* Improvement: Removed blocking data update logic in order to reduce timeouts
|
3 |
Tags: security, firewall, malware scanner, web application firewall, two factor authentication, block hackers, country blocking, clean hacked site, blocklist, waf, login security
|
4 |
Requires at least: 3.9
|
5 |
Requires PHP: 5.3
|
6 |
+
Tested up to: 6.0
|
7 |
+
Stable tag: 7.5.10
|
8 |
License: GPLv3
|
9 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
185 |
|
186 |
== Changelog ==
|
187 |
|
188 |
+
= 7.5.10 - May 17, 2022 =
|
189 |
+
* Improvement: Improved scan support for sites with non-standard directory structures
|
190 |
+
* Improvement: Increased accuracy of executable PHP upload detection
|
191 |
+
* Improvement: Addressed various deprecation notices with PHP 8.1
|
192 |
+
* Improvement: Improved handling of invalidated license keys
|
193 |
+
* Fix: Corrected lost password redirect URL when used with WooCommerce
|
194 |
+
* Fix: Prevented errors when live traffic data exceeds database column length
|
195 |
+
* Fix: Prevented bulk password resets from locking out admins
|
196 |
+
* Fix: Corrected issue that prevented saving country blocking settings in certain cases
|
197 |
+
* Change: Updated copyright information
|
198 |
+
|
199 |
= 7.5.9 - March 22, 2022 =
|
200 |
* Improvement: Updated GeoIP database
|
201 |
* Improvement: Removed blocking data update logic in order to reduce timeouts
|
vendor/wordfence/wf-waf/src/init.php
CHANGED
@@ -19,6 +19,7 @@ require_once WFWAF_LIB_PATH . 'waf.php';
|
|
19 |
require_once WFWAF_LIB_PATH . 'utils.php';
|
20 |
require_once WFWAF_LIB_PATH . 'i18n.php';
|
21 |
require_once WFWAF_LIB_PATH . 'xmlrpc.php';
|
|
|
22 |
|
23 |
require_once WFWAF_LIB_PATH . 'storage.php';
|
24 |
require_once WFWAF_LIB_PATH . 'storage/file.php';
|
@@ -33,4 +34,4 @@ require_once WFWAF_LIB_PATH . 'parser/sqli.php';
|
|
33 |
|
34 |
require_once WFWAF_LIB_PATH . 'request.php';
|
35 |
require_once WFWAF_LIB_PATH . 'http.php';
|
36 |
-
require_once WFWAF_LIB_PATH . 'view.php';
|
19 |
require_once WFWAF_LIB_PATH . 'utils.php';
|
20 |
require_once WFWAF_LIB_PATH . 'i18n.php';
|
21 |
require_once WFWAF_LIB_PATH . 'xmlrpc.php';
|
22 |
+
require_once WFWAF_LIB_PATH . 'shutdown.php';
|
23 |
|
24 |
require_once WFWAF_LIB_PATH . 'storage.php';
|
25 |
require_once WFWAF_LIB_PATH . 'storage/file.php';
|
34 |
|
35 |
require_once WFWAF_LIB_PATH . 'request.php';
|
36 |
require_once WFWAF_LIB_PATH . 'http.php';
|
37 |
+
require_once WFWAF_LIB_PATH . 'view.php';
|
vendor/wordfence/wf-waf/src/lib/rules.php
CHANGED
@@ -452,6 +452,56 @@ class wfWAFRuleLogicalOperator implements wfWAFRuleInterface {
|
|
452 |
}
|
453 |
}
|
454 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
455 |
class wfWAFRuleComparison implements wfWAFRuleInterface {
|
456 |
|
457 |
private $matches;
|
@@ -893,186 +943,161 @@ class wfWAFRuleComparison implements wfWAFRuleInterface {
|
|
893 |
if ($backtrackLimit !== false) { ini_set('pcre.backtrack_limit', $backtrackLimit); }
|
894 |
return false;
|
895 |
}
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
-
$files = $request->getFiles();
|
900 |
-
if (!is_array($files)) {
|
901 |
return false;
|
902 |
-
|
903 |
-
|
904 |
-
|
905 |
-
|
906 |
-
|
907 |
-
|
908 |
-
|
909 |
-
|
910 |
-
|
911 |
-
|
912 |
-
|
913 |
-
|
914 |
-
|
915 |
-
|
916 |
-
|
917 |
-
|
918 |
-
|
919 |
-
|
920 |
-
|
921 |
-
|
922 |
-
|
923 |
-
|
924 |
-
|
925 |
-
$
|
926 |
-
|
927 |
-
$
|
928 |
-
|
929 |
-
$totalRead += $actualReadsize;
|
930 |
-
if ($totalRead < 1) {
|
931 |
break;
|
932 |
}
|
933 |
-
|
934 |
-
|
935 |
-
|
936 |
-
|
937 |
-
|
938 |
-
|
939 |
-
|
940 |
-
|
941 |
-
|
942 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
943 |
}
|
944 |
-
|
945 |
-
|
946 |
-
|
947 |
-
|
948 |
-
|
949 |
-
|
950 |
-
|
951 |
-
|
952 |
-
|
953 |
-
|
954 |
-
|
955 |
-
|
956 |
-
|
957 |
-
|
958 |
-
|
959 |
-
$tokens = @token_get_all($data);
|
960 |
-
$error = error_get_last();
|
961 |
-
if ($error !== null && stripos($error['message'], 'Unexpected character in input') !== false) {
|
962 |
-
break;
|
963 |
-
}
|
964 |
-
|
965 |
-
if ($error !== null && feof($fh) && stripos($error['message'], 'Unterminated comment') !== false) {
|
966 |
-
break;
|
967 |
-
}
|
968 |
-
|
969 |
-
$offset = 0;
|
970 |
-
foreach ($tokens as $token) {
|
971 |
-
if (is_array($token)) {
|
972 |
-
$offset += strlen($token[1]);
|
973 |
-
switch ($token[0]) {
|
974 |
-
case T_OPEN_TAG:
|
975 |
-
$insideOpenTag = true;
|
976 |
-
$hasOpenParen = false;
|
977 |
-
$hasCloseParen = false;
|
978 |
-
$backtickCount = 0;
|
979 |
-
$possiblyHasExecutablePHP = false;
|
980 |
-
|
981 |
-
if ($error !== null && stripos($error['message'], 'Unterminated comment') !== false) {
|
982 |
-
$testOffset = $offset - strlen($token[1]);
|
983 |
-
$commentStart = strpos($data, '/*', $testOffset);
|
984 |
-
if ($commentStart !== false) {
|
985 |
-
$testBytes = substr($data, $testOffset, $commentStart - $testOffset);
|
986 |
-
$this->_resetErrors();
|
987 |
-
@token_get_all($testBytes);
|
988 |
-
$error = error_get_last();
|
989 |
-
if ($error !== null && stripos($error['message'], 'Unexpected character in input') !== false) {
|
990 |
-
break 3;
|
991 |
-
}
|
992 |
-
}
|
993 |
-
}
|
994 |
-
|
995 |
-
break;
|
996 |
-
|
997 |
-
case T_OPEN_TAG_WITH_ECHO:
|
998 |
-
$insideOpenTag = true;
|
999 |
-
$hasOpenParen = false;
|
1000 |
-
$hasCloseParen = false;
|
1001 |
-
$backtickCount = 0;
|
1002 |
-
$possiblyHasExecutablePHP = true;
|
1003 |
-
|
1004 |
-
if ($error !== null && stripos($error['message'], 'Unterminated comment') !== false) {
|
1005 |
-
$testOffset = $offset - strlen($token[1]);
|
1006 |
-
$commentStart = strpos($data, '/*', $testOffset);
|
1007 |
-
if ($commentStart !== false) {
|
1008 |
-
$testBytes = substr($data, $testOffset, $commentStart - $testOffset);
|
1009 |
-
$this->_resetErrors();
|
1010 |
-
@token_get_all($testBytes);
|
1011 |
-
$error = error_get_last();
|
1012 |
-
if ($error !== null && stripos($error['message'], 'Unexpected character in input') !== false) {
|
1013 |
-
break 3;
|
1014 |
-
}
|
1015 |
-
}
|
1016 |
-
}
|
1017 |
-
|
1018 |
-
break;
|
1019 |
-
|
1020 |
-
case T_CLOSE_TAG:
|
1021 |
-
$insideOpenTag = false;
|
1022 |
-
if ($possiblyHasExecutablePHP) {
|
1023 |
-
$hasExecutablePHP = true; //Assume the echo short tag outputted something useful
|
1024 |
-
}
|
1025 |
-
break 2;
|
1026 |
-
|
1027 |
-
case T_NEW:
|
1028 |
-
case T_CLONE:
|
1029 |
-
case T_ECHO:
|
1030 |
-
case T_PRINT:
|
1031 |
-
case T_REQUIRE:
|
1032 |
-
case T_INCLUDE:
|
1033 |
-
case T_REQUIRE_ONCE:
|
1034 |
-
case T_INCLUDE_ONCE:
|
1035 |
-
case T_HALT_COMPILER:
|
1036 |
-
case T_EXIT:
|
1037 |
-
$hasExecutablePHP = true;
|
1038 |
-
break 2;
|
1039 |
}
|
1040 |
-
|
1041 |
-
|
1042 |
-
$
|
1043 |
-
|
1044 |
-
|
1045 |
-
|
1046 |
-
|
1047 |
-
|
1048 |
-
|
1049 |
-
break;
|
1050 |
-
case '`':
|
1051 |
-
$backtickCount++;
|
1052 |
-
break;
|
1053 |
}
|
1054 |
-
}
|
1055 |
-
if (!$hasExecutablePHP && (($hasOpenParen && $hasCloseParen) || ($backtickCount > 1 && $backtickCount % 2 === 0))) {
|
1056 |
-
$hasExecutablePHP = true;
|
1057 |
break;
|
1058 |
-
}
|
1059 |
}
|
1060 |
-
|
1061 |
-
|
1062 |
-
|
1063 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1064 |
}
|
1065 |
-
|
1066 |
-
$wrappedTokenCheckBytes = substr($data, - min($maxTokenSize, $actualReadsize));
|
1067 |
}
|
1068 |
-
|
|
|
|
|
1069 |
fclose($fh);
|
|
|
1070 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1071 |
}
|
1072 |
-
|
|
|
|
|
|
|
|
|
|
|
1073 |
return false;
|
1074 |
}
|
1075 |
-
|
1076 |
private function _resetErrors() {
|
1077 |
if (function_exists('error_clear_last')) {
|
1078 |
error_clear_last();
|
452 |
}
|
453 |
}
|
454 |
|
455 |
+
class wfWAFPhpBlock {
|
456 |
+
public $echoTag;
|
457 |
+
public $shortTag;
|
458 |
+
public $openParentheses = 0, $closedParentheses = 0;
|
459 |
+
public $backtickCount = 0;
|
460 |
+
public $badCharacter = false;
|
461 |
+
public $mismatchedParentheses = false;
|
462 |
+
|
463 |
+
public function __construct($echoTag = false, $shortTag = false) {
|
464 |
+
$this->echoTag = $echoTag;
|
465 |
+
$this->shortTag = $shortTag;
|
466 |
+
}
|
467 |
+
|
468 |
+
public function hasParentheses() {
|
469 |
+
return $this->openParentheses > 0 && $this->closedParentheses === $this->openParentheses;
|
470 |
+
}
|
471 |
+
|
472 |
+
public function hasBacktickPair() {
|
473 |
+
return $this->backtickCount > 0 && $this->backtickCount % 2 === 0;
|
474 |
+
}
|
475 |
+
|
476 |
+
public function hasParenthesesOrBacktickPair() {
|
477 |
+
return $this->hasParentheses() || $this->hasBacktickPair();
|
478 |
+
}
|
479 |
+
|
480 |
+
public function hasMismatchedParentheses() {
|
481 |
+
return $this->mismatchedParentheses || $this->closedParentheses !== $this->openParentheses;
|
482 |
+
}
|
483 |
+
|
484 |
+
public function hasSyntaxError() {
|
485 |
+
if (version_compare(phpversion(), '8.0.0', '>=')) {
|
486 |
+
return $this->badCharacter;
|
487 |
+
}
|
488 |
+
return $this->hasMismatchedParentheses();
|
489 |
+
}
|
490 |
+
|
491 |
+
public static function isValid($phpBlock) {
|
492 |
+
return $phpBlock !== null && !$phpBlock->hasSyntaxError();
|
493 |
+
}
|
494 |
+
|
495 |
+
public static function extend($phpBlock, $echoTag = false, $shortTag = false) {
|
496 |
+
if ($phpBlock === null)
|
497 |
+
$phpBlock = new self();
|
498 |
+
$phpBlock->open = true;
|
499 |
+
$phpBlock->echoTag = $echoTag;
|
500 |
+
$phpBlock->shortTag = $shortTag;
|
501 |
+
return $phpBlock;
|
502 |
+
}
|
503 |
+
}
|
504 |
+
|
505 |
class wfWAFRuleComparison implements wfWAFRuleInterface {
|
506 |
|
507 |
private $matches;
|
943 |
if ($backtrackLimit !== false) { ini_set('pcre.backtrack_limit', $backtrackLimit); }
|
944 |
return false;
|
945 |
}
|
946 |
+
|
947 |
+
private function checkForPhp($path) {
|
948 |
+
if (!is_file($path))
|
|
|
|
|
949 |
return false;
|
950 |
+
$fh = @fopen($path, 'r');
|
951 |
+
if ($fh === false)
|
952 |
+
return false;
|
953 |
+
//T_BAD_CHARACTER is only available since PHP 7.4.0 and before 7.0.0
|
954 |
+
$T_BAD_CHARACTER = defined('T_BAD_CHARACTER') ? T_BAD_CHARACTER : 10001;
|
955 |
+
$phpBlock = null;
|
956 |
+
$wrappedTokenCheckBytes = '';
|
957 |
+
$maxTokenSize = 15; //__halt_compiler
|
958 |
+
$possibleWrappedTokens = array('<?php', '<?=', '<?', '?>', 'exit', 'new', 'clone', 'echo', 'print', 'require', 'include', 'require_once', 'include_once', '__halt_compiler');
|
959 |
+
|
960 |
+
$readsize = 1024 * 1024; //1MB chunks
|
961 |
+
$iteration = 0;
|
962 |
+
$shortOpenTagEnabled = (bool) ini_get('short_open_tag');
|
963 |
+
do {
|
964 |
+
$data = fread($fh, $readsize);
|
965 |
+
$actualReadsize = strlen($data);
|
966 |
+
if ($actualReadsize === 0)
|
967 |
+
break;
|
968 |
+
|
969 |
+
//Make sure we didn't miss PHP split over a chunking boundary
|
970 |
+
$wrappedCheckLength = strlen($wrappedTokenCheckBytes);
|
971 |
+
if ($wrappedCheckLength > 0) {
|
972 |
+
$testBytes = $wrappedTokenCheckBytes . substr($data, 0, min($maxTokenSize, $actualReadsize));
|
973 |
+
foreach ($possibleWrappedTokens as $t) {
|
974 |
+
$position = strpos($testBytes, $t);
|
975 |
+
if ($position !== false && $position < $wrappedCheckLength && $position + strlen($t) >= $wrappedCheckLength) { //Found a token that starts before this segment of data and ends within it
|
976 |
+
$data = substr($wrappedTokenCheckBytes, $position) . $data;
|
|
|
|
|
977 |
break;
|
978 |
}
|
979 |
+
}
|
980 |
+
}
|
981 |
+
|
982 |
+
$prepended = NULL;
|
983 |
+
|
984 |
+
//Make sure it tokenizes correctly if chunked
|
985 |
+
if ($phpBlock !== null) {
|
986 |
+
if ($phpBlock->echoTag) {
|
987 |
+
$data = '<?= ' . $data;
|
988 |
+
$prepended = T_OPEN_TAG_WITH_ECHO;
|
989 |
+
}
|
990 |
+
else {
|
991 |
+
$data = '<?php ' . $data;
|
992 |
+
$prepended = T_OPEN_TAG;
|
993 |
+
}
|
994 |
+
}
|
995 |
+
|
996 |
+
//Tokenize the data and check for PHP
|
997 |
+
$this->_resetErrors();
|
998 |
+
$tokens = @token_get_all($data);
|
999 |
+
$error = error_get_last();
|
1000 |
+
|
1001 |
+
if ($error !== null && feof($fh) && stripos($error['message'], 'Unterminated comment') !== false)
|
1002 |
+
break;
|
1003 |
+
|
1004 |
+
$firstToken = reset($tokens);
|
1005 |
+
if (is_array($firstToken) && $firstToken[0] === $prepended)
|
1006 |
+
array_shift($tokens); //Ignore the prepended token; it is only relevant for token_get_all
|
1007 |
+
|
1008 |
+
$offset = 0;
|
1009 |
+
foreach ($tokens as $token) {
|
1010 |
+
if (is_array($token)) {
|
1011 |
+
$offset += strlen($token[1]);
|
1012 |
+
switch ($token[0]) {
|
1013 |
+
case T_OPEN_TAG:
|
1014 |
+
$phpBlock = wfWAFPhpBlock::extend($phpBlock, false, $token[1] === '<?');
|
1015 |
+
break;
|
1016 |
+
case T_OPEN_TAG_WITH_ECHO:
|
1017 |
+
$phpBlock = wfWAFPhpBlock::extend($phpBlock, true);
|
1018 |
+
break;
|
1019 |
+
case T_CLOSE_TAG:
|
1020 |
+
if (wfWAFPhpBlock::isValid($phpBlock) && ($phpBlock->echoTag || $phpBlock->hasParenthesesOrBacktickPair())) {
|
1021 |
+
fclose($fh);
|
1022 |
+
return true;
|
1023 |
}
|
1024 |
+
$phpBlock->open = false;
|
1025 |
+
break;
|
1026 |
+
case T_NEW:
|
1027 |
+
case T_CLONE:
|
1028 |
+
case T_ECHO:
|
1029 |
+
case T_PRINT:
|
1030 |
+
case T_REQUIRE:
|
1031 |
+
case T_INCLUDE:
|
1032 |
+
case T_REQUIRE_ONCE:
|
1033 |
+
case T_INCLUDE_ONCE:
|
1034 |
+
case T_HALT_COMPILER:
|
1035 |
+
case T_EXIT:
|
1036 |
+
if (wfWAFPhpBlock::isValid($phpBlock)) {
|
1037 |
+
fclose($fh);
|
1038 |
+
return true;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1039 |
}
|
1040 |
+
break;
|
1041 |
+
case $T_BAD_CHARACTER:
|
1042 |
+
if ($phpBlock !== null)
|
1043 |
+
$phpBlock->badCharacter = true;
|
1044 |
+
break;
|
1045 |
+
case T_STRING:
|
1046 |
+
if (!$phpBlock->shortTag && preg_match('/^[A-z0-9_]{3,}$/', $token[1]) && function_exists($token[1])) {
|
1047 |
+
fclose($fh);
|
1048 |
+
return true;
|
|
|
|
|
|
|
|
|
1049 |
}
|
|
|
|
|
|
|
1050 |
break;
|
|
|
1051 |
}
|
1052 |
+
}
|
1053 |
+
else {
|
1054 |
+
$offset += strlen($token);
|
1055 |
+
if ($phpBlock !== null) {
|
1056 |
+
switch ($token) {
|
1057 |
+
case '(':
|
1058 |
+
$phpBlock->openParentheses++;
|
1059 |
+
break;
|
1060 |
+
case ')':
|
1061 |
+
if ($phpBlock->openParentheses > $phpBlock->closedParentheses)
|
1062 |
+
$phpBlock->closedParentheses++;
|
1063 |
+
else
|
1064 |
+
$phpBlock->mismatchedParentheses = true;
|
1065 |
+
break;
|
1066 |
+
case '`':
|
1067 |
+
$phpBlock->backtickCount++;
|
1068 |
+
break;
|
1069 |
+
}
|
1070 |
}
|
|
|
|
|
1071 |
}
|
1072 |
+
}
|
1073 |
+
|
1074 |
+
if (wfWAFPhpBlock::isValid($phpBlock) && $phpBlock->hasParenthesesOrBacktickPair()) {
|
1075 |
fclose($fh);
|
1076 |
+
return true;
|
1077 |
}
|
1078 |
+
|
1079 |
+
$wrappedTokenCheckBytes = substr($data, - min($maxTokenSize, $actualReadsize));
|
1080 |
+
} while (!feof($fh));
|
1081 |
+
|
1082 |
+
fclose($fh);
|
1083 |
+
return false;
|
1084 |
+
}
|
1085 |
+
|
1086 |
+
public function fileHasPHP($subject) {
|
1087 |
+
$request = $this->getWAF()->getRequest();
|
1088 |
+
$files = $request->getFiles();
|
1089 |
+
if (!is_array($files)) {
|
1090 |
+
return false;
|
1091 |
}
|
1092 |
+
|
1093 |
+
foreach ($files as $file) {
|
1094 |
+
if ($file['name'] === (string) $subject && $this->checkForPhp($file['tmp_name']))
|
1095 |
+
return true;
|
1096 |
+
}
|
1097 |
+
|
1098 |
return false;
|
1099 |
}
|
1100 |
+
|
1101 |
private function _resetErrors() {
|
1102 |
if (function_exists('error_clear_last')) {
|
1103 |
error_clear_last();
|
vendor/wordfence/wf-waf/src/lib/shutdown.php
ADDED
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class wfShutdownFunction {
|
4 |
+
|
5 |
+
private $callable;
|
6 |
+
private $priority;
|
7 |
+
|
8 |
+
public function __construct($callable, $priority) {
|
9 |
+
$this->callable = $callable;
|
10 |
+
$this->priority = $priority;
|
11 |
+
}
|
12 |
+
|
13 |
+
public function invoke() {
|
14 |
+
call_user_func($this->callable);
|
15 |
+
}
|
16 |
+
|
17 |
+
public function getPriority() {
|
18 |
+
return $this->priority;
|
19 |
+
}
|
20 |
+
|
21 |
+
public function __wakeup() {
|
22 |
+
$this->callable = function() {};
|
23 |
+
}
|
24 |
+
|
25 |
+
}
|
26 |
+
|
27 |
+
class wfShutdownRegistry {
|
28 |
+
|
29 |
+
private static $instance = null;
|
30 |
+
|
31 |
+
const PRIORITY_LAST = 100;
|
32 |
+
|
33 |
+
private $functions = array();
|
34 |
+
private $registered = false;
|
35 |
+
|
36 |
+
public function handleShutdown() {
|
37 |
+
usort($this->functions, function ($a, $b) {
|
38 |
+
return $a->getPriority() - $b->getPriority();
|
39 |
+
});
|
40 |
+
foreach ($this->functions as $function) {
|
41 |
+
$function->invoke();
|
42 |
+
}
|
43 |
+
}
|
44 |
+
|
45 |
+
public function register($function, $priority = 50) {
|
46 |
+
array_push($this->functions, new wfShutdownFunction($function, $priority));
|
47 |
+
$this->registerSelf();
|
48 |
+
}
|
49 |
+
|
50 |
+
private function registerSelf() {
|
51 |
+
if (!$this->registered) {
|
52 |
+
register_shutdown_function(array($this, 'handleShutdown'));
|
53 |
+
$this->registered = true;
|
54 |
+
}
|
55 |
+
}
|
56 |
+
|
57 |
+
public function __wakeup() {
|
58 |
+
$this->functions = array();
|
59 |
+
$this->registered = false;
|
60 |
+
}
|
61 |
+
|
62 |
+
public static function getDefaultInstance() {
|
63 |
+
if (self::$instance === null)
|
64 |
+
self::$instance = new self();
|
65 |
+
return self::$instance;
|
66 |
+
}
|
67 |
+
|
68 |
+
}
|
vendor/wordfence/wf-waf/src/lib/storage/mysql.php
CHANGED
@@ -19,6 +19,7 @@ class wfWAFStorageMySQL implements wfWAFStorageInterface {
|
|
19 |
private $dataChanged = false;
|
20 |
private $data = array();
|
21 |
private $dataToSave = array();
|
|
|
22 |
|
23 |
public $installing = false;
|
24 |
|
@@ -26,9 +27,10 @@ class wfWAFStorageMySQL implements wfWAFStorageInterface {
|
|
26 |
* @param wfWAFStorageEngineDatabase $engine
|
27 |
* @param string $tablePrefix
|
28 |
*/
|
29 |
-
public function __construct($engine, $tablePrefix = 'wp_') {
|
30 |
$this->db = $engine;
|
31 |
$this->tablePrefix = $tablePrefix;
|
|
|
32 |
}
|
33 |
|
34 |
public function usingLowercase() {
|
@@ -100,6 +102,8 @@ class wfWAFStorageMySQL implements wfWAFStorageInterface {
|
|
100 |
$data = array();
|
101 |
foreach ($results as $row) {
|
102 |
$actionData = wfWAFUtils::json_decode($row['actionData'], true);
|
|
|
|
|
103 |
$data[] = array(
|
104 |
$row['attackLogTime'],
|
105 |
$row['ctime'],
|
@@ -137,6 +141,8 @@ class wfWAFStorageMySQL implements wfWAFStorageInterface {
|
|
137 |
$data = array();
|
138 |
foreach ($results as $row) {
|
139 |
$actionData = wfWAFUtils::json_decode($row['actionData'], true);
|
|
|
|
|
140 |
$data[] = array(
|
141 |
$row['attackLogTime'],
|
142 |
$row['ctime'],
|
@@ -210,6 +216,16 @@ class wfWAFStorageMySQL implements wfWAFStorageInterface {
|
|
210 |
}
|
211 |
}
|
212 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
213 |
$row = array(
|
214 |
'attackLogTime' => microtime(true),
|
215 |
'ctime' => $request->getTimestamp(),
|
@@ -222,20 +238,13 @@ class wfWAFStorageMySQL implements wfWAFStorageInterface {
|
|
222 |
'referer' => $referer,
|
223 |
'UA' => $ua,
|
224 |
'action' => $action,
|
225 |
-
'actionData' =>
|
226 |
-
'failedRules' => $failedRulesString,
|
227 |
-
'paramKey' => base64_encode($failedParamKey),
|
228 |
-
'paramValue' => base64_encode($failedParamValue),
|
229 |
-
'path' => base64_encode($request->getPath()),
|
230 |
-
'fullRequest' => base64_encode($request),
|
231 |
-
'requestMetadata' => $request->getMetadata(),
|
232 |
-
)),
|
233 |
);
|
234 |
|
235 |
try {
|
236 |
return $this->db->insert($table, $row);
|
237 |
} catch (wfWAFStorageEngineMySQLiException $e) { // Let the firewall block the request without logging.
|
238 |
-
error_log($e->getMessage());
|
239 |
return false;
|
240 |
}
|
241 |
}
|
@@ -345,7 +354,7 @@ class wfWAFStorageMySQL implements wfWAFStorageInterface {
|
|
345 |
|
346 |
if (!$this->dataChanged && $changedConfigValue) {
|
347 |
$this->dataChanged = array($category, $key, true);
|
348 |
-
|
349 |
}
|
350 |
if ($changedConfigValue) {
|
351 |
$this->dataToSave[$category][$key] = $value;
|
@@ -1130,4 +1139,4 @@ class wfWAFStorageEngineMySQLi implements wfWAFStorageEngineDatabase {
|
|
1130 |
|
1131 |
class wfWAFStorageEngineMySQLiException extends wfWAFException {
|
1132 |
|
1133 |
-
}
|
19 |
private $dataChanged = false;
|
20 |
private $data = array();
|
21 |
private $dataToSave = array();
|
22 |
+
private $shutdownRegistry = null;
|
23 |
|
24 |
public $installing = false;
|
25 |
|
27 |
* @param wfWAFStorageEngineDatabase $engine
|
28 |
* @param string $tablePrefix
|
29 |
*/
|
30 |
+
public function __construct($engine, $tablePrefix = 'wp_', $shutdownRegistry = null) {
|
31 |
$this->db = $engine;
|
32 |
$this->tablePrefix = $tablePrefix;
|
33 |
+
$this->shutdownRegistry = $shutdownRegistry;
|
34 |
}
|
35 |
|
36 |
public function usingLowercase() {
|
102 |
$data = array();
|
103 |
foreach ($results as $row) {
|
104 |
$actionData = wfWAFUtils::json_decode($row['actionData'], true);
|
105 |
+
if (!is_array($actionData))
|
106 |
+
$actionData = array();
|
107 |
$data[] = array(
|
108 |
$row['attackLogTime'],
|
109 |
$row['ctime'],
|
141 |
$data = array();
|
142 |
foreach ($results as $row) {
|
143 |
$actionData = wfWAFUtils::json_decode($row['actionData'], true);
|
144 |
+
if (!is_array($actionData))
|
145 |
+
$actionData = array();
|
146 |
$data[] = array(
|
147 |
$row['attackLogTime'],
|
148 |
$row['ctime'],
|
216 |
}
|
217 |
}
|
218 |
|
219 |
+
$attackData = array(
|
220 |
+
'failedRules' => $failedRulesString,
|
221 |
+
'paramKey' => base64_encode($failedParamKey),
|
222 |
+
'paramValue' => base64_encode($failedParamValue),
|
223 |
+
'path' => base64_encode($request->getPath()),
|
224 |
+
'fullRequest' => base64_encode($request),
|
225 |
+
'requestMetadata' => $request->getMetadata(),
|
226 |
+
);
|
227 |
+
$attackDataJson = wfWAFUtils::json_encode_limited($attackData, 65535, array('fullRequest', 'paramValue'));
|
228 |
+
|
229 |
$row = array(
|
230 |
'attackLogTime' => microtime(true),
|
231 |
'ctime' => $request->getTimestamp(),
|
238 |
'referer' => $referer,
|
239 |
'UA' => $ua,
|
240 |
'action' => $action,
|
241 |
+
'actionData' => $attackDataJson
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
242 |
);
|
243 |
|
244 |
try {
|
245 |
return $this->db->insert($table, $row);
|
246 |
} catch (wfWAFStorageEngineMySQLiException $e) { // Let the firewall block the request without logging.
|
247 |
+
error_log('Failed to log attack data: ' . $e->getMessage());
|
248 |
return false;
|
249 |
}
|
250 |
}
|
354 |
|
355 |
if (!$this->dataChanged && $changedConfigValue) {
|
356 |
$this->dataChanged = array($category, $key, true);
|
357 |
+
$this->shutdownRegistry->register(array($this, 'saveConfig'), wfShutdownRegistry::PRIORITY_LAST);
|
358 |
}
|
359 |
if ($changedConfigValue) {
|
360 |
$this->dataToSave[$category][$key] = $value;
|
1139 |
|
1140 |
class wfWAFStorageEngineMySQLiException extends wfWAFException {
|
1141 |
|
1142 |
+
}
|
vendor/wordfence/wf-waf/src/lib/utils.php
CHANGED
@@ -184,6 +184,40 @@ class wfWAFUtils {
|
|
184 |
return is_array($data) ? array_map('wfWAFUtils::_json_decode_object_helper', $data) : $data;
|
185 |
}
|
186 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
187 |
/**
|
188 |
* Compare two strings in constant time. It can leak the length of a string.
|
189 |
*
|
@@ -1191,5 +1225,10 @@ class wfWAFUtils {
|
|
1191 |
}
|
1192 |
return true;
|
1193 |
}
|
|
|
|
|
|
|
|
|
|
|
1194 |
}
|
1195 |
-
}
|
184 |
return is_array($data) ? array_map('wfWAFUtils::_json_decode_object_helper', $data) : $data;
|
185 |
}
|
186 |
|
187 |
+
public static function json_encode_limited($data, $limit, $truncatable) {
|
188 |
+
$json = self::json_encode($data);
|
189 |
+
$size = strlen($json);
|
190 |
+
if ($size > $limit) {
|
191 |
+
$json = null;
|
192 |
+
$minimalData = $data;
|
193 |
+
foreach ($minimalData as $key => &$value) {
|
194 |
+
if (in_array($key, $truncatable)) {
|
195 |
+
$value = '';
|
196 |
+
}
|
197 |
+
}
|
198 |
+
$minimumSize = strlen(self::json_encode($minimalData));
|
199 |
+
if ($minimumSize <= $limit) {
|
200 |
+
$excess = $size - $limit;
|
201 |
+
foreach ($truncatable as $field) {
|
202 |
+
if (!array_key_exists($field, $data))
|
203 |
+
continue;
|
204 |
+
$value = $data[$field];
|
205 |
+
if (is_string($value)) {
|
206 |
+
$originalLength = strlen($value);
|
207 |
+
$truncatedLength = max(0, $originalLength - $excess);
|
208 |
+
$excess -= ($originalLength - $truncatedLength);
|
209 |
+
$data[$field] = substr($value, 0, $truncatedLength);
|
210 |
+
}
|
211 |
+
if ($excess === 0) {
|
212 |
+
$json = self::json_encode($data);
|
213 |
+
break;
|
214 |
+
}
|
215 |
+
}
|
216 |
+
}
|
217 |
+
}
|
218 |
+
return $json;
|
219 |
+
}
|
220 |
+
|
221 |
/**
|
222 |
* Compare two strings in constant time. It can leak the length of a string.
|
223 |
*
|
1225 |
}
|
1226 |
return true;
|
1227 |
}
|
1228 |
+
|
1229 |
+
public static function isVersionBelow($target, $compared) {
|
1230 |
+
return $compared === null || version_compare($compared, $target, '<');
|
1231 |
+
}
|
1232 |
+
|
1233 |
}
|
1234 |
+
}
|
vendor/wordfence/wf-waf/src/lib/waf.php
CHANGED
@@ -435,7 +435,7 @@ auEa+7b+FGTKs7dUo2BNGR7OVifK4GZ8w/ajS0TelhrSRi3BBQCGXLzUO/UURUAh
|
|
435 |
|
436 |
protected function runMigrations() {
|
437 |
$currentVersion = $this->getStorageEngine()->getConfig('version');
|
438 |
-
if (
|
439 |
if (!$currentVersion) {
|
440 |
$cron = array(
|
441 |
new wfWAFCronFetchRulesEvent(time() +
|
@@ -455,13 +455,13 @@ auEa+7b+FGTKs7dUo2BNGR7OVifK4GZ8w/ajS0TelhrSRi3BBQCGXLzUO/UURUAh
|
|
455 |
$this->getStorageEngine()->setConfig('cron', $cron, 'livewaf');
|
456 |
}
|
457 |
|
458 |
-
if (
|
459 |
$event = new wfWAFCronFetchRulesEvent(time() - 2);
|
460 |
$event->setWaf($this);
|
461 |
$event->fire();
|
462 |
}
|
463 |
|
464 |
-
if (
|
465 |
$this->getStorageEngine()->purgeIPBlocks();
|
466 |
|
467 |
$cron = (array) $this->getStorageEngine()->getConfig('cron', null, 'livewaf');
|
@@ -475,7 +475,7 @@ auEa+7b+FGTKs7dUo2BNGR7OVifK4GZ8w/ajS0TelhrSRi3BBQCGXLzUO/UURUAh
|
|
475 |
$event->fire();
|
476 |
}
|
477 |
|
478 |
-
if (
|
479 |
$movedKeys = array(
|
480 |
'whitelistedURLParams' => 'livewaf',
|
481 |
'cron' => 'livewaf',
|
@@ -1442,7 +1442,10 @@ HTML
|
|
1442 |
}
|
1443 |
|
1444 |
public function fileList() {
|
1445 |
-
$fileList = array(
|
|
|
|
|
|
|
1446 |
if (method_exists($this->getStorageEngine(), 'fileList')) {
|
1447 |
$fileList = array_merge($fileList, $this->getStorageEngine()->fileList());
|
1448 |
}
|
435 |
|
436 |
protected function runMigrations() {
|
437 |
$currentVersion = $this->getStorageEngine()->getConfig('version');
|
438 |
+
if (wfWAFUtils::isVersionBelow(WFWAF_VERSION, $currentVersion)) {
|
439 |
if (!$currentVersion) {
|
440 |
$cron = array(
|
441 |
new wfWAFCronFetchRulesEvent(time() +
|
455 |
$this->getStorageEngine()->setConfig('cron', $cron, 'livewaf');
|
456 |
}
|
457 |
|
458 |
+
if (wfWAFUtils::isVersionBelow('1.0.2', $currentVersion)) {
|
459 |
$event = new wfWAFCronFetchRulesEvent(time() - 2);
|
460 |
$event->setWaf($this);
|
461 |
$event->fire();
|
462 |
}
|
463 |
|
464 |
+
if (wfWAFUtils::isVersionBelow('1.0.3', $currentVersion)) {
|
465 |
$this->getStorageEngine()->purgeIPBlocks();
|
466 |
|
467 |
$cron = (array) $this->getStorageEngine()->getConfig('cron', null, 'livewaf');
|
475 |
$event->fire();
|
476 |
}
|
477 |
|
478 |
+
if (wfWAFUtils::isVersionBelow('1.0.4', $currentVersion)) {
|
479 |
$movedKeys = array(
|
480 |
'whitelistedURLParams' => 'livewaf',
|
481 |
'cron' => 'livewaf',
|
1442 |
}
|
1443 |
|
1444 |
public function fileList() {
|
1445 |
+
$fileList = array();
|
1446 |
+
$rulesFile = $this->getCompiledRulesFile();
|
1447 |
+
if ($rulesFile !== null)
|
1448 |
+
array_push($fileList, $rulesFile);
|
1449 |
if (method_exists($this->getStorageEngine(), 'fileList')) {
|
1450 |
$fileList = array_merge($fileList, $this->getStorageEngine()->fileList());
|
1451 |
}
|
views/dashboard/options-group-license.php
CHANGED
@@ -49,6 +49,9 @@ if (!isset($collapseable)) {
|
|
49 |
else if (wfLicense::current()->isExpired()) {
|
50 |
echo esc_html(sprintf(__('%s License Expired', 'wordfence'), wfLicense::current()->getTypeLabel(false)));
|
51 |
}
|
|
|
|
|
|
|
52 |
else {
|
53 |
echo esc_html(sprintf(__('%s License Active', 'wordfence'), wfLicense::current()->getTypeLabel()));
|
54 |
}
|
@@ -63,6 +66,9 @@ if (!isset($collapseable)) {
|
|
63 |
<?php elseif (wfLicense::current()->isPaidAndCurrent()): ?>
|
64 |
<a href="https://www.wordfence.com/gnl1optMngKys/licenses/" target="_blank" rel="noopener noreferrer" class=""><?php echo esc_html_e('Click here to manage your Wordfence licenses', 'wordfence'); ?><span class="screen-reader-text"> (<?php esc_html_e('opens in new tab', 'wordfence') ?>)</span></a>
|
65 |
<?php else: ?>
|
|
|
|
|
|
|
66 |
<a href="https://www.wordfence.com/gnl1optUpgrade/products/pricing/" target="_blank" rel="noopener noreferrer" class="wf-btn wf-btn-primary wf-btn-callout-subtle"><?php esc_html_e('Upgrade to Premium', 'wordfence'); ?><span class="screen-reader-text"> (<?php esc_html_e('opens in new tab', 'wordfence') ?>)</span></a>
|
67 |
<?php endif ?>
|
68 |
<a href="#" class="wf-btn wf-btn-primary wf-btn-callout-subtle" style="display: none;" id="wf-install-license" role="button"><?php esc_html_e('Install License', 'wordfence'); ?></a>
|
@@ -139,6 +145,11 @@ if (!isset($collapseable)) {
|
|
139 |
})(jQuery);
|
140 |
</script>
|
141 |
</li>
|
|
|
|
|
|
|
|
|
|
|
142 |
</ul>
|
143 |
</li>
|
144 |
</ul>
|
49 |
else if (wfLicense::current()->isExpired()) {
|
50 |
echo esc_html(sprintf(__('%s License Expired', 'wordfence'), wfLicense::current()->getTypeLabel(false)));
|
51 |
}
|
52 |
+
else if (wfLicense::current()->getKeyType() === wfLicense::KEY_TYPE_PAID_DELETED) {
|
53 |
+
esc_html_e('Premium License Deactivated', 'wordfence');
|
54 |
+
}
|
55 |
else {
|
56 |
echo esc_html(sprintf(__('%s License Active', 'wordfence'), wfLicense::current()->getTypeLabel()));
|
57 |
}
|
66 |
<?php elseif (wfLicense::current()->isPaidAndCurrent()): ?>
|
67 |
<a href="https://www.wordfence.com/gnl1optMngKys/licenses/" target="_blank" rel="noopener noreferrer" class=""><?php echo esc_html_e('Click here to manage your Wordfence licenses', 'wordfence'); ?><span class="screen-reader-text"> (<?php esc_html_e('opens in new tab', 'wordfence') ?>)</span></a>
|
68 |
<?php else: ?>
|
69 |
+
<?php if (wfLicense::current()->getKeyType() === wfLicense::KEY_TYPE_PAID_DELETED): ?>
|
70 |
+
<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-downgrade-license" role="button"><?php esc_html_e('Remove Invalid License', 'wordfence'); ?></a>
|
71 |
+
<?php endif ?>
|
72 |
<a href="https://www.wordfence.com/gnl1optUpgrade/products/pricing/" target="_blank" rel="noopener noreferrer" class="wf-btn wf-btn-primary wf-btn-callout-subtle"><?php esc_html_e('Upgrade to Premium', 'wordfence'); ?><span class="screen-reader-text"> (<?php esc_html_e('opens in new tab', 'wordfence') ?>)</span></a>
|
73 |
<?php endif ?>
|
74 |
<a href="#" class="wf-btn wf-btn-primary wf-btn-callout-subtle" style="display: none;" id="wf-install-license" role="button"><?php esc_html_e('Install License', 'wordfence'); ?></a>
|
145 |
})(jQuery);
|
146 |
</script>
|
147 |
</li>
|
148 |
+
<?php if (wfLicense::current()->getKeyType() === wfLicense::KEY_TYPE_PAID_DELETED): ?>
|
149 |
+
<li>
|
150 |
+
<p><?php echo wp_kses(__('This was a premium license key, but it is no longer valid, so premium features are disabled. You can either remove the invalid key and continue using Wordfence\'s free features, or enter a new premium key to upgrade. If you have questions, contact <a href="mailto:billing@wordfence.com">billing@wordfence.com</a>.', 'wordfence'), array('a' => array('href' => array()))) ?></p>
|
151 |
+
</li>
|
152 |
+
<?php endif ?>
|
153 |
</ul>
|
154 |
</li>
|
155 |
</ul>
|
views/scanner/issue-configReadable.php
CHANGED
@@ -14,7 +14,7 @@ echo wfView::create('scanner/issue-base', array(
|
|
14 |
__('Details', 'wordfence') => '{{html longMsg}}'
|
15 |
),
|
16 |
'detailControls' => array(
|
17 |
-
'{{if data.fileExists}}<a target="_blank" class="wf-btn wf-btn-default wf-btn-callout-subtle" rel="noopener noreferrer" href="${WFAD.makeViewFileLink(data
|
18 |
'{{if data.canDelete}}<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-issue-control-delete-file" role="button">' . __('Delete File', 'wordfence') . '</a>{{/if}}',
|
19 |
'<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-issue-control-mark-fixed" role="button">' . __('Mark as Fixed', 'wordfence') . '</a>',
|
20 |
),
|
14 |
__('Details', 'wordfence') => '{{html longMsg}}'
|
15 |
),
|
16 |
'detailControls' => array(
|
17 |
+
'{{if data.fileExists}}<a target="_blank" class="wf-btn wf-btn-default wf-btn-callout-subtle" rel="noopener noreferrer" href="${WFAD.makeViewFileLink(data)}">' . __('View File', 'wordfence') . '<span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>{{/if}}',
|
18 |
'{{if data.canDelete}}<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-issue-control-delete-file" role="button">' . __('Delete File', 'wordfence') . '</a>{{/if}}',
|
19 |
'<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-issue-control-mark-fixed" role="button">' . __('Mark as Fixed', 'wordfence') . '</a>',
|
20 |
),
|
views/scanner/issue-coreUnknown.php
CHANGED
@@ -10,7 +10,7 @@ echo wfView::create('scanner/issue-base', array(
|
|
10 |
'summaryControls' => array(wfView::create('scanner/issue-control-ignore', array('ignoreP' => __('Always Ignore Version', 'wordfence'), 'ignoreC' => __('Ignore Until Version Changes', 'wordfence'))), wfView::create('scanner/issue-control-show-details')),
|
11 |
'detailPairs' => array(__('Details', 'wordfence') => '{{html longMsg}}'),
|
12 |
'detailControls' => array(
|
13 |
-
'{{if data.fileExists}}<a target="_blank" class="wf-btn wf-btn-default wf-btn-callout-subtle" rel="noopener noreferrer" href="${WFAD.makeViewFileLink(data
|
14 |
'{{if data.canDelete}}<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-issue-control-delete-file" role="button">' . __('Delete File', 'wordfence') . '</a>{{/if}}',
|
15 |
'<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-issue-control-mark-fixed" role="button">' . __('Mark as Fixed', 'wordfence') . '</a>',
|
16 |
),
|
10 |
'summaryControls' => array(wfView::create('scanner/issue-control-ignore', array('ignoreP' => __('Always Ignore Version', 'wordfence'), 'ignoreC' => __('Ignore Until Version Changes', 'wordfence'))), wfView::create('scanner/issue-control-show-details')),
|
11 |
'detailPairs' => array(__('Details', 'wordfence') => '{{html longMsg}}'),
|
12 |
'detailControls' => array(
|
13 |
+
'{{if data.fileExists}}<a target="_blank" class="wf-btn wf-btn-default wf-btn-callout-subtle" rel="noopener noreferrer" href="${WFAD.makeViewFileLink(data)}">' . __('View File', 'wordfence') . '<span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>{{/if}}',
|
14 |
'{{if data.canDelete}}<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-issue-control-delete-file" role="button">' . __('Delete File', 'wordfence') . '</a>{{/if}}',
|
15 |
'<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-issue-control-mark-fixed" role="button">' . __('Mark as Fixed', 'wordfence') . '</a>',
|
16 |
),
|
views/scanner/issue-file.php
CHANGED
@@ -16,7 +16,7 @@ echo wfView::create('scanner/issue-base', array(
|
|
16 |
__('Details', 'wordfence') => '{{html longMsg}}<br><br>{{if data.wpconfig}}<strong>' . esc_html__('This is your main configuration file and cannot be deleted. It must be cleaned manually.', 'wordfence') . '</strong>{{/if}}',
|
17 |
),
|
18 |
'detailControls' => array(
|
19 |
-
'{{if data.fileExists}}<a target="_blank" class="wf-btn wf-btn-default wf-btn-callout-subtle" rel="noopener noreferrer" href="${WFAD.makeViewFileLink(data
|
20 |
'{{if data.canDiff}}<a target="_blank" class="wf-btn wf-btn-default wf-btn-callout-subtle" rel="noopener noreferrer" href="${WFAD.makeDiffLink(data)}">' . __('View Differences', 'wordfence') . '<span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>{{/if}}',
|
21 |
'{{if data.canDelete}}<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-issue-control-delete-file" role="button">' . __('Delete File', 'wordfence') . '</a>{{/if}}',
|
22 |
'<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-issue-control-mark-fixed" role="button">' . __('Mark as Fixed', 'wordfence') . '</a>',
|
16 |
__('Details', 'wordfence') => '{{html longMsg}}<br><br>{{if data.wpconfig}}<strong>' . esc_html__('This is your main configuration file and cannot be deleted. It must be cleaned manually.', 'wordfence') . '</strong>{{/if}}',
|
17 |
),
|
18 |
'detailControls' => array(
|
19 |
+
'{{if data.fileExists}}<a target="_blank" class="wf-btn wf-btn-default wf-btn-callout-subtle" rel="noopener noreferrer" href="${WFAD.makeViewFileLink(data)}">' . __('View File', 'wordfence') . '<span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>{{/if}}',
|
20 |
'{{if data.canDiff}}<a target="_blank" class="wf-btn wf-btn-default wf-btn-callout-subtle" rel="noopener noreferrer" href="${WFAD.makeDiffLink(data)}">' . __('View Differences', 'wordfence') . '<span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>{{/if}}',
|
21 |
'{{if data.canDelete}}<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-issue-control-delete-file" role="button">' . __('Delete File', 'wordfence') . '</a>{{/if}}',
|
22 |
'<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-issue-control-mark-fixed" role="button">' . __('Mark as Fixed', 'wordfence') . '</a>',
|
views/scanner/issue-knownfile.php
CHANGED
@@ -16,7 +16,7 @@ echo wfView::create('scanner/issue-base', array(
|
|
16 |
__('Details', 'wordfence') => '{{html longMsg}}',
|
17 |
),
|
18 |
'detailControls' => array(
|
19 |
-
'{{if data.fileExists}}<a target="_blank" class="wf-btn wf-btn-default wf-btn-callout-subtle" rel="noopener noreferrer" href="${WFAD.makeViewFileLink(data
|
20 |
'{{if data.canDiff}}<a target="_blank" class="wf-btn wf-btn-default wf-btn-callout-subtle" rel="noopener noreferrer" href="${WFAD.makeDiffLink(data)}">' . __('View Differences', 'wordfence') . '<span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>{{/if}}',
|
21 |
'{{if data.canDelete}}<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-issue-control-delete-file" role="button">' . __('Delete File', 'wordfence') . '</a>{{/if}}',
|
22 |
'<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-issue-control-mark-fixed" role="button">' . __('Mark as Fixed', 'wordfence') . '</a>',
|
16 |
__('Details', 'wordfence') => '{{html longMsg}}',
|
17 |
),
|
18 |
'detailControls' => array(
|
19 |
+
'{{if data.fileExists}}<a target="_blank" class="wf-btn wf-btn-default wf-btn-callout-subtle" rel="noopener noreferrer" href="${WFAD.makeViewFileLink(data)}">' . __('View File', 'wordfence') . '<span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>{{/if}}',
|
20 |
'{{if data.canDiff}}<a target="_blank" class="wf-btn wf-btn-default wf-btn-callout-subtle" rel="noopener noreferrer" href="${WFAD.makeDiffLink(data)}">' . __('View Differences', 'wordfence') . '<span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>{{/if}}',
|
21 |
'{{if data.canDelete}}<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-issue-control-delete-file" role="button">' . __('Delete File', 'wordfence') . '</a>{{/if}}',
|
22 |
'<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-issue-control-mark-fixed" role="button">' . __('Mark as Fixed', 'wordfence') . '</a>',
|
views/scanner/issue-publiclyAccessible.php
CHANGED
@@ -14,7 +14,7 @@ echo wfView::create('scanner/issue-base', array(
|
|
14 |
__('Details', 'wordfence') => '{{html longMsg}}'
|
15 |
),
|
16 |
'detailControls' => array(
|
17 |
-
'{{if data.fileExists}}<a target="_blank" class="wf-btn wf-btn-default wf-btn-callout-subtle" rel="noopener noreferrer" href="${WFAD.makeViewFileLink(data
|
18 |
'{{if data.canDelete}}<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-issue-control-delete-file" role="button">' . __('Delete File', 'wordfence') . '</a>{{/if}}',
|
19 |
'<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-issue-control-mark-fixed" role="button">' . __('Mark as Fixed', 'wordfence') . '</a>',
|
20 |
),
|
14 |
__('Details', 'wordfence') => '{{html longMsg}}'
|
15 |
),
|
16 |
'detailControls' => array(
|
17 |
+
'{{if data.fileExists}}<a target="_blank" class="wf-btn wf-btn-default wf-btn-callout-subtle" rel="noopener noreferrer" href="${WFAD.makeViewFileLink(data)}">' . __('View File', 'wordfence') . '<span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>{{/if}}',
|
18 |
'{{if data.canDelete}}<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-issue-control-delete-file" role="button">' . __('Delete File', 'wordfence') . '</a>{{/if}}',
|
19 |
'<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle wf-issue-control-mark-fixed" role="button">' . __('Mark as Fixed', 'wordfence') . '</a>',
|
20 |
),
|
views/scanner/issue-wpscan_directoryList.php
CHANGED
@@ -14,7 +14,7 @@ echo wfView::create('scanner/issue-base', array(
|
|
14 |
__('Details', 'wordfence') => '{{html longMsg}}'
|
15 |
),
|
16 |
'detailControls' => array(
|
17 |
-
'{{if data.fileExists}}<a target="_blank" class="wf-btn wf-btn-default wf-btn-callout-subtle" rel="noopener noreferrer" href="${WFAD.makeViewFileLink(data
|
18 |
'{{if data.canDelete}}<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle" onclick="WFAD.deleteFile(\'${id}\'); return false;" role="button">' . __('Delete File', 'wordfence') . '</a>{{/if}}',
|
19 |
'<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle" onclick="WFAD.updateIssueStatus(\'${id}\', \'delete\'); return false;" role="button">' . __('Mark as Fixed', 'wordfence') . '</a>',
|
20 |
),
|
14 |
__('Details', 'wordfence') => '{{html longMsg}}'
|
15 |
),
|
16 |
'detailControls' => array(
|
17 |
+
'{{if data.fileExists}}<a target="_blank" class="wf-btn wf-btn-default wf-btn-callout-subtle" rel="noopener noreferrer" href="${WFAD.makeViewFileLink(data)}">' . __('View File', 'wordfence') . '<span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>{{/if}}',
|
18 |
'{{if data.canDelete}}<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle" onclick="WFAD.deleteFile(\'${id}\'); return false;" role="button">' . __('Delete File', 'wordfence') . '</a>{{/if}}',
|
19 |
'<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle" onclick="WFAD.updateIssueStatus(\'${id}\', \'delete\'); return false;" role="button">' . __('Mark as Fixed', 'wordfence') . '</a>',
|
20 |
),
|
views/scanner/issue-wpscan_fullPathDiscl.php
CHANGED
@@ -14,7 +14,7 @@ echo wfView::create('scanner/issue-base', array(
|
|
14 |
__('Details', 'wordfence') => '{{html longMsg}}'
|
15 |
),
|
16 |
'detailControls' => array(
|
17 |
-
'{{if data.fileExists}}<a target="_blank" class="wf-btn wf-btn-default wf-btn-callout-subtle" rel="noopener noreferrer" href="${WFAD.makeViewFileLink(data
|
18 |
'{{if data.canDelete}}<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle" onclick="WFAD.deleteFile(\'${id}\'); return false;" role="button">' . __('Delete File', 'wordfence') . '</a>{{/if}}',
|
19 |
'<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle" onclick="WFAD.updateIssueStatus(\'${id}\', \'delete\'); return false;" role="button">' . __('Mark as Fixed', 'wordfence') . '</a>',
|
20 |
),
|
14 |
__('Details', 'wordfence') => '{{html longMsg}}'
|
15 |
),
|
16 |
'detailControls' => array(
|
17 |
+
'{{if data.fileExists}}<a target="_blank" class="wf-btn wf-btn-default wf-btn-callout-subtle" rel="noopener noreferrer" href="${WFAD.makeViewFileLink(data)}">' . __('View File', 'wordfence') . '<span class="screen-reader-text"> (' . esc_html__('opens in new tab', 'wordfence') . ')</span></a>{{/if}}',
|
18 |
'{{if data.canDelete}}<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle" onclick="WFAD.deleteFile(\'${id}\'); return false;" role="button">' . __('Delete File', 'wordfence') . '</a>{{/if}}',
|
19 |
'<a href="#" class="wf-btn wf-btn-default wf-btn-callout-subtle" onclick="WFAD.updateIssueStatus(\'${id}\', \'delete\'); return false;" role="button">' . __('Mark as Fixed', 'wordfence') . '</a>',
|
20 |
),
|
waf/bootstrap.php
CHANGED
@@ -122,7 +122,8 @@ class wfWAFWordPressRequest extends wfWAFRequest {
|
|
122 |
continue; //This was an array so we can skip to the next item
|
123 |
}
|
124 |
$skipToNext = false;
|
125 |
-
$
|
|
|
126 |
foreach (array(',', ' ', "\t") as $char) {
|
127 |
if (strpos($item, $char) !== false) {
|
128 |
$sp = explode($char, $item);
|
@@ -882,7 +883,7 @@ try {
|
|
882 |
}
|
883 |
|
884 |
if (!empty($wfWAFDBCredentials)) {
|
885 |
-
$wfWAFStorageEngine = new wfWAFWordPressStorageMySQL(new wfWAFStorageEngineMySQLi(), $wfWAFDBCredentials['tablePrefix']);
|
886 |
$wfWAFStorageEngine->getDb()->connect(
|
887 |
$wfWAFDBCredentials['user'],
|
888 |
$wfWAFDBCredentials['pass'],
|
122 |
continue; //This was an array so we can skip to the next item
|
123 |
}
|
124 |
$skipToNext = false;
|
125 |
+
$trustedProxyConfig = wfWAF::getInstance()->getStorageEngine()->getConfig('howGetIPs_trusted_proxies', null, 'synced');
|
126 |
+
$trustedProxies = $trustedProxyConfig === null ? array() : explode("\n", $trustedProxyConfig);
|
127 |
foreach (array(',', ' ', "\t") as $char) {
|
128 |
if (strpos($item, $char) !== false) {
|
129 |
$sp = explode($char, $item);
|
883 |
}
|
884 |
|
885 |
if (!empty($wfWAFDBCredentials)) {
|
886 |
+
$wfWAFStorageEngine = new wfWAFWordPressStorageMySQL(new wfWAFStorageEngineMySQLi(), $wfWAFDBCredentials['tablePrefix'], wfShutdownRegistry::getDefaultInstance());
|
887 |
$wfWAFStorageEngine->getDb()->connect(
|
888 |
$wfWAFDBCredentials['user'],
|
889 |
$wfWAFDBCredentials['pass'],
|
waf/wfWAFIPBlocksController.php
CHANGED
@@ -1,6 +1,8 @@
|
|
1 |
<?php
|
2 |
if (!defined('WFWAF_RUN_COMPLETE')) {
|
3 |
|
|
|
|
|
4 |
class wfWAFIPBlocksController
|
5 |
{
|
6 |
const WFWAF_BLOCK_UAREFIPRANGE = 'UA/Referrer/IP Range not allowed';
|
@@ -41,7 +43,7 @@ class wfWAFIPBlocksController
|
|
41 |
static $willSynchronize = false;
|
42 |
if (!$willSynchronize) {
|
43 |
$willSynchronize = true;
|
44 |
-
|
45 |
}
|
46 |
}
|
47 |
|
@@ -526,4 +528,4 @@ class wfWAFIPBlocksController
|
|
526 |
return false;
|
527 |
}
|
528 |
}
|
529 |
-
}
|
1 |
<?php
|
2 |
if (!defined('WFWAF_RUN_COMPLETE')) {
|
3 |
|
4 |
+
require_once __DIR__ . '/../vendor/wordfence/wf-waf/src/lib/shutdown.php';
|
5 |
+
|
6 |
class wfWAFIPBlocksController
|
7 |
{
|
8 |
const WFWAF_BLOCK_UAREFIPRANGE = 'UA/Referrer/IP Range not allowed';
|
43 |
static $willSynchronize = false;
|
44 |
if (!$willSynchronize) {
|
45 |
$willSynchronize = true;
|
46 |
+
wfShutdownRegistry::getDefaultInstance()->register('wfWAFIPBlocksController::synchronizeConfigSettings');
|
47 |
}
|
48 |
}
|
49 |
|
528 |
return false;
|
529 |
}
|
530 |
}
|
531 |
+
}
|
wordfence.php
CHANGED
@@ -4,7 +4,7 @@ Plugin Name: Wordfence Security
|
|
4 |
Plugin URI: http://www.wordfence.com/
|
5 |
Description: Wordfence Security - Anti-virus, Firewall and Malware Scan
|
6 |
Author: Wordfence
|
7 |
-
Version: 7.5.
|
8 |
Author URI: http://www.wordfence.com/
|
9 |
Text Domain: wordfence
|
10 |
Domain Path: /languages
|
@@ -14,7 +14,7 @@ Requires PHP: 5.3
|
|
14 |
License: GPLv3
|
15 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
16 |
|
17 |
-
@copyright Copyright (C) 2022 Defiant Inc.
|
18 |
@license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License, version 3 or higher
|
19 |
|
20 |
This program is free software: you can redistribute it and/or modify
|
@@ -38,8 +38,8 @@ if(defined('WP_INSTALLING') && WP_INSTALLING){
|
|
38 |
if (!defined('ABSPATH')) {
|
39 |
exit;
|
40 |
}
|
41 |
-
define('WORDFENCE_VERSION', '7.5.
|
42 |
-
define('WORDFENCE_BUILD_NUMBER', '
|
43 |
define('WORDFENCE_BASENAME', function_exists('plugin_basename') ? plugin_basename(__FILE__) :
|
44 |
basename(dirname(__FILE__)) . '/' . basename(__FILE__));
|
45 |
|
4 |
Plugin URI: http://www.wordfence.com/
|
5 |
Description: Wordfence Security - Anti-virus, Firewall and Malware Scan
|
6 |
Author: Wordfence
|
7 |
+
Version: 7.5.10
|
8 |
Author URI: http://www.wordfence.com/
|
9 |
Text Domain: wordfence
|
10 |
Domain Path: /languages
|
14 |
License: GPLv3
|
15 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
16 |
|
17 |
+
@copyright Copyright (C) 2012-2022 Defiant Inc.
|
18 |
@license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License, version 3 or higher
|
19 |
|
20 |
This program is free software: you can redistribute it and/or modify
|
38 |
if (!defined('ABSPATH')) {
|
39 |
exit;
|
40 |
}
|
41 |
+
define('WORDFENCE_VERSION', '7.5.10');
|
42 |
+
define('WORDFENCE_BUILD_NUMBER', '1652811581');
|
43 |
define('WORDFENCE_BASENAME', function_exists('plugin_basename') ? plugin_basename(__FILE__) :
|
44 |
basename(dirname(__FILE__)) . '/' . basename(__FILE__));
|
45 |
|