Sicherheitskritisch

Tech project blog of Bastian Raschke

Sicherheitskritisch läuft nun mit Pelican

Written by Bastian Raschke.
Published 2015-03-12 in the category Allgemein.

Stolz können wir verkünden, dass wir bei unserem Blog „Sicherheitskritisch“ nach einigen technischen Infrastruktur-Umstellungen nun auch das Blogging-System gewechselt haben. Und das mit größter Zufriedenheit!

Zuvor haben wir die Software Wordpress eingesetzt, welche als sehr benutzerfreundlich und erweiterbar gilt. Nun waren uns von Zeit zu Zeit aber auch einige Dinge aufgefallen, die wir an diesem System auszusetzen hatten…

Das Backend von Wordpress
Bild 1: Das Backend von Wordpress

Grund Nr. 1 - Die Performanz

Dies war zunächst die recht schlechte Performanz, da im Hintergrund sehr viele Prozesse (u.a. Datenbankabfragen) abgearbeitet werden müssen - und das bei jedem Seitenaufruf. Dies war nur mit unsauberen Tricks oder Plugins abzumildern, was ich nicht so berauschend fande, da meiner Meinung ein System von sich aus schnell sein muss, und dies nicht nur künstlich per Caching etc. möglich ist.

Grund Nr. 2 - Der Datenschutz

Weiterhin gefiel es mir persönlich nicht, dass Wordpress standardmäßig eine starke Anbindung an Dienste wie Gravatar und Google Web Fonts nutzt, welche ich aus datenschutzgründen gerne vermeiden wollte. Dies war kaum, oder nur mit Plugin-Frickeleien möglich.

Grund Nr. 3 - Die Sicherheit

Und mit jedem einzelnen Plugin steigt bekanntlich auch die Sicherheitsanfälligkeit des Gesamtsystems, welche in der Vergangenheit schon oft zu erfolgreichen Angriffen bzw. Übergriffen von Hackern bzw. Skriptkiddies geführt hat. Und so etwas sollte möglichst vermieden werden, wenn der Titel unseres Blogs „Sicherheitskritisch“ lautet ;)

Grund Nr. 4 - Keine Mehrsprachigkeit

Und der letzte Grund war es, dass es Wordpress nicht nativ ermöglicht, mehrsprachige Inhalte zu verwalten. Und nein, wir wollten nicht auf unsaubere, teils kostenpflichtige Plugins ausweichen. Da mittlerweile viele unser Besucher aus dem nicht-deutschsprachigem Ausland kommen, planen wir eine Mehrsprachigkeit des Blogs bzw. zunächst der beliebten Artikel. Und das war nun der Tropfen, der den Ausschlag zum Wechsel der Software gab.

Das neue Blog-System „Pelican“

Ich bin über Pelican bereits im letzten Jahr gestolpert, und hatte die Software im Kopf behalten: Ein schlanker Blog-Generator für statische Seiten, basierend auf Python. Man schreibt seine Inhalte in der Format-Sprache „restructuredText“ (rst) oder in der intuitiveren Sprache „Markdown“, welche speziell durch GitHub eine große Verbreitung erhalten hat. Die Vorteile von Pelican liegen auf der Hand:

  • sehr gute Performanz, da nur statische Seiten ausgeliefert werden müssen
  • minimalste Anforderung an den Webhoster (nur HTML), dadurch sehr günstig
  • keine Sicherheitsrisiken durch das dynamische Blog-System, da es keines gibt
  • viele durchdachte native Funktionen aber auch sehr gute Anpassbarkeit

Diese Punkte haben uns sehr zugesagt und es hat Spaß gemacht, sich in das unkonventionelle Konzept einzuarbeiten. Dies ist Vorraussetzung für solche einen Wechsel: Man muss Spaß an Neuem haben und Interesse besitzen, Zeit in die Umstellung zu investieren. Ich werde in diesem Artikel aber nicht auf die technischen Details zu Installation und Nutzung von Pelican eingehen, da diese sehr gut in der Dokumentation und vielen anderen Blogs zu finden ist. Bei Fragen stehe ich natürlich trotzdem zur Verfügung ;-)

Die Migration von Wordpress

Pelican bringt sehr gute Werkzeuge mit, die Daten zu migrieren. Über die Funktion von Wordpress „Werkzeuge > Daten exportieren“ wurde eine XML-Datei exportiert, welche für die Migration der Inhalte enorm wichtig war.

Das Programm pelican-quickstart ermöglicht es, mit einem Assistent das Gerüst für die neue Webseite / den Blog zu generieren. Mit dem Programm pelican-import kann die exportierte Wordpress-XML-Datei genutzt werden, um die Inhalte wahlweise restructuredText oder Markdown umzuwandeln. Danach waren bei mir noch einige kleine Fehler bei der Umwandlung zu korrigieren. Weiterhin mussten die Verlinkungen der ganzen statischen Inhalte wie Dateien und Bilder geändert werden. Die meiste Arbeit war es natürlich, dass Template für Pelican umzustellen, was aber durch die Durchdachtheit von Pelican keinesfalls für Frustration oder Ärger gesorgt hat. Dies habe ich gleich zum Anstoß genommen, das Template ein bisschen zu modernisieren.

Das neue Kommentarsystem

Da Pelican, wie gesagt, statische HTML-Seiten produziert, kann natürlich kein dynamisches Kommentarsystem wie bei Wordpress verwendet werden. Somit wird Pelican oft mit einem externen Kommentarsystem-Dienstleister wie beispielsweise Disqus verwendet. Da wir unsere Kommentarfunktion aber nicht an Drittanbieter auslagern möchten, der weiterhin nur amerikanischen „Datenschutz“ kennt, mussten wir eine Alternative finden.

Das Kommentarsystem Isso
Bild 2: Das Kommentarsystem Isso

Und ich bin auf die ebenfalls Python-basierte Software Isso (Abkürzung für „Ich schrei sonst“) des deutschen Entwicklers Martin Zimmermann gestoßen, welche mir sehr zugesagt hat (siehe Bild 2). Die saubere und sichere Installation auf Debian war zwar nicht besonders einfach, aber es hat sich gelohnt: Man wir mit einer schlanken Selfhosting-Alternative zu Disqus belohnt. Weiterhin bietet die Software den Import von Wordpress-Kommentaren (ebenfalls aus oben genutzer XML-Datei), was natürlich auch sehr praktisch war.

Mein Fazit

Alles in Allem gefällt mir die Umstellung sehr gut. Es hat sehr viel Spaß gemacht, für die saubere Sache zu „kämpfen“ und wir sind stolz darauf, Sicherheitskritisch nun mit Pelican präsentieren zu können.


Tags: Web, Sicherheit

Proudly generated with Pelican - without PHP, Perl, MySQL & Co. Jump to top