Estoy usando javax.scripting
para agregar soporte para ejecutar JavaScripts arbitrarios cargados por el usuario en el servidor. ¡Obviamente quiero asegurar esos guiones!¿Cómo puedo asegurar que los scripts se ejecuten usando javax.scripting?
Rhino, por sí solo, tiene un marco para asegurar scripts en tiempo de ejecución. La documentación para javax.scripting
, sin embargo, no menciona la seguridad, los permisos o las clases restringidas disponibles para el script. Entonces, ¿esto es solo un gran agujero en la API javax.scripting
que no ofrece un marco para proteger los scripts que ejecuta?
No quiero usar Rhino directamente porque originalmente lo intenté pero tuve algunos problemas al exponer instancias de Java al script en ejecución. El marco javax.scripting
lo hizo (que usa Rhino bajo el capó) y convirtió estos scripts triviales y simplificados en un servidor multiproceso.
Me gustaría poner en una lista blanca las clases de Java a las que se puede acceder/instanciar dentro del script en ejecución. ¿Alguien puede señalarme un ejemplo o documentación sobre cómo lograr esto?