Vorrei fornire uno script per l'utente finale (che verrebbe eseguito sul lato server) in un'applicazione. Ho letto e ho scoperto che il sandboxing è molto più un problema di quanto pensassi.Scripting per l'utente finale
Non mi interessa davvero cosa è la lingua è. LUA, Python, JavaScript, sto bene con qualsiasi cosa leggibile.
Quanto è difficile eseguire una funzione in uno script non affidabile, passare alcune informazioni e ottenerne altre? Ho letto che JVM Security Manager è un no-go e che Python è quasi invisibile, ma ho pochissime conoscenze sull'argomento e non posso davvero giudicare le fonti.
Come posso, ad esempio, interpretare una funzione in JS che accetta un JSON (da, diciamo, Java, o Python, o anche node.js) e recupera il JSON restituito?
Vorrei evitare di implementare un interprete di linguaggio i-just-know-it-will-suck pitone.
JavaScript sembra l'opzione più sicura qui. È fondamentalmente progettato per questo scopo esatto. –
Per quanto riguarda il sandboxing Python, c'è [qualche consiglio] (http://wiki.python.org/moin/Asking%20for%20Help/How%20can%20I%20run%20an%20untrusted%20Python%20script%20safely%20 % 28i.e.% 20Sandbox% 29) là fuori. –
@Lattyware: il consiglio per proteggere CPython è fondamentalmente inutile, IMHO. Raccomandano il chroot (che non è sicuro) e la virtualizzazione (che è costosa). –