WordPress professionell einrichten – Sicherheit

Anmerkung: Diese Artikelserie entstand in Kooperation mit der Full Service Werbeagentur WERBEBOTSCHAFT aus Nürnberg.

Die Verbreitung von WordPress ist immens. Stand August 2016 basieren weltweit grob 60% aller Webseiten mit CMS Systemen auf WordPress. Das macht Wordpress natürlich zu einem gefunden Fressen für Hacker.

Zum einen werden bei so viel Nutzung auch sehr viele Sicherheitslücken bekannt. Zum anderen ist der Anreiz groß, eine Lücke zu entdecken und diese dann auf zig tausend Seiten ausnutzen zu können.

Nicht nur der Datenverlust kann schwerwiegend sein. Manche Hacker haben es auch auf Ihr Image abgesehen und versehen Ihre Webseite mit abstoßenden Bildern und/oder Texten.
Andere Angreifer verwenden Ihre Webseite also Ausgangspunkt für Angriffe auf andere Webseiten oder um Schad- und Spähsoftware zu installieren, welche dann Ihre Besucher, die Ihnen vertrauen, ausspäht.

Weiterhin ist es möglich, dass Hacker über Ihre gekaperte oder anderweitig kompromittierte Webseite Zugriff auf diverse Konten, wie z.B. Amazon oder Paypal, erlangen, in dem Sie automatisch Ihre Login-Daten für diese Dienste übernehmen.

Deswegen sollen und müssen Sie sich so gut es möglich ist vor Hacker-Angriffen schützen und alles tun, damit Ihr Backend keinem Angreifer in die Hände fällt.

Wir sehen uns dazu die wichtigsten Punkte einmal an.

Security Plugin installieren

Eines der besten Sicherheits-Plugins, für mich seit Jahren das Beste, ist iThemes Security, welches vor einiger Zeit noch Better WordPress Security hieß. Dieses kostenlose Plugin bringt in seiner Basis-Version zig Einstellungen für die Sicherheit Ihrer Webseite mit, welche meist nur über einen einzigen Klick an und abschaltbar sind.

Nach der Installation finden Sie die Plugin-Einstellungen unter dem Menüpunkt „Sicherheit“, welcher nach dem ersten anklicken ein Pop-Up öffnet. In diesem Pop-Up bekommen Sie dann die Möglichkeit Ihre Seite mit einem Klick („One-Click-Secure“) abzusichern, was Sie auch gleich tun sollten. Danach können Sie weitere Einstellungen vornehmen.

Als kleinen Tipp gebe ich Ihnen mit auf dem Weg, nur im „Kartenmodus“, nicht im Listenmodus, des Plugins zu arbeiten. Im Listenmodus müssen Sie jedes mal, wenn Sie eine Änderung in einem Bereich vornehmen, auf dessen Speichern-Button klicken. Klicken Sie nicht, oder auf einen Button einer anderen Sektion, werden Ihre Einstellungen nicht übernommen.
Im Kartenmodus hingegen kann das nicht passieren, das sich die Einstellungen in einem modalen Pop-Up öffnen und nur durch abbrechen oder speichern wieder verschwinden. So vergessen Sie nicht aus Versehen zu speichern.

Klicken Sie im rechten oberen Bereich auf der Einstellungen-Seite auch immer „Alle“ an, um wirklich alle Karten vorgelegt zu bekommen. So müssen Sie sich nicht wundern, wenn einige erweiterte Funktionen auf einmal nicht mehr auffindbar sind.

Tabellen-Präfix ändern

Ob mit oder ohne iThemes Security … Den Tabellen-Präfix Ihrer Datenbank Tabellen sollten Sie unbedingt ändern, um es Hackern möglichst schwer zu machen, Ihre Datenbank zu übernehmen. Standardmäßig haben die einzelnen WordPress-Tabellen nämlich immer den selben Namen, was es Angreifern natürlich leicht macht, deren Namen zu „erraten“. Ein Präfix stellt jeder Datenbank-Tabelle eine von Ihnen gewählte, oder eine zufällige Zeichenkette voran, was dann z.B. aus der Tabelle „wp_posts“ den Namen „Ghdg56FF_posts“ macht.

Wenn Sie den Präfix manuell ändern möchten oder müssen, kann Ihnen diese Anleitung dabei helfen, alle Punkte zu bedenken: WP Beginner Change Database Prefix.

Ich rate Ihnen aber aus Gründen der Fehleranfälligkeit während dieser doch fortgeschrittenen Eingriffe dringend, dies über ein Plugin zu machen. In iThemes Security rufen Sie dazu die Karte „Ändere Datenbanktabellen-Präfix“ aus, legen fest, dass ein neuer Präfix vergeben werden soll und speichern die Karte.
Danach können Sie die Einstellungen noch einmal zur Überprüfung öffnen. Ein neuer Präfix sollte dann unter „Dein aktuelles Datenbanktabellen-Präfix ist“ erscheinen.

wp-config.php verschieben

Die Datei wp-config enthält brisante Informationen, wie z.B. den Zugang zu Ihrer Datenbank. Deswegen ist hier besondere Vorsicht geboten.
Ein guter Weg, diese Datei vor Fremdzugriff zu schützen, ist auf jeden Fall, diese Datei auf ein Ordner-Level über Ihrem WordPress Root-Verzeichnis zu verschieben.
Darauf haben externe System dann definitiv keinen Zugriff mehr über den Browser bzw. überhaupt über URLs. Einzig ein Zugriff über ein Terminal würde hier dann zum Erfolg führen, woran Sie sehen, wie viel höher die Sicherheit in diesem Fall dann schon einmal ist.

Hintergrund: WordPress sucht die wp-config.php erst einmal im Root-Verzeichnis. Wenn es die Datei hier nicht findet, sucht es einen Level höher

Noch einen, oder mehrere, Level höher, können Sie die wp-config.php aber nicht verschieben!

Admin Backend verstecken

Out of the box lautet die WordPress Login-Url für Ihr Backend http://meinedomain.de/wp-admin. Das wissen natürlich auch Angreifer und bombadieren diese Seite mit Login-Versuchen, denn hier befindet sich ja Ihr Login-Formular.

Um es Hackern also noch schwieriger machen, Ihre Seite zu übernehmen, ändern Sie kurzerhand die Login-Adresse.

iThemes Security bringt diese Funktion einfacherweise gleich mit. Aktivieren Sie einfach die Funktion „Verstecktes Backend“ in der gleichnamigen Karte und geben Sie eine gewünschte Adresse an. Vorschläge sind z.B. „/anmeldung“, „backend“ oder „verwaltung“. Unter der Eingabe-Box bekommen Sie dann die neue Login-Url angezeigt.

Versucht nun ein Hacker oder Bot Ihre Seite mit automatischen Login-Versuchen zu überschwemmen, funktioniert dies nicht mehr, da die Standard-Login-Adresse ja gar nicht mehr existiert.

Sollten Sie iThemes Security nicht installiert haben, können Sie auch das ebenfalls kostenlos Plugin WPS Hide Login verwenden.

Loginversuche limitieren

Eine weitere wichtige Funktion, um es Hackern und Bots so schwer wie möglich zu  machen Ihre Seite zu kapern, ist, falsche Login-Versuche zu limitieren. Bots versuchen sich zig Mal pro Sekunde mit verschiedensten Benutzer/Passwort-Kombination automatisch in Ihr Backend einzuloggen, was Sie ganz einfach durch diese Einstellung unterbinden können.

In iThemes Security nutzen Sie dafür die Einstellungen der Karte „Lokaler Brute-Force-Schutz“. Hier können Sie definieren, wie viele falsche Versuche pro Host, also IP Adresse und wie viele falsche Versuche pro Benutzer auftreten dürfen, bevor die IP Adresse bzw. der Benutzer gesperrt wird.
Wie lange die IP oder der Benutzer gesperrt werden, sich also gar nicht mehr einloggen dürfen, können Sie ebenfalls festlegen.

Loginversuche mit ‚admin‘ sofort blockieren

Ich persönlich klicke auch noch die Checkbox „Benutzer ‚admin‘ wird automatisch gesperrt“ an. Dies sperrt Login-Versuche mit dem Benutzernamen ‚admin‘ sofort und lässt keine weiteren Logins für diesen Benutzer zu. Hacker und Bots versuchen nämlich vorrangig sich mit dem von WordPress standardmäßig angelegten Benutzer namens ‚admin‘ einzuloggen.

Login-Fehlermeldungen verstecken

Versuchen Sie sich mit falschem Benutzernamen oder Passwort im backend einzuloggen, bekommen Sie standardmäßig diverse Fehlermeldungen von WordPress.

Diese Fehlermeldungen können Hacker bei automatischen Angriffen nutzen, um unter Umständen weitere Infos über Ihre Benutzer zu erlangen und sich somit am Ende einfacher einloggen zu können.

In iThemes Security öffnen Sie am besten gleich die Karte „WordPress-Optimierungen“ und haken die Checkbox „Deaktiviere Login-Fehlermeldungen“ an. So teilen Sie ab sofort keine brisanten Login-Fehlerinfos mehr mit der Öffentlichkeit.

Eigenes Aussperren verhindern

Damit Sie sich nicht selbst aussperren, weil Sie selbst, oder Ihr Kunde, sich zu oft falsch versucht haben einzuloggen, können Sie in der Karte „Globale Einstellungen“ unter dem Punkt „Aussperrungen Weiße Liste“ Ihre IP, oder die Ihres Kunden, eintragen. Kommen flasche Login-Versuche von dieser, vertrauenswürdigen, IP, werden diese IPs bzw. Benutzer nicht gesperrt.
Vorsicht: Dies funktioniert natürlich nur, wenn Sie bzw. Ihr Kunde eine feste IP Adresse haben und diese sich nicht nach jedem neuen Einwählen oder Trennen der Internetverbindung ändert!

Backend nur über VPN

Die absolut sicherste Lösung ist, das Backend komplett zu verstecken und nur über ein VPN, also Virtual Privat Network, zugänglich zu machen. So hat kein Hacker oder Bot die Möglichkeit sich einzuloggen, da es nur möglich ist, das Backend aufzurufen, wenn eine bestimmte und aktive VPN Verbindung existiert.

Lesen Sie zu diesem Thema z.B. diesen Artikel:
Restrict Admin Access By IP In WordPress

Als einfachen Start, hier einmal eine Sektion aus einer .htaccess-Datei, die ein komplett verstecktes, weil nur über VPN zugängliches Backend zeigt:

 Order deny,allow
Allow from 192.168.1.0/24
Allow from 127

Author Enumeration unterbinden

Backend-Benutzer bekommen in WordPress „nicknames“, welche dann auch in deren URL auftauchen. Dumm nur, dass standardmäßig der nickname gleich dem Login-Namen ist. So hat der Benutzer „admin“ die öffentlich sichtbare URL „http://meinedomain.de/author/admin“.
Leichteres Spiel kann ein Hacker gar nicht haben, denn so kann er alle Benutzernamen Ihres Systems ganz einfach heraus finden.

Dafür gibt es viele automatische Tools, aber auch einen einfachen, manuellen Trick.

Geben Sie einfach einmal diese Adresse auf Ihrer WordPress Seite ein:
http://meinedomain.de/?author=1″. (ersetzen Sie meinedomain.de mit Ihrer Domain)

Im schlimmsten Fall werden Sie auf die Seite
http://meinedomain.de/author/admin
weitergeleitet und schwuppdich! weiß der Angreifer erstens, wie einer der Benutzernamen Ihres Backends lautet und aufgrund des Namens sogar, dass es mit ziemlicher Sicherheit ein Admin-Account ist.

Nun schmeisst der Hacker noch seinen Brute-Force Mechanismus an und bombadiert Ihre Seite mit Login-Versuchen mit dem Benutzernamen „admin“ und jeglichen Passwörtern, die ein Rechner generieren kann.

Selbst wenn Sie z.B. ein Passwort, das 8 Zeichen lang ist, aus Klein- und Großbuchstaben und Zahlen + Sonderzeichen besteht, gewählt haben, kann ein normaler Heimrechner Ihr Passwort oft schon in wenigen Minuten knacken.

Haben Hacker erst einmal Ihr Backend und einen Benutzernamen gefunden, hängen Sie sich auch gerne wochen- und monatelang hin, um in Ihr Backend zu gelangen. Früher oder später werden diese dann erfolgreich sein.

Um dieses automatische Herausfinden von Benutzernamen zu unterbinden, hilft ein einfacher Eintrag in IHrer .htaccess Datei:

RewriteEngine On
RewriteCond %{QUERY_STRING} (author=d+) [NC]
RewriteRule .* - [F]

Damit führt jeder Aufruf einer URL des Formates http://meinedomain.de/?author=X in’s Leere und Hacker und Bots können über diesen Weg keinen Ihrer Benutzernamen auslesen.

Da Sie ja in den Grundeinstellungen von WordPress Permalinks eingeschaltet haben, kollidiert diese Einschränkung nicht mit Ihrem System, da Autorenseiten über Links wie http://meinedomain.de/author/nickname aufgerufen werden.

Benutzer Nicknames von Benutzernamen trennen

Auch wenn Sie das Aufzählen/Herausfinden von Benutzernamen im vorherigen Punkt unterbunden haben, gibt es für Hacker und Bots noch andere Möglichkeiten, an die Benutzernamen Ihrer Backend-Accounts zu kommen.
Deswegen ergreifen Sie gleich noch weitere Maßnahmen, und trennen Benutzernamen und Nicknames voneinander.

Dazu stellen Sie in iThemes Security in der Karte „WordPress-Optimierungen“ die Option „Erzwinge einzigartige Spitznamen“ ein. Dadurch müssen Benutzer, und auch Sie beim Anlegen von Benutzern, Nicknames wählen, die sich vom Benutzernamen, also Login, unterscheiden.
Damit entsteht dann in der URL ein anderer Benutzername, als es der für das Login im Backend ist und der Angreifer wird auf eine falsche Fährte geführt.

Vorsicht!
Sollte Sie diese Nickname Einstellung erst machen, nachdem schon Benutzer angelegt wurden, dies ist wahrscheinlich mit Ihrem ersten Admin-Benutzer der Fall, müssen Sie bei allen bereits angelegten Benutzern die Spitznamen manuell neu setzen, da alte Benutzer nicht automatisch von iThemes Security geändert werden.
Hintergrund ist, damit alte Autoren-Feeds, und dort die URLs, nicht geändert und damit für bestehende Abonnenten verloren gehen.

Admin-Benutzer löschen / Benutzer ID 1 ändern

Als Sie WordPress installiert haben, haben Sie gleichzeitig einen ersten Benutzer mit Administratorenrechten angelegt. Dieser Benutzer hat in der Datenbank die ID 1 bekommen. Aus Gründen der Sicherheit nach außen, z.b. um diverse Hackerangriffe zu unterbinden, sollte aber kein Benutzer mit der ID 1 existieren.

Um die ID 1 des bereits angelegten Users zu ändern, können Sie in iThemes Security in der Karte „Sicherheitsprüfung“ einen Check ausführen und dort die ID des Benutzers automatisch ändern lassen.
Vorher sollten Sie, wenn Sie schon Inhalte in WordPress angelegt haben, aber unbedingt ein Backup machen.

Verwenden Sie iThemes Security nicht, können Sie einfach einen neuen Benutzer mit Administratoren-Rechten anlegen,  sich mit diesem neu einloggen und den Administrator mit der ID 1 löschen (wichtig: dessen gesamte Inhalte auf den neuen Admin übertragen!).

Ab sofort gibt es dann keinen Benutzer mehr, der die ID 1 trägt.

Sichere Passwörter als Standard definieren

Sichere Passwörter sind das A und O. Da Sie jedem Benutzer 100 Mal und öfter sagen können, er solle ein sicheres Passwort verwenden und er tut dies nicht, sorgen Sie einfach auf automatischem Wege dafür, dass Ihre Benutzer sicher Passwörter verwenden MÜSSEN.

Dazu öffnen Sie in iThemes Security die Karte „Sichere Passwörter erzwingen“ und wählen unter “
Wähle Rolle für sichere Passwörter“ den Benutzerlevel aus, ab dem aufwärts sichere Passwörter verlangt werden.

Mein Tipp: Geben Sie hier gleich „Abonennt“ an, so dass alle, wirklich alle Benutzeraccounts über sichere Passwörter verfügen müssen.

Nur ein einziger unsicherer Benutzeraccount kann einem Hacker die Tür zu Ihrem Backend öffnen und damit ist es dann schon passiert. Dies müssen Sie sich immer vor Augen halten.

Wichtig!
Nach dem Einstellen dieser Option sollten auch Sie selbst noch einmal Ihr Profil aufrufen, ein sicheres Passwort vergeben und speichern. Auch alle anderen, bereits angelegten Benutzeraccounts sollten noch einmal aufgerufen werden und sicher Passwörter vergeben werden.
Denn iThemes Security kann natürlich Passwörter nicht selbst und nicht im Nachhinein ändern.

.htaccess als doppelten Login vorschalten

Doppelt hält besser, sag man. Und das stimmt auch im Fall von WordPress. Um ein noch sichereres Login-Verfahren zu generieren, etablieren Sie einen zusätzlichen Login über Ihre .htaccess Datei.

Sehen Sie sich dafür diese einfach verständliche Anleitung von Art Supplies an.

Am Ende erhalten Sie vor dem WordPress Login also noch einmal ein Login.

WordPress Version verstecken

Kennt ein Angreifer die Version Ihrer WordPress Version, kann er sich über diese Information eventuell ganz einfach Zugang zu Ihrer Installation verschaffen.

Dazu sucht der Hacker im Quelltext folgende Stelle auf:

Danach sucht er auf einer Seite, die Sicherheitslücken zu WordPress sammelt, nach dieser Version. Hier eignet sich z.B. die Seite https://wpvulndb.com nach deren Besuch der Angreifer dann genau weiß, wo er seine Hebel ansetzen muss.

Um zu verhindern, dass ein Hacker die Version Ihrer WordPress-Installation herausfindet, fügen Sie folgenden Code in die Datei functions.php Ihres Themes ein:

function wp_remove_version() {
return '';
}
add_filter('the_generator', 'wp_remove_version');

Dieser Code versteckt die WordPress-Version nicht nur im Seitenquelltext, sondern auch in allen anderen Bereichen, in denen Versionsausgaben stattfinden, wie z.B. Ihrem RSS Feed.

XML Live-Writer abschalten

Der Microsoft XML Live-Writer ist ein Windows Programm zum Bloggen, welches auch WordPress über eine spezielle Schnittstelle unterstützt.
Mit diesem Programm müssen Sie sich nicht in eine WordPress Backend einloggen, sondern können, nach erfolgreicher Verbindung mit dem jeweiligen Backend, direkt aus dem Programm heraus bloggen.

Sollten Sie dieses Programm nicht nutzen, und in den meisten Fällen wird dies so sein, so können Sie jeglichen Zugriff auf diese Schnittstelle in  iThemes Security unterbinden, was eine weitere Quelle für Hackerangriffe ausschließt.

Öffnen Sie dazu die Karte „WordPress-Optimierungen“ und aktivieren Sie die Option „Entferne den Windows Live Writer Header“.

RSD abschalten

Der RSD, also „Really Simple Discovery Header“ ist eine Schnittstelle für die Kommunikation mit externen XML-RPC Diensten, wie z.B. Flickr einen bietet.

Sollten Sie solche externen Schnittstellen nicht nutzen, deaktivieren Sie jegliche Funktionalitäten hierfür über iThemes Security, um potentielle Angriffsflächen für Hacker zu entfernen.

Öffnen Sie dazu die Karte „WordPress-Optimierungen“ und aktivieren Sie die Option „Entferne den RSD (Really Simple Discovery) Header“.

XML-RPC abschalten

Auch die XML-RPC Schnittstelle bietet externen Diensten und Systemen Zugriff auf Ihre WordPress Seite. Ein bekanntest Beispiel hierfür sind z.B. „Pingbacks“ von anderen Blogs, also automatische Benachrichtigungen in Ihren Kommentaren, wenn andere Blogs auf Ihre Seite verweisen.

Sollten Sie solche Dienste nicht nutzen, deaktivieren Sie jeglichen Zugriff auf diese Schnittstelle über iThemes Security, um Sicherheitslücken zu schließen.

Öffnen Sie dazu die Karte „WordPress-Optimierungen“ und stellen Sie im Dropdown „XML-RPC“ den Wert „Deaktiviere XML-RPC (empfohlen)“ ein.

Zusätzlich stellen Sie unter „Mehrere Authentifizierungsversuche per XML-RPC Anfrage“ den Wert „Blockieren (empfohlen) ein“.

An dieser Stelle möchte ich darauf aufmerksam machen, dass wenn Sie iThemes Security nutzen, Sie für diese, und auch viele andere Funktionen immer das Erlauben des Schreibens in die .htaccess erlauben müssen. Ansonsten müssen Sie die Einträge manuell vornehmen.

Manuell würde der Eintrag folgendermaßen aussehen:

order deny,allow
deny from all

Danach sollten Sie einmal Ihre Webseite aufrufen und unter dem Link http://meinedomain.de/xmlrpc.php testen, ob auf die Datei zugegriffen werden kann. Sie sollten einen Fehler, wie z.b. ein „Forbidden“ oder Ähnliches erhalten.

So können sich nun keine Hacker und Bots mehr über diese Datei versuchen einzuschleichen.

HackRepair.com Blockier-Liste implementieren

Jim Walker ist bekannt und berühmt für seine laufend aktualisierte Liste an „bösen“ Bots. Böse Bots scannen das Internet automatisch und werden auch irgendwann auf Ihre Seite stoßen. Nach einer kurzen Prüfung, mit welchem System/CMS Sie arbeiten, findet der Bit heraus, dass es sich um WordPress handelt.
Danach feuert er eine riesige Ladung an automatisierten Angriffen auf Ihre Seite ab und erhofft sich so, die Kontrolle über Ihre Seite zu erlangen.

Das Hauptziel der HackRepair.com Liste ist es von daher, böse Bots schon von vornherein auszusperren, Ihre Seite für diese Bots also quasi unsichtbar zu machen, und ihnen jeglichen Zugriff auf Ihre Webseite zu verwehren.

Mehr dazu finden Sie auf der Seite hackrepair.com.
In diesem Artikel finden Sie auch ein Link zur aktuellen Bot-Blacklist und der nötigen .htaccess Implementierung.

Falls Sie das iThemes Security Plugin installiert haben, können Sie die HackRepair.com Blacklist automatisch per Knopfdruck in Ihre WordPress-Seite integrieren. Das Plugin übernimmt dann das Eintragen in Ihre .htaccess , solange es die nötigen Schreibrechte erhalten hat.

Kommentare deaktivieren

Kommentare bergen auch immer ein gewisses Risiko, geben Sie doch, einfach gesagt, Benutzern die Möglichkeit Daten in Ihre Datenbank zu schreiben.

In der Vergangenheit wurden an dieser Stelle immer wieder Sicherheitslücken bekannt, über die Hacker schadhaften Code in WordPress Systeme einschleusen konnten.

Falls Sie also keine Kommentare auf Ihrer Seite benötigen, sollten Sie ein paar Schritte beachten.

Unter dem Menüpunkt „Einstellungen->Diskussion“ sollten Sie die Checkbox „Erlaube Besuchern, neue Beiträge zu kommentieren“ deaktivieren.

Wichtig:
Bei bereits angelegten Seiten und Beiträgen müssen Sie die Option, dass kommentiert werden darf, manuell deaktivieren. Diese Einstellung gilt nur für zukünftig angelegte Seiten und Beiträge.

Zusätzlich sollten Sie in der Datei functions.php Ihres Themes folgenden Code einfügen:

function defineAllowedhtmlTagsInComments() {

global $allowedtags;

$disallowedTags = array(
'a',
'i',
'abbr',
'acronym',
'blockquote',
'cite',
'code',
'del',
'strike',
'strong',
'b',
'em',
'q'
);
foreach ( $disallowedTags as $tag ) {
unset($allowedtags[$tag]);
}
}
add_action('init', 'defineAllowedhtmlTagsInComments');

Dieser Code sorgt dafür, dass nahezu alle HTML Elemente aus Kommentaren heraus gefiltert werden.

WordPress Sicherheitsschlüssel ändern

Bei der Übertragung von Daten, z.B. über Formulare, und auch an anderen Stellen, nutzt WordPress diverse Sicherheitsschlüssel um die Integrität der Daten zu gewährleisten. So können sich Angreifer nicht einfach in die Datenübertragung einklinken und andere, kompromittierte Daten einschleusen.

Die Sicherheitsschlüssel definieren Sie in der Datei wp-config.php in Ihrem Hauptverzeichnis. Sie können dort beliebige Zeichenketten z.b. für AUTH_KEY oder SECURE_AUTH_KEY eintragen. Einfacher geht dies aber über diese Seite, die alle Sicherheitsschlüssel automatisch und zufällig generiert. Den Code kopieren Sie einfach und ersetzen den Vorhandenen in der wp-config.php:

Sicherheitsschlüssel von wordpress.org

Wenn Sie danach komplett auf Nummer sicher gehen wollen, sollten Sie diese Sicherheitsschlüssel periodisch, also z.B. alle 30 Tage, ändern.
Dadurch werden unter Anderem alle Benutzer ausgeloggt, da die gespeicherten Daten für den Schnellzugriff ungültig gemacht werden.

Dies hat gleich mehrere Vorteile. Am Wichtigsten ist aber, dass dadurch vor allem Hacker, die Zugänge übernommen haben, ausgeloggt werden und (hoffentlich) keinen Zugriff mehr auf Ihr Backend haben.
Beachten Sie: Hat ein Hacker sich Benutzername und Passwort eines Accounts erschlichen, hilft das neu Setzen der Sicherheitsschlüssel auch nichts mehr. Diese Änderung macht u.A. nur bestehende Login-Cookies ungültig.

Datei und Ordnerrechte prüfen

Nicht nur Ihr Backend muss sicher sein, sondern auch Ihr Dateisystem. Dazu gibt es offizielle Empfehlungen, welche Rechte Ordner und Dateien haben sollen. Diese können Sie auf folgender Seite einsehen:
Hardening WordPress

Um die Rechte Ihrer Dateien und Ordner nicht manuell prüfen zu müssen, gibt es diverse Plugins, die dies automatisch übernehmen.

iThemes Security bietet diesen Check unter der Karte „Dateiberechtigungen“ und dort mit einem Klick auf den Button „Details der Datei-Zugriffsrechte neu laden“.

Ein weiteres gutes Plugin für die Prüfung der Datei und Ordnerrechte ist https://de.wordpress.org/plugins/wp-security-scan, welches auch sonst noch einige Sicherheits-Checks und Features mitbringt.

Readme bzw. Liesmich Dateien verstecken

Wie vorher besprochen, ist die von Ihnen verwendete WordPress-Version für einen Hacker Gold wert. Diese Version findet der Angreifer nicht nur über Feeds oder den Seitenquelltext. Auch über die Dateien „readme.html“,“readme.txt“, „license.txt“ oder „liesmich.html“ in Ihrem Hauptverzeichnis, kann der Angreifer die verwendete WordPress Version auslesen.

Nun könnte man hergehen und diese Dateien einfach löschen. Leider legt WordPress diese Dateien aber bei jedem neuen Update neu an.

Besser ist hier der Weg über die .htaccess Datei, welcher den Zugriff für jeden Besucher für immer verhindert:


Order allow,deny
Deny from all


Order allow,deny
Deny from all


Order allow,deny
Deny from all


Order allow,deny
Deny from all


Order allow,deny
Deny from all


Order allow,deny
Deny from all


Order allow,deny
Deny from all

Tabnapping unterbinden

Tabnapping, oder auch bekannt unter dem Namen „Target=’_blank’vulnerability“ ist ein von Hackern mißbrauchtes Verfahren, welchen beim Öffnen von Links in neuen Tabs durchgeführt werden kann.

Stellen Sie sich dazu einmal vor, dass Sie von Ihrer WordPress Seite, z.B. ein Blog zum Thema vegeterische Ernährung, in einem Artikel auf ein Foodblog verlinken. Der Link öffnet einen neuen Tab, oder ein neues Fenster, mit folgendem Standard-HTML-Code:

<a href="http://ein-foodblog.de/rezepte.html" target="_blank">
Link
</a>

Dieser unscheinbare Code kann für Ihre Besucher verheerende Folgen haben, denn damit hat die verlinkte Seite volle Kontrolle über „Ihr Fenster“, also das Aufrufende Fenster.
Über Javascript kann die Foodblog-Seite jetzt nämlich auf den „opener“ zugreifen und dann z.B. über folgenden Code Ihre Seite im Hintergrund auf eine andere Seite weiterleiten, ohne dass der Benutzer dies mitbekommt:

window.opener.location = "http://fake.amazon.xyz";

Ihre Seite, die sich ja versteckt im Hintergrund befindet, da die aktuelle Seite für den Benutzer im neuen Tab ja die Foodblog-Seite ist, wurde nun also auf eine Fake-Seite weitergeleitet, die Hacker so aussehen lassen, als wäre es z.B. die Amazon Seite. Sollte der Benutzer nicht aufmerksam genug sein, könnte es passieren, dass er seine echten Amazon-Daten in einem präparierten Login-Formular eingibt und somit dem Hacker seine Login-Daten zukommen lässt.
Vorstellbar ist hier natürlich auch das Weiterleiten auf PayPal, soziale Netzwerke oder gar Banking Seiten.

Sie können das Tabnapping allerdings verhindern und zwar, indem Sie folgendes Attribut zu jedem Link, der ein neues Fenster öffnet, hinzufügen:

<a href="http://ein-foodblog.de/rezepte.html" target="_blank" rel="noopener noreferrer">
Link
</a>

Über das „rel“ Attribut verhindern Sie jetzt, dass die Zielseite auf den „opener“ zugreifen und somit Ihre Seite weiterleiten kann. „noopener“ gilt hierbei für alle Browser, Firefox kennt „noopener“ nicht und benötigt „noreferrer“.

Das Sicherheits-Plugin iThemes Security bringt bereits eine eingebaute Funktion mit, die Tabnapping automatisch verhindert, wenn Sie die entsprechende Option einstellen.

Top