Frequently Asked Question

Rest-API

Last Updated a year ago

Bereits mit der Version 4.7.1 hat WordPress die Rest API eingeführt was diverse Vorteile in der Kommunikation zwischen unterschiedlichen Geräten ermöglicht (Desktop <--> Smartphone) und somit für APPs erforderlich ist und für Funktionen wie Kommentare ohne sich einzuloggen und vieles mehr. Allerdings erhöht sich mit der Rest API auch das Risiko einen Angriff.

Ist die REST API nicht gesperrt, können zum Beispiel über einen Browseraufruf alle Benutzer ausgelesen werden, die einen Beitrag erstellt haben:
http(s)://www.meine-seite.de/?rest_route=/wp/v2/users
Beschränkt man die REST API nur auf angemeldete Benutzer erhöht dies die Sicherheit und dieser Aufruf gibt nur noch folgende Meldung aus:

image

Sofern Rest API nicht verwendet wird, sollte die Funktion deaktiviert werden!

Test der API-Funktion: http(s)://www.meine-seite.de/wp-json/

Um die REST-API zu Sperren ist einer der folgenden beiden Methoden über die functions.php des Themes möglich:

Global sperren und nur für Admins im Backend erlauben:

add_filter( 'rest_authentication_errors', function( $result ) {
    if ( ! empty( $result ) ) {
        return $result;
    }
    if ( ! is_user_logged_in() ) {
        return new WP_Error( 
            'rest_not_logged_in',
            'You are not currently logged in.',
            array( 'status' => 401 )
        );
    }
    return $result;
});

Global sperren für alle:

add_filter( 'rest_authentication_errors', function( $result ) {
    return new WP_Error( 
        'rest_not_enabled',
        'REST-API disabled.',
         array( 'status' => 404 )
    );
});

Please Wait!

Please wait... it will take a second!