Ursprungsmitteilung
Thema Neue Sicherheitsanforderungen für Applets 
Autor Aegidius Plüss 
Eingangsdatum 2014-01-24 09:53:38.0 
Mitteilung Seit im Laufe des vergangenen Jahres mehrere Sicherheitslücken bei der Ausführung von Applets bekannt wurden, haben die Browser-Hersteller rigorose Sicherheitsanforderungen für Applets eingeführt. In der Regel wird die Ausführung bestehender Applets, die den neuen Sicherheitsanforderungen nicht genügen, durch den Browser unterbunden.

Neu:

- Auf dem Rechner muss eine der neueren Versionen des Java-Runtime-Environments installiert sein
- Alle Applets müssen über eine JAR-Datei ausgeführt werden, die signiert ist. Werden zusätzliche Bibliotheken verwendet, so müssen diese mit dem gleichen Signatur-Key signiert sein
- Die JAR-Datei muss ein MANIFEST.MF enthalten, in dem gewisse Einträge nicht fehlen dürfen

Bei der Entwicklung eines Applet ist daher wie folgt vorzugehen:

1. Applet-Source wie üblich compilieren. Die dabei entstehenden class-Dateien in einem Verzeichnis, z.B. mydist, sammeln
2. Ein Unterverzeichnis META-INF in mydist erstellen und darin eine Datei MANIFEST.MF erzeugen, die folgende Einträge enthält:


Manifest-Version: 1.0
Created-By: 1.6.0_31 (Sun Microsystems Inc.)
Application-Name: *
Permissions: all-permissions
Codebase: *


Die ersten zwei Einträge können auch andere Versionen anzeigen. Der Application-Name ist frei wählbar. Dieser wird im Browser bei der Security-Warning angezeigt.

3. Das Verzeichnis, inklusive Unterverzeichnis, zippen, z.B. in den Namen myapplet.zip

4. Die ZIP-Datei in eine JAR-Datei umbenennen, z.B. myapplet.jar

5. Die JAR-Datei mit dem JarSigner signieren. Das Vorgehen wird im Internet an verschiedene Stellen ausführlich beschrieben. Es kann ein selbsterzeugter Signatur-Schlüssel verwendet werden (gekaufte Signaturen sind teuer).

6. Alle verwendeten externen LIbrary-JARs ebenfalls signieren (z.B. für die Turtle, GPanel: aplu5.jar, für GameGrid JGameGrid.jar).

7. Das Applet-Tag in der HTML-Datei (z.B. myapplet.html) muss typisch wie folgt aufgebaut sein:

<applet code="Confetti.class" archive="myapplet.jar, aplu5.jar" width="501" height="501"></applet>

wobei Confetti.class die Hauptklasse des Applets ist (mit den Methoden init(), start(), usw.)
(aplu5.jar kann für "reine" Java-Programme, also solche, die nur das Java-API verwenden, entfallen)

8. Alle Dateien in dasselbe Verzeichnis auf den Web-Host kopieren, also myapplet.html, myapplet.jar, event. aplu5.jar.

9. myapplet.html kann nun als URL http://<deinHost>/myapplet.html aufgerufen werden
 
 
      
Antworten
Kein Eintrag