25.06.2007, 09:45 Uhr

Ajax-Risiken lassen sich eindämmen

Es gibt kaum noch eine moderne Webapplikation, die ohne Ajax auskommt. Doch mit der -Verbreitung der neuen Technik wachsen auch die potenziellen Angriffsmöglichkeiten.
Ajax kann so sicher sein wie eine bisherige Anwendung, wenn man sich an die traditionellen Vorgaben für sicheres Programmieren hält.
Die beiden Autoren sind Security-Consultants bei Symantec.
Mit dem Myspace-Wurm «Samy» wurde vielen Internetbenutzern vor Augen geführt, dass mit Ajax nicht nur Vorteile, sondern auch neue -Sicherheitsrisiken verbunden sind. Samy war der erste offiziell bekannte Wurm auf Basis von Ajax. Er pflanzte sich fort, indem er eine einfache Cross-Site-Scripting-Schwachstelle (XSS) in der für die Benutzerprofile zuständigen Funktion des Webportals ausnutzte.
Der Name Ajax steht für «Asynchronous JavaScript And XML». Schaut man sich die hinter diesen Begriffen stehenden Techniken genauer an, werden rasch die ersten Aus-wirkungen auf die Sicherheit erkennbar: Um die Asynchronität der Kommunikation zwischen Browser und Webanwendung realisieren zu können, wird das -«XMLHttpRequest»-Objekt des Browsers verwendet, das mittels Javascript (wie auch mittels anderer Scriptsprachen wie VB-Script) gesteuert werden kann. Dieses Objekt ist im Internet Explorer vor der Version 7 in Form einer zusätzlichen Aktive-X-Komponente enthalten, während es bei anderen Browsern wie Firefox und Internet Explorer 7 nativ in der Browserengine implementiert ist. Um das XMLHttpRequest-Objekt verwenden zu können, muss in den Sicherheitseinstellungen des Browsers die Ausführung von Javascript erlaubt sein. Diese Einstellung wiederum hat Auswirkungen auf die Gesamtsicherheit des Browsers, denn viele Angriffe gegen Webbrowser basieren auf der Ausführung von Scriptcode. Aus der Sicht eines Unternehmens, das eine Ajax- beziehungsweise Javascript-basierte Applikation betreibt, bleibt hier nur die Möglichkeit, den Webserver in eine vertrauenswürdige Zone des Browsers aufzunehmen. Nur so kann verhindert werden, dass beliebige Webseiten Skripte im Browser des Benutzers ausführen können.

Browser als Desktopprogramm

Unter anderem erfreut sich Ajax deshalb so grosser Beliebtheit, weil es einen Browser in die Lage versetzt, dem Anwender einen ähnlich hohen Bedienkomfort wie eine Desktopanwendung zu bieten. Realisiert wird dies hauptsächlich durch zwei Mechanismen: Zum einen ist die Ajax-Engine (dargestellt durch das XMLHttpRequest-Objekt) in der Lage, im Hintergrund kontinuierlich Daten mit dem Webserver auszutauschen, ohne dass der Benutzer eine Aktion ausführen muss - in der Regel bekommt der Anwender von dem Datenaustausch nicht einmal etwas mit. Dadurch können Inhalte der Web-seite regelmässig ohne Durchführung eines Seitenrefreshs aktualisiert werden. Zum anderen stellen moderne Webbrowser eine komplette Entwicklungsumgebung dar, in der komplexe Anwendungen unter Zuhilfenahme verschiedener Scriptingsprachen realisiert werden können. Dies führt dazu, dass bei der Entwicklung von Applikationen Teile der Anwendungslogik auf den Client ausgelagert werden. Zwar lässt sich dadurch Rechenzeit auf dem Anwendungsserver einsparen, jedoch entsteht ein erhebliches Risiko, wenn man beispielsweise bei der Entwicklung eines Online-Shops die Berechnung des Kaufpreises auf dem Client durchführt.



Das könnte Sie auch interessieren