diff comment.php @ 24:b23b8f2a8c91

Lutte anti-spam: on vérifie que le commentaire provient du formulaire du blog
author Franck Deroche <webmaster@defr.org>
date Sat, 27 Oct 2007 11:40:07 +0200
parents 20159d39b8f8
children fa43c43763a2
line wrap: on
line diff
--- a/comment.php	Fri Oct 26 18:09:36 2007 +0200
+++ b/comment.php	Sat Oct 27 11:40:07 2007 +0200
@@ -12,6 +12,11 @@
      $AdresseMail = $Req->get('AdresseMail');
      $Comment=$Req->get('Comment');
      $DateComment=gmdate("Y-m-d H:i:s", time() + 3600*2);
+
+     // Si on essaie d'ajouter un commentaire et que la graine n'est pas bonne
+     if(!empty($Comment) && $_SESSION['commentSeed'] != $Req->get('seed'))
+     	die("L'ajout de commentaire doit se faire à partir du formulaire de ce blog");
+
      if(!is_null($Auteur) && $Auteur!='Votre Nom' && $Auteur != $Adresse && !empty($Comment)) {
 	// Prévention d'un "cassage" par ajout d'un commentaire incorrectement formaté
 	$ip = $_SERVER['REMOTE_ADDR'];
@@ -66,8 +71,16 @@
         $sk->addBlogPost($commentTpl);
       }
 
-      // Ajout du formulaire d'ajout de commentaires
+      // Génération de la graine (cette dernière permet de s'assurer
+      // que l'essai d'ajout de commentaire provient bien de ce
+      // formulaire, et en conséquence devrait permettre de réduire
+      // le spam.
+      $seed = md5(time() . 'DualBlog');
+      $_SESSION['commentSeed'] = $seed;
+
+      // Ajout du formulaire d'enregistrement de commentaires
       $commentForm = new Template('commentForm.xml');
+      $commentForm->setParams(array('#Seed@value' => $seed));
       $sk->addBlogPost($commentForm);
 
       echo $sk;