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

Java Discussion :

classe et package problématique


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 102
    Par défaut classe et package problématique
    Bonjour, j'aimerais avoir une précision quant à la phrase suivante:

    Sceller les packages pour éviter que des classes malveillantes puissent se déclarer membre du package et ainsi gagner une meilleure visibilité sur les membres (déclarés protected ou (package)) des classes du package
    Ce que je voudrais savoir c'est comment une classe peut se déclarer membre d'un package ?

    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Tu crées une classe avec la même package ;-)
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  3. #3
    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 : 46
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    package com.company.software; // membre du package com.company.software
     
    public class MyClass { .....

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 102
    Par défaut
    ha d'accord.. je pensais ça plus complexe que ça ne l'est
    En lisant la phrase, je pensais que ça pouvait se faire "automatiquement"

    merci

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 102
    Par défaut
    En fait on a du mal se comprendre...
    (ou alors j'ai aps compris ce que vous vouliez dire)

    Je ne cherche pas à savoir comment on fait (le dév) à rendre une classe membre d'un package. ce que je cherche à comprendre c'est l'histoire de sceller un package car des classes malveillantes peuvent se déclarer membre du package (pour entre autre avoir accès à des données non autorisées)

    questions idiotes (sorry):
    une classe peut se rendre elle même membre d'un package ?
    l'histoire de sceller un package, c'est en fait signer ce package ? (sealed=True)
    et si on scelle un package, comment fait on (le dév) pour introduire une nouvelle classe dans le package?

    edit: en fait c'est juste que dans ce cas sceller veut dire signer. et donc tout ce que je viens de dire est une véritable hérésie..
    ça sert juste pour empêcher des modifs avant le chargement (intégrité du package) c'est ça ?

  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 : 46
    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
    tu peux avoir plusieurs jar, chacun ayant des classe de type com.company.xyz

    Le fait qu'un classe "se déclare" d'un package, on entends bien ça dans le sens "a la compilation". Le bute est déviter que quelqu'un prenne ton application, y ajouter un jar contenant des classes supplémentaire destinées à accèder aux champs protégés de tes classes. Dans ce cas on scelle le package, ce qui aura pour effet que si deux jars dans le classpath présentent des classes de ce packages, il y aura exception et refus de fonctionner.


    En pratique c'est pas très utile, si j'ai envie d'injecter des classes pour détourner ton application, la première chose que je vais faire c'est désceller ton jar comme ça, hop, plus de vérification

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

Discussions similaires

  1. Class et package
    Par suckthewindow dans le forum Général Python
    Réponses: 2
    Dernier message: 14/04/2008, 08h53
  2. visibilité de classes de package à package
    Par Melchisedec dans le forum Langage
    Réponses: 1
    Dernier message: 31/08/2007, 10h37
  3. Réponses: 2
    Dernier message: 12/04/2007, 14h14
  4. organisation des classes et package
    Par blaise_laporte dans le forum Interfaces Graphiques en Java
    Réponses: 5
    Dernier message: 28/02/2007, 10h55
  5. A quel class de package appartient le méthode readLine() ?
    Par andrianiaina dans le forum Langage
    Réponses: 4
    Dernier message: 05/09/2006, 00h06

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