Web-Application-Security und E-Commerce

Wissenswertes rund um den Schutz von Webshop-Lösungen

15.12.2008
Von Peter Höpfl

Wie lassen sich Session-Hijacking und SQL-Injection verhindern?

Viele Web-Applikationen arbeiten mit Sessions, um den Nutzer nach dem Einloggen zu identifizieren. Hier hat sich der Gebrauch von GUIDs (Globally Unique Identifiers) bewährt. Dabei handelt es sich um eine 32-stellige alphanumerische Zeichenkette, die das Identifizieren der Session-ID durch Ausschnüffeln (Session-Hijacking) praktisch unmöglich macht.

Ein großer Teil der Web-Anwendungen greift auf eine SQL-Datenbank zurück. Das als SQL-Injection bezeichnete Einschleusen oder Manipulieren von SQL-Kommandos ist derzeit die von Hackern am häufigsten genutzte Angriffstechnik auf Anwendungsebene. Besonders anfällig sind fehlerhaft konzipierte Websites, deren Datenbankschnittstellen unnötig Informationen preisgeben.

Solche Schwachstellen finden sich vor allem in Anmeldeformularen oder Formularen zur Anforderung vergessener Passwörter. Um SQL-Injection vorzubauen, sollten sämtliche Zugriffe auf die Datenbank von der Web-Anwendung aus nur über so genannte Prepared Statements oder besser Stored Procedures erfolgen. Der direkte Einsatz von SQL-Befehlen hingegen sollte möglichst vermieden werden.

Glossar

Cross-Site Scripting: Manipulation von Parametern, so dass im Browser Skriptcode ausgeführt wird.

Default-Anwendung: Vorgegebene Softwareeinstellung, die gewählt wird, wenn der Benutzer oder Programmierer selbst keinen Wert eingibt.

Doppel-Opt-in: Verfahren, bei dem der Eintrag in eine Abonnentenliste in einem zweiten Schritt bestätigt wird. Meist wird hierzu eine E-Mail-Nachricht mit Bitte um Bestätigung an die eingetragene Kontaktadresse gesendet.

GUID (Globally Unique Identifier): Global nur einmal vergebene Zahl, die in verteilten Computersystemen zum Einsatz kommt.

Phishing: Betrügerei, bei der versucht wird, Internetbenutzer mit E-Mails von angeblich vertrauenswürdigen Absendern auf gefälschte Websites zu locken.

Prepared Statements: vorbereitete Anweisung für ein Datenbanksystem, das anstelle von Parameterwerten Platzhalter enthält.

Secure Coding Guidelines: Coding-Richtlinien für sicheres E-Business.

Session: Logische Verbindung zwischen Client und Server; kann über mehrere Einzelzugriffe hinweg bestehen.

Session-Hijacking: Angriff auf eine verbindungsbehaftete Datenkommunikation zwischen zwei Computern.

Session-ID: Identifikationsmerkmal, um mehrere zusammengehörige Anfragen eines Benutzers zu erkennen und einer Sitzung zuzuordnen.

Skript: Programm, das in einer Interpreter-Sprache geschrieben ist.

Stored Procedures: Eigenständiger Befehl, der eine Abfolge von gespeicherten Befehlen ausführt.

SQL-Injection: Spezielle Angriffsmethode auf Datenbanken.

Web-Scanner: Programm zum Testen von Verwundbarkeit, Angriffspunkten und Schwachstellen einer Web-Applikation.