El Java Runtime Environment se puede ejecutar utilizando un Administrador de seguridad si desea restringir cierto acceso a cierta parte de la aplicación (dependiendo del código que se esté ejecutando y del estado de autenticación).
Esto se puede habilitar en Apache Tomcat o en JBoss por ejemplo.
El sistema de políticas y permisos es un tema complejo y está documentado aquí .
Es cierto que el sistema no es perfecto, ya que las vulnerabilidades a las que hace referencia sobre los applets ocurren cuando el applet "escapa" a su administrador de seguridad. Esto puede suceder si hay un error en el administrador de seguridad (obviamente un problema) o si la política es demasiado flexible.
A este respecto, un entorno de servidor se diferencia de un entorno de applet en que el entorno de applet se instala con una política de talla única: algo que apunta a ser lo suficientemente bueno como para restringir el mal comportamiento y habilitar la mayoría de las funciones, sin saberlo. qué código se va a ejecutar ni en qué entorno exacto. Un entorno de servidor es menos vulnerable a este respecto, ya que es posible que pueda personalizar su política para satisfacer sus necesidades específicas (por ejemplo, permitir conexiones a su servidor de base de datos específico pero no a otras conexiones salientes).
Los administradores de seguridad tienden a no estar habilitados de forma predeterminada en los contenedores de aplicaciones web, pero si lo necesita, puede configurar las políticas según sea necesario.