Bonjour les gens,
j'essaie de faire tourner ma jvm dans un environnement sécurisé, càd en interdisant à l'utilisateur d'écrire sur le disque dur et d'agir sur la jvm
Mais j'aimerai aussi que tout le reste soit autorisé.
En gros une sorte de java.security.AllPermission mais avec un java.io.FilePermission read (et pas write/delete) un java.lang.RuntimePermission exitVM à false
Ou pour faire plus simple, lister explicitement ce que le programme n'a pas le droit de faire, plutôt que de lister ce qu'il a le droit.
Tel qu'est fait le java.security.manager j'ai l'impression que ce n'est pas possible sans lister explicitement tout ce qui est autorisé...
Si quelqu'un a une idée.
Une alternative serait de chrooter le programme dans un dossier, mais sur une machine pas forcément de type unix, là aussi je suis ouvert à toute suggestion.
Le but est de fournir dans mon appli une console jython capable d'exécuter du code python arbitraire. Je ne veux pas que l'utilisateur chevronné puisse utiliser la console pour mettre en vrac le serveur.
Question bonus :
On peut appliquer une permission non pas a un codebase mais a une classe précise ?
Genre j'ai dans mon package une class Main, Foo, et Bar, je veux que seules Main et Foo puisse lire et écrire sur le disque, mais je veux du readonly pour Bar
Merci pour votre aide !
Partager