Neue Gefahren im Web 2.0
Ajax und seine Risiken
Geringes Risiko: XMLHttpRequest
Neue Gefahren im Web 2.0
Cross Site Scripting (XSS) und SQL Injection gibt es nicht erst seit Web 2.0: Auch klassische Webseiten nehmen schließlich Nutzereingaben entgegen und arbeiten mit Datenbanken. Als wirklich neuer Angriffspunkt kommt in den meisten Ajax-Anwendungen das XMLHttpRequest-Objekt hinzu. Es dient dem Datenaustausch mit einem Webserver ohne Neuladen der Seite. Dennoch eignet sich XMLHttpRequest nur bedingt für einen Angriff, etwa per XSS. Der Grund: Die Domänengrenze darf nicht überschritten werden, das Objekt darf nur HTTP-Anfragen an die aktuelle Domain schicken. Gefährlich ist das allerdings, wenn sich viele Websites auf derselben Domain befinden wie der MySpace-Wurm eindrucksvoll belegt hat.
Zum Video…
Risiko Nummer 1: Usergenerierter Content
Neue Gefahren im Web 2.0
Dennoch sind Web-2.0-Anwendungen aus zwei Gründen besonders gefährdet. Einer ist die verstärkte Interaktivität: Nutzer füttern die Applikation auf verschiedenen Wegen mit eigenen Daten, die alle überprüft werden müssen. In der schieren Menge an Schnittstellen nach außen übersehen Entwickler gerne das eine oder andere Einfallstor. Jede Ajax-Anwendung, die etwas auf sich hält, bietet Web-Services-Schnittstellen an (per SOAP oder REST), alleine schon für Ajax-Effekte wie sortierbare Listen oder Vorschläge per Drop-Down-Menü beim Eintippen eines Worts. Diese APIs sind in vielen Fällen weniger gut geschützt als die nach außen sichtbaren Websites. Zahlreiche Entwickler nehmen tatsächlich an, dass nur die Ajax-Anwendungen selbst diese APIs verwenden. Angreifer suchen teilweise gezielt nach diesen Hintereingängen, um Lücken aufzuspüren.
Zum Video…
Risiko Nummer 2: Aktive Inhalte
Neue Gefahren im Web 2.0
Das zweite Risiko, dem Ajax-Anwendungen ausgesetzt sind, ist der verstärkte Einsatz von Javascript. Ein Beispiel aus der Praxis: Üblicherweise brechen Ajax-Anwendungen mit zwei Grundpfeilern des World Wide Web: Lesezeichen sind nicht mehr möglich, und die Navigationsschaltflächen im Browser für die vorherige und nächste Seite funktionieren nicht mehr. Bei Ajax-Seiten ändert sich nämlich der Inhalt, die URL bleibt jedoch gleich. Denn Ajax-Anwendungen leben davon, dass sich auf der Seite etwas tut, ohne dass sie neu geladen wird. Ohne Neuladen gibt es auch keine neue URL.Usability-Gründen ist das fatal, weshalb es mittlerweile Workarounds gibt, um den Seitenzustand für Lesezeichen zu halten und für die Vor- und Zurück-Navigation in die Verlaufsliste des Browsers zu schreiben. Diese Workarounds behelfen sich damit, dass sie Informationen über den aktuellen Seiteninhalt in Form einer Textmarke an die URL anhängen (seite.html#daten). Diese Daten sind in der Adresszeile des Browsers leicht manipulierbar. Wird nicht gefiltert, kann ein Hacker Javascript-Code auf eine Seite einschleusen.
Zum Video…