Sécurité Cookie

Rachid - Modifié par NHenry le 19/08/2016 à 20:52
jordane45
Messages postés
36054
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 août 2022
- 21 août 2016 à 18:31
Bonjour,
Je suis débutant en PHP et je peine hélas à déchiffrer ce code pour la sécurisation des cookies. Quelqu'un peut-il me fournir quelques axes de compréhension. Cela me serait fort utile !

<?php  
// Nom : NFA017 // Valeur : Nom & Prenom & Checksum  // Dure : session  
if (isset($_COOKIE['NFA017'])) {  
        if (($data = readCookie($_COOKIE['NFA017'])) !== false) {  
                  echo '<pre>', print_r($data, true), '</pre>';   
  } else {    
                 echo 'Le checksum est invalide';     } } else {     $nom = 'brusciano';     $prenom = 'florent';       makeCookie(array('nom' => $nom, 'prenom' => $prenom)); }  
         define('CHECKSUM_KEY', 'hello le monde');  
function makeCookie($data) {  
        $checksum = CHECKSUM_KEY;     foreach ($data as $v)         $checksum .= $v;  
        $checksum = md5($checksum);  
        $data = array_merge($data, array('checksum' => $checksum));  
        setCookie('NFA017', http_build_query($data)); }  
function readCookie($str) {  
        parse_str($str, $data);  
       $checksum = array_pop($data);  
       $verif = CHECKSUM_KEY;     foreach ($data as $v)         $verif .= $v;  
       if ($checksum != md5($verif))         return false;  
       return $data; }  
?> 


Merci par avance !
Bien cordialement
Rachid

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

1 réponse

jordane45
Messages postés
36054
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 août 2022
358
21 août 2016 à 18:31
Bonjour,

http://php.net/manual/fr/language.types.array.php
http://php.net/manual/fr/function.define.php
http://php.net/manual/fr/function.setcookie.php
http://php.net/manual/fr/function.md5.php
http://php.net/manual/fr/function.array-merge.php

voila. je pense que je n'ai rien oublié.
Avec ça tu devrais être en mesure de comprendre ce code.
Je n'ai pas mis d'infos sur les IF ni sur les FOREACH car j'ose penser que tu sais comment ça marche.

0