Wir müssen über WordPress sprechen
Shortcut
WordPress wurde 2003 veröffentlich und hat seit dort eine unglaublicher Erfolgsgeschichte erzielt. Es ist auf der Basis von Open-Source-Software und wird von jedem Hosting-Betreiber nativ unterstützt. Obwohl der unschlagbaren Verbreitung gibt es einige Punkte die beachtet werden müssen bevor sich jemand für WordPress entscheidet. Lästige Updates und verpasste Überarbeitungen des Core Systems sind nur Tropfen auf dem heissen Stein.

WordPress CMS
WordPress ist das bekannteste und meist verwendete CMS System im gesamten Internet. WordPress wurde konzipiert als Blog Webseite und wird heute für alle erdenklichen Seiten genutzt, sogar für E-Commerce Lösungen.
Das in die Jahre gekommene System hat jedoch einige Schattenseiten die sowohl die Besucher als auch die Entwickler nicht gerade glücklich machen. Abgesehen davon das die unterliegenden Technologien nicht gerade zu den führenden gehören haben Sie es auch verschlafen grundlegende Bereiche zu überarbeiten um den heutigen Anforderungen gerecht zu werden.
Lass uns in den nächsten Minuten detaillierter in einige Problemstellungen von WordPress eintauchen.
Plug-Ins
Um den heutigen Anforderungen gerecht zu werden, besitzen vermutlich alle WordPress Seiten Plug-Ins. Sie bieten praktische Erweiterungen und werden häufig gratis zur Verfügung gestellt. So hilfreich sie auch sein können, bringen sie ihre eigenen Gefahren mit sich mit.
Bei jedem Update besteht die Gefahr das etwas kaputt geht und repariert werden muss. WordPress ist bekannt dafür das dies relativ häufig passiert. Dies veranlasst einige Administrator Updates nicht automatisch installieren zu lassen und nur quartalsweise oder noch schlimmer, nie zu installieren.
Eine durchschnittliche WordPress Webseite weisst dutzende Plug-Ins auf. Diese erweitern das Core System mit zusätzlichen Funktionalitäten. Per Design kann es nun aber vorkommen das sich zwei Plug-Ins in die Quere kommen und einen Konflikt miteinander haben. Dies kommt unteranderem auch auf die Implementierung an. WordPress Administratoren neigen dazu für alles Plug-Ins zu installieren, kein Wunder, es gibt auch für alle erdenkliche Erweiterung ein eigenes Plug-In.
Bei jedem Seitenaufruf werden alle Plug-Ins durchlaufen sodass diese die Chance haben ihre Arbeit zu leisten. Desto mehr arbeitsintensive Plug-Ins aktiviert sind, desto länger wird es dauern bis die Webseitenbesucher die Seite sehen bzw. interagieren kann. Die Webseite wird also mit jedem installiertem und aktiviertem Plug-In langsamer.
Jeder Developer der bereits eine Library oder Plug-In geschrieben und veröffentlich hat, weiss das es keine Woche dauert bis die ersten Security Patches für die internen Abhängigkeiten rauskommen. Ein Plug-In zu warten und stehst sicher zu halten benötigt viel Zeit und Ressourcen. Jetzt gibt es jedoch abertausende Plug-Ins die von privat Personen in deren Freizeit entwickelt wurden und gratis zur Verfügung stehen. Man darf und kann nicht von ihnen erwarten das sie wöchentlich Ihre Plug-Ins aktualisieren, sodass sie die neusten Sicherheitsupdates beinhalten. Häufig werden auch Plug-Ins installiert die schon jahrelang nicht mehr aktualisiert wurden. Diese Plug-Ins werden schnell zur Sicherheitslücke und Türöffner für das gesamte System.
WordPress Themes
Analog zu den Plug-Ins können Themes aus dem Internet eine WordPress Seite ergänzen um ein gewisses Layout und Design zu realisieren. Leider ist es auch hier so, was aus dem Internet geladen werden kann birgt gefahren.
WordPress Theme Development ist sicherlich nicht bekannt für die Entwicklerfreundlichkeit. Nach einem hartnäckigem kompliziertem Start um sich überhaupt zurecht zu finden, taucht man etwas tiefer und merkt schnell wie aufwändig und kompliziert das Ganze ist, im Gegenzug zu moderneren Lösungen.
Probleme beim Entwickeln sind ganz normal und kommen gefühlt alle paar Minuten vor, eigentlich auch nicht weiter tragisch, man wirft ein Blick in die Dokumentation, erkennt was falsch ist und programmiert weiter. WordPress ist bekannt dafür, dass die Dokumentation nicht gerade glänzt, häufig fehlen entscheidende Details oder es ist schlicht und einfach falsch bzw. veraltet. Inoffizielle Dokumentationsseiten werden häufig der offiziellen Dokumentation vorgezogen.
Viele würden sich auch wünschen, dass es mehr festgelegte Strukturen in der Entwicklung von Plug-Ins und Themes gibt. Es gibt einige Standards die sich über die Jahre etabliert haben, werden aber häufig nur von den beruflichen Theme Ersteller verwendet. Viele Themes und auch Plug-Ins enthalten sogenannten Spaghetti-Code.
Kommen wir zu den kostenpflichtigen Premium Themes, welche perfekte Anpassungsmöglichkeiten versprechen. In der Realität gibt es jedoch immer einige Anpassungen die benutzerdefiniertes PHP/CSS benötigt und direkt im WordPress eingefügt werden muss.
Auch wenn ein kostenpflichtiges Theme gekauft wurde benötigt es etwas Handarbeite an Gewissen stellen. Gehen wir davon aus, dass wir ein Karussell für Bilder als Plug-In Installieren und das auf der Startseite integrieren möchten. Sowohl das Theme als auch das Plugin haben einige Anpassungsmöglichkeiten die in den Einstellungen konfiguriert werden können. Es kann gut sein das dir das genügt, die Regel ist aber, dass genau ein kleines spezifisches Detail nicht editiert werden kann. Gut möglich das es länger dauert dieses kleine Detail umzusetzen als wenn der Entwickler ein Karussell ohne Plug-In implementiert hätte. Und ob das kleine Detail nach dem nächsten Update noch genauso funktioniert? You never know.
Security
Kommen wir zu einem prekären Thema, die Sicherheit. Es gibt gefühlt kein Tag ohne das eine Schwachstelle in WordPress gefunden wird. Nach jedem Core WordPress, Theme oder Plug-In Update besteht ein Potenzial für Backdoor-Exploits. Externe Plug-Ins und Themes können Tür und Fenster in das Wordpress System für Hacker öffnen. Schauen wir uns einige der häufigsten WordPress Security Issues an:
1. Brute Force Attacken
Bei einer Brute Force Attacke wird ein System mit allen erdenklichen Möglichkeiten bombardiert, bis zum gewünschten Resultat. Bei einer Anmeldemaske kann eine bösartige Person automatisiert alle Benutzername und Passwort ausprobieren bis er einen Erfolg erzielt. Dies Dauert in der Regel etwas, bis alle erdenklichen Eingaben ausprobiert wurden. Häufig werden auf vorgefertigte Listen von häufig verwendeten Benutzernamen und Passwörter zurückgegriffen um den Prozess zu beschleunigen. In der Regel befindet sich die Login Maske auf der Standard URL /wp-admin, das eignet sich gut für automatisierte Bots die das Internet nach WordPress Schwachstellen absuchen. WordPress hat es bis heute nicht fertig gebracht die Anzahl der Anmeldeversuche zu limitieren und so einen Schutz gegen Automatisieren zu bieten. Zusätzlich können viele Login Anfragen die komplette Seite verlangsamen.
2. Cross-Site Scripting (XSS)
Das Prinzip ist relativ simpel. Ein potenzieller Angreifer platziert versteckt bösartiges JavaScript auf der Seite, z.B. in einem Kommentarfeld. Der nächste Besucher welcher die Seite mit dem Kommentarfeld aufruft, führt automatisch das bösartige JavaScript aus. So können beispielsweise Anmeldeinformationen in Cookies ausgelesen und an den Hacker gesendet werden. WordPress hat hier von sich aus keinen bzw. nur ein geringer Schutz integriert.
Es gibt Mechanismen um Wordpressseiten sicher gegen XSS Angriffe zu machen, ob diese auch in allen Plug-Ins und Themes aus dem Internet integriert wurden ist fraglich.
3. File Inclusion Exploits
Jede Datei die aus dem Internet geladen wird kann potenziell bösartig sein. Egal ob der Benutzer ein Bild auf die Wordpressseite hochladen kann oder ob ein Plug-In dynamisch Dateien von einer externen Quelle lädt. Da WordPress in PHP geschrieben ist und PHP eine interpretierte Programmiersprache ist kann ein bösartiger Code direkt hinzugefügt werden, falls eine Schwachstelle gefunden und ausgenutzt wird.
4. SQL Injections
Hinter jeder WordPress Seite befindet sich eine Datenbank. SQL ist die Sprache die benutz wird um Daten abzufragen, hinzuzufügen oder zu modifizieren. WordPress sendet SQL Befehle an die Datenbank um persistente Daten zu verwalten. Bei jedem Seitenaufruf lädt Wordpress Daten von der Datenbank und zeigt sie dem Benutzer an.
Bei einem Kontaktformular werden die Inputfelder in der Regel in die Datenbank geschrieben, sodass sie von dort aus weiterverarbeitet werden können.
Eine bösartige Person könnte in ein Inputfeld ein SQL-Befehl hinzufügen und WordPress sendet dieser weiter an die Datenbank. Die Datenbank kann nur SQL und versteht nicht was gut und schlecht ist. Bei einer SQL Injectin kann also beispielsweite über ein Inputfeld zusätzliche SQL-Befehle mitgesendet werden, welche von der Datenbank verarbeitet wird und Schaden anrichtet.
5. Malware
In einer gehackter WordPress Seite kann sich ein bösartiger Code befinden. Es gibt verschiedene Arten von Malware. Entweder es werden laufend alle Daten an den Hacker übermittelt und somit auch sensible Kundendaten. Oder der zusätzliche Code zwingt den Benutzer seine Kreditkarteninformationen einzugeben. Das Schadenpotential ist unbegrenzt gross.
Bonus
Häufigste Gründe weshalb es zu Hacks kommt:
- Schwache Passwörter
- WordPress auf den Standartkonfigurationen (Z.B. Login auf /wp-admin)
- WordPress Core, Plug-Ins, Themes nicht regelmässig updaten
- Plug-Ins und Themes von nicht vertrauenswürdiger Quelle installiert
Das waren nun einige der bekannteren Problemstellungen von WordPress, diese Liste könnten wir aber problemlos noch um einiges ergänzen. Haben wir dein Interesse geweckt, rate ich dir mal etwas zu googeln, dass Internet ist voll mit weiteren Punkten.
Ich möchte hier explizit noch erwähnen das WordPress seine Daseinsberechtigung hat und auch jahrelang einen guten Dienst geleistet hat. Bevor man sich für WordPress entscheidet sollte man sich genau informieren welches das geeignetste CMS für seien Bedürfnisse ist. Es gibt kein CMS welches alle Bedürfnis zu hundert Prozent abdeckt, es gibt immer Kompromisse die eingesteckt werden müssen.