6

J'ai récemment été inspiré par l'écriture de filtres anti-spam en JavaScript, de type Greasemonkey, pour plusieurs sites web que j'utilise et qui sont sujets au spam (surtout dans les commentaires). En considérant mes options sur la façon de s'y prendre, je me rends compte que j'ai plusieurs options, chacune avec des avantages/inconvénients. Mon but pour cette question est de développer cette liste que j'ai créée, et j'espère déterminer la meilleure façon de filtrer le spam côté client avec JavaScript.Quel est le meilleur moyen de filtrer le spam avec JavaScript?

Quant à ce qui fait un Spam filtre le "meilleur", je dirais que ce sont les critères:

  • la plus précise
  • aux attaques les moins vulnérables
  • le plus rapide
  • plus transparent

En outre, s'il vous plaît noter que j'essaie de filtrer le contenu existe déjà sur des sites Web qui ne m'appartiennent pas, en utilisant les scripts utilisateurs Greasemonkey. En d'autres termes, je ne peux pas empêcher le spam; Je peux seulement le filtrer.

Voici ma tentative, jusqu'à présent, de dresser une liste des différentes méthodes ainsi que leurs défauts et avantages:


filtres basés sur des règles:

Ce qu'il fait : "Grades" un message en attribuant une valeur de point à différents critères (c.-à-d. Tous en majuscules, tous non alphanumériques, etc.) Selon le score, le message est ignoré ou conservé.

Avantages:

  • Facile à mettre en œuvre
  • La plupart du temps transparent

Lacunes:

  • Transparent- il est généralement facile à l'ingénierie inverse du code sur le disque sur les règles, et donc créer des messages qui ne seront pas ramassés
  • Valeurs de point difficiles à équilibrer (faux positifs)
  • Peut être lent; plusieurs règles doivent être exécutées sur chaque message, un grand nombre de fois en utilisant des expressions régulières
  • Dans un environnement côté client, l'interaction du serveur ou l'interaction de l'utilisateur est nécessaire pour mettre à jour les règles

filtrage bayésien:

ce qu'il fait: fréquence des mots Analyses (ou fréquence trigramme) et la compare avec les données qu'il a été formé avec.

Avantages:

  • Pas besoin de règles d'artisanat
  • rapide (relativement)
  • plus strictes pour l'ingénierie inverse

: Lacunes

  • Nécessite une formation pour être efficace
  • Les données formées doivent toujours être accessibles à JavaScript; généralement sous la forme de JSON lisible par l'homme, XML ou fichier plat
  • ensemble de données peut être assez grand
  • filtres mal conçus sont faciles à confondre avec une bonne dose de mots d'abaisser la note spamacity
  • Les mots qui n'ont pas été vus auparavant ne peuvent pas être classés avec précision; parfois entraînant une classification erronée du message entier
  • Dans un environnement côté client, l'interaction du serveur ou l'interaction de l'utilisateur est nécessaire pour mettre à jour les règles

côté serveur filtering- bayésienne:

Qu'est-ce que il le fait: Applique le côté serveur de filtrage bayésien en soumettant chaque message à un serveur distant pour analyse.

Avantages:

  • Tous les avantages du filtrage bayésien régulière
  • données de formation ne sont pas révélées aux utilisateurs/rétroconcevrait

Lacunes:

  • trafic lourd
  • toujours vulnérable aux mots rares
  • toujours vulnérables à l'ajout de mots pour diminuer spamacity
  • Le service lui-même peut être abusé
  • Pour former le classificateur, il peut être souhaitable de permettre aux utilisateurs de soumettre des échantillons de spam pour s'entraîner. Les pirates peuvent abuser de ce service

Blacklisting:

Ce qu'il fait: applique un ensemble de critères à un message ou un attribut de celui-ci. Si un ou plusieurs critères (ou un nombre spécifique de) correspondent, le message est rejeté. Un peu comme filtrage basé sur les règles, donc voir sa description pour plus de détails.

captchas, et articles similaires:

pas possible pour ce type d'application. J'essaie d'appliquer ces méthodes à des sites qui existent déjà. Greasemonkey sera utilisé pour faire ceci; Je ne peux pas commencer à exiger des CAPTCHA dans des endroits où ils n'étaient pas avant que quelqu'un ait installé mon script.


Quelqu'un peut-il m'aider à remplir les espaces? Merci,

+0

Votre but est donc d'ajouter la vérification du spam sur le navigateur des gens pour les sites qui n'ont pas suffisamment de protection intégrée? Que vous pouvez supprimer dynamiquement les commentaires du site. Intéressant, même si je ne suis pas sûr du nombre de sites qui en bénéficieraient. –

+0

Vraiment ce que j'essaye de faire est de créer une plate-forme qui permet juste cela. Cela vient en premier. Ensuite, je vais l'appliquer à différents sites. Facebook est l'un de mes principaux objectifs, car la plupart des commentaires sont des pourriels. –

+0

Les filtres antispam sont triviaux à ajouter sur le backend. Si les administrateurs du site en question sont trop paresseux pour faire cela, il vaut mieux ne pas utiliser le site pour commencer. Pourquoi récompenser un site minable en faisant leur travail pour eux? C'est étrange que vous mentionniez Facebook, car je n'ai jamais vu de spam là-bas. Vous pourriez vouloir désamorcer les spammeurs ... – Cerin

Répondre

2

Il n'y a pas de "meilleur" moyen, en particulier pour tous les utilisateurs ou toutes les situations.

Keep it simple:

  1. que le script GM cacher d'abord tous les commentaires qui contiennent des liens et peut-être universellement mauvais mots (F * ck, presbytériens, etc.). ;)
  2. Ensuite, le script contacte votre serveur et permet au serveur de juger chaque commentaire par critère X (plus de détails ci-dessous).
  3. Afficher ou masquer les commentaires en fonction de la réponse du serveur. En cas de timeout, affichez ou révélez en fonction d'un paramètre de préférence utilisateur ("Que faire lorsque le serveur de filtrage est arrêté?") (Afficher/masquer les commentaires avec des liens)
  4. C'est tout pour le script GM; est géré par le serveur.

en ce qui concerne les critères serveur/filtrage réels ...
le plus important est n'osent pas supposer que vous pouvez deviner ce qu'un utilisateur voudra filtré! Cela varie énormément d'une personne à l'autre, ou même de l'humeur à l'humeur

Configurer le serveur pour utiliser une combinaison de mauvais mots, mauvaise destination du lien s (domaines .ru et .cn, par exemple) et les services publics de filtrage du spam.

Le plus important est d'offrir aux utilisateurs un moyen de choisir et d'ajuster idéalement ce qui est appliqué pour eux.

+0

"Il n'y a pas de mauvais mots" - George Carlin –