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

  1. #1
    Membre habitué
    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
    Points : 153
    Points
    153
    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 : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    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 sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    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 habitué
    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
    Points : 153
    Points
    153
    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 habitué
    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
    Points : 153
    Points
    153
    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 sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    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

  7. #7
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    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
    Et ça se traduit comment concrètement un scellement/déscellement de JAR ?
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    c'est juste des information dans le MANIFEST.MF, donc j'ai jute à ouvrir le jar avec winzip, retirer les informations de scellement et hop, on dirait un jar "tout bete"

  9. #9
    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 : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Sauf si ton application n'accepte pas les jar non signés avec un certificat donné ;-)
    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

  10. #10
    Membre habitué
    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
    Points : 153
    Points
    153
    Par défaut
    merci pour les réponses claires

    Nemek: je peux trouver comment faire (ton dernier commentaire) dans la FAQ ou dans un tuto ?

  11. #11
    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 : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Je sais que c'est possible mais comment, je ne sais pas.

    Un petit tour sur la documentation officielle pour commencer

    EDIT : encore mieux
    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

  12. #12
    Membre habitué
    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
    Points : 153
    Points
    153
    Par défaut
    Merci beaucoup !!

+ 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