2010-05-19 11 views
15

Potrzebuję stworzyć środowisko do uruchomienia potencjalnie niezaufanego kodu. Program może łączyć się ze wstępnie skonfigurowanym adresem: port i nic więcej (nawet odczytać czas systemowy). Zredagowałem białą listę klas. Przeszukałem podobne pytania, ale znalazłem tylko szablon oparty na SecurityManager, którego AFAIK jest przestarzały. Czy ktoś może mi dać prostą próbkę, jak uruchomić kod w piaskownicy na podstawie zasad bezpieczeństwa i AccessController?Utwórz piaskownicę Java opartą na zasadach bezpieczeństwa

Odpowiedz

15

O ile mi wiadomo, to nadal SecurityManager uruchamia kontrole bezpieczeństwa. Ale zdaje się teraz delegować do kontrolera AccessController.

Najpierw musisz włączyć menedżera zabezpieczeń:

-Djava.security.manager

Jeśli pominąć ten argument, że nie będzie żadnej piaskownicy.

drugie trzeba powiedzieć, gdzie znaleźć plik zasad:

-Djava.security.policy =

To doda swoje uprawnienia do tych już zdefiniowanych w domu java. Oryginalne reguły piaskownicy w .../jre/lib/security/java.policy. Jeśli jednak chcesz, aby Twoja polityka była jedyną, musisz użyć podwójnego "=". W ten sposób całkowicie kontrolujesz, co jest dozwolone.

Na przykład:

-Djava.security.policy ==

Radziłbym wam używać "" policytool dostarczonymi z Java. Jest dość prosty, ale pomaga szybko zapisać plik zasad z poprawną składnią.

Mam nadzieję, że to pomoże ...

Powiązane problemy