Index du Forum » » Sécurité

Auteur

modifs de l'antispam
tifcc
68    

  Posté : 02-07-2008 23:19

petite récap:

Q_spambot:


$asb_question = array (
   '(6 moins 5 )'           => 1,
     'couleur du ciel '           => 'bleue',
   'couleur du cheval blanc d\'HenriIV'           =& gt; 'blanc',
   '3 moins 0 moins 1'         => 2,
   '(8 divisé par 2) puis moins 1'       => 3,
   '(1 plus 1) ajouté à  (1 plus 1)' => 4,
   '2 plus 1 plus 1 plus 1'     => 5,
   '0 ajouté à  (8 moins 2)'       => 6,
   ...etc

puis

mt_srand((double)microtime()*1000000);
   $asb_index = mt_rand(0,count($asb_question)-1);
   $tmp="";
   $ibid=array_keys($asb_question);
   if (!$user) {
      $tmp="<span class=\"Bleu\">Anti-Spam / Merci de répondre à la question avant de valider: </span><span class=\"rouge\">".str_replace(" "," ",$ibid[$asb_index]." = ")." </span><input class=\"textbox_standard\" type=\"text\" name=\"asb_reponse\" size=\"10\" maxlength=\"10\" !onclick!=\"this.value=''\">";
// ligne modifiée par rapport au précédent post
      $tmp.="<input type=\"hidden\" name=\"asb_question\" value=\"".encrypt(($asb_question[$ibid[$asb_index]]).",".time())."\">\n";
     }



dans R_spambot :


if ( ($asb_reponse!="") and (strlen($asb_reponse)<=10) ) {
// strlen est à ajuster avec la longueur du champ de Q_spambot

$ibid=decrypt($asb_question);
            $ibid =explode(",",$ibid);
            $resu lt="\$arg=($ibid[0]);";
            // submit intervient en moins de 5 secondes (trop vite) ou plus de 30 minutes (trop long)
            $temp =time()-$ibid[1];
            if&nb sp;(($temp<1800) and ($temp>5)) {
              ;  //eval($result); on vire l'éval, plus necessaire
              ;                 //Modif pour pouvoir changer le questionnaire la réponse est passéee en arg plutot que la question
              ;                 $arg=$ibid[0];
            } else {
              ;  $arg=uniqid(mt_rand());
            }
         } else {
            $arg= uniqid(mt_rand());
         }
         if ($arg==$asb_reponse) {
              ;   



le reste sans modif


rb



Cet article provient de NPDS

http://www.npds.org/viewtopic.php?topic=23718&forum=12