Sinn und Unsinn von JavaScript
Oktober 2001, die jüngsten Viren haben JavaScript wieder einmal in die Diskussion
gebracht. JavaScript ist und bleibt ein Sicherheitsrisiko. Trotzdem
kann es eine sinnvolle Ergänzung für viele Webseiten sein.
Nachtrag: Nach der Veröffentlichung dieses Artikels wurden Meinungen
laut, daß ich die Sicherheitsrisiken durch JavaScript überschätze.
Allein Nimda
hat aber nach Schätzungen von Network Associates
weltweit einen Schaden von über 500 Millionen Dollar angerichtet.
Interessierten sei der Artikel Sabotage im Internet
aus der Spektrum der Wissenschaft 12/2001 empfohlen.
Übersichten über aktuelle Viren und Sicherheitsrisiken finden
sich beim BSI
oder bei Georgi Guninski.
Nachtrag 2: Man könnte glauben, daß die
Sicherheitsproblematik ein Jahr nach Erscheinen dieses Artikels
Vergangenheit ist. Der Artikel Nicht trustworthy aus
der Zeitschrift ct 25, S. 100, 2002 belegt jedoch das
Gegenteil. Die aufgeführten Sicherheitslücken in Verbindung mit
gängigen Konfigurationen sind so gravierend, daß ein Angreifer
problemlos die Dateien ganzer Arbeitsgruppen zerstören kann.
JavaScript = Kundenverlust?
Grundsätzlich gilt, daß Webseiten auch ohne JavaScript sinnvolle
Inhalte liefern müssen. Die folgenden Punkte machen unmittelbar
klar, warum Webseiten, die nur mit JavaScript funktionieren,
gleichbedeutend mit Kundenverlust sind:
-
Anwender schalten JavaScript aus, weil sie die häufigen
Werbefenster vermeiden wollen.
-
Anwender schalten JavaScript aus, weil es ein Sicherheitsrisiko ist.
-
Anwender schalten JavaScript aus, um Browserabstürze zu vermeiden.
-
Seiten mit JavaScript verwehren behinderten Menschen den Zutritt.
-
Einige Firewalls filtern JavaScript aus. Das ist durchaus sinnvoll,
weil die meisten Sicherheitslücken im Zusammenhang mit JavaScript
Hackern das Lesen von Daten auf der Festplatte erlauben. Der
Wert von Daten auf Firmenrechnern wird von vielen Mitarbeitern
immer wieder unterschätzt.
-
Suchmaschinen werten JavaScript nicht oder nur eingeschränkt aus.
Die Webseiten erlangen deshalb einen geringeren Bekanntheitsgrad.
TheCounter bietet eine Statistik
über die Verbreitung von JavaScript. Zum Zeitpunkt dieses Artikels verwenden
12% aller Besucher einer Webseite im anglo-amerikanischen Sprachraum kein JavaScript.
Die häufigsten Einsatzgebiete von JavaScript
JavaScript läßt sich nutzen, um Dienste anzubieten, die
mit reinem HTML nicht oder nur aufwendig zu erstellen sind,
z.B. einen Telefongebührenrechner.
-
Die eingeschrängten Möglichkeiten von HTML lassen sich
erweitern und dem Anwender wird ein zusätzlicher Nutzen
geboten.
-
Trotzdem sollte im Einzelfall geprüft werden, ob mit
reinem HTML eine Alternative möglich wäre.
Fazit: Kann dem Anwender einen echten Mehrwert bieten.
^ zurück zur Tabelle
JavaScript wird oft dazu verwendet, um Knöpfe oder Links hervorzuheben,
wenn der Anwender mit der Maus darübergeht (Roll-Over-Effekt).
-
Durch den Roll-Over-Effekt bekommt der Anwender ein besseres Feedback.
Die allgemeine Bedienbarkeit der Seite verbessert sich.
-
Der aktuelle Standard bietet eine ähnliche Möglichkeit für
Links.
-
Knöpfe an sich sind in vielen Fällen problematisch, hauptsächlich, weil sie
die Ladezeit erheblich verlangsamen.
-
Oft stößt man auf Links, die nur dann sichtbar werden, wenn der
Anwender mit der Maus darüber geht. Die Bedienung der Webseite
gestaltet sich zum Suchspiel.
Fazit: Bei sinnvoller Nutzung kann die Bedienbarkeit einer Webseite
verbessert werden.
^ zurück zur Tabelle
Große Websites sind sehr komplex. Um diese Komplexität zu
verbergen, werden oft Navigationsmenüs mit JavaScript programmiert.
-
Menüs können komplexe Strukturen vereinfachen.
-
Menüs verlangen vom Anwender eine gehörige Portion Mausakrobatik.
Es hat seinen Grund, warum moderne Programme so viele Speedbuttons
besitzen.
-
Ein Menü verbirgt erst einmal viele Optionen und nötigt den
Anwender zum Herumsuchen.
-
In der Praxis funktionieren JavaScript-Menüs oft fehlerhaft.
Deshalb muß gründlich mit verschiedenen Browsern getestet werden.
Fazit: Sollte nur mit Bedacht angewandt werden. Oft gibt es
bessere Alternativen.
^ zurück zur Tabelle
Mit JavaScript können die Inhalte von Formularen vor dem
Versenden auf Korrektheit überprüft werden.
-
Formulare müssen in jedem Fall auch auf Serverseite geprüft werden,
weil die Datenübertragung fehlerhaft sein kann.
-
Ein Server kann flexibler auf Fehleingaben reagieren als
ein Skript. Deshalb sind Meldungen über Fehleingaben durch
den Server oft aussagekräftiger als die Fehlermeldung durch
ein Skript.
-
Als zusätzliche Option kann die Überprüfung mit JavaScript
sinnvoll sein, weil der Anwender ein schnelleres Feedback erhält
als wenn ein Formular erst beim Server geprüft wird.
Fazit: Bei sinnvoller Nutzung kann die Bedienbarkeit einer Webseite
verbessert werden.
^ zurück zur Tabelle
Manchmal stößt man auf Formulare, die sich verändern, wenn ein
Anwender bestimmte Eingaben macht.
-
Formulare, die sich verändern verwirren den Anwender. Hier sollte
erst einmal nach besseren Alternativen gesucht werden.
Fazit: Sollte nur in Ausnahmefällen benutzt werden.
^ zurück zur Tabelle
Viele Webadressen haben nur ein kurzes Leben. Deswegen werden
die alten Adressen häufig auf die aktuellen umgeleitet.
Manche Webdesigner benutzen zu diesem Zweck JavaScript.
Es gibt jedoch mehrere Alternativen:
-
Die Weiterleitung wird direkt vom Webserver übernommen.
Das ist die sicherste Methode, weil sie in allen Fällen
funktioniert.
-
Die Weiterleitung geschieht durch einen HTML-Befehl. Beispiel:
<head>
<meta http-equiv="refresh" content="0; url=http://www.gssi.de/">
</head>
Ebenso wie mit JavaScript funktioniert dies nicht immer. Im Inhalt
der alten Seite sollte auf die neue Webadresse verwiesen werden.
Fazit: Webadressen niemals mit JavaScript umleiten. Es gibt bessere Alternativen.
^ zurück zur Tabelle
JavaScript wird oft dafür benutzt, um beim Anklicken eines Links beim
Anwender ein neues Browserfenster zu öffen. Das ist nicht empfehlenswert,
denn:
-
Anfänger werden verwirrt, weil das neue Fenster das alte überdeckt
und der Zurück-Knopf deaktiviert ist.
-
Profis surfen in mehreren Fenstern parallel und verlieren die
Orientierung.
-
In der Praxis gibt es oft Layoutprobleme mit dem neu geöffnetem Fenster,
so daß wichtige Inhalte nicht sichtbar sind.
Fazit: Niemals benutzen. Die Bedienbarkeit einer Website wird verschlechtert.
^ zurück zur Tabelle
Da Webbrowser oft etwas eigenwillige Vorstellungen von HTML haben,
findet man im Web häufig Seiten, die auf spezielle Browserversionen
angepaßt sind. Die Browsererkennung funktioniert mittels JavaScript.
-
Die Produktion von verschiedenen Webseiten für verschiedene Browser
ist teuer und fehleranfällig.
-
In der Praxis funktioniert dieses Vorgehen im Allgemeinen nicht. Browserversionen
ändern sich oft. Webseiten für verschiedene Browser müssen permanent überprüft
und nachgebessert werden. Das ist teuer.
-
Viele der alten Tricks sind heutzutage überflüssig, weil sich die Browser
weiterentwickelt haben.
-
Falls es trotzdem unbedingt sein muß, empfiehlt es sich, eine Standardwebseite
zu bauen, die bei Bedarf auf eine andere umgeleitet wird. Auf diese Weise
funktioniert die Webseite auch ohne JavaScript.
Fazit: Sollte nur in Ausnahmefällen angewandt werden.
^ zurück zur Tabelle
Die Möglichkeiten von JavaScript verführen manche Web-Designer
zu technischen Spielereien wie z.B. hüpfende Links.
-
Spielereien sind für den Anwender fast immer verwirrend.
-
Bei manchen Seiten im Bereich Spaß oder Lifestyle ist
die Spielerei Selbstzweck. Hier kann der Einsatz sinnvoll
sein.
Fazit: Nur bei speziellen Seiten sinnvoll.
^ zurück zur Tabelle
Oft wird JavaScript benutzt, um ein bestimmtes Layout
zu erzwingen.
-
Web- und Drucklayout sind verschiedene Dinge. Der Versuch,
ein Drucklayout am Bildschirm zu erzwingen, führt zum
Verlust der webspezifischen Vorteile und setzt die
Bedienbarkeit einer Webseite herab.
-
Die realisierten Layouts führen häufig zu Problemen,
weil sie die Benutzbarkeit der Webseite herabsetzen
oder in bestimmten Situationen nicht funktionieren.
-
Mit dem aktuellen HTML-Standard lassen sich
auch anspruchsvolle Layouts realisieren.
Fazit: Nur selten sinnvoll.
^ zurück zur Tabelle
Manchmal findet man Seiten, in denen normale Links
durch JavaScript ersetzt worden sind oder in denen
das Abschicken von Formularen nur mit JavaScript
funktioniert.
-
Es ist schlichtweg Unsinn, einen Bestandteil von HTML durch
irgend etwas anderes zu ersetzten, das in vielen Fällen
nicht funktioniert.
Fazit: Nie benutzen.
^ zurück zur Tabelle