Nota: Te agradecería algunas sugerencias de etiquetas para este ..que permite al usuario una versión de espacio aislado de un lenguaje de programación
Me gustaría ofrecer mis usuarios un método de manipulación de datos mediante programación en el servidor. Esto se haría usando un editor de código en el navegador para ser ejecutado en una fecha posterior, no muy diferente a la manera en que https://www.onx.ms emplea.
Me gustaría evitar escribir un DSL (¿una barrera para la adopción?), Y preferiría que el lenguaje que escribe el usuario sea JavaScript o basado en Ruby.
Mi preocupación obvia es la seguridad. Entiendo los peligros de permitir que el código generado por el usuario se ejecute en el lado del servidor, pero ¿qué pasos puedo tomar para eliminar el riesgo?
¿Los sitios como http://railsforzombies.com realmente usan irb
, o es mucho más simple que eso?
Caja no hace sandbox contra los ataques de denegación de servicio. No tiene defensa contra un usuario que ejecuta un bucle eterno 'while (true) {}' o asignando mucha memoria. Javascript en un iframe de espacio aislado tiene las mismas garantías de seguridad (y falta de protección de dos) que Caja, siendo más simple de usar y más estándar. – AgentME