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 :

Variables session PHP


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 121
    Points : 73
    Points
    73
    Par défaut Variables session PHP
    Bonjour à tous, j'ai cherché avant de poster mais j'ai pas vraiment trouver de réponse satisfaisante sur d'autre post. Si j'ai loupé un post, je m'en excuse.

    J'ai developpé une zone sécurisée pour une petite entreprise en PHP avec des variables session.

    J'ai respecté tout les principes de base comme définir les variables, protéger des injections de codes, limiter le nombre de caractères des input text et password, initialisation des variables session.

    Voici quelques questions ?

    1) Utiliser un login qui contient x caractères fixes et x caractères qui dépendent de la date (par exemple) augmente-t-il la sécurité ou ca ne sert à rien ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $login_valide = date("d")."XXX".date("m");
    2) Passer le password dans la fonction md5() et stocker dans la base de données le résultat après passage dans cette fonction augmente-t-il la sécurité ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($_POST['login'] == $login_valide && md5($_POST['password']) == $password_valide)
    3) La méthode .htaccess est-elle plus sur que les variables sessions PHP ?
    La combinaison des deux est-elle possible et sert-elle à quelque chose ?

    svp, évitez de répondre si vous n'en savez rien

  2. #2
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Serveur mutualisé ou dédié ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 121
    Points : 73
    Points
    73
    Par défaut
    Mutualisé chez OVH.

    Je ne savais pas que ca pouvais avoir une importance pour repondre à mes questions. Désolé de ne pas l'avoir mentionné.

  4. #4
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par lelapinrusse Voir le message
    Mutualisé chez OVH.

    Je ne savais pas que ca pouvais avoir une importance pour repondre à mes questions. Désolé de ne pas l'avoir mentionné.

    Normal la question de blueice, en effet, sagissant de sécuritée des sessions, une grande partie des réponses dépnd du fait que tu ais ou non accés a la config de PHP

    L'hébergement mutualisé permet aux clients de se concentrer sur leur métier, de déléguer aussi bien l'administration des systèmes ainsi que toutes les tâches annexes, et de leur permettre de bénéficier aussi bien de la séparation des domaines de fonctionnement des scripts que de l'augmentation régulière des capacités de nos clusters", précise Germain Masse. OVH.

    Pour autant - et à la différence de l'hébergement sur serveur dédié - la prestation d'hébergement en mode mutualisé ne permet bien sûr pas aux clients d'accéder à l'intégralité des possibilités de configuration système et serveur

  5. #5
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    3) La méthode .htaccess est-elle plus sur que les variables sessions PHP ?
    La combinaison des deux est-elle possible et sert-elle à quelque chose ?
    Concernant htaccess ce n'est pas forcément ultra sécurisé, sans rentrer dans les détails concernant les protocoles, ce qui peut être fait avec htaccess pour augmenter considérablement la sécurité c'est d'utiliser l'algo de hash md5 ou passer par du SSL.
    Car les mots de passe dans le fichier htpasswd peuvent être décodés très facilement avec uudecode sous Unix, alors qu'en 'haschant'...
    Malheureusement, cette méthode est peu utilisée du fait des fonctionnalités du serveur et le support par les navigateurs.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 121
    Points : 73
    Points
    73
    Par défaut
    Merci beaucoup pour vos éléments de réponses.

    Comme je maitrise pas mal les variables session et pas du tout les .htaccess, je vais continuer avec les variables php.

    Concernant le md5(), insérer les mots de passe en md5() dans la base données, c'est juste utile pour qu'un type d'OVH ne puisse pas connaitre les password ?
    Car du formulaire html vers la page php de traitement, le password est poste non cripte ?


    Ensuite, pour le login qui change en fonction de la date ou de l'heure, c'est une sécurité supplémentaire utile ou pas ?

  7. #7
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par lelapinrusse Voir le message
    Bonjour à tous,
    1) Utiliser un login qui contient x caractères fixes et x caractères qui dépendent de la date (par exemple) augmente-t-il la sécurité ou ca ne sert à rien ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $login_valide = date("d")."XXX".date("m");
    Bon je continue, derriére blueice qui t'a précisé une de tes questions
    sur htaccess.

    sur le point

    1) je trouve ça totalement inutile,
    connaissant un peut quelques méthodes d'accés aux données, je peux te dire que tout de même la tache n' est pas facile pour le Hacker

    Alors on dira que plus les données sont dispersées, plus cela devient mission impossible ...

    Ors normalement une bonne gestion d'un login se passe a trois niveaux:

    Le Cookies
    La session
    La base de donnée

    Tu sais on oublie toujour ces principes de bases.

    Alors tu me diras, mais si j'interdit les cookies tu perd un niveau

    NON NON c' est celui qui interdit les cookies qui en paie les frais, c' est son choix mais il sait, et beaucoup de sites le disent en clair:

    "Bonjour, refusant les cookies, vous serez obligé de vous reloguer a chacune de vos visites"

    Donc le shema est simple

    1) y atil un _POST USER et un POST mdp ?
    si OUI alors control dans la base MYSQL ou autre
    tout est OK on met sa session a OK, on cree le cookies avec nom et mdp
    2) pas de post alors on regarde ou nous en sommes
    sa session est a OK parfait rien a faire il peut se promener librement
    3) pas de post et pas de session
    alors on lit son Cookies et on controle user et mdp
    si c' est OK on mets la session a oK
    4) ELSE retour au login

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 121
    Points : 73
    Points
    73
    Par défaut
    Merci beaucoup pour cette réponse, comme je ne suis pas sur de tout comprendre (notament les cookies), peux-tu jeter un coup d'oeil à mon code afin de voir si il est sécurisé car j'ai envie de bien dormir une fois que je l'aurai mis en ligne, lol.

    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
    <?php
    $login_valide = "XXX";
    $password_valide = "a80a476b3f58a1a219f2f00c0efda021";
     
    if (isset($_POST['login']) && isset($_POST['password']))
    {
    	if ($login_valide == $_POST['login'] && $password_valide == md5($_POST['password']))
    	{
    	session_start ();
    	$_SESSION['login'] = $_POST['login'];
    	$_SESSION['password'] = md5($_POST['password']);
    	Header("location: ok.php");
    	}
    	else
    	{
    	Header("Location: ko.html");
    	}
    }
    else
    {
    Header("Location: ko.html");
    }
    ?>
    Pour ce qui est des pages dans la "zone sécurisée" je test comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    session_start ();
     
    if (isset($_SESSION['login']) && isset($_SESSION['password']))
    {
    ?>
    ....
    <?php
    }
    else
    {
    Header("Location: ko.html");
    }
    ?>

  9. #9
    FoxLeRenard
    Invité(e)
    Par défaut
    Tu vas voir, ils vont finir par dire que je radotes ...
    Moi j'ais un principe immuable JAMAIS DE MANIP AVEC LES
    POST SESSION GET mais tout passer en variables et contrôlées

    alors pour ton premier PHP on aurait
    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
     
    <?php
    $login_valide = "XXX";
    $password_valide = "a80a476b3f58a1a219f2f00c0efda021";
    if (isset($_POST["login"])) $login=htmlentities(trim($_POST["login"]));
        else $login="";
    if (isset($_POST["password"])) $password=htmlentities(trim($_POST["password"]));
        else $password="";
    if ($login_valide == $login && $password_valide == md5($password))
    	{
    	session_start ();
    	$_SESSION['login'] = $login;
    	$_SESSION['password'] = md5($password);
                 $_SESSION['Cbon'] = "O";
    	Header("location: ok.php");
    	}
    	else
    	{
    	Header("Location: ko.html");
    	}
    ?>
    Et l'autre tout simplement
    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
     
     
    <?php
    session_start ();
    if (!isset($_SESSION['Cbon'])) 
      {
         Header("Location: ko.html");
         exit;
      }
    $Cbon=$_SESSION['Cbon'];
    if ($Cbon!="ok") 
      {
         Header("Location: ko.html");
         exit;
      }
    ?>
    <!-- c est libre ------------- -->

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 121
    Points : 73
    Points
    73
    Par défaut
    Merci beaucoup ! Desole de devoir te faire repeter qlq que tu expliques tout les jours...

    J'ai encore trois petites questions:

    1) Pour ma propre curiosité: tu sais pirater une zone sécurisée comme celle que tu viens de me donner ?

    2) J'ai lu qu'on pouvait faire deux choses dans la configuration du php, mettre:
    "reporting_error" sur off et "register_globals" sur off.
    Etes-vous d'accord ?

    3) Un login ou un mot de passe qui contient des chiffres et des lettres est-il plus sur qu'un login ou mot de passe avec que des lettre ?

  11. #11
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par lelapinrusse Voir le message
    Merci beaucoup ! Desole de devoir te faire repeter qlq que tu expliques tout les jours...
    J'ai encore trois petites questions:
    1) Pour ma propre curiosité: tu sais pirater une zone sécurisée comme celle que tu viens de me donner ?
    2) J'ai lu qu'on pouvait faire deux choses dans la configuration du php, mettre:
    "reporting_error" sur off et "register_globals" sur off.
    Etes-vous d'accord ?
    3) Un login ou un mot de passe qui contient des chiffres et des lettres est-il plus sur qu'un login ou mot de passe avec que des lettre ?
    Question
    1) j' ais des connaissances sur le sujet disons je connais des méthodes , celles qui me poussent a faire au mieux, sachant que PHP mais surtout les serveurs, sont pratiquement impossible a protéger. Donc pour étre franc,j'ais sur des conseilles de la FAQ ici, acheté l' excelent livre
    Sécuritée PHP 5 et MYSQL.
    http://www.eyrolles.com/Informatique...-9782212121148
    Impossible a protéger ?? mais ce genre de livre t'apprends qu'en mettant les bonnes barriéres, on se protége trés vite des 95% d'aprentis sorciers

    2) reporting_error sur OFF n'a qu'un intéret , celui d'éviter si tu as des erreurs d'avoir des messages qui siteraient des passages de ton PHP que tu préfére cacher. Mais j'ais lu que certains systémes y répondent mal, continuant a afficher les messages. Il faut dire que ce paramétre est a 3 endroits pfffffff

    "register_globals" sur off. Oh oui, maiss aucun danger, car tout bon hebergeur laisse la config par défault = OFF

    3) Un login ou un mot de passe qui contient des chiffres et des lettres est-il plus sur qu'un login ou mot de passe avec que des lettre

    Franchement, ça va faire hurler, mais un mot de passe de cinq lettres suffit trés largement ...

    Mais attention la page ou on saisit le nom/mot de passe
    doit n'accepter que 3 erreurs, et se réactive au bout d'une heure ...
    En plus il faut taper le texte d'un captcha

    Ainsi un robot ne peux par 10.000 test craqué le mot de passe !

    ça c' est plus important que la longueur du mot de passe et de loin
    Dernière modification par FoxLeRenard ; 16/02/2009 à 01h22.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 121
    Points : 73
    Points
    73
    Par défaut
    Ok ok, il faut avoué que mettre au point le système le plus sécurisé possible à quelque chose d'amusant !

    1) J'ai fait un phpinfo() chez ovh et register_global est sur ON...
    Je me demande maintenant comment le placer sur OFF ?

    2) Comment limiter à 3 erreurs ? Et surtout comment desactive pendant une heure une page ?

    Désolé de multiplié mes questions mais je trouve tes réponses très clairs et le topic est très intéressant.

  13. #13
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    1) J'ai fait un phpinfo() chez ovh et register_global est sur ON...
    Je me demande maintenant comment le placer sur OFF ?
    Tu ne peux pas.

    Maintenant, il serait peut-être bon de savoir ce que tu veux faire comme appli, à qui est-ce destiné, bref en savoir un peu plus...

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 121
    Points : 73
    Points
    73
    Par défaut
    Alors pour le register_global, j'ai fais un fichier .htaccess et le l'ai envoyé et j'ai regarde avec phpinfo() et register_global est bien passé à OFF.

    C'est une zone sécurisée d'une société. Elle contiendra une page avec tout leurs clients, leurs courriels, leurs login et password pour commander en ligne.

    Cette page permet egalement d'ajouter, d'enlever ou de modifier une de ses info sur les clients.

    Au dela de cela, c'est aussi très intéressant.

    En fait, il ne reste qu'une question et j'arrete de vous ennuyer.
    Comment limiter le nombre d'erreur à 3 et desactiver une page pendant une heure ? Faut probablement stocker un truc dans une table mais j'ai un peu de mal la...

  15. #15
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Simple tu peux utiliser l'IP, la session, un cookie, le nombre d'échecs, le timestamp et si X tentatives ont échouées, tu bloques 24h par exemple en fonction du timestamp.

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 121
    Points : 73
    Points
    73
    Par défaut
    Avec l'adresse ip ca à l'air pratique mais je vois pas comment incrementer le nombre de tentative ni meme comment "desactiver" une page. Ca à l'air simple pour vous, lol.
    Un petit coup de main ?

  17. #17
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Là nous sommes hors sujet, tu dois ouvrir un nouveau fil pour celà.

    Maintenant si tu ne sais pas faire ça... comment vas tu gérer la suite ?

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 02/06/2010, 15h53
  2. [AJAX] modifier une variable session php
    Par rom117 dans le forum AJAX
    Réponses: 10
    Dernier message: 14/07/2009, 10h26
  3. [PHP-JS] variable session Php + javascript
    Par Panther dans le forum Langage
    Réponses: 2
    Dernier message: 12/02/2008, 15h29
  4. ZoneAlarm bloque mes variables de session PHP en local
    Par GritNatz dans le forum Sécurité
    Réponses: 3
    Dernier message: 24/06/2006, 14h20
  5. Deboggeur de variables de sessions PHP
    Par joe_le_mort dans le forum Langage
    Réponses: 10
    Dernier message: 14/11/2005, 23h22

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