2016-12-16 2 views
9

Ich erwäge, die Sicherheit meiner Wordpress-Website zu verbessern, und dabei auf WP REST API standardmäßig aktiviert (seit WP 4.4, wenn ich mich nicht irre).Sicher WP REST API deaktivieren

Was ist eine sichere Möglichkeit, es zu deaktivieren?

Mit "sicher" meine ich, dass es keine unerwarteten Nebenwirkungen, z.B. bricht keine anderen WP-Kernfunktionen.

Ein möglicher Ansatz wäre, .htaccess Rewrite-Regeln zu verwenden, aber überraschenderweise habe ich keine 'offiziellen' Anweisungen dazu gefunden.

Jede Hilfe oder Empfehlung wird sehr geschätzt :)

Update: 3rd-Party-Plugins ist nicht die Lösung für die Suche. Obwohl mir bewusst ist, dass es viele davon gibt, die die Aufgabe lösen, enthalten sie viele zusätzliche Funktionen, die die Website verlangsamen. Ich hoffe, es gibt eine Ein-Zeilen-Lösung für dieses Problem ohne den Aufwand eines zusätzlichen Plugins.

Update 2: Hier ist die offizielle Meinung von Wordpress: https://developer.wordpress.org/rest-api/using-the-rest-api/frequently-asked-questions/#can-i-disable-the-rest-api

diese nach will das Wordpress-Team Zukunft WP-Funktionalität auf das neue REST-API ab. Dies bedeutet, dass es keine garantiert sichere Möglichkeit gibt, die REST API zu deaktivieren.

Lassen Sie uns nur hoffen, dass es genügend Sicherheitsexperten gibt, die sich um WP-Sicherheit kümmern.

Antwort

8

Das Deaktivieren der REST API war schließlich keine schlechte Idee. Es öffnete tatsächlich eine huge hole in all websites!

In Wordpress 4,4 there was a way

I've found a possible solution with .htaccess Hier aber sorgfältig in Kombination getestet werden soll, mit dem, was sonst in Ihrer .htaccess Datei (zB pretty-URL-Regeln hinzugefügt von Wordpress selbst):

# WP REST API BLOCK JSON REQUESTS 
# Block/Forbid Requests to: /wp-json/wp/ 
# WP REST API REQUEST METHODS: GET, POST, PUT, PATCH, DELETE 
RewriteCond %{REQUEST_METHOD} ^(GET|POST|PUT|PATCH|DELETE) [NC] 
RewriteCond %{REQUEST_URI} ^.*wp-json/wp/ [NC] 
RewriteRule ^(.*)$ - [F] 

Eine sehr drastische Methode ist auch, eine 404.html Webseite in Ihrem root zu haben und dann diese Zeile hinzuzufügen:

# WP REST API BLOCK JSON REQUESTS 
# Redirect to a 404.html (you may want to add a 404 header!) 
RewriteRule ^wp-json.*$ 404.html 

Beachten Sie, dass, wenn Sie eine statische Seite verwenden, das heißt, nicht mit Wordpress Funktionen beteiligt, wenn Sie einen 404 Fehler mit einer entsprechenden Fehlerseite zurückkehren wollen, ist dies ein komplettes separates Thema, mit a lot of issues when Wordpress is involved

+0

Danke für die Antwort! Wäre wirklich nett wenn du es testen könntest, bevor ich deine Antwort akzeptiere. Eine Frage aber: Warum sollten Sie Bots tricksen? Und welche Bots, denkst du, kriechen '/ wp-json'? –

+0

Ich meine, ich habe die zweite Option getestet und es funktioniert auf meinem Setup. Das erste nicht, aber ich denke, es gibt ein Problem mit anderen '.htaccess'-Regeln, die ich habe – Kuzeko

+0

Die bösartigen Bots, diejenigen, die automatisch auf * Fehler * und * Löcher * in Ihrer WP-Installation testen können. – Kuzeko