clojure-poland

2018-05-22T07:00:15.000038Z

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

2018-05-22T07:00:26.000009Z

ktoś jakieś doświadczenie / przemyślenia w tym temacie ma?

2018-05-22T07:00:34.000207Z

ktoś używał może: https://github.com/Raynes/clojail ?

michal 2018-05-22T09:44:11.000045Z

@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".

2018-05-22T09:52:39.000415Z

ok, dzięki za wskazówki 🙂 a jak zapewniłeś komunikację między aplikacją a kontenerem?

michal 2018-05-22T09:54:06.000353Z

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

2018-05-22T09:59:20.000249Z

piękna sprawa ten slacker na pierwszy rzut oka 😉

2018-05-22T09:59:24.000084Z

dzięki wielkie 😉

michal 2018-05-22T10:07:59.000052Z

nie ma sprawy. powodzenia 🙂