2010-05-19 16 views
15

Necesito crear un entorno para ejecutar código potencialmente no confiable. Programa permitido para conectarse a la dirección preconfigurada: puerto y nada más (incluso leer la hora del sistema). He compilado la lista blanca de la clase. Había buscado preguntas similares, pero solo encontré una plantilla basada en SecurityManager que AFAIK está en desuso. ¿Alguien me puede dar una muestra simple de cómo ejecutar código en el entorno limitado basado en políticas de seguridad y AccessController?Crear entorno limitado de Java basado en políticas de seguridad

Respuesta

15

Por lo que sé, sigue siendo SecurityManager que ejecuta las comprobaciones de seguridad. Pero parece delegar en AccessController hoy en día.

Primero tendrá que activar el controlador de seguridad:

-Djava.security.manager

Si se omite este argumento no habrá ningún tipo caja de arena.

En segundo lugar se tendrá que indicar dónde se encuentra el archivo de política:

-Djava.security.policy =

Esto añadirá sus permisos a los ya definidos en su casa java. El sandbox original rige en .../jre/lib/security/java.policy. Sin embargo, si desea que su política sea la única, deberá usar un doble "=". De esta forma, puedes controlar completamente lo que está permitido.

Por ejemplo:

-Djava.security.policy ==

Te aconsejaría a utilizar el "policytool" incluido con el Java. Es bastante básico, pero le ayuda a escribir rápidamente un archivo de política con la sintaxis correcta.

Espero que esto ayude ...

Cuestiones relacionadas