Da mein Vorsatz für das neue Jahr war, einen Blog zu starten, machte ich mich auf die Suche nach einer passenden Software. Mir kam natürlich gleich ein CMS in den Sinn. Mit Joomla hatte ich vor Jahren mal kurzen Kontakt und von WordPress und Drupal hatte ich natürlich auch gehört. Oft hat man bei den größeren Communitys mehr Hilfe bei Problemen und mehr Erweiterungen für benötigte Features.
Marktführer WordPress
Wie man z. B. in der Marktübersicht von Kinsta nachlesen kann, sind rund 60 % der Content Management Systeme WordPress Installationen. Doch ich hatte in den vergangenen Jahren auch von zahlreichen Sicherheitsproblemen bei WordPress gelesen.
Laut dem Hacked Website Report 2019 von Sucuri fallen rund 94 % der erfolgreichen Angriffe auf Content-Management-Systeme auf WordPress. Das ist deutlich mehr als es der Marktanteil vermuten lässt. Das liegt wahrscheinlich daran, dass sich Angreifer auf die gängigsten Systeme konzentrieren, sodass mit wenig Aufwand möglichst viele Server kompromittiert werden können.
Laut dem Report sind 49 % der Installationen nicht mehr auf dem aktuellen Stand. Gerade wenn man unbedarft ein Plugin nach dem anderen hinzufügt, um noch ein cooles Feature mehr zu bekommen, verliert man leicht den Überblick. Dadurch sind zahlreiche bekannte Schwachstellen weiterhin ausnutzbar. Dazu kommen einige gefährliche Features und falsche Konfigurationen.
Über Angriffe berichtete in jüngerer Zeit z. B. iX 05/2020, heise Security 1 /2020, heise Security 11/2020, heise Security 12/2020. Und das sind nur die größeren Angriffe, die eine Nachricht wert waren.
Wer seinen eigenen WordPress Blog testen möchte, kann z.B das Tool WPScan nutzen. Das auf Ruby basierende Tool hat eine Datenbank mit mehr als 21.000 Schwachstellen, die bisher in WordPress, Themes und Plugins gefunden wurden. In der auf Penetration Testing spezialisierten Linux Distribution Kali ist es bereits enthalten. Etwas weiter ist der Einsatzbereich von nikto gefasst. Es spezialisiert sich auf Webseiten und auf Webservern laufende Skripte. Auch nikto ist in Kali Linux vorinstalliert. Über nikto werde ich bestimmt noch einen Artikel schreiben, da ich es selbst relativ häufig einsetzte, um Konfigurationsfehler bei Servern, die ich aufsetzte, zu finden.
Bedarfsanalyse
Also habe ich nochmal innegehalten und über meine Anforderungen nachgedacht.
- Ich möchte meine Gedanken zu einigen Themen sammeln und im Internet veröffentlichen.
- Ich möchte keine Kommentare, die ich dann auf SPAM oder illegale Inhalte kontrollieren muss. Meine zukünftigen LeserInnen können mich auch über Twitter erreichen oder mir eine Mail schreiben.
- Ich will kein Geld mit dem Blog verdienen. Daher brauche ich kein Tracking, keine Werbung und kein GoogleAnalytics.
- Ich bin der einzige, der Artikel schreibt und ich kann auch Markdown und html. WYSIWYG brauche ich eigentlich nicht.
- Das ganze soll auch auf dem Smartphone leserlich sein.
Die Anforderungen sind meiner Erfahrung nach das Schwierigste bei IT-Projekten. Meistens wissen die AuftraggeberInnen nämlich gar nicht, was sie genau brauchen. Sie haben aber schon eine Lösung im Kopf. Daher lohnt es sich sehr, erst einmal über das Problem zu sprechen, mit dem man konfrontiert ist. Nach und nach kann man dann von einer Problembeschreibung zu Eigenschaften einer Lösung kommen.
Jekyll
Die Lösung meines Problems ist letztendlich kein komplettes CMS wie WordPress, sondern das schöne Tool Jekyll. Jekyll ist ein in Ruby geschriebenes Programm, das Markdown Dateien in statische Webseiten und Blogs transformiert. Es kommt auch bei den GitHub Seiten zum Einsatz.
Jekyll hat gleich mehrere Vorteile.
- Da es statisch ist, muss auf dem Server gar kein PHP laufen. Die Installation ist einfach und die Performance gut.
- Ich komme mit Markdown gut zurecht und muss mich nicht erst an die grafischen Editoren und Eigenheiten des CMS gewöhnen.
- Ich kann meine Beiträge in Ruhe und unabhängig von der Internetverbindung schreiben.
- Das einzige, was ich updaten muss, ist der Webserver. PHP, CMS, Plugins etc. entfallen.
- Die Angriffsfläche wird minimiert. Wo keine Software läuft, kann auch kein Fehler ausgenutzt werden.
- Es gibt einige Layouts zur Auswahl und die meisten sind responsiv. Sie sehen also auch auf kleinen Bildschirmen gut aus.
Das verwendete Theme nennt sich übrigens Leaf und ist von SupunKavinda. Es hat zwar weniger Features als andere Themes, kommt aber ohne externes Javascript und Google Fonts aus. Dieses Kriterium mag manchen übertrieben erscheinen, aber mir ist es wichtig. Wenn ich als Nutzer versuche, unnötiges Javascript, Trackingcookies und Werbung zu blockieren, kann ich doch als Anbieter nicht auf die gleichen Techniken zurückgreifen.
Fazit
Für mich ist Jekyll die ideale Lösung für meinen Bedarf und ich bin froh, dass ich nicht schnell die erste Lösung genommen habe, die mir in den Sinn gekommen ist.
Bis bald,
seism0saurus