Fork me on GitHub

Rapport de message :*
 

Re: Anti-spams !?

Titre du sujet : Re: Anti-spams !?
par FabienSt sur 05/02/2010 18:42:50

Merci pour le fichier .htaccess
Je le met juste dans la racine de mon site ?
(la racine de Xoops est décalée d'un dossier sur ma config.)

Sinon, sachant que les robots génèrent des noms bidons du genre "XfGfftjdjd" je me suis amusé à bricoler une fonction "filtre" à partir de ces sources.

J'ai réussi facilement à l'intégrer dans le formulaire d'inscription / Informations basiques (profile/register) pour filtrer le pseudo... mais j'ignore ou insérer ma fonction pour filtrer les champs de l'étape "Informations complémentaires"...

Ma nouvelle fonction /modules/profile/include/function.filter.php :

<?php

function filter($texte)
{

//le texte est converti en minuscules pour l'analyse
$texte strtolower($texte);

//les éventuels chiffres sont supprimés 
$texte ereg_replace("[0-9]","",$texte); 

    
$nombres_de_lettes_max 4;
    
// les consonnes
    
$consonnes = array("b","c","d","f","g","h","j","k","m","n",
                       
"p","q","r","s","t","v","w","x","z");
    
// les voyelles
    
$voyelles  = array("a","e","i","o","u","y");
    
// les exceptions en 4 lettres (comme le $nombres_de_lettes_max)
    
$exceptions = array("http","aaaa","uuuu");


    
// variables
    
$i=0$v=0$c=0$stock_consonne='';$stock_voyelle='';

    while (
$i<=strlen($texte)) {
    
// on sauvegarde le contenu de last_var pour refaire une comparaison
    
$last_var_sub $last_var;
    
// on gere les consonnes
    
if (in_array($texte[$i],$consonnes))
        {
$stock_consonne .= $texte[$i]; $i++;$c++;$last_var='consonne';}
    
// on gere les voyelles
    
elseif (in_array($texte[$i],$voyelles))
            {
$stock_voyelle .= $texte[$i]; $i++; $v++; $last_var='voyelles';}
    
// si c'est un caratere autre on met tout a zero
    
else{$v=0;$c=0;$i++;$stock_consonne=''$stock_voyelle='';}
    
// test sur les egalités
    
if ($c==$nombres_de_lettes_max) {
                                    if (!
in_array($stock_consonne,$exceptions))
                                    
redirect_header('user.php'5_PROFILE_MA_NOSTEPSAVAILABLE);
                        exit();
                                    
$v=0;$c=0;$stock_consonne='';
                                         }
    if (
$v==$nombres_de_lettes_max) {
                                    if (!
in_array($stock_voyelle,$exceptions))
                                   
redirect_header('user.php'5_PROFILE_MA_NOSTEPSAVAILABLE);
                        exit();
                                    
$v=0;$c=0;$stock_voyelle='';
                                          }
    
// si la lettre est differente on reinitialise
    
if ($last_var_sub != $last_var)
    {
$v=0;$c=0$stock_consonne=''$stock_voyelle='';}
    }

}
?>


Et évidemment il me suffit d'ajouter ceci :

include ("include/function.filter.php");


et par exemple

//hack anti-spammeur fabienst 

    
filter("$uname");


dans le fichier register.php pour filtrer le pseudo...
...mais évidement si je n'arrive qu'a filtrer le pseudo je ne vais pas protéger grand chose

:oops:
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

52 Personne(s) en ligne (45 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 52 | Plus ...