Hallo,
Im Abschnitt "Javascript im HTML-Dokument" würde ich an Deiner Stelle noch ein paar Beispiele hinzufügen, um die Gefährlichkeit von XSS etwas zu demonstrieren.
Für XSS wäre das aber der falsche Abschnitt, denn dann geht es ja um das Einfügen von Daten in JavaScript, was im Abschnitt "JavaScript" behandelt wird. Und vermutlich hast du auch noch document.write(... + daten) im Sinn. Das wäre der Kontext HTML, diesmal von JavaScript aus. Wenn der JS-Code auch noch mit PHP erzeugt wird ... es gibt einfach zu viele Kombinationsmöglichkeiten beim Schachteln von Kontexten.
Mir ginge es eher um Inline-Eventhandler, Beispiel-PHP-Code:
// WARNUNG: NICHT VERWENDEN
echo "<span onclick=\"tuwas ('".htmlspecialchars ($usereingabe)."');\">";
Zudem könntest Du andere Dinge bei automatisch zusammengebaute SELECTs erwähnen, es gibt ja oft sowas wie $sql = "SELECT ... ORDER BY " . $_GET['order_by']; oder so...
Danke für das gute Beispiel. Mir fielen beim Entwerfen des Artikels immer nur Stellen ein, für die selten Identifier aus Benutzereingaben verwendet werden (à la Datenbankverwaltungssoftware).
Oha, ich hab da sogar noch was vergessen: Mir ging's nicht nur um die Identifier beim ORDER BY, sondern auch um die Sortierrichtung. Also sowas wie "SELECT ... ORDER BY ".$_GET['order_by']." ".$_GET['order_direction']; oder ähnliches...
Viele Grüße,
Christian
Mein "Weblog" [RSS]
Using XSLT to create JSON output (Saxon-B 9.0 for Java)
»I don't believe you can call yourself a web developer until you've built an app that uses hyperlinks for deletion and have all your data deleted by a search bot.«
-- Kommentar bei TDWTF