Kann ich der Java SecurityManager-Sandbox vertrauen?

Ich schreibe eine JavaFX2-Anwendung, die willkürlichen Code akzeptiert, der von entfernten Standorten geladen werden soll. Für mich war ein benutzerdefinierter SecurityManager, ClassLoader und ProtectionDomain der richtige Weg. Leider scheint dies das selbe Setup zu sein, das für SandboxApplets verwendet wird, was eine Menge Sicherheits-Exploits verursacht hat und das wiederum Leute dazu gebracht hat, Java Web Plugin zu fürchten und es vollständig aus ihrem Betriebssystem zu entfernen.

Ist Java Sandbox eine sichere Umgebung, in der nicht vertrauenswürdiger Code ausgeführt werden kann, oder ist nur das Java Web Plugin als Ganzes unsicher?

    Der Sicherheitsmanager stellt Ihre App bereit. mit genau so viel Schutz wie das Plug-in. Was angesichts der Sicherheitslücken “nicht viel” war.

    Es verstopft derzeit die bekannten Sicherheits-Bugs (AFAIU). Aber wie in jedem komplexen Plug-in gibt es wahrscheinlich noch mehr zu entdecken oder möglicherweise in neue Versionen oder neue APIs einzuführen.

    Im Grunde genommen sollte Ihr Code etwas über einen Standard-Sicherheitsmanager hinausgehen, indem er ganze Pakete auflistet und (falls erforderlich) Hilfsmethoden zur Verfügung stellt, mit denen er Aktivitäten ausführen kann, die normalerweise von diesem Paket erledigt werden.

    Aber dieser Ratschlag ist der erste Punkt in einer Liste mit mehr als 20 Punkten, dass ich vielleicht 2 oder 3 der möglichen Dinge einer App nennen könnte. Möglicherweise müssen Sie sich dagegen wehren, dass Sie nicht vertrauenswürdigen Code ausführen. Obwohl das nicht die Frage ist.

    Ist Java Sandbox eine sichere Umgebung, auf der nicht vertrauenswürdiger Code ausgeführt werden kann.

    Nein. Die Java-Sicherheit bietet möglicherweise einen guten Ausgangspunkt für die Sicherheit vor nicht vertrauenswürdigem Code, muss jedoch für die App spezifisch erweitert werden und andere Elemente enthalten, um für die erforderliche Aufgabe geeignet zu sein. Auch dann sind die “unbekannten Sicherheitslücken” (sowohl in der JRE als auch in Ihren eigenen Sicherheitsbemühungen) zu beachten.