Staramy się udostępniać elementy skryptowe w produkcie typu "enterprisy". Chcielibyśmy użyć groovy, ale mamy trudności z zabezpieczeniem bardzo podstawowych rzeczy.Niezaufane Groovy Script Security w Javie
Na przykład, chcielibyśmy, aby zapobiec klienta z po prostu dzieje
Class.forName("my.company.internal.SecruityTools").runAsAwesome(...)
Mamy zainstalowany menedżera zabezpieczeń za pomocą polityki, która pozwala accesDeclaredMembers
tylko i zostały nadpisane metody checkPackageAccess
i tylko umożliwić białe wymienionych pakietów . Niestety domyślny łańcuch classLoader wydaje się po prostu ominąć to i załadować klasę jak.
Wydaje się, że jest to dość powszechny/omawiany problem, ale nie mogę na całe życie znaleźć biblioteki lub nawet dobrego bloga na temat blokowania niezaufanych skryptów w kontekście znacznie większej aplikacji .
Czy ktoś zrobił to z powodzeniem? Czy brakuje mi dość oczywistych postów/koncepcji? Czy istnieje już do tego solidna biblioteka? Może Groovy.tinFoilHatMode(true)
?
Może [ta odpowiedź na podobne pytanie] (http://stackoverflow.com/a/6490674/274466) ma jakąś pomoc? Odpowiedź wskazuje na [ten wpis na blogu] (http://www.jroller.com/melix/entry/customizing_groovy_compilation_process), który oferuje prawdopodobny mechanizm zapobiegania tego rodzaju problemom ... – ig0774
Jeśli się nie mylę, sporo dynamicznych funkcji językowych, które mogą zapobiec wszelkim rodzajom ochrony AST. Coś jak obiekt. ("Ge" + t "+" ClassLoader ")." Fo "+ $ rname lub coś takiego głupiego –
@Ambience Czy próbowałeś procedur sugerowanych przez ig0774? Nie wierzę, że możesz ich uniknąć z takimi sztuczkami jak ty sugerujesz, a jeśli możesz, to jest coś, co należy zgłosić z powrotem do zespołu Groovy jak najszybciej –