Restricties instellen voor de WordPress REST API

Wat is de WordPress REST API?

De WordPress REST API is een programmeerinterface (API) waarmee externe applicaties gegevens van een WordPress-website kunnen opvragen, aanpassen en beheren. REST staat voor Representational State Transfer, een veelgebruikte architectuurstandaard voor het uitwisselen van gegevens tussen systemen.

Sinds WordPress 4.7 is de REST API standaard ingeschakeld en beschikbaar op iedere WordPress-installatie.

Wat kun je doen met de REST API?

Met de WordPress REST API kun je verschillende gegevens van je website benaderen, zoals:

  • Berichten en pagina’s ophalen
  • Gebruikersinformatie uitlezen
  • Content toevoegen of aanpassen
  • Koppelingen maken met externe systemen
  • Integraties bouwen met apps en andere websites

Veel WordPress-plug-ins en externe diensten maken gebruik van de REST API om gegevens uit te wisselen.

Waarom de WordPress REST API beperken?

Na een standaard installatie van WordPress is de REST API publiek toegankelijk. Dit betekent dat bepaalde informatie over je website door iedereen kan worden opgevraagd.

Je kunt controleren of de REST API op jouw website toegankelijk is door onderstaande URL te bezoeken (vervang mijnwebsite.nl door je eigen domeinnaam):

https://www.mijnwebsite.nl/wp-json/

Let op: controleer dit terwijl je niet bent ingelogd, zodat je de situatie ziet zoals een bezoeker die ervaart.

Hoewel de REST API een krachtige functie is, kan een onbeperkte toegang extra risico’s met zich meebrengen. Cybercriminelen kunnen de API bijvoorbeeld gebruiken om informatie over gebruikers of de website te verzamelen. Daarom kiezen veel websitebeheerders ervoor om de toegang te beperken tot specifieke gebruikersrollen.

REST API beperken met een plug-in

De eenvoudigste manier om de WordPress REST API te beveiligen is door een beveiligingsplug-in te gebruiken die toegang tot de API kan beperken. Dit is vooral geschikt voor gebruikers zonder technische kennis.

REST API beperken zonder plug-in

Wil je geen extra plug-ins installeren? Dan kun je de toegang tot de REST API ook beperken met een stukje code.

Voeg onderstaande code toe aan het bestand functions.php van je thema of gebruik een code snippets-plug-in. Met deze oplossing krijgen alleen gebruikers met de rol Editor of Administrator toegang tot de REST API. Andere gebruikers ontvangen een foutmelding.

add_filter( 'rest_authentication_errors', function( $result ) {
    // Respecteer bestaande authenticatiecontroles.
    if ( true === $result || is_wp_error( $result ) ) {
        return $result;
    }

    // Sta alleen Editors en Administrators toe.
    if ( ! current_user_can( 'edit_others_pages' ) ) {
        return new WP_Error(
            'rest_not_logged_in_or_not_the_necessary_rights',
            __( 'You are currently not logged in or do not have the necessary rights.' ),
            array( 'status' => 401 )
        );
    }

    return $result;
});

Conclusie

Het beperken van de WordPress REST API kan een belangrijke stap zijn om de beveiliging van je website te verbeteren. Als je geen gebruikmaakt van externe koppelingen of applicaties die afhankelijk zijn van de REST API, is het verstandig om de toegang te beperken tot beheerders en redacteuren. Zo verklein je het risico op misbruik en houd je meer controle over de gegevens van je website.

Add a Comment

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *