Die meisten Menschen denken, dass ihre WordPress-Website sicher wäre, weil sie keine Inhalte bereitstellt, die es sich zu hacken lohnen würde. Doch das ist leider nicht richtig. Websites werden oftmals gehackt, um etwa Spam-E-Mails darüber versenden zu können. Oder die Core- und Theme-Dateien werden mit Schadcode gefüllt, um die Rechner deiner Website-Besucher zu verseuchen und zu hacken. Es besteht durchaus die Möglichkeit, dass du den Schaden erst bemerkst, wenn Google dich aus dem Index entfernt hat. Lass es dazu gar nicht erst kommen und beherzige meine heutigen Tipps zur wp-config.php.
Es existieren viele Möglichkeiten, seine auf WordPress basierende Website davor zu schützen, gehackt zu werden. Als einen wichtigen Teil einer vernünftigen Sicherheitsstrategie kann die Optimierung der wp-config.php Datei angesehen werden. Natürlich ist die Website im Anschluss nicht die Bank von England, jedoch hat man es den Hackern wieder ein wenig erschwert.
Um die wp-config.php zu optimieren, werden sogenannte Konstanten genutzt. WordPress verfügt über sehr viele Konstanten, die genutzt werden können. Doch was ist eigentlich eine Konstante? PHP.net beschreibt die Konstanten folgendermaßen:
Eine Konstante ist ein Bezeichner (Name) für einen einfachen Wert. Wie der Name bereits nahelegt, kann der Wert einer Konstanten zur Laufzeit des Skripts nicht verändert werden (ausgenommen die Magischen Konstanten, die aber keine wirklichen Konstanten sind.) Eine Konstante unterscheidet standardmäßig zwischen Groß- und Kleinschreinbung (case-sensitive). Nach gängiger Konvention werden Konstanten immer in Großbuchstaben geschrieben.
Konstanten sind in die define() Funktion eingebettet und sehen so aus: define('NAME_DER_KONSTANTE', value);
Die wp-config.php ist die Steuerungsdatei für WordPress. Sie wird vor allen anderen Dateien geladen, allein schon deshalb, weil WordPress eine Datenbankverbindung herstellen muss. Die dazu nötigen Angaben finden sich in der Config-Datei. Wenn du den Wert einer Konstante änderst, eine Konstante hinzufügst oder ihren Wert änderst, dann änderst du auch das Verhalten von WordPress.
Vor der Arbeit: Bitte ein Backup anfertigen
Erstens: Fertige vor der Bearbeitung der wp-config.php ein Backup dieser Datei an. Mit falschen oder fehlenden Einträgen wird deine Website nicht mehr funktionieren.
Zweitens: Bitte füge alle benutzerdefinierten Angaben über dem im folgenden Screenshot markierten Bereich ein.

Wichtig: WordPress und Plugins immer sofort updaten
Du wirst es schon öfter gehört haben. Doch gerade dieser Punkt ist so wichtig, dass man ihn nicht oft genug wiederholen kann. Immer und immer wieder werden Websites gehackt, weil WordPress oder die Plugins nicht auf dem neuesten Stand waren. Updates sind die beste Versicherung gegen Hacking!
Die aktuelle Sicherheitslage:
Die Sicherheitsspezialisten Sucuri warnen gerade vor einer Sicherheitslücke im beliebten Jetpack-Plugin für WordPress. Über die Shortcode-Embed-Funktion kann schadhafter Code eingefügt werden. Automattic wird sicherlich zeitnah reagieren und eine neue Version herausbringen.
So ist die Sicherheitslücke vorerst zu schließen:
Solltest du meine »optimale .htaccess«-Datei verwenden, dann droht dir keine Gefahr. Dort wird die berühmte 6G-Firewall verwendet, die solche Angriffe abzuwehren vermag.
Die Vorbereitung:
Für alle nun folgenden Arbeiten benötigst du ein FTP-Programm und einen HTML-Editor. Die wp-config.php wird auf den Desktop heruntergeladen, im HTML-Editor bearbeitet und im Anschluss wieder auf den Server geladen.
1 – Nutze die Sicherheitsschlüssel
Die Sicherheitsschlüssel in WordPress verschlüsseln zum Beispiel die Anmeldeinformationen in Cookies und sind daher extrem wichtig. Auch wenn deine wp-config.php bereits über eingetragene Sicherheitsschlüssel verfügt, so kann es nicht schaden, sie noch einmal zu ändern. Wenn die Schlüssel abgeändert werden, werden alle noch offenen Anmeldungen deiner Benutzer abgemeldet. Im Anschluss kannst du dich wieder ganz normal mit deinem Benutzernamen und dem vergebenen Passwort anmelden.
Solltest du jedoch bereits gehackt worden sein, dann solltest du zuerst deine Website vom Schadcode bereinigen. Eine entsprechende Anleitung findest du in den weiterführenden Informationen zu diesem Punkt. Danach besuchst du den WordPress Generator für die Sicherheitsschlüssel und kopierst dir einen neuen Satz. Ersetze den alten Teil mit dem Neuen – siehe Screenshot:

Solltest du noch keine Sicherheitsschlüssel eingefügt haben, dann ist nun der richtige Zeitpunkt, um es zu tun.
Weiterführende Informationen:
- Dr. Web: WordPress gehackt? Das musst du jetzt tun!
- WordPress-Generator für die Sicherheitsschlüssel
2 – Erzwinge die Verwendung von HTTPS
Ein SSL-Zertifikat verschlüsselt die Verbindung zwischen deiner Website und dem Browser deines Besuchers. Mit HTTPS wird es den Hackern unmöglich gemacht, persönliche Daten abzufangen und zu stehlen. Wenn du bereits ein SSL-Zertifikat für deine Website besitzt, dann kannst du die Nutzung von HTTPS anstatt HTTP forcieren, also deine Website zwingen, es auch zu nutzen. Das steigert die Sicherheit deiner Website sehr. Solltest du bislang über kein SSL-Zertifikat verfügen, dann denke eingehend darüber nach, eines zu nutzen.
Vor großartigen Kosten musst Du keine Angst haben, SSL gibt es mittlerweile auch kostenlos. Wir hatten bereits darüber geschrieben.
Die folgenden Einträge solltest du verwenden, wenn deine Website bereits SSL verwendet. Der oberste Eintrag ist für das geschützte Einloggen gedacht, der untere Teil zwingt den Browser, auch den Adminbereich von WordPress nur mit SSL nutzbar zu machen.
View the code on Gist.
3 – Ändere das Datenbank-Präfix
Das Datenbankpräfix ist auch unter der Bezeichnung Tabellenpräfix bekannt. Dieses Präfix wird als Ergänzung vor jede von WordPress generierte Datenbank-Tabelle gesetzt. Der Standard ist hierbei wp_. Dieser Standard sollte in irgend etwas anderes abgeändert werden. Je kryptischer der Wert, umso besser. Keine Angst, du musst dir nicht merken, was du hier vergibst. Dieser Wert wird nur ein einziges Mal gesetzt.
Genau betrachtet ist die Möglichkeit einer SQL-Injektion nicht sehr wahrscheinlich. Doch sie ist möglich. Daher ändere den Wert ab, bevor du WordPress installierst. Nutze zum Beispiel etwas wie hdr7rf_.
Achtung: Solltest du den Wert bei einer bereits bestehenden WordPress-Installation ändern, dann ist die Website nicht mehr zugänglich!
Wenn du das Tabellenpräfix bei einer bestehenden WordPress-Website ändern möchtest, dann kann dir das Plugin Acunetix WP Security helfen. Damit kannst du den Wert problemlos ändern und musst dich im Anschluss nur neu einloggen. Trotzdem solltest du vorher ein Backup machen.
4 – Schalte den Plugin- und Theme-Editor ab
In jeder WordPress-Installation kann man Theme- und Plugin-Dateien direkt im Adminbereich bearbeiten. Unter den Menüpunkten »Design« und »Plugins« findet man auch jeweils den Editor für die betreffenden Dateien. Dieser Editor ist sehr gefährlich, wenn er in die Hände eines Hackers gerät. Dateien könnten zerstört und Viren, Trojaner, Spam und andere Malware könnten hinzugefügt werden. Doch auch für dich als Administrator deiner Website ist der Editor gefährlich. Ein einziger Fehler, ein einziges vergessenes Semikolon kann bereits die berühmten weißen Seiten anzeigen und dann geht nichts mehr.
Änderungen an Theme- oder Plugin-Dateien werden grundsätzlich nur über (S)FTP gemacht, das ist wesentlich sicherer. Also müssen die Editoren abgeschaltet werden. Eine einzige Zeile in der wp-config.php schaltet beide Editoren sicher ab:
View the code on Gist.
5 – Verschiebe die wp-config.php
Die wp-config.php ist das Herz deiner Website. Alle relevanten Daten inklusive den Passwörtern für die Datenbank sind dort eingetragen. Daher ist es sehr wichtig, diese Datei so sicher wie möglich zu halten. Hierzu gibt es zwei Ansätze. Der erste Ansatz ist eine Zugriffssperre über die .htaccess-Datei. Der zweite Ansatz verschiebt die Datei an einen anderen Ort, unter dem ein Hacker sie nicht vermuten würde.
- Problematisch wird es mit dem Verschieben, wenn sich die Website in einem Unterverzeichnis befindet und du ein günstiges Shared-Hosting nutzt.
- Ebenfalls schwierig werden kann das Verschieben, wenn du sehr viele Websites in eigenen Verzeichnissen hast. Treffen beide Konstellationen nicht auf dich zu, dann kannst du die Datei verschieben.
View the code on Gist.
Wenn du den Pfad zur wp-config.php korrekt angepasst hast, dann sollte deine Website anschliessend funktionieren.
6 – Erzwinge die Nutzung von FTPS
Wenn dein Webhoster das File Transfer Protocol Secure (FTPS) aktiviert hat, dann kannst du die Verwendung von FTPS zur Übertragung von Dateien erzwingen. Das verschlüsselt dann die Verbindung zwischen dem Benutzer und deinem Server. Es ist nun nicht mehr möglich, mit dem unsicheren FTP-Protokoll auf die Daten auf dem Server zuzugreifen. FTP ist unsicher, weil die Zugangsdaten unverschlüsselt und im Klartext an deinen Server übertragen werden. Daher nutze – wenn möglich – nur die sichere Verbindung über FTPS. Dein Webhoster kann dir beantworten, ob eine FTPS-Verbindung möglich ist.
So einfach kannst du die Nutzung von FTPS erzwingen:
View the code on Gist.
Weiterführende Informationen:
Wikipedia: FTP über SSL
7 – Erzwinge die Nutzung von SFTP
Manche Hoster haben anstatt des FTPS-Protokolls das SFTP-Protokoll zur Datenübertragung aktiviert. Auch hier findet eine verschlüsselte Verbindung zwischen dem FTP-Programm des Users und dem Server statt. Mit der folgenden Code-Zeile kann die Nutzung von SFTP erzwungen werden:
View the code on Gist.
Weiterführende Informationen:
Wikipedia: SSH File Transfer Protocol
8 – Den Debug-Modus ausschalten
Solltest du für Entwicklungszwecke den Debug-Modus von WordPress eingeschaltet haben, dann ist es sehr wichtig, ihn wieder abzuschalten. Denn unter Umständen werden mit aktiviertem Debug-Modus sensible Daten weitergegeben, die Hackern bei ihrer Arbeit helfen können. Auf einem Live-System ist ein aktivierter Debug-Modus daher extrem gefährlich. Auch ich habe diesen kleinen und dummen Fehler bereits begangen, der Mensch vergisst zu leicht. Daher solltest du noch mal einen kurzen Kontrollblick darauf werfen. Ausgeschaltet wird der Fehlermodus wie folgt:
View the code on Gist.
9 – Schalte die Anzeige von PHP-Fehlern aus
Solltest du aus irgendeinem Grund den Debug-Modus von WordPress dringend aktiviert benötigen, dann empfehle ich dir, die öffentliche Ausgabe der Fehlermeldungen auszuschalten. Die für dich wichtigen Fehlermeldungen können auch in ein nicht öffentlich zugängliches Log geschrieben werden. Das wäre die wesentlich sichere und elegante Möglichkeit. Um den Fehler-Modus von WordPress aktiviert zu lassen und einfach nur die öffentlich sichtbare Fehlerausgabe zu unterdrücken, benötigst du diese Konstante:
View the code on Gist.
10 – Schalte die automatischen Updates ein
Wie ich bereits weiter oben im Beitrag erwähnte, ist das sofortige Updaten des WordPress-Kerns und aller Plugins sehr wichtig für die Sicherheit des Systems. Bei jedem Release einer neuen WordPress-Version werden auch die Sicherheitslücken in der jeweils vorangegangenen Version öffentlich. Das verschafft einem Hacker eine solide Grundlage, um deine Website hacken zu können. Ergo sollten diese Schwachstellen so schnell wie nur möglich behoben werden.
Seit der WordPress-Version 3.7 werden kleinere Sicherheitsupdates automatisch durchgeführt. Dieses gilt allerdings nicht für Hauptversionen von Core-Updates. Hauptversionen müssen immer noch händisch aktualisiert werden. Doch man kann die automatischen Updates für alle Versionen von WP ganz leicht einschalten:
View the code on Gist.
Es ist übrigens auch möglich, die Plugins automatisch updaten zu lassen. Das ist jedoch mit etwas mehr Arbeit verbunden. Es erfordert die Erstellung eines Plugins:
View the code on Gist.
Dieses Plugin muss in den Ordner /wp-content/mu-plugins/ verschoben werden. Sollte der Ordner nicht existieren, dann lege ihn einfach an. Der Ordner /mu-plugins/ beinhaltet die »must use« Plugins. Sein Inhalt wird vor allen anderen Plugins geladen.
Übrigens kann man auf die gleiche Art auch die Themes automatisch updaten lassen. Dazu muss das Plugin um die folgende Zeile ergänzt werden:
View the code on Gist.
Bitte informiert euch vorher im Codex über diese automatischen Plugins und nutzt den Code nur, wenn ihr genau wisst, was ihr tut. Es versteht sich von selbst, dass die beiden Filter nur Plugins und Themes auf dem neuesten Stand halten können, die auch aus dem offiziellen Verzeichnis von WordPress stammen. Es werden keine Themes und Plugins aktualisiert, die du aus einer anderen Quelle bezogen hast.
Weiterführende Informationen:
WordPress Codex: Must Use Plugins
Fazit
All diese Punkte zusammengenommen steigern die Sicherheit deines WordPress bereits sehr und sollten ein Teil einer guten Sicherheitsstrategie sein. Denn der Umstand, dass WordPress das beliebteste Content Management System der Welt ist, zieht natürlich auch Hacker an. Die Situation ist durchaus vergleichbar mit dem PC-Betriebssystem Windows. Unter Windows installiert man eine Antiviren-Software, unter WordPress ist zumeist Handarbeit angesagt. Doch der Zugewinn an Sicherheit rechtfertigt diesen kleinen Arbeitsaufwand.
(dpe)