This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-05-22
Channels
- # architecture (1)
- # aws (3)
- # beginners (78)
- # boot (33)
- # cider (49)
- # cljs-dev (3)
- # clojure (82)
- # clojure-berlin (2)
- # clojure-dusseldorf (14)
- # clojure-gamedev (75)
- # clojure-italy (15)
- # clojure-nl (2)
- # clojure-poland (9)
- # clojure-russia (1)
- # clojure-spec (11)
- # clojure-uk (91)
- # clojurescript (17)
- # core-async (2)
- # cursive (1)
- # data-science (3)
- # datascript (34)
- # datomic (13)
- # docs (2)
- # duct (32)
- # emacs (8)
- # fulcro (95)
- # instaparse (17)
- # jobs (2)
- # jobs-discuss (1)
- # jobs-rus (4)
- # leiningen (1)
- # luminus (1)
- # lumo (4)
- # mount (1)
- # nrepl (1)
- # off-topic (98)
- # onyx (13)
- # portkey (12)
- # re-frame (10)
- # reagent (11)
- # remote-jobs (4)
- # rum (3)
- # shadow-cljs (34)
- # specter (7)
- # sql (1)
- # tools-deps (8)
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ś 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