Niveau
..........
En rapport...

Passer des informations d'une page à l'autre sans révéler les variables et sans post !

Le principe de base est simple. On va créer une variable qui va contenir des bouts de code php.
On va compresser cette variable, l'encoder pour le passage en GET puis l'envoyer à une deuxieme page.
Cette deuxieme page va décoder la chaîne en paramètre, la décompressé puis l'exécuter (via eval).
En utilisant SERIALIZE, on pourrait passer une variable tableau (pourquoi pas $_SESSION ?)

Code

———————–Copier ce code dans a.php————————

php
<?php
    //on met dans la variable $str 2 affectations, une pour $a et une pour $b
    $str = '$a="toto";$b="tata";';
    //on compresse la chaîne obtenue avec gz
    $str = gzcompress($str, 9);
    //encode la chaîne au format URL
    $str=urlencode($str);
    //on affiche le résultat :
    echo $str;
?>

Voici un lien appelant la page b.php et passe en paramètre la chaîne compressé :

php
<a href="b.php?<?php echo $str; ?>">page b!</a>

———————–Copier ce code dans b.php————————

php
<?php
    //récupère l'adresse qui a été utilisée pour appeler la page
    $b=$_SERVER['REQUEST_URI'];
    //extrait le seul et unique paramètre (il se trouve après le ?)
    $b=substr($b, strpos($b,'?')+1);
    //décode la chaîne (encodé dans le fichier a.php)
    $b=urldecode($b);
    //décompresse les données
    $str = gzuncompress($b);
    //évalue le contenu, ça va donc évaluer $a="toto";$b="tata";
    eval($str);
    //et affiche le résultat. On voit donc que $a et $b ont été passé en paramètre de a.php
    //vers b.php sans qu'ils soient directement visible.
   echo 'str='.$str.'<br>a='.$a.'<br>b='.$b;
?>



06/06/2006 15:49 -

iDo –

Discussion

Édouard BERGÉ, 13/09/2007 09:29:

Ce truc est carrément le meilleur moyen de se faire hacker un site non ? Mieux vaut crypter la chaine.

 
nono, 18/09/2007 07:59:

c'est pas plus simple de faire un post pour un formulaire, ou une session ?

 
iDo, 19/09/2007 14:28:

:) evidement !
Il ne s'agit pas d'un chose a utiliser mais d'une combine qui peut etre utile a savoir… Pour faire communiquer 2 site qui ne sont pas sur le même domaine par exemple

 
Si vous ne pouvez pas lire les lettres, téléchargez ce fichier WEV et écoutez les.