Gast
#5077384
Hallo, in Java lässt sich der Zugriff auf manche Ressourcen (Netzwerk, Dateisystem, usw) durch einen Security Manager und eine Policy einschränken. Dabei ist es auch möglich, einzelnen Komponenten/Libraries selektiv den Zugriff zu erlauben bzw. zu verbieten. Wie ist das aber technisch genau umgesetzt? Die eigentlichen Syscalls müssen ja von der VM aufgerufen werden, das geht ja in reinem Java nicht. An welcher Stelle werden nun die entsprechenden Checks durchgeführt? Ist das in die VM hart reingecodet oder in der Class Library zu finden? Laut Oracle Doku (https://docs.oracle.com/javase/7/docs/api/java/lang/SecurityManager.html) ist das folgendermaßen: The SecurityManager class contains many methods with names that begin with the word check. These methods are called by various methods in the Java libraries before those methods perform certain potentially sensitive operations. Daraus schließe ich, dass diese Checks in der Class Library durchgeführt werden. Was hindert einen jetzt aber daran, den entsprechenden Code aus der Class Library selber zu implementieren und diese Checks einfach zu löschen? Könnte man dann nicht einfach von unpriviligiertem Code aus auf alle Ressourcen zugreifen? Viele Dank schonmal für jegliche Klarstellung