Pregunta

leyendo esta pregunta en javascript de subprocesos múltiples, me preguntaba si habría implicaciones de seguridad al permitir que javascript genere múltiples subprocesos.Por ejemplo, ¿existiría el riesgo de que un script malicioso genere repetidamente un hilo tras otro en un intento de abrumar al sistema operativo o al intérprete y provocar la entrada a un "terreno de comportamiento indefinido", o prácticamente no es un problema?¿Alguna otra forma en la que un ataque podría explotar una implementación hipotética de JavaScript que admita subprocesos a los que una implementación sin subprocesos sería inmune?

Actualizar: Tenga en cuenta que bloquear un navegador no es lo mismo que crear un exploit de comportamiento indefinido.

¿Fue útil?

Solución

No, múltiples subprocesos no agregarían problemas de seguridad adicionales en una implementación perfecta.JavaScript con subprocesos agregaría complejidad al intérprete de JavaScript, lo que hace que sea más probable que tenga un error explotable.Pero los hilos por sí solos no agregarán ningún problema de seguridad.

Los hilos no están presentes en javascript porque "Los hilos apestan" - lea más del diseñador de lenguaje (http://weblogs.mozillazine.org/roadmap/archives/2007/02/threads_suck.html)

Otros consejos

Bueno, ya puedes bloquear un navegador y en serio ralentizar un sistema con JS que se comporta mal.Los navegadores más avanzados han implementado comprobaciones para este tipo de cosas y las detendrán antes de que se salgan de control.

Yo tendería a suponer que los hilos se tratarían de manera similar.


¿Quizás entonces podrías explicar qué quieres decir con "comportamiento indefinido"?Un intérprete que permitió que un guión no confiable directamente controlar el número de subprocesos nativos del sistema operativo que se ejecutan sería increíblemente ingenuo: no sé cómo funciona Gears, pero dado que la API se centra en Workerpecado WorkerPools, me sorprendería mucho si no limitaran el número total de subprocesos nativos en uso a un número muy bajo.

Bueno, creo que el único ejemplo importante de javascript multiproceso es Chrome de Google (¿LO LANZARÍAN YA JEEZ?) y si lo entiendo, JavaScript solo procesará un solo proceso por pestaña, por lo que, a menos que comience a generar pestañas (ventanas emergentes), asumiría Este sería un problema nulo, pero creo que Google lo tiene en secreto de todos modos, está ejecutando todo JavaScript en una zona de pruebas.

Nuevamente, debemos hacer una distinción entre 1) soporte multiproceso en el lenguaje (que no creo que se esté discutiendo seriamente como algo que sucederá) y 2) uso de múltiples subprocesos en el motor/intérprete de JavaScript en el navegador.

° 2, no veo cómo esto realmente puede agregar posibles problemas de seguridad al motor/intérprete, a menos que haya fallas en la implementación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top