Webapplikationen mit Unterstützung von XML 
Navigation: Inhalt -> StichwortsammlungNeues und Änderungen

Stichwortsammlung


1 Einleitung

- Begriffserklärungen, Motivation, zu klärende Aspekte, Ziele
- Was ist Webapplikation: OWASP PDF: OWASPGuideV1.1.1.pdf


2 Grundlagen und Voraussetzungen



2.1 Geschichtliches und Entwicklung



2.1.1 Entwicklung von Computeranwendungen

- Client-Server Modell, Leistungsfähige Server, 'dumme' Terminals
- Personal Computer: Dezentralisierung, Standalone-Anwendungen
- jetzt wieder: Client-Server


2.1.2 Von GML zu XML

- GML, SGML, HTML, XML, XHTML, W3C, ISO, Cern


2.2 Einführung in XML

- DTD, Schemata, Namensräume, XPath, XLink, XPointer, RDF, XSL, XSLT, DOM, SAX, Stylesheets, SOAP, Webservices
- Standards: Versionen, Stand, proprietäre Erweiterungen
- Trennung von Datenstruktur und Darstellung, Datenaustausch
- Schnittstellen zu anderen Anwendungen bzw. Standards: EDI, EDIFACT, StarOffice, MS-Office, ...
- Encoding: Unicode, ISO, Zeichensätze, Sprachen, Sortierung



2.2.1 XML - Extensible Markup Language


2.2.2 DTD - Document Type Definition


2.2.3 Namensräume


2.2.4 XML-Schema


2.2.5 DOM und SAX


2.2.6 CSS und XSL


2.2.7 Linking und Querying


2.2.8 XML-RPC, SOAP und Web Services


2.2.9 Weitere XML Standards


2.2.10 Stärken von XML


2.2.11 Nachteile von XML


2.3 Verteilte Computersysteme



2.3.1 Datenbestand: Zentral oder lokal?

- Vorteile, Nachteile, Sicherheitsaspekte, Verfügbarkeit, Skalierbarkeit


2.3.2 Anwendungsprogramm: Zentral oder lokal?

- Vorteile, Nachteile, Sicherheitsaspekte, Verfügbarkeit, Skalierbarkeit


2.3.3 Datenbestände und Anwendungen verteilt auf mehrere Standorte


2.3.4 Internet- und Intranet-Applikationen

- Unterschiede (Sicherheit, Homogenität)
- Applikation Service Providing (ASP)
- Eigene Daten auf fremden Systemen


2.4 Server für Webapplikationen



2.4.1 Allgemeines

- Arbeitsaufteilung, Clustersysteme, 2 - N-Tier-Systeme


2.4.2 Datenbank Server-Programme

- Oracle, IBM DB2, MS-SQL-Server, mSQL, ...
- Geschwindigkeitsvergleiche: PHP-Magazin S103
- Architekturen, Schnittstellen: ODBC, ...
- XML-Schnittstellen: Oracle XDB,


2.4.3 Datenbanken und XML


2.4.4 Webserver-Programme

- Apache, MS IIS, Netscape httpd, Roxen, ...
- Architekturen, Ausfallsicherheit, Verteilung,
- Programmierbarkeit: CGI/Perl, PHP, ASP,
- XML-Schnittstellen: The Apache XML Project,


2.4.5 Programmierumgebungen für Webapplikationen

- CGI: Perl, C, Scripts, ...
- JSP, ASP, ASP.NET, PHP, PL/SQL, Cold Fusion, ...


2.5 Clients für Webapplikationen

- Mobile Clients!



2.5.1 Rechnerarchitekturen und Betriebssysteme

- PC, Mac, Workstation, Thin Client; Unix/Linux, MS Windows, MacOS, BeOS, ...
- Anschaffungskosten, Wartungskosten; Inkompatibilitäten


2.5.2 Webclients

- Internet Explorer, Netscape, Opera, ...
- Versionen, Kosten, Inkompatibilitäten; HTML, CSS und XML Konformität
- Inkompatibilitäten und deren Umgehungsmöglichkeiten
- http://www.webreference.com/stats/browser.html
- http://meta.rrzn.uni-hannover.de/browser.html
- http://www.ews.uiuc.edu/bstats/latest-month.html


2.6 Sicherheitsaspekte und Verfügbarkeit



2.6.1 Allgemeines


2.6.2 Secure Socket Layer und Transport Layer Security

- Sichere Verbindung zwischen Webserver und Webclient.
- Sicherheit, Performanzverluste


2.6.3 Virtual Private Network (VPN)

- Sichere Verbindung von zwei LANs oder eines LAN und einem Rechner über das Internet
- Sicherheit, Performanzverluste


2.6.4 Verfügbarkeit

- von Server: Redundanz-Systeme, DB-Replikation
- von Intranet, und Internet.
- Abschätzen des Resourcen-Verbrauchs: CPU, Memory, Discspace, Traffic (Buch: Webapplication Development, S. 161)
- Hot Spots - Teile die Resourcen-Intensiv sind, identifizieren und eventuell Prototypen entwickeln


2.6.5 Geschwindigkeit


2.6.6 Backup

- Zentrales Backup einfacher
- Bei Verlust der Daten größerer Schaden


3 Webapplikationen



3.1 Beispiele von Webapplikationen

- Web-Mailer (Hotmail, GMX, ..)
- Online-Shops (Amazon, Lion.cc, ...)
- Accountverwaltung (bei Provider, Suchmaschinen, Online-Shops)
- Terminkalender
- ebay


3.2 Softwareentwicklungsprozess

- Anforderungsanalyse, Analyse, Design, etc.. Siehe Softwareengineering
- Unbekannte User
- Prototyping
- Hot Spots
- Datenbank-Design
- Business Logic verstecken
- Trennung von Code und Layout - Templates



3.2.1 Definierter versus breiter, unbekannter Benutzerkreis


3.2.2 Einsatz von Prototypen


3.2.3 "Hot Spots"


3.2.4 Datenbank Design


3.2.5 Schützen des Quellcodes bzw. der Programmlogik


3.2.6 Trennung von HTML-Code und Programmcode


3.3 Usability



3.3.1 Usability bei Webseiten


3.3.2 Usability bei Webapplikationen

- Forumlare: Tastatur (Tab) http://www.useit.com/alertbox/990530_comments.html, Keyboard Efficiency


3.3.3 Konkrete Usability-Kriterien für Webapplikationen


3.4 Webapplikationen im Detail



3.4.1 Allgemeines

- Probleme bei Webapplikationen:
- Einschränkungen durch HTML-Formulare nur Textboxen, Radiobuttons, Checkboxen und Auswahlfelder
- Browser: Back und Reload-Button -> Datenkonsistenz Cacheprobleme
- HTML: Stateless: Ungenügende Informationen über Weg durch die Seiten
- Kein Nachladen von Daten
- Kein Automatisches Speichern: Datenübertragung nur via Link (Querystring) und Druck auf Formularbutton.
- Geschwindigkeit


3.4.2 Datenübertragung zwischen Client und Server

- HTML GET, HTML POST, Formulare, Url-Paramter, Formular-Daten, HTML-Protokoll
- Kein Nachladen von Daten, immer nur ganze Seite? (Hierarchische Auswahlboxen)
- Kein automatisches Speichern (Abfragen via Javascript)


3.4.3 Daten Push

- Automatische Daten-Aktualisierung am Client (Auto-Reload, )


3.4.4 HTML-Formulare

- Einschränkungen: nur Textboxen, Radiobuttons, Checkboxen und Auswahlfelder
- Möglichkeiten, Hidden Fields
- Default - Werte: Sichere Einstellungen


3.4.5 Benutzerauthentifizierung

- Cookies, Sicherheitsaspekte


3.4.6 Autorisation


3.4.7 Statusloses HTTP

- Keine Statusinformationen in HTML verfügbar
- Statusinformationen in Urls


3.4.8 Sitzungsmanagement

- Cookies, Sicherheitsaspekte
- Webserver
- Urlkodierung der SessionIDs Sicherheitsaspekte
- Problem mit externen Links und deren Vermeidung
- Cookies am sichersten: http://www.acros.si/papers/session_fixation.pdf. S.2 oben


3.5 Sicherheitsrisiken bei Webapplikationen

- Wichtigstes: Alle vom Benutzer manipulierbaren Daten überprüfen.
- Query-String: Manipulationen, Fehler, Firmendaten auslesen
- User-Daten: Ausführen von Systemprogrammen, Schreiben in Dateien/HTML, Programmcode
- Datei-Upload: Scripts
- XSS: Cross Site Scripting
- SQL-Injection
- Formular-Elemente austauschen
- Cookies: http://www.w3.org/Security/Faq/wwwsf2.html#CLT-Q10
- Shell Commands: http://www.devshed.com/Talk/Books/ProPHP/page8.html
- Authentication: Zeit zwischen Login-Versuchen
- Fremde Applikationen, eigene Applikationen: Kommentare entfernen
- Error Messages: No Output, but Logging
- Forumlare: POST, Nicht GET
- Error-Handling: Keine Infos für Angreifer
- Access Control and Authorization: Guide 1.1.1 S. 34
- Logging: S. 37
- SQL-Injection: S. 45, Parametrizieren
- Config-Files out of WWW-Root
- Alte Dateien entfernen
- Null Byte
- Comments: S. 50
- Include Files: Schaden
- No Obscure, Secrete Algorithms



3.5.1 Allgemeine Sicherheitsprobleme


3.5.2 Authentifizierung und Sitzungsmanagement


3.5.3 Manipulierbare Eingabedaten


3.5.4 Sichere Verarbeitung der Eingabedaten


3.5.5 Dateien per HTML-Formular auf den Server laden


3.5.6 Manipulationen erkennen


3.5.7 Daten verschlüsseln


3.5.8 Verwendung von IDs und automatisierter Datendiebstahl


3.5.9 Protokollieren von Aktivitäten


3.5.10 Fehlermeldungen


3.5.11 Kryptographie


3.5.12 Eingebundene Quelltextdateien


3.5.13 Verschiedene weitere Sicherheitsrisiken


3.5.14 Verhalten beim Entdecken von Sicherheitslücken


3.5.15 Testen von Webapplikationen auf Sicherheitslücken


3.5.16 Literatur zum Thema Sicherheit bei Webapplikationen


4 Webapplikationen und XML

- XHTML: Besser als HTML
- XSP: Extensible Server Pages: Java, XSL(T), Cocoon. Siehe: c't 2000/10 S. 222
- Client - Server: Wo bzw. wann XSL anwenden, Performance, Flexibilität, Sicherheit, Privacy (man will nicht den ganzen Markup veröffentlichen.)
- Web Services viel einfacher und schneller zu Implementieren als CORBA, EDI/EDIFACT, ... c't 6/2002, 240, Interview
- Configurations-Files



4.1 XHTML und andere W3C-Standards für Webseiten



4.1.1 XHTML


4.1.2 XForms


4.2 XML für den Datenaustausch oder die Kommunikation


4.3 Webservices


4.4 Trennung von Datenstruktur, Daten und deren Darstellung


4.5 Verwendung von XML-basierten Datenformaten


5 Folgerungen



5.1 Vorteile von Webapplikationen

- Webapplikation von überalle zugreifbar, mit verschiedenen Clients



5.1.1 Universelle Verfügbarkeit


5.1.2 Plattformunabhängigkeit


5.1.3 Geringe Anforderungen an den Client


5.1.4 Geringer Installations- und Wartungsaufwand beim Client


5.1.5 Skalierbarkeit


5.1.6 Einheitliche Standards


5.1.7 Einfache Entwicklung


5.1.8 Kosten


5.1.9 Weitere Vorteile


5.2 Nachteile von Webapplikationen



5.2.1 Eingeschränkte Benutzerschnittstelle


5.2.2 Geringere Geschwindigkeit


5.2.3 Ungeeignet für große Datenmengen


5.2.4 Bedingte Interaktivität


5.2.5 Keine lokalen Daten - Daten auf fremden Servern


5.2.6 Sicherheit


5.2.7 Verfügbarkeit


5.2.8 Webstandards ursprünglich nicht für Anwendungen gemacht


5.2.9 Browserinkompatibilitäten


5.3 Geeignete und ungeeignete Anwendungstypen



5.3.1 Geeignete Anwendungstypen


5.3.2 Ungeeignete Anwendungstypen


6 Zusammenfassung und Ausblicke

- Zusammenfassung, Schlusswort



6.1 Zusammenfassung


6.2 Ausblicke



Anhänge



A Literaturverzeichnis


B Verzeichnis der Akronyme


C Verzeichnis der Beispiele


D Abbildungsverzeichnis


E Tabellenverzeichnis


F Metadaten

- Beschreibung der verwendeten Dokumente und Tools zum Erstellen dieser Arbeit

Zum Seitenanfang diplomarbeit_o a-t schmiderer d-o-t cc2003-04-25