Joomla! Plugin PXLCompressor – Image compression made simple

PXLCompressor is a free Joomla! plugin, which allows you to compress and resize every image uploaded with the media manager automatically. This is especially useful if the uploaded images are not preprocessed and allows you to speed up your website drastically.

Features:

  • Automagically resize every image uploaded with the media manager component on the fly
  • Improve page speed by decreasing file sizes
  • Chose a scale method according to your needs (scale inside / outside / fit / fill)
  • Set compression levels for png/jpeg files
  • Supported file formats: JPG, PNG and GIF
  • Create thumbnails

Currently, the following image compression services are supported, but there might be more to come:

  • ReSmush.it: a free image optimization service with unlimited number of compression. It supports the most common file types like (PNG, JPG, GIF, BMP and TIF). However: The JImage class of Joomla! framework does not seem to support TIF, so compression of .tif files is currently not enabled.
    Only downside: the maximum size of a file is 5MB, but if you enable resizing, which is done before, it is very unlikely that you will ever reach this size
  • TinyPNG: the web service allows you to compress your PNG and JPG files. You can subscribe for a free plan enabling you to compress 500 images per month without any charges. Simply fill in your API key to get started.

If you enable both compression services and TinyPNG fails for any reason, ReSmush will be used as a fallback.

It is planned to support local compression using optipng/gifsicle/jpegoptim in later versions.

Special thanks to Viktor Vogel for creating the plugin EIR, from which I took larger parts of the code.

If you found a bug or have a feature request, please file a report on github or leave a comment.

Changelog:

v. 1.0.2 fixed bogus error message
v. 1.0.1 minor Bugfixes

Grab the latest version here: https://github.com/pixelstunde/joomla_plg_pxlcompressor/releases or at JED

Joomla! Blank Template

Als Basis für viele meiner Templates habe ich bis vor kurzem Bloggerschmidts Blank Template benutzt. Da das Ganze aber scheinbar nicht mehr gewartet wird, habe ich mich dazu entschlossen, die Arbeit weiterzuführen. Ich habe das Template ein wenig modernisiert: akutelle Versionen von normalize.css eingebaut, den Code aufgeräumt und bereinigt, diverse CSS-Frameworks wie Bootstrap, Materialize und Skeleton eingebunden etc.

Die aktuelle Version des Blank Templates gibt es hier: https://github.com/pixelstunde/joomla-blank-template

Für Support, Fehlermeldungen und Ähnliches bitte ich darum, den Issue-Tracker auf GitHub zu bemühen.

 

In English:

I’ve been using Bloggerschmidt’s Blank template as a base for my own ones, but since development seems to have stopped, I decided to create a fork and updated the whole thing a bit. Some improvements: current version of normalize.css, cleaned and re-organized code, added some CSS-Frameworks like Bootstrap, Materialize and Skeleton.

Grab the latest version of blank-template here: https://github.com/pixelstunde/joomla-blank-template

Please use the GitHub issue tracker if you found a bug or need support.

Joomla! reCAPTCHA-Plugin in eigene Erweiterungen (Joomla 3/3.5/3.x) einbinden

Kürzlich habe ich ein Kontaktformular-Modul entwickelt, welches ich später noch vorstellen und frei verfügbar machen werde.

Um Spam zu vermeiden wollte ich das Joomla!-eigene Captcha-Plugin nutzen, was sich als gar nicht so einfach herausstellte. In der Dokumentation lässt sich dazu nichts finden. Es gibt zwar einen Thread dazu bei stackoverflow, aber die dort vorgestellte Lösung funktionierte nicht mit reCAPTCHA v2. Das Captcha wurde einfach nicht angezeigt. Also half hier ein Blick in die Datei „/plugins/captcha/recaptcha/recaptcha.php“.

Um das Captcha in eigene Erweiterungen (Komponenten und Modulen) einzubinden sind folgende Schritte nötig:

  1. Laden des Plugins
    JPluginHelper::importPlugin('captcha');
    (JEventDispatcher::getInstance())->trigger('onInit', 'dynamic_recaptcha_1');
  2. Einbinden des Captchas
    echo (JEventDispatcher::getInstance())->trigger('onDisplay', array(null, 'dynamic_recaptcha_1', 'class=""'))[0];
  3. Überprüfen des Captchas
    $res = (JEventDispatcher::getInstance())->trigger('onCheckAnswer',$_POST['recaptcha_response_field']);
    if($res[0]){
        //captcha gelöst
    }
    else{
        //captcha konnte nicht verifiziert werden
    }
    

Joomla Modul – Minimal Responsive Menu

Vorgeschichte: Da unsere Kundenwebsites ausschließlich im responsive Design erstellt werden und oft eigens geschriebene Templates verwenden, habe ich lange Zeit nach einem Modul für die Hauptnavigation gesucht, was folgende Punkte vereint:

  1. Darstellung der Menüeinträge als einfache Liste ohne dutzende Wrapper, wie im Standard Joomla Modul
  2. Einfaches Einbinden eines Modules (nicht noch ein zusätzliches, verstecktes Menü)
  3. Einfache optische Anpassung möglich (ohne große Veränderungen im Modul selbst oder 1000 !important Regeln im CSS)
  4. Geringer Einfluss auf die Ladezeit (wenige Requests, geringe Größe)

Ein fertiges Modul was dem relativ nahe kommt, ist das Menü von TheGrue. Problematisch fand ich daran aber den großen Funktionsumfang. Das Modul ist ready-to-use und bietet viele Anpassungsmöglichkeiten im Backend, zu viele für meinen Geschmack (und das harmoniert nicht mit Punkt 3 in meinen Ansprüchen).

Simple Responsive Menu – Joomla-Modul

Blieb also nur noch der Ausweg selbst ein Modul zu schreiben. Gesagt getan: Ich habe das Standard Joomla Modul (mod_menu) nach meinen Vorstellungen angepasst, ohne dass es sich anders verhält als das Original. Für ein optisch ansprechendes responsive Menü habe ich analog zu TheGrue das jQuery Plugin SIDR benutzt.

Normale Ansicht des Menüs auf einem Desktop-PC
Normale Ansicht des Menüs auf einem Desktop-PC
Mobiles (responsive) Menü geöffnet
Ansicht mit geöffnetem mobilem Menü

Funktionsumfang:

  • Alle Einstellungsmöglichkeiten des klassischen Moduls
  • Breite, ab der das mobile Menü angezeigt werden soll, einstellbar
  • Laden eines einzelnen Moduls für die normale und responsive Navigation
  • Keine versteckten Menüs –  somit barriefrei und suchmascheinenfreundlich, da doppelte Links vermieden werden
  • Geringer Einfluss auf die Ladezeit: 2 Requests, ca. 11,3kb unkomprimiert, kein Abruf externer Dateien. (jQuery muss geladen sein)
  • Das Laden der JavaScript und CSS-Dateien lässt sich in den Einstellungen unterbinden, wenn gewünscht. (Inhalte der Dateien müssen dann ins Template übernommen werden)
  • Einfaches bearbeiten der Optik, da nur wenige Style-Regeln definiert wurden

Das Modul kann hier heruntergeladen werden: mod_simpleresponsivemenu

GitHub und Demo folgen demnächst.

Joomla/WordPress gehackt, was nun?

Vorgeschichte

Neulich stand ich vor der Situation, drei gehackte Joomla Installationen wiederherstellen zu müssen. Die Content-Management-Systeme befanden sich mehr als 1,5 Jahre nach Ende des Supports noch in der Version 2.5.28 und lagen auf dem gleichen Webspace.
Nicht nur, dass sich das Aktualisieren schwierig gestaltete, da der Auto-Updater nicht funktionierte und direkte Updates auf Joomla 3.6 nicht möglich waren, stand ich nun vor der Herausforderung die veränderten Dateien zu finden und zu bereinigen. Der Hack wurde über mehrere Monate nicht bemerkt und das System war zu weiten Teilen infiziert, Backups lagen keine vor.

Eins vorab: Es ist unwahrscheinlich alle kompromittierten Dateien zu finden und es stellt einen großen Aufwand dar. In den meisten Fällen ist es besser, die Software komplett neu aufzusetzen und die Website von Grund auf neu zu erstellen.

Hier möchte ich nun darlegen wie ich zur Bereinigung und Wiederherstellung vorgegangen bin. Gute Dienste haben mir vorwiegend die Tools grep und sed geleistet.  Diese Anleitung lässt sich natürlich auch auf andere Content-Management-Systeme übertragen, ein gehacktes WordPress lässt sich auf die gleiche Art wiederherstellen.

Alle genutzten Tools sind Bordmittel einer jeden vernünftigen Linux-Distribution. Windows Nutzer können ein Live-System, eine Virtuelle Maschine oder ihren Webserver nutzen.

Disclaimer: Obwohl ich im folgenden häufiger den Begriff „Hacker“ benutze, meine ich damit keinesfalls die ethischen Hacker, sondern den umgangssprachlichen „bösen“ Cracker.

Gehacktes CMS wiederherstellen

Schritt 1: Website offline nehmen

Sperren Sie mittels .htaccess oder ähnlicher Methoden sämtliche Verzeichnisse für Besucher oder richten Sie eine Weiterleitung ein. Sie können dazu folgende htaccess-Regeln nutzen:

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !=123.45.67.89
RewriteRule index.php$ /fehler.php [R=301,L]

Ersetzen Sie die IP-Adresse „123.45.67.89“ durch Ihre Eigene. Alle anderen Besucher werden nun auf die Seite „fehler.php“ weitergeleitet.

Schritt 2: Backup der Daten

Nachdem eine Joomla Installation gehackt und dies bemerkt wurde, sollten Sie unbedingt und schnellstmöglich ein Backup der Daten und Datenbank anlegen. Hierzu eignet sich zum Beispiel die Software Akeeba Backup. Bereinigt man die Dateien, ohne vorher eine Sicherung zu erstellen, besteht zu jeder Zeit die Gefahr dass der/die Hacker versuchen alle Ihre Spuren zu verwischen und sämtliche Daten löschen. Auch für eventuelle Strafanzeigen ist es wichtig ein Backup mit allen infizierten Daten zu haben.

Sollte ein Backup der Daten mit Akeeba nicht möglich sein, bleibt noch ein manuelles Sichern über FTP, MySQL, phpMyAdmin o.ä.

Schritt 3: Ändern aller Passwörter

Ändern Sie alle Passwörter. Das beinhaltet Passwörter von Benutzern, FTP Passwörter, SSH Passwörter, MySQL Passwörter etc.

Informieren Sie alle Nutzer über die Probleme und zwingen Sie diese, wenn möglich, ihr Passwort zu ändern.

Schritt 4: Analyse des Schadens

Wie Sieht der Eingeschleuste Schadcode aus?

Möchte man Probleme beseitigen, muss man sie erkennen: der eingeschleuste Schadcode kann die unterschiedlichsten Formen annehmen, ist aber meist auf den ersten Blick ersichtlich. Im Folgenden finden sich ein paar Beispiele. Im Interesse der Sicherheit werde ich hier nur Ausschnitte aus Dateien als Bilder einfügen:

Schadcode 1
Verschleierter Code
Schadcode 2
Schadcode mit Passwort-Login, nur teilweise verschleiert
Schadcode 3
Unlesbarer Schadcode
Schadcode 4
Weiterer verschleierter Schadcode
schadcode5
Kreativer Schadcode mit weiterer „Verschlüsselung“
Fall 1:Backup Vorhanden

Für die Analyse des Schadens sollte man sich viel Zeit nehmen. Sollte die Möglichkeit bestehen die Dateien mit einem Backup vergleichen zu können, bietet sich hier ein rekursiver diff an.

Dafür erstellt man am Besten einen Ordner mit den gehackten Daten, einen Ordner mit dem entpackten Backup und führt folgendes Kommando aus:

diff -r ordner_mit_gehackten_daten/ backup/ | sed '/Binary\ files\ /d' >hacked.txt

In der Datei hacked.txt finden sich jetzt sämtliche Änderungen in allen Unterordnern und Dateien. Anhand der Daten lässt sich eine Beseitigung des eingeschleusten Codes durchführen, auch wenn zwischen Backup und Hack schon Änderungen gemacht wurden.

Fall 2: Kein Backup vorhanden

Hier lässt sich nur manuell prüfen, wo Schadcode eingeschleust wurde. Findet man eine Datei, sollte man versuchen das Muster zu erkennen und sämtliche anderen Dateien nach dem Muster zu durchsuchen. Hierfür nimmt man am besten grep. Dieses Kommando durchsucht alle Dateien und Unterordner des aktuellen Verzeichnisses nach einem gegebenen Muster:

grep -r "Muster" .
Hilfreiche Kommandos um Infizierte Dateien zu finden

Finden die in den letzten n-Tagen verändert wurden:

find . -mtime 0

Dieses Kommando listet alle Dateien und Ordner auf, die in den letzten 24 Stunden verändert wurden. Die Anzahl der Tage lässt sich über den Parameter mtime einstellen.

Finden aller PHP-Dateien die nicht mit einem Kommentar beginnen

In meinem vorliegenden Fall wurde viel Schadcode direkt hinter das PHP-Start-Tag injiziert. Das ergibt natürlich Sinn, denn es ist davon auszugehen, dass die meisten PHP Dateien mit <?php  beginnen und eine blinde Injektion von Schadcode nach diesem Tag geht fast immer gut. Außerdem liegt einem böswilligen Hacker meist nichts daran, den Code zu erklären den er eingeschleust hat 😉 .

grep -rvlz $'^[[:space:]]*<?php\n/\*' --include='*.php' | xargs head -v -n 10 > hacked.txt

Dieses Kommando listet alle php-Dateien auf, die nicht mit einem Kommentar beginnen, gibt die ersten 10 Zeilen der Datei sowie den Dateinamen aus und schreibt alles in die Datei hacked.txt. Vielen Dank an anubhava für den RegEx.

Finden verdächtiger Dateien

Suche anhand verwendeter Funktionen

Auch hier leistet grep wieder wahre Wunder. Durchsuchen Sie Dateien, wie oben beschrieben und prüfen Sie diese auf folgende häufig von Hackern verwendete Funktionen:

  • mail()
  • fsockopen()
  • pfsockopen()
  • stream_socket_client()
  • exec()
  • system()
  • passthru()
  • shell_exec()
  • eval()
  • base64_decode()
  • str_rot13()
  • ord()
  • chr()
  • hexdec()

Eine Suche nach diesen Funktionen wird bei einem Content-Management-System sehr viele Resultate liefern und es ist sehr aufwändig alle zu analysieren.

Auch die Variablen $_COOKIE, $_GET, $_POST und $_REQUEST sollte man auf jeden Fall prüfen.

Häufig findet man auch einen @-Operator in der manipulierten Zeile, der das Logging unterbinden soll.

Gute Dienste leistet in diesem Kontext auch jamms (nicht nur für Joomla!).

Suche anhand von Dateinamen

Oft wählen Angreifer Dateinamen unauffällige Dateinamen die in Log-Dateien nicht auffallen. Prüfen Sie Ihre Unterverzeichnisse auf Dateinamen wie:

  • 404.php
  • admin.php
  • ajax.php
  • cache.php
  • contacts.php
  • controller.php
  • config.php
  • configuration.php
  • css.php
  • defines.php
  • dump.php
  • do.php
  • error.php
  • file.php
  • functions.php
  • global.php
  • help.php
  • list.php
  • model.php
  • index.php (dort wo diese nicht hingehört)
  • solo.php
  • test.php

Die Dateinamen enthalten häufig auch Zahlen. Finden Sie also eine Datei wie index14.php, error26.php oder cache7.php sollte sofort allerhöchste Alarmstufe herrschen.

Schritt 5: Installation von Updates

Installieren Sie alle verfügbaren Updates, prüfen Sie jede Erweiterung von Hand auf neue Versionen. Trennen Sie sich von nicht länger unterstützten Erweiterungen und suchen Sie  Ersatz für veraltete Plugins, Komponenten und Module.

Schritt 6: Analyse der Log-Files

Wird der Angriff zeitnah bemerkt, sollte zunächst versucht werden, den Angriff anhand der Log-Dateien nachzuvollziehen. Dies gibt einen Einblick in eventuell weiterhin vorhandene Sicherheitslücken. Oft sind die problematischen Codezeilen jedoch so gut versteckt, dass der Provider keine Log-Dateien für den Angriffszeitpunkt mehr zur Verfügung stellt. Sind die Hacker nicht auf Daten oder blinde Zerstörung aus, ist Ihnen oft daran gelegen, möglichst unbemerkt zu bleiben um den Server so lange wie möglich nutzen zu können.

Ist der Schadcode (teilweise) beseitigt, ist die Arbeit lange noch nicht getan. Nun heißt es überwachen der Logs und das am besten mehrmals täglich. Eine Anfrage an den Webserver sieht in den Log-Dateien in der Regel wie folgt aus:

173.208.198.50 - - [20/Jul/2016:04:55:42 +0200] "POST 
/modules/modules/modules.php HTTP/1.1" 200 440 "website" "Mozilla/5.0 
(Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0" "website"

Erklärung der Anfrage: Typ der Anfrage, Angefragte Seite der Domain, HTTP Status Code, Größe der Anfrage in Bytes

Interessant sind vor allem POST-Requests die nicht auf die Datei index.php, sondern gezielt auf andere Dateien gehen und mit Status 200 beantwortet werden. Diese Dateien sind in jedem Fall manuell zu prüfen und das nach jeder Anfrage am besten mehrere Wochen lang.

Nach dem Hack ist vor dem Hack

Achten Sie immer darauf, dass System und Erweiterungen stets auf dem neusten Stand sind. Installieren Sie Zusatzsoftware für besseres Logging, zum Schutz gegen Angriffe und zum Prüfen der Datei-Integrität. Und am wichtigsten: erstellen Sie regelmäßig Backups, wenn möglich automatisiert.

Zusammenfassung:

  1. Website deaktivieren
  2. Backup
  3. Passwörter ändern
  4. Schadcode entfernen
  5. Updates installieren
  6. Logs prüfen

Ist das alles erledigt, stehen die Chancen gut, dass die Angreifer in die Flucht geschlagen wurden. Eine Garantie dafür gibt es aber keinesfalls.

Ihre Website wurde gehackt?

Kontaktieren Sie uns mit den Details und fordern Sie eine unverbindliche Beratung an.

Update von Joomla 2.5 auf 3.6

Ich hatte kürzlich das Problem, dass sich mehrere vorher kompromittierte aber inzwischen bereinigte Joomla Systeme (Version 2.5.28) nicht auf eine aktuelle Version bringen lassen wollten. Der übliche Weg über das Umstellen der Langzeit Support Version auf Kurzzeit-Support über die Komponente „Joomla Aktualisierung“ funktionierte nicht. Eine neue Version war angeblich nicht verfügbar. Folgende Meldung wurde angezeigt:

Keine Aktualisierungen verfügbar
Es ist bereits die aktuellste Joomla!-Version 2.5.28 installiert.

Auch ein manuelles Update auf Version 3.6 war nicht erfolgreich. Im folgenden findet sich eine einfache Anleitung wie es trotzdem funktioniert alte Systeme auf den aktuellen Stand zu bringen.

Update von Joomla 2.5.x auf 3.6

  1. Aktualisierung Joomla von 2.5.x auf 2.5.28 auf gewohntem Wege
  2. Aktualisierung des CMS von 2.5.28 auf Version 3.4 über den Erweiterungsmanager mittels Upload dieser Datei 3.4.0-Stable-Update_Package.zip
    Backup: 3.4.0-Stable-Update_Package.zip
  3. Update von Version 3.4 auf eine aktuelle Version (z.B. über die Meldung im Kontrollzentrum)
    joomla update message

 

Welches CMS ist das richtige für mein Projekt?

Unterschiedliche Projekte, unterschiedliche Anforderungen. Im Jungle der Content-Management-Systeme (CMS) kann man als Anfänger ganz schnell verloren gehen. In diesem Artikel möchte ich einige Systeme vorstellen und einen Einblick in die Thematik Content-Management geben.

CMS – was ist das? Brauche ich das?

Als Content-Management-Systeme (zu deutsch: Inhaltsverwaltungssysteme) oder CMS werden Softwarepakete bezeichnet, die den zuständigen Administratoren eine einfache Verwaltung der Inhalte ihrer Website ermöglichen. Texte können damit in den meisten Fällen ohne Programmierkenntnisse und genau so komfortabel wie in einer Textverarbeitung (z.B. Microsoft Word oder LibreOffice Writer) verfasst und geändert werden.
Da den meisten Benutzern diese Systeme vertraut sind, fällt die Bearbeitung der Inhalte leicht und kann schnell vonstatten gehen. Das spart nicht nur Zeit, sondern auch bares Geld: die meisten Änderungen sind so leicht vorzunehmen, dass eine Agentur nach der erstmaligen Einrichtung meist nicht mehr benötigt wird.

Vielleicht wird sich der Eine oder Andere an dieser Stelle fragen: Wenn das alles so einfach ist, kann ich mir dann nicht gleich die Kosten für die Erstellung meiner Website durch eine Agentur sparen? – Diese Frage kann man nur mit „jein“ beantworten. Natürlich ist es möglich: es gibt viele vorgefertigte und kostenlose Themes und Erweiterungen, auch die Konfiguration und Inhalte können selbst erzeugt und übernommen werden. Das Endresultat ist dabei jedoch oft ernüchternd: man sieht, dass Laien am Werk waren. Nicht nur, dass viele Themes mit veralteter Software einherkommen, auch die Konfigurationsmöglichkeiten überfordern Anfänger häufig. Will man ein vernünftiges Endergebnis und auch noch von Suchmaschinen gefunden werden sollte man die Arbeit lieber in professionelle Hände geben und sich die Zeit und Mühe sparen.

Aktuelle Content-Management-Systeme – eine Übersicht

Unter den CMS gibt es große Unterschiede. Einige sind darauf ausgelegt, besonders benutzerfreundlich zu sein, andere glänzen mit einem riesigen Funktionsumfang. Welches Content-Management-System sich für welches Projekt eignet, werde ich in den kommenden Abschnitten beschreiben.

Im Juni 2016 sah die globale Verteilung der Marktanteile laut wappalyzer wie folgt aus:

globale Verteilung der CMS Systeme

  1. WordPress
    Everybody’s Darling – Ursprünglich als Blog-System gedacht, dominiert das sich seit 2003 in Entwicklung befindliche WordPress den weltweiten CMS Markt. Mit einem Anteil von unglaublichen 67 Prozent liegt es auf Platz eins der am häufigsten verwendeten Systeme. Selbst wenn man davon ausgeht, dass drei von vier Websites nur als Blog betrieben werden, liegt WordPress immer noch deutlich vorn. Wie kommt das? WordPress ist nutzerfreundlich und es gibt unzählige Erweiterungen. Aufgrund dessen haben sich viele Freelancer und Agenturen auf dieses System spezifiziert. Dabei wirken die meisten Installationen der Software recht „starr“ in der Struktur und das geschulte Auge erkennt ein WordPress-Systeme meistens auf den ersten (oder zweiten) Blick. Das System eignet sich für kleinere Firmenwebsites mit statischem Layout. Genutzt wird die Software unter vielen anderen von Yahoo!, Digg, eBay, Ford und Samsung – hauptsächlich aber im ursprünglichen Kontext: als Blog.
  2. Joomla!
    Our Darling. Joomla ist historisch gesehen der Nachfolger des CMS Mambo und hat seine Wurzeln damit im Jahr 2000. Seitdem ist viel geschehen: findet man in Foren und Blogs immer noch Einträge darüber dass sich der Umgang mit dem Content-Management-System schwer erlernen lasse, ist es nach unseren Erfahrungen dasjenige, mit dem unsere Kunden am Besten zurechtkommen. Joomla besticht durch seine hohe Flexibilität und belegt hinter WordPress mit ca. 12 Prozent den zweiten Platz im globalen Ranking. Auch für Joomla gibt es eine Fülle kostenloser und kostenpflichtiger Erweiterungen. Das System eignet sich für jede Art von Website, vom Blog über das Firmenportrait bis zum Online-Portal mit mehreren tausend Nutzern pro Stunde. Genutzt wird die Software unter vielen anderen von eBay, IKEA, Sony, McDonald’s und Pizza Hut.
  3. Drupal
    Der dritte Big Player: Drupal steht seit 2001 als Open Source System zur Verfügung. Im deutschen Sprachraum nicht besonders stark verbreitet, eignet es sich besonders für die Erstellung von Plattformen mit Sozialen Komponenten, z.B. Communities. Auch für Drupal gibt es viele Erweiterungen. Das Content-Management ist äußerst flexibel und sehr benutzerfreundlich. Leider wird Drupal häufig unterschätzt und eignet sich ebenfalls wie Joomla für jede Art von Website. Genutzt wird die Software unter anderem von Pfizer, General Electric, ebay, greenpeace und Verizon.
  4. TYPO3
    TYPO3 ist in jeder Hinsicht ein mächtiges CMS. Einerseits das wohl flexibelste Content-Management-System, andererseits sehr groß und ressourcenhungrig. Die immerhin noch zwei Prozent am globalen Anteil kommen zum größten Teil aus Deutschland. TYPO3 wird seit 2001 entwickelt, bezeichnet sich selbst als Enterprise CMS und das ist es auch. Anfängern und kleinen Unternehmen rate ich von diesem System ab, denn egal welche Nutzergruppe, ob Administrator, Editor oder Programmierer – TYPO3 erfordert viel mehr Lernbereitschaft und Einarbeitungszeit als vergleichbare Systeme.
    Anders sieht es beim kleinen Bruder von TYPO3: Neos aus. Dieses CMS besticht geradezu durch seine Nutzerfreundlichkeit. Dadurch, dass Neos aber erst 2011 veröffentlicht wurde und erst 2015 mehr oder minder aus dem Schatten von TYPO3 trat, ist die Nutzergemeinde und damit die Zahl der Erweiterungen noch relativ klein.
    Bekannte Nutzer von TYPO3 sind unter anderen: Penny, Airbus, Lufthansa, Sixt und Leica.
  5. DNN – Dot Net Nuke
    Zu DNN liegen uns noch keine persönlichen Erfahrungen vor, doch im englischsprachigen Raum hat es seit seiner Veröffentlichung Ende 2002 schnell an Anwendern gewonnen. In den letzten Jahren ist der Trend allerdings rückläufig und DNN verliert immer mehr Kunden an TYPO3 und Concrete5. Das CMS hat einen Marktanteil von ca. noch einem Prozent. Im Gegensatz zu allen anderen vorgestellten Softwareplattformen baut DNN nicht auf PHP auf, sondern nutzt (wie der Name schon verrät) das .net Framework von Microsoft. Das System setzt damit auf eine Nische. In Deutschland ist DNN fast gar nicht verbreitet. Geeignet ist das DNN hauptsächlich für größere Unternehmen, welche bestenfalls eine eigene IT-Abteilung und eine bestehende IIS Infrastruktur besitzen .
  6. Contao
    Contao bezeichnet sich selbst als „Barrierefreies Open Source Content Management System“ und befindet sich seit 2006 in der Entwicklung. Barrierefreie Websites lassen sich natürlich mit jedem CMS erstellen. Früher als TYPOlight bekannt, erinnert die seitenbasierte Inhaltserstellung und Bedienung ein wenig an TYPO3. Was macht Contao also so besonders, dass es trotz des Anteils von weniger als einem Prozent am globalen Markt hier noch erwähnt wird? Contao ist in Deutschland relativ weit verbreitet. Contao hat es dank der kleinen aber aktiven Community geschafft sich hierzulande durchzusetzen und ist immer häufiger bei kleinen Firmen und im Bereich Microsites im Einsatz.

Wie sieht also das Fazit aus?

In den meisten Fällen, insbesondere für kleine bis mittelständige Unternehmen, ist die Entscheidung für ein weit verbreitetes CMS wie WordPress, Joomla oder Drupal die richtige Wahl. Für den Fall, dass Probleme auftreten finden sich viele Lehrvideos und Bücher. Auch gibt es hierzulande etliche Agenturen die sich mit diesen Systemen beschäftigen. Man sollte sich dabei für das System entscheiden, mit dem man am besten zurecht kommt. Auf den Seiten der Entwickler finden sich Demos, in denen die Funktionsweise und Bedienung getestet werden kann.
Sind komplexe Websites gefragt, eignet sich, Lernwille vorausgesetzt, auch TYPO3.