OwlCyberSecurity - MANAGER
Edit File: Brute.php
<?php defined( 'ABSPATH' ) || die( 'Cheatin\' uh?' ); ?> <?php if ( ! isset( $view ) ) { return; } ?> <noscript> <style>#hmwp_wrap .tab-panel:not(.tab-panel-first) { display: block }</style> </noscript> <div id="hmwp_wrap" class="d-flex flex-row p-0 my-3"> <?php echo $view->getAdminTabs( HMWP_Classes_Tools::getValue( 'page', 'hmwp_brute' ) ); ?> <div class="hmwp_row d-flex flex-row p-0 m-0"> <div class="hmwp_col flex-grow-1 p-0 pr-2 mr-2 mb-3"> <div id="blocked" class="card col-sm-12 p-0 m-0 tab-panel tab-panel-first"> <h3 class="card-title hmwp_header p-2 m-0 mb-3"><?php echo esc_html__( 'Blocked IPs', 'hide-my-wp' ); ?> <a href="<?php echo esc_url( HMWP_Classes_Tools::getOption('hmwp_plugin_website') . '/kb/brute-force-attack-protection/' ) ?>" target="_blank" class="d-inline-block float-right mr-2" style="color: white"><i class="dashicons dashicons-editor-help"></i></a> </h3> <div class="card-body p-2 m-0"> <?php if ( HMWP_Classes_Tools::getOption( 'hmwp_bruteforce' ) ) { ?> <div class="py-1"> <div class="float-right my-1" onclick="jQuery('#hmwp_blockedips_form').submit()"> <i class="dashicons dashicons-update" style="cursor: pointer"></i></div> <div class="my-1"> <form method="POST"> <?php wp_nonce_field( 'hmwp_deleteallips', 'hmwp_nonce' ) ?> <input type="hidden" name="action" value="hmwp_deleteallips"/> <button type="submit" class="btn rounded-0 btn-default save py-1"><?php echo esc_html__( 'Unlock all', 'hide-my-wp' ); ?></button> </form> </div> </div> <form id="hmwp_blockedips_form" method="POST"> <?php wp_nonce_field( 'hmwp_blockedips', 'hmwp_nonce' ) ?> <input type="hidden" name="action" value="hmwp_blockedips"/> </form> <div id="hmwp_blockedips" class="col-sm-12 p-0"></div> <?php } else { ?> <div class="col-sm-12 p-1 text-center"> <div class="text-black-50 mb-2"><?php echo esc_html__( 'Activate the "Brute Force" option to see the user IP blocked report', 'hide-my-wp' ); ?></div> <a href="#brute" class="btn btn-default hmwp_nav_item" data-tab="brute"><?php echo esc_html__( 'Activate Brute Force Protection', 'hide-my-wp' ); ?></a> </div> <?php } ?> </div> </div> <form method="POST"> <?php wp_nonce_field( 'hmwp_brutesettings', 'hmwp_nonce' ) ?> <input type="hidden" name="action" value="hmwp_brutesettings"/> <input type="hidden" name="hmwp_bruteforce_login" value="1"/> <?php do_action( 'hmwp_brute_force_form_beginning' ) ?> <div id="brute" class="card col-sm-12 p-0 m-0 tab-panel "> <h3 class="card-title hmwp_header p-2 m-0"><?php echo esc_html__( 'Brute Force', 'hide-my-wp' ); ?> <a href="<?php echo esc_url( HMWP_Classes_Tools::getOption('hmwp_plugin_website') . '/kb/brute-force-attack-protection/' ) ?>" target="_blank" class="d-inline-block float-right mr-2"><i class="dashicons dashicons-editor-help"></i></a> </h3> <div class="card-body"> <div class="col-sm-12 row mb-1 ml-1 p-2"> <div class="checker col-sm-12 row my-2 py-1"> <div class="col-sm-12 p-0 switch switch-sm"> <input type="hidden" name="hmwp_bruteforce" value="0"/> <input type="checkbox" id="hmwp_bruteforce" name="hmwp_bruteforce" class="switch" <?php echo( HMWP_Classes_Tools::getOption( 'hmwp_bruteforce' ) ? 'checked="checked"' : '' ) ?> value="1"/> <label for="hmwp_bruteforce"><?php echo esc_html__( 'Use Brute Force Protection', 'hide-my-wp' ); ?></label> <a href="<?php echo esc_url( HMWP_Classes_Tools::getOption('hmwp_plugin_website') . '/kb/brute-force-attack-protection/#ghost-activate-brute-force-protection' ) ?>" target="_blank" class="d-inline-block ml-2"><i class="dashicons dashicons-editor-help"></i></a> <div class="text-black-50 ml-5"><?php echo esc_html__( 'Protects your website against Brute Force login attacks.', 'hide-my-wp' ); ?></div> </div> </div> </div> <div class="col-sm-12 row mb-1 ml-1 p-2 hmwp_bruteforce"> <div class="checker col-sm-12 row my-2 py-0"> <div class="col-sm-12 p-0 switch switch-xxs pl-5"> <input type="hidden" name="hmwp_bruteforce_lostpassword" value="0"/> <input type="checkbox" id="hmwp_bruteforce_lostpassword" name="hmwp_bruteforce_lostpassword" class="switch" <?php echo( HMWP_Classes_Tools::getOption( 'hmwp_bruteforce_lostpassword' ) ? 'checked="checked"' : '' ) ?> value="1"/> <label for="hmwp_bruteforce_lostpassword"><?php echo esc_html__( 'Lost Password Form Protection', 'hide-my-wp' ); ?></label> <div class="text-black-50 ml-5"><?php echo esc_html__( 'Activate the Brute Force protection on lost password form.', 'hide-my-wp' ); ?></div> </div> </div> </div> <?php if ( get_option( 'users_can_register' ) ) { ?> <div class="col-sm-12 row mb-1 ml-1 p-2 hmwp_bruteforce"> <div class="checker col-sm-12 row my-2 py-0"> <div class="col-sm-12 p-0 switch switch-xxs pl-5"> <input type="hidden" name="hmwp_bruteforce_register" value="0"/> <input type="checkbox" id="hmwp_bruteforce_register" name="hmwp_bruteforce_register" class="switch" <?php echo( HMWP_Classes_Tools::getOption( 'hmwp_bruteforce_register' ) ? 'checked="checked"' : '' ) ?> value="1"/> <label for="hmwp_bruteforce_register"><?php echo esc_html__( 'Sign Up Form Protection', 'hide-my-wp' ); ?></label> <div class="text-black-50 ml-5"><?php echo esc_html__( 'Activate the Brute Force protection on sign up form.', 'hide-my-wp' ); ?></div> </div> </div> </div> <?php } ?> <div class="col-sm-12 row mb-1 ml-1 p-2 hmwp_bruteforce"> <div class="checker col-sm-12 row my-2 py-0"> <div class="col-sm-12 p-0 switch switch-xxs pl-5"> <input type="hidden" name="hmwp_bruteforce_comments" value="0"/> <input type="checkbox" id="hmwp_bruteforce_comments" name="hmwp_bruteforce_comments" class="switch" <?php echo( HMWP_Classes_Tools::getOption( 'hmwp_bruteforce_comments' ) ? 'checked="checked"' : '' ) ?> value="1"/> <label for="hmwp_bruteforce_comments"><?php echo esc_html__( 'Comment Form Protection', 'hide-my-wp' ); ?></label> <div class="text-black-50 ml-5"><?php echo esc_html__( 'Activate the Brute Force protection on website comment form.', 'hide-my-wp' ); ?></div> </div> </div> </div> <div class="col-sm-12 row mb-1 ml-1 p-2 hmwp_bruteforce"> <div class="checker col-sm-12 row my-2 py-0"> <div class="col-sm-12 p-0 switch switch-xxs pl-5"> <input type="hidden" name="hmwp_bruteforce_username" value="0"/> <input type="checkbox" id="hmwp_bruteforce_username" name="hmwp_bruteforce_username" class="switch" <?php echo( HMWP_Classes_Tools::getOption( 'hmwp_bruteforce_username' ) ? 'checked="checked"' : '' ) ?> value="1"/> <label for="hmwp_bruteforce_username"><?php echo esc_html__( 'Wrong Username Protection', 'hide-my-wp' ); ?></label> <div class="text-black-50 ml-5"><?php echo esc_html__( 'Immediately block incorrect usernames on login form.', 'hide-my-wp' ); ?></div> </div> </div> </div> <div class="hmwp_bruteforce"> <div class="border-top"></div> <input type="hidden" value="<?php echo( HMWP_Classes_Tools::getOption( 'brute_use_math' ) ? '1' : '0' ) ?>" name="brute_use_math"> <?php if ( HMWP_Classes_Tools::getOption( 'brute_use_google_enterprise' ) ) { ?> <input type="hidden" name="brute_use_captcha" value="0"/> <input type="hidden" name="brute_use_captcha_v3" value="0"/> <input type="hidden" value="<?php echo( HMWP_Classes_Tools::getOption( 'brute_use_google' ) ? '1' : '0' ) ?>" name="brute_use_google"> <?php }else{ ?> <input type="hidden" name="brute_use_google" value="0"/> <input type="hidden" value="<?php echo( HMWP_Classes_Tools::getOption( 'brute_use_captcha' ) ? '1' : '0' ) ?>" name="brute_use_captcha"> <?php if ( ! HMWP_Classes_Tools::isPluginActive( 'ultimate-member/ultimate-member.php' ) ) { ?> <input type="hidden" value="<?php echo( HMWP_Classes_Tools::getOption( 'brute_use_captcha_v3' ) ? '1' : '0' ) ?>" name="brute_use_captcha_v3"> <?php } ?> <?php } ?> <div class="col-sm-12 group_autoload d-flex justify-content-center btn-group btn-group-lg mt-3 px-0" role="group"> <button type="button" class="btn btn-outline-info brute_use_math mx-1 py-4 px-4 <?php echo( HMWP_Classes_Tools::getOption( 'brute_use_math' ) ? 'active' : '' ) ?>"><?php echo esc_html__( 'Math reCAPTCHA', 'hide-my-wp' ); ?></button> <?php if ( HMWP_Classes_Tools::getOption( 'brute_use_google_enterprise' ) ) { ?> <button type="button" class="btn btn-outline-info brute_use_google mx-1 py-4 px-4 <?php echo( HMWP_Classes_Tools::getOption( 'brute_use_google' ) ? 'active' : '' ) ?>"><?php echo esc_html__( "Google reCAPTCHA", 'hide-my-wp' ) ?></button> <?php }else{ ?> <button type="button" class="btn btn-outline-info brute_use_captcha mx-1 py-4 px-4 <?php echo( HMWP_Classes_Tools::getOption( 'brute_use_captcha' ) ? 'active' : '' ) ?>"><?php echo esc_html__( "Google reCAPTCHA V2", 'hide-my-wp' ) ?></button> <?php if ( ! HMWP_Classes_Tools::isPluginActive( 'ultimate-member/ultimate-member.php' ) ) { ?> <button type="button" class="btn btn-outline-info brute_use_captcha_v3 mx-1 py-4 px-4 <?php echo( HMWP_Classes_Tools::getOption( 'brute_use_captcha_v3' ) ? 'active' : '' ) ?>"><?php echo esc_html__( "Google reCAPTCHA V3", 'hide-my-wp' ) ?></button> <?php } ?> <?php } ?> </div> <?php if ( HMWP_Classes_Tools::getOption( 'brute_use_google_enterprise' ) ) { ?> <div class="brute_use_google" <?php echo( ! HMWP_Classes_Tools::getOption( 'brute_use_google' ) ? 'style="display:none;"' : '' ) ?>> <div class="col-sm-12 text-center border-bottom border-light py-3 mx-0 my-3"> <?php echo sprintf( esc_html__( "%sClick here%s to create or view keys for Google reCAPTCHA.", 'hide-my-wp' ), '<a href="https://console.cloud.google.com/security/recaptcha/" class="mx-1 text-link font-weight-bold text-uppercase" target="_blank">', '</a>' ); ?> </div> <div class="col-sm-12 row border-bottom border-light py-3 mx-0 my-3"> <div class="col-md-4 p-0 font-weight-bold"> <?php echo esc_html__( 'Site Key', 'hide-my-wp' ); ?>: <div class="small text-black-50"><?php echo sprintf( esc_html__( "Site keys for %s Google reCaptcha %s.", 'hide-my-wp' ), '<a href="https://console.cloud.google.com/security/recaptcha" class="text-link" target="_blank">', '</a>' ); ?></div> </div> <div class="col-md-8 p-0 input-group"> <input type="text" class="form-control " name="brute_google_site_key" value="<?php echo esc_attr( HMWP_Classes_Tools::getOption( 'brute_google_site_key' ) ) ?>"/> </div> </div> <div class="col-sm-12 row border-bottom border-light py-3 mx-0 my-3"> <div class="col-md-4 p-0 font-weight-bold"> <?php echo esc_html__( 'Project ID', 'hide-my-wp' ); ?>: <div class="small text-black-50"><?php echo sprintf( esc_html__( "Project ID for %s Google Enterprise %s.", 'hide-my-wp' ), '<a href="https://console.cloud.google.com/cloud-resource-manager" class="text-link" target="_blank">', '</a>' ); ?></div> </div> <div class="col-md-8 p-0 input-group"> <input type="text" class="form-control " name="brute_google_project_id" value="<?php echo esc_attr( HMWP_Classes_Tools::getOption( 'brute_google_project_id' ) ) ?>"/> </div> </div> <div class="col-sm-12 row border-bottom border-light py-3 mx-0 my-3"> <div class="col-md-4 p-0 font-weight-bold"> <?php echo esc_html__( 'Api Key', 'hide-my-wp' ); ?>: <div class="small text-black-50"><?php echo sprintf( esc_html__( "Api key from %s Google API Console %s.", 'hide-my-wp' ), '<a href="https://console.cloud.google.com/apis/credentials" class="text-link" target="_blank">', '</a>' ); ?></div> </div> <div class="col-md-8 p-0 input-group"> <input type="password" class="form-control " name="brute_google_api_key" value="<?php echo esc_attr( HMWP_Classes_Tools::getOption( 'brute_google_api_key' ) ) ?>"/> </div> </div> <div class="col-sm-12 row mb-1 ml-1 p-2"> <div class="checker col-sm-12 row my-2 py-1"> <div class="col-sm-12 p-0 switch switch-sm"> <input type="hidden" name="brute_google_checkbox" value="0"/> <input type="checkbox" id="brute_google_checkbox" name="brute_google_checkbox" class="switch" <?php echo( HMWP_Classes_Tools::getOption( 'brute_google_checkbox' ) ? 'checked="checked"' : '' ) ?> value="1"/> <label for="brute_google_checkbox"><?php echo esc_html__( 'Use Checkbox Challenge', 'hide-my-wp' ); ?></label> <div class="text-black-50 ml-5"><?php echo sprintf( esc_html__( "Verifies users by requiring them to check %s I'm not a robot %s checkbox.", 'hide-my-wp' ), '<strong>', '</strong>' ); ?></div> <div class="text-danger ml-5"><?php echo sprintf( esc_html__( "%s Important! %s Enable this option only if it is already activated in the %s Google reCAPTCHA Key %s settings.", 'hide-my-wp' ), '<strong>', '</strong>', '<a href="https://console.cloud.google.com/security/recaptcha/'.esc_attr( HMWP_Classes_Tools::getOption( 'brute_google_site_key' ) ).'/edit" target="_blank">', '</a>'); ?></div> </div> </div> </div> <div class="col-sm-12 row border-bottom border-light py-3 mx-0 my-3 brute_google_checkbox"> <div class="col-sm-4 p-1"> <div class="font-weight-bold"><?php echo esc_html__( 'reCaptcha Language', 'hide-my-wp' ); ?>: </div> </div> <div class="col-sm-8 p-0 input-group"> <select name="brute_google_language" class="selectpicker form-control mb-1"> <?php $languages = array( esc_html__( 'Auto Detect', 'hide-my-wp' ) => '', esc_html__( 'English', 'hide-my-wp' ) => 'en', esc_html__( 'Arabic', 'hide-my-wp' ) => 'ar', esc_html__( 'Bulgarian', 'hide-my-wp' ) => 'bg', esc_html__( 'Catalan Valencian', 'hide-my-wp' ) => 'ca', esc_html__( 'Czech', 'hide-my-wp' ) => 'cs', esc_html__( 'Danish', 'hide-my-wp' ) => 'da', esc_html__( 'German', 'hide-my-wp' ) => 'de', esc_html__( 'Greek', 'hide-my-wp' ) => 'el', esc_html__( 'British English', 'hide-my-wp' ) => 'en_gb', esc_html__( 'Spanish', 'hide-my-wp' ) => 'es', esc_html__( 'Persian', 'hide-my-wp' ) => 'fa', esc_html__( 'French', 'hide-my-wp' ) => 'fr', esc_html__( 'Canadian French', 'hide-my-wp' ) => 'fr_ca', esc_html__( 'Hindi', 'hide-my-wp' ) => 'hi', esc_html__( 'Croatian', 'hide-my-wp' ) => 'hr', esc_html__( 'Hungarian', 'hide-my-wp' ) => 'hu', esc_html__( 'Indonesian', 'hide-my-wp' ) => 'id', esc_html__( 'Italian', 'hide-my-wp' ) => 'it', esc_html__( 'Hebrew', 'hide-my-wp' ) => 'iw', esc_html__( 'Jananese', 'hide-my-wp' ) => 'ja', esc_html__( 'Korean', 'hide-my-wp' ) => 'ko', esc_html__( 'Lithuanian', 'hide-my-wp' ) => 'lt', esc_html__( 'Latvian', 'hide-my-wp' ) => 'lv', esc_html__( 'Dutch', 'hide-my-wp' ) => 'nl', esc_html__( 'Norwegian', 'hide-my-wp' ) => 'no', esc_html__( 'Polish', 'hide-my-wp' ) => 'pl', esc_html__( 'Portuguese', 'hide-my-wp' ) => 'pt', esc_html__( 'Romanian', 'hide-my-wp' ) => 'ro', esc_html__( 'Russian', 'hide-my-wp' ) => 'ru', esc_html__( 'Slovak', 'hide-my-wp' ) => 'sk', esc_html__( 'Slovene', 'hide-my-wp' ) => 'sl', esc_html__( 'Serbian', 'hide-my-wp' ) => 'sr', esc_html__( 'Swedish', 'hide-my-wp' ) => 'sv', esc_html__( 'Thai', 'hide-my-wp' ) => 'th', esc_html__( 'Turkish', 'hide-my-wp' ) => 'tr', esc_html__( 'Ukrainian', 'hide-my-wp' ) => 'uk', esc_html__( 'Vietnamese', 'hide-my-wp' ) => 'vi', esc_html__( 'Simplified Chinese', 'hide-my-wp' ) => 'zh_cn', esc_html__( 'Traditional Chinese', 'hide-my-wp' ) => 'zh_tw' ); foreach ( $languages as $key => $language ) { echo '<option value="' . esc_attr( $language ) . '" ' . selected( $language, HMWP_Classes_Tools::getOption( 'brute_google_language' ) ) . '>' . esc_html( ucfirst( $key ) ) . '</option>'; } ?> </select> </div> </div> <?php if ( HMWP_Classes_Tools::getOption( 'brute_google_project_id' ) <> '' && HMWP_Classes_Tools::getOption( 'brute_google_api_key' ) <> '' && HMWP_Classes_Tools::getOption( 'brute_google_site_key' ) <> '' ) { ?> <div class="col-sm-12 border-bottom border-light py-3 mx-0 my-3"> <button type="button" class="btn btn-lg btn-default brute_recaptcha_test hmwp_modal" data-remote="<?php echo esc_url( site_url( 'wp-login.php' ) ) ?>?nordt=1" data-target="#brute_recaptcha_modal"><?php echo esc_html__( 'reCAPTCHA Test', 'hide-my-wp' ); ?></button> <h4 class="mt-5 mb-3"><?php echo esc_html__( 'Next Steps', 'hide-my-wp' ); ?></h4> <ol> <li><?php echo sprintf( esc_html__( "Run %sreCAPTCHA Test%s and login inside the popup.", 'hide-my-wp' ), '<strong>', '</strong>' ); ?></li> <li><?php echo esc_html__( "If you're able to login, you've set reCAPTCHA correctly.", 'hide-my-wp' ); ?></li> <li><?php echo esc_html__( 'If the reCAPTCHA displays any error, please make sure you fix them before moving forward.', 'hide-my-wp' ); ?></li> <li><?php echo esc_html__( 'Do not logout from your account until you are confident that reCAPTCHA is working and you will be able to login again.', 'hide-my-wp' ); ?></li> <li><?php echo esc_html__( "If you can't configure reCAPTCHA, switch to Math reCaptcha protection.", 'hide-my-wp' ); ?></li> </ol> </div> <?php } ?> </div> <?php } else { ?> <div class="brute_use_captcha" <?php echo( ! HMWP_Classes_Tools::getOption( 'brute_use_captcha' ) ? 'style="display:none"' : '' ) ?>> <div class="col-sm-12 text-center border-bottom border-light py-3 mx-0 my-3"> <?php echo sprintf( esc_html__( "%sClick here%s to create or view keys for Google reCAPTCHA v2.", 'hide-my-wp' ), '<a href="https://www.google.com/recaptcha/admin/create" class="mx-1 text-link font-weight-bold text-uppercase" target="_blank">', '</a>' ); ?> </div> <div class="col-sm-12 row border-bottom border-light py-3 mx-0 my-3"> <div class="col-md-4 p-0 font-weight-bold"> <?php echo esc_html__( 'Site Key', 'hide-my-wp' ); ?>: <div class="small text-black-50"><?php echo sprintf( esc_html__( "Site keys for %sGoogle reCaptcha%s.", 'hide-my-wp' ), '<a href="https://www.google.com/recaptcha/admin#list" class="text-link" target="_blank">', '</a>' ); ?></div> </div> <div class="col-md-8 p-0 input-group"> <input type="text" class="form-control" name="brute_captcha_site_key" value="<?php echo HMWP_Classes_Tools::getOption( 'brute_captcha_site_key' ) ?>"/> </div> </div> <div class="col-sm-12 row border-bottom border-light py-3 mx-0 my-3"> <div class="col-md-4 p-0 font-weight-bold"> <?php echo esc_html__( 'Secret Key', 'hide-my-wp' ); ?>: <div class="small text-black-50"><?php echo sprintf( esc_html__( "Secret keys for %sGoogle reCAPTCHA%s.", 'hide-my-wp' ), '<a href="https://www.google.com/recaptcha/admin#list" class="text-link" target="_blank">', '</a>' ); ?></div> </div> <div class="col-md-8 p-0 input-group"> <input type="password" class="form-control" name="brute_captcha_secret_key" value="<?php echo HMWP_Classes_Tools::getOption( 'brute_captcha_secret_key' ) ?>"/> </div> </div> <div class="col-sm-12 row border-bottom border-light py-3 mx-0 my-3"> <div class="col-sm-4 p-1"> <div class="font-weight-bold"><?php echo esc_html__( 'reCaptcha Theme', 'hide-my-wp' ); ?>:</div> </div> <div class="col-sm-8 p-0 input-group"> <select name="brute_captcha_theme" class="form-control mb-1 selectpicker"> <?php $themes = array( esc_html__( 'light', 'hide-my-wp' ), esc_html__( 'dark', 'hide-my-wp' ) ); foreach ( $themes as $theme ) { echo '<option value="' . $theme . '" ' . selected( $theme, HMWP_Classes_Tools::getOption( 'brute_captcha_theme' ) ) . '>' . ucfirst( $theme ) . '</option>'; } ?> </select> </div> </div> <div class="col-sm-12 row border-bottom border-light py-3 mx-0 my-3"> <div class="col-sm-4 p-1"> <div class="font-weight-bold"><?php echo esc_html__( 'reCaptcha Language', 'hide-my-wp' ); ?>:</div> </div> <div class="col-sm-8 p-0 input-group"> <select name="brute_captcha_language" class="form-control mb-1 selectpicker"> <?php $languages = array( esc_html__( 'Auto Detect', 'hide-my-wp' ) => '', esc_html__( 'English', 'hide-my-wp' ) => 'en', esc_html__( 'Arabic', 'hide-my-wp' ) => 'ar', esc_html__( 'Bulgarian', 'hide-my-wp' ) => 'bg', esc_html__( 'Catalan Valencian', 'hide-my-wp' ) => 'ca', esc_html__( 'Czech', 'hide-my-wp' ) => 'cs', esc_html__( 'Danish', 'hide-my-wp' ) => 'da', esc_html__( 'German', 'hide-my-wp' ) => 'de', esc_html__( 'Greek', 'hide-my-wp' ) => 'el', esc_html__( 'British English', 'hide-my-wp' ) => 'en_gb', esc_html__( 'Spanish', 'hide-my-wp' ) => 'es', esc_html__( 'Persian', 'hide-my-wp' ) => 'fa', esc_html__( 'French', 'hide-my-wp' ) => 'fr', esc_html__( 'Canadian French', 'hide-my-wp' ) => 'fr_ca', esc_html__( 'Hindi', 'hide-my-wp' ) => 'hi', esc_html__( 'Croatian', 'hide-my-wp' ) => 'hr', esc_html__( 'Hungarian', 'hide-my-wp' ) => 'hu', esc_html__( 'Indonesian', 'hide-my-wp' ) => 'id', esc_html__( 'Italian', 'hide-my-wp' ) => 'it', esc_html__( 'Hebrew', 'hide-my-wp' ) => 'iw', esc_html__( 'Jananese', 'hide-my-wp' ) => 'ja', esc_html__( 'Korean', 'hide-my-wp' ) => 'ko', esc_html__( 'Lithuanian', 'hide-my-wp' ) => 'lt', esc_html__( 'Latvian', 'hide-my-wp' ) => 'lv', esc_html__( 'Dutch', 'hide-my-wp' ) => 'nl', esc_html__( 'Norwegian', 'hide-my-wp' ) => 'no', esc_html__( 'Polish', 'hide-my-wp' ) => 'pl', esc_html__( 'Portuguese', 'hide-my-wp' ) => 'pt', esc_html__( 'Romanian', 'hide-my-wp' ) => 'ro', esc_html__( 'Russian', 'hide-my-wp' ) => 'ru', esc_html__( 'Slovak', 'hide-my-wp' ) => 'sk', esc_html__( 'Slovene', 'hide-my-wp' ) => 'sl', esc_html__( 'Serbian', 'hide-my-wp' ) => 'sr', esc_html__( 'Swedish', 'hide-my-wp' ) => 'sv', esc_html__( 'Thai', 'hide-my-wp' ) => 'th', esc_html__( 'Turkish', 'hide-my-wp' ) => 'tr', esc_html__( 'Ukrainian', 'hide-my-wp' ) => 'uk', esc_html__( 'Vietnamese', 'hide-my-wp' ) => 'vi', esc_html__( 'Simplified Chinese', 'hide-my-wp' ) => 'zh_cn', esc_html__( 'Traditional Chinese', 'hide-my-wp' ) => 'zh_tw' ); foreach ( $languages as $key => $language ) { echo '<option value="' . $language . '" ' . selected( $language, HMWP_Classes_Tools::getOption( 'brute_captcha_language' ) ) . '>' . ucfirst( $key ) . '</option>'; } ?> </select> </div> </div> <?php if ( HMWP_Classes_Tools::getOption( 'brute_captcha_site_key' ) <> '' && HMWP_Classes_Tools::getOption( 'brute_captcha_secret_key' ) <> '' ) { ?> <div class="col-sm-12 border-bottom border-light py-3 mx-0 my-3"> <button type="button" class="btn btn-lg btn-default brute_recaptcha_test hmwp_modal" data-remote="<?php echo site_url( 'wp-login.php' ) ?>?nordt=1" data-target="#brute_recaptcha_modal"><?php echo esc_html__( 'reCAPTCHA V2 Test', 'hide-my-wp' ); ?></button> <h4 class="mt-5 mb-3"><?php echo esc_html__( 'Next Steps', 'hide-my-wp' ); ?></h4> <ol> <li><?php echo sprintf( esc_html__( "Run %sreCAPTCHA Test%s and login inside the popup.", 'hide-my-wp' ), '<strong>', '</strong>' ); ?></li> <li><?php echo esc_html__( "If you're able to login, you've set reCAPTCHA correctly.", 'hide-my-wp' ); ?></li> <li><?php echo esc_html__( 'If the reCAPTCHA displays any error, please make sure you fix them before moving forward.', 'hide-my-wp' ); ?></li> <li><?php echo esc_html__( 'Do not logout from your account until you are confident that reCAPTCHA is working and you will be able to login again.', 'hide-my-wp' ); ?></li> <li><?php echo esc_html__( "If you can't configure reCAPTCHA, switch to Math reCaptcha protection.", 'hide-my-wp' ); ?></li> </ol> </div> <?php } ?> </div> <div class="brute_use_captcha_v3" <?php echo( ! HMWP_Classes_Tools::getOption( 'brute_use_captcha_v3' ) ? 'style="display:none"' : '' ) ?>> <div class="col-sm-12 text-center border-bottom border-light py-3 mx-0 my-3"> <?php echo sprintf( esc_html__( "%sClick here%s to create or view keys for Google reCAPTCHA v3.", 'hide-my-wp' ), '<a href="https://www.google.com/recaptcha/admin/create" class="mx-1 text-link font-weight-bold text-uppercase" target="_blank">', '</a>' ); ?> </div> <div class="col-sm-12 row border-bottom border-light py-3 mx-0 my-3"> <div class="col-md-4 p-0 font-weight-bold"> <?php echo esc_html__( 'Site Key', 'hide-my-wp' ); ?>: <div class="small text-black-50"><?php echo sprintf( esc_html__( "Site keys for %sGoogle reCaptcha%s.", 'hide-my-wp' ), '<a href="https://www.google.com/recaptcha/admin#list" class="text-link" target="_blank">', '</a>' ); ?></div> </div> <div class="col-md-8 p-0 input-group"> <input type="text" class="form-control" name="brute_captcha_site_key_v3" value="<?php echo HMWP_Classes_Tools::getOption( 'brute_captcha_site_key_v3' ) ?>"/> </div> </div> <div class="col-sm-12 row border-bottom border-light py-3 mx-0 my-3"> <div class="col-md-4 p-0 font-weight-bold"> <?php echo esc_html__( 'Secret Key', 'hide-my-wp' ); ?>: <div class="small text-black-50"><?php echo sprintf( esc_html__( "Secret keys for %sGoogle reCAPTCHA%s.", 'hide-my-wp' ), '<a href="https://www.google.com/recaptcha/admin#list" class="text-link" target="_blank">', '</a>' ); ?></div> </div> <div class="col-md-8 p-0 input-group"> <input type="password" class="form-control" name="brute_captcha_secret_key_v3" value="<?php echo HMWP_Classes_Tools::getOption( 'brute_captcha_secret_key_v3' ) ?>"/> </div> </div> <?php if ( HMWP_Classes_Tools::getOption( 'brute_captcha_site_key_v3' ) <> '' && HMWP_Classes_Tools::getOption( 'brute_captcha_secret_key_v3' ) <> '' ) { ?> <div class="col-sm-12 border-bottom border-light py-3 mx-0 my-3"> <button type="button" class="btn btn-lg btn-default brute_recaptcha_test hmwp_modal" data-remote="<?php echo site_url( 'wp-login.php' ) ?>?nordt=1" data-target="#brute_recaptcha_modal"><?php echo esc_html__( 'reCAPTCHA V3 Test', 'hide-my-wp' ); ?></button> <h4 class="mt-5 mb-3"><?php echo esc_html__( 'Next Steps', 'hide-my-wp' ); ?></h4> <ol> <li><?php echo sprintf( esc_html__( "Run %sreCAPTCHA Test%s and login inside the popup.", 'hide-my-wp' ), '<strong>', '</strong>' ); ?></li> <li><?php echo esc_html__( "If you're able to login, you've set reCAPTCHA correctly.", 'hide-my-wp' ); ?></li> <li><?php echo esc_html__( 'If the reCAPTCHA displays any error, please make sure you fix them before moving forward.', 'hide-my-wp' ); ?></li> <li><?php echo esc_html__( 'Do not logout from your account until you are confident that reCAPTCHA is working and you will be able to login again.', 'hide-my-wp' ); ?></li> <li><?php echo esc_html__( "If you can't configure reCAPTCHA, switch to Math reCaptcha protection.", 'hide-my-wp' ); ?></li> </ol> </div> <?php } ?> </div> <?php } ?> <div> <div class="col-sm-12 row border-bottom border-light py-3 mx-0 my-3"> <div class="col-md-4 p-0 font-weight-bold"> <?php echo esc_html__( 'Max Fail Attempts', 'hide-my-wp' ); ?>: <div class="small text-black-50"><?php echo esc_html__( 'Block IP on login page', 'hide-my-wp' ); ?></div> </div> <div class="col-md-2 p-0 input-group"> <input type="text" class="form-control" name="brute_max_attempts" value="<?php echo HMWP_Classes_Tools::getOption( 'brute_max_attempts' ) ?>"/> </div> </div> <div class="col-sm-12 row border-bottom border-light py-3 mx-0 my-3"> <div class="col-md-4 p-0 font-weight-bold"> <?php echo esc_html__( 'Ban Duration', 'hide-my-wp' ); ?>: <div class="small text-black-50"><?php echo esc_html__( 'No. of seconds', 'hide-my-wp' ); ?></div> </div> <div class="col-md-2 p-0 input-group input-group"> <input type="text" class="form-control" name="brute_max_timeout" value="<?php echo HMWP_Classes_Tools::getOption( 'brute_max_timeout' ) ?>"/> </div> </div> <div class="col-sm-12 row border-bottom border-light py-3 mx-0 my-3"> <div class="col-md-4 p-0 font-weight-bold"> <?php echo esc_html__( 'Lockout Message', 'hide-my-wp' ); ?>: <div class="small text-black-50"><?php echo esc_html__( 'Show message instead of login form', 'hide-my-wp' ); ?></div> </div> <div class="col-md-8 p-0 input-group input-group"> <textarea type="text" class="form-control" name="hmwp_brute_message" style="height: 80px"><?php echo HMWP_Classes_Tools::getOption( 'hmwp_brute_message' ) ?></textarea> </div> </div> </div> <div class="modal" id="brute_recaptcha_modal" tabindex="-1" role="dialog" aria-hidden="true"> <div class="modal-dialog modal-lg" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalLabel"><?php echo esc_html__( 'reCAPTCHA Test', 'hide-my-wp' ); ?></h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <iframe class="modal-body" style="min-height: 500px;"></iframe> </div> </div> </div> <div class="col-sm-12 text-center border-light py-2 m-0"> <a href="<?php echo HMWP_Classes_Tools::getSettingsUrl( 'hmwp_firewall#tab=whitelist', true ) ?>" target="_blank"> <?php echo esc_html__( 'Manage whitelist & blacklist IP addresses', 'hide-my-wp' ); ?> </a> </div> <div class="col-sm-12 text-center border-top pt-4 my-4"> <h5><?php echo sprintf( esc_html__( 'Use the %s shortcode to integrate it with other login forms.', 'hide-my-wp' ), '<span style="color:darkred">[hmwp_bruteforce]</span>' ); ?></h5> <a href="<?php echo esc_url( HMWP_Classes_Tools::getOption('hmwp_plugin_website') . '/kb/integrating-brute-force-protection-in-elementor-login-forms/' ) ?>" target="_blank"> <?php echo esc_html__( 'Learn how to use the shortcode', 'hide-my-wp' ); ?> </a> </div> </div> </div> </div> <?php if ( HMWP_Classes_Tools::isPluginActive( 'woocommerce/woocommerce.php' ) ) { ?> <div id="woocommerce" class="card col-sm-12 p-0 m-0 tab-panel "> <h3 class="card-title hmwp_header p-2 m-0"><?php echo esc_html__( 'WooCommerce', 'hide-my-wp' ); ?> <a href="<?php echo esc_url( HMWP_Classes_Tools::getOption('hmwp_plugin_website') . '/kb/brute-force-attack-protection/#ghost-woocommerce-protection' ) ?>" target="_blank" class="d-inline-block float-right mr-2"><i class="dashicons dashicons-editor-help"></i></a> </h3> <div class="card-body"> <div class="col-sm-12 row mb-1 ml-1 p-2"> <div class="checker col-sm-12 row my-2 py-1"> <div class="col-sm-12 p-0 switch switch-sm"> <input type="checkbox" id="hmwp_bruteforce_woocommerce" name="hmwp_bruteforce_woocommerce" class="switch" <?php echo( HMWP_Classes_Tools::getOption( 'hmwp_bruteforce_woocommerce' ) ? 'checked="checked"' : '' ) ?> value="1"/> <label for="hmwp_bruteforce_woocommerce"><?php echo esc_html__( 'WooCommerce Support', 'hide-my-wp' ); ?></label> <div class="text-black-50 ml-5"><?php echo esc_html__( 'Activate the Brute Force protection on WooCommerce login forms.', 'hide-my-wp' ); ?></div> </div> </div> </div> <?php if ( 'yes' === get_option( 'woocommerce_enable_myaccount_registration' ) ) { ?> <div class="col-sm-12 row mb-1 py-1 mx-2 hmwp_bruteforce_woocommerce"> <div class="checker col-sm-12 row my-2 py-0"> <div class="col-sm-12 p-0 switch switch-xxs pl-5"> <input type="checkbox" id="hmwp_bruteforce_register" name="hmwp_bruteforce_register" class="switch" <?php echo( HMWP_Classes_Tools::getOption( 'hmwp_bruteforce_register' ) ? 'checked="checked"' : '' ) ?> value="1"/> <label for="hmwp_bruteforce_register"><?php echo esc_html__( 'Sign Up Form Protection', 'hide-my-wp' ); ?></label> <div class="text-black-50 ml-5"><?php echo esc_html__( 'Activate the Brute Force protection on WooCommerce sign up forms.', 'hide-my-wp' ); ?></div> </div> </div> </div> <?php } ?> </div> </div> <?php } ?> <?php do_action( 'hmwp_brute_force_form_end' ) ?> <div class="col-sm-12 m-0 p-2 bg-light text-center" style="position: fixed; bottom: 0; right: 0; z-index: 100; box-shadow: 0 0 8px -3px #444;"> <button type="submit" class="btn rounded-0 btn-success px-5 mr-5 save"><?php echo esc_html__( 'Save', 'hide-my-wp' ); ?></button> </div> </form> </div> <div class="hmwp_col hmwp_col_side p-0 pr-2 mr-2"> <?php if ( HMWP_Classes_Tools::getOption( 'hmwp_bruteforce' ) ) { $view->show('blocks/GoogleEnterprise'); } ?> <div class="card col-sm-12 m-0 p-0 rounded-0"> <div class="card-body f-gray-dark text-left"> <h3 class="card-title"><?php echo esc_html__( 'Brute Force Login Protection', 'hide-my-wp' ); ?></h3> <div class="text-info"><?php echo sprintf( esc_html__( "Protects your website against Brute Force login attacks using %s A common threat web developers face is a password-guessing attack known as a Brute Force attack. A Brute Force attack is an attempt to discover a password by systematically trying every possible combination of letters, numbers, and symbols until you discover the one correct combination that works.", 'hide-my-wp' ), HMWP_Classes_Tools::getOption( 'hmwp_plugin_name' ) . '<br><br>' ); ?> </div> </div> </div> <div class="card col-sm-12 p-0"> <div class="card-body f-gray-dark text-left border-bottom"> <h3 class="card-title"><?php echo esc_html__( 'Features', 'hide-my-wp' ); ?></h3> <ul class="text-info" style="margin-left: 16px; list-style: circle;"> <li><?php echo esc_html__( "Limit the number of allowed login attempts using normal login form.", 'hide-my-wp' ); ?></li> <li><?php echo esc_html__( "Math & Google reCaptcha verification while logging in.", 'hide-my-wp' ); ?></li> <li><?php echo esc_html__( "Manually block/unblock IP addresses.", 'hide-my-wp' ); ?></li> <li><?php echo esc_html__( "Manually whitelist trusted IP addresses.", 'hide-my-wp' ); ?></li> <li><?php echo esc_html__( "Option to inform user about remaining attempts on login page.", 'hide-my-wp' ); ?></li> <li><?php echo esc_html__( "Custom message to show to blocked users.", 'hide-my-wp' ); ?></li> </ul> </div> </div> </div> </div> </div>