3 Stimmen

Java und JavaFX Sicherheit

Nach dem neuesten Java-Update (7u11) müssen Sie immer, wenn mein Applet auf einer Seite in Firefox geladen wird, die Anwendung mit einer großen Sicherheitswarnung ausführen, obwohl das Applet tatsächlich keinen Zugriff auf persönliche Informationen jeglicher Art hat.

In IE erscheint diese Warnung immer noch einmal, aber wenn Sie auf "immer zulassen" klicken, wird sie nicht mehr angezeigt. In Firefox wird auch nach dem Klicken auf "immer zulassen" jedes Mal, wenn Sie die Seite verlassen und zurückkehren, erneut darauf hingewiesen. Ich mache mir Sorgen, potenzielle Benutzer abzuschrecken.

Das Applet erstellt eine Netzwerkverbindung zu einem Daemon, der auf demselben Server/IP wie der Webserver gehostet wird (port 4444 vorerst). Früher hätte dies keinen Sicherheitsverstoß dargestellt, aber jetzt muss es genehmigt werden.

Das Applet sendet sich kontinuierlich ändernde Informationen (Preise, Zeit usw.) an den Client und die Daten müssen eine Live-Verbindung mit dem Server aufrechterhalten, um korrekt dargestellt zu werden. Der Client sendet nur eine begrenzte Menge an Daten (im Wesentlichen handelt es sich um ein selbstentwickeltes Protokoll zur Bestimmung, welche Informationen angezeigt werden sollen). Das Applet greift nicht auf persönliche Dateien oder andere Informationen im System zu. Dieses Applet greift nur auf seine eigenen Ressourcen (Dinge, die in der .jar-Datei enthalten sind) zu und nicht auf Dateien auf der Festplatte des Benutzers.

Zum Thema Java-Update: Nach dem Aktualisieren von Java wurde beim Besuch meiner Seite mit dem Applet ein Fehler "Sie müssen Java installieren" angezeigt. Wenn Sie auf "Downloaden und Installieren" klicken, wird angezeigt, dass Java bereits installiert ist. Möchten Sie es erneut installieren? Wenn Sie nein sagen, wird der Fehler immer noch angezeigt. Wenn Sie auf "Erneut installieren" klicken, wird das Applet jetzt jedoch mit all dem Sicherheitskram geladen.

Ich weiß, dass es einen Workaround dafür geben muss. Yahoo Games und Pogo Games verwenden die Java-Umgebung mit einigem Client-Server-Verkehr, zeigen jedoch keine Sicherheitswarnungen an. Der einzige Unterschied besteht darin, dass mein Applet JavaFX verwendet, während Yahoo und Pogo Swing oder AWT verwenden.

4voto

jewelsea Punkte 139897

Mit Java 7u11 wurde der Standard-Sicherheitspegel für Java-Applets von Mittel auf Hoch geändert - dies kann die neuen Sicherheitswarnungen verursachen, die Sie sehen, wenn Ihre Anwendung mit Java 7u11 ausgeführt wird. Aus den Java 7u11 Release Notes:

Zusammenfassung: Standard-Sicherheitspegel auf Hoch geändert Der Standard-Sicherheitspegel für Java-Applets und Web Start-Anwendungen wurde von "Mittel" auf "Hoch" erhöht. Dies betrifft die Bedingungen, unter denen unsignierte (sandboxed) Java-Webanwendungen ausgeführt werden können. Früher konnten unsignierte Applets und Web-Start-Anwendungen problemlos ausgeführt werden, solange die neueste sichere Java-Version installiert war. Mit der "Hoch"-Einstellung wird der Benutzer immer vor der Ausführung einer unsignierten Anwendung gewarnt, um eine stille Ausnutzung zu verhindern.

Nach meiner Meinung gibt Oracle damit zu, dass die Angriffsfläche für Java zu groß ist, um Drive-by-Download-Angriffe angemessen zu verhindern, bei denen ein Benutzer einfach eine Webseite aufruft, die Java ausführt und die Webseite eine ungepatchte Sicherheitslücke in Java ausnutzt, um das System des Benutzers zu kompromittieren. Oracle reagiert darauf, indem der Sicherheitspegel für Java-Anwendungen im Browser erhöht wird, sodass sie niemals ohne die Zustimmung des Benutzers ausgeführt werden können. Viele würden sagen, dass dies im Allgemeinen gut für das Internet ist, obwohl es unerwünscht ist, wenn Sie zuvor darauf vertraut haben, dass eine unsignierte, nicht bösartige Anwendung ohne Sicherheitswarnung an einen Benutzer übermittelt wird.


Bei einem Yahoo- oder Pogo-Spiel ist das Spiel wahrscheinlich signiert. In diesem Fall wird beim ersten Ausführen eines Spiels des Herausgebers eine Warnmeldung angezeigt, aber der Benutzer kann wählen, dem Herausgeber immer zu vertrauen. In diesem Fall wird dem Benutzer bei späterem Zugriff auf ein Applet des gleichen Herausgebers nie eine Warnung angezeigt. Sie könnten dasselbe für Ihre Anwendung tun, wenn Sie möchten.


Sie könnten den Benutzer auch auffordern, ihre Sicherheitseinstellungen von Hoch auf den Standard (z. B. von Hoch auf Mittel) zu senken, sodass bei Ausführung Ihrer unsignierten Anwendung keine Warnmeldung angezeigt wird - jedoch ist das nicht ratsam, da Oracle die Standard-Sicherheitseinstellungen aus einem guten Grund von Mittel auf Hoch geändert hat.


Es sollte keinen Unterschied im Verhalten von Warnungen für JavaFX im Vergleich zu Swing- oder AWT-Applets geben - wenn es einen gibt, handelt es sich um einen schwerwiegenden Fehler, der an Oracle gemeldet werden muss.


Unabhängig von den Java-Sicherheitseinstellungen können einzelne Browser-Anbieter entscheiden, Java oder eine Java-Version zu blockieren und dem Benutzer eine Warnung anzuzeigen. Einige Beispiele dafür, wie diese Blockierungsnachrichten in verschiedenen Browsern aussehen, finden Sie unter Aussehen der deaktivierten Java-Warnung und Auswirkung auf Java Web Start-Apps (der Beitrag erwähnt Web Start-Apps, aber die Warnbilder im Beitrag sind relevant für Applets - unabhängig davon, ob es sich um Swing- oder JavaFX-basierte Applets handelt).


Hier ist eine Beispielwarnmeldung, die Java für eine unsignierte Anwendung generiert. Die Warnmeldung wurde unter Mac OS X 10.8 durch Klicken auf die Schaltfläche "Java überprüfen" auf der Oracle java.com Website bei Verwendung von Java 7u11 erstellt.

Sicherheitswarnung

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X