Uberblick Websecurity - Albert-Ludwigs-Universität Freiburg
Uberblick Websecurity - Albert-Ludwigs-Universität Freiburg
Uberblick Websecurity - Albert-Ludwigs-Universität Freiburg
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
6 Jennifer Nist<br />
Abbildung 2. Beispiel einer persistenten XSS-Schwachstelle:<br />
[11]<br />
Dom-basiert: DOM steht für Document Object Model und ist eine Schnittstelle zur browserunabhängigen<br />
Interpretation von HTML- und XML-Daten. Diese erfolgt benutzerseitig durch den<br />
Webbrowser. Der DOM-basierte XSS-Angriff nutzt, im Gegensatz zu den beiden anderen XSS-<br />
Angriffen, welche sich auf die serverseitige Erzeugung von dynamischen Webseiten stützten, die<br />
benutzerseitige Interpretation von Benutzereingaben.<br />
Beispiel<br />
Ein Benutzer macht eine Eingabe in eine Webanwendung. Diese Eingabe wird benutzerseitig durch<br />
eine Skriptsprache, wie etwa JavaScript, aus der URL als Argument ausgelesen:<br />
http://beispiel.de/datei.html?arg=Argument<br />
Dieses Argument wird in das betreffende HTML-Dokument eingefügt. Wenn dies ungeprüft geschieht,<br />
so kann die aufrufende URL manipuliert und an potentielle Opfer als harmloser Link<br />
verschickt werden.<br />
http://beispiel.de/datei.html?arg=alert(“XSS“)<br />
Wie kann man sich vor diesem Angriff schützen?<br />
Grundsätzlich sind Benutzereingaben nie vertrauenswürdig. Daher sollte jede Eingabe serverseitig<br />
geprüft werden. Dabei ist es meistens von Vorteil Whitelist zu benutzen. Bei dieser Methode werden<br />
nur solche Eingaben zugelassen, die auf der Liste stehen. Eine andere Methode ist die eine Blacklist<br />
zu führen. Dabei werden, im Gegensatz zu der Whitelist, die Eingaben die auf der Liste stehen<br />
nicht zugelassen. Eine Blacklist ist sinnvoller, wenn die Anzahl der erlaubten Eingaben zu hoch ist<br />
um sie auf eine Liste einzutragen. Jedoch sind Whitelists theoretisch die sicherere Wahl, da ständig<br />
neuere und komplexere Angriffsmethoden entwickelt werden, die zuvor noch nicht absehbar waren.<br />
Möchte der Benutzer nun ein Code-Beispiel in das Gästebuch schreiben, müssen Metazeichen als<br />
solche maskiert (escaped) und damit als normale Zeichen markiert werden. Bei der Maskierung<br />
wird dem Metazeichen ein bestimmtes Zeichen voran gestellt oder es komplett ersetzt, damit der<br />
Interpreter dies als eine Zeichenrepräsentation erkennt und nicht als Metazeichen interpretiert.<br />
Beispielsweise ersetzt man beim escapen von HTML-Code das Metazeichen ”<br />