Mercurial > defr > DualBlog
changeset 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 | 8cbb4f4d890b |
files | comment.php templates/commentForm.xml |
diffstat | 2 files changed, 15 insertions(+), 1 deletions(-) [+] |
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;
--- a/templates/commentForm.xml Fri Oct 26 18:09:36 2007 +0200 +++ b/templates/commentForm.xml Sat Oct 27 11:40:07 2007 +0200 @@ -10,6 +10,7 @@ <div id='FormCommentaire'> Vous souhaitez ajouter un nouveau commentaire ? Faites donc, il vous suffit de remplir le petit formulaire ci-dessous. + <input type='hidden' name='seed' tr:id='#Seed' /> <input type='text' name='Auteur' value='Votre Nom' onfocus="if(this.value== this.getAttribute('value')) this.value='';" /> <input type='text' name='AdresseMail' value='Une adresse mail où vous joindre ? ( Non affichée publiquement )' onfocus="if(this.value == this.getAttribute('value')) this.value='';"/> <input type='text' name='Adresse' value='Un site web à vous ?' onfocus="if(this.value == this.getAttribute('value')) this.value='';"/>