Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Journal : Antispam pour blog et forum

Posté par Victor STINNER (page perso, ) le 22 avril 2008
Las du spam sur mon blog et sur le forum de ma société, j'ai écrit un antispam. Il utilise diverses règles générant une note globale pour le message : analyse des URLs, de mots clés, de l'adresse de courriel, de la longueur du message, etc. Pour commencer, une note négative est attribuée (ex: -5). Ensuite, chaque règle rajoute ou soustrait des points à la note globale.

Exemple de spam :
Par : swingers ads
Site Web : http://sexy.ads6x.com

Adult personal ads from swingers and swappers, couples, singles, bi,
http://sexy.ads6x.com >swingers ads and wives amateur couples Swingers Club

Et la sortie du programme antispam :
./antispam.py --verbose -c haypocalc.conf sexy
Match word (+2.0): sexy
Match word (+1.0): adult
Match word (+2.0): sexy
Match word (+1.0): amateur
Match URL (+1.5): http://sexy.ads6x.com
Match URL (+1.5): http://sexy.ads6x.com
Match email domain (+1.0): @gmail.com
sexy score: +7.00 ***SPAM***

L'antispam est écrit en Python et distribué sous licence GPL :
http://haypo.hachoir.org/trac/wiki/antispam

L'algorithme est expliqué sur la page web du projet en anglais. J'ai écrit un article en français qui présente l'algorithme, ses qualités et défauts :
http://www.haypocalc.com/blog/index.php/2008/03/10/137-un-no(...)

Pour l'intégration à Dotclear, punbb, etc. : c'est faisable, mais ces logiciels sont difficiles à patcher. Je ne distribue donc pas de patch automatique. Je peux tenter d'expliquer comment l'intégrer pour les gens intéressés. Pour les autres, regardez le dossier plugin. Niveau dépendance, il faut pouvoir exécuter Python 2.4.

> Lire le journal (49 commentaires, moyenne: 3,1).  

Vous avez demandé le commentaire #925229.

journal.txt score: +29.00 ***SPAM***

Posté par Infernal Quack (Jabber id, page perso, ) le 23/04/2008 à 00:23. (lien). Évalué à 8.

[shift@table-volante antispam]$ ./antispam.py -c conf/antispam.conf journal.txt

Error on initialization: [ValueError] Invalid message format: '"plain"'

[shift@table-volante antispam]$ sed -e 's/"plain"/plain/g' conf/antispam.conf > conf/antispam.conf.new && mv -f conf/antispam.conf.new conf/antispam.conf

[shift@table-volante antispam]$ ./antispam.py -c conf/antispam.conf journal.txt

journal.txt score: +29.00 ***SPAM***

  • [^]Re: journal.txt score: +29.00 ***SPAM***

    Posté par ptifeth (page perso, ) le 23/04/2008 à 09:36. (lien). Évalué à 3.

    Test pertinent.
    En effet, Victor, comment réagit ton outil face à des commentaires qui parlent de spam ?

    Dans le domaine du mail, il est fréquent, bien que ça soit une mauvaise pratique, que des membres d'une mailing list commentent un spam en le citant intégralement, ou en en citant les meilleurs passages. Ce sont des mails très dangereux pour l'apprentissage des antispam bayesiens. Du coup je préfère faire intégralement confiance à l'antispam de la liste et ne filtre pas les messages, ni ne les donne à manger à bogofilter.

    Je pense que des filtrages en amont me permettront d'être plus sélectif : de plus en plus de gens signent leurs messages (gpg), et il est très facile de vérifier les signatures (qui sont téléchargeables) pour garantir à peu près qu'un mail est ham.

    • [^]Re: journal.txt score: +29.00 ***SPAM***

      Posté par moudj (Jabber id, ) le 23/04/2008 à 10:42. (lien). Évalué à 1.

      vous n'avez rien compris...
      En fait, il vient juste de nous dire qu'il a bloqué les commentaires sur son blog ;-)

      --
      echo '16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D4D465452snlbxq'|dc

      [^]Re: journal.txt score: +29.00 ***SPAM***

      Posté par Victor STINNER (page perso, ) le 23/04/2008 à 11:12. (lien). Évalué à 6.

      « En effet, Victor, comment réagit ton outil face à des commentaires qui parlent de spam ? »

      Si le spam est détecté comme spam, un message qui le cite risque d'obtenir la même note. Mais ce n'est pas sûr, car l'email de l'expéditeur sera différent, la longueur du message aussi, et si l'antispam possède des listes blanches, le score pourra aussi changer.

      Je ne m'étais jamais posé la question, car je n'ai jamais vu de gens citer un spam... surtout que si le spam est bloqué avant d'arriver dans le blog / la liste de diffusion, on ne peut pas le citer ;-)

    [^]Re: journal.txt score: +29.00 ***SPAM***

    Posté par Victor STINNER (page perso, ) le 23/04/2008 à 11:50. (lien). Évalué à 3.

    Effictivement, comme ptifeth l'a remarqué, mon antispam n'est pas fait pour les messages citant du spam (partiellement ou intégralement). Si on supprime les spams de mon journal, j'obtiens ça (avec la configuration de mon blog) :
    Match URL (+1.5): http://haypo.hachoir.org/trac/wiki/antispam
    Match URL (+1.5): http://www.haypocalc.com/blog/index.php/2008/03/10/137-un-no
    journal score: -0.50

    La configuration est :
    [analyzer]
    default_score=-3.5
    format=dotclear

    • [^]Re: journal.txt score: +29.00 ***SPAM***

      Posté par Infernal Quack (Jabber id, page perso, ) le 23/04/2008 à 23:07. (lien). Évalué à 3.

      Tu as remarqué que ton fichier de conf avait un problème et que mon sed n'était pas là pour le fun ? :)

      • [^]Re: journal.txt score: +29.00 ***SPAM***

        Posté par Victor STINNER (page perso, ) le 24/04/2008 à 00:58. (lien). Évalué à 2.

        Oui merci, j'ai corrigé juste après avoir lu ton message. Je travaille avec les versions Subversion, je commite sans arrêt :-)