2009-08-04 18 views
15

¿Cómo funciona la zona de pruebas del motor de la aplicación Google? ¿Qué tendría que hacer para crear mi propia caja de arena (para permitir de forma segura a mis clientes ejecutar sus aplicaciones en mi motor sin darles la capacidad de formatear mi unidad de disco)? ¿Es solo magia de cargador de clases, manipulación de bytes o algo así?¿Cómo funciona el sandbox del motor de la aplicación Google?

+1

eliminé la etiqueta de gas porque no creo que represente sandbox de la aplicación google, y no creo que gnu assembler esté relacionado con esta pregunta. –

+0

Lo siento, podría haber escrito mal algo, he creado esta pregunta a través de un dispositivo portátil sin teclado. – Shahbaz

Respuesta

2

En el caso de Java, creo que se hace principalmente mediante la restricción de las bibliotecas disponibles. Como Java no tiene un concepto de puntero y no puede cargar código compilado de forma nativa (solo código de byte JVM), no puede salir del entorno limitado. Agregue un poco de programación apretada del proceso, ¡y listo!

Supongo que la parte más difícil es elegir las bibliotecas, para que sea útil mientras se está a salvo.

En el caso de Python, tuvieron que modificar la máquina virtual en sí, porque no se diseñó teniendo en cuenta la seguridad. Afortunadamente, tienen el propio Guido para hacerlo.

9

Probablemente necesites una combinación de un cargador de clases restrictivo y un conocimiento completo del Java Security Architecture. Probablemente ejecutará su JVM con un SecurityManager muy estricto especificado.

+1

Nota importante: SecurityManager NO le permite restringir el uso de la memoria del montón ni el uso de la CPU. No tiene otra opción que generar procesos separados para cada tarea/script. – Zorkus

0

para permitir con seguridad mis clientes ejecutar sus aplicaciones en mi motor sin darles la posibilidad de formatear el disco

Esto se puede lograr fácilmente usando el Administrador de seguridad de Java. Refiera this respuesta para un ejemplo.

+0

Se puede lograr, pero no fácilmente, incluso con 'SecurityManager' es toda una tarea. – Gautam

Cuestiones relacionadas