Ich experimentiere seit einiger Zeit hin und wieder mit JavaScript-Frameworks wie Angular.js oder Ember.js. Darin kann man mittlerweile komplette MVC-Anwendungen schreiben, die komplett im Browser laufen können und ggf. höchstens noch per JSON/XML mit einem Server-Skript zur persistenten Datenspeicherung kommunizieren müssen. (Wobei auch das teilweise schon lokal geht.)
Ein interessanter Aspekt, der mir heute Abend bei einem Gespräch auf dem Angular.js-Meetup gekommen ist: Es gibt einen Trend, immer mehr Logik in das Frontend (→ Browser) zu verschieben.
In den meisten Webanwendungen wird derzeit die meiste Logik im Backend in einer eigenständigen (Skript-) Sprache geschrieben und daraus HTML-/JS-/CSS-/usw.-Code erzeugt und vom Browser gerendert. Zwar wird die Darstellung zwar oft noch per JavaScript gerendert, aber die wesentliche Logik liegt im Backend.
Die JavaScript-Frameworks laufen dagegen vollständig im Browser ab. Daraus folgt dann aber auch, dass die gesamte Logik öffentlich wird. Jeder kann sich im Browser durch die JavaScript-Dateien hangeln, die komplette Logik nachvollziehen, auf Schwachstellen analysieren und gar komplett herunterladen, verändern und woanders manipuliert hochladen.
Das eröffnet nebenbei völlig neue Möglichkeiten zum „Plattformklau” oder zu Angriffen, bei denen man nicht mal mehr andere Seiten nachbauen muss, weil man sie komplett auf einen eigenen Server kopieren kann. Schnell noch eine Vertipper-Domain registrieren und dann mal schauen, wer sich so anmeldet. Die Anmeldedaten kann man dann auch gleich speichern, um damit auf der richtigen Plattform fremde Nutzerkonten übernehmen zu können.
In diesem Zusammenhang lohnt sich auch ein Blick auf die Seite nobackend.org, auf der bereits Ideen und Lösungen gesammelt werden für eine Welt, die vollständig ohne Backend auskommt.
Die Idee finde ich für einige Anwendungsfälle ganz interessant und ich werde das auch weiterhin beobachten. Aber es fühlt sich irgendwie komisch an, eine Plattform so leicht komplett kopieren zu können. Vielleicht bin ich da aber auch nur zu voreingenommen, weil ich es bisher anders nicht kenne. Mal schauen, wie sich das entwickelt.
Den Trend beobachte ich auch und denke dass es für eine Vielzahl von Web Apps sinnvoll ist und deren Performance erhöht. Von den Sicherheitsaspekten her sind diese Web Apps dann ja im Prinzip Open Source Software mit den dazugehörigen Vor- und Nachteilen.
Und danke für den Hinweis auf nobackend.org, die Seite kannte ich noch nicht, wohl aber einige Projekte/Ideen die dort verlinkt sind (remotestorage und unhosted).
Hier noch ein paar interessante Gedanken zu dem Thema: http://www.windley.com//archives/2014/02/fargo_and_personal_cloud_application_architectures.shtml