WordPress inlogpogingen beperken zonder plugin

WordPress inlogpogingen beperken zonder plugin is een makkelijke manier om je website te beveiligen tegen hackers. Je kan hier ook een plugin voor gebruiken maar om te voorkomen dat we te veel plugins installeren is het beter het op deze manier te doen.

WordPress beveiliging

Doordat WordPress een populair cms is voor gebruikers is het ook erg populair bij hackers en spammers. Je bouwt natuurlijk je website voor je bezoekers maar niet voor hackers bijvoorbeeld. Deze moet je proberen zo veel mogelijk buiten je website te houden. De schade die ze kunnen aanrichten is ongekend. Dit kan zelfs je SEO schaden en nog veel meer.

Er zijn vele manier om je WordPress website te beveiligen. Hier bespreken we er maar eentje van maar ben je geïnteresseerd in nog meer beveiligingen voor je WordPress website bekijken dan eens WordPress beveiliging. Hier worden verschillende beveiligingen behandeld en uitgelegd.

WordPress inlogpogingen beperken zonder plugin Freelance website ontwikkeling

WordPress is een populair cms voor gebruikers maar ook erg populair bij hackers en spammers.

WordPress inlogpogingen beperken zonder plugin

Onderstaande code kan je plaatsen in de functions.php van je theme. Vergeet niet dat het beste is om dit in je child-theme te plaatsen.


// Limit login attemps for WordPress
function check_attempted_login($user, $username, $password) {
    if(get_transient('attempted_login')) {
        $datas = get_transient('attempted_login');
 
        if($datas['tried'] >= 3) {
            $until = get_option('_transient_timeout_' . 'attempted_login');
            $time = time_to_go($until);
 
            return new WP_Error('too_many_tried',  sprintf(__('ERROR: You have reached authentication limit, you will be able to try again in %1$s.') , $time));
        }
    }
 
    return $user;
}
add_filter('authenticate', 'check_attempted_login', 30, 3);
function login_failed($username) {
    if(get_transient( 'attempted_login')) {
        $datas = get_transient('attempted_login');
        $datas['tried']++;
 
        if($datas['tried'] <= 3)
            set_transient( 'attempted_login', $datas , 300);
    } else {
        $datas = array(
            'tried' => 1
        );
        set_transient('attempted_login', $datas , 300);
    }
}
add_action('wp_login_failed', 'login_failed', 10, 1);
 
function time_to_go($timestamp) {

    // converting the mysql timestamp to php time
    $periods = array(
        "second",
        "minute",
        "hour",
        "day",
        "week",
        "month",
        "year"
    );
    $lengths = array(
        "60",
        "60",
        "24",
        "7",
        "4.35",
        "12"
    );
    $current_timestamp = time();
    $difference = abs($current_timestamp - $timestamp);
    for($i = 0; $difference >= $lengths[$i] && $i < count($lengths) - 1; $i ++) {
        $difference /= $lengths[$i];
    }
    $difference = round($difference);
    if (isset($difference)) {
        if ($difference != 1)
            $periods[$i] .= "s";
            $output = "$difference $periods[$i]";
            return $output;
    }
}

Op regel 10 kan je de tekst van de error aanpassen.
Als men 3 keer de verkeerde gebruikersnaam met wachtwoord invult kan men voor 5 uur niet meer inloggen.

Als je deze code gebruikt ben je weer een stukje dichterbij de volledige beveiliging van je website. Als dit soort code je bevalt kan je ook eens kijken naar WordPress beveiligen met .htaccess

Vraag vrijblijvende een offerte aan.

Offert Aanvragen

WordPress inlogpogingen beperken met of zonder plugin

Dit is een simpel stukje code dat je zo in je functions.php kan plaatsen dus eigenlijk is een plugin niet nodig. Plugins zijn namelijk minder veilig. Iedereen kan de plugin downloaden en op zoek gaan naar lekken in de beveiliging. Dit is een belangrijke reden om zo min mogelijk plugins te gebruiken.

Wil je toch een plugin gebruiken neem dan eens een kijkje bij de volgende plugins.

Er zijn nog geen reacties. Wees de eerste..!!

Reageer

E-mailadres wordt niet gepubliceerd.
Verplichte velden zijn gemarkeerd met *

*
*
*