Walter Marc.Pdf
Total Page:16
File Type:pdf, Size:1020Kb
Fachhochschule Köln University of Applied Sciences Cologne Campus Gummersbach Fakultät für Informatik und Ingenieurwesen Fachhochschule Dortmund Fachbereich Informatik Verbundstudiengang Wirtschaftsinformatik Diplomarbeit (Fünf-Monats-Arbeit) zur Erlangung des Diplomgrades Diplom-Informatiker (FH) in der Fachrichtung Informatik „Sicherheitsrisiken bei datenbankgestützten Webanwendungen am Beispiel der Konzeption und Entwicklung eines Tippspiels“ Erstprüfer Prof. Dr. Heide Faeskorn-Woyke Zweitprüfer Prof. Dr. Erich Ehses vorgelegt am 29. Dezember 2006 van cand. Marc Walter aus Newtonstr. 6 53125 Bonn Telefon 0228/6200999 E-Mail [email protected] Matrikelnummer 11030495 Seite 2 Inhaltsverzeichnis Abbildungsverzeichnis.......................................................................... 4 Tabellenverzeichnis...............................................................................5 Abkürzungsverzeichnis......................................................................... 6 1 Einleitung........................................................................................... 7 1.1 Thema der Arbeit........................................................................8 2 Vorbereitungen.................................................................................10 2.1 Datenbankmodell......................................................................11 2.2 Software-Komponenten............................................................12 2.3 Installation von XAMPP.......................................................... 13 2.4 Passwortsicherheit.................................................................... 16 2.5 Zugriffskontrollmechanismen.................................................. 21 2.6 Datenbank-Einrichtung.............................................................21 3 Grundlagen....................................................................................... 26 3.1 GET und POST.........................................................................27 3.2 Cookies und Sessions............................................................... 29 3.3 Session-Hijacking.....................................................................31 3.4 Cross-Site Scripting..................................................................33 4 Implementierung.............................................................................. 38 4.1 Registrierung............................................................................ 38 4.1.1 Datenbankinformationen sichern......................................46 4.2 Login.........................................................................................47 4.2.1 SQL-Injection................................................................... 50 4.3 Logout.......................................................................................59 4.4 Passwort ändern........................................................................60 4.5 Hauptseite................................................................................. 64 4.6 Tippabgabe............................................................................... 71 4.7 Tippanzeige.............................................................................. 78 4.8 Einstellungen............................................................................ 83 4.8.1 Passwort ändern................................................................ 83 4.8.2 E-Mailadresse ändern....................................................... 83 4.8.3 Teilnahme beenden........................................................... 86 4.9 Administration..........................................................................88 4.9.1 Administrationsseite......................................................... 90 4.9.2 Rennergebnis eintragen.....................................................94 4.9.3 Punkteberechnung ausführen............................................97 5 Regeln für sichere Webanwendungen..............................................99 5.1 Hacker sind clever.................................................................... 99 5.2 Software aktualisieren.............................................................. 99 5.3 Bewusste Programmierung.....................................................100 5.4 Niemals Subsystemen vertrauen.............................................100 5.5 POST ist sicherer als GET......................................................100 5.6 Passwörter nicht im Klartext speichern..................................101 5.7 Starke Passwörter verwenden.................................................101 5.8 Keine Standard-Zugänge benutzen.........................................101 5.9 Nur Rechte vergeben, die benötigt werden............................ 102 Seite 3 5.10 Eingaben validieren.............................................................. 102 5.11 Neutrale Fehlermeldungen................................................... 103 5.12 Metazeichen maskieren........................................................ 103 5.13 Informationen verbergen...................................................... 104 5.14 Sauberes Sessionhandling.....................................................104 5.15 Logging verwenden.............................................................. 104 6 Zusammenfassung..........................................................................105 6.1 Social Engineering..................................................................106 Literaturverzeichnis...........................................................................108 Anhang A - Fachkonzept...................................................................111 A.1 Registrierung..........................................................................111 A.2 Verifizierung..........................................................................111 A.3 Erstes Login...........................................................................111 A.4 Tippabgabe............................................................................ 112 A.5 Plausibilisierung.................................................................... 112 A.6 Logout....................................................................................112 A.7 Rennergebnis......................................................................... 112 A.8 Punkteberechnung..................................................................112 A.9 Gesamtwertung......................................................................113 A.10 Einstellungen....................................................................... 113 A.11 Sicherheit............................................................................. 113 Anhang B - Datenbankmodell...........................................................114 Anhang C - CREATE Statements..................................................... 115 Seite 4 Abbildungsverzeichnis Abbildung 1: Der XAMPP-Programmstarter......................................13 Abbildung 2: Aufruf des Webservers..................................................14 Abbildung 3: Teile von XAMPP sind nach der Installation unsicher.15 Abbildung 4: Passwortprüfung bei GMX........................................... 20 Abbildung 5: Browser/Server-Kommunikation.................................. 26 Abbildung 6: Sicherheitscode bei GMX............................................. 39 Abbildung 7: Validierung der Benutzereingaben................................42 Abbildung 8: Übersicht über Rennen, Fahrer und Punktestand..........64 Abbildung 9: Tippabgabe mit einem abgegebenen Tipp.................... 71 Abbildung 10: Tippanzeige mit Ergebnis und erhaltenen Punkten.....78 Abbildung 11: Die Administrationsseite.............................................90 Abbildung 12: Das ER-Diagramm des Tippspiels............................114 Seite 5 Tabellenverzeichnis Tabelle 1: Kombinationsmöglichkeiten eines Passwortes.................. 18 Tabelle 2: Hersteller............................................................................ 23 Tabelle 3: Teams................................................................................. 23 Tabelle 4: Autos.................................................................................. 23 Tabelle 5: Läufe.................................................................................. 24 Tabelle 6: Fahrer................................................................................. 24 Tabelle 7: Spieler................................................................................ 25 Seite 6 Abkürzungsverzeichnis CSS Cross Site Scripting DBMS Datenbankmanagementsystem DSL Digital Subscriber Line FTP File Transfer Protocol HTTP Hypertext Transfer Protocol HTTPS Hypertext Transfer Protocol Secure IP Internet Protocol PHP PHP Hypertext Preprocessor PIN Persönliche Identifikationsnummer RFC Request For Comments SQL Structured Query Language SSL Secure Sockets Layer TAN Transaktionsnummer TCP Transmission Control Protocol TLS Transport Layer Security URL Uniform Resource Locator W3C World Wide Web Consortium WLAN Wireless Local Area Network Seite 7 1 Einleitung Das Internet ist für viele Menschen zum Bestandteil des Lebens ge- worden. In vielen Bereichen sind Computer nicht mehr wegzudenken. Die enorme Geschwindigkeit des Informationsaustauschs und der In- formationsverbreitung, die Möglichkeit, jederzeit Geschäfte abzu- schließen, Einkäufe zu tätigen und Geld zu transferieren, sind nur eini- ge der Aspekte, die das weltweite Netz so erfolgreich machen. Die ex- ponentielle