Netzprogrammierer.de

Plan B – Seiten ohne JavaScript

Gründe für Content ohne JavaScript:

JavaScript ist im modernen Web nicht mehr weg zu denken. Vor einigen Jahren sah das noch anders aus. Mit Argumenten wie „Der User kann JavaScript deaktivieren“, oder „JavaScript läuft in verschiedenen Browsern sehr unterschiedlich“ riet man Entwicklern davon ab, JavaScript zu benutzen.

So wurden meist nur einige grafische Spielereien mit JavaScript realisiert, wie z.B. Mouse-Over Effekte in Menüs, die heut zu Tage mit CSS realisiert werden können.

Heute sieht das anders aus. Mit AJAX wurde eine Technologie wieder entdeckt, die bahnbrechende Möglichkeiten, bei der Entwicklung von Webapplikationen mit sich brachte. Zum ersten Mal war es möglich eine Webseite so zu gestalten, dass sie sich wie eine klassische Desktopanwendung anfühlt.

Die Browserunterstützung für JavaScript-Code verbesserte sich zunehmend und endlich wurden auch komplexere Codes geschrieben, die das Internet vom Content- zum Applikations-Medium beförderte.

Wer heute JavaScript deaktiviert, kann einen Großteil des Angebots im Netz nicht mehr nutzen. So stellt sich die Frage, weswegen sollte man noch darauf achten, dass eine Internetseite auch ohne JavaScript funktioniert?

Die Antwort ist einfach und wurde schon am Anfang dieses Artikels erwähnt:
Der User kann JavaScript deaktivieren.

Gründe weswegen User JavaScript deaktivieren

Der Erfolg und die Verbreitung, die JavaScript in den letzten Jahren erfahren hat, riefen natürlich auch viele zwielichtige Geschäftsleute auf den Plan. Durch diverse Sicherheitslücken ist es durch JavaScript möglich, sich beim bloßen Besuch einer präparierten Webseite, Schadsoftware einzufangen.

Dabei ist nicht JavaScript die Sicherheitslücke, sondern der Browser. JavaScript ist lediglich das Werkzeug mit dem der Angreifer die Lücke ausnutzt.

Aus diesem Grund gibt es diverse Plugins, mit denen JavaScript im Browser standartmäßig deaktiviert werden kann. Eines davon ist NoScript für den Firefox.

Das Plugin erfreut sich zunehmender Beliebtheit und verbreitet sich schnell. Besucht ein Nutzer eine Internetseite das erste Mal, ist JavaScript deaktiviert. Erst wenn der User durch einen Klick auf das NoScript-Icon die Webseite auf eine whitelist setzt, wird der JavaScript Code ausgeführt. JavaScript von Drittanbietern, wie Google+, Facebook, oder IchWillDeineDaten.com das auf der besuchten Seite eingebettet ist bleibt aber geblockt, bis auch diese Drittanbieterseiten auf die whitelist gesetzt werden.

Und genau das ist der springende Punkt. Vertraut der Anwender der Webseite nicht, wird er auch das dort angebotene Script blockiert lassen. Angreifer habe so kaum noch eine Chance, ihren Schadcode auf dem Client auszuführen.

Durch die wachsende Zahl der Angriffe im Netz über JavaScript werden Mechanismen, wie NoScript sie bietet, wohl bald, genau wie Popup-Blocker und Phishing-Filter, standardmäßig Einzug in die Browser halten. Und genau das ist der Grund, weswegen Ihre Webapplikation auch ohne JavaScript eine gewisse Grundfunktionalität bieten sollte.

Ein Beispiel

Es kommt häufig vor, das aus optischen Gründen, wichtige Elemente beim Aufruf einer Webseite zunächst eingeblendet werden sollen. Ein Vorgehen dies zu realisieren, wäre es zunächst, die Elemente mittels CSS zu verstecken und sie dann, nach laden der Seite mittels JavaScript einzublenden.

Dies mag sicherlich gut funktionieren und auch gut aussehen, hat aber einen entscheidenden Haken: Wenn der Benutzer der Seite, mit deaktivierten JavaScript, den Content aufruft, sieht er die Elemente nicht. Der Browser versteckt sie laut CSS Anweisung, blendet sie dann aber nicht ein, da der JavaScript-Code nicht ausgeführt wird. Im schlimmsten Fall sieht der Besucher nur eine leere Fläche.

Um das zu verhindern und Vertrauen aufzubauen, sollte man die Elemente ganz normal in die Seite einbinden. Wenn das DOM geladen ist sollten dann die relevanten Teile per JavaScript ausgeblendet und anschließend, mit dem gewünschten Effekt eingeblendet werden.

Mit dieser Technik sieht der User mit deaktiviertem Script die Seite ganz normal, ohne die grafischen Spielereien. Er kann die Seite ganz normal benutzen.

So kann Vertrauen zum Benutzer aufgebaut werden, so dass er seine whitelist um einen Eintrag mit ihrer Webseite erweitert, um in Zukunft den vollen Umfang ihres Onlineangebotes nutzen zu können.