Page 1 sur 1

Sécuriser son site web avec des url + formulaires cryptées

Posté : 18 juil. 2010, 02:52
par math
Bonjour,
J'aimerai avoir le conseil d'expert PHP ^^
Pour sécuriser les valeurs que je passe dans mes formulaires et mes liens html, je cherche une méthode cryptage/décryptage fonctionnant avec le mécanisme des sessions PHP ...

En cherchant des exemples sur le net je suis arrivé un faire ma petite tembouille ! mais elle ne marche pas encore,
J'ai donc 2 fonctions encode() et decode, un petit formulaire et un lien afin de vous montrer ou j'en suis :
<?php


if(!isset($_SESSION['auth'])){
session_start();
$_SESSION['auth']='ok';
}

function decode($maChaineCrypter){

        $maCleDeCryptage=$GLOBALS['PHPSESSID'];

        $maCleDeCryptage = md5($maCleDeCryptage);
        
        #echo "Clé de cryptage md5 du PHPSESSID :".$maCleDeCryptage."<br>";
        $letter = -1;
        $newstr = '';
        $maChaineCrypter = base64_decode($maChaineCrypter);
        $strlen = strlen($maChaineCrypter);
    for ( $i = 0; $i < $strlen; $i++ ){
        $letter++;
        if ( $letter > 31 ){
            $letter = 0;
        }
        $neword = ord($maChaineCrypter{$i}) - ord($maCleDeCryptage{$letter});
        if ( $neword < 1 ){
            $neword += 256;
        }
    $newstr .= chr($neword);
    }
return $newstr;
}

function encode($maChaineACrypter){

        $maCleDeCryptage=$GLOBALS['PHPSESSID'];

        $maCleDeCryptage = md5($maCleDeCryptage);
        
        #echo "Clé de cryptage md5 du PHPSESSID :".$maCleDeCryptage."<br>";
        $letter = -1;
        $newstr = '';
        $strlen = strlen($maChaineACrypter);
    for($i = 0; $i < $strlen; $i++ ){
        $letter++;
        if ( $letter > 31 ){
            $letter = 0;
        }
        $neword = ord($maChaineACrypter{$i}) + ord($maCleDeCryptage{$letter});
        if ( $neword > 255 ){
        $neword -= 256;
        }
        $newstr .= chr($neword);
    }
    return base64_encode($newstr);
}




if(!isset($_GET['do'])){
    $url="";
}
else{
    $url=decode($_GET['do']);
        
    # Resultat du lien
    echo "URL : ".$url."<br><br>";
    
    #echo parse_str($url)."<br>";
    echo $do."<br>";
    echo $manger."<br>";
    echo $action."<br>";
    
    # Résultat du formulaire
    echo decode($_POST['do'])."<br>";
    echo decode($_POST['manger'])."<br>";
    echo decode($_POST['sortir'])."<br>";
    echo decode($_POST['rire'])."<br>";    
}
?>


<a href='?do=<?php echo encode("test&manger=hihi&action=frite")?>' ><b>Test</b></a>

<div class="formulaire">
<form name="membre" method="post" action="?do=<?php echo encode("test" ); ?>" enctype="multipart/form-data"> 
<input type="hidden" name="manger" value="<?php echo encode('frite')?>">
<input type="hidden" name="sortir" value="<?php echo encode('cinema')?>">
<input type="hidden" name="rire" value="<?php echo encode('hohoho')?>">
<table>    

<tr><td>&nbsp;</td></tr>
<tr>
    <td align="center">
    <input type="submit" value="Envoyer" class="bouton" style="width:250px;">
    </td>
</tr>
<tr><td>&nbsp;</td></tr>
 </table>
</form>
</div>
Voila ! Tout est dit.
A moins qu'il existe déjà quelque chose de fait se rapprochant de ce que je veux faire je suis preneur !
Dans l'attente d'une réponse qui m'évite de faire du bricolage ... Merci d'avance

Re: Sécuriser son site web avec des url + formulaires cryptées

Posté : 19 juil. 2010, 11:55
par telnes
bonjour

Pour sécuriser le passage de variable on fait des tests sur les données reçus. tu attend un chiffre tu test si c'est un chiffre, tu attend des chaines (pizza,toto,titi,..) tu test via un switch case , ...
crypter tes GET va juste alourdir ton code et empêcher les moteurs de recherche de faire une indexation plus pertinentes de tes url

++