NkSpamKiller - Documentation en français
Sommaire
- NkSpamKiller
- Sommaire
- Version
- Changelog
- A propos
- Version standalone ou filtre Dotclear ?
- Obtenir NkSpamKiller
- Installation
- Modules et configuration
- Module "BBCode"
- Module "Liens HTML"
- Module "composition du message"
- Module "analyseur de majuscules"
- Module "chercheur de mots clé"
- Module "détéction de la langue"
- Module "détéction du pays"
- Type de retour
- Utilisation
- Renseignement généraux
- Calcul du score
- Est-ce que c'est dangereux d'utiliser NkSpamKiller dans mon Dotclear ?
- J'ai un problème avec NkSpamKiller !
- Licence de cette documentation
Version
Version en cours: 0.1 beta 1 (mise à jour le 29.03.07)
Changelog
0.1 alpha 1
Première version
0.1 alpha 2
- Ajout d'un module de détéction du pays
- Ajout de mots-clé
- Modification du système de calcul final
- Revue complète de la documentation
0.1 alpha 3
- Correction du module de détéction de langue pour le filtre Dotclear
- Ajout de mots-clé
0.1 beta 1
- Correction du fichier de mots-clé (donnait systématiquement 70%)
- Correction du module de détéction du pays
- Nombreux bugfix dans le filtre Dotclear
A propos
NkSpamKiller a été écrit pour filtrer le SPAM sur mon blog, qu'ils soient postés en tant que commentaires ou en tant que trackbacks.
Le système principal est composé de trois fichiers, un pour la configuration un pour la liste de mots clé et le script principal.
Son utilisation est très simple, vous n'avez qu'à inclure le fichier principal dans votre page PHP et à utiliser la fonction principale, elle vous retournera un score, et si il est égal ou suppérieur à 4, c'est un SPAM !
Version standalone ou filtre Dotclear ?
NkSpamKiller est distribué sous deux formes. La première, verison dite standalone, ne contient que les fichiers PHP nécessaires à son focntionnement. Cette version est utile pour les développeurs de sites web qui souhaitent mettre en place NkSpamKiller sur n'importe quel site web en PHP.
La deuxième, sous forme de filtre Dotclear, est déstinée aux utilisateurs de Dotclear. Elle s'intègre facilement, sans modification de la structure SQL au système.
Note: Le filtre Dotclear ne fonctionne qu'avec la version Dotclear 2 beta 6 ou plus.
La configuration des modules est strictement identique dans les deux cas.
Obtenir NkSpamKiller
Vous trouverez les dernières versions de NkSpamKiller sur la page de téléchargement, à l'adresse http://www.nakan.ch/projects/download.php?id=1
La page officielle du projet (http://www.nakan.ch/nkspamkiller/) vous donnera également accès à la dernière version de la documentation.
Installation
Version standalone
Décompressez l'archive, et placez les trois fichiers php n'importe où dans l'arborescence de votre site web. Soyez sûrs de les placer tous les le même répértoire, ou changez l'instruction require_once dans le fichier principal (nkspamkiller.php).
Ensuite, éditez le fichier de configuration et incluez le fichier dans votre propre script PHP (voir chapitre Utilisation).
Version filtre Dotclear
Décompressez l'archive et placez le répertoire obtenu dans le dossier plugins de votre installation Dotclear.
Modules et configuration
Nous allons ici voir quels sont les modules de NkSpamKiller, à quoi ils servent et comment les activer et les configurer.
Module "BBCode"
Le but principal d'un SPAM est de rediriger le lecteur sur un autre site. Pour faire ceci, l'expéditeur va inclure des liens vers son site web.
Une méthode commune pour cela est d'utiliser du BB Code utilisé sur les forums phpBB. Si vous n'autorisez pas le BBCode sur votre site web, vous pouvez utiliser ce module, il va sérieusement vous aider à repérer le SPAM (beacoup utilisent le BBCode).
Un lien BBCode ressemble à ceci:
[url="http://unsiteweb.com"][/url]
Pour activer ce module, éditez le fichier de configuration (nkspamkiller.config.php), et changez la ligne suivante pour qu'elle contienne la valeur 1 (ou 0 pour désactiver le module).
$nkskCfg['mod']['bbcode'] = 1;Dans l'exemple ci-dessus, le module est activé.
Pour la configuration fine de ce module, allez dans la partie Configuration avancée du fichier de configuration. Vous pouvez y changer la valeur suivante:
$nkskCfg['mod_cfg']['bbcode']['score']Vous pouvez ici changer le score (en pourcentage) que va reçevoir le message pour chaque lien BBCode. Si vous interdisez BBCode, 100 est une bonne valeur. Si vous le tolérez, 20 est une bonne altérnative (il autorisera 3 liens maximum par message).
Module "Liens HTML"
Ce module ressemble au précédent, mais concerne les liens au format HTML. Un lien HTML ressemble à ceci:
<a href="http://unsiteweb.com">du texte</a>Il vous est conseillé de l'activer si vous interdisez les liens HTML (par exemple parce que vous transformez automatiquement les adresses en liens).
Pour activer ce module, éditez le fichier de configuration (nkspamkiller.config.php), et changez la ligne suivante pour qu'elle contienne la valeur 1 (ou 0 pour désactiver le module).
$nkskCfg['mod']['htmllink'] = 1;Dans l'exemple ci-dessus, le module est activé.
Pour la configuration fine de ce module, allez dans la partie Configuration avancée du fichier de configuration. Vous pouvez y changer la valeur suivante:
$nkskCfg['mod_cfg']['htmllink']['score']Vous pouvez ici changer le score (en pourcentage) que va reçevoir le message pour chaque lien HTML. Si vous interdisez les liens HTML, 100 est une bonne valeur. Si vous le tolérez, 20 est une bonne altérnative (il autorisera 3 liens maximum par message).
Module "composition du message"
Ce module analyse le pourcentage de voyelles, de consonnes, d'espaces et de caractères spéciaux du contenu d'un message. C'est pratique pour rejeter des SPAM comme celui-ci:
qQlQXTd http://ukgkfvrmr.com/">lZraNYyMQpYU [URL=http://lojtucowjzeidj.com/]jUqeJS[/URL]Note: La configuration actuelle n'est optimisée que pour le français.
Pour activer ce module, éditez le fichier de configuration (nkspamkiller.config.php), et changez la ligne suivante pour qu'elle contienne la valeur 1 (ou 0 pour désactiver le module).
$nkskCfg['mod']['analyze_comp'] = 1;Dans l'exemple ci-dessus, le module est activé.
Pour la configuration fine de ce module, allez dans la partie Configuration avancée du fichier de configuration. Vous pouvez y changer les valeurs suivantes:
$nkskCfg['mod_cfg']['analyze_comp']['vowels_range']Vous pouvez ici changer la plage acceptée (en pourcentage) de voyelles dans un message. La plage 25-35 correspond bien à la langue française.
$nkskCfg['mod_cfg']['analyze_comp']['vowels_score']Vous pouvez ici choisir de combien de pourcent augmente la probabilité d'être un spam par pourcent en dehors de la plage. (recommandé: 2).
Il vous sera ensuite possible de changer ces mêmes valeurs pour les consonnes (consonnants). La plage 30-55 correspond bien au français. Le score recommandé est également de 2.
Ensuite les caractères spéciaux (special characters). La plage 0-15 correspond bien au français. Le score recommandé est ici de 3.
Enfin, les espaces (spaces). La plage 0-25 semble correcte pour beaucoup de langues. Le score recommandé est ici aussi de 3.
Module "analyseur de majuscules"
Normalement, un message sur un site web est écrit avec moins de 10% de majuscules. Les SPAMs utilisent beaucoup les majuscules pour être plus visibles. C'est un test simple, mais efficace.
Pour activer ce module, éditez le fichier de configuration (nkspamkiller.config.php), et changez la ligne suivante pour qu'elle contienne la valeur 1 (ou 0 pour désactiver le module).
$nkskCfg['mod']['analyze_upper'] = 1;Dans l'exemple ci-dessus, le module est activé.
Pour la configuration fine de ce module, allez dans la partie Configuration avancée du fichier de configuration. Vous pouvez y changer les valeurs suivantes:
$nkskCfg['mod_cfg']['analyze_upper']['range']Vous pouvez ici changer la plage acceptée (en pourcentage) de majuscules dans un message. La plage 0-5 correspond à un filtrage assez agressif. Si vous souhaitez plus de souplesse, choisissez 0-10.
$nkskCfg['mod_cfg']['analyze_upper']['score']Vous pouvez ici choisir de combien de pourcent augmente la probabilité d'être un spam par pourcent en dehors de la plage. (recommandé: entre 5 et 10).
Module "chercheur de mots clé"
Ce module est peut-être le plus important. Il va essayer de localiser des mots-clé dans un message. Les mots-clé sont stockés dans un fichier séparé, vous pourrez donc facilement ajouter les vôtres.
Pour activer ce module, éditez le fichier de configuration (nkspamkiller.config.php), et changez la ligne suivante pour qu'elle contienne la valeur 1 (ou 0 pour désactiver le module).
$nkskCfg['mod']['analyze_words'] = 1;Dans l'exemple ci-dessus, le module est activé.
Pour la configuration fine de ce module, ouvrez le fichier nkspamkiller.keywords.php. Vous pouvez y ajouter des mots-clé de la façon suivante:
A la fin de la liste pré-définie (nous vous recommandons de séprer la liste fournie de vos propres mots-clé afin de simplifier leur repport dans un fichier mis à jour), ajoutez autant de lignes comme celle-ci que nécessaire:
$nkskSpamDict[] = array("MOT", SCORE);
Remplacez MOT par le mot-clé souhaité et SCORE par le pourcentage de chance d'être un SPAM que reçevra le message pour chaque occurence du mot-clé.
Module "détéction de la langue"
Ce module est surtout utile pour les gens qui gèrent un site dans une autre langue que l'anglais (beaucoup de SPAM sont écrits en anglais). Si c'est le cas, vous pouvez activer ce module, il va essayer de bloquer les messages dans une autre langue.
La détéction est basée sur la fréquence de suites de trois lettres. La fin du fichier de configuration (nkspamkiller.config.php) contint un tableau de 20 entrées pour chaque langues. Notez que la précision de ce module n'est pas extême, mais il aide à combattre une petite partie du SPAM sur mon site à lui tout seul.
Note: fonctionne pour l'anglais, le français, l'allemand et l'espagnol.
Pour activer ce module, éditez le fichier de configuration (nkspamkiller.config.php), et changez la ligne suivante pour qu'elle contienne la valeur 1 (ou 0 pour désactiver le module).
$nkskCfg['mod']['analyze_lang'] = 1;Dans l'exemple ci-dessus, le module est activé.
Pour la configuration fine de ce module, allez dans la partie Configuration avancée du fichier de configuration. Vous pouvez y changer les valeurs suivantes:
$nkskCfg['mod_cfg']['analyze_lang']['LANGUE']Vous pouvez ici changer le pourcentage de chance que le message soit un SPAM en fonction de la langue détectée.
$nkskCfg['mod_cfg']['analyze_lang']['uw']Vous pouvez ici choisir de combien de pourcent augmente la probabilité d'être un spam si la langue n'a pas pu être identifiée. Maximum conseillé: 50.
$nkskCfg['mod_cfg']['analyze_lang']['diff']Vous pouvez ici choisir ici la sensibilité du module. Valeur conseillées: entre 20 et 30. (15 est acceptable, mais peut engendrer des erreurs).
Note: La langue française est très proche de la langue espagnole, donc si votre site attend des messages en français, ne donner pas une valeur trop importante à la langue espagnole (maximum conseillé, 60).
Module "détéction du pays"
Ce module essaye de trouver le pays d'origine de l'expéditeur du message en essayant d'obtenir le nom DNS lié à l'adresse IP de l'expéditeur. Le module n'y parvient pas toujours, mais souvent.
Pour activer ce module, éditez le fichier de configuration (nkspamkiller.config.php), et changez la ligne suivante pour qu'elle contienne la valeur 1 (ou 0 pour désactiver le module).
$nkskCfg['mod']['country'] = 1;Dans l'exemple ci-dessus, le module est activé.
Pour la configuration fine de ce module, allez dans la partie Configuration avancée du fichier de configuration. Vous pouvez y changer les valeurs suivantes:
$nkskCfg['mod_cfg']['country']['score']Vous pouvez ici changer le pourcentage de chance que le message soit un SPAM si le pays se trouve dans la liste des pays interdit (voir ci-dessous).
$nkskCfg['mod_cfg']['country']['com']Vous pouvez ici changer le pourcentage de chance que le message soit un SPAM si l'extension DNS est com, net, org, ou info (conseillé: 50).
$nkskCfg['mod_cfg']['country']['uw']Vous pouvez ici changer le pourcentage de chance que le message soit un SPAM si l'extension DNS est introuvable (conseillé: 60)
Vous pouvez également définir les pays que vous souahitez. Pour ceci, ouvrez le fichier nkspamkiller.keywords.php. Vous pouvez y ajouter des extensions DNS (pays) de la façon suivante:
Ajoutez les simplement à la suite, séparées par des virgules, à la variable suivante:
$nkskCfg['mod_cfg']['country']['list']Une liste de pays connus pour être de gros producteurs de SPAMs a déjà été prédéfinie.
Type de retour
Note: Cette option de configuration ne concerne pas les utilisateurs du filtre Dotclear.
Il nous reste encore à configurer la manière dont NkSpamKiller va retourner le résultat. Pour ceci, allez dans la partie Configuration de base du fichier de configuration.
Vous y trouverez la viariable suivante:
$nkskCfg['return']['type']Elle peut reçevoir deux valeurs, "s" ou "f". Si la valeur est "s", elle ne retournera qu'un score (0 ou 4, voir plus loin).
Si la valeur est "f", elle retournera un tableau de deux éléments, le premier sera le score (0 ou 4), et le deuxième un résumé des tests, ressemblants à ceci:
BBCODE=0, HTMLLINK=0, CNTAN=40, UPPER=0, LANG=40 (detected as uw), KEYWORDS=100, CNTRY=50 (detected as com)
Utilisation
Version standalone
Une fois le script correctement configuré, faites un include dans votre script principal comme ceci:
include("/chemin/vers/nkspamkiller.php");
Dans cet exemple, on considère que la fonction va retourner un tableau. $message est le message a analyser:
<?php
include("/path/to/script/nkspamkiller.php");
$spam_score = nkskFilter($message [, $REMOTE_ADDR]);
if ($spam_score >= 4) {
// Le message est un SPAM
}
else {
// Le message n'est pas un SPAM.
}
?>
La fonction nkskFilter doit reçevoir au moins un argument (le message à analyser). Si vous souhaitez utiliser le module de détéction du pays, il faudra aussi lui donner comme deuxième argument l'adresse IP de l'expéditeur, comme ceci:
$resultat = nkskFilter($message, $REMOTE_ADDR)Si vous ne lui passez pas l'adresse IP, il la considérera comme étant nulle, et ne fera pas le test de détéction du pays.
Version filtre Dotclear
Une fois logué dans l'interface d'administration de votre Dotclear, allez dans le menu "Extensions/Antispam". Ici, vous pourrez activer NkSpamKiller (cochez la case et cliquez sur enregistrer).
Renseignement généraux
Calcul du score
Dans la première version de NkSpamKiller, le calcul du score dépendait du nombre de modules activés, du score de chaque mots-clé etc.. La limite entre message sollicité et SPAM était donc différente pour chaque utilisateur.
Depuis la version alpha 2, le score est calculé en pourcentage de chances que le message soit un SPAM. Chaque module retourne donc une probabilité, entre 0 et 100 (des fois même plus).
Si un module a retourné un score suppérieur à 80% ou que le total est égal ou suppérieur à 130%, le message est considéré comme SPAM.
Le script retournera donc soit 4 (le message est un SPAM) soit 0 (le message était sollicité).
Est-ce que c'est dangereux d'utiliser NkSpamKiller dans mon Dotclear ?
Non ! Premièrement, NkSpamKiller ne va jamais déclarer un message comme "NON SPAM". Il va toujours dire "C'est un SPAM" ou "Je ne sais pas". Le seul risque est que NkSpamKiller déclare un message comme du SPAM alors qu'il n'en est pas un. C'est survenu dans moins de 1% des cas sur mon propre site web.
J'ai un problème avec NkSpamKiller !
Reportez le ici: nksk AT nakan POINT ch
Licence de cette documentation
Copyright (c) 2007 Grégory Chanez (gregory.chanez CHEZ nakan.ch)
Cette documentation est distribuée sous les termes de la licence GNU/FDL version 1.2.
This documentation is distibuted under the terms of the GNU/FDL version 1.2.
Lire la licence "GNU Free Documentation License" (version fraçaise non officielle)
Read the "GNU Free Documentation License" (offical english version)
Cette documentation est distribuée sous les termes de la licence GNU/FDL version 1.2.
This documentation is distibuted under the terms of the GNU/FDL version 1.2.
Lire la licence "GNU Free Documentation License" (version fraçaise non officielle)
Read the "GNU Free Documentation License" (offical english version)