Il ne faut pas prendre un critère unique, mais une combinaison de plusieurs critères:
On prend comme données de départ : le pseudo du troller et son profil complet (nombre de post, pseudo, date de banissement, profil OS...)
- OS + versions des softs, etc etc. Quand on poste, on balance plein d'infos.
- pattern recognition sur le pseudo (le troller aime qu'on le reconnaisse, ça le flatte)
- pattern recognition sur l'ip (une partie de l'ip reste fixe chez les providers)
- correlation date de banissement et date de réapparition
- lors du banissement, alimentation d'une table spécifique (en base relationnelle par exemple) contenant les mots non classiques d'un message. Thread indépendant sur le serveur qui surcharge la machine très temporairement. Volume de la table infime, vu le nombre limité de trollers à bannir définitivement et sans appel (Heureusement). On crée évidemment un index (pseudo, mot). on met la récurrence et la date de première création comme champs supplémentaires par exemple.
Mots classiques = top 1000 des mots contenus sur le forum. On procède par statistique, pas la peine d'utiliser la base entière des message pour l'analyse (principe des sondages). Cette table des mots bouge typiquement très très lentement, donc on peut prévoir une mise à jour de cette table des mots classiques tous les 2 mois, le 1er à 4h00 du mat pour garder de la bande passante.
Le reste est de l'heuristique, c'est à dire pas fiable à 100% mais avec un taux de succès potentiellement élevé.
Exemple :
En cas de repostage d'un type genre GWEN*.* (pattern recognition sur le pseudo) avec une ip avec une gueule = a.b.c.*** (avec a.b.c = debut de l'ip de GWENDI) survenu peu après (date checking avec un threshold bien senti) un banissement de GWENDI après un message contenant "pouffiasse" et "pedale" (mots indexés dans la base des mots des trolleurs), le message est bloqué et les modos + laurent sont avertis.
Evidemment, la pondération barycentrique de ces critères est variable et adaptable, via table spécifique, à chacun des trolleurs.
Problèmes de ma solution:
1) Usine à gaz
2) Optimisation de la fonction de postage pour ne pas ralentir ceux qui postent et qui ont un profil clean
3) Charge machine et perfs http
Si le trolleur reposte d'un cyber café ou du taf, alimentation manuelle de la table des ip suspectes, avec update de la foreign key vers les autres tables de checking (vocabulaire, profil OS, etc).
PS : Je ne suis pas du tout spécialiste de tout ce qui est réseau. Je pense qu'on peut rajouter d'autres critères si on est spécialisé "network" (moi c'est plutot Oracle et compagnie, donc les datagrammes et les checksums, très peu pour moi).
Yngwie forever.