Witam,
czy jest możliwe, żeby tak wyspecyfikować, żeby JVM wykonywała jedynie zaufany kod?
Witam,
czy jest możliwe, żeby tak wyspecyfikować, żeby JVM wykonywała jedynie zaufany kod?
Witam,
nie jestem pewien czy zrozumiałem Pańskie pytanie, opiszę jak działa w Javie mechanizm wykonywania kodu.
Wirtualna maszyna może zostać uruchomiona z tzw. SecurityManagerem.
W kodzie jest on osiągalny przy pomocy wywołania System.getSecurityManager().
Niektóre metody standardowych bibliotek Javy sprawdzają czy mogą się wykonać. Należą do nich:
- Runtime.exit()
- File.canWrite()
oraz wiele innych. To czy operacja jest dozwolona wynika z aktualnie używanego przez JVM pliku *.policy.
Można przyznawać uprawnienia dla określonego kodu, np.
grant codeBase "file:/d:/altkom.jar" { permission java.security.AllPermission; };
ale dotyczy to tylko zezwoleń, które są jawnie sprawdzane w kodzie.
Podsumowując: jeśli kod aplikacji będzie napisany tak że np. na początku każdej metody nastąpi sprawdzenie przy pomocy SecurityManagera czy operacja (kod) ma być wykonany to Pańskie wymaganie będzie spełnione.