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

Conception Web Discussion :

executer une commande sur un serveur depuis une page web


Sujet :

Conception Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Août 2005
    Messages : 85
    Par défaut executer une commande sur un serveur depuis une page web
    Bonjour à tous


    J'ai une machine qui tourne tout le temps, sur cette machine, linux, il y a un programme écrit en c++ qui écoute le réseau et écrit sur le port parallèlle pour commander des lumières.

    J'ai un client en java qui permet sur une autre machine de commander les lumières, ce client envoit des infos par le réseau. J'ai aussi un client, compilé pour linux, qui permet par le réseau d'envoyer des infos au serveur.

    Je voulais savoir si il était possible via une page web de commander ces lumières de n'importe quelle machine sans avoir un programme d'installer, en gros lancer une commande sur le serveur depuis une page web.

    Merci d'avance

  2. #2
    Membre Expert Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Par défaut
    Bien sûr que oui!

    Un serveur Web n'est ni plus ni moins qu'un programme qui lit des requêtes sur réseau et renvoie des réponses, le fonctionnement de base étant de retourner le contenu statique d'un fichier.

    Mais tout ce qui est dynamique permet de lancer un programme localement sur le serveur (fonction exec() en PHP).

    Ce n'est pas si compliqué de se faire son propre serveur HTTP à partir de rien car des exemples sur Internet se trouvent facilement. J'ai fait le mien en C# (http://www.agencexml.com/txs/fr/) pour Windows... Pour le coup, on a un tout petit programme hyper simple à déployer ce qui vous suffirait, je pense, plutôt que d'avoir à installer ceci + cela et encore ceci-cela...

    A propos d'une machine Linux qui tourne tout le temps, je rêve d'avoir un "Linutop" (http://www.linutop.com)... Est-ce que vous connaissez ?

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 343
    Par défaut
    Si j'ai compris: En fait il s'agit d'établir une connexion entre ton serveur où il y'a ton pgm c++ et des clients web. Il te faut établir une connexion sécurisée avec ton serveur pour permettre l'exécution d'un programme sur ton serveur. Côté technique classique je verrais bien établir un tunnel (pour passe le firewall de ton serveur) et SSH port 22, avec un port 8082 pour ton client web (navigateur)en //localhost:8082.
    Good idea?

  4. #4
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Août 2005
    Messages : 85
    Par défaut
    Merci de vos réponses

    je vais étudier de près exec() de PHP

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 343
    Par défaut
    attention avec exec() tu vas permettre l'exécution depuis le web de binaire sur ton serveur, donc donner la possibilités à un tiers d'avoir des droits root: surveille bien ta politique de sécurité du serveur (liaison ssh, environnement chrooté etc...)
    Va voir le lien sécurité php fonction ciblée

  6. #6
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Août 2005
    Messages : 85
    Par défaut
    Je vois le problème. Je ne savais pas qu'exec donnait des droits root.

    Donc tatareau tu me conseillerais un tunel ssh depuis une interfaces web sur un autre port que le 80 ?

  7. #7
    Membre Expert Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Par défaut
    C'est certainement parce que je ne suis pas pirate dans l'âme que je ne vois pas le problème de sécurité : dans le cas présent, il ne s'agit pas de permettre à un internaute de lancer n'importe quel programme depuis son navigateur mais, au travers d'un formulaire spécifique, de provoquer sur le serveur le lancement de tel ou tel programme dont le nom est en dur dans le code PHP ?? Ai-je mal compris ???

    De toute façon, s'il s'agit de piloter son éclairage depuis Internet... je suis d'accord sur l'idée de protéger ça pour que ce ne soit pas n'importe qui qui s'amuse à allumer et à éteindre à toute heure du jour et de la nuit...

  8. #8
    Membre émérite
    Avatar de goldkey
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 802
    Par défaut
    Citation Envoyé par nico33410
    Je vois le problème. Je ne savais pas qu'exec donnait des droits root
    La commande exec() s'execute avec les droits du user avec lequel est démarré Apache.

    Si Apache est démarré avec des droits "root" alors exec() pourra executé des programmes en tant que "root".

    Mais c'est un jeu dangereux

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

Discussions similaires

  1. Récupérer des données depuis une BDD sur un serveur de mon site web
    Par kookitanou dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 30/10/2012, 10h52
  2. Lancer un exe sur le serveur depuis une page PHP
    Par Bundy*Al dans le forum Apache
    Réponses: 1
    Dernier message: 27/04/2010, 08h27
  3. Executer une commande sur un serveur linux à partir de php
    Par lanjolanjo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 31/07/2009, 10h14
  4. Réponses: 1
    Dernier message: 25/04/2008, 11h52
  5. Lancement d'une commande sur un serveur Unix
    Par lper dans le forum Web & réseau
    Réponses: 2
    Dernier message: 29/07/2004, 13h58

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