Vor etwas mehr als zwei Jahren, im November 2017, hatte ich hier im Blog schon mal einen Artikel über mein Nebenbei-Projekt „Site Info Center LIGHT” (SIC) geschrieben. Ein kleines Tool für Webagenturen und -Freelancer zum einfachen Abruf von CMS- und PHP-Versionsnummern der betreuten Websites. Seitdem habe ich hier und da Einiges ergänzt und auch die Anzahl der unterstützten Systeme ist inzwischen gewachsen. Hier nun eine kurze Zusammenfassung der Neuerungen.
Mehr unterstützte CM-, Analyse- und Shopsysteme
In der ersten Veröffentlichung des Codes auf Github, beherrschte der Satellit – das Skript, dass die Versionsinfos an das SIC liefert – 14 verschiedene CM-Systeme; Systeme mit denen ich in den letzten knapp 10 Jahren meiner beruflichen Tätigkeit zu tun hatte und habe – darunter z.B. WordPress, MODX Revolution, ProcessWire, WBCE und Joomla!. Inzwischen unterstützt der Satellit aber auch die Abfrage von Nextcloud, PIWIK/MATOMO-Installationen, JTL-Shop und – seit heute – auch modified eCommerce Shopsystemen. Zugegeben, dass sind nur vier Systeme mehr als vor zwei Jahren aber ich ergänze die ja nur so, wie ich selber Bedarf dafür habe. Es macht mir zwar Spaß, herauszufinden wie man möglichst effizient und zuverlässig quasi von außen an die Versionsnummer kommt aber meine Zeit ist natürlich begrenzt. Die vollständige Liste aller unterstützten Systeme pflege ich im Github-Repository.
Suche und Filter
Beim Aufruf des SIC im Browser werden die Werte der letzten Alle-Abfragen-Aktion (Refresh all) angezeigt. Diese Ansicht kann inzwischen nach eingesetztem System gefiltert werden und durch die Integration von Datatables ist die Liste jetzt sortier- und durchsuchbar. Gefilterte Seiten können nun auch alle mit einem Mal abgefragt werden (Refresh filtered).
Schnellere Sammelabfrage
Außerdem habe ich die Funktion zum Abfragen aller Sites so geändert, dass diese nicht mehr sequentiell sondern parallel abgefragt werden. Damit ist die Aktualisierung der Liste deutlich schneller als noch in der Version von 2017.
Allerdings muss ich einräumen, dass das noch nicht ideal ist: Die parallele Anfrage bzw. das parallele Ausführen der entsprechenden Javascript-Funktionen beeinträchtig bei einer großen Anzahl von Sites die Performance des Browsers – sprich: Das UI friert für (ganz) kurze Zeit ein wenn man den Refresh-all-Button betätigt. In meinem Fall, bei aktuell 89 Sites, ist das etwa eine Sekunde. Keine große Sache aber auf jeden Fall optimierungsbedürftig. Generell möchte ich den über die Jahre gewachsenen Code mal grundlegend überarbeiten und dabei auch eine Möglichkeit der Begrenzung der parallelen Anfragen einbauen. Aber ihr wisst schon: Meine (Frei)zeit ist begrenzt. Habe ich aber jedenfalls auf dem Schirm.
Wieso eigentlich das Ganze?
Im Jahre 2014 oder 2015 gab es mal eine kritische Sicherheitslücke in einem von mir eingesetzten CMS, welche jedoch nur bei ganz bestimmten CMS- und PHP-Versionen ausgenutzt werden konnte. Damals gab es SIC noch nicht und ich musste daher bei jeder einzelnen Website der vorausgegangenen Jahre manuell nachschauen, ob sie von der Lücke betroffen ist. Allein das hat etliche Stunden gekostet.
Danach bin ich dazu übergangen, CMS- und PHP-Versionen in einer Excel-Liste zu pflegen und bei Updates stets zu aktualisieren. Allerdings war das mit der Aktualisierung der Liste bei Updates so eine Sache: Während CMS-Updates i.d.R. von mir durchgeführt werden, kann sich die PHP-Version auch mal ohne mein Zutun ändern – etwa wenn der Auftraggeber Mails über die Abschaltung alter PHP-Versionen ignoriert und der Hoster automatisch auf eine höhere Version umstellt. Daher war diese List immer nur annähernd aktuell und damit dem eigentlichen Zweck nicht wirklich dienlich.
Genau diesen Anwendungsfall, schnell aktuelle Werte der betreuten Websites zu bekommen – und diese auch in einer Historie zu speichern – bedient das „Site Info Center LIGHT” und darum ist das Projekt 2017 entstanden. Aus ganz persönlichem Bedarf.