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 se configura v8 opciones en Node.js
- 6. ¿Cómo uso v8 en un hilo?
- 7. cómo bloquear varios objetos?
- 8. Cómo bloquear archivo
- 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 una sola fila
- 16. Cómo bloquear un solo esqueleto
- 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. pila y montón en V8 (JavaScript)
- 26. Perl: Javascript :: Plantillas V8 - del perl
- 27. ¿Incrustar V8 en la aplicación OpenCL?
- 28. Hashtable similar a V8 para C#?
- 29. Node.js y V8 de recolección de basura
- 30. v8 | iniciar manualmente el recolector 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