Wordpress Performance Wordpress SEO Wordpress Security Wordpress Themes Wordpress Hosting Mein Setup Das Buch

8 Schritte zur ultimativen WordPress Sicherheit

8 Schritte zur ultimativen WordPress Sicherheit

Sicherheit geht vor

WordPress ist eine sehr populäre Software, mit vielen Fans und vielen Nutzern. Das Problem was solch eine Bekanntheit immer mit sich bringt, ist die Tatsache, dass so etwas auch Angreifer anlockt. Die machen sich seit Jahren an dem System zu schaffen, entwickeln Bots und Hacks, nutzen Sicherheitslücken und Script Injections. Normalerweise kommen Angreifer damit gar nicht erst durch, doch Sicherheit geht nun einmal vor. Oft wird genau die allerdings vergessen oder vernachlässigt, schließlich bringt Sicherheit nicht direkt etwas, sondern hilft nur im Notfall. Doch von Anfang an sollten Nutzer von WordPress daran denken, dass im Falle eines Angriffs schnell sämtliche Dateien Infiziert, gelöscht, verändert oder zerstört werden. Sicherheit ist also das Wichtigste. Hier nun einmal sieben grundlegende Schritt, um die Sicherheit von WordPress deutlich zu erhöhen.

1. Schutz vor Script Injections

Die GET- und POST-Anfragen werden meist sorgfältig geschützt, doch was ist mit den GLOBALS und _REQUEST-Variablen? Die werden meistens nicht sonderlich behandelt, weshalb folgender Befehl in der .htaccess für mehr Sicherheit sorgt. Dieser blockt Script Injections und Versuche, die entsprechenden Variablen zu verändern.

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]

2. Block Bad Queries

Das Plugin BBQ: Block Bad Queries habe ich euch erst vor kurzem vorgestellt. Das schützt euch vor langen Anfragen, die meistens nur das Ziel verfolgen eine Sicherheitslücke oder ein Schlupfloch zu finden. Mit Block Bad Queries werden derartige Anfragen einfach abgewürgt und erhalten eine 414-Weiterleitung. Dabei muss aber gesagt werden, dass WordPress hier schon von Haus aus guten Schutz bietet, der aber eben durchaus noch erweitert werden kann. Bei mir sorgte Block Bad Queries außerdem für eine leicht gesteigerte Performance, weil plötzlich die vielen Anfragen nicht mehr durchkamen und keine Belastung mehr erzeugen konnten.

3. Benutzernamen des Admins ändern

Standard für alle Webmasterdie WordPress verwenden, ist es, nach der Installation erst einmal den Benutzernamen des Admins zu ändern. Statt Admin, sollte der einen anderen Titel tragen, einfach weil es eine Menge Attacken gibt, die per Brute Force versuchen das Admin-Passwort zu knacken. Um den Namen zu verändern, könnt ihr einfach folgenden SQL-Befehl ausführen (Bei “Neuer Nutzername” den gewünschten Namen eintragen). Wenn euch das zu kompliziert ist, könnt ihr euch auch folgendes Plugin mal genauer anschauen.

UPDATE wp_users SET user_login = 'NEUER NUTZERNAME' WHERE user_login = 'Admin';

4. WP-Admin sperren

Eine fantastische Möglichkeit, die vielen Brute Force Attacken auf den Admin bzw. das Backend von WordPress zu verhindern, ist es auch, den kompletten Bereich einfach zu sperren. Das hat viele Vorteile, allerdings auch Nachteile. So könnt ihr den Ordner wp-admin nur dann sperren, wenn bei euch keine Benutzer registriert sind, die sich selbständig einloggen dürfen. Dafür steigert sich anschließend aber die Performance, weil all die Brute Force-Attacken auf das Login plötzlich ins Leere laufen. Ich empfehle daher alle Blogs, die keine Registrierung erlauben, den kompletten Ordner wp-admin mittels .htaccess und .htpasswd abzuschließen. Das ganze ist im Grunde sehr simpel und hier noch einmal genauer erklärt.

5. Dateien mittels .htaccess schützen

Neben der .htaccess im Ordner wp-admin, solltet ihr natürlich auch eine entsprechende Datei im Hauptverzeichnis haben. Dort werden neben Sicherheitsrelevanten Einstellungen auch Optimierungen für die Performance hinterlegt, alle Infos dazu findet ihr in meinem Artikel zur perfekten .htaccess. Für die Sicherheit sind folgende Einträge sinnvoll, die den Zugriff auf entsprechende Dateien verbieten.

<Files wp-config.php>
order allow,deny
deny from all
</Files>
<Files .htaccess>
order allow,deny
deny from all
</Files>

6. Durchsuchen von Verzeichnissen deaktivieren

Bei vielen Hostern ist es erlaubt, dass Ordner direkt angesprochen werden können. Bei WordPress würde die URL “http://www.deinewebsite.de/wp-includes” dann alle Dateien im entsprechenden Verzeichnis auflisten. Um genau das nun zu verhindern, hilft folgender Code in der .htaccess im Hauptverzeichnis.

Options All -Indexes

7. Unnötige Header-Einträge entfernen

Sicherheit ist wichtig und auch unnütze Einträge im Header geben eventuell Hinweise auf Sicherheitslücken oder aktivierte Software. Davon abgesehen, erhöht ein schlanker und kleiner Header auch erheblich die allgemeine Performance. Um alle unwichtigen Einträge aus dem Header zu entfernen, solltet ihr folgenden Code in die functions.php eures Themes kopieren.

add_action('init', 'remheadlink');
function remheadlink()
{
 remove_action('wp_head', 'rsd_link');
 remove_action('wp_head', 'wp_generator');
 remove_action('wp_head', 'index_rel_link');
 remove_action('wp_head', 'wlwmanifest_link');
 remove_action('wp_head', 'feed_links', 2);
 remove_action('wp_head', 'feed_links_extra', 3);
 remove_action('wp_head', 'parent_post_rel_link', 10, 0);
 remove_action('wp_head', 'start_post_rel_link', 10, 0);
 remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);
 remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
}

8. XML-RPC Abschalten

Auch XML-RPC sollte, wenn ihr es nicht verwendet, unbedingt deaktiviert werden. Seit WordPress 3.5 ist die Schnittstelle nämlich permanent aktiv, auch wenn sie sich gar nicht in Gebrauch befindet. Das Problem dabei ist, dass eine aktivierte Schnittstelle auch immer eine Gefahr und ein Sicherheitsrisiko darstellt. Deaktivieren ist aber gar nicht so einfach wie gedacht, denn um XML-RPC wirklich komplett abzuschalten, sind einige Schritte notwendig. Hier findet ihr meine komplette Anleitung, um XML-RPC zu deaktivieren.

WordPress ist sicher

Das war es nun im Grunde. Acht Schritte waren von Nöten, um die WordPress Sicherheit schlagartig anzuheben. Acht Schritte, die allesamt sehr wichtig ausfallen und keine stumpfen Methoden präsentieren. Acht Schritte, die euch wirklich vor fiesen Angriffen schützen, die wirklich etwas bringen und dafür sorgen, dass ihr in der Nacht ruhiger schlafen könnt. Jeder der schon einmal “gehackt” wurde, weiß wie viel Arbeit und Nerven es kostet, eine zerstöre WordPress-Installation wiederherzustellen. Im Grunde bleibt nur ein komplett neues aufsetzten des Servers übrig, schließlich darf kein bisschen gehackter Schadcode übrig bleiben. Vorsicht ist also besser als Nachsicht, denn sonst habt ihr unter Umständen schnell gigantischen Ärger am Hals. Mit den Acht Schritten zur ultimativen WordPress Sicherheit, seid ihr nun zumindest deutlich besser geschützt.



Wordpress Performance eBook