Tworzę aplikację, która pozwala użytkownikom na uruchamianie przesłanych plików Java. Próbuję ograniczyć możliwości programu Security Manager. Czy pusty plik polityki byłby najbardziej restrykcyjny, nie pozwalając mu zrobić tak dużo jak to możliwe? Czy to ograniczyłoby je do robienia czegokolwiek podstawowego, czego nie powinienem ograniczać?Czy pusty plik zasad zabezpieczeń Java byłby najbardziej restrykcyjny?
Odpowiedz
Tak, polityka bezpieczeństwa, które daje żadnych uprawnień jest najbardziej restrykcyjna polityka można określić ze standardowym Java Menedżer Bezpieczeństwa i uniemożliwiałyby kod dowolny uruchomiony w tym JVM od robienia czegokolwiek, co wymaga zgody zabezpieczeń. Główne interfejsy API Java zasadniczo sprawdzają różne uprawnienia zabezpieczeń, zanim pozwolą, aby kod działający pod kontrolą Security Managera robił wszystko, co może być szkodliwe, więc teoretycznie bezpiecznie jest uruchomić niezaufany kod, w którym nie udzielono żadnych uprawnień.
Istnieje kilka wyjątków: na przykład kod załadowany z systemowej ścieżki klasy może wywoływać System.exit(), który zatrzyma aplikację, a kod uruchomiony bez uprawnień może nadal tworzyć dowolną liczbę nowych wątków, które mogą zablokuj system. Jeśli są to obawy, powinieneś rozważyć napisanie niestandardowego Security Managera.
W twoim przypadku, jeśli używasz kodu aplikacji i kodu dostarczonego przez użytkownika w tej samej maszynie JVM, musisz dać swojemu kodowi aplikacji uprawnienia do robienia rzeczy, które musi wykonać, nie udzielając jednocześnie zezwoleń na niezaufany kod , więc trzeba byłoby dodać coś takiego do pliku polityki:
grant codeBase "file:path/to/trusted/application/jars" {
permission java.security.AllPermission;
};
należy pamiętać, że jeśli jesteś określający plik reguł w wierszu poleceń trzeba stosować podwójnej równych (np - Djava.security.policy ** == ** policy.file), w przeciwnym razie twoja polityka rozszerzy domyślną politykę bezpieczeństwa Java, która przyznaje minimalny zestaw uprawnień do całego kodu.
- 1. Sprawdź, czy plik jest pusty
- 2. Czy plik jest pusty sprawdź
- 3. Java: modyfikator dostępu bardziej restrykcyjny niż "chroniony", mniej restrykcyjny niż "prywatny"?
- 4. Jak wyłączyć menedżera zabezpieczeń Java?
- 5. Model zabezpieczeń Java ClassLoader
- 6. Java RMI bez menedżera zabezpieczeń
- 7. Sprawdź, czy plik wejściowy jest pusty jquery
- 8. Jak sprawdzić, czy plik jest pusty?
- 9. Sprawdź, czy określony plik wejściowy jest pusty
- 10. Czy plik RandomAccessFile w java odczytuje cały plik w pamięci?
- 11. Gdzie umieścić plik konfiguracji zabezpieczeń w WAR?
- 12. Python - Sprawdź, czy plik jest pusty, czy nie.
- 13. Czy niektóre RewriteCond wpływają na wiele zasad
- 14. Czy kompilator oparty na chmurze byłby wykonalny?
- 15. Java - Sprawdź, czy JTextField jest pusty czy nie
- 16. Android mediarecoder zapisuje pusty plik
- 17. Przekierowanie wyjścia powoduje pusty plik
- 18. szynach production.log plik jest pusty
- 19. Różnice między mechanizmami zabezpieczeń WS
- 20. Zasada najlepszych zasad
- 21. Jak sprawdzić, czy plik wejściowy jest pusty w JQuery
- 22. Najlepszy sposób na sprawdzenie, czy plik jest pusty (php)?
- 23. Jaki byłby właściwy modyfikator?
- 24. Jaki typ danych w wyroczni byłby odwzorowany na int Java?
- 25. Jaki byłby właściwy sposób serializacji tego obiektu Java w Clojure?
- 26. Najbardziej wydajna biblioteka zbiorów prymitywów Java
- 27. Czy operator odwołań warunkowych byłby dobry w języku C#?
- 28. Czy klucz w właściwości Java może zawierać pusty znak?
- 29. Jak sprawdzić, czy JSONArray jest pusty w java?
- 30. Wdrożenie standardowych zasad recyklingu
co próbujesz ograniczyć? –
Wszystko, co może być szkodliwe. Wydaje się, że Menedżer zabezpieczeń działa, zezwalając na uprawnienia, więc nie jestem pewien, co jest ograniczone, jeśli w ogóle nie zezwalasz na jakiekolwiek uprawnienia. – Greg
Zdefiniuj "pusty menedżer bezpieczeństwa". – EJP