O'Reilly logo

PHP-Sicherheit: PHP/MySQL-Webanwendungen sicher programmieren by Stefan Esser, Christopher Kunz

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

4 Cross-Site Scripting82
Opfers, sondern in dessen Namen eine Aktion auf einer Website ausge-
führt wird. So können – praktisch ohne Spuren zu hinterlassen – Kon-
todaten und Passwörter geändert oder andere für das Opfer schädliche
Handlungen ausgeführt werden.
Beiden Angriffstypen ist gemein, dass ein Opfer (das stets ein
Mensch ist) mit ihrer Hilfe Code ausführt, der eigentlich nicht hätte
ausgeführt werden sollen – Cross-Site-Angriffe richten sich, anders als
etwa SQL-Injections, nicht gegen den Server, sondern nutzen einen Cli-
ent aus.
Übrigens: Mit dem Produktnamen »Internet Explorer« wird in der
Regel die Version 6 des Browsers bezeichnet, die sich stellenweise
anders verhält als die aktuellste Version. Für Mozilla-basierte Browser
verwenden die Autoren Firefox 2 als Referenz – auch hier unterschei-
den sich manche Abarten bzw. ältere oder neue Versionen in einigen
Belangen Insbesondere der zum Zeitpunkt der Drucklegung als Beta-
Version verfügbare Firefox 3 enthält deutliche Änderungen.
4.2 Was ist Cross-Site Scripting?
Eine oftmals unterschätzte Gefahrenklasse ist das sogenannte »Cross-
Site Scripting« oder auch XSS. In einer Vielzahl dynamischer Websei-
ten oder webbasierter Softwareprodukte findet man diese Lücken, die
es einem Angreifer erlauben, seinen Schadcode beim Client auszufüh-
ren. Anders als bei SQL-Injections oder anderen Angriffsmustern, die
sich gegen den Web- oder Datenbankserver richten, ist das Ziel einer
XSS-Attacke stets der Client, also ein Forennutzer, Online-Einkäufer
oder einfach nur ein unbedarfter Besucher Ihrer dynamischen Webseite.
Allgemein wird mit XSS die Möglichkeit bezeichnet, im HTML-
Code fremder Seiten durch einen geeigneten Request eigenen Schad-
code zur Ausführung zu bringen. Da dieser Code im Kontext der ihn
anzeigenden Seite ausgeführt wird, können die üblichen Sicherheitsbe-
schränkungen des Document Object Model (DOM) umgangen werden
– der Schadcode erhält Zugriff auf Daten und Variablen, die ihm
eigentlich nicht zugänglich sein dürften. Nicht nur auf Webseiten kön-
nen XSS-Angriffe erfolgreich durchgeführt werden – auch viele Mail-
Clients zeigen aktive Inhalte in HTML-E-Mails an und werden
dadurch anfällig für XSS. »Aktive Inhalte« sind jedoch in diesem Falle
keine PHP-Skripte, sondern JavaScript, JScript oder ähnliche Skript-
sprachen, die der Client direkt ausführt.
Da XSS vordergründig keine direkte Gefahr für den Server und die
auf dem Server gelagerten Daten darstellt, wird die Bekämpfung von
Cross-Site Scripting von vielen Entwicklern sträflich vernachlässigt. In

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required