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 :

[Cookies] Recherche d'idée pour securiser un cookie d'identification sans BD (md5 ?)


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 39
    Points : 29
    Points
    29
    Par défaut [Cookies] Recherche d'idée pour securiser un cookie d'identification sans BD (md5 ?)
    Bonjour tout le monde,
    voila je suis a la recherche d'idees pour securiser un cookie utilisé pour identifier l'utilisateur des son arrivée sur le site ..

    il se connecte, je cree un cookie ou je stocke son ID ..

    Existe t-il un moyen fiable d'ajouter une donnée au cookie qui me permetterait de controler que le cookie n'a pas ete piraté.. Je pensais a un codage en md5 de deux variables dont l'ID ..

    J'aimerais eviter de stocker toute données dans ma BD .. pour ne pas la surcharger ..

    mercii d'avance

  2. #2
    Membre actif Avatar de frol
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 288
    Points : 296
    Points
    296
    Par défaut
    ca dépend si tu codes ton id en md5 tu sauras le comparer mais pas l'utiliser...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 39
    Points : 29
    Points
    29
    Par défaut
    En fait je pensais plus a un systeme qui crypte l'identifiant à l'aide d'une clé que je suis seul a connaitre ..
    exemple dans mon cookie je stocke :
    - id
    - id_crypte = md5 ( id + cle )

    et ensuite je compare l'id que je crypte moi meme à l'id_crypte ..

    Que pensez vous de ce systeme ? et quel clé prendre pour etre otpimale ?

    mercii

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 39
    Points : 29
    Points
    29
    Par défaut
    C'est bon j'ai trouvé mon bonheur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // envoi du cookie
    $secret_word = 'gargamel';
    $id = 123745323;
    $hash = md5($secret_word.$id);
    setcookie('id',$id.'-'.$hash);
     
    // reception et verification du cookie
    list($cookie_id,$cookie_hash) = explode('-',$_COOKIE['id']);
    if (md5($secret_word.$cookie_id) == $cookie_hash) {
        $id = $cookie_id;
    } else {
        die('Cookie erroné.');
    }

  5. #5
    Membre actif Avatar de frol
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 288
    Points : 296
    Points
    296
    Par défaut
    ah oki ouai ben au niveau de la sécurité je pense que c'est bon juste ne pas laisser trainer ta clé

  6. #6
    Membre actif Avatar de zaza576
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2013
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2013
    Messages : 175
    Points : 275
    Points
    275
    Par défaut
    Salut

    Je souhaiterais juste rajouter qu'un hash MD5 seul ne suffit pas à garantir une haute sécurité.
    Si tu veux compliquer un peu plus le travail des hackers, rajoute une fonction de salage dans ton hash md5. Cela compliquera le cryptage.
    Sans cette information complémentaire, le hacker aura plus de difficultés pour déchiffrer ton information.

    Exemples :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php $idUser = md5('MonSel'.$idUser.'Cheri'); ?>
    Ou encore avec la date du jour !

    Voir la doc officielle PHP :
    http://php.net/manual/fr/function.password-hash.php
    http://php.net/manual/fr/function.crypt.php
    http://php.net/manual/fr/faq.passwords.php

    Dans la dernière url, il est recommandé de faire tourner la fonction de hachage plusieurs centaines / milliers de fois sur ton hash même afin de complexifier encore plus le chiffrement !

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Citation Envoyé par zaza576 Voir le message
    Salut
    Salut, et félicitations pour avoir déterré un thread d'il y a 10 ans!! Ça doit être une sorte de record!


    Citation Envoyé par zaza576 Voir le message
    Je souhaiterais juste rajouter qu'un hash MD5 seul ne suffit pas à garantir une haute sécurité.
    Si tu veux compliquer un peu plus le travail des hackers, rajoute une fonction de salage dans ton hash md5.
    Exact, mais si tu lis bien son code, tu verras qu'il ajoute déjà un (mauvais) sel à son hash.

    Citation Envoyé par zaza576 Voir le message
    Ou encore avec la date du jour !
    Surtout pas, très mauvais conseil (qui m'a décidé à répondre à ce fil, afin que les débutants qui tomberaient sur ceci ne croient pas que c'est la bonne manière de faire).

    Un salt doit être aléatoire, il n'y a rien de moins aléatoire que la date du jour (ou le timestamp). Heureusement, on n'est plus en 2006 et PHP a bien avancé depuis. Pour créer un sel, on utilise maintenant la fonction random_bytes. Et quoi qu'il en soit, l'utilisation de hash n'est pas la solution dans ce cas.

    Citation Envoyé par zaza576 Voir le message
    Voir la doc officielle PHP :
    http://php.net/manual/fr/function.password-hash.php
    http://php.net/manual/fr/function.crypt.php
    http://php.net/manual/fr/faq.passwords.php

    Dans la dernière url, il est recommandé de faire tourner la fonction de hachage plusieurs centaines / milliers de fois sur ton hash même afin de complexifier encore plus le chiffrement !
    D'abord, avec password_hash, tu n'as plus à "tourner la fonction de hachage plusieurs centaines / milliers de fois". La fonction password_hash() suffit.

    Ensuite, tous tes liens traitent de mot de passe, alors que la question de ce thread porte sur les cookies. Rien à voir. Un mot de passe doit être stocké de manière irréversible, le cookie doit être stocké de manière réversible (contrairement à ce que l'OP croit).

    Pour cela, la donnée (cookie ou autre) à traiter doit être chiffrée, puis signée avec un MAC. Et à l'inverse, on doit d'abord authentifier le cookie, puis le déchiffrer.

    La cryptographie étant un domaine très compliqué où il est très facile de faire des erreurs indétectables, je conseille de ne pas écrire son propre crypto et d'utiliser des bibliothèques reconnues, à moins que ce ne soit pour "apprendre" (mais à ne surtout pas utiliser sur un vrai site, et apprendre ce domaine prends des années).

    La meilleure bibliothèque pour l'encryption sous PHP est l'extension Libsodium, et il y a en ce moment un mouvement pour l'intégrer dans l'une des futures versions de PHP 7. Si on ne peut pas installer une extension, il existe une alternative: PHP Encryption. PHP Encryption rend le chiffrement à la portée des nuls et permet de faire des opérations sécurisées sans faire d'erreurs.

    Il suffit de recopier cet exemple, et ensuite d'utiliser ces valeurs avec un cookie.

Discussions similaires

  1. Recherche d'idée pour récupérer plusieurs POST
    Par djo007 dans le forum Langage
    Réponses: 2
    Dernier message: 08/04/2013, 23h42
  2. Recherche bon IDE pour Sybase
    Par F.Salenko dans le forum Sybase
    Réponses: 0
    Dernier message: 09/12/2011, 04h18
  3. recherche d'idées pour simulation economique
    Par Ntotor dans le forum Création de jeux vidéo
    Réponses: 0
    Dernier message: 01/08/2011, 17h04
  4. Recherches "idées" pour exposé décisionnel
    Par hercule29 dans le forum Etudes
    Réponses: 1
    Dernier message: 21/11/2006, 13h54
  5. problème pour supprimer un cookie
    Par vbcasimir dans le forum Web
    Réponses: 4
    Dernier message: 29/11/2005, 12h01

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