Formation référencement

Google api détection de langue : utilisation antispam

Ecrit par admin le vendredi 6 février 2009 à 14:43 - Catégorie Outils référencement

Vous en avez marre de devoir faire la chasse aux spams sur les commentaires de vos blogs, sur les topics de vos forums, sites de social bookmark, digg-like, annuaires, CMS… Ca tombe bien moi aussi 🙂

Voici donc une astuce simple et efficace, pour lutter contre le spam et la propagation de messages porno, ou de pubs pour les pillules bleues sur vos sites web.

L’astuce consiste à utiliser l’api Google qui permet de connaitre la langue dans laquelle un texte donné a été écrit. Pour en savoir plus sur cette api, visitez cette page : http://code.google.com/apis/ajaxlanguage/

Le but est donc d’utiliser cet api Google pour limiter le spam des commentaires sur vos blogs, forums,…
En effet, ayant un blog français écrit en langue française, je me fait spammer par des russes, des chinois, des anglophones… qui utilisent des logiciels de soumission automatique comme XRumer et autres scripts de soumission automatiques
Pour m’en protéger, j’ai pensé à utiliser ce contrôle sur la langue du commentaire avant insertion du commentaire en bdd.

Résultat, j’ai à présent zéro spam 🙂 Enfin zéro spam de provenance étrangère, j’ai toujours quelques commentaires français limite spam, du genre « merci pour cet article » avec une ancre spammy sur le nom 🙂 et autres subtilités…

Code source du script php antispam :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
//ajout controle de la langue :
$comment_content="Hello Girls is this a SEO Black Hat blog or a white hat blog ?";
$confiance='0.20';
$langue='fr';
$langue2='ca';
 
 
$count_content=strlen($comment_content);
if ($count_content<150)
{
$text=$comment_content;
}
else
{
$newart = substr($comment_content, 0, 150);
$pos = strrpos($newart, " ");
$text = substr($newart, 0, $pos);
}
 
function Google_Language_Detection ($text,$confiance,$langue,$langue2) 
{
   $url = 'http://www.google.com/uds/GlangDetect?v=1.0&q='.urlencode($text);
   if (function_exists('curl_init')) 
	{
		$userAgent='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)';
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL,$url);
		curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
		$result=curl_exec ($ch);
		curl_close ($ch);
	} 
	else 
	{
		$result= file_get_contents($url);
	}
 
	if ( !function_exists('json_decode') )
	{
		preg_match('/language":"(.*?)"/si', $result, $matches);
		$lang = $matches[1];
		preg_match('/confidence":(.*?)}/si', $result, $matches);
		$confidence = $matches[1];
		preg_match('/responseStatus":(.*?)}/si', $result, $matches);
		$responseStatus = $matches[1];
 
		if ($responseStatus== 200) 
		{
			if (($confidence > $confiance) && (($lang==$langue) || ($lang==$langue2))) 
			{
				//echo $lang.' : '.$confidence;
			} 
			else 
			{
				//echo $lang.' : '.$confidence.'<br>';
				echo 'Tentative de spam';
				exit;
			}
		}
	}
	else 
	{
		$json = json_decode($result, true);
		if ($json[responseStatus] == 200) 
		{
			$lang=$json[responseData][language];
			$confidence=$json[responseData][confidence];
			if (($confidence > $confiance) && (($lang==$langue) || ($lang==$langue2))) 
			{
				//echo $lang.' : '.$confidence;
			} 
			else 
			{
				//echo $lang.' : '.$confidence.'<br>';
				echo 'Tentative de spam';
				exit;
			}
		}
	}
}
Google_Language_Detection ($text,$confiance,$langue,$langue2);
//fin ajout controle de la langue
?>

Vous pouvez modifier la langue si votre site n’est pas en français ainsi que la variable $confiance qui permet de filtrer aussi les commentaires courts dans la bonne langue.
Par exemple si le texte saisi = « merci », Google indique une confiance égale à 0.07835744 pour le mot merci, comme je défini à 0.20 minimum la variable $confidence, le texte merci passera en spam. Ce qui permet de limiter aussi les spammeurs français 😉
A vous de modifier cette variable en fonction de vos besoins.

Démo du script

Pour tester le script, il suffit de poster un commentaire écrit dans une autre langue que le français au pied de cet article.

Commentaires (28)

Catégorie: Outils référencement



SEO BLACKOUT

Site web dédié aux techniques de référencement et de positionnement de sites web sur Google.

Certaines parties du site sont en accès restreint, ces espaces sont réservés à la SEO Black Hat Team.


Don't Be Evil !