Contrer le spam de façon simple pour vos commentaires

Ruby, Web Add comments

En ce beau jour de dimanche 25 Novembre ( jour de mes 31 ans ) je vais vous expliquer comment protéger les commentaires de votre blog et ainsi éviter de recevoir du spam pour des produits pharmaceutiques douteux.

Cette méthode n’a rien de révolutionnaire mais semble marcher pas trop mal sur les sites que j’ai testé.

1) Ne pas accepter de liens dans les commentaires

Cela peux paraître idiot, mais la pluspart des robots essayent de mettre des liens vers des sites externes plus ou moins recommendables.

2) Utiliser la méthode du « input type=’hidden’… » lui même en commentaire.

Je ne sais pas pourquoi mais les robots veulent vous soumettre tous les champs de votre formulaire… Même si celui ci est en commentaire. Du coup, il devient aisé de détecter si c’est un robot qui soumet le formulaire ou pas.

Voici un exemple en Ruby on Rails :

Dans ma vue voici ce que j’ai : Attention j’utilise #haml pour mes vues
- form_tag :controller=>"documents", :action=>"add_comment", :id=>@article do
/ = hidden_field_tag "plip", "plop"
... Suite de votre formulaire

Pour info, et pour les personnes n’utilisant pas #haml, voici le code html généré :
[html]


[/html]

Et voici dans mon controlleur comment j’élimine les robots
[ruby]
def add_comment
unless params[:plip] # Si le champs « plip » n’a pas été soumis alors on traite le formulaire
c = Comment.new
c.document_id = params[:id]
c.client_id = session[:userid]
c.texte = params[:commentaire][:texte]
if c.client_id != nil
c.save
else
# Si la personne n’est pas authentifiée, on interdi les liens types http=// et autres [url] …
c.save unless c.texte =~ /http:\/\// or c.texte =~ /\[url\]/ or c.texte =~ /https:\/\//
end
end
redirect_to :action=> »show_article », :id=>params[:id]
end
[/ruby]

Voilà avec ce bout de code, je n’ai pas eu plus de 3 spams qui sont passé à travers depuis 6 mois sur un site qui a environ 3000 personnes par jour en moyenne.

Leave a Reply

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Connexion