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 :

executer commande systeme


Sujet :

Applets Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 4
    Par défaut executer commande systeme
    Bonjour à tous,
    J'aimerai savoir s'il était possible d'exécuter une commande système via un applet java.
    Voici le code de mon applet au cas où j'aurai des erreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
      1 import java.io.*;
      2 import java.lang.Runtime;
      3 import java.awt.FlowLayout;
      4 import java.awt.BorderLayout;
      5 import java.awt.event.ActionEvent;
      6 import java.awt.event.ActionListener;
      7     
      8 import javax.swing.JPanel;
      9 import javax.swing.JFrame;
     10 import javax.swing.JLabel;
     11 import javax.swing.JButton;
     12 import javax.swing.JApplet;
     13                 
     14 public class Button extends JApplet implements ActionListener{
     15                 
     16     private JButton button = new JButton("Bouton 1");
     17     private String cmd;
     18     private Runtime r = Runtime.getRuntime();
     19     private Process p = null;
     20                 
     21     public void init(){
     22         this.getContentPane().add(button);
     23     }           
     24             
     25     public void actionPerformed(ActionEvent arg0){
     26         if(arg0.getSource() == button)
     27         {
     28             cmd = "ma_commande";
     29             try {
     30                 r.getRuntime().exec(cmd);
     31             }catch(Exception err) {;}
     32         }
     33     }
     34 }
    Sinon à ce que j'ai compris, je dois signez mon applet.
    J'ai exécuter cette commande pour créer mon .jar : jar cfv button.jar Button.class.
    Puis j'ai générer un clef : keytool -genkey -alias button -keystore button.
    Enfin j'ai signer mon applet : jarsigner -keystore button -signedjar sButton.jar Button.jar button.
    Mon bouton ne s'affiche pas tout le temps et quand il s'affiche, ma commande ne s'exécute pas. Ai-je fais une erreur dans mon code? Dans la signature de mon applet?
    Merci de m'aider.

  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 : 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
    ne s'affiche pas -> donnez nous le contenu de votre console java

    n'exécute pas la commande -> traitez vos exception correctement (affichez les) plutot que de les jeter aux ortiles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    catch(Exception err) {;}

  3. #3
    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
    A mon avis auto-signer l'Applet ne doit pas être suffisant. Je pense qu'il faut au minimum qu'elle soit signée par une autorité.

    Ensuite il doit falloir configurer le SecurityManager.

    Enfin je pense pas qu'une commande système puisse être lancée depuis une Applet. Ca serait une faille de sécurité énorme.
    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

  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 : 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
    Citation Envoyé par Nemek Voir le message
    A mon avis auto-signer l'Applet ne doit pas être suffisant. Je pense qu'il faut au minimum qu'elle soit signée par une autorité.
    Non, ca déclenchera une alerte, mais ça indiquera dans l'alerte de sécurité qu'on ne peux pas lui faire confiance. On utilise souvent ça quand on a pas acces à un certificat payant ou quand on est en phase de dev

    Ensuite il doit falloir configurer le SecurityManager.
    non, on ne bidouille pas l'installation coté client pour une applet, ca n'a pas de sens.
    Enfin je pense pas qu'une commande système puisse être lancée depuis une Applet. Ca serait une faille de sécurité énorme.
    Bien sur que si, si elle est signée et que l'utilisateur a donnée son accord. C'est d'ailleurs à ça que sert la signature, a sortir de la sandbox. Il n'y a pas faille puisque l'autorisation sera demandée à l'utilisateur.

  5. #5
    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
    Pour moi c'est une faille (côté utilisateur certes mais un clic sur "oui", ça vaut pas un gros avertissement genre à la Android) de dire acceptez-vous que l'application Tartampion (qui dit vouloir créer un fichier de log) efface l'ensemble de votre système et installe plein de trojans/virus/etc ?

    On peut pas surcharger les règles de sécurité via un fichier dans le META-INF ?
    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

  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
    Vous n'avez pas l'air d'avoir vu souvent tout le blabla qu'il y a dans cette boite de dialogue d'acceptation

    pouvoir surcharger les règle de sécurité vias META-INF/ ça, oui, ce serait un trou de sécurité , a moins qu'il faille aussi demander l'accord à l'utilisateur, mais alors quelle différence entre "donner tous les droits à une applet" ou "donner le droit à une applet de se donner tous les droits"

Discussions similaires

  1. Execution d'une commande systeme
    Par ganjah06 dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 24/06/2008, 15h06
  2. executer une commande system
    Par warubi dans le forum VB.NET
    Réponses: 1
    Dernier message: 26/05/2007, 22h57
  3. Execution d'une commande systeme enC?
    Par must19 dans le forum Linux
    Réponses: 4
    Dernier message: 12/04/2006, 19h08
  4. Réponses: 1
    Dernier message: 13/03/2006, 15h31
  5. executer plusiseurs commandes systemes
    Par fredo2009 dans le forum Langage
    Réponses: 2
    Dernier message: 23/01/2006, 16h11

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