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

WordPress Sicherheit via .htaccess

Wordpress Sicherheit via htaccess

.htaccess für mehr Sicherheit

WordPress ist ein fantastisches System zum bloggen, doch WordPress ist mittlerweile auch äußerst populär geworden. Das wiederum bringt ganz neue Probleme mit sich, denn was populär ist, ist oft auch das Ziel von Hacks, sowie Angriffen. Auch WordPress war in der Vergangenheit des Öfteren mal Ziel solcher Attacken, weshalb Nutzer immer auch auf die Sicherheit ihrer WordPress-Installation achten sollten. Einfach nur WordPress installieren und mit dem Bloggen loslegen, das ging früher vielleicht einmal, heute heißt es dagegen, nach der Installation erst einmal alles abzusichern. Wer nicht gehackt werden will, sollte also von Anfang an darauf achten, sonst ist das Grauen später groß. Viele scheuen dabei den Aufwand, doch Sicherheit geht vor, dass weiß jeder der schon einmal Ziel oder Opfer war. Doch wie kann WordPress nun wirklich effektiv geschützt werden? Es gibt eine Menge Wege für mehr WordPress Security, doch die .htaccess sollte immer den Anfang machen. Sehr nützlich diese kleine Datei, um bestimmte Bereiche abzusichern.

WordPress Sicherheit mit .htaccess

Als Standard beinhaltet die .htaccess nur so etwas wie “#BEGIN WordPress…”. Um die Website zu beschleunigen, kann sie nun mit allerhand nützlichen Snippets gefüllt werden. Eine, meiner Meinung nach, perfekte .htaccess findet ihr hier. Doch auch diese bleibt absichtlich klein und minimalistisch, denn auch eine .htaccess kann die Performance schnell negativ beeinträchtigen, wenn sie voll und damit langsam ist. Also überlegt euch genau, was wirklich Sinn macht und welche Befehle ihr in eurer .htaccess speichern wollt. Nicht einfach alles kopieren, sondern von Fall zu Fall selbst entscheiden. Das gilt zumindest bei den folgenden Sicherheitsrelevanten Zusätzen, denn die oben verlinkte .htaccess kann ruhig direkt so kopiert und genutzt werden, sie beschleunigt WordPress nämlich deutlich. Doch beim Thema Sicherheit, ist nicht unbedingt jeder Befehl für jeden Blog auch notwendig. Wer noch mehr Tipps möchte, findet auf der Themenseite zur WordPress Security weitere Hinweis.

Dateien vor Zugriff schützen

Als erstes gilt es mal wichtige Dateien vor fremden Zugriff zu schützen. Die “wp-config.php” und die “.htaccess” wären solche wichtigen Dateien, die ihr mit folgendem Befehl absichern könnt. Ganz simpel und direkt über die .htaccess selbst.

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

<Files .htaccess>
order allow,deny
deny from all
</Files>

<files readme.html>
Order Allow,Deny
Deny from all
</Files>

Ordneransicht verbieten

Als nächstes sollte das Durchsuchen der Ordner verboten werden, was ebenfalls ziemlich simpel ist und mit dem unteren Code schnell erledigt ist. Der Code schaltet das sogenannte directory browsing komplett ab.

Options All -Indexes

WP-Content schützen

Doch es gibt immer noch Schlupflöcher, durch die potenzielle Angreifer Zugriff erhalten könnten. Auch im Ordner “wp-content” kann dies geschehen, weshalb selbiger ebenfalls eine .htacess Datei erhalten sollte. Die müsst ihr allerdings komplett selbst erstellen. Einfach einen Editor öffnen, ein leeres Dokument als .htaccess speichern und hochladen. Hat es funktioniert, könnt ihr selbige nun mit Inhalten füllen, doch Vorsicht, im Ordner wp-content macht nur wenig Code auch wirklich Sinn. Hier ist das Problem nämlich ganz einfach, dass auch Plugins etc. auf Dateien zugreifen dürfen. Mit dem folgenden Befehl wird der Zugriff im Ordner “wp-content” allerdings stark eingeschränkt. Nur noch auf Bilder, xml, sowie CSS-Dateien darf zugegriffen werden, alle anderen Anfragen werden geblockt. Das kann unter Umständen Probleme verursachen, je nachdem welche Erweiterungen ihr innerhalb von WordPress nutzt.

order deny,allow
deny from all
<files ~ ".(xml|css|jpe?g|png|gif|js)$">
allow from all
</files

XXS Security, nosniff und mehr

Es gibt noch ein paar kleine Tags die für mehr Sicherheit sorgen können und ebenfalls via .htaccess integriert werden. Zum Beispiel, um einfache XXS-Attacken abzuwehren, Clickjacking zu verhindern und ähnliches. Fügt einfach folgendes Snippet in eure .htaccess hinzu, mehr ist gar nicht notwendig. Ein kleiner Rundumschutz, um auf Nummer sicher zu gehen.

<ifModule mod_headers.c>
Header set X-XSS-Protection "1; mode=block"
Header always append X-Frame-Options SAMEORIGIN
Header set X-Content-Type-Options: "nosniff”
</ifModule>

WP-Include Dateien blocken

Eine weitere Möglichkeit, die Sicherheit von WordPress deutlich zu erhöhen, ist das Blocken der wp-includes. Das geht relativ einfach über die .htaccess und gehört deshalb auch zum Standard. Eine kleine aber feine Stufe der WordPress Security, die offiziell empfohlen, von Nutzern aber häufig vergessen oder unterschätzt wird. Dabei ist der Code im Grunde winzig und kann daher auch schnell mit in die eigene .htaccess aufgenommen werden.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

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 gesondert 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]

6G Firewall & BBQ Plugin

Den ultimativen Schutz gewährt die sogenannte 6G Firewall von Jeff Starr. Die Blockliste, die komplett auf .htaccess-Ebene funktioniert, ist eine äußerst effektive Firewall. So blocken die Einträge schadhafte Aufrufe und Anfragen schon bevor sie euren WordPress Blog erreichen. Da die 6G Firewall außerdem komplett an WordPress angepasst wurde, funktioniert sie in der Regel auch vollkommen problemlos mit sämtlichen Plugins und Themes. Wem der Code zu undurchsichtig oder kompliziert ist, der kann auch das Plugin BBQ verwenden, welches die 6G Firewall über ein WordPress Plugin integriert. Das ist dann zwar etwas weniger performant, aber fast ebenso sicher. Alternative Firewalls findet ihr hier, denn eine solche solltet ihr so oder so einsetzten.

Weniger ist immer mehr

Die Wahrheit ist nun: Es gibt durchaus noch einige kleine Snippets, die behaupten euch vor Eindringlingen etc. zu schützen. Doch ich warne euch hier ausdrücklich davor, eure Website mit irgendwelchen Codes zuzumüllen, die am Ende dann sowieso nur einen kleinen bzw. nur sehr geringen Mehrwert liefern. Weniger ist mehr, das gilt auch für die .htaccess. Eigentlich gilt selbiges für so ziemlich alle Bereiche im Web, doch gerade Dateien die vom Server ständig kontrolliert und abgearbeitet werden müssen, sollten nicht unbedingt überladen daherkommen. Nicht zu vergessen ist auch, dass die .htaccess neben den oberen Codes, bereits Caching etc. verwaltet, demnach bereits eine Hülle und Fülle an Inhalten liefert. Also übertreibt es nicht, bleibt immer minimalistisch und wählt nur das für euch relevante aus. Dann kriecht euer Server auch nicht auf dem Boden herum, sondern bleibt schnell und sicher, ist vor Angreifern geschützt und arbeitet seine Aufgaben zügig und brav ab. Und wer von nichts eine Ahnung hat, der nutzt einfach diese vorgefertigte .htaccess-Datei und liest sich alle Artikel zum Thema Sicherheit durch.



Wordpress Performance eBook