| Webapplikationen mit Unterstützung von XML | |
| Navigation: Inhalt -> Stichwortsammlung | Neues 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 cc | 2003-04-25 |