11 einfache Tipps um deine WordPress Webseite abzusichern.
Marc Wagner
Juni 11, 2021
WordPress ist eines der meist genutzten Content-Management-Systeme weltweit. Wodurch es für Bots und Hacker auch immer attraktiver wird.
Ist WordPress sicher? #
In der Regel ja. Natürlich kommt es auf viele verschiedene Aspekte an. Zum einen, wird WordPress den regelmäßig von dir gepflegt? Werden Plugins verwendet und wenn ja, sind diese noch aktuell? Gleiches gilt auch für das Theme. Wurde eine Firewall eingerichtet (WAF)? Wie sieht es mit den Passwörtern aus? Viele Fragen. Meistens sitzt das Problem leider doch vor dem Bildschirm. Denn dein System ist nur so gut, wie du es auch behandelst.
Das soll aber jetzt nicht heißen, das es für WordPress keine Schwachstellen gibt. Wie auch dein Betriebssystem ist auch WordPress davon betroffen. Durch regelmäßige Updates werden diese aber sobald sie erkannt wurden, geschlossen.
Was für Schwachstellen gibt es bei WordPress? #
Hier eine Liste von Sicherheitsschwachstellen bei WordPress:
- Backdoors — Hintertüren
- DDoS Angriffe — Denial-of-Service
- Brute-Force Attacken
- Cross-Site-Scripting (XSS)
Backdoors — Hintertüren
Hierbei werden veraltete Plugins bzw. Sicherheitslücken in Plugins, Theme und WordPress selbst ausgenutzt, um eine Hintertür zu deiner WordPress Webseite zu öffnen.
Meistens werden dadurch Dateien verändert. Es wird ein Schadcode eingefügt der es ermöglicht, remote auf deine Daten zuzugreifen. Meistens diese Änderungen an deinen PHP-Dateien dann wie eine zufällige Reihenfolge von Zeichen aus. Das liegt daran, dass die PHP Funktionen zunächst mit Base64 verschlüsselt werden. Über Eval kann der String dann einfach als PHP Code interpretiert werden.
Sieht erstmal harmlos aus. Dahinter kann sich aber einiges verbergen, zum Beispiel ein Skript, das automatisch Daten von einem anderen Server zu dir kopiert und ausführt.
Backdoors lassen sich schnell beheben. Zuerst solltest du prüfen, ob es bei dir Schwachstellen gibt. Falls ja, solltest du die betroffenen Stellen durch ein Update schließen. Über das Ändern von Dateiberechtigungen und durch das Ausschließen von PHP-Dateien aus diversen Ordnern kannst du bereits eine große Anzahl an Bedrohungen bekämpfen.
Brute-Force Attacken
So bezeichnet man automatisierte Angriffe, die einfache Passwörter verwenden um Zugang zu deiner Webseite zu erhalten. Um das zu Unterbinden solltest du unbedingt die Anmeldeversuche für dein System beschränken. Auch Blockierung der IP-Adressen und die Verwendung sicherer Passwörter helfen dabei, das Problem in den Griff zu bekommen.
Cross-Site Scripting (XSS)
Cross-Site Scripting wird es genannt, sobald ein bösartiges Skript in eine vertrauenswürdige Webseite oder Anwendung injiziert wird.
Hierbei wird der schadhafte Code meist über ungesicherte Eingabemöglichkeiten (Formulare) in das System eingefügt. Es handelt sich hierbei häufig um Skripte die im Browser des Besuchers ausgeführt werden (JavaScript).
Dabei soll versucht werden, Daten des Besuchers abzugreifen. Dazu zählen zum Beispiel Kreditkarten Informationen. Aber auch die Weiterleitung auf andere Webseiten oder das Einspielen von Werbung (Spam) gehört dazu.
DDoS Attacken — Denial-of-Service
Bei einem DDoS Angriff werden Fehler und Bugs im Code ausgenutzt, um den Server zu überlasten. Dabei wird das Ziel über verschiedene Server ununterbrochen angesprochen. Man spricht dabei von einem Bot-Netz. Kleinere Webseiten werden daher häufig infiltriert, um mithilfe dieser dann einen DDoS-Angriff auf ein größeres Ziel zu starten.
Deine WordPress Sicherheitsanleitung für 2021 #
Damit deine WordPress Webseite nicht Ziel eines Angriffes wird, solltest du diesen Sicherheitstipps folgen.
Keine Standardnamen für Benutzer verwenden
Angriffe auf WordPress werden in der Regel automatisiert durchgeführt. Das heißt ein Skript (Bot) versucht anhand vorgefertigter Methoden Zugriff auf euer WordPress zu erhalten.
Entwickler dieser Bots wissen natürlich, das admin der Standard Benutzername für WordPress Administratoren ist.
Also schreiben Sie eine Liste mit potenziellen Namen mit denen der Bot sich der Reihe nach versucht anzumelden.
Das gilt natürlich auch für Passwörter. Im Internet gibt es unzählige Listen von Passwortkombinationen, die einfach durchgespielt werden.
Ob du zum Beispiel schonmal mit deiner E‑Mail oder deiner Telefonnummer im Netz gefunden wurdest kannst du auf Have I Been Pwned prüfen.
Bots sind mittlerweile so programmiert, dass Sie auch auf der Webseite nach Namen und E‑Mail-Adressen suchen die Sie dann für das Login testen.
Leider bietet WordPress keine Möglichkeit an, Benutzernamen nachträglich zu ändern. Daher hier zwei Varianten wie du es ohne Plugin dennoch hinbekommst:
- Erstelle einen neuen Admin-Benutzer und lösche dann den alten.
- Passe den Benutzernamen direkt über die Datenbank an.
Deine wp-config absichern
Die wp-config.php ist mit Abstand die wichtigste Datei auf deinem System. Daher solltest du Sie besonders beachten, wenn es sich um die Sicherheit deiner WordPress Webseite dreht.
In Ihr finden sich die Datenbank Login-Daten und Sicherheitsschlüssel. Die Sicherheitsschlüssel sind für die Verschlüsselung deiner Cookie-Informationen zuständig.
Bearbeiten von Dateien deaktivieren
WordPress verfügt über einen internen Code-Editor. Dieser ermöglicht es dir Theme- und Plugin-Dateien über WordPress zu bearbeiten.
Sollte es einem Angreifer gelingen, sich bei WordPress anzumelden, kann er diese Dateien ebenfalls bearbeiten. Häufig bekommst du dann davon erst gar nichts mit.
Um das ganze zu verhindern, musst du lediglich die folgende Zeile in deiner wp-config.php einfügen:
define('DISALLOW_FILE_EDIT', true);
Das ganze sieht dann so aus:
Die wp-config.php verschieben
In der Regel befindet sich die wp-config.php im Stammverzeichnis deiner Webseite. Du kannst Sie aber in ein beliebiges anderes Verzeichnis verschieben, das nicht über WWW zugänglich ist.
Um deine wp-config.php Datei zu verschieben, kopierst du einfach den kompletten Inhalt in eine andere Datei. Diese speicherst du dann in einem Verzeichnis deiner Wahl ab.
Anschließend schreibst du folgende Zeile in deine wp-config.php:
<?php
require_once('/pfad/zu/deiner/datei.php');
Das verhindert, dass deine PHP per Zufall heruntergeladen werden kann, wenn es zu einem Hosting-Fehler kommt. Das kann zum Beispiel passieren, wenn PHP nicht eingerichtet wurde oder durch einen Fehler nicht mehr richtig funktioniert. Anstatt die Datei zu interpretieren, wird diese dann vom Server als Download angeboten. Durch diesen Fehler kann dann die Datei geöffnet und deine Daten ausgelesen werden.
Sicherheitschlüssel für WordPress aktualisieren
Die Sicherheitsschlüssel verbessern die Verschlüsselung der in den Cookies von Benutzern gespeicherten Informationen. Sie bestehen aus einer Reihe von Zufallszeichen.
Bei der Installation von WordPress werden diese automatisch generiert. Es kann aber nützlich sein, diese zum Beispiel nach einem Umzug deiner Webseite zu erneuern.
Hierfür bietet WordPress dir ein kostenloses Tool an, mit dem du die Sicherheitsschlüssel generieren kannst. Öffne einfach den Link und ersetze damit die Sicherheitsschlüssel in deiner wp-config.php Datei.
Dateiberechtigungen anpassen
Über die Dateiberechtigungen kannst du festlegen, wer auf die Datei bzw. den Ordner zugreifen kann. Dateiberechtigungen lassen sich mit einem FTP-Client wie z.B. FileZilla ändern.
Verbinde dich mit deinem FTP-Client zu deinem Server und navigiere zum WordPress Verzeichnis. Mit dem Klicken der rechten Maustaste auf eine Datei/ einen Ordner öffnest du das Context Menü.
Ganz unten in der Liste an Optionen findest du dann den Eintrag Dateiberechtigungen. Klicke darauf um die Dateiattribute zu ändern.
Dort kannst du nun bequem die Berechtigungen festlegen. Achtung: Durch das Verändern der Dateiberechtigungen kannst du deine Webseite beschädigen. Du solltest daher die Änderungen nur durchführen, falls du dich damit auskennst.
In der WordPress Dokumentation findest du die Richtlinien für die Dateiberechtigungen.
Dementsprechend solltest du für die wp-config.php die Dateiberechtigungen auf 440 oder 400 setzen.
Das Ausführen von PHP für Verzeichnisse deaktivieren
Du kannst für einzelne Verzeichnisse das Ausführen von PHP Dateien verhindern. Eines der Verzeichnisse, in denen PHP Dateien nichts verloren haben, ist zum Beispiel /wp-content/uploads/.
Mithilfe einer .htaccess Datei können wir das Ausführen von PHP-Dateien deaktivieren:
- Erstelle eine neue .htaccess Datei im Verzeichnis /wp-content/uploads/ deiner WordPress Installation. Hinweis: Die .htaccess Datei wirkt sich dann auch auf alle Unterordner in dem Verzeichnis aus.
- Füge dort folgenden Inhalt ein
<Files *.php>
deny from all
</Files>
Damit hast du nun alle PHP Dateien im Verzeichnis unbrauchbar gemacht.
Anzahl der Login-Versuche einschränken
Als Nächstes solltest du unbedingt ein Limit für Anmeldeversuche festlegen.
Angreifer versuchen häufig durch die Eingabe verschiedener Benutzernamen und Passwortkombinationen Zugriff zum System zu erhalten. Falls du hier kein Limit setzt, können Angreifer im Sekundentakt versuchen deine Passwörter zu erraten.
Hierfür kannst du ein Sicherheits-Plugin wie Sucuri verwenden oder aber Limit Login Attemps Reloaded.
Du kannst direkt die Standardeinstellungen verwenden. Falls du eine statische IP-Adresse besitzt, kannst du diese direkt hinterlegen.
Hiermit stellst du sicher das nach 3 fehlerhaften Anmeldungen von einer IP-Adresse, diese für weitere Logins für 20 Minuten gesperrt wird. Zusätzlich dazu, wird die IP-Adresse für 24 Stunden gesperrt, falls er innerhalb von 24 Stunden bereits 4‑mal gesperrt wurde.
Als Extra, kannst du dich auch per E‑Mail benachrichtigen lassen, sobald eine Sperrung erfolgt ist.
WordPress Datenbank-Präfix ändern
WordPress bekommt bei der Installation standardmäßig ein Datenbank-Präfix zugeordnet. Dieser lautet, sofern man ihn nicht geändert hat wp_.
Dieses Präfix könnt Ihr bei der Installation von WordPress anpassen und individuell vergeben.
Am einfachsten ist es daher, den Präfix direkt bei der Installation zu verändern. Es kann aber auch nachträglich erfolgen. Hierfür müssten sowohl die Datenbank als auch die wp-config.php angepasst werden.
Da das verändern das Präfix die Seite beschädigen kann, solltest du das nur durchführen, wenn du Erfahrungen mit Datenbanken und der Programmierung hast. Andernfalls solltest du einen Fachmann beauftragen.
Directory Indexing und Directory Browsing deaktivieren
Angreifer durchsuchen in der Regel Verzeichnisse auf deinem Server um mögliche Angriffsziele und Schwachstellen zu finden. Obwohl mittlerweile viele Webhosts das Directory Indexing und Directory Browsing standardmäßig deaktivieren, gibt es noch den ein oder anderen Exoten.
Teste einfach, ob bei deiner WordPress Webseite das Directory Indexing aktiviert ist, in dem du den Pfad aufrufst: /wp-includes/
Falls du nun so eine Ansicht erhältst wie unten, solltest du unbedingt weiterlesen.
Damit potenzielle Angreifer das nicht sehen können, öffnest du einfach die .htaccess Datei im Hauptverzeichnis von WordPress (dort befindest sich z.B auch die wp-config.php Datei).
Füge folgende Zeile ein um das Directory Indexing und Directory Browsing zu deaktivieren:
Options -Indexes
Teste nach dem Speichern und hochladen erneut die URL. Jetzt sollte anstatt dem Verzeichnis ein 403 Fehler (Forbidden) angezeigt werden.
XML-RPC Schnittstelle deaktivieren
Die XML-RPC Schnittstelle ist standardmäßig aktiviert, wird aber heutzutage kaum noch verwendet. Mittlerweile wurde Sie durch die in WordPress eingeführte REST-API verdrängt.
Mittlerweile wird sie überwiegend verwendet um Brute Force Angriffe, und DDoS-Angriffe durchzuführen.
Du solltest daher unbedingt prüfen, ob die Schnittstelle bei dir noch aktiviert ist. Hierfür verwendest du am besten den WordPress XML-RPC Validation Service.
Füge bei der Adresse einfach den Link zu deiner Webseite ein und ergänze es mit xmlrpc.php.
Falls bei dir XML-RPC aktiv ist, bekommst du folgende Nachricht angezeigt:
Jetzt solltest du aktiv werden. Um XML-RPC zu deaktivieren, stehen dir verschiedene Optionen zur Verfügung.
XML-RPC über einen Filter deaktivieren
Hierfür öffnest du die Functions.php aus deinem Child-Theme und fügst die folgende Zeile ein:
add_filter( 'xmlrpc_enabled', '__return_false' );
XML-RPC über .htaccess deaktivieren
Öffne die .htaccess Datei welche sich im Hauptverzeichnis von WordPress befindet. Dort fügst du folgende Zeilen ein:
<Files xmlrpc.php>
Order Allow,Deny
Deny from all
</Files>
Dadurch wird der Zugriff auf die Datei verboten.
Regelmäßige Backups der Webseite und Datenbank
Du solltest deine Webseite und deine Datenbank regelmäßig auf einem externen Server sichern.
Ein Backup auf dem eigenen Server reicht häufig nicht aus. Gerade wenn man existierende Plugins verwendet, wissen Bots wo Backups gespeichert werden. Häufig kommt es dann vor, das die Sicherungen gelöscht oder ebenfalls befallen werden.
Ein externes Backup ist für essenzielle Bereiche daher unabdingbar. Hierfür kannst du zum Beispiel das UpdraftPlus WordPress Backup Plugin verwenden.
Über das Dashboard kannst du dann direkt mit Jetzt sichern dein erstes Backup deiner Dateien und Datenbank starten.
Darüber hinaus kannst du auch noch weitere Einstellungen festlegen.
Neben der Häufigkeit der Sicherungen und der Aufbewahrung von Backups kannst du auch einen Online-Speicher konfigurieren, auf dem die Daten gespeichert werden sollen.
Falls du also nicht immer wieder manuell Sicherungen herunterladen möchtest, solltest du einen Onlinespeicher konfigurieren.
Gerne kannst du auch direkt über uns einen Wartungsvertrag für deine WordPress Webseite abschließen. Neben Backups und Wartung übernehmen wir auch die Aktualisierung deiner Webseite und sorgen für Sicherheit.
Debug-Modus deaktivieren
Der Debug-Modus sollte nur dann aktiviert werden, wenn es ein Problem mit deiner Webseite gibt. Sobald er aktiviert wird, werden zusätzliche Informationen für Entwickler ausgegeben. Darunter können sich auch sensible Daten befinden. Diese können dann wieder von potenziellen Angreifern abgegriffen werden, um Sicherheitslücken zu finden.
Um den Debug Mods zu deaktivieren, musst du die folgende Codezeile in deiner wp-config.php Datei abändern:
define('WP_DEBUG', false);
Was der Debug-Modus ist und wie du ihn verwendest, kannst du in unserem Beitrag So aktivierst du den Debug Modus in WordPress nachlesen.
Regelmäßiges aktualisieren von WordPress, Themes und Plugins
Eine weitere Möglichkeit um deine WordPress-Sicherheit zu verbessern, ist es, Plugins, Themes und WordPress selbst, regelmäßig zu aktualisieren.
Bei der Aktualisierung werden auch häufig Erweiterungen für die Sicherheit und Fehlerbehebungen eingefügt.
Leider muss ich immer wieder sehen, dass viele Kunden mit veralteten WordPress Versionen zu uns kommen. Meist mit einfachen Begründungen wie “dann läuft die Seite nicht mehr” oder “unsere Änderungen in WordPress sind dann weg”.
Dabei sollten Änderungen niemals an WordPress, Plugins oder Themes durchgeführt werden. Hierfür sind Hooks und Child-Themes gedacht.
Darüber hinaus enthalten WordPress Updates meist unverzichtbare Sicherheitspatches.
Hinweis: Vor einem Update solltest du immer ein Backup deiner Webseite und deiner Datenbank erstellen.
Wie man WordPress aktualisiert
Sobald ein Update für WordPress zur Verfügung steht, wirst du über das Dashboard informiert.
Alternativ kannst du WordPress auch manuell herunterladen und mit SFTP auf deinen Server laden. Wichtig: Das Überschreiben von Dateien oder Ordner, wenn man es nicht richtig macht, kann deine Webseite beschädigen.
Wie man WordPress-Plugins aktualisiert
WordPress-Plugins lassen sich ebenfalls einfach aktualisieren. Klicke auf das Update-Icon auf dem Dashboard und wähle anschließend die Plugins aus, die du aktualisieren möchtest. Bestätige den Prozess mit einem Klick auf die Schaltfläche Plugins aktualisieren.
Falls du Premium Plugins über einen Dritt-Anbieter bezogen hast, kann es sein, dass sich dieses nicht über WordPress aktualisieren lässt. Du solltest die Plugins daher immer manuell auf ein Update prüfen.
Hierzu kannst du die Dateien in der Regel manuell vom Hersteller herunterladen und manuell mit SFTP auf deinen Server hochladen. Die Dateien für die Plugins befinden sich in /wp-content/plugins.
Um die Sicherheit für deine WordPress Webseite zu erhöhen, solltest du bei der Auswahl von Plugins immer prüfen, wann diese zuletzt aktualisiert wurden. Plugins die nicht regelmäßig oder bereits längere Zeit nicht mehr aktualisiert wurden, solltest du meiden.
Sicherheit durch Obskurität (Security through obscurity)
Auch bekannt als Sicherheit durch Unklarheit. Man versucht durch das Geheimhalten von Informationen die Sicherheit zu erhöhen. Ob der Einsatz sinnvoll ist oder nicht, ist umstritten. Nichtsdestotrotz kann man das Prinzip auch bei WordPress anwenden.
Verbergen der WordPress Version
Je weniger die Person über dein System weiß, umso besser. Daher solltest du die WordPress Version, die du verwendest, ausblenden.
Das lässt sich ganz ohne Plugin bewerkstelligen. Füge hierzu einfach in die functions.php Datei deines Child-Themes (wp-content/themes/child-theme/functions.php) folgendes ein:
function removeWordPressVersion() {
return '';
}
add_filter('the_generator', 'removeWordPressVersion');
Das war es auch schon. Nun dürfte die WordPress Version nicht mehr angezeigt werden.
WordPress Login-URL ändern
Eine weitere Möglichkeit, das Prinzip der Unklarheit in WordPress einzubinden, ist das verschleiern der Login URL.
Alle Bots, Hacker und potenziellen Angreifer kennen den Pfad zur Login-Datei von WordPress. Mittels Brute-Force Attacken versuchen Sie dann sich anzumelden. Natürlich ist das Verändern der URL keine Lösung, sondern ein kleiner Trick. Sobald die Angreifer wissen, das deine Login-URL geändert wurde, werden Sie das anpassen.
Um den Pfad zu deiner Login-Seite zu ändern kannst du auf das Plugin WPS Hide Login zurückgreifen.
Fazit #
Wie du siehst, lässt sich WordPress bereits mit kleinem Aufwand optimieren, um die Sicherheit zu erhöhen. Durch das Wählen alternativer Benutzernamen, sicherer Passwörter und dem Durchführen regelmäßiger Updates kannst du dafür sorgen das deine Webseite im Betrieb bleibt.
Haben wir etwas vergessen oder hast du den ultimativen Tipp wie du deine WordPress Webseite absicherst? Dann lass es uns gerne in den Kommentaren wissen.
Artikel von:
Marc Wagner
Hallo, Marc hier. Ich bin der Gründer von Forge12 Interactive und bereits seit über 20 Jahren leidenschaftlich dabei Webseiten, Onlineshops, Anwendungen und SaaS-Lösungen für Unternehmen zu entwickeln. Vor der Gründung habe ich bereits in Börsen notierten Unternehmen gearbeitet und mir allerlei Wissen angeeignet. Dieses Wissen möchte ich nun an meine Kunden weitergeben.
Puh da gibt es ja ganz schön was zutun um WordPress richtig safe zu machen. Aber vielen Dank für die Vielzahl an Tipps.