Echte Meneer®

Twitter Facebook Linkedin Hart icon

Copyright © 2020 - Echte Meneer

Beveiliging, Optimalisatie, Privacy

WordPress security tips [1] – Hoe komt een hacker aan je Username?

featured post image

Inloggen op een WordPress installatie doe je d.m.v. het intypen van je Username (gebruikersnaam) en wachtwoord. Het is bij WordPress installaties vrij eenvoudig voor anderen om aan jouw Username te komen. Neem je geen voorzorgs maatregelen om je Username af te schermen dan is de hacker al voor 50% binnen. Hoe je dit kunt afschermen zal ik hieronder uitleggen.

Usernames en de WP’s Rest API

Om het probleem met de usernames te begrijpen zou je eerst een klein beetje moeten weten wat de WP’s REST API is. Dus: Wat is de WordPress REST API? De WordPress REST API is een interface die ontwikkelaars kunnen gebruiken om toegang te krijgen tot WordPress vanaf buiten de normale WordPress-installatie. Je kunt toegang krijgen via JavaScript, waardoor de ‘Good Guys’ de API dus kunnen gebruiken om interactieve websites en apps te maken.

Om een volledig overzicht te krijgen welke data er beschikbaar is via de REST API moet je /wp-json achter een home URL plakken.

Helaas is ook al die informatie beschikbaar voor de ‘bad guys’ via de REST API. En de informatie over usernames is eenvoudig te bereiken als je achter de homeURL /wp-json/wp/v2/users intikt. Probeer het maar achter een willekeurige WordPress website of shop.

Verwijder de Usernames van de wp-json gegevens

Om de username gegevens te verwijderen uit de WP-JSON moet je de ‘endpoints’ verwijderen. Dit doe je door onderstaande PHP code te plaatsen in je functions.php bestand. Dus kopiëren en onderaan in je functions.php plakken en klaar is kees.

// Disable /users rest routes
add_filter('rest_endpoints', function( $endpoints ) {
    if ( isset( $endpoints['/wp/v2/users'] ) ) {
        unset( $endpoints['/wp/v2/users'] );
    }
    if ( isset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] ) ) {
        unset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] );
    }
    return $endpoints;
});