2012-03-19 26 views
6

Soy nuevo en V8 y planeo usarlo en una aplicación web de Python. El objetivo es permitir que los usuarios envíen y ejecuten ciertos scripts JS. Obviamente, esta es una amenaza a la seguridad, por lo que estoy buscando recursos que documenten las formas en que uno podría 'bloquear' v8. Por ejemplo, ¿puedo crear una lista blanca de funciones a las que se permite llamar? ¿O una lista negra de bibliotecas no permitidas para ser referenciadas?Cómo "bloquear" V8?

+0

BTW ¿por qué no les permite enviar scripts de Python? Esto simplificaría su arquitectura un poco, creo. :-) (Tuve que mencionarlo). Y sí, es posible crear un entorno seguro de Python seguro para esos scripts – Kos

+0

@Kos ¿cómo? También estoy interesado, pero sigo leyendo en todas partes que Python es casi inservible, con mil ejemplos de cómo salir – slezica

Respuesta

0

¿Simplemente bloquear la instancia de V8 (es decir, sin darle permisos en un chroot) y matar el proceso si no regresa después de un cierto período de tiempo no funciona?

1

Si utiliza un V8 simple (es decir, no algo así como node.js), no habrá ninguna función peligrosa. JavaScript no tiene un stdlib que contenga funciones del sistema de archivos, etc.

Lo único que un usuario malintencionado puede hacer es crear bucles infinitos, recursiones profundas y cerdos de memoria.

+0

Perdón por el comentario tardío, pero también estoy interesado en esto. ¿Cómo puede evitar que el usuario exceda una cuota de memoria/procesamiento? – slezica

+0

No tengo idea. Por favor [publique una nueva pregunta] (http://stackoverflow.com/questions/ask) para esto. – ThiefMaster

+0

Acabo de publicar una nueva pregunta con respecto a esto: http://stackoverflow.com/questions/11637075/how-do-i-prevent-malicious-javascript-in-v8-with-python – Gattster