Static-Site-Generatoren: Einfache Blogs und Homepages im Handumdrehen erstellen

Static-Site-Generatoren erzeugen aus einzelnen Inhalten alle benötigten HTML-Dokumente für Webseiten. Damit lassen sich etwa Blogs schnell und sicher bauen.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 3 Kommentare lesen

(Bild: alphaspirit/Shutterstock.com)

Lesezeit: 16 Min.
Von
  • Michael Plura
Inhaltsverzeichnis

Typo3, Drupal, WordPress oder Joomla: Viele Webseiten werden von komplexen Content Management Systemen (CMS) ausgeliefert. Bei jeder einzelnen Anfrage baut dazu ein vielschichtiges System aus Skriptsprache(n) und Datenbank die Antwort für den Webserver zusammen – selbst wenn es sich nur um eine einzige Seite mit statischem Inhalt handeln sollte. Nur, weil Sie kein CMS samt Datenbank verzichten wollen, müssen Sie jedoch nicht gleich zum klassischen HTML-Editor greifen.

Mehr zu Webdesign

Genau hier helfen Static-Site-Generatoren (SSG). Die unscheinbaren Programme stellen einen Mittelweg zwischen CMS und HTML-Programmierung von Hand dar. Bei einem SSG schreibt man seine Texte meistens in Markdown, definiert über eine Konfigurationsdatei und ein Theme das Aussehen seines Webauftritts und überlässt es dem SSG, daraus alle benötigten HTML-, CSS- und JavaScript-Dokumente für eine Webseite zu erstellen. Für die Auslieferung ins Netz reicht ein minimalistischer und damit sicherer Webserver, auf dem alle Dateien landen. Viele SSGs laufen in einem halb-automatischen Modus, bei dem sie die Verzeichnisse mit den vom Benutzer erstellten Inhalten überwachen, daraus bei Änderungen eigenständig die neuen Webdokumente erstellen und diese auch auf den Webserver hochladen. In diesem Artikel zeigen wir anhand von Bashblog und Hugo exemplarisch, wie Sie mit SSGs einfache Webseiten erstellen, befüllen und aktuell halten.

CMS: Funktionsweise und Sicherheitsaspekte

CMS wie Typo3, Drupal, WordPress oder Joomla arbeiten nach demselben Prinzip: Alle Funktionen sind in einer Skriptsprache programmiert – bei den vier genannten Kandidaten ist das PHP. Diese PHP-Funktionen analysieren die vom Benutzer über seinen Webbrowser an den CMS-Webserver gesendete Anfrage. Daraus versuchen andere PHP-Funktionen, eine passende Antwort in Form eines HTML-Dokuments zu erstellen. Dazu greift PHP auf die Daten in einer Datenbank zu – bei den genannten CMS handelt es sich in der Regel um MySQL oder MariaDB. Alternativ kommen auch andere SQLite, PostgreSQL, OracleSQL oder MS-SQL zum Einsatz. In der Datenbank schlummern Vorlagen oder Anweisungen zu Aufbau, Aussehen und Inhalten einzelner Webseiten. Das alles fügt PHP zusammen und erzeugt daraus ein HTML-Dokument, das es an den Webserver (Apache, Nginx, IIS et cetera) übergibt. Dieser liefert die dynamisch erzeugte Seite an den Browser aus.

Klingt vor allem für Blogs & Co. unnötig kompliziert. Außerdem sind die CMS anfällig für Fehler und Sicherheitslücken (Common Vulnerabilities and Exposures, CVE). Bei Drupal waren es seit 2002 ganze 200 CVEs, bei Typo3 seit 2005 immerhin 193, und das beliebte WordPress kommt seit 2004 auf satte 331 CVEs - das sind im Schnitt rund 20 dokumentierte Sicherheitslücken pro Jahr (2019: 23, 2020: 21).

Über Sicherheitslücken können Angreifer beispielsweise Schadcode einschleusen, der anschließend vom Webserver an die eigenen Leser und Kunden ausgeliefert wird. Im schlimmsten Fall kann das System und damit der ganze Server kompromittiert werden und gelangt so in die Hand von Cyberkriminellen. Diese können dann Inhalte verändern, löschen oder gar eigene (illegale) Inhalte hochladen. Wie bei jeder Software liefern auch CMS als Gegenmaßnahme automatische Updates aus. Dabei laufen sie den Lücken jedoch prinzipbedingt immer hinterher. Einen Fix kann es nur geben, wenn zuvor eine Lücke erkannt wurde. Wer die Logdateien seiner CMS genauer unter die Lupe nimmt, stellt schnell fest, dass es kurz vor einem Update bereits massive Angriffe auf diese Lücke gibt. Die Angriffe sind ebenfalls automatisiert und kommen weltweit und skriptgesteuert aus organisierten Netzwerken. Für den normalen CMS-Betreiber ist es beinahe unmöglich, sich gegen diese Angriffe proaktiv zu wehren. Ist man selbst kein erfahrener Administrator, sollte man sich auf einen Dienstleister verlassen, der WordPress oder eines der anderen CMS vorinstalliert hostet. Hier kann man bei Problemen von einigermaßen schnellen Reaktionszeiten ausgehen und muss nicht selbst permanent auf der Lauer liegen. Das kostet aber natürlich Geld.

Im Vergleich zur Arbeit mit CMS gelingt die Arbeit mit SSGs entspannter und sicherer – wenigstens bei einfachen Online-Auftritten: Liefert man statt der dynamischen Seiten eines CMS nur statische Seiten eines "Static-Site-Generators" beispielsweise über den OpenBSD-Webserver "httpd" aus, hatte man bislang nur ein einziges Mal (2017) mit einer einzigen Sicherheitslücke zu kämpfen. Bei der Attacke wurden mehrere große Dateien gleichzeitig über einen HTTP-Range-Header angefordert. Dadurch konnte "httpd" den Arbeitsspeicher und damit die Swap-Datei überfluten – eine klassische DoS-Attacke. Da der gesamte Content fertig "compiliert" im Dateisystem liegt und direkt vom Webserver ausgeliefert werden kann, sind bei SSGs auch keine Skriptsprachen oder Datenbanken auf dem Server notwendig – was nicht nur den Ressourcenbedarf, sondern auch die Angriffsflächen drastisch verringert.