IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Applets Java Discussion :

sécurité java.io.FilePermission <<ALL FILES>> execute


Sujet :

Applets Java

  1. #1
    Membre confirmé Avatar de fmh1982
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2006
    Messages : 124
    Par défaut sécurité java.io.FilePermission <<ALL FILES>> execute
    Bonjour,

    j'ai une application web (intranet) avec une applet java qui doit accéder à des fichiers partagés dans l'arborescence.
    Tout fonctionne bien, l'applet est signée, mais j'ai un problème de sécurité pour accèder à ces fichiers.

    java.security.AccessControlException: access denied (java.io.FilePermission <<ALL FILES>> execute)

    si je change le fichier java.policy côté client ça marche , mais le problème je ne veux pas faire ça pour 220 machines.

    j'ai crée un fichier applet.policy pour l'attacher avec mon .jar mais ça ne marche pas. sinon où je dois mettre ce fichier applet.policy.

    si quelqu'un a une solution côté serveur je suis preneur.

    Merci

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Normalement la signature des jars de ton applet devrait suffire, pas besoin de fichier applet.policy. Tu a vérifié que tous les jars sont bien signés avec la meme clé? Et qu'il n'y a pas de signature en double.

  3. #3
    Membre confirmé Avatar de fmh1982
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2006
    Messages : 124
    Par défaut
    en fait l'applet fonctionne très bien avec par exemple un bouton(swing) qui ouvre un lien de fichier depuis un textfield(swing) dans l'applet mais si je veux faire la même chose depuis un lien dans la page web c'est la que le problème se pose.
    car mon lien exécute une fonction public dans l'applet avec du javascript.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    ha oui, si t'as du javascript dans le stack, c'est foutu! Enfin presque, reste un truc pour contourner (jamais testé). Tu crée un nouveau thread et tu fait l'appel dans ce thread, comme ca tu repart avec un stack tout propre. Si t'as du javascript dans la pile d'appel stack, le code n'est plus considéré comme secure et donc n'a plus de droit. Ca evite que des site malicieux détournent des appelts signées pour leur faire faire n'importe quoi de pas prévu.

  5. #5
    Membre confirmé Avatar de fmh1982
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2006
    Messages : 124
    Par défaut
    j'ai mis ce code dans le fichier java.policy mais ne marche pas

    grant codeBase "http://localhost:3000/-" {

    permission java.io.FilePermission "<<ALL FILES>>", "execute";

    };

    le but c de donner seulement à l'app sur l'intranet d'accéder au fichiers

    avec les threads ça ne marche pas puisque j'ai aussi des erreurs de sécurité

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    tant que tu passera par du javascript pour effectuer un appel à une méthode, le modèle de sécurité de la jvm en concluera que l'appel n'est pas sécurisé -> tu aura une interdiction de bidouiller les fichiers. C'est la pour une raison toute bete la page web et le javascript ne peuvent techniquement pas être signés -> pas de confiance dedans.

  7. #7
    Membre confirmé Avatar de fmh1982
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2006
    Messages : 124
    Par défaut
    alors pourquoi ceci fonctionne

    grant {

    permission java.io.FilePermission "<<ALL FILES>>", "execute";

    };

    et pas ceci

    grant codeBase "http://localhost:3000/-" {

    permission java.io.FilePermission "<<ALL FILES>>", "execute";

    };

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    parce que le grant global, il fait bien ce que tu lui demande, il attribue les droits "quel que soit l'origine ou les conditions du code", donc il passe outre le fait qu'il y aie du javascript dans la pile d'appel. Mais si je ne me trompe pas, tu ne peux faire ce genre de droit que dans le fichier policy de la machine, et ca va avoir comem conséquence que, sur cette machine, tu autorise n'importe quelle applet venant de n'importe ou de faire un execute sur tes fichiers. Bref ca sent le trou de sécurité.

Discussions similaires

  1. Sécurité Java / PHP / Apache
    Par curiemp_m dans le forum Sécurité
    Réponses: 2
    Dernier message: 05/05/2007, 13h39
  2. [java.io.FilePermission] déploiement
    Par philippe13 dans le forum JWS
    Réponses: 9
    Dernier message: 28/03/2007, 11h40
  3. Web services, sécurité, java vers IIS
    Par Schyzophrenic dans le forum Services Web
    Réponses: 2
    Dernier message: 08/09/2006, 15h56
  4. Réponses: 1
    Dernier message: 20/06/2006, 03h36
  5. XMLRAD + Politique de sécurité Java / tomcat
    Par sch dans le forum XMLRAD
    Réponses: 1
    Dernier message: 01/06/2005, 14h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo