Datenbank-basierte Webserver - Themen für Seminarvorträge und Seminararbeiten
Allgemeines
Die unten angegebenen
Themen stellen Vorschläge dar; es können aber auch selbst gewählte Themen (nach
Rücksprache mit dem Vortragenden) in Form von Vorträgen und/oder Seminararbeiten
behandelt werden. In Ausnahmefällen können mehrere Studierende zusammen ein
(umfangreicheres) Referats-Thema bearbeiten; bei Seminararbeiten
ist eine Zusammenarbeit mehrerer Studierender sogar erwünscht.
Seminarvorträge
sollen jeweils 20 Minuten dauern (bei sehr umfangreichen Themen nach
Rücksprache auch länger); der Vortragstermin wird im Allgemeinen in den letzten
Wochen des Semesters liegen (Ausnahmen sind möglich).
Alternativ dazu ist die
Durchführung einschlägiger Programmierarbeiten in Form einer Seminararbeit
möglich. Aufgabenstellungen für Seminararbeiten ergeben sich aus dem laufenden
Bedarf am Institut; es kann aber auch eine eigene Aufgabenstellung bearbeitet
werden.
Themenvereinbarungen
bitte in der Lehrveranstaltung oder per Mail an den Vortragenden
(karl.riedling@tuwien.ac.at)!
Themenvorschläge für Seminararbeiten
Themen für Seminararbeiten auf Anfrage beim Vortragenden
Themenvorschläge für Referate
Einrichten eines Secure HTTP (HTTPS) Webservers
Es sollen die technischen Voraussetzungen für das HTTPS-Protokoll
und die Konfiguration des Apache-Webservers für HTTPS beschrieben werden.
Aspekte des Serverbetriebs (nur HTTPS-Seiten, oder bei gemischtem Betrieb: Struktur
der Datenverzeichnisse des Webservers für einen sicheren Betrieb) sollen
diskutiert werden.
Methoden der Zugriffsbeschränkung auf HTTP-/HTTPS-Verzeichnisse
Für manche Aufgabenstellungen soll der Zugriff auf
den gesamten Daten-Inhalt einer Website oder aber auf gewisse Verzeichnisse auf
bestimmte Personen oder Personengruppen eingeschränkt werden (Beispiele:
Interne Informationen (auch) in statischen Webseiten; phpMyAdmin). Die Information, wer nun tatsächlich
auf die Dateien in den geschützten Bereichen der Website zugreift, braucht den
dort laufenden Seiten nicht notwendigerweise zur Verfügung gestellt werden. Die
dafür in Frage kommenden Techniken, insbesondere auch eine Datenbank-gestützte
Authentisierung der Besucher der Website, und ihre Sicherheits-Aspekte sollen
präsentiert werden.
Methoden der Benutzer-Authentisierung in LAMP-Systemen
Im Gegensatz zu einer bloßen Zugriffsbeschränkung
ist bei authentisiertem Zugriff auf eine Datenbank-basierte Website die
Information, wer auf die Seiten zugreift, essentiell den Seiten zur
Verfügung zu stellen (Beispiel: Finanz-Transaktionen). Die unterschiedlichen
Möglichkeiten, wie sich BenutzerInnen gegenüber den (meist zahlreichen) Seiten
einer Website identifizieren können, und ihre Sicherheitsaspekte sollen
behandelt werden.
Kontrollierte Ausgabe von Dateien an authentisierte User
In vielen Fällen sollen Dateien auf einer Website
nur einem beschränkten Personenkreis individuell zugänglich gemacht werden
(Beispiele: Elektronische Zeitschrift, deren Artikel nur zahlenden Kunden zur
Verfügung gestellt werden sollen; interne Informationen einer Firma). Oft ist
es nicht ausreichend, in Abhängigkeit von der Authentisierung ein Link auf
eine in irgendeinem Unterverzeichnis des Webservers (z.B. "/files") stehende Datei auszugeben,
weil Zugriffe auf solche Dateien leicht "er-hackt" werden können. Es sollen daher
die Möglichkeiten beschrieben werden, den sicheren und exklusiven Zugriff auf
Gruppen von Dateien oder einzelne Dateien individuell (in Abhängigkeit von der
Person der Benutzerin / des Benutzers) zu gestatten.
Portieren vorhandener PHP-Seiten auf neue Versionen von PHP (z.B. PHP 5 -> 7)
Web-Applikationen sind in der Regel langlebiger als konventionelle, auch dynamische, Websites. Es stellt sich daher
häufig die Aufgabe, eine bestehende Applikation im Zuge der Vorbereitung einer Neu-Installation auf eine neuere PHP-Version
zu portieren. Obwohl zumindest seit PHP 4.1 die grundsätzliche Funktionalität von PHP weitgehend gleich geblieben ist bzw.
Kompatibilitäts-Features vorgesehen wurden (z.B. var äquivalent zu public), treten bei der Migration zu
einer neueren PHP-Version sehr häufig Probleme durch als veraltet erklärte Funktionen oder Paradigmen-Wechsel (Default-Zeichensatz
von ISO-8859-1 auf UTF-8 beim Wechsel von PHP 5.3 und früher auf 5.4 und höher) auf, die mehr oder weniger umfangreiche Maßnahmen
erfordern.
Sicherheitsaspekte von Apache-Webservern
Es sollen jene Maßnahmen beschrieben werden, die
die Sicherheit eines Apache-Webservers (unter Linux und/oder Windows) gegen
Hacker- (oder besser: Cracker-) Attacken verbessern sollen.
Sicherheits-Aspekte unter Verwendung von PHP
In diesem Referat sollen generelle Aspekte
behandelt werden, durch welche Maßnahmen (Konfiguration und Programmiertechnik)
die Sicherheit eines unter PHP laufenden Webservers optimiert werden kann. Der
Begriff "Sicherheit" umfasst hier nicht nur den Schutz des Webservers gegen
potenzielle Fehlbedienung durch die User, sondern auch weitestgehende Immunität
gegen Hacker-Attacken.
Sicherheits-Aspekte bei Zugriffen auf eine MySQL-Datenbank
Es soll beschrieben werden, durch welche Maßnahmen
in der Konfiguration und im Betrieb der MySQL-Datenbank einer
Datenbank-basierten Website optimale Immunität gegen versehentliche oder
böswillig beabsichtigte Beschädigungen erzielt werden kann, insbesondere unter
der Randbedingung, dass eine freie Dateneingabe (z.B. in Textfelder) durch die BenutzerInnen
der Website erforderlich ist.
Sicherheits-Aspekte bei Verwendung von Client-seitigem
JavaScript-Code
JavaScript-Funktionen, die auf dem Client-Rechner
laufen, entziehen sich potenziell der Kontrolle der EntwicklerInnen einer
Website. Es soll aufgezeigt werden, unter welchen Umständen Client-seitige
Datenmanipulationen ein Sicherheitsrisiko darstellen können, und Möglichkeiten
beschrieben werden, wie eine potenzielle Manipulation von Client-seitig
bearbeiteten Daten serverseitig detektiert werden kann.
Browser-unabhängige Webseiten
Browser-Abhängigkeit der Wiedergabe von Webseiten
bedeutet einerseits eine unterschiedliche Darstellung von HTML-Code,
andererseits eine unterschiedliche Behandlung von JavaScript-Code. In diesem
Referat sollen wesentliche Ursachen für Browser-Abhängigkeiten aufgezeigt und
Möglichkeiten für ihre Behebung (oder Kompensation) geschildert werden.
Content Management-Systeme - Möglichkeiten und
Grenzen
Es existieren zahlreiche (nicht nur auf PHP
basierende) kommerzielle oder frei verfügbare Content Management-Systeme,
die es erlauben, mit minimalem Programmieraufwand Datenbank-basierte Websites
einzurichten. Die Möglichkeiten und Grenzen der wichtigsten derartigen Systeme
sollen aufgezeigt werden.
Spezielle Aspekte beim Betrieb von Apache/PHP/MySQL unter
Windows (WAMP statt LAMP)
Viele Beschreibungen (auch im Rahmen dieses
Seminars) konzentrieren sich auf die Erstellung von LAMP-Systemen, also auf der
Basis eines Linux-Systems. Oftmals (vor allem zu Entwicklungs- und Testzwecken)
ist es aber wünschenswert, eine Datenbank-basierte Website auf einem unter
Windows laufenden Rechner zu installieren. Im Rahmen dieses Seminars sollen die
Möglichkeiten, Voraussetzungen und Konfigurationseinstellungen beschrieben
werden, ein Apache/PHP/MySQL-System unter Windows einzurichten.
|