Zum Inhalt springen
🔒 So deaktivierst du die REST API in WordPress: 4 Wege 2026

🔒 So deaktivierst du die REST API in WordPress: 4 Wege 2026

Was ist die REST-API und warum sollte man sie deaktivieren

Die REST-API in WordPress ist eine eingebaute Schnittstelle, über die externe Anwendungen Website-Daten lesen und verändern. Anfragen gehen an /wp-json/, die Antwort kommt als JSON zurück. Sie erschien in WordPress 4.7 und ist seither auf jeder Website standardmäßig aktiviert.

Das ist praktisch für Entwickler: mobile Apps, Headless-Architektur, Integrationen mit Drittanbieter-Diensten. Wenn Sie jedoch nichts davon nutzen, bleibt eine offene REST-API ein Loch. Null Nutzen, reale Risiken.

Konkrete Bedrohungen:

  • Benutzer-Enumeration. Über /wp-json/wp/v2/users kann jeder eine Liste von Benutzernamen abrufen. Nächster Schritt: Passwort-Brute-Force.
  • Content Scraping. Beiträge via /wp-json/wp/v2/posts werden automatisch abgegriffen und auf anderen Seiten wieder veröffentlicht.
  • Unnötige Last. Jede REST-Anfrage durchläuft den vollständigen WordPress-Zyklus. Tausend Bots pro Minute, und die Seite geht in die Knie.

Nachfolgend vier Wege, die REST-API abzuriegeln: von einem Ein-Klick-Plugin bis zur serverseitigen Sperre. Wählen Sie den, der zu Ihrer Situation passt.

💡 Kurzübersicht:

  • Installieren Sie das Plugin Disable WP REST API: 30.000+ aktive Installationen, keine Einstellungen, funktioniert sofort nach der Aktivierung.
  • Konfigurieren Sie die Einschränkung in Solid Security: wenn bereits ein Sicherheits-Plugin auf der Website läuft, findet sich der REST-API-Schalter im Bereich Erweitert.
  • Fügen Sie Code in functions.php ein: für diejenigen, die kein separates Plugin für einen einzelnen Filter möchten, ein Snippet mit rest_authentication_errors.
  • Fügen Sie eine Regel in.htaccess ein: eine Sperre auf Apache-Server-Ebene, eine harte Methode ohne Ausnahmen.

Methode 1: Disable WP REST API Plugin, ein Klick

Die einfachste und sicherste Methode. Das Disable WP REST API Plugin auf WordPress.org macht genau eines: Es verschließt die REST-API für alle, die nicht im Admin-Bereich eingeloggt sind. Authentifizierte Benutzer arbeiten wie gewohnt, der Block-Editor, andere Plugins, alles funktioniert.

Installation: Plugins → Installieren, nach "Disable WP REST API" suchen, installieren und aktivieren. Das Plugin wiegt 4 KB und arbeitet sofort. Es gibt keine Einstellungen.

Überprüfung: Melden Sie sich aus dem Admin-Bereich ab und öffnen Sie https://вашсайт.ru/wp-json/ in Ihrem Browser. Sie sehen die Meldung: {"code":"rest_login_required","message":"REST API restricted to authenticated users.","data":{"status":401}}. Das bedeutet, die REST-API ist für externe Anfragen gesperrt.

Der Plugin-Autor Jeff Starr hat 15 Jahre WordPress-Erfahrung und ist Autor mehrerer Bücher zum Thema. Der Code ist offen, das Plugin wird regelmäßig aktualisiert: Stand Juli 2026, Version 2.6.8, getestet bis WordPress 7.0.2.

Vorteile:

  • Installation dauert eine Minute, keine Einstellungen
  • 4 KB Code, beeinträchtigt die Website-Geschwindigkeit nicht
  • Berührt weder Admin-Bereich noch Block-Editor
  • 30.000+ aktive Installationen, 4,8 Bewertung auf WordPress.org

Nachteile:

  • Sperrt nur nicht authentifizierte Benutzer, ein eingeloggter Benutzer sieht die vollständige REST-API
  • Keine granularen Einstellungen in der kostenlosen Version (die Pro-Version REST Pro Tools ergänzt Filterung nach Rolle und IP)

Preis: Kostenlos. Pro-Version REST Pro Tools auf der Entwicklerseite.

Download: 🔗 Disable WP REST API auf WordPress.org

Methode 2: Einschränkung über Solid Security

Wenn Sie bereits Solid Security (ehemals iThemes Security) installiert haben, benötigen Sie kein separates Plugin für die REST-API. Die Sicherheitseinstellungen enthalten einen fertigen Schalter.

Pfad: Sicherheit → Einstellungen → Erweitert → WordPress REST-API. Wählen Sie im Dropdown "Eingeschränkter Zugriff", dann steht die REST-API nur authentifizierten Benutzern zur Verfügung.

Prüfen Sie auch die XML-RPC-Einstellung im selben Abschnitt. Wenn Sie die WordPress-Mobile-App nicht nutzen und Jetpack nicht anbinden, deaktivieren Sie diese ebenfalls. Zwei Schnittstellen, die selten gebraucht, aber oft angegriffen werden.

Vorteile:

  • Kein separates Plugin nötig, die Funktion ist bereits in Solid Security eingebaut
  • Oberfläche mit Erklärungen, kein Code nötig
  • XML-RPC wird gleich mit konfiguriert

Nachteile:

  • Funktioniert nur, wenn Sie Solid Security bereits nutzen (es nur dafür zu installieren, ist übertrieben)
  • Die kostenlose Version sperrt die REST-API vollständig für nicht authentifizierte Benutzer, ohne Ausnahmen für einzelne Endpunkte

Download: 🔗 Solid Security auf WordPress.org

Methode 3: Code in functions.php, ohne Plugins

Wenn Sie kein Plugin für einen einzelnen Filter installieren möchten, hier ein Snippet, das dasselbe bewirkt. Fügen Sie es in die functions.php Ihres Child-Themes ein oder über das Code Snippets Plugin.

Erstellen Sie ein Backup Ihrer Website vor der Bearbeitung. Ein Fehler in functions.php verursacht den White Screen of Death, und ohne Admin-Zugriff müssen Sie ihn per FTP beheben.

1/**
2 * Close REST API for unauthorized users.
3 * Authorized users work with API as usual.
4 */
5add_filter('rest_authentication_errors', function($access) {
6 if (! is_user_logged_in()) {
7 return new WP_Error(
8 'rest_forbidden',
9 __('REST API restricted to authenticated users.', 'textdomain'),
10 array('status' => 403)
11 );
12 }
13 return $access;
14});

Was hier passiert. Der Filter rest_authentication_errors wird bei jeder REST-Anfrage ausgelöst. is_user_logged_in() prüft, ob der Besucher eingeloggt ist. Falls nicht, wird ein WP_Error mit Code 403 zurückgegeben, und WordPress blockiert die weitere Verarbeitung der Anfrage. Ist er eingeloggt, funktioniert die API ohne Einschränkungen.

Nach dem Einfügen des Codes prüfen Sie das Ergebnis: Öffnen Sie /wp-json/ im Inkognito-Modus. Es sollte ein 403-Fehler zurückgegeben werden.

Wichtig. Der alte Filter rest_enabled wurde aus dem WordPress-Core entfernt. Snippets mit add_filter('rest_enabled', '_return_false'), die in alten Tutorials auftauchen, funktionieren ab WordPress 5.0 nicht mehr. Verwenden Sie ausschließlich rest_authentication_errors.

Methode 4: Sperre via.htaccess, auf Server-Ebene

Eine radikale Methode. Eine Regel in .htaccess blockiert Anfragen an /wp-json/, bevor WordPress überhaupt startet. Der Apache-Server gibt einen 403 zurück, ohne dass PHP jemals erreicht wird.

Geeignet, wenn:

  • Die REST-API definitiv in keiner Form benötigt wird, weder von Ihnen noch von Plugins;
  • der Server unter Apache läuft (für Nginx wird die Regel über einen location-Block geschrieben);
  • Sie mit der Bearbeitung der Server-Konfiguration vertraut sind.

Fügen Sie in die .htaccess-Datei im Wurzelverzeichnis der Website ein:

1<IfModule mod_rewrite.c>
2RewriteEngine On
3RewriteCond %{REQUEST_URI} ^/wp-json/ [NC]
4RewriteRule .* - [F]
5</IfModule>

Die Regel greift bei jeder URL, die mit /wp-json/ beginnt. Der [F]-Flag bedeutet 403 Forbidden, der [NC]-Flag macht den Vergleich case-insensitive.

Erstellen Sie unbedingt eine Kopie der .htaccess vor der Bearbeitung. Ein Syntaxfehler legt die gesamte Website mit einem 500-Fehler lahm.

Der Hauptnachteil dieses Ansatzes: Alle REST-Anfragen werden ausnahmslos blockiert. Wenn nach der Änderung ein Kontaktformular nicht mehr funktioniert (Contact Form 7 nutzt die REST-API), kehren Sie zu Methode 1 oder 3 zurück.

Sehen Sie sich einen 6-minütigen Überblick über REST-API-Risiken von David McAllen an: Er zeigt reale Anfragen an /wp-json/ und demonstriert beide Plugins in Aktion.

⁉️🤔 FAQ

Muss ich die REST-API auf jeder Website deaktivieren?

Nein. Wenn Sie die WordPress-Mobile-App, den Block-Editor (Gutenberg) oder Plugins wie Contact Form 7 und WooCommerce nutzen, benötigen diese die REST-API. In diesem Fall ist es besser, sie nicht vollständig zu deaktivieren, sondern eine rollenbasierte Einschränkung zu konfigurieren.

Sie sollten die REST-API auf Websites deaktivieren, auf denen sie nicht bewusst genutzt wird: Blogs mit dem Classic Editor, Landingpages, Brochure-Sites. Auf solchen Projekten bietet ein offenes /wp-json/ nichts als Risiken. Zwei Minuten für die Installation des Disable WP REST API Plugins, und der Angriffsvektor ist geschlossen.

Wie überprüfe ich, ob die REST-API tatsächlich deaktiviert ist?

Öffnen Sie https://вашсайт.ru/wp-json/ in Ihrem Browser im Inkognito-Modus (Sie müssen abgemeldet sein). Wenn Sie einen 401- oder 403-Fehler sehen, ist die REST-API gesperrt. Wird JSON-Daten angezeigt, funktioniert der Schutz nicht, überprüfen Sie Ihre Einstellungen.

Auch die Kommandozeile funktioniert: curl -I https://вашсайт.ru/wp-json/wp/v2/users. Ein 200-Antwortcode bedeutet, dass die Benutzerliste öffentlich ausgeliefert wird, ein rotes Warnsignal, der Schutz muss nachjustiert werden.

Zerstört die Deaktivierung der REST-API den Block-Editor?

Nein, wenn Sie die Methoden 1-3 verwenden. Das Disable WP REST API Plugin, Solid Security und das rest_authentication_errors-Snippet lassen authentifizierte Benutzer alle durch. Der Block-Editor funktioniert, da Sie im Admin-Bereich eingeloggt sind.

Methode 4 (.htaccess) ist die Ausnahme. Die serverseitige Sperre schneidet jeden unterschiedslos ab, und der Block-Editor wird nicht mehr funktionieren. Wenn der Admin-Bereich nach der Bearbeitung von .htaccess kaputtgeht, kehren Sie zu Methode 1 oder 3 zurück.

Was ist sicherer: ein Plugin oder Code in functions.php?

Aus Schutzsicht sind beide Optionen gleichwertig, sie nutzen denselben WordPress-Mechanismus. Der Unterschied liegt in Komfort und Wartung.

Das Disable WP REST API Plugin aktualisiert sich automatisch, hängt nicht vom Theme ab und verschwindet nicht, wenn Sie die Vorlage wechseln. Code in functions.php ist für diejenigen, die grundsätzlich gegen die Installation von Plugins für eine einzelne Funktion sind. Wählen Sie nach Ihrem Administrationsansatz, die Sicherheit wird dadurch nicht beeinflusst.

Kann ich nur den /users-Endpunkt schließen und den Rest offen lassen?

Das können Sie, aber das ist eine Feineinstellungs-Aufgabe. Die kostenlosen Werkzeuge in diesem Artikel blockieren die REST-API vollständig für nicht authentifizierte Benutzer.

Wenn Sie einige Endpunkte offen halten und andere schließen müssen, nutzen Sie REST Pro Tools (die Pro-Version des Disable WP REST API Plugins) oder den rest_endpoints-Filter in functions.php. Sie müssen die erlaubten Routen explizit auflisten, eine halbstündige Aufgabe, wenn Sie die Struktur der WordPress-REST-API kennen.

Sie haben die REST-API abgeriegelt, was nun?

Die REST-API ist nur ein Angriffsvektor. Indem Sie sie geschlossen haben, haben Sie den einfachsten Einstiegspunkt für Bots entfernt, aber das ist kein Ersatz für einen vollwertigen Schutz.

Kurz gesagt: Methode 1 (das Disable WP REST API Plugin) löst das Problem in zwei Minuten. Installieren Sie es, prüfen Sie /wp-json/ im Inkognito-Modus, stellen Sie sicher, dass Ihr Kontaktformular funktioniert, erledigt. Die Risiken sind reduziert.

Die nächste Ebene ist eine Firewall und Brute-Force-Schutz. Beginnen Sie mit dem kostenlosen Solid Security: Es schließt REST-API, XML-RPC und Passwort-Brute-Force in einer einzigen Oberfläche. Welches Sicherheits-Plugin Sie nutzen, lassen Sie uns in den Kommentaren wissen.