Bonjour,
J’ai besoin de l’avis d’un pro…
Afin d’améliorer la protection d’un formulaire, je viens de lire ceci :
La seule technique qui empêche le déplacement de formulaire consiste à donner une durée de vie à ce dernier.
Lors de l’affichage du formulaire, on ajoute un champ invisible de type date avec une date d’expiration ou la date de production du formulaire.
Code : Tout sélectionner
<input type="hidden" name="date" value="2007-01-06 15 :21 :00">
Pour compliquer la tâche du pirate, on utilise une valeur chiffrée ou signée. Si la valeur est chiffrée, vous ne pourrez la déchiffrer qu’avec la clé ad hoc.
Il est aussi possible d’utiliser une date signée : elle n’est plus déchiffrable, mais toujours utilisable. Par exemple, pour donner une durée de vie de 10 minutes à un formulaire, vous pouvez signer la date avec MD5, comme ceci :
// Publication du formulaire
$date = md5('SeL'.date("Y-m-d h:i:00");
Après soumission du formulaire, vous devrez tester sa validité. Comme MD5 n’est pas déchiffrable, vous pourrez simplement tester si elle fait partie des 10 valeurs possibles, comme ceci :
// test du formulaire
$validite = range(0, 10) ;
$valide = false ;
foreach($validite as $v) {
$valide |= ($_POST['date'] ==
md5('SeL'.date('Y-m-d h:i:00 ", mktime() + $v * 60));
}
J’ai bien compris que le champ invisible vient ce placer à la fin du formulaire… Je pense !
Comment et ou placer l'ensemble du code php ?
Dois-je le placer entre les guillements de value="<?php ici le code ?>" ?
Merci bien pour ce bout de code plus propre...
Bien cordialement