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

Langage PHP Discussion :

[Système] registar global off aternative ?


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 12
    Par défaut [Système] registar global off aternative ?
    Bonjour,

    mon hebergeur a désactivé le registar global !!! et maintenant je dois chercher une alternative a cela.

    je possède un script d'autosurf rémunérée, mais je m'en sert comme simple autohits et depuis leur desactivation du registar global j'ai des problèmes dans la partie administration de mon site.

    j'arrive a me connecter, mais quand je clic sur les liens il reste toujours a la page d'acceuil, mais si je clic sur le lien logout il reste connecter.

    par contre la partie membre du site marche toujours !

    voici une copie du mail envoyer par mon hebergeur car je ne comprend par les variables et ce qu'il veulent qu'on en fassent.

    Bonjour, suite au hack de certains sites,

    nous avons activé le registrar Global Off pour des raisons de sécurité, cela veux dire que vous ne pouvez pas récupérer la variable sans savoir sa provenance (variable de session, de formulaire...)

    Pour récupérer vos variables dans vos scripts php

    Une variable transmis par GET : $var = $_GET['var'];
    une variable transmis par POST : $var = $_POST['var'];
    Une variable transmis par SESSION : $var = $_SESSION['var'];
    Une variable transmis par COOKIE : $var = $_COOKIE['var'];


    Dans les prochaines versions de PHP ce ne sera plus paramétrable... Et il restera à OFF. Autant prendre de bonnes habitudes, d'autant plus que ce sont des recommandations qui datent de prés de 4 ans !!!

  2. #2
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Citation Envoyé par mussara
    j'ai créé un .htaccess comme dans les exemples donnés avec seulement cette ligne:
    flag register_globals off
    et je n'ai plus le message d'erreur... pensez vous que ça suffise pour garantir une bonne sécurité?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 12
    Par défaut
    donc sa serrait un fichier htaccess a modifier pour faire en sorte de reactivé le register globlal= on

  4. #4
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Oui, je pense que si ça fonctionne pour définir la constante à Off, cela doit aussi fonctionner pour On...
    En tous les cas, la meilleure solution reste encore de modifier le code source.
    ...d'autant plus que ce sont des recommandations qui datent de prés de 4 ans !!!
    Il doit commencer à dater ton script non ? Au fait, quelle taille a-t-il ?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 12
    Par défaut
    voila un exemple avec la variable POST, mais je ne sais pas quoi mettre a la place pour que ca fonctionne et je ne vois pas le rapport avec :
    $var = $_POST['var'];

    echo("<form method=post action=$self_url" . "control/?y=1><input type=hidden name=".session_name." value=".session_id()."><input type=submit value=\"Save\" style=\"color: #000000; font-size: 10pt; font-family: $fontface; font-weight: bold; border: 1px ridge #000000; background-color: $adminbutton\">

  6. #6
    Membre éclairé
    Homme Profil pro
    Gérant
    Inscrit en
    Février 2006
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Février 2006
    Messages : 266
    Par défaut
    Bonjour,

    As tu essayer de mettre un fichier php.ini à la racine de ton site avec register_global activé (et uniquement cette ligne) ?

    Personnellement je laisse cette possibilité aux personnes que j'héberge sur mes serveurs... Donc peut-être que cette solution pourra fonctionner pour toi aussi.

    A bientôt...

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 12
    Par défaut
    je viens de fouiller toute la racine de mon site et je n'ai rien trouver de ce genre.

    j'essayerais d'en mettre un demain, mais je doute qu'il soit pris en compte sinon il y en aurais déja un

  8. #8
    Membre éclairé
    Homme Profil pro
    Gérant
    Inscrit en
    Février 2006
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Février 2006
    Messages : 266
    Par défaut
    Par défaut il n'y en a pas, c'est à toi de le créer, ça reste dans l'absolue où ton hébergeur t'autorise à faire ce genre de chose...

    Tiens nous au courant.

    A bientôt...

  9. #9
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Ça marche !!

    Merci beaucoups pour mon aide ! à+

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 12
    Par défaut
    non ca ne marche pas non plus avec le fichier php.ini

    je pense que mon hebergeur a desactivé cela de facon permanente et irréversible

    il faut donc trouver un autre moyen

  11. #11
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Citation Envoyé par akrudy
    il faut donc trouver un autre moyen
    Il n'y en a pas 36 !!
    • Soit tu mets à jour ton code
    • Soit tu trouves un hébergement qui offre cette fonctionalité

  12. #12
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Par défaut
    hello,

    extract( $_REQUEST );

    c'est une mauvaise méthode mais ca fera le meme effet que le register_globals on

    reste quand meme que la meilleure solution t'a déja été donnée, mettre à jour ton script, ou en changer.

  13. #13
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Salut !
    Citation Envoyé par Petibidon
    extract( $_REQUEST );

    c'est une mauvaise méthode mais ca fera le meme effet que le register_globals on
    Je ne connaissais pas, c'est toujours bon à savoir !

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 12
    Par défaut
    j'ai essayer de changer de script par des autres.

    mais pour le moment tout ceux que j'ai essayer sont pire que celui que j'ai.

    j'aimerais donc modifier les variables qui ne sont plus prise en compte avec le registar global off

    mais je ne sai pas par quoi :

    exemple d'action qui n'est plus pris en compte:

    echo("<form method=post action=$self_url" . "control/?y=1><input type=hidden name=".session_name." value=".session_id()."><input type=submit value=\"Save\" style=\"color: #000000; font-size: 10pt; font-family: $fontface; font-weight: bold; border: 1px ridge #000000; background-color: $adminbutton\">
    mon hebergeur dit cela

    Pour récupérer vos variables dans vos scripts php

    Une variable transmis par GET : $var = $_GET['var'];
    une variable transmis par POST : $var = $_POST['var'];
    Une variable transmis par SESSION : $var = $_SESSION['var'];
    Une variable transmis par COOKIE : $var = $_COOKIE['var'];

  15. #15
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Petibidon m'a donné une idée :
    Essaye de mettre ce code au début de chaque script recevant des données d'un formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while(list($key, $value)=@each($_GET)) eval("\$".$key."=".$value.";");
    while(list($key, $value)=@each($_POST)) eval("\$".$key."=".$value.";");
    while(list($key, $value)=@each($_SESSION)) eval("\$".$key."=".$value.";");
    while(list($key, $value)=@each($_COOKIE)) eval("\$".$key."=".$value.";");
    Cela devrait reproduire les variables que tu avais avec register_globals à On.

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 12
    Par défaut
    maintenant ca fonctionne mais j'ai juste une erreur de syntaxe, j'ai essaer quelque possibilité, mais alors ca me donne d'autre erreur:

    voici l'erreur de syntaxe

    Parse error: syntax error, unexpected ':' in /home/siteenor/public_html/autosurf/control/index.php(5) : eval()'d code on line 1

  17. #17
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Je pense que c'est parce que tu as des tableaux dans tes variables. Ça devient donc plus délicat car je pense qu'il faut faire une boucle récursive pour chercher les tableaux et lister les variables. Je vais d'abord tester un code sur mon serveur avant de le poster ici. En attendant essaye d'ajouter AddSlashes sur les 4 lignes de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while(list($key, $value)=@each($_GET)) 
      eval("\$".AddSlashes($key)."=".AddSlashes($value).";");
    Ou essaye avec HtmlEntities à la place d'AddSlashes peut-être...

  18. #18
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Par défaut
    reuh

    export( $_REQUEST ) va importer dans le script les variables GET, POST et COOKIE dans l'ordre défini par variables order dans le php.ini donc a priori comme l'aurait fait le register globals...

    pour ce qui est des sessions, ca risque d'etre plus compliqué étant donné que du coup les fonctions style session_register ne fonctionnent plus...

    donc perso je ferais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    extract( $_REQUEST );
    extract( $_SESSION );
     
    function session_register( $key ){
        global $$key;
        $_SESSION[ $key ] = &$$key
    }
    code non testé... j'ai un gros doute sur la référence sur une variable variable... enfin c'est à essayer

  19. #19
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function done_array($v){
      $out="";
      while(list($key, $value)=@each($v))
        if(is_array($value)) $out.=done_array($key); else
        $out.="\$".$key."=".$value.";";
      return $out;
    }
     
    @eval(done_array($_GET));
    @eval(done_array($_POST));
    @eval(done_array($_SESSION));
    @eval(done_array($_COOKIE));
    Effectivement, pour accéder aux variables de session, il faut exécuter session_start au préalable. Malgré tout, je pense qu'il s'agit plus d'un problème de tableau vu l'erreur que akrudy a donné... Par contre, je ne suis pas sûr de mon code, je n'ai pas trop le temps de tester, dsl.

  20. #20
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 12
    Par défaut
    apparament sub0 ton script fonctionne

    du moins dans un sens, je n'ai plus de message d'erreur.

    par contre on dirait qu'i ne prend que le contenu des variable par moment ou sous certaine conditions.


    exemple:

    pour afficher du texte sur la page principale du site:

    si je tape seulement "bonjour" il va l'accepté et l'afficher.

    mais si je tape "bonjour a tous" la il n'e prend plus le texte en compte a cause des espaces car si je le rentre sans espace il l'affiche.

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/10/2014, 11h28
  2. [Système] Variables globales, classe, et AMFPHP
    Par Invité dans le forum Langage
    Réponses: 4
    Dernier message: 20/02/2008, 14h04
  3. [Système] Register-globals=OFF et pagination
    Par joboy84 dans le forum Langage
    Réponses: 1
    Dernier message: 16/12/2007, 10h29
  4. [Tableaux] Register global off et GET
    Par vodasan dans le forum Langage
    Réponses: 4
    Dernier message: 31/07/2006, 17h08
  5. [Directives] Hébergeur mutualisé avec register globals sur OFF
    Par max.onyx dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 25/04/2006, 17h22

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