Vor- und Nachteile einer Individualentwicklung gegenüber OpenSource-CMS – 2

6. Aktuellere Bibliotheken (Libraries) – schönere UI
Durch die Individualentwicklung ist es möglich, aktuellere Libraries und Bibliotheken zu verwenden, als die in einem Open-Source- verwendeten. Dies kommt vor allem durch die klare Abgrenzung der Verwendung dieser Libraries, da die Abhängigkeiten klar definiert sind und nicht etwa diverse hintergründige Verknüpfungen zu Plugins und Erweiterungen berücksichtigt werden müssen. Dadurch ist es möglich, die aktuellste Technologie in der Webseite zu Implementieren, wie etwa Drag&Drop und AJAX basierte Oberflächen.

7. Vorschaufunktion
In unserem CMS gibt es eine Vorschaufunktion, ähnlich wie bei WordPress. Dazu werden betroffene Datensätze in temporäre Tabellen gespeichert, um diese zum Erstellen der Vorschau zur Verfügung zu stellen. Hierfür kommen die selben Funktionen zum Einsatz, wie auch beim anlegen in den regulären Tabellen. Bei WordPress und werden die Vorschau und ältere Versionen in die selben Tabellen gespeichert, wie auch die Live-Daten. Dadurch werden diese ab einer gewissen Große störend, da die Datenbank mehrere Einträge durchsuchen muss, um die benötigten Datensätze wiederzufinden.

8. Bilderverwaltung
Innerhalb des CMS müssen Dateien und Bilder zur Verfügung gestellt werden können. Für den Bilderupload und das erneute auswählen bereits hoch geladener Bilder haben wir einen Mediapool entwickelt. Um die Wiederauffindbarkeit vorhandener Bilder im Vergleich zu TYPO3 zu steigern, haben wir Bilder zusätzlich mit Tags und Kategorie versehen und eine erweiterte Suchfunktion hierfür implementiert. Damit wird gewährleistet, dass der Redakteur das gesuchte Bild schnell findet, ohne den genauen Dateinamen kennen zu müssen. Da Bilder im System aufgrund der Layout-Vorgabe in verschiedenen Größen verwendet werden müssen, haben wir hier ein Tool implementiert, um Bilder bequem per Javascript aus dem Mediapool zuschneiden zu können. Das auf Jcrop basierende Tool wird nach dem Upload bzw. der Auswahl eines Bildes aus dem Mediapool automatisch gestartet. Für den Upload von Dateien haben wir Fine Uploader verwendet, dieser ermöglicht einfaches hochladen per Drag&Drop.

9. API für mobile Anwendungen
Für das Portal werden noch zwei Mobile Anwendungen entwickelt, welche die Inhalte aus dem Webportal beziehen. Diese Anforderung war über die komplexe Templatelogik sehr einfach zu realisieren, da wir diese Anforderung bereits zu beginn der des Portals berücksichtigen konnten. Daten die zur Speisung der HTML-Templates verwendet werden, haben wir direkt als JSON ausgegeben. Dadurch kann die gesamte Seite mit allen Inhalten komplett ohne HTML-Code abgerufen werden und alle weiteren Informationen, wie etwa Links zu weiteren Artikeln oder Bildpfade sind bereits korrekt kodiert und verarbeitet. Diese müssen dann in der mobilen Anwendung nur noch verarbeitet werden. Hierbei haben wir innerhalb der Übergabe der Daten an das Template ein Flag implementiert, damit die Daten für die App-API deaktiviert werden können. Dies betrifft z.B. die Kategorie-Navigation der Webseite. Auf der Webseite werden alle Kategorien im Header verlinkt. Dies ist für Mobile-Apps nicht notwendig, da diese Kategorien lediglich einmal abgerufen und auf dem Smartphone anschließend gecacht werden. Durch das deaktivieren der Kategorien auf jeder Seite und ähnliche Einsparungen konnten wir den Traffic um einen großen Teil reduzieren, wodurch natürlich die mobile Anwendung die Inhalte schneller laden kann.

10. Sicherheitsaspekte
Bei Open-Source-CMS sind die Schwachstellen und Sicherheitslücken öffentlich bekannt. Jeder kennt die Seite für das Backend-Login, und die Standard-Zugangsdaten. Für einige Systeme gibt es frei zugängliche Bots, die per Brute-Force-Attacke versuchen, die Zugangsdaten zu ermitteln. Meist erkennt ein geschultes Auge fertige Systeme durch bloßes ansehen der Webseite. Im Quellcode finden sich oftmals diverse Hinweise auf das zugrunde-liegende System. Beispielsweise anhand der Bildpfade können WordPress, TYPO3 oder andere fertige Open-Source Systeme identifiziert werden. Bei einer Individualentwicklung liegen hier die Vorteile bezüglich Sicherheit auf der Hand: Die Seite für das Login, sowie Schwachstellen des Systems, sind nicht öffentlich bekannt. Zudem gibt es keinen fertigen Bot, der entsprechend generisch arbeitet, um auch eine Individualentwicklung – wie vorangehend beschrieben – zu attackieren.

11. Schreibrechte im Stammverzeichnis (webroot)
Ein großes Sicherheitsproblem in TYPO3-Systemen wird durch die benötigten Schreibrechte innerhalb des Webverzeichnisses verursacht. TYPO3 verwendet einige Ordner, die sich im webroot befinden, um z.B. temporäre Dateien zu speichern und heruntergerechnete Bilder zu cachen. Übersetzungen der Texte, die innerhalb von Extensions Verwendung finden, werden in Webverzeichnissen gespeichert. Zudem benötigt die Installation von Extension entsprechende Schreibrechte. Die Vergabe von Schreibrechten, innerhalb des vom Web erreichbaren Verzeichnisses, ist zudem aus Sicherheitsgründen nicht optimal. Ein Angreifer nutzt eine bekannte Sicherheitslücke im Webserver oder PHP eventuell aus, um ggf. Schadcode in diese Verzeichnisse einzuschleusen. Dies kann stark eingegrenzt werden, wenn der User nur Lesezugriff innerhalb des Webverzeichnisses besitzt.

nächster Teil

Dieser Beitrag wurde unter Sonstiges abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.