We need to reset HTML5 and start over. Dieses Zitat von Douglas Crockford sollte in den vergangen Wochen an den meisten von uns ein- oder zweimal vorbeigescrollt sein. Egal ob auf Konferenzen oder im Interview, der Javascript-Altmeister wird nicht müde, zwar einige Ideen von HTML5 zu loben aber auch ganz klar zu sagen, dass es seiner Meinung nach ein Schritt in die falsche Richtung ist und eine Vollbremsung angebracht sei. Warum ist das so?

Das Problem, das HTML5 löst (nämlich dass bisherige Web-Technologien ein unzureichendes Rüstzeug für Webapps sind) ist laut Crockford nicht das Problem, das dem Web unter den Füßen brennt – vielmehr müsste Sicherheit die Top-Priorität genießen. Heutige Webbrowser machen es nämlich Übeltätern recht einfach: jedes Script, das auf einer Website läuft, darf alles – es darf Cookies setzen und auslesen, es darf die Website selbst verändern, es darf den User bitten sein Passwort einzugeben und vieles mehr. Sobald es einem Angreifer also irgendwie gelingt, einen <script>-Schnipsel irgendwo auf einer Website einzuschleusen (z.B. auf einer Profilseite in einem sozialen Netzwerk), kann er den Browser eines jeden Besuchers dieser Seite übernehmen. Das nennt man Cross-Site-Scripting (XSS).

XSS ist eine der größten Sicherheitslücken des Webs und gleichzeitig auch eins seiner besten Features, denn erst die umfassenden Privilegien für Scripts machen es möglich, Dinge wie Google-Maps, Facebook-Buttons und Flattr-Widgets mit zwei Zeilen HTML (besagten <script>-Schnipseln) einzubauen. Die Scripts dürfen die Seite selbst verändern um ihre Buttons und Bilder zu platzieren, was man ja Google, Facebook und Flattr durchaus gerne erlauben, Datendieben aber gerne untersagen würde. So einfach ist es aber nun eben nicht und HTML5 verändert an diesem Zustand nichts – im Gegenteil, Technologien wie Offline-Speicher eröffnen interessierten Kriminellen neue, attraktive Angriffsziele.

Douglas Crockford vertritt die Auffassung, dass Sicherheit wichtiger als neue HTML-Elemente sei. Seiner Ansicht nach gehört die HTML5-Entwicklung gestoppt bis ein besseres Sicherheitsmodell für den Browser erdacht und implementiert wurde. Danach sollen die Einzelteile von HTML5 Stück für Stück den neuen Sicherheitsvorgaben angepasst und re-implementiert werden. Alles andere verschlimmere nur die XSS-Problematik, die ohne Änderungen am Browser selbst nicht in den Griff zu kriegen sei.

Ich persönlich tu mich mit diesem Ansatz schwer, gleichwohl an der Diagnose, dass XSS ein Problem ist, natürlich nicht zu rütteln ist. Aber man muss auch sehen, dass dass das Kind HTML5 bereits in den Brunnen gefallen und auf dem Weg nach unten mindestens schon zum nervigen Teenager herangewachsen ist. Es ist schwer vorstellbar, dass da noch irgendeine Form von Reset möglich sein soll, zumal bekannt ist, wie lange es dauert, bis sich eine Technologie in wirklich allen Browsern auf breiter Front etabliert hat. Außerdem ist nicht zu vergessen, dass HTML5 ja selbst das Ergebnis eine geplanten Web-Resets, nämlich XHTML 2 ist – das Web ist eben nicht die Bühne für Resets oder Revolutionen, sondern viel mehr ein Ort der graduellen Veränderungsprozesse. Vor diesem Hintergrund habe ich so meine Probleme damit, We need to reset HTML5 and start over als einen ernst gemeinten, konstruktiven Vorschlag anzusehen. XSS reparieren, gerne – aber dafür HTML5 stoppen, das wird schon sehr schwierig.