Cross-Site Scripting und SQL-Injection

Grundlagen des XSS

Bekannt ist Cross-Site Scripting schon recht lange: Im Jahre 2000 veröffentlichte das CERT einen Beitrag, in dem die Problematik erläutert wurde. Seitdem hat sich nicht viel geändert - praktisch jede Woche werden neue XSS-Angriffsflächen in kommerziellen und nicht-kommerziellen Web-Anwendungen aufgedeckt. Dazu gehört etwa auch das weit verbreitete PHPNuke, mit dem viele Betreiber von Websites ihre dynamischen Seiten ausliefern und gestalten.

Bei statischen HTML-Seiten hat der Betreiber die volle Kontrolle darüber, was an seine Besucher ausgeliefert wird. Auch bei dynamisch erzeugten Seiten ist der Betreiber so lange sicher, wie er lediglich eigene Inhalte ausliefert. Ermöglicht er seinen Besuchern jedoch das Einstellen von Inhalten - etwa in einem Gästebuch oder einem Forum - hat er nicht mehr die volle Kontrolle. Im Kern geht es bei XSS-Angriffen darum, unsichere Inhalte so in eine dynamische Seite einzuschmuggeln, dass weder Server noch Client dies erkennen. Somit sind beide nicht in der Lage, passende Schutzmaßnahmen zu ergreifen.