2010-05-19 18 views
15

Ho bisogno di creare un ambiente per eseguire codice potenzialmente non affidabile. Programma consentito di connettersi a indirizzo preconfigurato: porta e nient'altro (anche leggere l'ora del sistema). Ho compilato la lista bianca della classe. Avevo cercato domande simili, ma ho trovato solo modelli basati su SecurityManager che AFAIK è deprecato. Qualcuno può darmi un semplice esempio su come eseguire il codice nella sandbox in base alle politiche di sicurezza e AccessController?Creare sandbox java in base alle politiche di sicurezza

risposta

15

Per quanto ne so, è ancora SecurityManager che esegue i controlli di sicurezza. Ma sembra delegare ad AccessController al giorno d'oggi.

In primo luogo è necessario accendere il responsabile della sicurezza:

-Djava.security.manager

Se si omette questo argomento non ci sarà alcun sandbox di sorta.

In secondo luogo è necessario dire dove trovare il file dei criteri:

-Djava.security.policy =

Questo aggiungerà le autorizzazioni a quelli già definiti in casa java. Le regole originali sandbox in .../jre/lib/security/java.policy. Tuttavia, se desideri che la tua politica sia l'unica, dovrai utilizzare un doppio "=". In questo modo controlli completamente ciò che è permesso.

Ad esempio:

-Djava.security.policy ==

vi consiglio di utilizzare il "policytool" fornito con il Java. È abbastanza semplice ma ti aiuta a scrivere rapidamente un file di politica con la sintassi corretta.

Spero che questo aiuti ...

Problemi correlati