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,
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. –
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. –
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