cześć, szukam rozwiązania pozwalającego na bezpieczne wywoływanie kodu dostarczanego przez użytkownika, tzn. użytkownik pisze funkcję, a ja chcę ją skompilować i odpalić. Pisząc bezpieczne mam na myśli, że z kodu użytkownika nie ma dostępu do danych mojego programu, ani do funkcji systemowych (np. System/Exit), Thready też mu nie są potrzebne
ktoś jakieś doświadczenie / przemyślenia w tym temacie ma?
ktoś używał może: https://github.com/Raynes/clojail ?
@masztal jakiś czas temu to przechodziłem i ogólnie konkluzja jest taka, że raczej ciężko skonstruować sandboxa, z którego nie da się wyskoczyć. ja skończyłem z odseparowanym od aplikacji kontenerem dockerowym z odpowiednio dostosowanym SecurityManagerem i security policies. Tematy, które cię interesują to tak naprawdę "jvm sandboxing".
ok, dzięki za wskazówki 🙂 a jak zapewniłeś komunikację między aplikacją a kontenerem?
poprzez EDN. ja akurat bazowałem na plikach, ale równie dobrze możesz skonstruować prosty RPC, np. korzystając ze slackera https://github.com/sunng87/slacker
piękna sprawa ten slacker na pierwszy rzut oka 😉
dzięki wielkie 😉
nie ma sprawy. powodzenia 🙂