So deaktivieren Sie die JSON-REST-API in WordPress 1

So deaktivieren Sie die JSON-REST-API in WordPress

Dank seiner Flexibilität und Benutzerfreundlichkeit hat sich das Content-Management-System (CMS) WordPress zur meistgenutzten Plattform für die Website-Erstellung entwickelt. Die Funktionen werden ständig verbessert und immer mehr Benutzer erhalten unabhängig von ihrer Programmiererfahrung die Möglichkeit, eine Website zu erstellen. Aufgrund der ständigen Verbesserung sind einige der WordPress-Funktionen jedoch der allgemeinen WordPress-Community weniger bekannt und werden stattdessen hauptsächlich von Entwicklern verwendet. In diesem Artikel beleuchten wir eine dieser Funktionen – die JSON REST API in WordPress. Wir werden besprechen, was es ist und ob Sie es deaktivieren sollten, sowie die Schritte, die Sie dafür unternehmen müssen.

Warum Sie die JSON-REST-API in WordPress möglicherweise deaktivieren möchten

Der WordPress JSON-REST-API ist eine entwicklerorientierte Funktion, die im WordPress 4.4-Update eingeführt wurde und immer noch Kontroversen auslöst. REST oder Representational State Transfer ist eine Art von Softwarearchitektur, die häufig zum Erstellen interaktiver Webdienste verwendet wird. Genauer gesagt verwandelt es Ihre Website in einen verfügbaren Webservice. Dies bedeutet, dass andere Anwendungen oder Webdienste einige auf Ihrer Website verfügbare Informationen extrahieren können, indem sie spezifische HTTP-GET-Anforderungen senden. Die WordPress-REST-API basiert vollständig auf strukturierten JSON-Daten, weshalb sie von manchen als JSON-REST-API bezeichnet wird. Ein Beispiel für JSON-Daten, obwohl unformatiert, wird unten gezeigt. Diese Daten werden beim Zugriff auf die sogenannte REST-API-Rootroute angezeigt, die durch das Hinzufügen von /wp-json am Ende der URL Ihrer Website erstellt wird.

WP JSON-Seite

Obwohl unformatierte JSON-Daten schwer zu lesen sind, stellen sie dennoch ein Sicherheitsrisiko dar, da einige WordPress- oder benutzerbezogene Daten durch die Navigation zu bestimmten REST-API-Routen öffentlich zugänglich sein könnten. Zum Beispiel durch den Zugriff auf die /wp-json/wp/v2/users route, können Sie auf die nutzerbezogenen Daten einer bestimmten Website zugreifen. Auch wenn Sie die Passwörter von Website-Benutzern auf diese Weise nicht abrufen können, macht die bloße Kenntnis der Benutzernamen die Website anfällig für Brute-Force-Angriffe. Aus diesem Grund entscheiden sich einige WordPress-Benutzer dafür, die WordPress-REST-API zu deaktivieren. Wir empfehlen jedoch, weitere Informationen zu sammeln, bevor Sie Ihren Anruf tätigen.

Es ist wichtig zu verstehen, dass sich mit der Aktualisierung und Verfeinerung der WordPress-Kerndateien auch die REST-API verbessert hat. Dadurch ist die Verwendung der REST API zu einem festen Bestandteil vieler Plugins und Theme-Funktionalitäten geworden. Daher sollten Sie die Autoren Ihres aktuellen Themes und Ihrer Plugins konsultieren, bevor Sie die REST-API deaktivieren. Andernfalls riskieren Sie, einige der Funktionen Ihres Themes und Ihrer Plugins unbrauchbar zu machen.

Darüber hinaus sollten Sie sich bewusst sein, dass selbst der aktuelle Standard-WordPress-Editor – Gutenberg – zum Bearbeiten von Seiten und Beiträgen auf einige REST-API-Routen angewiesen ist. Wenn Sie erwägen, die REST-API zu deaktivieren und Gutenberg Ihr bevorzugter Editor ist, können Sie keine Seiten und Beiträge veröffentlichen oder aktualisieren, wenn Sie die Deaktivierung durchführen.

Es genügt zu sagen, dass all dies ein erhebliches Problem darstellt. Eine mögliche Lösung, bei der die REST-API nicht deaktiviert werden muss, besteht darin, den Zugriff auf nicht authentifizierte Benutzer Route für Route einzuschränken. Wir werden erklären, wie das geht, und erklären, wie Sie ein Plugin verwenden, um die REST-API unten zu deaktivieren. Trotzdem ist es ein Muss, sich mit Ihren Theme- und Plugin-Autoren zu beraten, bevor Sie versuchen, Einschränkungen zu implementieren. Nur so können Sie die Sicherheit Ihrer Website insgesamt verbessern, ohne deren Funktionalität zu beeinträchtigen.

So deaktivieren Sie die JSON-REST-API in WordPress

Nachdem Sie nun verstanden haben, warum jemand die JSON-REST-API in WordPress ganz oder teilweise deaktivieren möchte, lassen Sie uns erklären, wie dies möglich ist. In den folgenden Abschnitten werden wir zwei mögliche Methoden behandeln – mit einem WordPress-Plugin oder mit benutzerdefiniertem Code.

Verwenden eines Plugins

Es gibt eine Vielzahl von WordPress-Plugins auf dem Markt, wodurch es relativ einfach ist, für fast jeden Zweck ein passendes zu finden. In diesem Fall fanden wir die REST-API deaktivieren Plugin, das wir verwenden werden, um die folgenden Schritte zu skizzieren. Dieses Plugin ist sehr flexibel – es kann dazu dienen, die REST-API vollständig zu deaktivieren oder einige Routen nur für bestimmte Benutzertypen zu deaktivieren.

Um die JSON REST API in WordPress vollständig zu deaktivieren, müssen Sie nur dieses Plugin installieren und aktivieren. Dadurch wird der Zugriff auf alle JSON-REST-API-Routen für nicht authentifizierte Benutzer standardmäßig verweigert.

Dieses Plugin bietet auch die Möglichkeit, den REST-API-Zugriff teilweise zuzulassen oder zu verbieten. Genauer gesagt können Sie festlegen, auf welche Routen nicht authentifizierte Benutzer oder Benutzer mit bestimmten Benutzerrollen zugreifen können. Um dies einzustellen, Navigieren Sie zu Einstellungen > REST-API deaktivieren. Dann wählen Sie den entsprechenden Benutzertyp mit der Regeln Pro: Möglichkeit und Legen Sie die gewünschten Regeln in der fest Regeln verwalten Sektion unter.

Einstellungen REST API deaktivieren

Zur Verdeutlichung erlauben oder verbieten diese Regeln die Verwendung bestimmter REST-API-Routen. Und diese Routen stellen Teile der URL dar, die Sie an die REST-API-Root-URL (your-website-url/wp-json/) anhängen können, um einen bestimmten Datentyp abzurufen. In einigen Fällen können Teile dieser Routen reguläre Ausdrücke enthalten. Beispiele dafür sehen Sie im Screenshot oben.

Abgesehen davon können Sie Regeln für nicht authentifizierte Benutzer sowie für Benutzer aller Benutzerrollen festlegen, die auf der Website verfügbar sind. Sobald Sie dies getan haben, haben Sie die Möglichkeit, entweder den REST-API-Zugriff für einen bestimmten Benutzertyp vollständig zuzulassen oder den Zugriff für jede verfügbare Route manuell festzulegen.

Um den REST-API-Zugriff für einen bestimmten Benutzertyp vollständig zuzulassen, wählen Sie die REST API-Zugriff verwalten Option und schalten Sie dann den Schalter neben jedem der auf Ihrer Website verfügbaren Namespaces oder Routen um. Wenn Sie die Optionen nach Ihren Bedürfnissen einstellen, vergessen Sie nicht, sie zu speichern, indem Sie auf klicken Änderungen speichern Knopf unten. Nachdem eine Route zu einem bestimmten Benutzertyp nicht zugelassen wurde, erhalten diese Benutzer beim Versuch, darauf zuzugreifen, eine Fehlermeldung. Es sieht ähnlich aus wie die unten gezeigte Nachricht.

WP JSON kann nicht zugreifen

Benutzerdefinierten Code verwenden

Die meisten WordPress-Benutzer entscheiden sich für die Plugin-Methode, da sie am einfachsten zu implementieren ist. Es gibt jedoch eine andere Möglichkeit, die REST-API zu deaktivieren, und zwar mithilfe von benutzerdefiniertem Code. Die Vorteile dieser Methode bestehen darin, dass Sie zusätzliche Plugins vermeiden können, die Ihre Website möglicherweise verlangsamen oder beschädigen könnten. Sie können die REST-API jedoch mit dieser Methode vollständig deaktivieren.

Die Schritte dafür umfassen das Platzieren eines kleinen Code-Snippets in der Datei functions.php Ihres Themes oder in einem Site-spezifischen Plugin. Wie das geht, zeigen wir Ihnen anhand der Datei functions.php. Bevor Sie jedoch fortfahren, empfehlen wir Ihnen, ein Backup Ihrer Website zu erstellen. Dies ist sowohl eine gute Praxis als auch eine gute Vorsichtsmaßnahme. Wenn Sie dies getan haben, gehen Sie wie unten beschrieben vor.

Zuerst müssen Sie verbinde dich mit deinem Server mit Ihren FTP-Zugangsdaten und Navigieren Sie zum Root-WordPress-Verzeichnis, oft als public_html bezeichnet.

Öffentliches HTML-FTP

Dann, Navigieren Sie zum Verzeichnis /wp-content/themes und Klicken Sie auf das Verzeichnis Ihres derzeit aktiven Themes, um es zu öffnen. Suchen Sie die Datei functions.php innerhalb, Klicken Sie mit der rechten Maustaste darauf, und wähle aus Anzeigen/Bearbeiten Möglichkeit aus dem Dropdown-Menü.

WP-Inhaltsansicht Bearbeiten

Öffne die Datei mit Ihrem bevorzugten Texteditor und füge den folgenden Code hinzu ganz unten.

function qode_disable_rest_api( $access ) {
return new WP_Error( 'rest_disabled', __( 'The WordPress REST API has been disabled.' ), array( 'status' => rest_authorization_required_code() ) );
}
add_filter( 'rest_authentication_errors', 'qode_disable_rest_api' );
FTP-Code

Dann, speichere die Änderungen Sie haben die Datei erstellt und lade es zurück auf den Server, um dort die ältere Version zu überschreiben.

Danach, prüfe ob alles so funktioniert wie es soll indem Sie eine der JSON-REST-API-Routen untersuchen, die auf Ihrer Website vorhanden sind. Wenn Sie die REST-API für Ihre WordPress-Website erfolgreich deaktiviert haben, erhalten Sie beim Versuch, auf diese Route zuzugreifen, eine Fehlermeldung.

WP JSON-Seite deaktiviert

Beachten Sie jedoch, dass dieser Code den Zugriff auf alle REST-API-Routen verbietet, im Gegensatz zur Plugin-Methode, die verschiedene Zulassen/Ablehnen-Optionen bietet. Daher müssen Sie entscheiden, welche dieser beiden Methoden Ihren Anforderungen besser entspricht.

Abschließende Gedanken

Die WordPress REST API ist eine sehr nützliche, entwicklerorientierte Funktion, die Benutzer aller Kenntnisstufen kennenlernen sollten. Es ermöglicht Ihnen, mithilfe geeigneter HTTP-Anforderungen schnell mit der Website zu interagieren. Es gibt jedoch eine offene Debatte über ihre Nützlichkeit im Gegensatz zu dem potenziellen Schaden, den sie einer Website verursachen kann. In diesem Artikel haben wir einige Punkte aus dieser Debatte vorgestellt und erläutert, wie Sie die WordPress-REST-API deaktivieren können. Da die von uns beschriebenen Methoden relativ einfach sind, sind wir zuversichtlich, dass Sie die JSON-REST-API für Ihre Site in wenigen Minuten deaktivieren können.

Moyens I/O-Personal. motivierte Sie und gab Ratschläge zu Technologie, persönlicher Entwicklung, Lebensstil und Strategien, die Ihnen helfen werden.