1. #1
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    mars 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : mars 2013
    Messages : 11
    Points : 3
    Points
    3

    Par défaut exec, shell_exec, fopen, fwrite, system, etc sont disable pour raison de securite

    bonjour
    les cdes exec, system, fopen, etc sont disable pour des raisons de sécurité et je ne trouve pas le moyen de contourner ce blocage
    pouvez-vous m' aider ? merci
    le script suivant fonctionne en mode console et bloque sur le site web :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    //////////////////////////////ceci marche! en mode console
    exec("stty -F  /dev/ttyUSB0 9600 ");
    $fp = fopen('/dev/ttyUSB0','w'); //use this for Linux
    echo $fp;
    fwrite($fp, $string_to_send); //write string to serial
    fclose($fp);

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    juillet 2005
    Messages
    29 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : juillet 2005
    Messages : 29 138
    Points : 43 345
    Points
    43 345

    Par défaut

    A quoi servirait le blocage s'il était possible de le contourner ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    mars 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : mars 2013
    Messages : 11
    Points : 3
    Points
    3

    Par défaut

    Citation Envoyé par sabotage Voir le message
    A quoi servirait le blocage s'il était possible de le contourner ?
    a priori ce serait Apache2 qui bloque...
    dans ce cas on fait comment pour écrire sur 1 port usb ?

  4. #4
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    mars 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : mars 2013
    Messages : 11
    Points : 3
    Points
    3

    Par défaut

    voici les msg renvoyés par PHPTESTER:
    WARNING exec() has been disabled for security reasons on line number 3
    WARNING fopen() has been disabled for security reasons on line number 4
    NOTICE Undefined variable: string_to_send on line number 6
    WARNING fwrite() has been disabled for security reasons on line number 6
    WARNING fclose() has been disabled for security reasons on line number 7

    et dans le php.ini :
    safe_mode = Off
    disable_functions = ""
    ;safe_mode_exec_dir = /var/www
    ;open_basedir = /var/www

    y a t il un autre parametre qui bloque ces cmd ?

    n étant pas un expert en PHP ni Apache, je sollicite votre aide
    merci

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    avril 2007
    Messages
    7 792
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2007
    Messages : 7 792
    Points : 15 873
    Points
    15 873

    Par défaut

    Il s'agit de ton serveur personnel ? d'un hébergeur dédié ? d'un hébergeur mutualisé ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Architecte Web / Android
    Inscrit en
    août 2003
    Messages
    4 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte Web / Android
    Secteur : Industrie

    Informations forums :
    Inscription : août 2003
    Messages : 4 998
    Points : 13 095
    Points
    13 095

    Par défaut

    Il n'ya pas de solution , ton hebergeur fait le choix de désactiver ces fonctions , tu n'y auras donc pas accès.
    C'est assez typique des hébergements mutualisés.

    Ton php.ini n'est propablement qu'un "sous" php.ini qui n'autorise la réecriture que de certains règles.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    mars 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : mars 2013
    Messages : 11
    Points : 3
    Points
    3

    Par défaut

    bonjour
    et merci de m avoir répondu
    il s'agit d'un serveur personnel, sans accès web, uniquement en interne, pour une appli qui demande l écriture sur le port USB
    mais toutes les fonctions citées sont désactivées, y compris l'écriture dans un fichier.
    suis-je le seul ?
    il m'est aussi impossible d'executer une cde de type shell_exec pour lancer un script .sh

  8. #8
    Membre actif
    Femme Profil pro
    Autre
    Inscrit en
    janvier 2017
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : janvier 2017
    Messages : 161
    Points : 273
    Points
    273

    Par défaut

    Bonjour,
    Citation Envoyé par rol50 Voir le message
    le script suivant fonctionne en mode console et bloque sur le site web :
    En mode console, ce n'est pas forcément le même php.ini qui est utilisé (probablement celui du dossier php).

    Avec php_info, vous devriez voir le php.ini utilisé sur le serveur local (dans Apache sans doute).
    Dans ce fichier, regardez l'entrée "disable_functions".

  9. #9
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    mars 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : mars 2013
    Messages : 11
    Points : 3
    Points
    3

    Par défaut

    voici ce que me dit phpinfo:
    Configuration File (php.ini) Path /etc/php/7.0/apache2
    Loaded Configuration File /etc/php/7.0/apache2/php.ini

  10. #10
    Membre actif
    Femme Profil pro
    Autre
    Inscrit en
    janvier 2017
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : janvier 2017
    Messages : 161
    Points : 273
    Points
    273

    Par défaut

    Avec phpinfo, il devrait y avoir également une ligne "disable_functions".
    Des fonctions apparaissent ?

    Sinon, on peut éventuellement tenter cette manipulation :
    Si ça marche en mode console, alors voir quel est le php.ini utilisé dans ce mode : dans la console taper php --ini.
    Le "Loaded Configuration File" est différent ?
    Si oui, alors on peut essayer de le cibler :
    Dans Apache, il devrait y avoir un fichier : conf/httpd.conf
    Dans ce fichier, il y a peut-être une ligne en commentaire #PHPIniDir c:/...
    Enlever le #, mettre le chemin du php.ini du mode console, exemple : PHPIniDir c:/php7
    Si elle n'y est pas, il faudra l'ajouter.
    Ensuite, redémarrez le serveur et tester en vérifiant d'abord que dans le phpinfo c'est bien le nouveau fichier qui est pris en compte.

    Si ça ne marche toujours pas, il faudra faire des recherches approfondies sur google ou carrément tenter de configurer un nouveau serveur local.

  11. #11
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    mars 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : mars 2013
    Messages : 11
    Points : 3
    Points
    3

    Par défaut

    merci de ta réponse
    mais les seules info que j'ai trouvé sont listées plus haut et je n'ai pas trouve d'autre php.ini
    ma config actuelle : Debian Stretch , Apache 2.4, PHP7.0
    je vais tester avec lighhtp....ou nginx on verra bien

  12. #12
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    mars 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : mars 2013
    Messages : 11
    Points : 3
    Points
    3

    Par défaut

    bonjour
    j'ai testé avec NGINX et le pb est le même
    donc le pb vient bien de PHP qui invalide toutes les fonctions système, exec, shell_exec, fopen, fwrite , etc...
    suis-je le seul à vouloir écrire sur un port USB ?

  13. #13
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    juillet 2005
    Messages
    29 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : juillet 2005
    Messages : 29 138
    Points : 43 345
    Points
    43 345

    Par défaut

    Tu ne nous as pas dit si dans le php.ini tu avais "disable_functions" ou non.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  14. #14
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    mars 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : mars 2013
    Messages : 11
    Points : 3
    Points
    3

    Par défaut

    voici le phpinfo :
    disable_classes no value no value
    disable_functions no value no value

    et dans le php.ini :
    disable_functions =
    disable_classes =

    et pourtant j ai toujours la même erreur
    il y a certainement un autre paramètre qui bloque mais où ?

  15. #15
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    mars 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : mars 2013
    Messages : 11
    Points : 3
    Points
    3

    Par défaut

    la recherche continue.... et on avance bien
    j'ai testé ce code sur un autre pc avec la version PHP 5.6 et ça marche!
    et pourtant la config des 2 versions de PHP est identique
    comprenne qui pourra...
    c est une solution en demi-teinte car le jour ou la version 5 ne sera plus dispo le pb se reposera à nouveau.

  16. #16
    Membre actif
    Femme Profil pro
    Autre
    Inscrit en
    janvier 2017
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : janvier 2017
    Messages : 161
    Points : 273
    Points
    273

    Par défaut

    Bonjour,
    En multipliant les recherches sur un moteur de recherche, en variant les mots clés, vous trouverez peut-être la solution.
    Il faut varier les combinaisons de mots :
    php NGINX shell_exec disabled
    php NGINX shell_exec enabled
    php NGINX fopen enabled
    etc.
    Exemple de résultat :
    https://i-mscp.net/index.php/Thread/...-security-rea/

  17. #17
    Responsable Systèmes


    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2011
    Messages
    8 743
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 8 743
    Points : 19 430
    Points
    19 430

    Par défaut

    Ca m'étonnerai que www-data, l'utilisateur utilisé par Apache ai l'autorisation de faire un fopen comme çasur /dev/ttyUSB0. A mon avis, il faut chercher de ce coté.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur la création d'un système : http://chrtophe.developpez.com/tutoriels/minisysteme/
    Mon article sur le P2V : http://chrtophe.developpez.com/tutoriels/p2v/
    Consultez nos FAQ : Windows, Linux, Virtualisation

  18. #18
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    mars 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : mars 2013
    Messages : 11
    Points : 3
    Points
    3

    Par défaut

    bonjour et merci de la réponse
    mais cela fonctionne très bien avec PHP5.6
    et cela quelque soit l'utilisateur
    les fonctions système fopen et autres sont désactivées..
    et le paramètre disable_functions semble inefficace en PHP7.0
    les droits sont 777 sur /dev/ttyUSB0
    à suivre ...

Discussions similaires

  1. Fopen, fwrite et droits linux apache2
    Par masseur dans le forum Réseau
    Réponses: 1
    Dernier message: 24/10/2007, 11h28
  2. qu'est que les < system. etc> en debut de fct
    Par dietrich dans le forum VB.NET
    Réponses: 6
    Dernier message: 12/01/2007, 09h50
  3. Lister tous les triggers qui sont DISABLE
    Par mpeppler dans le forum Oracle
    Réponses: 2
    Dernier message: 23/08/2006, 10h05
  4. MAJ de données d'un fichier (fopen,fwrite)
    Par PedroBD dans le forum Fichiers
    Réponses: 8
    Dernier message: 03/07/2006, 14h27
  5. [Appli Console]Pb exec command ac fct system(const char *)
    Par Le_magicien999 dans le forum MFC
    Réponses: 2
    Dernier message: 16/08/2005, 16h07

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