Según tengo entendido, las implementaciones de JavaScript que se ejecutan en los navegadores necesitan ejecutar códigos no confiables y operar con datos no confiables de manera segura. Las implementaciones de idioma (por ejemplo, Python) que se ejecutan en un servidor, OTOH, ejecutan código de confianza y solo necesitan manejar de forma segura los datos que no son de confianza.
¿Esta diferencia significa que las implementaciones de dos idiomas deben resolver problemas fundamentalmente diferentes, en lo que respecta a la seguridad?
¿Hay ataques que son posibles a través de código y datos no confiables, pero no solo a través de datos no confiables? Si es así, probablemente una implementación de Python puede permitirse ignorar estos tipos de ataques, pero una implementación de JS debería ser segura contra ellos.
¿O deberían todos los ataques que son posibles a través de un código no confiable también deben considerarse posibles solo a través de datos no confiables? ¿En qué caso las implementaciones de Python deberían emplear tantas funciones de seguridad como las implementaciones de JS?
En otras palabras, ¿es una tarea más simple asegurar una implementación de lenguaje solo contra datos maliciosos, en comparación con datos maliciosos y códigos maliciosos?