Wat is een REST API?
Wat kun je met REST API?
Met REST API kun je gegevens van je website opvragen en aanpassen. Sommige WordPress plug-ins maken hier gebruik van. Mocht je een programmeur zijn dan kun je met REST API ook mooie koppelingen bouwen.
Waarom restricties maken voor REST API?
Zodra je WordPress hebt geïnstalleerd wordt automatisch de REST API beschikbaar gesteld voor de hele wereld.
Als je zelf wil kijken of REST API op jouw website open staat voor de buitenwereld dan kun je dat controleren met de onderstaande voorbeeld URL (verander mijnblog.nl in de domeinnaam van je eigen website)
Let op: zorg ervoor dat je niet bent ingelogd, anders heb je geen goede vergelijking:
https://www.mijnblog.nl/wp-json/
Zolang je geen restricties voor REST API maakt, bestaat de mogelijkheid dat hackers daarvan misbruik maken.
Restricties voor REST API maken met een plug-in
Restricties voor REST API maken zonder plug-in
Door de onderstaande code toe te voegen aan functions.php binnen je thema of door de code op..
Met de onderstaande code zorg je ervoor dat er alleen ingelogde gebruikers die de rol Editor of Administrator hebben gebruik mogen maken van REST API. De overige gebruikers krijgen een error te zien.
add_filter( 'rest_authentication_errors', function( $result ) {
// If a previous authentication check was applied,
// pass that result along without modification.
if ( true === $result || is_wp_error( $result ) ) {
return $result;
}
// No authentication has been performed yet.
// Return an error if user is not logged in and has not an Editor or Administrator role.
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 )
);
}
// Our custom authentication check should have no effect
// on logged-in requests
return $result;
});