© Enkel/Shutterstock.com
Was wir beim Neuschreiben der Benutzeroberfläche von OTRS gelernt haben

Sicherheit in modernen Frontends


Ende 2017 erhielt die Softwareentwicklungsabteilung von OTRS [1] einen Riesenauftrag: Das gesamte monolithische Webapplikations-Frontend sollte mit moderner Technik neu geschrieben werden. Und zwar in einer wiederverwendbaren Weise, durch Bereitstellung eines eigenen Designsystems.

Viele Themen mussten nun angegangen werden, eines davon war die Implementierung moderner Sicherheitsstandards. Da unser Anspruch die Erstellung von hochwertigem und erweiterbarem Code ist, war schnell klar: Jetzt ist die Zeit, früher gemachte Fehler grundlegend zu korrigieren. Hier ging es vor allem um veraltete Ansätze in Code und Architektur und die Einführung eines Security-First-Konzepts in der gesamten Codebasis.

Das alte Frontend war eine CGI-basierte Perl-Applikation, die auf verschiedenen Webservern betrieben werden konnte und für jede Anfrage eine eigene HTML-Ergebnisseite erzeugte. Dabei wurde Template Toolkit [2] für das Frontend-Rendering verwendet, mit Hilfe von etwas JavaScript-Code für bessere Interaktivität; aus heutiger Sicht sehr ineffizient hinsichtlich der „gefühlten“ Performance und auch sehr aufwendig in der Wartung.

Die frühe Festlegung auf eine Single-Page Application (SPA) legte das Ziel fest; der Weg dahin war allerdings lange nicht klar. Letztlich entschieden wir uns für einen neuen internen Perl-Webserver, basierend auf Mojolicious [3], das über REST eine neue, komponentenbasierte Frontend-Applikation bedient, die in Vue. js [4] geschrieben ist. Es sollte ein von Grund auf neuentwickeltes Designsystem erstellt werden, das zukünftige Entwicklungsaufwände reduziert und die Sicherheit insgesamt verbessert.

Auf diesem Weg haben wir einige Lektionen gelernt. Die wichtigsten werden nachfolgend beschrieben. Vielleicht sind einige davon für die zukünftige Erstellung sicherer Frontends auch für Sie hilfreich.

Authentisierung

Sichere Anmeldung ist ein oft übersehenes Feature, das dennoch von den meisten Webapplikationen für ihre Hauptfunktionalität benötigt wird. Bis heute ist es ein Schwachpunkt in vielen Apps. Das vor allem, weil sich die Landschaft ständig ändert und neue Angriffsvektoren praktisch täglich bekannt werden. Hier empfiehlt es sich, ein etabliertes Framework Ihrer verwendeten Programmiersprache einzusetzen. Das ist allerdings nicht immer möglich, da solche Lösungen manchmal nicht flexibel genug sind oder nicht allen Anforderungen entsprechen. Wenn Sie also eine eigene Authentisierungslösung einbauen müssen, finden Sie nachfolgend einige Standa...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang