Rich Internet Applications
Florian Kelbert|14.02.2008
Inhaltsverzeichnis
I Grundlagen
I Ajax und Mashups
I Adobe Flash-Player
I Adobe Integrated Runtime
I OpenLaszlo
I Microsoft Silverlight
I Mozilla Prism
I Sun JavaFX
I Zusammenfassung & Ausblick
Grundlagen — JavaScript
I Skriptsprache, vom Browser interpretiert
I Sandbox-Modell
I
Skripte werden durch Browser eingeschr ¨ankt
I “Same Origin”-Richtlinie
I
kein Zugriff auf Dokumente aus anderer Domain
I
Uberpr ¨ufung von Domain, Server, Protokoll und Port ¨
I “Signed Script”-Richtlinie
I
Entwickler unterschreibt mit digitalem Zertifikat
I
Verifizierung des Unterzeichners und der Integrit ¨at m ¨oglich
Grundlagen — DHTML, DOM, SSL, HTTPS
I Dynamisches HTML
I
Webseiten ¨andern sich dynamisch im Browser
I
kein erneuter HTTP-Request n ¨otig
I DOM - Document Object Model (W3C)
I
API f ¨ur Zugriff auf HTML-Elemente
I SSL - Secure Sockets Layer
I
verschl ¨usselte Daten ¨ubertragung
I
Authentizit ¨at des Servers und Integrit ¨at der Daten
I HTTPS - HTTP mit SSL
Ajax und Mashups — Grundlagen
I Ajax - Asynchronous JavaScript and XML
I
Kombination aus HTML, DOM, CSS, JavaScript
I
JavaScript-Object XMLHttpRequest f ¨ur Datenaustausch
I
beliebige Formate: XML, HTML, JSON, Plaintext
I
asynchrone Anfragebearbeitung
I Mashup
I
Kombination mehrerer Ajax-Anwendungen
Ajax und Mashups — Sicherheit & Bedrohungen
I JavaScript-Sicherheitsmodell
I Code kann vor Ausf ¨uhrung modifiziert werden
I Bedrohungen
I
Umgehen der “Same Origin”-Richtlinie
I
Cross-Site Scripting (XSS)
I
Versenden von XMLHttpRequests
I
“Denial of Service”-Angriffe (DoS)
I
Cross-Site Request Forgeries (CSRF)
I Gegenmaßnahmen
I
Validieren von Benutzereingaben
I
kein Ausf ¨uhren von generiertem und fremdem Code
Flash-Player — ActionScript & Zugriffskontrolle
I Flash-Player als Laufzeitumgebung f ¨ur SWF-Dateien
I ActionScript
I
basiert auf ECMAScript-Standard
I
als Bytecode innerhalb der SWF-Datei
I Zugriffskontrolle durch vier Personengruppen
I
Administrator des Client-Computers
I
Benutzer des Client-Computers
I
Besitzer der Webseite
I
Flash-Autor
Flash-Player — Sandbox-Modell
I eine Sandbox pro Domain
I
Zuordnung zur Sandbox durch Informationen des Transportprotokolls
I
ungehinderter Datenaustausch und Cross-Scripting innerhalb der Sandbox
I
Zugriff auf andere Sandbox erfordert Rechte:
ActionScript-Methode Security.allowDomain()
I
Senden von Daten an andere Sandboxen erlaubt
I lokale Dateien
I
separate Sandboxen: local-with-filesystem
local-with-networking, local-trusted
Flash-Player — Sandbox-Modell
AIR — Laufzeitumgebung & Sandbox-Modell
I AIR als Laufzeitumgebung
I
AIR-Anwendungen im Flash oder DHTML-Format
I
Installationsdateien m ¨ussen digital signiert sein
I
Ausf ¨uhrung mit Rechten des Benutzers
I Sandbox-Modell des Flash-Players als Grundlage
I
zus ¨atzliche “application”-Sandbox
I
Zugriff auf AIR APIs
I
kein Cross-Scripting
I
kein dynamisch erzeugter Programmcode
I Kommunikation ¨uber Br ¨ucke
OpenLaszlo
I Kompilierung der LZX-Quelldateien
I zwei Zielformate m ¨oglich
I
SWF: Ausf ¨uhrung durch Flash-Player
I
DHTML: Ausf ¨uhrung durch Internet-Browser
I
Sicherheitsrichtlinien entsprechend
I keine weiteren Sicherheitsmechanismen
Silverlight — Laufzeitumgebung & Transparenzmodell
I CoreCLR als Laufzeitumgebung
I Transparenzmodell
I
transparenter und kritischer Code
I
Anwendungen transparent
I
Systemaufrufe kritisch
I
kein Zugriff von transparentem auf kritischen Code
Silverlight — Transparenzmodell
I Transparenzmodell (Forts.)
I
safe-critical Code als Zwischenschicht
I
darf von transparentem Code gerufen werden
I
validiert Aufrufe und leitet sie an kritischen Code weiter
I
kritischer Code von Microsoft signiert
I Vererbung eingeschr ¨ankt m ¨oglich
Prism
I Firefox-Browser ohne Bedienelemente
I jede Webanwendung in eigenem Desktopfenster
I Sicherheitsrichtlinien entsprechend dem Inhalt
I
SWF: Ausf ¨uhrung durch Flash-Player
I
DHTML: Ausf ¨uhrung durch Internet-Browser
I
Silverlight: Ausf ¨uhrung durch CoreCLR
JavaFX
I JavaFX Mobile
I JavaFX Script
I
erm ¨oglicht Verkn ¨upfung von Java mit Skriptsprache
I Ausf ¨uhrung mit Java SE 6 m ¨oglich
I
Java Virtual Machine (JVM)
I
Verifier: schließt nicht-Java-konformen Code aus
I
Class Loader: kontrolliert Laden von Klassen zur Laufzeit
I
SecurityManager: ¨uberpr ¨uft Rechtm ¨aßigkeit der Zugriffe
I
feingranulare Rechtevergabe m ¨oglich:
Codebase, SignedBy, Principal
Zusammenfassung & Ausblick
I Aufbau auf bew ¨ahrten Sicherheitsmodellen
I
Flash: AIR, OpenLaszlo
I
.NET: Silverlight
I
Java: JavaFX
I Rich Internet Applications erst am Anfang der Entwicklung
I