Sécurité Cookie

-
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.
Afficher la suite 

Votre réponse

1 réponse

Messages postés
23615
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 décembre 2018
0
Merci
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.

Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.