Connaissez-vous la YASB (Yet Another Spam Blacklist)
Le Mercredi 24 06 2009 à 17:34 par Frank | Catégorie:GénéralArticle modifié le Mercredi 24 06 2009 à 17:34
j'ai fait la connaissance il y a quelques jours de la YASB, la Yet Another Spam Blacklist.
Comme son nom l'indique, la YASB est une base de données rescensant des IPs de spammeurs. La chose consiste en que quand vous arrivez à détecter un spammeur (voir plus bas), vous pouvez enregistrer son ip dans la base de données de l'YASB. Ensuite, si cette ip a été enregistrée plusieurs fois, l'IP s'enregistre pour de bon. Elle sera ensuite détectée comme spam quand vous la rechercherez dans la base de données.
Après, vous avez un API vous permettant de voir si cette IP est dans la base. Vous pouvez donc interdire l'ip à votre site ou l'interdire d'ajouter des commentaires aux articles par exemple.
J'ai fait, pour un site que je suis en train de faire, deux petites fonctions PHP que je tiens à vous passer.
La première permet de voir si le site est répertorié dans la base de données (elle est copiée du site) et la deuxième (qui est très simple) permet d'ajouter l'ip du spammeur à la base.
Voici la première fonction:
function src_spammer($ip)
{
$url = 'http://yasb.intuxication.org/api/check.xml';
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, "$url");
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_POST, 1);
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, "ip=$ip");
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);
$xml = new SimpleXMLElement($buffer);
if($xml->spam = = 'true')
{
return true;
}
else
{
return false;
}
}
Je pense qu'elle est assez claire pour que vous compreniez.
Et voici la deuxième :
function submit_spammer($ip)
{
file_get_contents('http://yasb.intuxication.org/api/submit.xml?ip='.$ip);
return 0;
}
Vous pouvez utiliser la première fonction d'une manière assez radicale:
Dans le début de mon index.php (qui lui, inclue toutes les pages), j'ai mis ca:
if(src_spammer($_SERVER['REMOTE_ADDR']))
{
header("HTTP/1.0 503 Service Unavailable"); //Pour si au cas ou les crawlers sont répertoriés dans le YASB
die('Die spammer, die !!');
}
Si quelqu'un est dans la base, la fonction retournera true. et la page ne se chargera plus (elle affichera un "Die spammer, die !!").
Maintenant, par sécurité, si par exemple un crawler est dans cette page, on met préalablement un HTTP/1.0 503 Service Unavailable pour pas que notre pagerank tombe suite à l'indisponibilité de toutes les pages du site.
Un truc que j'ai fait dans presque tous mes sites et de mettre un champ "website" et dans le css le mettre en hidden. Comme ca, les bots cons ne verront pas que ce champ est supposé être caché et le rempliront donc.
Voici un petit exemple de code:
Dans votre processing des informations, mettez
if($_POST['website'] != '')
{
submit_spammer($_SERVER['REMOTE_ADDR']);
die('Die bot, die!!!');
}
Hé voila, votre méchant spammeur, à l'heure d'essayer de vous spammeur se verra son ip reportée à la YASB database et en plus, il ne pourra pas soumettre son "superbe" commentaire.
Pour plus d'infos: Le site de la YASB
Qu'est ce que c'est ?
Comme son nom l'indique, la YASB est une base de données rescensant des IPs de spammeurs. La chose consiste en que quand vous arrivez à détecter un spammeur (voir plus bas), vous pouvez enregistrer son ip dans la base de données de l'YASB. Ensuite, si cette ip a été enregistrée plusieurs fois, l'IP s'enregistre pour de bon. Elle sera ensuite détectée comme spam quand vous la rechercherez dans la base de données.
Après, vous avez un API vous permettant de voir si cette IP est dans la base. Vous pouvez donc interdire l'ip à votre site ou l'interdire d'ajouter des commentaires aux articles par exemple.
Exemples de code
J'ai fait, pour un site que je suis en train de faire, deux petites fonctions PHP que je tiens à vous passer.
La première permet de voir si le site est répertorié dans la base de données (elle est copiée du site) et la deuxième (qui est très simple) permet d'ajouter l'ip du spammeur à la base.
Voici la première fonction:
function src_spammer($ip)
{
$url = 'http://yasb.intuxication.org/api/check.xml';
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, "$url");
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_POST, 1);
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, "ip=$ip");
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);
$xml = new SimpleXMLElement($buffer);
if($xml->spam = = 'true')
{
return true;
}
else
{
return false;
}
}
Je pense qu'elle est assez claire pour que vous compreniez.
Et voici la deuxième :
function submit_spammer($ip)
{
file_get_contents('http://yasb.intuxication.org/api/submit.xml?ip='.$ip);
return 0;
}
Comment utiliser les fonctions ?
Vous pouvez utiliser la première fonction d'une manière assez radicale:
Dans le début de mon index.php (qui lui, inclue toutes les pages), j'ai mis ca:
if(src_spammer($_SERVER['REMOTE_ADDR']))
{
header("HTTP/1.0 503 Service Unavailable"); //Pour si au cas ou les crawlers sont répertoriés dans le YASB
die('Die spammer, die !!');
}
Si quelqu'un est dans la base, la fonction retournera true. et la page ne se chargera plus (elle affichera un "Die spammer, die !!").
Maintenant, par sécurité, si par exemple un crawler est dans cette page, on met préalablement un HTTP/1.0 503 Service Unavailable pour pas que notre pagerank tombe suite à l'indisponibilité de toutes les pages du site.
Maintenant, comment repérer un spammeur ?
Un truc que j'ai fait dans presque tous mes sites et de mettre un champ "website" et dans le css le mettre en hidden. Comme ca, les bots cons ne verront pas que ce champ est supposé être caché et le rempliront donc.
Voici un petit exemple de code:
Dans votre processing des informations, mettez
if($_POST['website'] != '')
{
submit_spammer($_SERVER['REMOTE_ADDR']);
die('Die bot, die!!!');
}
Hé voila, votre méchant spammeur, à l'heure d'essayer de vous spammeur se verra son ip reportée à la YASB database et en plus, il ne pourra pas soumettre son "superbe" commentaire.
Pour plus d'infos: Le site de la YASB
Tags : YASB spam base données spammeur
Article vu 1435 fois.
Article vu 1435 fois.