JavaScript – oder abgekürzt JS – ist eine beliebte Skriptsprache. Sie erlaubt – im Gegensatz zu HTML und CSS – dynamische Websites zu erstellen, Benutzerinteraktionen zu erlauben und auszuwerten sowie Inhalte während der Sitzung und ohne Seiten-Nachladen zu generieren oder zu verändern. Die Verarbeitung erfolgt dabei direkt im Webbrowser. Im Kern basiert JavaScript auf dem standardisierten Sprachkern ECMAScript. Dadurch ist die Skriptsprache zwar klassenlos, wird aber dynamisch typisiert und ist objektorientiert. Dank diesen objektorientierten Programmierparadigmen lässt sich JS je nach Bedarf objektorientiert, prozedural oder funktional programmieren. Mit der verwandt klingenden Programmiersprache Java hat die Skriptsprache kaum etwas gemein.
Inhalt
Mögliche Einsatzgebiete von JavaScript
JS-Codes werden innerhalb eines HTML-Dokuments eingefügt und erweitern so statische Designs um dynamische Funktionen. Der Browser führt den Code dann automatisch aus, sofern die Skriptsprache nicht deaktiviert wurde. Durch die Vielzahl an Funktionen lässt sich JavaScript sehr flexibel für verschiedenste Aufgabenfelder nutzen. Möglich sind etwa:
- Dynamische Veränderung von Webinhalten
- Interaktive Menüs
- Dialogfenster
- Aktualisierung von Elementen und Daten, ohne dass man die gesamte Website neu laden muss
- Nutzer können aktiv Seiteninhalte wie Texte oder Grafiken verändern
- Suchvorschläge während der Eingabe
- Überprüfung von Formulardaten vor dem Absenden
- Zugriff auf Cookies
Vorteile von JavaScript
Dank der kontinuierlichen Weiterentwicklung ist JS heute eine sehr komplexe und starke Websprache, die für viele Einsatzgebiete verwendet werden kann. Wie viele andere Skriptsprachen auch lässt sich JavaScript auf fast allen Browsern ausführen und ist nicht auf einen Anbieter beschränkt.
Die größte Stärke liegt allerdings in seinem flexiblen Einsatz. Als Multifunktionswerkzeug bietet es schier unendliche Möglichkeiten zur Implementierung von dynamischen Webinhalten. Dank der objektorientierten Eigenschaften unterliegt JavaScript keinen typenbasierten Einschränkungen. Zudem ist JS nicht auf Webbrowser beschränkt, sondern lässt sich Dank node.js auch auf Apache- oder nginx-Servern nutzen
Risiken durch JavaScript
So viele Möglichkeiten die Skriptsprache für die Webdarstellung bietet, so gefährlich kann auch ihr Einsatz sein. Für die meisten Webbrowser gibt es daher diverse Erweiterungen, um JS gänzlich zu blockieren oder nur ausgewählte Elemente zu erlauben. Das Hauptproblem von JavaScript liegt in der Möglichkeit, Prozesse im Hintergrund und ohne Zustimmung des Anwenders aktivieren zu können. So lassen sich parallel zum offensichtlichen Inhalt
- Trojaner einschleusen
- sensible Daten abfangen
- kritische Links verdecken
- Pop-Ups unaufgefordert anzeigen
- Kontextmenü und Kopierfunktion für ein erschwertes Speichern von Text und Bild deaktivieren
- Website-Inhalte deaktivieren
- Darstellungen im Webbrowser ungewollt ändern
Auch ein Datenaustausch zwischen zwei unabhängigen Websites bzw. Skripten ist möglich. Solche Cross-Site-Scripting-Angriffe werden allerdings durch das Sandbox-Prinzip unterbunden.
Sicherheitsaspekte
Sandbox-Prinzip
Über das Sandbox-Prinzip lassen sich solche Probleme lösen. Dabei führt man alle Befehlszeilen, Anwendungen, Websites und Domains in einem isolierten Bereich getrennt voneinander aus. Dadurch haben JavaScript-Befehle nur Zugriff auf die Ressourcen des Webbrowsers, nicht aber auf den gesamten PC des Anwenders. Zugriffe auf Dateisysteme sind so nicht mehr möglich und auch der Datenaustausch zwischen mehreren Instanzen wird so unterbunden.
JavaScript deaktivieren
Eine weitere Möglichkeit für mehr Sicherheit beim Einsatz von JS ist das Deaktivieren über den Browser. Viele Browser bieten heute integrierte Funktionen zum Blockieren von JS, andere lassen sich über entsprechende Erweiterungen aufrüsten. Dabei unterscheidet es sich, ob man generell jeden JS-Code oder anhand von Black- und Whitelists gezielt nur auf bestimmten Websites deaktivieren soll.
Das Problem: Entwickler wissen nie, auf welchen Browsern sich JavaScript korrekt ausführen lässt und ob der Code überhaupt funktioniert. Zudem werden manche Websites bei einer generellen Deaktivierung nicht korrekt dargestellt, Anwendungen funktionieren nicht und manche Inhalte fehlen gänzlich. Das ist einerseits positiv, wenn man nervige Pop-Ups und Werbung blockieren will. Andererseits kann der Besuch einer Website schnell frustrieren, wenn wichtige Funktionen für Dateneingabe oder Medienwiedergabe manuell reaktiviert werden müssen. Lesen Sie hier alles über Pop-Ups.
JavaScript und SEO
In Bezug auf die Suchmaschinenoptimierung bietet die Skriptsprache keine Vorteile. Crawler ignorieren bei der Indizierung einer Website JS explizit. Webinhalte, die nur über die Skriptsprache erreichbar sind, werden so gänzlich ignoriert. SEO-relevante Informationen müssen daher außerhalb von JavaScript erreichbar sein, um ein schlechteres Ranking zu vermeiden.
Entwicklung von JavaScript
JS wurde von Netscape im Jahr 1995 entwickelt. Ursprünglich unter dem Namen LiveScript veröffentlicht konnte sie anfangs nur Formularangaben vor dem Absenden überprüfen. Doch schon bald wurde die Skriptsprache mit praktischen Funktionen erweitert. Ziel war eine dynamische Darstellung von statischen HTML-Dokumenten im Webbrowser. Ermöglicht wurde dies durch
- Dynamische Inhalte im Dokument
- Interpretation von Nutzer-Verhalten und entsprechende Reaktion
- Dynamische Änderung von Website-Inhalten
- Generierung und Darstellung bestimmter Inhalte auf Abruf
JavaScript profitierte vom damaligen Vormarsch des Internets und verbreitete sich Ende der 1990er rasant – nicht zuletzt, da es fester Bestandteil des damals sehr beliebten Browsers Netscape Navigator war. In den folgenden Jahren hat man die Skriptsprache kontinuierlich um neue Features und Funktionen erweitert. Heute zählt JS neben HTML/CSS und PHP zu den festen Größen für die Website-Darstellung. Doch ist sie längst nicht mehr darauf beschränkt: Auch Server und Microcontroller nutzen die beliebte Skriptsprache.
Abgrenzung zu Java
Die Skript- und die Programmiersprache teilen sich nicht viel mehr als den Namen. Java wurde zeitgleich entwickelt und vom IT-Giganten Sun Microsystems auf den Markt gebracht. Netscape und Sun Microsystems kooperierten zu dieser Zeit eng miteinander. In Anerkennung an den Partner benannte Netscape daher seine Skriptsprache in JavaScript um. Mehr Gemeinsamkeiten als den ähnlich klingenden Namen teilen sich beide Sprachen jedoch nicht.
Janina ist Redakteurin der Web-Redaktion und außerdem für die Webagentur awantego.com tätig.