WordPress ist nicht unsicher. Seiten, die damit laufen, werden aus vier Gründen kompromittiert, in dieser Häufigkeitsreihenfolge, und keiner davon ist ein Fehler in WordPress selbst.

1. Ein Plugin, das nicht aktualisiert wurde

Mit Abstand die größte Ursache. Eine Schwachstelle wird veröffentlicht, ein Scanner findet binnen Tagen jede Seite, die noch die alte Version fährt, und der Rest läuft automatisch.

  • Schalten Sie automatische Updates für Plugins ein, denen Sie vertrauen.
  • LÖSCHEN Sie, was Sie nicht nutzen. Ein inaktives Plugin ist immer noch eine Datei, die sich direkt aufrufen lässt.
  • Prüfen Sie, ob ein Plugin aufgegeben wurde - "zuletzt aktualisiert vor 3 Jahren" ist die Entscheidung, es nicht mehr zu benutzen.

2. Ein anderswo benutztes Passwort

Bei einer fremden Seite geleakt und hier ausprobiert. Zwei-Faktor macht das Leck bedeutungslos, und deshalb ist er mehr wert als jedes Plugin.

3. Uploads, die ausgeführt werden

Wenn eine Datei in wp-content/uploads als PHP laufen kann, ist ein Upload-Formular ein Weg hinein. Schließen Sie das am Server, nicht mit einem Plugin.
location ~* /wp-content/uploads/.*\.(php|phtml|phar)$ {
    deny all;
}

4. Dateien im Dashboard bearbeiten

Der eingebaute Editor verwandelt eine gestohlene Admin-Sitzung in beliebigen Code auf Ihrem Server. Fast niemand benutzt ihn absichtlich.

define('DISALLOW_FILE_EDIT', true);

Drei weitere, die nichts kosten

  • Verschieben Sie wp-config.php über das Web-Root, oder sperren Sie sie ausdrücklich. Darin steht das Datenbankpasswort.
  • Schalten Sie XML-RPC ab, sofern es niemand braucht - es ist ein beliebtes Ziel für Brute-Force.
  • Verbergen Sie die Version. Sicherheit ist das nicht, aber es nimmt Sie aus Suchen nach "Seiten mit Version X" heraus.
Ändern Sie nach jedem Vorfall die Salts in wp-config.php. Das macht jede Sitzung ungültig, auch die des Angreifers, und es ist der Schritt, den die meisten Aufräumarbeiten auslassen.