ActiveX im Web-Browser Vortrag von Jens Freisen zum Seminar 3D-Grafik im Web (Prof. Dr. Gitta Domik, Dipl. Inf. Frank Götz, WS 2002/2003) Übersicht ActiveX Was ist das überhaupt? historischer & technischer Überblick ActiveX-Komponenten ActiveX-Steuerelemente Sicherheit Einbindung in den Web-Browser Beispiele Einleitung 2
ActiveX Was ist das? Kaum jemand hat konkrete Vorstellungen von ActiveX Microsoft sagt: Charlie Kindel (Architect & Chief Technical Advisor Microsoft Developer Relations Group) A marketing name for a set of technologies and services, all based on COM Gut, aber was ist COM? Deswegen: Geschichtsstunde Geschichte 3 Thosewerethedays In den frühen 80ern: jede Anwendung mit eigenen Dokumenten keine Austauschbarkeit der Daten Anwendungszentriert Also hin zum dokumentenzentrierten Ansatz! Geschichte 4
Erste Schritte DDE (Dynamic Data Exchange, 1987) erste Möglichkeit für Anwendungen zur Kommunikation Anwendungen konnten Daten und Befehle austauschen Aber: beschränkt und instabil wenig standardisiert noch immer anwendungszentriert Geschichte 5 OLE 1.0 (1992) OLE (Object Linking and Embedding) verschiedenartige Objekte in einem Dokument direkt eingebunden keinerlei Konvertierung War seiner Zeit voraus sehr hoher Speicherbedarf, diverse Anwendungen mussten parallel im Speicher gehalten werden Geschichte 6
OLE 2.0 (1993-1995) keine einzelne Technologie, sondern eine Sammlung von Technologien OLE 2.0 behandelt Objekte, die dem Component Object Model (COM) Standard unterliegen COM-Standard definiert, wie Objekte untereinander kommunizieren OLE 2.0 ist echt dokumentenzentriert Kann unbekannte Objekte darstellen Kann unbekannte Objekte manipulieren Kann Drag&Drop für unbekannte Objekte durchführen Kann Dokumente mit verschiedensten Objekttypen laden & speichern Geschichte 7 COM-Objekte COM-Objekt: kann (muss aber nicht) die verschiedensten Interfaces für die unterschiedlichen Aufgaben implementieren, z.b.: IViewObject2 zum Anzeigen des Objekts ( this ) IStream um seine Daten in einen Stream zu schreiben muss das Interface IUnknown implementieren. Es enthält die Funktionen: AddRef Release QueryInterface Technik 8
COM-Objekte (Fortsetzung) Reihenfolge des Aufrufs: Aufruf von AddRef Der Referenzzähler wird um 1 erhöht Aufruf von QueryInterface Das Objekt liefert die von ihm implementierten Interfaces Bei Terminierung: Aufruf von Release Der Referenzzähler wird um 1 erniedrigt Technik 9 COM-Objekte (Fortsetzung) Identifikation von Interfaces über GUID (Globally Unique Identifier) z.b. für das Interface IUnknown: {00000000-0000-0000-C000-000000000046} DCOM (Distributed COM): DCOM-Objekte können beliebig in Netzwerken verteilt sein Technik 10
Und was ist nun ActiveX? ActiveX ist OLE! Alle ActiveX-Komponenten beruhen somit auf dem COM-Standard Es ist wirklich exakt OLE, reine Umbenennung Umbenennung erfolgte 1996 Gründe? Firmenpolitik Marketing ActiveX als Internet-Technologie Technik 11 ActiveX-Komponenten ActiveX umfasst diverse Komponenten: ActiveX-Code-Komponenten Hauptsächlich für die Entwicklung wiederverwendbaren Codes gedacht (Funktionsbibliothek) ActiveX-Dokumente Internet-Komponenten (Serverseitig) ActiveX-Steuerelemente / ActiveX-Controls Technik 12
ActiveX-Dokumente Dienen hauptsächlich der An Ort und Stelle - Bearbeitung von Objekten Beispiel: Word-Dokument im Internet-Explorer Am häufigsten im WWW anzutreffen: ActiveX-Steuerelemente / ActiveX-Controls Technik 13 ActiveX-Steuerelemente Java-Applets auf Microsoft schnell durch direkten Systemzugriff läuft innerhalb eines Containers (Internet Explorer, Office, VisualBasic, Visual C++, ) Sicherheit? Technik 14
Sicherheit von ActiveX- Steuerelementen Es existieren zwei grundverschiedene Konzepte Sandbox-Prinzip Anwendungen laufen in einem abgeschotteten Bereich, ohne direkten Zugriff auf das System Anwendungen können somit keinen Schaden verursachen Vertrauensprinzip Anwendungen dürfen alles Anwender muss dem Entwickler vertrauen und die Ausführung der Anwendung erlauben Microsoft verfolgt den zweiten Ansatz Sicherheit 15 Sicherheit: Vertrauensprinzip Signaturen ermöglichen zweifelsfreie Ermittlung der Herkunft der Anwendung Der Anwender muss dem Autor vertrauen Microsoft: Alltägliche Situation im Umgang mit dem Computer, Anwender muss bei jeder Softwareinstallation dem Entwickler vertrauen (Ein) Problem: IE führt standardmäßig die meisten ActiveX-Controls ohne Nachfrage aus Autoren der Software können ihr ActiveX-Control als sicher kennzeichnen Sicherheit 16
Wie sicher ist sicher? Autoren können ihre ActiveX-Controls kennzeichnen: Sicher für die Initialisierung Wenn das Control trotz beliebiger (auch fehlerhafter) Eingaben während der Initialisierung das System nicht schädigt Sicher für das Skripting Wenn das Control [ ] während der Ausführung das System nicht schädigt Aber: Dies liegt im Ermessen des Entwicklers! Sicherheit 17 Integration in den Browser (1) Integration erfolgt mit Hilfe des Object-Tags: <OBJECT ID="dwBanner1" WIDTH=324 HEIGHT=49 CLASSID="CLSID:63B8AF4F-8E9A-11D0-91BB-00AA0036005A" CODEBASE="dwBanner.CAB#version=1,0,0,15"> <PARAM NAME="_ExtentX" VALUE="8573"> <PARAM NAME="_ExtentY" VALUE="1296"> <PARAM NAME="BackColor" VALUE="16777088"> <PARAM NAME="BorderStyle" VALUE="1"> <PARAM NAME="ScrollIncrement" VALUE="3"> <PARAM NAME="ScrollText" VALUE="Visit Desaware's Web site at http://www.desaware.com The coolest tools for VB/VBA developers. "> <PARAM NAME="XMargin" VALUE="20"> <PARAM NAME="YMargin" VALUE="6"> </OBJECT> Integration 18
Integration in den Browser (2) Internet Explorer ist Container für das ActiveX- Steuerelement Steuerelement hat eigenes GUI innerhalb des Container-Fensters Steuerelement kann/muss mit dem Container kommunizieren Beispiele Windows Media-Player Arctic-Pigs 3D-Control Integration 19 That s all folks! Vielen Dank für die Aufmerksamkeit! 20
Quellenangaben Dan Appleman - Developing ActiveX Components with Visual Basic 5.0. Ziff Davis Pr; ISBN: 1-562-76510-8 Weiying Chen ActiveX Programming Unleashed. ISBN 1-575-21154-8; 1st edition (December 1996) Microsoft MSDN-Library (http://msdn.microsoft.com/library/) Chappell, David. Understanding ActiveX and OLE. Redmond, WA: Microsoft Press, 1996. ISBN 1-572- 31216-5. 21