Version Description
- Fix: Conflict with Jetpack where Defender 2FA module would not detect if Jetpack 2FA was disabled.
- Fix: Visitor would get a 404 lockout if landing on a page with many dead links.
- Improvement: When an user is deleted, audit logging now display the user's login instead of only UID.
- Other minor enhancements/fixes
Download this release
Release Info
Developer | jdailey |
Plugin | Defender Security – Malware Scanner, Login Security & Firewall |
Version | 1.7.4 |
Comparing to | |
See all releases |
Code changes from version 1.7.3 to 1.7.4
- app/controller.php +20 -0
- app/module/advanced-tools/controller/main.php +2 -6
- app/module/advanced-tools/model/auth-settings.php +1 -2
- app/module/advanced-tools/view/main.php +1 -1
- app/module/hardener/component/prevent-php-service.php +4 -3
- app/module/hardener/component/prevent-php.php +17 -4
- app/module/hardener/component/protect-information-service.php +3 -2
- app/module/hardener/controller/main.php +5 -18
- app/module/ip-lockout/controller/main.php +31 -3
- app/module/ip-lockout/js/script.js +1 -1
- app/module/ip-lockout/view/emails/404-lockout.php +2 -1
- app/module/ip-lockout/view/emails/login-lockout.php +3 -2
- app/module/ip-lockout/view/emails/login-username-ban.php +3 -2
- app/module/scan/controller/main.php +1 -0
- assets/js/scripts.js +2 -1
- changelog.txt +7 -0
- languages/wpdef-default.pot +110 -104
- readme.txt +16 -3
- wp-defender.php +1 -1
app/controller.php
CHANGED
@@ -34,4 +34,24 @@ class Controller extends Component {
|
|
34 |
public function isDashboard() {
|
35 |
return HTTP_Helper::retrieve_get( 'page' ) == 'wp-defender';
|
36 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
}
|
34 |
public function isDashboard() {
|
35 |
return HTTP_Helper::retrieve_get( 'page' ) == 'wp-defender';
|
36 |
}
|
37 |
+
|
38 |
+
/**
|
39 |
+
* @param $viewFile
|
40 |
+
* @param array $params
|
41 |
+
* @param bool $echo
|
42 |
+
*
|
43 |
+
* @return bool|string
|
44 |
+
*/
|
45 |
+
public function renderPartial( $viewFile, $params = array(), $echo = true ) {
|
46 |
+
ob_start();
|
47 |
+
$content = parent::renderPartial( $viewFile, $params, $echo );
|
48 |
+
ob_end_clean();
|
49 |
+
|
50 |
+
$content = apply_filters( 'wd_render_partial', $content, $viewFile, $params );
|
51 |
+
if ( $echo ) {
|
52 |
+
echo $content;
|
53 |
+
}
|
54 |
+
|
55 |
+
return $content;
|
56 |
+
}
|
57 |
}
|
app/module/advanced-tools/controller/main.php
CHANGED
@@ -39,7 +39,7 @@ class Main extends Controller {
|
|
39 |
$this->add_ajax_action( 'saveAdvancedSettings', 'saveSettings' );
|
40 |
$setting = Auth_Settings::instance();
|
41 |
if ( $setting->enabled ) {
|
42 |
-
$this->add_action( '
|
43 |
//prepare for the login part
|
44 |
$isJetpackSSO = Auth_API::isJetPackSSO();
|
45 |
$isTML = Auth_API::isTML();
|
@@ -86,7 +86,7 @@ class Main extends Controller {
|
|
86 |
*/
|
87 |
public function listenForJetpackOption( $old_value, $value, $option ) {
|
88 |
$settings = Auth_Settings::instance();
|
89 |
-
if ( array_search( 'sso', $value ) ) {
|
90 |
$settings->markAsConflict( 'jetpack/jetpack.php' );
|
91 |
} else {
|
92 |
$settings->markAsUnConflict( 'jetpack/jetpack.php' );
|
@@ -304,10 +304,6 @@ class Main extends Controller {
|
|
304 |
$user = $res[0];
|
305 |
$secret = Auth_API::getUserSecret( $user->ID );
|
306 |
$redirect = HTTP_Helper::retrieve_post( 'redirect_to', admin_url() );
|
307 |
-
$redirect = apply_filters( 'login_redirect', $redirect );
|
308 |
-
if ( empty( $redirect ) ) {
|
309 |
-
$redirect = admin_url();
|
310 |
-
}
|
311 |
if ( Auth_API::compare( $secret, $otp ) ) {
|
312 |
//sign in
|
313 |
delete_user_meta( $user->ID, 'defOTPLoginToken' );
|
39 |
$this->add_ajax_action( 'saveAdvancedSettings', 'saveSettings' );
|
40 |
$setting = Auth_Settings::instance();
|
41 |
if ( $setting->enabled ) {
|
42 |
+
$this->add_action( 'update_option_jetpack_active_modules', 'listenForJetpackOption', 10, 3 );
|
43 |
//prepare for the login part
|
44 |
$isJetpackSSO = Auth_API::isJetPackSSO();
|
45 |
$isTML = Auth_API::isTML();
|
86 |
*/
|
87 |
public function listenForJetpackOption( $old_value, $value, $option ) {
|
88 |
$settings = Auth_Settings::instance();
|
89 |
+
if ( array_search( 'sso', $value ) !== false ) {
|
90 |
$settings->markAsConflict( 'jetpack/jetpack.php' );
|
91 |
} else {
|
92 |
$settings->markAsUnConflict( 'jetpack/jetpack.php' );
|
304 |
$user = $res[0];
|
305 |
$secret = Auth_API::getUserSecret( $user->ID );
|
306 |
$redirect = HTTP_Helper::retrieve_post( 'redirect_to', admin_url() );
|
|
|
|
|
|
|
|
|
307 |
if ( Auth_API::compare( $secret, $otp ) ) {
|
308 |
//sign in
|
309 |
delete_user_meta( $user->ID, 'defOTPLoginToken' );
|
app/module/advanced-tools/model/auth-settings.php
CHANGED
@@ -70,11 +70,10 @@ class Auth_Settings extends \Hammer\WP\Settings {
|
|
70 |
if ( ( $i = array_search( $plugin, $this->isConflict ) ) !== false ) {
|
71 |
unset( $this->isConflict[ $i ] );
|
72 |
}
|
73 |
-
|
74 |
if ( ! in_array( '!' . $plugin, $this->isConflict ) ) {
|
75 |
$this->isConflict [] = '!' . $plugin;
|
76 |
-
$this->save();
|
77 |
}
|
|
|
78 |
}
|
79 |
|
80 |
public function events() {
|
70 |
if ( ( $i = array_search( $plugin, $this->isConflict ) ) !== false ) {
|
71 |
unset( $this->isConflict[ $i ] );
|
72 |
}
|
|
|
73 |
if ( ! in_array( '!' . $plugin, $this->isConflict ) ) {
|
74 |
$this->isConflict [] = '!' . $plugin;
|
|
|
75 |
}
|
76 |
+
$this->save();
|
77 |
}
|
78 |
|
79 |
public function events() {
|
app/module/advanced-tools/view/main.php
CHANGED
@@ -13,7 +13,7 @@
|
|
13 |
?>
|
14 |
<p class="<?php echo $class ?>"><?php _e( "Configure your two-factor authentication settings. Our recommendations are enabled by default.", "defender-security" ) ?></p>
|
15 |
<?php if ( isset( wp_defender()->global['compatibility'] ) ): ?>
|
16 |
-
<div class="well well-error with-cap">
|
17 |
<i class="def-icon icon-warning icon-yellow "></i>
|
18 |
<?php echo implode( '<br/>', wp_defender()->global['compatibility'] ); ?>
|
19 |
</div>
|
13 |
?>
|
14 |
<p class="<?php echo $class ?>"><?php _e( "Configure your two-factor authentication settings. Our recommendations are enabled by default.", "defender-security" ) ?></p>
|
15 |
<?php if ( isset( wp_defender()->global['compatibility'] ) ): ?>
|
16 |
+
<div class="well well-error with-cap mline">
|
17 |
<i class="def-icon icon-warning icon-yellow "></i>
|
18 |
<?php echo implode( '<br/>', wp_defender()->global['compatibility'] ); ?>
|
19 |
</div>
|
app/module/hardener/component/prevent-php-service.php
CHANGED
@@ -22,9 +22,10 @@ class Prevent_PHP_Service extends Rule_Service implements IRule_Service {
|
|
22 |
if ( $cache === null ) {
|
23 |
//init upload dir and a php file
|
24 |
Utils::instance()->getDefUploadDir();
|
25 |
-
$url
|
26 |
-
$url
|
27 |
-
$
|
|
|
28 |
if ( is_wp_error( $status ) ) {
|
29 |
//General error
|
30 |
return false;
|
22 |
if ( $cache === null ) {
|
23 |
//init upload dir and a php file
|
24 |
Utils::instance()->getDefUploadDir();
|
25 |
+
$url = WP_Helper::getUploadUrl();
|
26 |
+
$url = $url . '/wp-defender/index.php';
|
27 |
+
$ssl_verify = apply_filters( 'defender_ssl_verify', true ); //most hosts dont really have valid ssl or ssl still pending
|
28 |
+
$status = wp_remote_head( $url, array( 'user-agent' => $_SERVER['HTTP_USER_AGENT'], 'timeout' => 10, 'sslverify' => $ssl_verify ) );
|
29 |
if ( is_wp_error( $status ) ) {
|
30 |
//General error
|
31 |
return false;
|
app/module/hardener/component/prevent-php.php
CHANGED
@@ -74,9 +74,14 @@ class Prevent_Php extends Rule {
|
|
74 |
if ( ! $this->verifyNonce() ) {
|
75 |
return;
|
76 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
|
78 |
-
$server = func_get_arg( 0 ); //Get first param
|
79 |
-
$file_paths = func_get_arg( 1 ); //Get second param
|
80 |
if ( in_array( $server, array( 'apache', 'litespeed' ) ) ) {
|
81 |
$service = $this->getApacheService();
|
82 |
$service->setExcludeFilePaths( $file_paths ); //Set the paths
|
@@ -106,8 +111,16 @@ class Prevent_Php extends Rule {
|
|
106 |
return;
|
107 |
}
|
108 |
$settings = Settings::instance();
|
109 |
-
|
110 |
-
$file_paths =
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
if ( in_array( $server, array( 'apache', 'litespeed' ) ) ) {
|
112 |
$service = $this->getApacheService();
|
113 |
$service->setHtConfig( $settings->getNewHtConfig() ); //Set the previous template
|
74 |
if ( ! $this->verifyNonce() ) {
|
75 |
return;
|
76 |
}
|
77 |
+
$file_paths = HTTP_Helper::retrieve_post( 'file_paths' ); //File paths to ignore. Apache and litespeed mainly
|
78 |
+
if ( $file_paths ) {
|
79 |
+
$file_paths = sanitize_textarea_field( $file_paths );
|
80 |
+
} else {
|
81 |
+
$file_paths = '';
|
82 |
+
}
|
83 |
+
$server = HTTP_Helper::retrieve_post( 'current_server' ); //Current server
|
84 |
|
|
|
|
|
85 |
if ( in_array( $server, array( 'apache', 'litespeed' ) ) ) {
|
86 |
$service = $this->getApacheService();
|
87 |
$service->setExcludeFilePaths( $file_paths ); //Set the paths
|
111 |
return;
|
112 |
}
|
113 |
$settings = Settings::instance();
|
114 |
+
|
115 |
+
$file_paths = HTTP_Helper::retrieve_post( 'file_paths' ); //File paths to ignore. Apache and litespeed mainly
|
116 |
+
if ( $file_paths ) {
|
117 |
+
$file_paths = sanitize_textarea_field( $file_paths );
|
118 |
+
} else {
|
119 |
+
$file_paths = '';
|
120 |
+
}
|
121 |
+
|
122 |
+
$server = HTTP_Helper::retrieve_post( 'current_server' ); //Current server
|
123 |
+
|
124 |
if ( in_array( $server, array( 'apache', 'litespeed' ) ) ) {
|
125 |
$service = $this->getApacheService();
|
126 |
$service->setHtConfig( $settings->getNewHtConfig() ); //Set the previous template
|
app/module/hardener/component/protect-information-service.php
CHANGED
@@ -19,8 +19,9 @@ class Protect_Information_Service extends Rule_Service implements IRule_Service
|
|
19 |
public function check() {
|
20 |
$cache = WP_Helper::getArrayCache()->get( 'Protect_Information_Service', null );
|
21 |
if ( $cache === null ) {
|
22 |
-
$url
|
23 |
-
$
|
|
|
24 |
if ( 200 == wp_remote_retrieve_response_code( $status ) ) {
|
25 |
WP_Helper::getArrayCache()->set( 'Protect_Information_Service', false );
|
26 |
return false;
|
19 |
public function check() {
|
20 |
$cache = WP_Helper::getArrayCache()->get( 'Protect_Information_Service', null );
|
21 |
if ( $cache === null ) {
|
22 |
+
$url = wp_defender()->getPluginUrl() . 'changelog.txt';
|
23 |
+
$ssl_verify = apply_filters( 'defender_ssl_verify', true ); //most hosts dont really have valid ssl or ssl still pending
|
24 |
+
$status = wp_remote_head( $url, array( 'user-agent' => $_SERVER['HTTP_USER_AGENT'], 'sslverify' => $ssl_verify ) );
|
25 |
if ( 200 == wp_remote_retrieve_response_code( $status ) ) {
|
26 |
WP_Helper::getArrayCache()->set( 'Protect_Information_Service', false );
|
27 |
return false;
|
app/module/hardener/controller/main.php
CHANGED
@@ -105,14 +105,8 @@ class Main extends Controller {
|
|
105 |
}
|
106 |
|
107 |
$slug = HTTP_Helper::retrieve_post( 'slug' );
|
108 |
-
|
109 |
-
|
110 |
-
$file_paths = sanitize_textarea_field( $file_paths );
|
111 |
-
} else {
|
112 |
-
$file_paths = '';
|
113 |
-
}
|
114 |
-
$server = HTTP_Helper::retrieve_post( 'current_server' ); //Current server
|
115 |
-
do_action( "processingHardener" . $slug , $server, $file_paths );
|
116 |
//fall back
|
117 |
wp_send_json_success( array(
|
118 |
'message' => __( "Security tweak successfully resolved.", "defender-security" ),
|
@@ -131,16 +125,9 @@ class Main extends Controller {
|
|
131 |
return;
|
132 |
}
|
133 |
|
134 |
-
$slug
|
135 |
-
|
136 |
-
|
137 |
-
$file_paths = sanitize_textarea_field( $file_paths );
|
138 |
-
} else {
|
139 |
-
$file_paths = '';
|
140 |
-
}
|
141 |
-
|
142 |
-
$server = HTTP_Helper::retrieve_post( 'current_server' ); //Current server
|
143 |
-
do_action( "processUpdate" . $slug , $server, $file_paths );
|
144 |
//fall back
|
145 |
wp_send_json_success( array(
|
146 |
'message' => __( "Security tweak successfully updated.", "defender-security" ),
|
105 |
}
|
106 |
|
107 |
$slug = HTTP_Helper::retrieve_post( 'slug' );
|
108 |
+
|
109 |
+
do_action( "processingHardener" . $slug );
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
//fall back
|
111 |
wp_send_json_success( array(
|
112 |
'message' => __( "Security tweak successfully resolved.", "defender-security" ),
|
125 |
return;
|
126 |
}
|
127 |
|
128 |
+
$slug = HTTP_Helper::retrieve_post( 'slug' );
|
129 |
+
|
130 |
+
do_action( "processUpdate" . $slug );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
131 |
//fall back
|
132 |
wp_send_json_success( array(
|
133 |
'message' => __( "Security tweak successfully updated.", "defender-security" ),
|
app/module/ip-lockout/controller/main.php
CHANGED
@@ -344,7 +344,7 @@ class Main extends Controller {
|
|
344 |
if ( $settings->login_protection ) {
|
345 |
$this->add_action( 'wp_login_failed', 'recordFailLogin', 9999 );
|
346 |
$this->add_filter( 'authenticate', 'showAttemptLeft', 9999, 3 );
|
347 |
-
$this->add_action( 'wp_login', 'clearAttemptStats' );
|
348 |
}
|
349 |
|
350 |
if ( $settings->detect_404 ) {
|
@@ -450,7 +450,6 @@ class Main extends Controller {
|
|
450 |
public function record404() {
|
451 |
if ( is_404() ) {
|
452 |
$settings = Settings::instance();
|
453 |
-
|
454 |
if ( is_user_logged_in() && current_user_can( 'edit_posts' ) ) {
|
455 |
//we wont track 404 error if user can login and not subscriber
|
456 |
return;
|
@@ -485,6 +484,35 @@ class Main extends Controller {
|
|
485 |
}
|
486 |
$model->save();
|
487 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
488 |
do_action( 'wd_lockout_trigger', $model );
|
489 |
}
|
490 |
}
|
@@ -517,7 +545,7 @@ class Main extends Controller {
|
|
517 |
/**
|
518 |
* When user get login successfully, we will reset the attempt count
|
519 |
*/
|
520 |
-
public function clearAttemptStats() {
|
521 |
$ip = $this->getUserIp();
|
522 |
$model = IP_Model::findOne( array(
|
523 |
'ip' => $ip
|
344 |
if ( $settings->login_protection ) {
|
345 |
$this->add_action( 'wp_login_failed', 'recordFailLogin', 9999 );
|
346 |
$this->add_filter( 'authenticate', 'showAttemptLeft', 9999, 3 );
|
347 |
+
$this->add_action( 'wp_login', 'clearAttemptStats', 10, 2 );
|
348 |
}
|
349 |
|
350 |
if ( $settings->detect_404 ) {
|
450 |
public function record404() {
|
451 |
if ( is_404() ) {
|
452 |
$settings = Settings::instance();
|
|
|
453 |
if ( is_user_logged_in() && current_user_can( 'edit_posts' ) ) {
|
454 |
//we wont track 404 error if user can login and not subscriber
|
455 |
return;
|
484 |
}
|
485 |
$model->save();
|
486 |
|
487 |
+
//need to check if this is css,js or images 404 from missig link from a page
|
488 |
+
$ref = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : "";
|
489 |
+
if ( $ref && parse_url( $ref, PHP_URL_SCHEME ) . '://' . parse_url( $ref, PHP_URL_HOST ) == site_url() ) {
|
490 |
+
//the only variable we allow is ver, bydefault of wordpress
|
491 |
+
$args = parse_url( $uri, PHP_URL_QUERY );
|
492 |
+
if ( ! empty( $args ) ) {
|
493 |
+
//validate it
|
494 |
+
if ( isset( $args['ver'] ) && is_numeric( $args['ver'] ) ) {
|
495 |
+
unset( $args['ver'] );
|
496 |
+
}
|
497 |
+
}
|
498 |
+
if ( count( $args ) == 0 ) {
|
499 |
+
//check the extension is js, css, or image type
|
500 |
+
$exts = apply_filters( 'wd_allow_ref_extensions', array(
|
501 |
+
'js',
|
502 |
+
'css',
|
503 |
+
'jpg',
|
504 |
+
'png',
|
505 |
+
'gif'
|
506 |
+
) );
|
507 |
+
$ext = pathinfo( $uri, PATHINFO_EXTENSION );
|
508 |
+
$ext = strtolower( $ext );
|
509 |
+
if ( in_array( $ext, $exts ) ) {
|
510 |
+
//log but no lock
|
511 |
+
return;
|
512 |
+
}
|
513 |
+
}
|
514 |
+
}
|
515 |
+
|
516 |
do_action( 'wd_lockout_trigger', $model );
|
517 |
}
|
518 |
}
|
545 |
/**
|
546 |
* When user get login successfully, we will reset the attempt count
|
547 |
*/
|
548 |
+
public function clearAttemptStats( $user_login, $user = '' ) {
|
549 |
$ip = $this->getUserIp();
|
550 |
$model = IP_Model::findOne( array(
|
551 |
'ip' => $ip
|
app/module/ip-lockout/js/script.js
CHANGED
@@ -127,7 +127,7 @@ jQuery(function ($) {
|
|
127 |
$('body').addClass('wpmud');
|
128 |
WDP.showOverlay("#defLockoutUpgrade", {
|
129 |
title: 'Updating...',
|
130 |
-
class: 'no-close wp-defender'
|
131 |
});
|
132 |
}
|
133 |
|
127 |
$('body').addClass('wpmud');
|
128 |
WDP.showOverlay("#defLockoutUpgrade", {
|
129 |
title: 'Updating...',
|
130 |
+
class: 'no-close migrate-iplockout wp-defender'
|
131 |
});
|
132 |
}
|
133 |
|
app/module/ip-lockout/view/emails/404-lockout.php
CHANGED
@@ -455,8 +455,9 @@
|
|
455 |
<?php printf( __( "Hi %s", "defender-security" ), $admin ) ?>
|
456 |
,</h3>
|
457 |
<?php $setting = \WP_Defender\Module\IP_Lockout\Model\Settings::instance() ?>
|
|
|
458 |
<p style="Margin: 0; Margin-bottom: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; line-height: 26px; margin: 0; margin-bottom: 0; padding: 0 0 24px; text-align: left;">
|
459 |
-
<?php printf( __( "We've just locked out the host <strong>%s</strong> from %s due to more than <strong>%s</strong> 404 requests for the file <strong>%s</strong>. They have been locked out for <strong>%s seconds.</strong>", "defender-security" ), $ip,
|
460 |
</p>
|
461 |
<p style="Margin: 0; Margin-bottom: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; line-height: 26px; margin: 0; margin-bottom: 0; padding: 0 0 24px; text-align: left;">
|
462 |
<?php printf( __( "You can view the full lockout logs <a href=\"%s\">here</a>", "defender-security" ), network_admin_url( "admin.php?page=wdf-ip-lockout&view=logs" ) ) ?>
|
455 |
<?php printf( __( "Hi %s", "defender-security" ), $admin ) ?>
|
456 |
,</h3>
|
457 |
<?php $setting = \WP_Defender\Module\IP_Lockout\Model\Settings::instance() ?>
|
458 |
+
<?php $utils = \WP_Defender\Behavior\Utils::instance() ?>
|
459 |
<p style="Margin: 0; Margin-bottom: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; line-height: 26px; margin: 0; margin-bottom: 0; padding: 0 0 24px; text-align: left;">
|
460 |
+
<?php printf( __( "We've just locked out the host <strong>%s</strong> from %s due to more than <strong>%s</strong> 404 requests for the file <strong>%s</strong>. They have been locked out for <strong>%s seconds.</strong>", "defender-security" ), $ip, $utils->siteURLWithScheme(), $setting->detect_404_threshold, $uri, $setting->detect_404_lockout_duration ) ?>
|
461 |
</p>
|
462 |
<p style="Margin: 0; Margin-bottom: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; line-height: 26px; margin: 0; margin-bottom: 0; padding: 0 0 24px; text-align: left;">
|
463 |
<?php printf( __( "You can view the full lockout logs <a href=\"%s\">here</a>", "defender-security" ), network_admin_url( "admin.php?page=wdf-ip-lockout&view=logs" ) ) ?>
|
app/module/ip-lockout/view/emails/login-lockout.php
CHANGED
@@ -454,10 +454,11 @@
|
|
454 |
<h3 style="Margin: 0; Margin-bottom: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 32px; font-weight: normal; line-height: 32px; margin: 0; margin-bottom: 0; padding: 0 0 28px; text-align: left; word-wrap: normal;">
|
455 |
<?php printf( __( "Hi %s,", "defender-security" ), $admin ) ?></h3>
|
456 |
<?php $setting = \WP_Defender\Module\IP_Lockout\Model\Settings::instance() ?>
|
|
|
457 |
<p style="Margin: 0; Margin-bottom: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; line-height: 26px; margin: 0; margin-bottom: 0; padding: 0 0 24px; text-align: left;">
|
458 |
<?php
|
459 |
-
$lockout_duration = $setting->login_protection_lockout_ban == true ? __( "They have banned permanently.", "defender-security" ) : sprintf( __( "They have been locked out for <strong>%s seconds.</strong>", "defender-security" ), $setting->login_protection_lockout_duration );
|
460 |
-
printf( __( "We've just locked out the host <strong>%s</strong> from %s due to more than <strong>%s</strong> failed login attempts. %s", "defender-security" ), $ip,
|
461 |
) ?>
|
462 |
</p>
|
463 |
<p style="Margin: 0; Margin-bottom: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; line-height: 26px; margin: 0; margin-bottom: 0; padding: 0 0 24px; text-align: left;">
|
454 |
<h3 style="Margin: 0; Margin-bottom: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 32px; font-weight: normal; line-height: 32px; margin: 0; margin-bottom: 0; padding: 0 0 28px; text-align: left; word-wrap: normal;">
|
455 |
<?php printf( __( "Hi %s,", "defender-security" ), $admin ) ?></h3>
|
456 |
<?php $setting = \WP_Defender\Module\IP_Lockout\Model\Settings::instance() ?>
|
457 |
+
<?php $utils = \WP_Defender\Behavior\Utils::instance() ?>
|
458 |
<p style="Margin: 0; Margin-bottom: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; line-height: 26px; margin: 0; margin-bottom: 0; padding: 0 0 24px; text-align: left;">
|
459 |
<?php
|
460 |
+
$lockout_duration = $setting->login_protection_lockout_ban == true ? __( "They have been banned permanently.", "defender-security" ) : sprintf( __( "They have been locked out for <strong>%s seconds.</strong>", "defender-security" ), $setting->login_protection_lockout_duration );
|
461 |
+
printf( __( "We've just locked out the host <strong>%s</strong> from %s due to more than <strong>%s</strong> failed login attempts. %s", "defender-security" ), $ip, $utils->siteURLWithScheme(), $setting->login_protection_login_attempt, $lockout_duration
|
462 |
) ?>
|
463 |
</p>
|
464 |
<p style="Margin: 0; Margin-bottom: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; line-height: 26px; margin: 0; margin-bottom: 0; padding: 0 0 24px; text-align: left;">
|
app/module/ip-lockout/view/emails/login-username-ban.php
CHANGED
@@ -454,10 +454,11 @@
|
|
454 |
<h3 style="Margin: 0; Margin-bottom: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 32px; font-weight: normal; line-height: 32px; margin: 0; margin-bottom: 0; padding: 0 0 28px; text-align: left; word-wrap: normal;">
|
455 |
<?php printf( __( "Hi %s,", "defender-security" ), $admin ) ?></h3>
|
456 |
<?php $setting = \WP_Defender\Module\IP_Lockout\Model\Settings::instance() ?>
|
|
|
457 |
<p style="Margin: 0; Margin-bottom: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; line-height: 26px; margin: 0; margin-bottom: 0; padding: 0 0 24px; text-align: left;">
|
458 |
<?php
|
459 |
-
$lockout_duration = $setting->login_protection_lockout_ban == true ? __( "They have banned permanently.", "defender-security" ) : sprintf( __( "They have been locked out for <strong>%s seconds.</strong>", "defender-security" ), $setting->login_protection_lockout_duration );
|
460 |
-
printf( __( "We've just locked out the host <strong>%s</strong> from %s due to attempting to login with a banned username.They have banned permanently.", "defender-security" ), $ip,
|
461 |
</p>
|
462 |
<p style="Margin: 0; Margin-bottom: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; line-height: 26px; margin: 0; margin-bottom: 0; padding: 0 0 24px; text-align: left;">
|
463 |
<?php printf( __( "You can view the full lockout logs <a href=\"%s\">here</a>", "defender-security" ), network_admin_url( "admin.php?page=wdf-ip-lockout&view=logs" ) ) ?>
|
454 |
<h3 style="Margin: 0; Margin-bottom: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 32px; font-weight: normal; line-height: 32px; margin: 0; margin-bottom: 0; padding: 0 0 28px; text-align: left; word-wrap: normal;">
|
455 |
<?php printf( __( "Hi %s,", "defender-security" ), $admin ) ?></h3>
|
456 |
<?php $setting = \WP_Defender\Module\IP_Lockout\Model\Settings::instance() ?>
|
457 |
+
<?php $utils = \WP_Defender\Behavior\Utils::instance() ?>
|
458 |
<p style="Margin: 0; Margin-bottom: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; line-height: 26px; margin: 0; margin-bottom: 0; padding: 0 0 24px; text-align: left;">
|
459 |
<?php
|
460 |
+
$lockout_duration = $setting->login_protection_lockout_ban == true ? __( "They have been banned permanently.", "defender-security" ) : sprintf( __( "They have been locked out for <strong>%s seconds.</strong>", "defender-security" ), $setting->login_protection_lockout_duration );
|
461 |
+
printf( __( "We've just locked out the host <strong>%s</strong> from %s due to attempting to login with a banned username. They have been banned permanently.", "defender-security" ), $ip, $utils->siteURLWithScheme() ) ?>
|
462 |
</p>
|
463 |
<p style="Margin: 0; Margin-bottom: 0; color: #555555; font-family: Helvetica, Arial, sans-serif; font-size: 15px; font-weight: normal; line-height: 26px; margin: 0; margin-bottom: 0; padding: 0 0 24px; text-align: left;">
|
464 |
<?php printf( __( "You can view the full lockout logs <a href=\"%s\">here</a>", "defender-security" ), network_admin_url( "admin.php?page=wdf-ip-lockout&view=logs" ) ) ?>
|
app/module/scan/controller/main.php
CHANGED
@@ -300,6 +300,7 @@ class Main extends \WP_Defender\Controller {
|
|
300 |
$settings->save();
|
301 |
if ( $this->hasMethod( 'scheduleReportTime' ) ) {
|
302 |
$this->scheduleReportTime( $settings );
|
|
|
303 |
}
|
304 |
wp_send_json_success( array(
|
305 |
'message' => __( "Your settings have been updated.", "defender-security" )
|
300 |
$settings->save();
|
301 |
if ( $this->hasMethod( 'scheduleReportTime' ) ) {
|
302 |
$this->scheduleReportTime( $settings );
|
303 |
+
$this->submitStatsToDev();
|
304 |
}
|
305 |
wp_send_json_success( array(
|
306 |
'message' => __( "Your settings have been updated.", "defender-security" )
|
assets/js/scripts.js
CHANGED
@@ -87,6 +87,7 @@ jQuery(function ($) {
|
|
87 |
$('.skip-activator').hide();
|
88 |
var i = 0;
|
89 |
progress();
|
|
|
90 |
function progress() {
|
91 |
if (i < data.data.activated.length) {
|
92 |
var text = dashboard[data.data.activated[i]];
|
@@ -123,7 +124,7 @@ jQuery(function ($) {
|
|
123 |
return false;
|
124 |
});
|
125 |
$('body').on('click', '.dev-overlay', function (e) {
|
126 |
-
if ($(this).hasClass('scanning') || $(this).hasClass('wd-requirement')) {
|
127 |
return;
|
128 |
}
|
129 |
var target = $(e.target);
|
87 |
$('.skip-activator').hide();
|
88 |
var i = 0;
|
89 |
progress();
|
90 |
+
|
91 |
function progress() {
|
92 |
if (i < data.data.activated.length) {
|
93 |
var text = dashboard[data.data.activated[i]];
|
124 |
return false;
|
125 |
});
|
126 |
$('body').on('click', '.dev-overlay', function (e) {
|
127 |
+
if ($(this).hasClass('scanning') || $(this).hasClass('migrate-iplockout') || $(this).hasClass('wd-requirement')) {
|
128 |
return;
|
129 |
}
|
130 |
var target = $(e.target);
|
changelog.txt
CHANGED
@@ -4,6 +4,13 @@ Tested up to: 4.7.4
|
|
4 |
|
5 |
Change Log:
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
1.7.3 - 2017-14-10
|
8 |
----------------------------------------------------------------------
|
9 |
- Fix: Two-factor authentication can be bypassed by user with no role.
|
4 |
|
5 |
Change Log:
|
6 |
|
7 |
+
1.7.4 - 2017-20-11
|
8 |
+
----------------------------------------------------------------------
|
9 |
+
- Fix: Conflict with Jetpack where Defender 2FA module would not detect if Jetpack 2FA was disabled.
|
10 |
+
- Fix: Visitor would get a 404 lockout if landing on a page with many dead links.
|
11 |
+
- Improvement: When an user is deleted, audit logging now display the user's login instead of only UID.
|
12 |
+
- Other minor enhancements/fixes
|
13 |
+
|
14 |
1.7.3 - 2017-14-10
|
15 |
----------------------------------------------------------------------
|
16 |
- Fix: Two-factor authentication can be bypassed by user with no role.
|
languages/wpdef-default.pot
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
# This file is distributed under the GNU General Public License (Version 2 - GPLv2).
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: WP Defender Pro 1.7.
|
6 |
"Report-Msgid-Bugs-To: https://wpmudev.org\n"
|
7 |
-
"POT-Creation-Date: 2017-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -152,17 +152,17 @@ msgid "Lockout reports are active scheduled to send %s"
|
|
152 |
msgstr ""
|
153 |
|
154 |
#: app/behavior/report-free.php:129 app/behavior/report.php:224
|
155 |
-
#: app/behavior/utils.php:
|
156 |
msgid "daily"
|
157 |
msgstr ""
|
158 |
|
159 |
#: app/behavior/report-free.php:132 app/behavior/report.php:227
|
160 |
-
#: app/behavior/utils.php:
|
161 |
msgid "weekly"
|
162 |
msgstr ""
|
163 |
|
164 |
#: app/behavior/report-free.php:135 app/behavior/report.php:230
|
165 |
-
#: app/behavior/utils.php:
|
166 |
msgid "monthly"
|
167 |
msgstr ""
|
168 |
|
@@ -216,22 +216,22 @@ msgstr ""
|
|
216 |
msgid "Guest"
|
217 |
msgstr ""
|
218 |
|
219 |
-
#: app/behavior/utils.php:
|
220 |
msgid "WordPress Core Integrity"
|
221 |
msgstr ""
|
222 |
|
223 |
-
#: app/behavior/utils.php:
|
224 |
msgid "Plugins & Themes vulnerability"
|
225 |
msgstr ""
|
226 |
|
227 |
-
#: app/behavior/utils.php:
|
228 |
#: app/module/scan/view/layouts/layout.php:70
|
229 |
#: app/module/scan/view/setting-free.php:50 app/module/scan/view/setting.php:43
|
230 |
#: app/view/settings.php:98
|
231 |
msgid "Suspicious Code"
|
232 |
msgstr ""
|
233 |
|
234 |
-
#: app/behavior/utils.php:
|
235 |
msgid "Please upgrade to 5.3 or later"
|
236 |
msgstr ""
|
237 |
|
@@ -305,7 +305,7 @@ msgid "Defender%s"
|
|
305 |
msgstr ""
|
306 |
|
307 |
#: app/module/advanced-tools/behavior/at-widget.php:17
|
308 |
-
#: app/module/advanced-tools/controller/main.php:
|
309 |
#: app/module/advanced-tools/view/layouts/layout.php:5
|
310 |
msgid "Advanced Tools"
|
311 |
msgstr ""
|
@@ -396,14 +396,14 @@ msgstr ""
|
|
396 |
msgid "Some error happen"
|
397 |
msgstr ""
|
398 |
|
399 |
-
#: app/module/advanced-tools/controller/main.php:
|
400 |
msgid "Whoops, the passcode you entered was incorrect or expired."
|
401 |
msgstr ""
|
402 |
|
403 |
-
#: app/module/advanced-tools/controller/main.php:
|
404 |
#: app/module/audit/controller/main.php:196
|
405 |
-
#: app/module/ip-lockout/controller/main.php:
|
406 |
-
#: app/module/scan/controller/main.php:
|
407 |
msgid "Your settings have been updated."
|
408 |
msgstr ""
|
409 |
|
@@ -439,7 +439,7 @@ msgid "Use the Google Authenticator app to sign in with a separate passcode."
|
|
439 |
msgstr ""
|
440 |
|
441 |
#: app/module/advanced-tools/view/login/disabled.php:20
|
442 |
-
#: app/module/scan/controller/main.php:
|
443 |
#: app/module/scan/view/setting.php:158
|
444 |
msgid "Cancel"
|
445 |
msgstr ""
|
@@ -1225,46 +1225,51 @@ msgid "A new user registered: Username: %s, Role: %s"
|
|
1225 |
msgstr ""
|
1226 |
|
1227 |
#: app/module/audit/component/users-audit.php:75
|
1228 |
-
|
|
|
1229 |
msgstr ""
|
1230 |
|
1231 |
-
#: app/module/audit/component/users-audit.php:
|
|
|
|
|
|
|
|
|
1232 |
msgid "Password requested to reset for user: %s"
|
1233 |
msgstr ""
|
1234 |
|
1235 |
-
#: app/module/audit/component/users-audit.php:
|
1236 |
msgid "Password reset for user: %s"
|
1237 |
msgstr ""
|
1238 |
|
1239 |
-
#: app/module/audit/component/users-audit.php:
|
1240 |
msgid "%s changed user %s's role from %s to %s"
|
1241 |
msgstr ""
|
1242 |
|
1243 |
-
#: app/module/audit/component/users-audit.php:
|
1244 |
msgid "User %s updated his/her profile"
|
1245 |
msgstr ""
|
1246 |
|
1247 |
-
#: app/module/audit/component/users-audit.php:
|
1248 |
msgid "%s updated user %s's profile information"
|
1249 |
msgstr ""
|
1250 |
|
1251 |
-
#: app/module/audit/component/users-audit.php:
|
1252 |
msgid "lost password"
|
1253 |
msgstr ""
|
1254 |
|
1255 |
-
#: app/module/audit/component/users-audit.php:
|
1256 |
msgid "registered"
|
1257 |
msgstr ""
|
1258 |
|
1259 |
-
#: app/module/audit/component/users-audit.php:
|
1260 |
msgid "login"
|
1261 |
msgstr ""
|
1262 |
|
1263 |
-
#: app/module/audit/component/users-audit.php:
|
1264 |
msgid "logout"
|
1265 |
msgstr ""
|
1266 |
|
1267 |
-
#: app/module/audit/component/users-audit.php:
|
1268 |
msgid "password reset"
|
1269 |
msgstr ""
|
1270 |
|
@@ -1374,54 +1379,54 @@ msgid "Defender!"
|
|
1374 |
msgstr ""
|
1375 |
|
1376 |
#: app/module/audit/view/email_template.php:454
|
1377 |
-
#: app/module/ip-lockout/view/emails/404-lockout.php:
|
1378 |
-
#: app/module/ip-lockout/view/emails/login-lockout.php:
|
1379 |
-
#: app/module/ip-lockout/view/emails/login-username-ban.php:
|
1380 |
#: app/module/ip-lockout/view/emails/report.php:545
|
1381 |
#: app/module/scan/view/email-template.php:477
|
1382 |
msgid "Related plugins worth giving a try"
|
1383 |
msgstr ""
|
1384 |
|
1385 |
#: app/module/audit/view/email_template.php:475
|
1386 |
-
#: app/module/ip-lockout/view/emails/404-lockout.php:
|
1387 |
-
#: app/module/ip-lockout/view/emails/login-lockout.php:
|
1388 |
-
#: app/module/ip-lockout/view/emails/login-username-ban.php:
|
1389 |
#: app/module/ip-lockout/view/emails/report.php:566
|
1390 |
#: app/module/scan/view/email-template.php:498
|
1391 |
msgid "Optimize your site with"
|
1392 |
msgstr ""
|
1393 |
|
1394 |
#: app/module/audit/view/email_template.php:477
|
1395 |
-
#: app/module/ip-lockout/view/emails/404-lockout.php:
|
1396 |
-
#: app/module/ip-lockout/view/emails/login-lockout.php:
|
1397 |
-
#: app/module/ip-lockout/view/emails/login-username-ban.php:
|
1398 |
#: app/module/ip-lockout/view/emails/report.php:568
|
1399 |
#: app/module/scan/view/email-template.php:500
|
1400 |
msgid "Hummingbird"
|
1401 |
msgstr ""
|
1402 |
|
1403 |
#: app/module/audit/view/email_template.php:494
|
1404 |
-
#: app/module/ip-lockout/view/emails/404-lockout.php:
|
1405 |
-
#: app/module/ip-lockout/view/emails/login-lockout.php:
|
1406 |
-
#: app/module/ip-lockout/view/emails/login-username-ban.php:
|
1407 |
#: app/module/ip-lockout/view/emails/report.php:585
|
1408 |
#: app/module/scan/view/email-template.php:517
|
1409 |
msgid "Back up your hard work with"
|
1410 |
msgstr ""
|
1411 |
|
1412 |
#: app/module/audit/view/email_template.php:496
|
1413 |
-
#: app/module/ip-lockout/view/emails/404-lockout.php:
|
1414 |
-
#: app/module/ip-lockout/view/emails/login-lockout.php:
|
1415 |
-
#: app/module/ip-lockout/view/emails/login-username-ban.php:
|
1416 |
#: app/module/ip-lockout/view/emails/report.php:587
|
1417 |
#: app/module/scan/view/email-template.php:519
|
1418 |
msgid "Snapshot"
|
1419 |
msgstr ""
|
1420 |
|
1421 |
#: app/module/audit/view/email_template.php:530
|
1422 |
-
#: app/module/ip-lockout/view/emails/404-lockout.php:
|
1423 |
-
#: app/module/ip-lockout/view/emails/login-lockout.php:
|
1424 |
-
#: app/module/ip-lockout/view/emails/login-username-ban.php:
|
1425 |
#: app/module/ip-lockout/view/emails/report.php:621
|
1426 |
#: app/module/scan/view/email-template.php:553
|
1427 |
msgid "<a href=\"%s\">Configure reporting preferences</a>"
|
@@ -1710,7 +1715,7 @@ msgid "Audit log reports are disabled"
|
|
1710 |
msgstr ""
|
1711 |
|
1712 |
#: app/module/hardener/behavior/widget.php:19
|
1713 |
-
#: app/module/hardener/controller/main.php:
|
1714 |
#: app/module/hardener/view/layouts/layout.php:3
|
1715 |
msgid "Security Tweaks"
|
1716 |
msgstr ""
|
@@ -1756,8 +1761,8 @@ msgstr ""
|
|
1756 |
#: app/module/hardener/component/disable-file-editor-service.php:32
|
1757 |
#: app/module/hardener/component/disable-file-editor-service.php:66
|
1758 |
#: app/module/hardener/component/hide-error-service.php:61
|
1759 |
-
#: app/module/hardener/component/protect-information-service.php:
|
1760 |
-
#: app/module/hardener/component/protect-information-service.php:
|
1761 |
#: app/module/hardener/component/security-key-service.php:48
|
1762 |
#: app/module/hardener/component/servers/apache-service.php:62
|
1763 |
#: app/module/hardener/component/servers/apache-service.php:66
|
@@ -1858,12 +1863,12 @@ msgstr ""
|
|
1858 |
msgid "Update PHP to latest version"
|
1859 |
msgstr ""
|
1860 |
|
1861 |
-
#: app/module/hardener/component/prevent-php-service.php:
|
1862 |
msgid "Process is not possible on your current server"
|
1863 |
msgstr ""
|
1864 |
|
1865 |
-
#: app/module/hardener/component/prevent-php-service.php:
|
1866 |
-
#: app/module/hardener/component/protect-information-service.php:
|
1867 |
msgid "Revert is not possible on your current server"
|
1868 |
msgstr ""
|
1869 |
|
@@ -1910,11 +1915,11 @@ msgstr ""
|
|
1910 |
msgid "Security tweak successfully reverted."
|
1911 |
msgstr ""
|
1912 |
|
1913 |
-
#: app/module/hardener/controller/main.php:
|
1914 |
msgid "Security tweak successfully resolved."
|
1915 |
msgstr ""
|
1916 |
|
1917 |
-
#: app/module/hardener/controller/main.php:
|
1918 |
msgid "Security tweak successfully updated."
|
1919 |
msgstr ""
|
1920 |
|
@@ -2446,8 +2451,8 @@ msgid "Lockout notifications are disabled"
|
|
2446 |
msgstr ""
|
2447 |
|
2448 |
#: app/module/ip-lockout/component/login-protection-api.php:61
|
2449 |
-
#: app/module/ip-lockout/controller/main.php:
|
2450 |
-
#: app/module/ip-lockout/controller/main.php:
|
2451 |
msgid ""
|
2452 |
"You have been locked out by the administrator for attempting to login with "
|
2453 |
"a banned username"
|
@@ -2594,56 +2599,56 @@ msgstr ""
|
|
2594 |
msgid "Login lockout alert for %s"
|
2595 |
msgstr ""
|
2596 |
|
2597 |
-
#: app/module/ip-lockout/controller/main.php:
|
2598 |
msgid "Failed login attempt with username %s"
|
2599 |
msgstr ""
|
2600 |
|
2601 |
-
#: app/module/ip-lockout/controller/main.php:
|
2602 |
-
#: app/module/ip-lockout/controller/main.php:
|
2603 |
msgid "%d login attempts remaining"
|
2604 |
msgstr ""
|
2605 |
|
2606 |
-
#: app/module/ip-lockout/controller/main.php:
|
2607 |
msgid ""
|
2608 |
"Your settings have been updated, however some IPs were removed because "
|
2609 |
"invalid format, or you blacklist yourself"
|
2610 |
msgstr ""
|
2611 |
|
2612 |
-
#: app/module/ip-lockout/controller/main.php:
|
2613 |
msgid "Login Protection has been activated."
|
2614 |
msgstr ""
|
2615 |
|
2616 |
-
#: app/module/ip-lockout/controller/main.php:
|
2617 |
msgid "Login Protection has been deactivated."
|
2618 |
msgstr ""
|
2619 |
|
2620 |
-
#: app/module/ip-lockout/controller/main.php:
|
2621 |
msgid "404 Detection has been activated."
|
2622 |
msgstr ""
|
2623 |
|
2624 |
-
#: app/module/ip-lockout/controller/main.php:
|
2625 |
msgid "404 Detection has been deactivated."
|
2626 |
msgstr ""
|
2627 |
|
2628 |
-
#: app/module/ip-lockout/controller/main.php:
|
2629 |
#: app/view/activator-free.php:33 app/view/activator.php:49
|
2630 |
msgid "IP Lockouts"
|
2631 |
msgstr ""
|
2632 |
|
2633 |
-
#: app/module/ip-lockout/controller/main.php:
|
2634 |
-
#: app/module/ip-lockout/controller/main.php:
|
2635 |
msgid "Your file is invalid!"
|
2636 |
msgstr ""
|
2637 |
|
2638 |
-
#: app/module/ip-lockout/controller/main.php:
|
2639 |
msgid "Your file content is invalid!"
|
2640 |
msgstr ""
|
2641 |
|
2642 |
-
#: app/module/ip-lockout/controller/main.php:
|
2643 |
msgid "Your whitelist/blacklist has been successfully imported."
|
2644 |
msgstr ""
|
2645 |
|
2646 |
-
#: app/module/ip-lockout/controller/main.php:
|
2647 |
msgid "Thanks for your patience. All set."
|
2648 |
msgstr ""
|
2649 |
|
@@ -2862,38 +2867,38 @@ msgstr ""
|
|
2862 |
msgid "Hi %s"
|
2863 |
msgstr ""
|
2864 |
|
2865 |
-
#: app/module/ip-lockout/view/emails/404-lockout.php:
|
2866 |
msgid ""
|
2867 |
"We've just locked out the host <strong>%s</strong> from %s due to more than "
|
2868 |
"<strong>%s</strong> 404 requests for the file <strong>%s</strong>. They "
|
2869 |
"have been locked out for <strong>%s seconds.</strong>"
|
2870 |
msgstr ""
|
2871 |
|
2872 |
-
#: app/module/ip-lockout/view/emails/404-lockout.php:
|
2873 |
-
#: app/module/ip-lockout/view/emails/login-lockout.php:
|
2874 |
-
#: app/module/ip-lockout/view/emails/login-username-ban.php:
|
2875 |
#: app/module/ip-lockout/view/emails/report.php:497
|
2876 |
msgid "You can view the full lockout logs <a href=\"%s\">here</a>"
|
2877 |
msgstr ""
|
2878 |
|
2879 |
-
#: app/module/ip-lockout/view/emails/404-lockout.php:
|
2880 |
-
#: app/module/ip-lockout/view/emails/login-lockout.php:
|
2881 |
-
#: app/module/ip-lockout/view/emails/login-username-ban.php:
|
2882 |
#: app/module/ip-lockout/view/emails/report.php:512
|
2883 |
msgid "Stay vigilant."
|
2884 |
msgstr ""
|
2885 |
|
2886 |
-
#: app/module/ip-lockout/view/emails/404-lockout.php:
|
2887 |
-
#: app/module/ip-lockout/view/emails/login-lockout.php:
|
2888 |
-
#: app/module/ip-lockout/view/emails/login-username-ban.php:
|
2889 |
#: app/module/ip-lockout/view/emails/report.php:515
|
2890 |
#: app/module/ip-lockout/view/locked.php:7
|
2891 |
msgid "WP Defender"
|
2892 |
msgstr ""
|
2893 |
|
2894 |
-
#: app/module/ip-lockout/view/emails/404-lockout.php:
|
2895 |
-
#: app/module/ip-lockout/view/emails/login-lockout.php:
|
2896 |
-
#: app/module/ip-lockout/view/emails/login-username-ban.php:
|
2897 |
#: app/module/ip-lockout/view/emails/report.php:517
|
2898 |
msgid "Security Hero"
|
2899 |
msgstr ""
|
@@ -2913,26 +2918,27 @@ msgstr ""
|
|
2913 |
msgid "Hi %s,"
|
2914 |
msgstr ""
|
2915 |
|
2916 |
-
#: app/module/ip-lockout/view/emails/login-lockout.php:
|
2917 |
-
#: app/module/ip-lockout/view/emails/login-username-ban.php:
|
2918 |
-
msgid "They have banned permanently."
|
2919 |
msgstr ""
|
2920 |
|
2921 |
-
#: app/module/ip-lockout/view/emails/login-lockout.php:
|
2922 |
-
#: app/module/ip-lockout/view/emails/login-username-ban.php:
|
2923 |
msgid "They have been locked out for <strong>%s seconds.</strong>"
|
2924 |
msgstr ""
|
2925 |
|
2926 |
-
#: app/module/ip-lockout/view/emails/login-lockout.php:
|
2927 |
msgid ""
|
2928 |
"We've just locked out the host <strong>%s</strong> from %s due to more than "
|
2929 |
"<strong>%s</strong> failed login attempts. %s"
|
2930 |
msgstr ""
|
2931 |
|
2932 |
-
#: app/module/ip-lockout/view/emails/login-username-ban.php:
|
2933 |
msgid ""
|
2934 |
"We've just locked out the host <strong>%s</strong> from %s due to "
|
2935 |
-
"attempting to login with a banned username.They have banned
|
|
|
2936 |
msgstr ""
|
2937 |
|
2938 |
#: app/module/ip-lockout/view/emails/report.php:7
|
@@ -3561,7 +3567,7 @@ msgid "Suspicious File"
|
|
3561 |
msgstr ""
|
3562 |
|
3563 |
#: app/module/scan/component/result-table.php:35
|
3564 |
-
#: app/module/scan/controller/main.php:
|
3565 |
msgid "Issue"
|
3566 |
msgstr ""
|
3567 |
|
@@ -3623,14 +3629,14 @@ msgid "Update Theme"
|
|
3623 |
msgstr ""
|
3624 |
|
3625 |
#: app/module/scan/controller/main.php:178
|
3626 |
-
#: app/module/scan/controller/main.php:
|
3627 |
msgid "The suspicious file has been successfully ignored."
|
3628 |
msgid_plural "The suspicious files have been successfully ignored."
|
3629 |
msgstr[0] ""
|
3630 |
msgstr[1] ""
|
3631 |
|
3632 |
#: app/module/scan/controller/main.php:193
|
3633 |
-
#: app/module/scan/controller/main.php:
|
3634 |
msgid "The suspicious file has been successfully restored."
|
3635 |
msgid_plural "The suspicious files have been successfully restored."
|
3636 |
msgstr[0] ""
|
@@ -3656,47 +3662,47 @@ msgstr[1] ""
|
|
3656 |
msgid "No item has been resolved"
|
3657 |
msgstr ""
|
3658 |
|
3659 |
-
#: app/module/scan/controller/main.php:
|
3660 |
msgid "This item has been resolved."
|
3661 |
msgstr ""
|
3662 |
|
3663 |
-
#: app/module/scan/controller/main.php:
|
3664 |
msgid "Please try again!"
|
3665 |
msgstr ""
|
3666 |
|
3667 |
-
#: app/module/scan/controller/main.php:
|
3668 |
-
#: app/module/scan/controller/main.php:
|
3669 |
-
#: app/module/scan/controller/main.php:
|
3670 |
-
#: app/module/scan/controller/main.php:
|
3671 |
msgid "The item doesn't exist!"
|
3672 |
msgstr ""
|
3673 |
|
3674 |
-
#: app/module/scan/controller/main.php:
|
3675 |
msgid "This item has been permanent removed."
|
3676 |
msgstr ""
|
3677 |
|
3678 |
-
#: app/module/scan/controller/main.php:
|
3679 |
#: app/module/scan/view/layouts/layout.php:5
|
3680 |
#: app/module/scan/view/scanning.php:6 app/view/activator-free.php:13
|
3681 |
#: app/view/activator.php:13
|
3682 |
msgid "File Scanning"
|
3683 |
msgstr ""
|
3684 |
|
3685 |
-
#: app/module/scan/controller/main.php:
|
3686 |
msgid "Scan In Progress"
|
3687 |
msgstr ""
|
3688 |
|
3689 |
-
#: app/module/scan/controller/main.php:
|
3690 |
msgid ""
|
3691 |
"Your code is currently clean! There were no issues found during the last "
|
3692 |
"scan, though you can always perform a new scan anytime."
|
3693 |
msgstr ""
|
3694 |
|
3695 |
-
#: app/module/scan/controller/main.php:
|
3696 |
msgid "File"
|
3697 |
msgstr ""
|
3698 |
|
3699 |
-
#: app/module/scan/controller/main.php:
|
3700 |
msgid "Let’s get your site patched up."
|
3701 |
msgstr ""
|
3702 |
|
2 |
# This file is distributed under the GNU General Public License (Version 2 - GPLv2).
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: WP Defender Pro 1.7.4\n"
|
6 |
"Report-Msgid-Bugs-To: https://wpmudev.org\n"
|
7 |
+
"POT-Creation-Date: 2017-11-20 09:56:01+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
152 |
msgstr ""
|
153 |
|
154 |
#: app/behavior/report-free.php:129 app/behavior/report.php:224
|
155 |
+
#: app/behavior/utils.php:848 free/utils.php:656
|
156 |
msgid "daily"
|
157 |
msgstr ""
|
158 |
|
159 |
#: app/behavior/report-free.php:132 app/behavior/report.php:227
|
160 |
+
#: app/behavior/utils.php:851 free/utils.php:659
|
161 |
msgid "weekly"
|
162 |
msgstr ""
|
163 |
|
164 |
#: app/behavior/report-free.php:135 app/behavior/report.php:230
|
165 |
+
#: app/behavior/utils.php:854 free/utils.php:662
|
166 |
msgid "monthly"
|
167 |
msgstr ""
|
168 |
|
216 |
msgid "Guest"
|
217 |
msgstr ""
|
218 |
|
219 |
+
#: app/behavior/utils.php:731
|
220 |
msgid "WordPress Core Integrity"
|
221 |
msgstr ""
|
222 |
|
223 |
+
#: app/behavior/utils.php:732
|
224 |
msgid "Plugins & Themes vulnerability"
|
225 |
msgstr ""
|
226 |
|
227 |
+
#: app/behavior/utils.php:733 app/module/scan/behavior/scan.php:145
|
228 |
#: app/module/scan/view/layouts/layout.php:70
|
229 |
#: app/module/scan/view/setting-free.php:50 app/module/scan/view/setting.php:43
|
230 |
#: app/view/settings.php:98
|
231 |
msgid "Suspicious Code"
|
232 |
msgstr ""
|
233 |
|
234 |
+
#: app/behavior/utils.php:831 free/utils.php:639
|
235 |
msgid "Please upgrade to 5.3 or later"
|
236 |
msgstr ""
|
237 |
|
305 |
msgstr ""
|
306 |
|
307 |
#: app/module/advanced-tools/behavior/at-widget.php:17
|
308 |
+
#: app/module/advanced-tools/controller/main.php:392
|
309 |
#: app/module/advanced-tools/view/layouts/layout.php:5
|
310 |
msgid "Advanced Tools"
|
311 |
msgstr ""
|
396 |
msgid "Some error happen"
|
397 |
msgstr ""
|
398 |
|
399 |
+
#: app/module/advanced-tools/controller/main.php:326
|
400 |
msgid "Whoops, the passcode you entered was incorrect or expired."
|
401 |
msgstr ""
|
402 |
|
403 |
+
#: app/module/advanced-tools/controller/main.php:457
|
404 |
#: app/module/audit/controller/main.php:196
|
405 |
+
#: app/module/ip-lockout/controller/main.php:693
|
406 |
+
#: app/module/scan/controller/main.php:306
|
407 |
msgid "Your settings have been updated."
|
408 |
msgstr ""
|
409 |
|
439 |
msgstr ""
|
440 |
|
441 |
#: app/module/advanced-tools/view/login/disabled.php:20
|
442 |
+
#: app/module/scan/controller/main.php:531 app/module/scan/view/setting.php:138
|
443 |
#: app/module/scan/view/setting.php:158
|
444 |
msgid "Cancel"
|
445 |
msgstr ""
|
1225 |
msgstr ""
|
1226 |
|
1227 |
#: app/module/audit/component/users-audit.php:75
|
1228 |
+
#: app/module/audit/component/users-audit.php:111
|
1229 |
+
msgid "%s deleted a user: ID: %s, username: %s"
|
1230 |
msgstr ""
|
1231 |
|
1232 |
+
#: app/module/audit/component/users-audit.php:93
|
1233 |
+
msgid "%s removed a user: ID: %s, username: %s from blog %s"
|
1234 |
+
msgstr ""
|
1235 |
+
|
1236 |
+
#: app/module/audit/component/users-audit.php:137
|
1237 |
msgid "Password requested to reset for user: %s"
|
1238 |
msgstr ""
|
1239 |
|
1240 |
+
#: app/module/audit/component/users-audit.php:145
|
1241 |
msgid "Password reset for user: %s"
|
1242 |
msgstr ""
|
1243 |
|
1244 |
+
#: app/module/audit/component/users-audit.php:156
|
1245 |
msgid "%s changed user %s's role from %s to %s"
|
1246 |
msgstr ""
|
1247 |
|
1248 |
+
#: app/module/audit/component/users-audit.php:210
|
1249 |
msgid "User %s updated his/her profile"
|
1250 |
msgstr ""
|
1251 |
|
1252 |
+
#: app/module/audit/component/users-audit.php:215
|
1253 |
msgid "%s updated user %s's profile information"
|
1254 |
msgstr ""
|
1255 |
|
1256 |
+
#: app/module/audit/component/users-audit.php:223
|
1257 |
msgid "lost password"
|
1258 |
msgstr ""
|
1259 |
|
1260 |
+
#: app/module/audit/component/users-audit.php:224
|
1261 |
msgid "registered"
|
1262 |
msgstr ""
|
1263 |
|
1264 |
+
#: app/module/audit/component/users-audit.php:225
|
1265 |
msgid "login"
|
1266 |
msgstr ""
|
1267 |
|
1268 |
+
#: app/module/audit/component/users-audit.php:226
|
1269 |
msgid "logout"
|
1270 |
msgstr ""
|
1271 |
|
1272 |
+
#: app/module/audit/component/users-audit.php:227
|
1273 |
msgid "password reset"
|
1274 |
msgstr ""
|
1275 |
|
1379 |
msgstr ""
|
1380 |
|
1381 |
#: app/module/audit/view/email_template.php:454
|
1382 |
+
#: app/module/ip-lockout/view/emails/404-lockout.php:511
|
1383 |
+
#: app/module/ip-lockout/view/emails/login-lockout.php:513
|
1384 |
+
#: app/module/ip-lockout/view/emails/login-username-ban.php:512
|
1385 |
#: app/module/ip-lockout/view/emails/report.php:545
|
1386 |
#: app/module/scan/view/email-template.php:477
|
1387 |
msgid "Related plugins worth giving a try"
|
1388 |
msgstr ""
|
1389 |
|
1390 |
#: app/module/audit/view/email_template.php:475
|
1391 |
+
#: app/module/ip-lockout/view/emails/404-lockout.php:532
|
1392 |
+
#: app/module/ip-lockout/view/emails/login-lockout.php:534
|
1393 |
+
#: app/module/ip-lockout/view/emails/login-username-ban.php:533
|
1394 |
#: app/module/ip-lockout/view/emails/report.php:566
|
1395 |
#: app/module/scan/view/email-template.php:498
|
1396 |
msgid "Optimize your site with"
|
1397 |
msgstr ""
|
1398 |
|
1399 |
#: app/module/audit/view/email_template.php:477
|
1400 |
+
#: app/module/ip-lockout/view/emails/404-lockout.php:534
|
1401 |
+
#: app/module/ip-lockout/view/emails/login-lockout.php:536
|
1402 |
+
#: app/module/ip-lockout/view/emails/login-username-ban.php:535
|
1403 |
#: app/module/ip-lockout/view/emails/report.php:568
|
1404 |
#: app/module/scan/view/email-template.php:500
|
1405 |
msgid "Hummingbird"
|
1406 |
msgstr ""
|
1407 |
|
1408 |
#: app/module/audit/view/email_template.php:494
|
1409 |
+
#: app/module/ip-lockout/view/emails/404-lockout.php:551
|
1410 |
+
#: app/module/ip-lockout/view/emails/login-lockout.php:553
|
1411 |
+
#: app/module/ip-lockout/view/emails/login-username-ban.php:552
|
1412 |
#: app/module/ip-lockout/view/emails/report.php:585
|
1413 |
#: app/module/scan/view/email-template.php:517
|
1414 |
msgid "Back up your hard work with"
|
1415 |
msgstr ""
|
1416 |
|
1417 |
#: app/module/audit/view/email_template.php:496
|
1418 |
+
#: app/module/ip-lockout/view/emails/404-lockout.php:553
|
1419 |
+
#: app/module/ip-lockout/view/emails/login-lockout.php:555
|
1420 |
+
#: app/module/ip-lockout/view/emails/login-username-ban.php:554
|
1421 |
#: app/module/ip-lockout/view/emails/report.php:587
|
1422 |
#: app/module/scan/view/email-template.php:519
|
1423 |
msgid "Snapshot"
|
1424 |
msgstr ""
|
1425 |
|
1426 |
#: app/module/audit/view/email_template.php:530
|
1427 |
+
#: app/module/ip-lockout/view/emails/404-lockout.php:587
|
1428 |
+
#: app/module/ip-lockout/view/emails/login-lockout.php:589
|
1429 |
+
#: app/module/ip-lockout/view/emails/login-username-ban.php:588
|
1430 |
#: app/module/ip-lockout/view/emails/report.php:621
|
1431 |
#: app/module/scan/view/email-template.php:553
|
1432 |
msgid "<a href=\"%s\">Configure reporting preferences</a>"
|
1715 |
msgstr ""
|
1716 |
|
1717 |
#: app/module/hardener/behavior/widget.php:19
|
1718 |
+
#: app/module/hardener/controller/main.php:146
|
1719 |
#: app/module/hardener/view/layouts/layout.php:3
|
1720 |
msgid "Security Tweaks"
|
1721 |
msgstr ""
|
1761 |
#: app/module/hardener/component/disable-file-editor-service.php:32
|
1762 |
#: app/module/hardener/component/disable-file-editor-service.php:66
|
1763 |
#: app/module/hardener/component/hide-error-service.php:61
|
1764 |
+
#: app/module/hardener/component/protect-information-service.php:46
|
1765 |
+
#: app/module/hardener/component/protect-information-service.php:69
|
1766 |
#: app/module/hardener/component/security-key-service.php:48
|
1767 |
#: app/module/hardener/component/servers/apache-service.php:62
|
1768 |
#: app/module/hardener/component/servers/apache-service.php:66
|
1863 |
msgid "Update PHP to latest version"
|
1864 |
msgstr ""
|
1865 |
|
1866 |
+
#: app/module/hardener/component/prevent-php-service.php:51
|
1867 |
msgid "Process is not possible on your current server"
|
1868 |
msgstr ""
|
1869 |
|
1870 |
+
#: app/module/hardener/component/prevent-php-service.php:58
|
1871 |
+
#: app/module/hardener/component/protect-information-service.php:86
|
1872 |
msgid "Revert is not possible on your current server"
|
1873 |
msgstr ""
|
1874 |
|
1915 |
msgid "Security tweak successfully reverted."
|
1916 |
msgstr ""
|
1917 |
|
1918 |
+
#: app/module/hardener/controller/main.php:112
|
1919 |
msgid "Security tweak successfully resolved."
|
1920 |
msgstr ""
|
1921 |
|
1922 |
+
#: app/module/hardener/controller/main.php:133
|
1923 |
msgid "Security tweak successfully updated."
|
1924 |
msgstr ""
|
1925 |
|
2451 |
msgstr ""
|
2452 |
|
2453 |
#: app/module/ip-lockout/component/login-protection-api.php:61
|
2454 |
+
#: app/module/ip-lockout/controller/main.php:588
|
2455 |
+
#: app/module/ip-lockout/controller/main.php:597
|
2456 |
msgid ""
|
2457 |
"You have been locked out by the administrator for attempting to login with "
|
2458 |
"a banned username"
|
2599 |
msgid "Login lockout alert for %s"
|
2600 |
msgstr ""
|
2601 |
|
2602 |
+
#: app/module/ip-lockout/controller/main.php:527
|
2603 |
msgid "Failed login attempt with username %s"
|
2604 |
msgstr ""
|
2605 |
|
2606 |
+
#: app/module/ip-lockout/controller/main.php:590
|
2607 |
+
#: app/module/ip-lockout/controller/main.php:600
|
2608 |
msgid "%d login attempts remaining"
|
2609 |
msgstr ""
|
2610 |
|
2611 |
+
#: app/module/ip-lockout/controller/main.php:689
|
2612 |
msgid ""
|
2613 |
"Your settings have been updated, however some IPs were removed because "
|
2614 |
"invalid format, or you blacklist yourself"
|
2615 |
msgstr ""
|
2616 |
|
2617 |
+
#: app/module/ip-lockout/controller/main.php:700
|
2618 |
msgid "Login Protection has been activated."
|
2619 |
msgstr ""
|
2620 |
|
2621 |
+
#: app/module/ip-lockout/controller/main.php:702
|
2622 |
msgid "Login Protection has been deactivated."
|
2623 |
msgstr ""
|
2624 |
|
2625 |
+
#: app/module/ip-lockout/controller/main.php:707
|
2626 |
msgid "404 Detection has been activated."
|
2627 |
msgstr ""
|
2628 |
|
2629 |
+
#: app/module/ip-lockout/controller/main.php:709
|
2630 |
msgid "404 Detection has been deactivated."
|
2631 |
msgstr ""
|
2632 |
|
2633 |
+
#: app/module/ip-lockout/controller/main.php:738 app/module/ip-lockout.php:35
|
2634 |
#: app/view/activator-free.php:33 app/view/activator.php:49
|
2635 |
msgid "IP Lockouts"
|
2636 |
msgstr ""
|
2637 |
|
2638 |
+
#: app/module/ip-lockout/controller/main.php:755
|
2639 |
+
#: app/module/ip-lockout/controller/main.php:761
|
2640 |
msgid "Your file is invalid!"
|
2641 |
msgstr ""
|
2642 |
|
2643 |
+
#: app/module/ip-lockout/controller/main.php:767
|
2644 |
msgid "Your file content is invalid!"
|
2645 |
msgstr ""
|
2646 |
|
2647 |
+
#: app/module/ip-lockout/controller/main.php:776
|
2648 |
msgid "Your whitelist/blacklist has been successfully imported."
|
2649 |
msgstr ""
|
2650 |
|
2651 |
+
#: app/module/ip-lockout/controller/main.php:961
|
2652 |
msgid "Thanks for your patience. All set."
|
2653 |
msgstr ""
|
2654 |
|
2867 |
msgid "Hi %s"
|
2868 |
msgstr ""
|
2869 |
|
2870 |
+
#: app/module/ip-lockout/view/emails/404-lockout.php:460
|
2871 |
msgid ""
|
2872 |
"We've just locked out the host <strong>%s</strong> from %s due to more than "
|
2873 |
"<strong>%s</strong> 404 requests for the file <strong>%s</strong>. They "
|
2874 |
"have been locked out for <strong>%s seconds.</strong>"
|
2875 |
msgstr ""
|
2876 |
|
2877 |
+
#: app/module/ip-lockout/view/emails/404-lockout.php:463
|
2878 |
+
#: app/module/ip-lockout/view/emails/login-lockout.php:465
|
2879 |
+
#: app/module/ip-lockout/view/emails/login-username-ban.php:464
|
2880 |
#: app/module/ip-lockout/view/emails/report.php:497
|
2881 |
msgid "You can view the full lockout logs <a href=\"%s\">here</a>"
|
2882 |
msgstr ""
|
2883 |
|
2884 |
+
#: app/module/ip-lockout/view/emails/404-lockout.php:478
|
2885 |
+
#: app/module/ip-lockout/view/emails/login-lockout.php:480
|
2886 |
+
#: app/module/ip-lockout/view/emails/login-username-ban.php:479
|
2887 |
#: app/module/ip-lockout/view/emails/report.php:512
|
2888 |
msgid "Stay vigilant."
|
2889 |
msgstr ""
|
2890 |
|
2891 |
+
#: app/module/ip-lockout/view/emails/404-lockout.php:481
|
2892 |
+
#: app/module/ip-lockout/view/emails/login-lockout.php:483
|
2893 |
+
#: app/module/ip-lockout/view/emails/login-username-ban.php:482
|
2894 |
#: app/module/ip-lockout/view/emails/report.php:515
|
2895 |
#: app/module/ip-lockout/view/locked.php:7
|
2896 |
msgid "WP Defender"
|
2897 |
msgstr ""
|
2898 |
|
2899 |
+
#: app/module/ip-lockout/view/emails/404-lockout.php:483
|
2900 |
+
#: app/module/ip-lockout/view/emails/login-lockout.php:485
|
2901 |
+
#: app/module/ip-lockout/view/emails/login-username-ban.php:484
|
2902 |
#: app/module/ip-lockout/view/emails/report.php:517
|
2903 |
msgid "Security Hero"
|
2904 |
msgstr ""
|
2918 |
msgid "Hi %s,"
|
2919 |
msgstr ""
|
2920 |
|
2921 |
+
#: app/module/ip-lockout/view/emails/login-lockout.php:460
|
2922 |
+
#: app/module/ip-lockout/view/emails/login-username-ban.php:460
|
2923 |
+
msgid "They have been banned permanently."
|
2924 |
msgstr ""
|
2925 |
|
2926 |
+
#: app/module/ip-lockout/view/emails/login-lockout.php:460
|
2927 |
+
#: app/module/ip-lockout/view/emails/login-username-ban.php:460
|
2928 |
msgid "They have been locked out for <strong>%s seconds.</strong>"
|
2929 |
msgstr ""
|
2930 |
|
2931 |
+
#: app/module/ip-lockout/view/emails/login-lockout.php:461
|
2932 |
msgid ""
|
2933 |
"We've just locked out the host <strong>%s</strong> from %s due to more than "
|
2934 |
"<strong>%s</strong> failed login attempts. %s"
|
2935 |
msgstr ""
|
2936 |
|
2937 |
+
#: app/module/ip-lockout/view/emails/login-username-ban.php:461
|
2938 |
msgid ""
|
2939 |
"We've just locked out the host <strong>%s</strong> from %s due to "
|
2940 |
+
"attempting to login with a banned username. They have been banned "
|
2941 |
+
"permanently."
|
2942 |
msgstr ""
|
2943 |
|
2944 |
#: app/module/ip-lockout/view/emails/report.php:7
|
3567 |
msgstr ""
|
3568 |
|
3569 |
#: app/module/scan/component/result-table.php:35
|
3570 |
+
#: app/module/scan/controller/main.php:809
|
3571 |
msgid "Issue"
|
3572 |
msgstr ""
|
3573 |
|
3629 |
msgstr ""
|
3630 |
|
3631 |
#: app/module/scan/controller/main.php:178
|
3632 |
+
#: app/module/scan/controller/main.php:440
|
3633 |
msgid "The suspicious file has been successfully ignored."
|
3634 |
msgid_plural "The suspicious files have been successfully ignored."
|
3635 |
msgstr[0] ""
|
3636 |
msgstr[1] ""
|
3637 |
|
3638 |
#: app/module/scan/controller/main.php:193
|
3639 |
+
#: app/module/scan/controller/main.php:411
|
3640 |
msgid "The suspicious file has been successfully restored."
|
3641 |
msgid_plural "The suspicious files have been successfully restored."
|
3642 |
msgstr[0] ""
|
3662 |
msgid "No item has been resolved"
|
3663 |
msgstr ""
|
3664 |
|
3665 |
+
#: app/module/scan/controller/main.php:336
|
3666 |
msgid "This item has been resolved."
|
3667 |
msgstr ""
|
3668 |
|
3669 |
+
#: app/module/scan/controller/main.php:340
|
3670 |
msgid "Please try again!"
|
3671 |
msgstr ""
|
3672 |
|
3673 |
+
#: app/module/scan/controller/main.php:351
|
3674 |
+
#: app/module/scan/controller/main.php:387
|
3675 |
+
#: app/module/scan/controller/main.php:416
|
3676 |
+
#: app/module/scan/controller/main.php:445
|
3677 |
msgid "The item doesn't exist!"
|
3678 |
msgstr ""
|
3679 |
|
3680 |
+
#: app/module/scan/controller/main.php:381
|
3681 |
msgid "This item has been permanent removed."
|
3682 |
msgstr ""
|
3683 |
|
3684 |
+
#: app/module/scan/controller/main.php:520
|
3685 |
#: app/module/scan/view/layouts/layout.php:5
|
3686 |
#: app/module/scan/view/scanning.php:6 app/view/activator-free.php:13
|
3687 |
#: app/view/activator.php:13
|
3688 |
msgid "File Scanning"
|
3689 |
msgstr ""
|
3690 |
|
3691 |
+
#: app/module/scan/controller/main.php:531
|
3692 |
msgid "Scan In Progress"
|
3693 |
msgstr ""
|
3694 |
|
3695 |
+
#: app/module/scan/controller/main.php:532 app/module/scan/view/issues.php:37
|
3696 |
msgid ""
|
3697 |
"Your code is currently clean! There were no issues found during the last "
|
3698 |
"scan, though you can always perform a new scan anytime."
|
3699 |
msgstr ""
|
3700 |
|
3701 |
+
#: app/module/scan/controller/main.php:807
|
3702 |
msgid "File"
|
3703 |
msgstr ""
|
3704 |
|
3705 |
+
#: app/module/scan/controller/main.php:843
|
3706 |
msgid "Let’s get your site patched up."
|
3707 |
msgstr ""
|
3708 |
|
readme.txt
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
=== Defender Security, Monitoring, and Hack Protection ===
|
2 |
Plugin Name: Defender Security, Monitoring, and Hack Protection
|
3 |
-
Version: 1.7.
|
4 |
Author: WPMU DEV
|
5 |
Author URI: http://premium.wpmudev.org/
|
6 |
Contributors: WPMUDEV
|
7 |
Tags: Security, Security Tweaks, Hardening, IP lockout, Monitoring, Blacklist, Site Protection, Hacked, Security Scan
|
8 |
Requires at least: 4.6
|
9 |
-
Tested up to: 4.9
|
10 |
-
Stable tag: 1.7.
|
11 |
License: GPL v2 - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
12 |
|
13 |
Protect WordPress from hackers with security tweaks, code scans, 2-Step Verification, IP lockouts, and monitoring.
|
@@ -49,9 +49,15 @@ Keep your site safe with Defender’s simple IP manager. Manually block specific
|
|
49 |
★★★★★ <br>
|
50 |
“I found other pro security plugins a bit too fiddly for my taste...I’m delighted with Defender” - <a href="https://profiles.wordpress.org/keithadv">KeithADV</a>
|
51 |
|
|
|
|
|
|
|
52 |
★★★★★ <br>
|
53 |
“Defender's interface is very intuitive with warnings that are very helpful” - <a href="https://premium.wpmudev.org/profile/djohns">djohns</a>
|
54 |
|
|
|
|
|
|
|
55 |
= Log-in Protection =
|
56 |
|
57 |
Brute force attacks are no match for Defender. Limit login attempts to stop users trying to guess passwords. Permanently ban IPs or trigger a timed lockout after a set number of failed login attempts.
|
@@ -110,6 +116,13 @@ Hackers and bot attacks are not the only threat to your site. No matter what se
|
|
110 |
|
111 |
|
112 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
= 1.7.3 =
|
114 |
* Fix: Two-factor authentication can be bypassed by user with no role.
|
115 |
* Improvement: Enhanced two-factor authentication protection across multisites.
|
1 |
=== Defender Security, Monitoring, and Hack Protection ===
|
2 |
Plugin Name: Defender Security, Monitoring, and Hack Protection
|
3 |
+
Version: 1.7.4
|
4 |
Author: WPMU DEV
|
5 |
Author URI: http://premium.wpmudev.org/
|
6 |
Contributors: WPMUDEV
|
7 |
Tags: Security, Security Tweaks, Hardening, IP lockout, Monitoring, Blacklist, Site Protection, Hacked, Security Scan
|
8 |
Requires at least: 4.6
|
9 |
+
Tested up to: 4.9.2
|
10 |
+
Stable tag: 1.7.4
|
11 |
License: GPL v2 - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
12 |
|
13 |
Protect WordPress from hackers with security tweaks, code scans, 2-Step Verification, IP lockouts, and monitoring.
|
49 |
★★★★★ <br>
|
50 |
“I found other pro security plugins a bit too fiddly for my taste...I’m delighted with Defender” - <a href="https://profiles.wordpress.org/keithadv">KeithADV</a>
|
51 |
|
52 |
+
★★★★★ <br>
|
53 |
+
“Thank you for bringing back a free and easy to use 2-Factor Authentication after Clef! Defender helps keep me aware of my sites security.” - <a href="https://wordpress.org/support/users/awijasa/">awijasa</a>
|
54 |
+
|
55 |
★★★★★ <br>
|
56 |
“Defender's interface is very intuitive with warnings that are very helpful” - <a href="https://premium.wpmudev.org/profile/djohns">djohns</a>
|
57 |
|
58 |
+
★★★★★ <br>
|
59 |
+
“Defender Recently blocked over 3000 attacks in one week without any noticeable impact on the website. WPMUDEV knocking it out of the park on this one.” - <a href="https://premium.wpmudev.org/profile/davidoswald/">David Oswald</a>
|
60 |
+
|
61 |
= Log-in Protection =
|
62 |
|
63 |
Brute force attacks are no match for Defender. Limit login attempts to stop users trying to guess passwords. Permanently ban IPs or trigger a timed lockout after a set number of failed login attempts.
|
116 |
|
117 |
|
118 |
== Changelog ==
|
119 |
+
|
120 |
+
= 1.7.4 =
|
121 |
+
- Fix: Conflict with Jetpack where Defender 2FA module would not detect if Jetpack 2FA was disabled.
|
122 |
+
- Fix: Visitor would get a 404 lockout if landing on a page with many dead links.
|
123 |
+
- Improvement: When an user is deleted, audit logging now display the user's login instead of only UID.
|
124 |
+
- Other minor enhancements/fixes
|
125 |
+
|
126 |
= 1.7.3 =
|
127 |
* Fix: Two-factor authentication can be bypassed by user with no role.
|
128 |
* Improvement: Enhanced two-factor authentication protection across multisites.
|
wp-defender.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
/**
|
4 |
* Plugin Name: WP Defender
|
5 |
* Plugin URI: https://premium.wpmudev.org/project/wp-defender/
|
6 |
-
* Version: 1.7.
|
7 |
* Description: Get regular security scans, vulnerability reports, safety recommendations and customized hardening for your site in just a few clicks. Defender is the analyst and enforcer who never sleeps.
|
8 |
* Author: WPMU DEV
|
9 |
* Author URI: http://premium.wpmudev.org/
|
3 |
/**
|
4 |
* Plugin Name: WP Defender
|
5 |
* Plugin URI: https://premium.wpmudev.org/project/wp-defender/
|
6 |
+
* Version: 1.7.4
|
7 |
* Description: Get regular security scans, vulnerability reports, safety recommendations and customized hardening for your site in just a few clicks. Defender is the analyst and enforcer who never sleeps.
|
8 |
* Author: WPMU DEV
|
9 |
* Author URI: http://premium.wpmudev.org/
|