Estoy escribiendo una aplicación que permite a los usuarios de mi aplicación extenderla usando Clojure. El Clojure se ingresa a través de una página web en la aplicación y "evadido" para ejecutarse. Mi pregunta es ¿cómo puedo guardar este código ingresado por los usuarios para que no corrompa nada o llamar a System.exit o algo así?¿Cómo puedo sandbox Clojure?
7
A
Respuesta
3
Debería poder restringir el acceso al código configurando el nivel JDK permissions. Eche un vistazo a la configuración de RuntimePermission, por ejemplo, hay una configuración directa para inhibir detener la JVM (por ejemplo, System.exit
).
17
Hay una biblioteca para eso. lazybot en Clojure IRC chanel lo usa. Puede encontrarlo aquí: https://github.com/flatland/clojail
Cuestiones relacionadas
- 1. Sandbox IronPython?
- 2. Javascript Sandbox
- 3. Javascript Sandbox unit testing
- 4. ¿Cómo puedo lanzar una excepción en Clojure?
- 5. ¿Cómo puedo mapear una macro en Clojure?
- 6. ¿Cómo puedo definir una función en Clojure?
- 7. Crear Sandbox C#
- 8. Rails 3 Sandbox consola
- 9. Qué es un Sandbox
- 10. Paypal SandBox IPN Historial
- 11. Sandbox y NSTask
- 12. Python, safe, sandbox
- 13. ¿Qué es un sandbox extjs?
- 14. Uso de Google Chrome Sandbox
- 15. En Clojure, ¿cómo puedo implementar interfaces de recopilación Clojure estándar en mis propios registros y tipos?
- 16. Google Analytics Realtime Sandbox Entorno
- 17. ¿Cómo puedo actualizar un elemento vectorial en Clojure?
- 18. ¿Cómo puedo usar Clojure REPL junto con Qt Jambi?
- 19. ¿Cómo puedo lanzar una clase de Java en Clojure?
- 20. ¿Cómo puedo generar funciones recursivas memorizadas en Clojure?
- 21. ¿Cómo puedo examinar el bytecode JVM para una función clojure?
- 22. En Clojure, ¿cómo puedo pasar múltiples argumentos a un defmethod?
- 23. ¿Cómo puedo actualizar un elemento en un vector en Clojure?
- 24. ¿Cómo puedo hacer la transición de Java a Clojure?
- 25. cómo puedo crear un vector grande en clojure
- 26. ¿Cómo puedo ordenar un conjunto de mapas clojure?
- 27. ¿Cómo puedo eliminar un elemento de una secuencia en Clojure?
- 28. ¿Cómo puedo obtener la pila de llamadas en Clojure?
- 29. ¿Cómo puedo refactorizar el código fuente de Clojure?
- 30. ¿cómo puedo ejecutar una aplicación OS X con sandbox sin sandboxing?
Cuál de los bots IRC#clojure usa, de todos modos. El otro usa [clojail] (https://github.com/Raynes/clojail). – amalloy
Esto ya no es correcto. sexpbot estaba usando clj-sandbox antes de escribir clojail. clojurebot nunca usó ninguna de las bibliotecas de sandboxing, optando por un arenero hecho en casa. – Rayne
Se actualizó esta respuesta para que sea objetiva. – Rayne