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?
Respuesta
¿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?
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.
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
No tengo idea. Por favor [publique una nueva pregunta] (http://stackoverflow.com/questions/ask) para esto. – ThiefMaster
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
- 1. Edificio v8 sin JIT
- 2. V8 FunctionTemplate Clase Instancia
- 3. Google Javascript V8 - multithreading
- 4. Cómo convertir valor v8 a matriz
- 5. ¿Cómo uso v8 en un hilo?
- 6. ¿Cómo se configura v8 opciones en Node.js
- 7. Cómo bloquear archivo
- 8. cómo bloquear varios objetos?
- 9. Ejecutando V8 Javascript Engine Independiente
- 10. Exprimir el rendimiento de v8
- 11. cómo bloquear en la llamada ajax (quiero bloquear)
- 12. Javascript regex cuelga (usando v8)
- 13. JavaScript Standard Library for V8
- 14. Cómo bloquear llamadas en android
- 15. Cómo bloquear un solo esqueleto
- 16. Cómo bloquear una sola fila
- 17. Volcado v8 Salida JIT del nodo
- 18. Descripción de la arquitectura de Google V8
- 19. Conversión de v8 :: Argumentos a C++ Tipos
- 20. Usando stringify desde el shell v8
- 21. ¿Cómo convertir el javascript compilado de V8 en un EXE?
- 22. Incrustar v8 con Visual C++ 2010
- 23. Bloquear SMS salientes
- 24. SVN bloquear un directorio
- 25. v8 | iniciar manualmente el recolector de basura
- 26. Hashtable similar a V8 para C#?
- 27. Node.js módulo v8-perfilador no se instalará
- 28. ¿Incrustar V8 en la aplicación OpenCL?
- 29. pila y montón en V8 (JavaScript)
- 30. Node.js y V8 de recolección de basura
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
@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