Bei dem bisher geschilderten Vorgehen stellt sich natürlich die Frage, inwiefern
dabei die Sicherheit des Systems gefährdet ist. Ein fremdes Programm aus dem
Netz zu laden und auszuführen, stellt ein erhebliches
Sicherheitsrisiko dar. Java trifft dagegen einige Vorkehrungen. Einerseits gibt
es ohne das Konstrukt des Datentyps Zeiger nur eine eingeschränkte Möglichkeit
der Manipulation des lokalen Systems. Ferner wird jedes Java-Bytecode-Programm
nach dem Laden und vor der Ausführung sowie zur Laufzeit überprüft und
erkennbar unzulässige Codefolgen werden erst gar nicht ausgeführt. Ferner kann ein
WWW-Browser die erlaubten Zugriffe für ein Applet einschränken und dies
passiert
auch (bis hin zu dem Ausmaße daß bei manchen Browsern diese
Maßnahmen gar nicht
gelockert werden können). Die Einschänkungen betreffen u.a. das Lesen und
Ändern von Systemparametern, Zugriffe auf das lokale Dateisystem, den Aufruf von
anderen Programmen, den Aufbau von Netzverbindungen zu anderen Rechnern
(außer
dem lokalen Rechner und jenem von dem das Applet geladen wurde). Eingeschränkt
ist auch die Identifizierung des aufrufenden Benutzers und das
,,unbeaufsichtigte``
öffnen von Fenstern (die evtl. andere Programme simulieren könnten). Was
jedoch
nicht verhindert werden kann ist der Mißbrauch des Systems in Form von
übermäßigem Ressourcenverbrauch.
All diese Einschränkungen beziehen sich aber nur auf Applets die aus dem Netz
geladen wurden. Applets die lokal geladen wurden haben nach wie vor volle
,,Handlungsfreiheit``. Die neueste Version von Java (Version 1.1) bietet zudem
die Möglichkeit Applets zu Zertifizieren indem dem Java-Bytecode eine
digitale Unterschrift beigefügt wird und der lokale Nutzer definieren
muß,
welchen Appletanbietern er ,,vertraut``.