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

Langages de programmation Discussion :

La méthode setAccessible de l'API JAVA vs sécurité


Sujet :

Langages de programmation

  1. #1
    Membre éclairé
    Avatar de wafiwafi
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 500
    Par défaut La méthode setAccessible de l'API JAVA vs sécurité
    Un utilisateur qui fait de la réflexion en java et qui utilise la méthode setAccessible d'un objet Field, Method ou constructor peut faire tout ce qu'il veut! Il doit donc être contrôlé par un gestionnaire de sécurité, d'où mes questions :

    1- Pourquoi proposer une méthode qu'on n'a pas le droit d'utiliser vu la sécurité?
    2- Comment le gestionnaire de sécurité peut interdire l'utilisation d'un telle méthode?
    Merci

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    J'ignore comment ça se passe en Java, mais en .Net, la gestion de la sécurité fait qu'il existe un droit spécial "accéder aux membres private avec la réflexion".

    Si le contexte d'exécution (processus, assembly) possède ce droit, il peut faire ce qu'il veut. Sinon, une exception sera lancée.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre éclairé
    Avatar de wafiwafi
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 500
    Par défaut
    C'est bien ce que je pensais. tout dépend du contexte de développement; ce qui me paraît plus logique.
    Merci pour cette confirmation

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Tu veux dire contexte d'éxécution, non?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre éclairé
    Avatar de wafiwafi
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 500
    Par défaut
    non; ce que je voulais dire c'est que cela dépend si on développe un compilateur, un runtime, une sécurité ou un simple programme qui utilise tout ce monde.
    Si on prends l'exemple d'un développement d'une application, on pourrait laisser ouvert à l'utilisateur des possibilités de programmation pour étendre des fonctionnements. Dans ce cas, on n'a pas intérêt à ce qu'il touche à tout.
    J'espère que je ne me trompe pas.

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Mais ça peut dépendre des réglages avec le même runtime!

    En .Net, on peut dire qu'un assembly a des droits et qu'un autre assembly en a d'autres. Pour le même runtime, et le même utilisateur! On peut dire par exemple, que seuls les assemblies du Framework lui-même ont le droit d'exécuter du code non-"safe", alors que tout ce qui vient du Web (dans le même processus!) n'en a pas le droit...

    C'est possible parce qu'en code managé "safe" on ne peut pas fausser la pile d'appels... Il faut avoir le droit d'exécuter du code non-"safe" pour ça!
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre éclairé
    Avatar de wafiwafi
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 500
    Par défaut
    C'est un bon exemple. J'ai bien compris.
    Merci à toi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Est ce que ça existe une api java pour code barre ?
    Par miloud dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 14/04/2005, 17h20
  2. [C#] Equivalence des API java en C# en ligne
    Par totoranky dans le forum Windows Forms
    Réponses: 6
    Dernier message: 15/02/2005, 01h16
  3. [USB] la meilleure API java
    Par salber dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 07/02/2005, 15h13
  4. Réponses: 3
    Dernier message: 07/12/2004, 14h15
  5. [LOG4J][API java.util.logging.*] Differences
    Par Righetto Dominique dans le forum Logging
    Réponses: 2
    Dernier message: 22/11/2004, 15h12

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